{"version":3,"file":"static/chunks/pages/_app-6d401cae762cd351.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://_N_E/./node_modules/@react-oauth/google/dist/index.esm.js","webpack://_N_E/./node_modules/@sentry/hub/esm/exports.js","webpack://_N_E/./node_modules/@sentry/hub/esm/hub.js","webpack://_N_E/./node_modules/@sentry/hub/esm/scope.js","webpack://_N_E/./node_modules/@sentry/hub/esm/session.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/errors.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/hubextensions.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/idletransaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/span.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/transaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/utils.js","webpack://_N_E/./node_modules/@sentry/utils/esm/baggage.js","webpack://_N_E/./node_modules/@sentry/utils/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/buildPolyfills/_nullishCoalesce.js","webpack://_N_E/./node_modules/@sentry/utils/esm/global.js","webpack://_N_E/./node_modules/@sentry/utils/esm/instrument.js","webpack://_N_E/./node_modules/@sentry/utils/esm/is.js","webpack://_N_E/./node_modules/@sentry/utils/esm/logger.js","webpack://_N_E/./node_modules/@sentry/utils/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/esm/env.js","webpack://_N_E/./node_modules/@sentry/utils/esm/node.js","webpack://_N_E/./node_modules/@sentry/utils/esm/object.js","webpack://_N_E/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://_N_E/./node_modules/@sentry/utils/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/utils/esm/time.js","webpack://_N_E/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://_N_E/./node_modules/@stripe/stripe-js/dist/pure.js","webpack://_N_E/./node_modules/@stripe/stripe-js/pure.js","webpack://_N_E/./node_modules/axios/index.js","webpack://_N_E/./node_modules/axios/lib/adapters/xhr.js","webpack://_N_E/./node_modules/axios/lib/axios.js","webpack://_N_E/./node_modules/axios/lib/cancel/Cancel.js","webpack://_N_E/./node_modules/axios/lib/cancel/CancelToken.js","webpack://_N_E/./node_modules/axios/lib/cancel/isCancel.js","webpack://_N_E/./node_modules/axios/lib/core/Axios.js","webpack://_N_E/./node_modules/axios/lib/core/InterceptorManager.js","webpack://_N_E/./node_modules/axios/lib/core/buildFullPath.js","webpack://_N_E/./node_modules/axios/lib/core/createError.js","webpack://_N_E/./node_modules/axios/lib/core/dispatchRequest.js","webpack://_N_E/./node_modules/axios/lib/core/enhanceError.js","webpack://_N_E/./node_modules/axios/lib/core/mergeConfig.js","webpack://_N_E/./node_modules/axios/lib/core/settle.js","webpack://_N_E/./node_modules/axios/lib/core/transformData.js","webpack://_N_E/./node_modules/axios/lib/defaults.js","webpack://_N_E/./node_modules/axios/lib/helpers/bind.js","webpack://_N_E/./node_modules/axios/lib/helpers/buildURL.js","webpack://_N_E/./node_modules/axios/lib/helpers/combineURLs.js","webpack://_N_E/./node_modules/axios/lib/helpers/cookies.js","webpack://_N_E/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://_N_E/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://_N_E/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://_N_E/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://_N_E/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://_N_E/./node_modules/axios/lib/helpers/spread.js","webpack://_N_E/./node_modules/axios/lib/utils.js","webpack://_N_E/./node_modules/classnames/index.js","webpack://_N_E/./node_modules/constate/dist/constate.es.js","webpack://_N_E/./node_modules/cookie/index.js","webpack://_N_E/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://_N_E/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://_N_E/./node_modules/date-fns/esm/addDays/index.js","webpack://_N_E/./node_modules/date-fns/esm/addMonths/index.js","webpack://_N_E/./node_modules/date-fns/esm/toDate/index.js","webpack://_N_E/./node_modules/fbjs/lib/areEqual.js","webpack://_N_E/./node_modules/fbjs/lib/emptyFunction.js","webpack://_N_E/./node_modules/fbjs/lib/warning.js","webpack://_N_E/./node_modules/invariant/browser.js","webpack://_N_E/./node_modules/js-cookie/src/js.cookie.js","webpack://_N_E/./node_modules/lodash/_Symbol.js","webpack://_N_E/./node_modules/lodash/_baseGetTag.js","webpack://_N_E/./node_modules/lodash/_freeGlobal.js","webpack://_N_E/./node_modules/lodash/_getRawTag.js","webpack://_N_E/./node_modules/lodash/_objectToString.js","webpack://_N_E/./node_modules/lodash/_root.js","webpack://_N_E/./node_modules/lodash/isFunction.js","webpack://_N_E/./node_modules/lodash/isObject.js","webpack://_N_E/./node_modules/next-seo/lib/next-seo.module.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/object-assign.js","webpack://_N_E/?adc8","webpack://_N_E/./__generated__/checkUserQuery.graphql.ts","webpack://_N_E/./__generated__/trackAppsFlyerPBAEventMutation.graphql.ts","webpack://_N_E/./__generated__/trackFbConversionsAPIEventMutation.graphql.ts","webpack://_N_E/./__generated__/trackFinanceadsEventMutation.graphql.ts","webpack://_N_E/./__generated__/trackImpactEventMutation.graphql.ts","webpack://_N_E/./components/Button/ButtonBase.tsx","webpack://_N_E/./components/Button/Button.tsx","webpack://_N_E/./components/Button/InlineButton.tsx","webpack://_N_E/./node_modules/styled-tools/dist/es/prop.js","webpack://_N_E/./node_modules/styled-tools/dist/es/ifProp.js","webpack://_N_E/./node_modules/styled-tools/dist/es/ifNotProp.js","webpack://_N_E/./node_modules/styled-tools/dist/es/switchProp.js","webpack://_N_E/./node_modules/styled-tools/dist/es/index.js","webpack://_N_E/./components/Button/LegacyButton.tsx","webpack://_N_E/./components/Button/index.tsx","webpack://_N_E/./components/Card/Card.tsx","webpack://_N_E/./components/Card/ReferralReviewCard.tsx","webpack://_N_E/./node_modules/react-icons/im/index.mjs","webpack://_N_E/./components/Card/ReviewCard.tsx","webpack://_N_E/./components/Card/index.tsx","webpack://_N_E/./components/Column/Column.tsx","webpack://_N_E/./components/Column/index.tsx","webpack://_N_E/./components/Columns/ColumnsContext.tsx","webpack://_N_E/./components/Columns/Columns.tsx","webpack://_N_E/./components/Columns/index.ts","webpack://_N_E/./components/ContentCards/DetailedPreviewCard/CardHeading.tsx","webpack://_N_E/./components/Experiments/useExperiments.tsx","webpack://_N_E/./components/Heading/Heading.tsx","webpack://_N_E/./components/Heading/index.tsx","webpack://_N_E/./components/HighlightText/HighlightText.tsx","webpack://_N_E/./components/HighlightText/index.tsx","webpack://_N_E/./node_modules/react-icons/ri/index.mjs","webpack://_N_E/./components/Icon/Icon.tsx","webpack://_N_E/./components/Icon/index.tsx","webpack://_N_E/./node_modules/react-error-boundary/dist/react-error-boundary.module.js","webpack://_N_E/./components/Image/Image.tsx","webpack://_N_E/./components/Image/index.tsx","webpack://_N_E/./components/Link/Link.tsx","webpack://_N_E/./components/Link/LinkWrapper.tsx","webpack://_N_E/./components/Link/UnstyledLink.tsx","webpack://_N_E/./components/Link/LegacyLink.tsx","webpack://_N_E/./components/Link/TextLink.tsx","webpack://_N_E/./components/Link/index.tsx","webpack://_N_E/./node_modules/reakit-utils/es/useUpdateEffect.js","webpack://_N_E/./node_modules/reakit-utils/es/getNextActiveElementOnBlur.js","webpack://_N_E/./node_modules/reakit-utils/es/hasFocus.js","webpack://_N_E/./node_modules/reakit-utils/es/ensureFocus.js","webpack://_N_E/./node_modules/reakit/es/Disclosure/DisclosureContent.js","webpack://_N_E/./node_modules/reakit/es/Portal/Portal.js","webpack://_N_E/./node_modules/reakit-utils/es/removeIndexFromArray.js","webpack://_N_E/./node_modules/reakit-utils/es/removeItemFromArray.js","webpack://_N_E/./node_modules/reakit/es/MenuContext-6af6cf92.js","webpack://_N_E/./node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack://_N_E/./node_modules/reakit-utils/es/closest.js","webpack://_N_E/./node_modules/reakit/es/DialogBackdropContext-8775f78b.js","webpack://_N_E/./node_modules/reakit-utils/es/isEmpty.js","webpack://_N_E/./node_modules/reakit/es/Dialog/Dialog.js","webpack://_N_E/./node_modules/reakit/es/Dialog/DialogBackdrop.js","webpack://_N_E/./components/Modal/Modal.tsx","webpack://_N_E/./components/Modal/index.tsx","webpack://_N_E/./components/Paragraph/Paragraph.tsx","webpack://_N_E/./components/Paragraph/index.tsx","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://_N_E/./components/Primitives/Box.tsx","webpack://_N_E/./components/Set/Set.tsx","webpack://_N_E/./components/Set/index.tsx","webpack://_N_E/./components/StarRating/index.tsx","webpack://_N_E/./consts/stripe.ts","webpack://_N_E/./consts/index.ts","webpack://_N_E/./lib/analytics/helpers.ts","webpack://_N_E/./lib/analytics/useTrackingParams.tsx","webpack://_N_E/./lib/tracking/fb/consts.ts","webpack://_N_E/./lib/tracking/fb/fbTrackingApi.ts","webpack://_N_E/./lib/tracking/fmzTrackingClient.ts","webpack://_N_E/./lib/analyticsApi.ts","webpack://_N_E/./node_modules/mixpanel-browser/dist/mixpanel.module.js","webpack://_N_E/./lib/analyticsClient.ts","webpack://_N_E/./lib/cookieAuth.ts","webpack://_N_E/./lib/createMutationPromise.ts","webpack://_N_E/./consts/testing.ts","webpack://_N_E/./lib/cookiesToProxy.ts","webpack://_N_E/./utils/isServer.ts","webpack://_N_E/./lib/createRelayEnvironment.ts","webpack://_N_E/./lib/freeArticleAllowance/consts.ts","webpack://_N_E/./node_modules/date-fns/esm/add/index.js","webpack://_N_E/./lib/freeArticleAllowance/articleAllowanceCookieClient.ts","webpack://_N_E/./lib/freeArticleAllowance/useFreeArticleCookies.ts","webpack://_N_E/./lib/checkUser.ts","webpack://_N_E/./lib/handleAuth.ts","webpack://_N_E/./lib/initialiseStripe.ts","webpack://_N_E/./lib/redirect.ts","webpack://_N_E/./relay/mutations/trackAppsFlyerPBAEvent.ts","webpack://_N_E/./lib/tracking/appsFlyerPBAClient.ts","webpack://_N_E/./relay/mutations/trackFbConversionsAPIEvent.tsx","webpack://_N_E/./lib/tracking/fb/fbTrackingClient.ts","webpack://_N_E/./lib/tracking/financeAds/consts.ts","webpack://_N_E/./relay/mutations/trackFinanceadsEvent.tsx","webpack://_N_E/./lib/tracking/financeAds/useFinanceadsTracking.ts","webpack://_N_E/./lib/tracking/impact/consts.ts","webpack://_N_E/./relay/mutations/trackImpactEvent.tsx","webpack://_N_E/./lib/tracking/impact/useImpactTracking.ts","webpack://_N_E/./lib/useCookies.tsx","webpack://_N_E/./modules/Captcha/consts.ts","webpack://_N_E/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js","webpack://_N_E/./node_modules/next/dist/client/get-domain-locale.js","webpack://_N_E/./node_modules/next/dist/client/image-component.js","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/normalize-locale-path.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/dist/shared/lib/get-img-props.js","webpack://_N_E/./node_modules/next/dist/shared/lib/image-blur-svg.js","webpack://_N_E/./node_modules/next/dist/shared/lib/image-external.js","webpack://_N_E/./node_modules/next/dist/shared/lib/image-loader.js","webpack://_N_E/./next-seo.config.ts","webpack://_N_E/./components/AppIcons.tsx","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/display.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/catchUserErrors.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/monitor.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/polyfills.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/boot/init.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getGlobalObject.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/byteUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/getZoneJsOriginalValue.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/timer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/functionUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/typeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/mergeInto.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/jsonStringify.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/serialisation/sanitize.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/observable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/heavyCustomerDataWarning.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/contextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/boundedBuffer.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/numberUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/timeUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/stringUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/cookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/synthetics/syntheticsWorkerValues.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/eventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/addEventListener.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/context/storedContextManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/tracekit/computeStackTrace.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/user/user.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/experimentalFeatures.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/objectUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionConstants.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/browserDetection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionStoreStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionState.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/oldCookiesMigration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInCookie.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/storeStrategies/sessionInLocalStorage.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStoreOperations.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionStore.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/urlPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/intakeSites.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/endpointBuilder.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/tags.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/transportConfiguration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/configuration/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/matchOption.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/tracer.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/configuration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/commonContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/rumPublicApi.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/sendToExtension.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/rawTelemetryEvent.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/telemetry/telemetry.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/pageExitObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/domMutationObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/runOnReadyState.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/htmlDomUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/tracing/getDocumentTraceId.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/performanceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/error.types.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/eventRateLimiter/createEventRateLimiter.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/syntheticsContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/ciTestContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/limitModification.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/internalContext.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/abstractLifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/lifeCycle.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/valueHistory.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/viewContexts.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/instrumentMethod.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/xhrObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/browser/fetchObservable.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/utils/responseUtils.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/tools/readBytesFromStream.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/requestCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/trackEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/waitPageActivityEnd.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/getActionNameFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSelectorFromElement.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/clickChain.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/listenActionEvents.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/computeFrustration.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/trackClickActions.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/action/actionCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/tracekit/tracekit.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/error/trackRuntimeError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/console/consoleObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackConsoleError.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/report/reportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/trackReportError.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/error/errorCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/longTask/longTaskCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/matchRequestTiming.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/resource/resourceCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/foregroundContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViewEventCounts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstInput.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackNavigationTimings.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLargestContentfulPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackFirstHidden.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInitialViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCumulativeLayoutShift.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/interactionCountPolyfill.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackInteractionToNextPaint.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackLoadingTime.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/scroll.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/viewportObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackScrollMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewMetrics/trackCommonViewMetrics.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/trackViews.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/view/viewCollection.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/domain/session/sessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/rumSessionManager.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/batch.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/sendWithRetryStrategy.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/httpRequest.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/flushController.js","webpack://_N_E/./node_modules/@datadog/browser-core/esm/transport/startBatchWithReplica.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumBatch.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/transport/startRumEventBridge.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/urlContexts.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/browser/locationChangeObservable.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/featureFlagContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/startCustomerDataTelemetry.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/pageStateHistory.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/contexts/displayContext.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/boot/startRum.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/domain/getSessionReplayUrl.js","webpack://_N_E/./node_modules/@datadog/browser-rum-core/esm/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/types/sessionReplayConstants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/types/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/assembly.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/constants.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/privacy.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializationUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeStyleSheets.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttribute.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeAttributes.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeNode.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/serializeDocument.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/serialization/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/eventsUtils.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/viewports.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/moveObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/scrollObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mouseInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/inputObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/styleSheetObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mediaInteractionObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/frustrationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/viewportResizeObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/mutationBatch.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/mutationObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/focusObserver.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/recordIds.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/observers.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/observers/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/elementsScrollPositions.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/shadowRootsController.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/record.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/record/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/buildReplayPayload.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/replayStats.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segment.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/segmentCollection.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/segmentCollection/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/startRecording.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/domain/deflate/index.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","webpack://_N_E/./node_modules/@datadog/browser-rum/esm/entries/main.js","webpack://_N_E/./lib/tracking/datadog/types.ts","webpack://_N_E/./lib/tracking/datadog/datadogClient.ts","webpack://_N_E/./lib/useDianomiScript.ts","webpack://_N_E/./modules/CookieModal/consts.ts","webpack://_N_E/./lib/initialiseWebtrends.ts","webpack://_N_E/./lib/tracking/gaTrackingClient.ts","webpack://_N_E/./lib/tracking/gtmDataLayerClient.ts","webpack://_N_E/./lib/tracking/tiktokTrackingClient.ts","webpack://_N_E/./modules/CookieModal/CookieModal.tsx","webpack://_N_E/./modules/CookieModal/index.tsx","webpack://_N_E/./modules/Navigation/useIsNavCollapsed.ts","webpack://_N_E/./pages/_app.tsx","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/integration.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/utils/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/utils/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/utils/esm/memo.js","webpack://_N_E/./node_modules/@sentry/utils/esm/normalize.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/api.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/utils/esm/clientreport.js","webpack://_N_E/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/utils/esm/severity.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://_N_E/./node_modules/@sentry/browser/esm/client.js","webpack://_N_E/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/httpcontext.js","webpack://_N_E/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/utils/esm/ratelimit.js","webpack://_N_E/./node_modules/@sentry/browser/node_modules/@sentry/core/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/react/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/utils/esm/tracing.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics/utils.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics/index.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/request.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/router.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/index.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/performance/client.js","webpack://_N_E/./node_modules/@sentry/nextjs/node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/metadata.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/userIntegrations.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/index.client.js","webpack://_N_E/./sentry.shared.config.ts","webpack://_N_E/./sentry.client.config.ts","webpack://_N_E/./shared/routes.ts","webpack://_N_E/./shared/sentry.ts","webpack://_N_E/./theme/Colors/legacyColors.ts","webpack://_N_E/./theme/Colors/index.ts","webpack://_N_E/./theme/Palettes/default.ts","webpack://_N_E/./theme/Utils/getColor.ts","webpack://_N_E/./theme/index.ts","webpack://_N_E/./utils/isProductionBuild.ts","webpack://_N_E/./utils/isProductionEnvironment.ts","webpack://_N_E/./node_modules/next/font/google/target.css?47d0","webpack://_N_E/./node_modules/next/font/google/target.css?af7e","webpack://_N_E/./node_modules/next/font/google/target.css?64a7","webpack://_N_E/./node_modules/next/font/google/target.css","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/image.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/next/script.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://_N_E/./node_modules/polished/dist/polished.es.js","webpack://_N_E/./node_modules/process/browser.js","webpack://_N_E/./node_modules/react-facebook-pixel/dist/fb-pixel.js","webpack://_N_E/./node_modules/react-ga4/dist/format.js","webpack://_N_E/./node_modules/react-ga4/dist/ga4.js","webpack://_N_E/./node_modules/react-ga4/dist/gtag.js","webpack://_N_E/./node_modules/react-ga4/dist/index.js","webpack://_N_E/./node_modules/react-relay/ReactRelayContext.js","webpack://_N_E/./node_modules/react-relay/index.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayContainerUtils.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayContext.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayFragmentContainer.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayLocalQueryRenderer.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayPaginationContainer.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayQueryFetcher.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayQueryRenderer.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayQueryRendererContext.js","webpack://_N_E/./node_modules/react-relay/lib/ReactRelayRefetchContainer.js","webpack://_N_E/./node_modules/react-relay/lib/RelayContext.js","webpack://_N_E/./node_modules/react-relay/lib/assertFragmentMap.js","webpack://_N_E/./node_modules/react-relay/lib/buildReactRelayContainer.js","webpack://_N_E/./node_modules/react-relay/lib/getRootVariablesForFragments.js","webpack://_N_E/./node_modules/react-relay/lib/index.js","webpack://_N_E/./node_modules/react-relay/lib/isRelayEnvironment.js","webpack://_N_E/./node_modules/react-relay/lib/readContext.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/EntryPointContainer.react.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/FragmentResource.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/LRUCache.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/ProfilerContext.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/QueryResource.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/RelayEnvironmentProvider.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/loadEntryPoint.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/loadQuery.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useEntryPointLoader.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useFetchTrackingRef.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useFragment.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useFragmentNode.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useIsMountedRef.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useIsOperationNodeActive.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useLazyLoadQuery.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useLazyLoadQueryNode.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useLoadMoreFunction.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useMemoOperationDescriptor.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useMemoVariables.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useMutation.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/usePaginationFragment.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/usePreloadedQuery.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useQueryLoader.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useRefetchableFragment.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useRefetchableFragmentNode.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useRelayEnvironment.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useStaticFragmentNodeWarning.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useSubscribeToInvalidationState.js","webpack://_N_E/./node_modules/react-relay/lib/relay-hooks/useSubscription.js","webpack://_N_E/./node_modules/reakit-system/es/SystemContext.js","webpack://_N_E/./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js","webpack://_N_E/./node_modules/reakit-utils/es/_rollupPluginBabelHelpers-1f0bf8c2.js","webpack://_N_E/./node_modules/reakit-utils/es/isPlainObject.js","webpack://_N_E/./node_modules/reakit-utils/es/splitProps.js","webpack://_N_E/./node_modules/reakit-utils/es/normalizePropsAreEqual.js","webpack://_N_E/./node_modules/reakit-system/es/createComponent.js","webpack://_N_E/./node_modules/reakit-system/es/useToken.js","webpack://_N_E/./node_modules/reakit-system/es/useProps.js","webpack://_N_E/./node_modules/reakit-system/es/useOptions.js","webpack://_N_E/./node_modules/reakit-utils/es/toArray.js","webpack://_N_E/./node_modules/reakit-system/es/createHook.js","webpack://_N_E/./node_modules/reakit-system/es/useCreateElement.js","webpack://_N_E/./node_modules/reakit-utils/es/getWindow.js","webpack://_N_E/./node_modules/reakit-utils/es/canUseDOM.js","webpack://_N_E/./node_modules/reakit-utils/es/contains.js","webpack://_N_E/./node_modules/reakit-utils/es/getActiveElement.js","webpack://_N_E/./node_modules/reakit-utils/es/getDocument.js","webpack://_N_E/./node_modules/reakit-utils/es/hasFocusWithin.js","webpack://_N_E/./node_modules/reakit-utils/es/isButton.js","webpack://_N_E/./node_modules/reakit-utils/es/isObject.js","webpack://_N_E/./node_modules/reakit-utils/es/isSelfTarget.js","webpack://_N_E/./node_modules/reakit-utils/es/matches.js","webpack://_N_E/./node_modules/reakit-utils/es/shallowEqual.js","webpack://_N_E/./node_modules/reakit-utils/es/tabbable.js","webpack://_N_E/./node_modules/reakit-utils/es/useForkRef.js","webpack://_N_E/./node_modules/reakit-utils/es/useIsomorphicEffect.js","webpack://_N_E/./node_modules/reakit-utils/es/useLiveRef.js","webpack://_N_E/./node_modules/reakit-warning/es/useWarning.js","webpack://_N_E/./node_modules/reakit-warning/es/index.js","webpack://_N_E/./node_modules/reakit-utils/es/useSealedState.js","webpack://_N_E/./node_modules/reakit/es/Id/IdProvider.js","webpack://_N_E/./node_modules/reakit/es/Id/IdState.js","webpack://_N_E/./node_modules/reakit/es/Disclosure/DisclosureState.js","webpack://_N_E/./node_modules/reakit/es/Dialog/DialogState.js","webpack://_N_E/./node_modules/reakit/es/Role/Role.js","webpack://_N_E/./node_modules/reakit/es/__keys-e6a5cfbe.js","webpack://_N_E/./node_modules/reakit/es/__keys-ed7b48af.js","webpack://_N_E/./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js","webpack://_N_E/./node_modules/relay-runtime/index.js","webpack://_N_E/./node_modules/relay-runtime/lib/handlers/RelayDefaultHandlerProvider.js","webpack://_N_E/./node_modules/relay-runtime/lib/handlers/connection/ConnectionHandler.js","webpack://_N_E/./node_modules/relay-runtime/lib/handlers/connection/ConnectionInterface.js","webpack://_N_E/./node_modules/relay-runtime/lib/handlers/connection/MutationHandlers.js","webpack://_N_E/./node_modules/relay-runtime/lib/index.js","webpack://_N_E/./node_modules/relay-runtime/lib/multi-actor-environment/ActorIdentifier.js","webpack://_N_E/./node_modules/relay-runtime/lib/multi-actor-environment/ActorUtils.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/RelayDeclarativeMutationConfig.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/RelayRecordProxy.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceMutator.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceProxy.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/RelayRecordSourceSelectorProxy.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/applyOptimisticMutation.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/commitLocalUpdate.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/commitMutation.js","webpack://_N_E/./node_modules/relay-runtime/lib/mutations/validateMutation.js","webpack://_N_E/./node_modules/relay-runtime/lib/network/ConvertToExecuteFunction.js","webpack://_N_E/./node_modules/relay-runtime/lib/network/RelayNetwork.js","webpack://_N_E/./node_modules/relay-runtime/lib/network/RelayObservable.js","webpack://_N_E/./node_modules/relay-runtime/lib/network/RelayQueryResponseCache.js","webpack://_N_E/./node_modules/relay-runtime/lib/network/wrapNetworkWithLogObserver.js","webpack://_N_E/./node_modules/relay-runtime/lib/query/GraphQLTag.js","webpack://_N_E/./node_modules/relay-runtime/lib/query/PreloadableQueryRegistry.js","webpack://_N_E/./node_modules/relay-runtime/lib/query/fetchQuery.js","webpack://_N_E/./node_modules/relay-runtime/lib/query/fetchQueryInternal.js","webpack://_N_E/./node_modules/relay-runtime/lib/query/fetchQuery_DEPRECATED.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/ClientID.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/DataChecker.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/OperationExecutor.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayConcreteVariables.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernEnvironment.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernFragmentSpecResolver.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernOperationDescriptor.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernRecord.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernSelector.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayModernStore.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayOperationTracker.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayOptimisticRecordSource.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayPublishQueue.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayReader.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayRecordSource.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayRecordState.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayReferenceMarker.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayResponseNormalizer.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayStoreReactFlightUtils.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayStoreSubscriptions.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/RelayStoreUtils.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/ResolverCache.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/ResolverFragments.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/TypeID.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/ViewerPattern.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/cloneRelayHandleSourceField.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/cloneRelayScalarHandleSourceField.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/createFragmentSpecResolver.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/createRelayContext.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/defaultGetDataID.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/defaultRequiredFieldLogger.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/hasOverlappingIDs.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/isRelayModernEnvironment.js","webpack://_N_E/./node_modules/relay-runtime/lib/store/readInlineData.js","webpack://_N_E/./node_modules/relay-runtime/lib/subscription/requestSubscription.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayConcreteNode.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayDefaultHandleKey.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayError.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayFeatureFlags.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayProfiler.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/RelayReplaySubject.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/createPayloadFor3DField.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/deepFreeze.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/generateID.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getFragmentIdentifier.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getOperation.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getPaginationMetadata.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getPaginationVariables.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getPendingOperationsForFragment.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getRefetchMetadata.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getRelayHandleKey.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getRequestIdentifier.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/getValueAtPath.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/isEmptyObject.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/isPromise.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/isScalarAndEqual.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/recycleNodesInto.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/registerEnvironmentWithDevTools.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/reportMissingRequiredFields.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/resolveImmediate.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/stableCopy.js","webpack://_N_E/./node_modules/relay-runtime/lib/util/withDuration.js","webpack://_N_E/./node_modules/shallowequal/index.js","webpack://_N_E/./node_modules/styled-components/node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Enum.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Utility.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Serializer.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Prefixer.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Middleware.js","webpack://_N_E/./node_modules/styled-components/node_modules/stylis/src/Parser.js","webpack://_N_E/./node_modules/styled-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://_N_E/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://_N_E/./node_modules/@styled-system/core/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/layout/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/color/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/typography/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/flexbox/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/grid/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/border/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/background/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/position/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/space/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/shadow/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/css/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/variant/dist/index.esm.js","webpack://_N_E/./node_modules/styled-system/dist/index.esm.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/native.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/rng.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://_N_E/./node_modules/uuid/dist/esm-browser/v4.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/extends.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/objectSpread2.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/./node_modules/@swc/helpers/esm/_tagged_template_literal.js","webpack://_N_E/./node_modules/react-icons/lib/iconsManifest.mjs","webpack://_N_E/./node_modules/react-icons/lib/iconContext.mjs","webpack://_N_E/./node_modules/react-icons/lib/iconBase.mjs","webpack://_N_E/./node_modules/react-icons/lib/index.mjs","webpack://_N_E/"],"sourcesContent":["function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import React, { useState, useRef, useEffect, createContext, useMemo, useContext, useCallback } from 'react';\n\nfunction useLoadGsiScript(options = {}) {\r\n const { onScriptLoadSuccess, onScriptLoadError } = options;\r\n const [scriptLoadedSuccessfully, setScriptLoadedSuccessfully] = useState(false);\r\n const onScriptLoadSuccessRef = useRef(onScriptLoadSuccess);\r\n onScriptLoadSuccessRef.current = onScriptLoadSuccess;\r\n const onScriptLoadErrorRef = useRef(onScriptLoadError);\r\n onScriptLoadErrorRef.current = onScriptLoadError;\r\n useEffect(() => {\r\n const scriptTag = document.createElement('script');\r\n scriptTag.src = 'https://accounts.google.com/gsi/client';\r\n scriptTag.async = true;\r\n scriptTag.defer = true;\r\n scriptTag.onload = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(true);\r\n (_a = onScriptLoadSuccessRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadSuccessRef);\r\n };\r\n scriptTag.onerror = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(false);\r\n (_a = onScriptLoadErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadErrorRef);\r\n };\r\n document.body.appendChild(scriptTag);\r\n return () => {\r\n document.body.removeChild(scriptTag);\r\n };\r\n }, []);\r\n return scriptLoadedSuccessfully;\r\n}\n\nconst GoogleOAuthContext = createContext(null);\r\nfunction GoogleOAuthProvider({ clientId, onScriptLoadSuccess, onScriptLoadError, children, }) {\r\n const scriptLoadedSuccessfully = useLoadGsiScript({\r\n onScriptLoadSuccess,\r\n onScriptLoadError,\r\n });\r\n const contextValue = useMemo(() => ({\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n }), [clientId, scriptLoadedSuccessfully]);\r\n return (React.createElement(GoogleOAuthContext.Provider, { value: contextValue }, children));\r\n}\r\nfunction useGoogleOAuth() {\r\n const context = useContext(GoogleOAuthContext);\r\n if (!context) {\r\n throw new Error('Google OAuth components must be used within GoogleOAuthProvider');\r\n }\r\n return context;\r\n}\n\nfunction extractClientId(credentialResponse) {\r\n var _a;\r\n const clientId = (_a = credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.clientId) !== null && _a !== void 0 ? _a : credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.client_id;\r\n return clientId;\r\n}\n\nconst containerHeightMap = { large: 40, medium: 32, small: 20 };\r\nfunction GoogleLogin({ onSuccess, onError, useOneTap, promptMomentNotification, type = 'standard', theme = 'outline', size = 'large', text, shape, logo_alignment, width, locale, click_listener, ...props }) {\r\n const btnContainerRef = useRef(null);\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b, _c;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.id.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n ...props,\r\n });\r\n (_b = window.google) === null || _b === void 0 ? void 0 : _b.accounts.id.renderButton(btnContainerRef.current, {\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n click_listener,\r\n });\r\n if (useOneTap)\r\n (_c = window.google) === null || _c === void 0 ? void 0 : _c.accounts.id.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a;\r\n if (useOneTap)\r\n (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.id.cancel();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n useOneTap,\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n ]);\r\n return (React.createElement(\"div\", { ref: btnContainerRef, style: { height: containerHeightMap[size] } }));\r\n}\n\nfunction googleLogout() {\r\n var _a;\r\n (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.id.disableAutoSelect();\r\n}\n\n/* eslint-disable import/export */\r\nfunction useGoogleLogin({ flow = 'implicit', scope = '', onSuccess, onError, onNonOAuthError, overrideScope, state, ...props }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const clientRef = useRef();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const onNonOAuthErrorRef = useRef(onNonOAuthError);\r\n onNonOAuthErrorRef.current = onNonOAuthError;\r\n useEffect(() => {\r\n var _a;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n const clientMethod = flow === 'implicit' ? 'initTokenClient' : 'initCodeClient';\r\n const client = (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.oauth2[clientMethod]({\r\n client_id: clientId,\r\n scope: overrideScope ? scope : `openid profile email ${scope}`,\r\n callback: (response) => {\r\n var _a, _b;\r\n if (response.error)\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef, response);\r\n (_b = onSuccessRef.current) === null || _b === void 0 ? void 0 : _b.call(onSuccessRef, response);\r\n },\r\n error_callback: (nonOAuthError) => {\r\n var _a;\r\n (_a = onNonOAuthErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onNonOAuthErrorRef, nonOAuthError);\r\n },\r\n state,\r\n ...props,\r\n });\r\n clientRef.current = client;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [clientId, scriptLoadedSuccessfully, flow, scope, state]);\r\n const loginImplicitFlow = useCallback((overrideConfig) => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestAccessToken(overrideConfig); }, []);\r\n const loginAuthCodeFlow = useCallback(() => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestCode(); }, []);\r\n return flow === 'implicit' ? loginImplicitFlow : loginAuthCodeFlow;\r\n}\n\nfunction useGoogleOneTapLogin({ onSuccess, onError, promptMomentNotification, cancel_on_tap_outside, hosted_domain, }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.id.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n hosted_domain,\r\n cancel_on_tap_outside,\r\n });\r\n (_b = window.google) === null || _b === void 0 ? void 0 : _b.accounts.id.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a;\r\n (_a = window.google) === null || _a === void 0 ? void 0 : _a.accounts.id.cancel();\r\n };\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n cancel_on_tap_outside,\r\n hosted_domain,\r\n ]);\r\n}\n\n/**\r\n * Checks if the user granted all the specified scope or scopes\r\n * @returns True if all the scopes are granted\r\n */\r\nfunction hasGrantedAllScopesGoogle(tokenResponse, firstScope, ...restScopes) {\r\n if (!window.google)\r\n return false;\r\n return window.google.accounts.oauth2.hasGrantedAllScopes(tokenResponse, firstScope, ...restScopes);\r\n}\n\n/**\r\n * Checks if the user granted any of the specified scope or scopes.\r\n * @returns True if any of the scopes are granted\r\n */\r\nfunction hasGrantedAnyScopeGoogle(tokenResponse, firstScope, ...restScopes) {\r\n if (!window.google)\r\n return false;\r\n return window.google.accounts.oauth2.hasGrantedAnyScope(tokenResponse, firstScope, ...restScopes);\r\n}\n\nexport { GoogleLogin, GoogleOAuthProvider, googleLogout, hasGrantedAllScopesGoogle, hasGrantedAnyScopeGoogle, useGoogleLogin, useGoogleOneTapLogin };\n","import { getCurrentHub } from './hub.js';\n\n// Note: All functions in this file are typed with a return value of `ReturnType`,\n// where HUB_FUNCTION is some method on the Hub class.\n//\n// This is done to make sure the top level SDK methods stay in sync with the hub methods.\n// Although every method here has an explicit return type, some of them (that map to void returns) do not\n// contain `return` keywords. This is done to save on bundle size, as `return` is not minifiable.\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @param captureContext Additional scope data to apply to exception event.\n * @returns The generated eventId.\n */\nfunction captureException(exception, captureContext) {\n return getCurrentHub().captureException(exception, { captureContext });\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nfunction captureMessage(\n message,\n captureContext,\n) {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentHub().captureMessage(message, level, context);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nfunction captureEvent(event, hint) {\n return getCurrentHub().captureEvent(event, hint);\n}\n\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nfunction configureScope(callback) {\n getCurrentHub().configureScope(callback);\n}\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nfunction addBreadcrumb(breadcrumb) {\n getCurrentHub().addBreadcrumb(breadcrumb);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nfunction setContext(name, context) {\n getCurrentHub().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nfunction setExtras(extras) {\n getCurrentHub().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nfunction setExtra(key, extra) {\n getCurrentHub().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nfunction setTags(tags) {\n getCurrentHub().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nfunction setTag(key, value) {\n getCurrentHub().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nfunction setUser(user) {\n getCurrentHub().setUser(user);\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nfunction withScope(callback) {\n getCurrentHub().withScope(callback);\n}\n\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * 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 */\nfunction startTransaction(\n context,\n customSamplingContext,\n) {\n return getCurrentHub().startTransaction(\n {\n metadata: { source: 'custom' },\n ...context,\n },\n customSamplingContext,\n );\n}\n\nexport { addBreadcrumb, captureEvent, captureException, captureMessage, configureScope, setContext, setExtra, setExtras, setTag, setTags, setUser, startTransaction, withScope };\n//# sourceMappingURL=exports.js.map\n","import { uuid4, dateTimestampInSeconds, consoleSandbox, logger, getGlobalObject, getGlobalSingleton, isNodeEnv } from '@sentry/utils';\nimport { Scope } from './scope.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\n\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nvar API_VERSION = 4;\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n\n/**\n * A layer in the process stack.\n * @hidden\n */\n\n/**\n * @inheritDoc\n */\nclass Hub {\n /** Is a {@link Layer}[] containing the client and scope */\n __init() {this._stack = [{}];}\n\n /** Contains the last event id of a captured event. */\n \n\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n constructor(client, scope = new Scope(), _version = API_VERSION) {;this._version = _version;Hub.prototype.__init.call(this);\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n\n /**\n * @inheritDoc\n */\n isOlderThan(version) {\n return this._version < version;\n }\n\n /**\n * @inheritDoc\n */\n bindClient(client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n }\n\n /**\n * @inheritDoc\n */\n pushScope() {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * @inheritDoc\n */\n popScope() {\n if (this.getStack().length <= 1) return false;\n return !!this.getStack().pop();\n }\n\n /**\n * @inheritDoc\n */\n withScope(callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n } finally {\n this.popScope();\n }\n }\n\n /**\n * @inheritDoc\n */\n getClient() {\n return this.getStackTop().client ;\n }\n\n /** Returns the scope of the top stack. */\n getScope() {\n return this.getStackTop().scope;\n }\n\n /** Returns the scope stack for domains or the process. */\n getStack() {\n return this._stack;\n }\n\n /** Returns the topmost scope layer in the order domain > local > process. */\n getStackTop() {\n return this._stack[this._stack.length - 1];\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error('Sentry syntheticException');\n this._withClient((client, scope) => {\n client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n ) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var syntheticException = new Error(message);\n this._withClient((client, scope) => {\n client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n scope,\n );\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n\n this._withClient((client, scope) => {\n client.captureEvent(event, { ...hint, event_id: eventId }, scope);\n });\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n lastEventId() {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, hint) {\n const { scope, client } = this.getStackTop();\n\n if (!scope || !client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } =\n (client.getOptions && client.getOptions()) || {};\n\n if (maxBreadcrumbs <= 0) return;\n\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = { timestamp, ...breadcrumb };\n var finalBreadcrumb = beforeBreadcrumb\n ? (consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)) )\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n var scope = this.getScope();\n if (scope) scope.setUser(user);\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n var scope = this.getScope();\n if (scope) scope.setTags(tags);\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n var scope = this.getScope();\n if (scope) scope.setExtras(extras);\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n var scope = this.getScope();\n if (scope) scope.setTag(key, value);\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n var scope = this.getScope();\n if (scope) scope.setExtra(key, extra);\n }\n\n /**\n * @inheritDoc\n */\n setContext(name, context) {\n var scope = this.getScope();\n if (scope) scope.setContext(name, context);\n }\n\n /**\n * @inheritDoc\n */\n configureScope(callback) {\n const { scope, client } = this.getStackTop();\n if (scope && client) {\n callback(scope);\n }\n }\n\n /**\n * @inheritDoc\n */\n run(callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n } finally {\n makeMain(oldHub);\n }\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n var client = this.getClient();\n if (!client) return null;\n try {\n return client.getIntegration(integration);\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Hub`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n startTransaction(context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n }\n\n /**\n * @inheritDoc\n */\n traceHeaders() {\n return this._callExtensionMethod('traceHeaders');\n }\n\n /**\n * @inheritDoc\n */\n captureSession(endSession = false) {\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n\n // only send the update\n this._sendSessionUpdate();\n }\n\n /**\n * @inheritDoc\n */\n endSession() {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n closeSession(session);\n }\n this._sendSessionUpdate();\n\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n }\n\n /**\n * @inheritDoc\n */\n startSession(context) {\n const { scope, client } = this.getStackTop();\n const { release, environment } = (client && client.getOptions()) || {};\n\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n const { userAgent } = global.navigator || {};\n\n var session = makeSession({\n release,\n environment,\n ...(scope && { user: scope.getUser() }),\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n this.endSession();\n\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n\n return session;\n }\n\n /**\n * Returns if default PII should be sent to Sentry and propagated in ourgoing requests\n * when Tracing is used.\n */\n shouldSendDefaultPii() {\n var client = this.getClient();\n var options = client && client.getOptions();\n return Boolean(options && options.sendDefaultPii);\n }\n\n /**\n * Sends the current Session on the scope\n */\n _sendSessionUpdate() {\n const { scope, client } = this.getStackTop();\n if (!scope) return;\n\n var session = scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n }\n\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n _withClient(callback) {\n const { scope, client } = this.getStackTop();\n if (client) {\n callback(client, scope);\n }\n }\n\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n _callExtensionMethod(method, ...args) {\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Extension method ${method} couldn't be found, doing nothing.`);\n }\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nfunction getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nfunction makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nfunction getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n } catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nfunction getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', () => new Hub(), carrier);\n}\n\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nfunction setHubOnCarrier(carrier, hub) {\n if (!carrier) return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n\nexport { API_VERSION, Hub, getCurrentHub, getHubFromCarrier, getMainCarrier, makeMain, setHubOnCarrier };\n//# sourceMappingURL=hub.js.map\n","import { isPlainObject, dateTimestampInSeconds, getGlobalSingleton, SyncPromise, logger, isThenable } from '@sentry/utils';\nimport { updateSession } from './session.js';\n\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nclass Scope {\n /** Flag if notifying is happening. */\n \n\n /** Callback for client to receive scope changes. */\n \n\n /** Callback list that will be called after {@link applyToEvent}. */\n \n\n /** Array of breadcrumbs. */\n \n\n /** User */\n \n\n /** Tags */\n \n\n /** Extra */\n \n\n /** Contexts */\n \n\n /** Attachments */\n \n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n \n\n /** Fingerprint */\n \n\n /** Severity */\n \n\n /** Transaction Name */\n \n\n /** Span */\n \n\n /** Session */\n \n\n /** Request Mode Session Status */\n \n\n constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n }\n\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n static clone(scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = [...scope._breadcrumbs];\n newScope._tags = { ...scope._tags };\n newScope._extra = { ...scope._extra };\n newScope._contexts = { ...scope._contexts };\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = [...scope._eventProcessors];\n newScope._requestSession = scope._requestSession;\n newScope._attachments = [...scope._attachments];\n }\n return newScope;\n }\n\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n addScopeListener(callback) {\n this._scopeListeners.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n addEventProcessor(callback) {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setUser(user) {\n this._user = user || {};\n if (this._session) {\n updateSession(this._session, { user });\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getUser() {\n return this._user;\n }\n\n /**\n * @inheritDoc\n */\n getRequestSession() {\n return this._requestSession;\n }\n\n /**\n * @inheritDoc\n */\n setRequestSession(requestSession) {\n this._requestSession = requestSession;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTags(tags) {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this._tags = { ...this._tags, [key]: value };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtras(extras) {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setExtra(key, extra) {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setFingerprint(fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setLevel(\n level,\n ) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setTransactionName(name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setContext(key, context) {\n if (context === null) {\n delete this._contexts[key];\n } else {\n this._contexts = { ...this._contexts, [key]: context };\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setSpan(span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSpan() {\n return this._span;\n }\n\n /**\n * @inheritDoc\n */\n getTransaction() {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n }\n\n /**\n * @inheritDoc\n */\n setSession(session) {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getSession() {\n return this._session;\n }\n\n /**\n * @inheritDoc\n */\n update(captureContext) {\n if (!captureContext) {\n return this;\n }\n\n if (typeof captureContext === 'function') {\n var updatedScope = (captureContext )(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n\n if (captureContext instanceof Scope) {\n this._tags = { ...this._tags, ...captureContext._tags };\n this._extra = { ...this._extra, ...captureContext._extra };\n this._contexts = { ...this._contexts, ...captureContext._contexts };\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n } else if (isPlainObject(captureContext)) {\n captureContext = captureContext ;\n this._tags = { ...this._tags, ...captureContext.tags };\n this._extra = { ...this._extra, ...captureContext.extra };\n this._contexts = { ...this._contexts, ...captureContext.contexts };\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clear() {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n this._attachments = [];\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n var mergedBreadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n };\n this._breadcrumbs = [...this._breadcrumbs, mergedBreadcrumb].slice(-maxCrumbs);\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n clearBreadcrumbs() {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * @inheritDoc\n */\n addAttachment(attachment) {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getAttachments() {\n return this._attachments;\n }\n\n /**\n * @inheritDoc\n */\n clearAttachments() {\n this._attachments = [];\n return this;\n }\n\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n applyToEvent(event, hint = {}) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = { ...this._extra, ...event.extra };\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = { ...this._tags, ...event.tags };\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = { ...this._user, ...event.user };\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = { ...this._contexts, ...event.contexts };\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = { trace: this._span.getTraceContext(), ...event.contexts };\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = { transaction: transactionName, ...event.tags };\n }\n }\n\n this._applyFingerprint(event);\n\n event.breadcrumbs = [...(event.breadcrumbs || []), ...this._breadcrumbs];\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n\n event.sdkProcessingMetadata = { ...event.sdkProcessingMetadata, ...this._sdkProcessingMetadata };\n\n return this._notifyEventProcessors([...getGlobalEventProcessors(), ...this._eventProcessors], event, hint);\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n setSDKProcessingMetadata(newData) {\n this._sdkProcessingMetadata = { ...this._sdkProcessingMetadata, ...newData };\n\n return this;\n }\n\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n _notifyEventProcessors(\n processors,\n event,\n hint,\n index = 0,\n ) {\n return new SyncPromise((resolve, reject) => {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n } else {\n var result = processor({ ...event }, hint) ;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n processor.id &&\n result === null &&\n logger.log(`Event processor \"${processor.id}\" dropped event`);\n\n if (isThenable(result)) {\n void result\n .then(final => this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve))\n .then(null, reject);\n } else {\n void this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n }\n\n /**\n * This will be called on every set call.\n */\n _notifyScopeListeners() {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n _applyFingerprint(event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n }\n}\n\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', () => []);\n}\n\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nfunction addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n\nexport { Scope, addGlobalEventProcessor };\n//# sourceMappingURL=scope.js.map\n","import { timestampInSeconds, uuid4, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nfunction makeSession(context) {\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n\n var session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see BaseClient.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\nfunction updateSession(session, context = {}) {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n var duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nfunction closeSession(session, status) {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session) {\n return dropUndefinedKeys({\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n });\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { getActiveTransaction } from './utils.js';\n\n/**\n * Configures global error listeners\n */\nfunction registerErrorInstrumentation() {\n addInstrumentationHandler('error', errorCallback);\n addInstrumentationHandler('unhandledrejection', errorCallback);\n}\n\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var status = 'internal_error';\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Transaction: ${status} -> Global error occured`);\n activeTransaction.setStatus(status);\n }\n}\n\nexport { registerErrorInstrumentation };\n//# sourceMappingURL=errors.js.map\n","import { getMainCarrier } from '@sentry/hub';\nimport { logger, isNaN, dynamicRequire, loadModule, isNodeEnv } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors.js';\nimport { IdleTransaction } from './idletransaction.js';\nimport { Transaction } from './transaction.js';\nimport { hasTracingEnabled } from './utils.js';\n\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\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 * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(\n transaction,\n options,\n samplingContext,\n) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\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 if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` 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.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n } else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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 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 transaction.sampled = Math.random() < (sampleRate );\n\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] starting ${transaction.op} transaction - ${transaction.name}`);\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 */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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\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 \n transactionContext,\n customSamplingContext,\n) {\n var client = this.getClient();\n var options = (client && client.getOptions()) || {};\n\n let transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n }\n return transaction;\n}\n\n/**\n * Create new idle transaction.\n */\nfunction startIdleTransaction(\n hub,\n transactionContext,\n idleTimeout,\n finalTimeout,\n onScope,\n customSamplingContext,\n) {\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {};\n\n let transaction = new IdleTransaction(transactionContext, hub, idleTimeout, finalTimeout, onScope);\n transaction = sample(transaction, options, {\n parentSampled: transactionContext.parentSampled,\n transactionContext,\n ...customSamplingContext,\n });\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans ));\n }\n return transaction;\n}\n\n/**\n * @private\n */\nfunction _addTracingExtensions() {\n var 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\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n\n var packageToIntegrationMapping = {\n mongodb() {\n var integration = dynamicRequire(module, './integrations/node/mongo') \n\n;\n return new integration.Mongo();\n },\n mongoose() {\n var integration = dynamicRequire(module, './integrations/node/mongo') \n\n;\n return new integration.Mongo({ mongoose: true });\n },\n mysql() {\n var integration = dynamicRequire(module, './integrations/node/mysql') \n\n;\n return new integration.Mysql();\n },\n pg() {\n var integration = dynamicRequire(module, './integrations/node/postgres') \n\n;\n return new integration.Postgres();\n },\n };\n\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(moduleName => !!loadModule(moduleName))\n .map(pkg => {\n try {\n return packageToIntegrationMapping[pkg]();\n } catch (e) {\n return undefined;\n }\n })\n .filter(p => p) ;\n\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = [...(carrier.__SENTRY__.integrations || []), ...mappedPackages];\n }\n}\n\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nfunction addExtensionMethods() {\n _addTracingExtensions();\n\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n\nexport { _addTracingExtensions, addExtensionMethods, startIdleTransaction };\n//# sourceMappingURL=hubextensions.js.map\n","import { timestampWithMs, logger } from '@sentry/utils';\nimport { SpanRecorder } from './span.js';\nimport { Transaction } from './transaction.js';\n\nvar DEFAULT_IDLE_TIMEOUT = 1000;\nvar DEFAULT_FINAL_TIMEOUT = 30000;\nvar HEARTBEAT_INTERVAL = 5000;\n\n/**\n * @inheritDoc\n */\nclass IdleTransactionSpanRecorder extends SpanRecorder {\n constructor(\n _pushActivity,\n _popActivity,\n transactionSpanId,\n maxlen,\n ) {\n super(maxlen);this._pushActivity = _pushActivity;this._popActivity = _popActivity;this.transactionSpanId = transactionSpanId;;\n }\n\n /**\n * @inheritDoc\n */\n add(span) {\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.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = (endTimestamp) => {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n this._popActivity(span.spanId);\n };\n\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n\n super.add(span);\n }\n}\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 */\nclass IdleTransaction extends Transaction {\n // Activities store a list of active spans\n __init() {this.activities = {};}\n\n // Track state of activities in previous heartbeat\n \n\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n __init2() {this._heartbeatCounter = 0;}\n\n // We should not use heartbeat if we finished a transaction\n __init3() {this._finished = false;}\n\n __init4() {this._beforeFinishCallbacks = [];}\n\n /**\n * Timer that tracks Transaction idleTimeout\n */\n \n\n constructor(\n transactionContext,\n _idleHub,\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 _idleTimeout = DEFAULT_IDLE_TIMEOUT,\n /**\n * The final value in ms that a transaction cannot exceed\n */\n _finalTimeout = DEFAULT_FINAL_TIMEOUT,\n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope = false,\n ) {\n super(transactionContext, _idleHub);this._idleHub = _idleHub;this._idleTimeout = _idleTimeout;this._finalTimeout = _finalTimeout;this._onScope = _onScope;IdleTransaction.prototype.__init.call(this);IdleTransaction.prototype.__init2.call(this);IdleTransaction.prototype.__init3.call(this);IdleTransaction.prototype.__init4.call(this);;\n\n if (_onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Setting idle transaction on scope. Span ID: ${this.spanId}`);\n _idleHub.configureScope(scope => scope.setSpan(this));\n }\n\n this._startIdleTimeout();\n setTimeout(() => {\n if (!this._finished) {\n this.setStatus('deadline_exceeded');\n this.finish();\n }\n }, this._finalTimeout);\n }\n\n /** {@inheritDoc} */\n finish(endTimestamp = timestampWithMs()) {\n this._finished = true;\n this.activities = {};\n\n if (this.spanRecorder) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n\n for (var callback of this._beforeFinishCallbacks) {\n callback(this, endTimestamp);\n }\n\n this.spanRecorder.spans = this.spanRecorder.spans.filter((span) => {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === this.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 (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n '[Tracing] discarding Span since it happened after Transaction was finished',\n JSON.stringify(span, undefined, 2),\n );\n }\n return keepSpan;\n });\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] flushing IdleTransaction');\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && 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 clearActiveTransaction(this._idleHub);\n }\n\n return super.finish(endTimestamp);\n }\n\n /**\n * Register a callback function that gets excecuted 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 registerBeforeFinishCallback(callback) {\n this._beforeFinishCallbacks.push(callback);\n }\n\n /**\n * @inheritDoc\n */\n initSpanRecorder(maxlen) {\n if (!this.spanRecorder) {\n var pushActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._pushActivity(id);\n };\n var popActivity = (id) => {\n if (this._finished) {\n return;\n }\n this._popActivity(id);\n };\n\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n\n // Start heartbeat so that transactions do not run forever.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * Cancels the existing idletimeout, if there is one\n */\n _cancelIdleTimeout() {\n if (this._idleTimeoutID) {\n clearTimeout(this._idleTimeoutID);\n this._idleTimeoutID = undefined;\n }\n }\n\n /**\n * Creates an idletimeout\n */\n _startIdleTimeout(endTimestamp) {\n this._cancelIdleTimeout();\n this._idleTimeoutID = setTimeout(() => {\n if (!this._finished && Object.keys(this.activities).length === 0) {\n this.finish(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 _pushActivity(spanId) {\n this._cancelIdleTimeout();\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] pushActivity: ${spanId}`);\n this.activities[spanId] = true;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && 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 _popActivity(spanId) {\n if (this.activities[spanId]) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] popActivity ${spanId}`);\n delete this.activities[spanId];\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n\n if (Object.keys(this.activities).length === 0) {\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var endTimestamp = timestampWithMs() + this._idleTimeout / 1000;\n this._startIdleTimeout(endTimestamp);\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 _beat() {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n\n var heartbeatString = Object.keys(this.activities).join('');\n\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n } else {\n this._heartbeatCounter = 1;\n }\n\n this._prevHeartbeatString = heartbeatString;\n\n if (this._heartbeatCounter >= 3) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.finish();\n } else {\n this._pingHeartbeat();\n }\n }\n\n /**\n * Pings the heartbeat\n */\n _pingHeartbeat() {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`pinging Heartbeat -> current counter: ${this._heartbeatCounter}`);\n setTimeout(() => {\n this._beat();\n }, HEARTBEAT_INTERVAL);\n }\n}\n\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n}\n\nexport { DEFAULT_FINAL_TIMEOUT, DEFAULT_IDLE_TIMEOUT, HEARTBEAT_INTERVAL, IdleTransaction, IdleTransactionSpanRecorder };\n//# sourceMappingURL=idletransaction.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { uuid4, timestampWithMs, dropUndefinedKeys } from '@sentry/utils';\n\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nclass SpanRecorder {\n __init() {this.spans = [];}\n\n constructor(maxlen = 1000) {;SpanRecorder.prototype.__init.call(this);\n this._maxlen = maxlen;\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 add(span) {\n if (this.spans.length > this._maxlen) {\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 */\nclass Span {\n /**\n * @inheritDoc\n */\n __init2() {this.traceId = uuid4();}\n\n /**\n * @inheritDoc\n */\n __init3() {this.spanId = uuid4().substring(16);}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * Internal keeper of the status\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * Timestamp in seconds when the span was created.\n */\n __init4() {this.startTimestamp = timestampWithMs();}\n\n /**\n * Timestamp in seconds when the span ended.\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n __init5() {this.tags = {};}\n\n /**\n * @inheritDoc\n */\n __init6() {this.data = {};}\n\n /**\n * List of spans that were finalized\n */\n \n\n /**\n * @inheritDoc\n */\n \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 constructor(spanContext) {;Span.prototype.__init2.call(this);Span.prototype.__init3.call(this);Span.prototype.__init4.call(this);Span.prototype.__init5.call(this);Span.prototype.__init6.call(this);\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\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.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n\n /**\n * @inheritDoc\n */\n startChild(\n spanContext,\n ) {\n var childSpan = new Span({\n ...spanContext,\n parentSpanId: this.spanId,\n sampled: this.sampled,\n traceId: this.traceId,\n });\n\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n\n childSpan.transaction = this.transaction;\n\n return childSpan;\n }\n\n /**\n * @inheritDoc\n */\n setTag(key, value) {\n this.tags = { ...this.tags, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setData(key, value) {\n this.data = { ...this.data, [key]: value };\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setStatus(value) {\n this.status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n setHttpStatus(httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n }\n\n /**\n * @inheritDoc\n */\n isSuccess() {\n return this.status === 'ok';\n }\n\n /**\n * @inheritDoc\n */\n finish(endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n }\n\n /**\n * @inheritDoc\n */\n toTraceparent() {\n let sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return `${this.traceId}-${this.spanId}${sampledString}`;\n }\n\n /**\n * @inheritDoc\n */\n toContext() {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n updateWithContext(spanContext) {\n this.data = _nullishCoalesce(spanContext.data, () => ( {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = _nullishCoalesce(spanContext.spanId, () => ( this.spanId));\n this.startTimestamp = _nullishCoalesce(spanContext.startTimestamp, () => ( this.startTimestamp));\n this.status = spanContext.status;\n this.tags = _nullishCoalesce(spanContext.tags, () => ( {}));\n this.traceId = _nullishCoalesce(spanContext.traceId, () => ( this.traceId));\n\n return this;\n }\n\n /**\n * @inheritDoc\n */\n getTraceContext()\n\n {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n }\n\n /**\n * @inheritDoc\n */\n toJSON()\n\n {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n }\n}\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 */\nfunction spanStatusfromHttpCode(httpStatus) {\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\nexport { Span, SpanRecorder, spanStatusfromHttpCode };\n//# sourceMappingURL=span.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getCurrentHub } from '@sentry/hub';\nimport { logger, dropUndefinedKeys, isBaggageMutable, createBaggage, getSentryBaggageItems } from '@sentry/utils';\nimport { Span, SpanRecorder } from './span.js';\n\n/** JSDoc */\nclass Transaction extends Span {\n \n\n /**\n * The reference to the current hub.\n */\n \n\n __init() {this._measurements = {};}\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 constructor(transactionContext, hub) {\n super(transactionContext);Transaction.prototype.__init.call(this);;\n\n this._hub = hub || getCurrentHub();\n\n this._name = transactionContext.name || '';\n\n this.metadata = transactionContext.metadata || {};\n this._trimEnd = transactionContext.trimEnd;\n\n // this is because transactions are also spans, and spans have a transaction pointer\n this.transaction = this;\n }\n\n /** Getter for `name` property */\n get name() {\n return this._name;\n }\n\n /** Setter for `name` property, which also sets `source` */\n set name(newName) {\n this._name = newName;\n this.metadata.source = 'custom';\n }\n\n /**\n * JSDoc\n */\n setName(name, source = 'custom') {\n this.name = name;\n this.metadata.source = source;\n }\n\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n initSpanRecorder(maxlen = 1000) {\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n }\n\n /**\n * @inheritDoc\n */\n setMeasurement(name, value, unit = '') {\n this._measurements[name] = { value, unit };\n }\n\n /**\n * @inheritDoc\n */\n setMetadata(newMetadata) {\n this.metadata = { ...this.metadata, ...newMetadata };\n }\n\n /**\n * @inheritDoc\n */\n finish(endTimestamp) {\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n\n if (!this.name) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n\n // just sets the end timestamp\n super.finish(endTimestamp);\n\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n\n var client = this._hub.getClient();\n if (client) {\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return undefined;\n }\n\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(s => s !== this && s.endTimestamp) : [];\n\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce((prev, current) => {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n\n var metadata = this.metadata;\n\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: {\n ...metadata,\n baggage: this.getBaggage(),\n },\n ...(metadata.source && {\n transaction_info: {\n source: metadata.source,\n },\n }),\n };\n\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n\n if (hasMeasurements) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Finishing ${this.op} transaction: ${this.name}.`);\n\n return this._hub.captureEvent(transaction);\n }\n\n /**\n * @inheritDoc\n */\n toContext() {\n var 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 updateWithContext(transactionContext) {\n super.updateWithContext(transactionContext);\n\n this.name = _nullishCoalesce(transactionContext.name, () => ( ''));\n\n this._trimEnd = transactionContext.trimEnd;\n\n return this;\n }\n\n /**\n * @inheritdoc\n *\n * @experimental\n */\n getBaggage() {\n var existingBaggage = this.metadata.baggage;\n\n // Only add Sentry baggage items to baggage, if baggage does not exist yet or it is still\n // empty and mutable\n var finalBaggage =\n !existingBaggage || isBaggageMutable(existingBaggage)\n ? this._populateBaggageWithSentryValues(existingBaggage)\n : existingBaggage;\n\n // Update the baggage stored on the transaction.\n this.metadata.baggage = finalBaggage;\n\n return finalBaggage;\n }\n\n /**\n * Collects and adds data to the passed baggage object.\n *\n * Note: This function does not explicitly check if the passed baggage object is allowed\n * to be modified. Implicitly, `setBaggageValue` will not make modification to the object\n * if it was already set immutable.\n *\n * After adding the data, the baggage object is set immutable to prevent further modifications.\n *\n * @param baggage\n *\n * @returns modified and immutable baggage object\n */\n _populateBaggageWithSentryValues(baggage = createBaggage({})) {\n var hub = this._hub || getCurrentHub();\n var client = hub && hub.getClient();\n\n if (!client) return baggage;\n\n const { environment, release } = client.getOptions() || {};\n const { publicKey: public_key } = client.getDsn() || {};\n\n var rate = this.metadata && this.metadata.transactionSampling && this.metadata.transactionSampling.rate;\n var sample_rate =\n rate !== undefined\n ? rate.toLocaleString('fullwide', { useGrouping: false, maximumFractionDigits: 16 })\n : undefined;\n\n var scope = hub.getScope();\n const { segment: user_segment } = (scope && scope.getUser()) || {};\n\n var source = this.metadata.source;\n var transaction = source && source !== 'url' ? this.name : undefined;\n\n return createBaggage(\n dropUndefinedKeys({\n environment,\n release,\n transaction,\n user_segment,\n public_key,\n trace_id: this.traceId,\n sample_rate,\n ...getSentryBaggageItems(baggage), // keep user-added values\n } ),\n '',\n false, // set baggage immutable\n );\n }\n}\n\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map\n","import { getCurrentHub } from '@sentry/hub';\nexport { TRACEPARENT_REGEXP, extractTraceparentData, stripUrlQueryAndFragment } from '@sentry/utils';\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 */\nfunction hasTracingEnabled(\n maybeOptions,\n) {\n var client = getCurrentHub().getClient();\n var options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n\n/** Grabs active transaction off scope, if any */\nfunction getActiveTransaction(maybeHub) {\n var hub = maybeHub || getCurrentHub();\n var scope = hub.getScope();\n return scope && (scope.getTransaction() );\n}\n\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nfunction msToSec(time) {\n return time / 1000;\n}\n\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nfunction secToMs(time) {\n return time * 1000;\n}\n\nexport { getActiveTransaction, hasTracingEnabled, msToSec, secToMs };\n//# sourceMappingURL=utils.js.map\n","import { isString } from './is.js';\nimport { logger } from './logger.js';\n\nvar BAGGAGE_HEADER_NAME = 'baggage';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nvar SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nvar MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/** Create an instance of Baggage */\nfunction createBaggage(initItems, baggageString = '', mutable = true) {\n return [{ ...initItems }, baggageString, mutable];\n}\n\n/** Get a value from baggage */\nfunction getBaggageValue(baggage, key) {\n return baggage[0][key];\n}\n\n/** Add a value to baggage */\nfunction setBaggageValue(baggage, key, value) {\n if (isBaggageMutable(baggage)) {\n baggage[0][key] = value;\n }\n}\n\n/** Check if the Sentry part of the passed baggage (i.e. the first element in the tuple) is empty */\nfunction isSentryBaggageEmpty(baggage) {\n return Object.keys(baggage[0]).length === 0;\n}\n\n/** Returns Sentry specific baggage values */\nfunction getSentryBaggageItems(baggage) {\n return baggage[0];\n}\n\n/**\n * Returns 3rd party baggage string of @param baggage\n * @param baggage\n */\nfunction getThirdPartyBaggage(baggage) {\n return baggage[1];\n}\n\n/**\n * Checks if baggage is mutable\n * @param baggage\n * @returns true if baggage is mutable, else false\n */\nfunction isBaggageMutable(baggage) {\n return baggage[2];\n}\n\n/**\n * Sets the passed baggage immutable\n * @param baggage\n */\nfunction setBaggageImmutable(baggage) {\n baggage[2] = false;\n}\n\n/** Serialize a baggage object */\nfunction serializeBaggage(baggage) {\n return Object.keys(baggage[0]).reduce((prev, key) => {\n var val = baggage[0][key] ;\n var baggageEntry = `${SENTRY_BAGGAGE_KEY_PREFIX}${encodeURIComponent(key)}=${encodeURIComponent(val)}`;\n var newVal = prev === '' ? baggageEntry : `${prev},${baggageEntry}`;\n if (newVal.length > MAX_BAGGAGE_STRING_LENGTH) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Not adding key: ${key} with val: ${val} to baggage due to exceeding baggage size limits.`);\n return prev;\n } else {\n return newVal;\n }\n }, baggage[1]);\n}\n\n/**\n * Parse a baggage header from a string or a string array and return a Baggage object\n *\n * If @param includeThirdPartyEntries is set to true, third party baggage entries are added to the Baggage object\n * (This is necessary for merging potentially pre-existing baggage headers in outgoing requests with\n * our `sentry-` values)\n */\nfunction parseBaggageHeader(\n inputBaggageValue,\n includeThirdPartyEntries = false,\n) {\n // Adding this check here because we got reports of this function failing due to the input value\n // not being a string. This debug log might help us determine what's going on here.\n if ((!Array.isArray(inputBaggageValue) && !isString(inputBaggageValue)) || typeof inputBaggageValue === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n '[parseBaggageHeader] Received input value of incompatible type: ',\n typeof inputBaggageValue,\n inputBaggageValue,\n );\n\n // Gonna early-return an empty baggage object so that we don't fail later on\n return createBaggage({}, '');\n }\n\n var baggageEntries = (isString(inputBaggageValue) ? inputBaggageValue : inputBaggageValue.join(','))\n .split(',')\n .map(entry => entry.trim())\n .filter(entry => entry !== '' && (includeThirdPartyEntries || SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(entry)));\n\n return baggageEntries.reduce(\n ([baggageObj, baggageString], curr) => {\n const [key, val] = curr.split('=');\n if (SENTRY_BAGGAGE_KEY_PREFIX_REGEX.test(key)) {\n var baggageKey = decodeURIComponent(key.split('-')[1]);\n return [\n {\n ...baggageObj,\n [baggageKey]: decodeURIComponent(val),\n },\n baggageString,\n true,\n ];\n } else {\n return [baggageObj, baggageString === '' ? curr : `${baggageString},${curr}`, true];\n }\n },\n [{}, '', true],\n );\n}\n\n/**\n * Merges the baggage header we saved from the incoming request (or meta tag) with\n * a possibly created or modified baggage header by a third party that's been added\n * to the outgoing request header.\n *\n * In case @param headerBaggageString exists, we can safely add the the 3rd party part of @param headerBaggage\n * with our @param incomingBaggage. This is possible because if we modified anything beforehand,\n * it would only affect parts of the sentry baggage (@see Baggage interface).\n *\n * @param incomingBaggage the baggage header of the incoming request that might contain sentry entries\n * @param thirdPartyBaggageHeader possibly existing baggage header string or string[] added from a third\n * party to the request headers\n *\n * @return a merged and serialized baggage string to be propagated with the outgoing request\n */\nfunction mergeAndSerializeBaggage(incomingBaggage, thirdPartyBaggageHeader) {\n if (!incomingBaggage && !thirdPartyBaggageHeader) {\n return '';\n }\n\n var headerBaggage = (thirdPartyBaggageHeader && parseBaggageHeader(thirdPartyBaggageHeader, true)) || undefined;\n var thirdPartyHeaderBaggage = headerBaggage && getThirdPartyBaggage(headerBaggage);\n\n var finalBaggage = createBaggage((incomingBaggage && incomingBaggage[0]) || {}, thirdPartyHeaderBaggage || '');\n return serializeBaggage(finalBaggage);\n}\n\n/**\n * Helper function that takes a raw baggage string (if available) and the processed sentry-trace header\n * data (if available), parses the baggage string and creates a Baggage object\n * If there is no baggage string, it will create an empty Baggage object.\n * In a second step, this functions determines if the created Baggage object should be set immutable\n * to prevent mutation of the Sentry data.\n *\n * Extracted this logic to a function because it's duplicated in a lot of places.\n *\n * @param rawBaggageValue\n * @param sentryTraceHeader\n */\nfunction parseBaggageSetMutability(\n rawBaggageValue,\n sentryTraceHeader,\n) {\n var baggage = parseBaggageHeader(rawBaggageValue || '');\n\n // Because we are always creating a Baggage object by calling `parseBaggageHeader` above\n // (either a filled one or an empty one, even if we didn't get a `baggage` header),\n // we only need to check if we have a sentry-trace header or not. As soon as we have it,\n // we set baggage immutable. In case we don't get a sentry-trace header, we can assume that\n // this SDK is the head of the trace and thus we still permit mutation at this time.\n // There is one exception though, which is that we get a baggage-header with `sentry-`\n // items but NO sentry-trace header. In this case we also set the baggage immutable for now\n // but if smoething like this would ever happen, we should revisit this and determine\n // what this would actually mean for the trace (i.e. is this SDK the head?, what happened\n // before that we don't have a sentry-trace header?, etc)\n (sentryTraceHeader || !isSentryBaggageEmpty(baggage)) && setBaggageImmutable(baggage);\n\n return baggage;\n}\n\nexport { BAGGAGE_HEADER_NAME, MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, createBaggage, getBaggageValue, getSentryBaggageItems, getThirdPartyBaggage, isBaggageMutable, isSentryBaggageEmpty, mergeAndSerializeBaggage, parseBaggageHeader, parseBaggageSetMutability, serializeBaggage, setBaggageImmutable, setBaggageValue };\n//# sourceMappingURL=baggage.js.map\n","import { getGlobalObject } from './global.js';\nimport { isString } from './is.js';\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction htmlTreeAsString(elem, keyAttrs) {\n \n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem ;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n let height = 0;\n let len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n let nextStr;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch (_oO) {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el \n\n;\n\n var out = [];\n let className;\n let classes;\n let key;\n let attr;\n let i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs =\n keyAttrs && keyAttrs.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(`.${classes[i]}`);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(`[${key}=\"${attr}\"]`);\n }\n }\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nfunction getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n } catch (oO) {\n return '';\n }\n}\n\nexport { getLocationHref, htmlTreeAsString };\n//# sourceMappingURL=browser.js.map\n","/**\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 */\nfunction _nullishCoalesce(lhs, rhsFn) {\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\nexport { _nullishCoalesce };\n//# sourceMappingURL=_nullishCoalesce.js.map\n","import { isNodeEnv } from './node.js';\n\n/** Internal */\n\nvar fallbackGlobalObject = {};\n\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nfunction getGlobalObject() {\n return (\n isNodeEnv()\n ? global\n : typeof window !== 'undefined' ? window : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject\n ) ;\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nfunction getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject()) ;\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n\nexport { getGlobalObject, getGlobalSingleton };\n//# sourceMappingURL=global.js.map\n","import { getGlobalObject } from './global.js';\nimport { isInstanceOf, isString } from './is.js';\nimport { logger, CONSOLE_LEVELS } from './logger.js';\nimport { fill } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\nimport { supportsNativeFetch, supportsHistory } from './supports.js';\n\nvar global = getGlobalObject();\n\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\n\nvar handlers = {};\nvar instrumented = {};\n\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n\n instrumented[type] = true;\n\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nfunction addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n (handlers[type] ).push(callback);\n instrument(type);\n}\n\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n if (!type || !handlers[type]) {\n return;\n }\n\n for (var handler of handlers[type] || []) {\n try {\n handler(data);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n\n fill(global.console, level, function (originalConsoleMethod) {\n return function (...args) {\n triggerHandlers('console', { args, level });\n\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n\n fill(global, 'fetch', function (originalFetch) {\n return function (...args) {\n var handlerData = {\n args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n\n triggerHandlers('fetch', {\n ...handlerData,\n });\n\n return originalFetch.apply(global, args).then(\n (response) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n response,\n });\n return response;\n },\n (error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: Date.now(),\n error,\n });\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs = []) {\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs = []) {\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n\n var xhrproto = XMLHttpRequest.prototype;\n\n fill(xhrproto, 'open', function (originalOpen) {\n return function ( ...args) {\n var xhr = this;\n var url = args[1];\n var xhrInfo = (xhr.__sentry_xhr__ = {\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n\n // if Sentry key appears in URL, don't capture it as a request\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n triggerHandlers('xhr', {\n args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr,\n });\n }\n };\n\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function (...readyStateArgs) {\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n } else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n\n return originalOpen.apply(xhr, args);\n };\n });\n\n fill(xhrproto, 'send', function (originalSend) {\n return function ( ...args) {\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n\n triggerHandlers('xhr', {\n args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n\n return originalSend.apply(this, args);\n };\n });\n}\n\nlet lastHref;\n\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function ( ...args) {\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n } catch (_oO) {\n // no-empty\n }\n }\n };\n\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function ( ...args) {\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from,\n to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\n\nvar debounceDuration = 1000;\nlet debounceTimerID;\nlet lastCapturedEvent;\n\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n\n try {\n var target = event.target ;\n\n if (!target || !target.tagName) {\n return true;\n }\n\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n } catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n\n return true;\n}\n\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener = false) {\n return (event) => {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n\n var name = event.type === 'keypress' ? 'input' : event.type;\n\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(() => {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach((target) => {\n var proto = (global )[target] && (global )[target].prototype;\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers[type] = handlers[type] || { refCount: 0 });\n\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n\n handlerForType.refCount += 1;\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (originalRemoveEventListener) {\n return function (\n \n type,\n listener,\n options,\n ) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this ;\n var handlers = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers[type];\n\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers[type]; }\n\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n } catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n },\n );\n });\n}\n\nlet _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column,\n error,\n line,\n msg,\n url,\n });\n\n if (_oldOnErrorHandler) {\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n}\n\nlet _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n\n if (_oldOnUnhandledRejectionHandler) {\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n}\n\nexport { addInstrumentationHandler };\n//# sourceMappingURL=instrument.js.map\n","var objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === `[object ${ty}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isString(wat) {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nfunction isThenable(wat) {\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nfunction isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nfunction isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n } catch (_e) {\n return false;\n }\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isNaN, isPlainObject, isPrimitive, isRegExp, isString, isSyntheticEvent, isThenable };\n//# sourceMappingURL=is.js.map\n","import { getGlobalObject, getGlobalSingleton } from './global.js';\n\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n\nvar CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert', 'trace'] ;\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nfunction consoleSandbox(callback) {\n var global = getGlobalObject();\n\n if (!('console' in global)) {\n return callback();\n }\n\n var originalConsole = global.console ;\n var wrappedLevels = {};\n\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(level => {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc =\n originalConsole[level] && (originalConsole[level] ).__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level] ;\n originalConsole[level] = originalWrappedFunc ;\n }\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(level => {\n originalConsole[level] = wrappedLevels[level ];\n });\n }\n}\n\nfunction makeLogger() {\n let enabled = false;\n var logger = {\n enable: () => {\n enabled = true;\n },\n disable: () => {\n enabled = false;\n },\n };\n\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = (...args) => {\n if (enabled) {\n consoleSandbox(() => {\n global.console[name](`${PREFIX}[${name}]:`, ...args);\n });\n }\n };\n });\n } else {\n CONSOLE_LEVELS.forEach(name => {\n logger[name] = () => undefined;\n });\n }\n\n return logger ;\n}\n\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nlet logger;\nif ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger = getGlobalSingleton('logger', makeLogger);\n} else {\n logger = makeLogger();\n}\n\nexport { CONSOLE_LEVELS, consoleSandbox, logger };\n//# sourceMappingURL=logger.js.map\n","import { getGlobalObject } from './global.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { snipLine } from './string.js';\n\n/**\n * Extended Window interface that allows for Crypto API usage in IE browsers\n */\n\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nfunction uuid4() {\n var global = getGlobalObject() ;\n var crypto = global.crypto || global.msCrypto;\n\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = (num) => {\n let v = num.toString(16);\n while (v.length < 4) {\n v = `0${v}`;\n }\n return v;\n };\n\n return (\n pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7])\n );\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, c => {\n var r = (Math.random() * 16) | 0;\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nfunction parseUrl(url)\n\n {\n if (!url) {\n return {};\n }\n\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nfunction getEventDescription(event) {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\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 */\nfunction addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nfunction addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = { ...(currentMechanism && currentMechanism.data), ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nfunction parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line) => snipLine(line, 0));\n\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line) => snipLine(line, 0));\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nfunction stripUrlQueryAndFragment(urlPath) {\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nfunction checkOrSetAlreadyCaught(exception) {\n if (exception && (exception ).__sentry_captured__) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception , '__sentry_captured__', true);\n } catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, parseSemver, parseUrl, stripUrlQueryAndFragment, uuid4 };\n//# sourceMappingURL=misc.js.map\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nfunction isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\nexport { isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import { isBrowserBundle } from './env.js';\n\n/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nfunction isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nfunction loadModule(moduleName) {\n let mod;\n\n try {\n mod = dynamicRequire(module, moduleName);\n } catch (e) {\n // no-empty\n }\n\n try {\n const { cwd } = dynamicRequire(module, 'process');\n mod = dynamicRequire(module, `${cwd()}/node_modules/${moduleName}`) ;\n } catch (e) {\n // no-empty\n }\n\n return mod;\n}\n\nexport { dynamicRequire, isNodeEnv, loadModule };\n//# sourceMappingURL=node.js.map\n","import { htmlTreeAsString } from './browser.js';\nimport { isError, isEvent, isInstanceOf, isElement, isPlainObject, isPrimitive } from './is.js';\nimport { truncate } from './string.js';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nfunction fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n\n var original = source[name] ;\n var wrapped = replacementFactory(original) ;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n } catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n\n source[name] = wrapped;\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nfunction addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nfunction markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nfunction getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nfunction urlEncode(object) {\n return Object.keys(object)\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n .join('&');\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor\n * an Error.\n */\nfunction convertToPlainObject(\n value,\n)\n\n {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n var newObj\n\n = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch (_oO) {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n if (typeof obj === 'object' && obj !== null) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = (obj )[property];\n }\n }\n return extractedProps;\n } else {\n return {};\n }\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nfunction extractExceptionKeysForMessage(exception, maxLength = 40) {\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n if (!keys.length) {\n return '[object has no keys]';\n }\n\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n\n for (let includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n\n return '';\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n */\nfunction dropUndefinedKeys(inputValue) {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n var memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n if (isPlainObject(inputValue)) {\n // If this node has already been visited due to a circular reference, return the object it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = {};\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n for (var key of Object.keys(inputValue)) {\n if (typeof inputValue[key] !== 'undefined') {\n returnValue[key] = _dropUndefinedKeys(inputValue[key], memoizationMap);\n }\n }\n\n return returnValue ;\n }\n\n if (Array.isArray(inputValue)) {\n // If this node has already been visited due to a circular reference, return the array it was mapped to in the new object\n var memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal ;\n }\n\n var returnValue = [];\n // Store the mapping of this value in case we visit it again, in case of circular data\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach((item) => {\n returnValue.push(_dropUndefinedKeys(item, memoizationMap));\n });\n\n return returnValue ;\n }\n\n return inputValue;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nfunction objectify(wat) {\n let objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n objectified = new (wat ).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, urlEncode };\n//# sourceMappingURL=object.js.map\n","import { _optionalChain } from './buildPolyfills';\n\nvar STACKTRACE_LIMIT = 50;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nfunction createStackParser(...parsers) {\n var sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack, skipFirst = 0) => {\n var frames = [];\n\n for (var line of stack.split('\\n').slice(skipFirst)) {\n for (var parser of sortedParsers) {\n var frame = parser(line);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n\n return stripSentryFramesAndReverse(frames);\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nfunction stackParserFromStackParserOptions(stackParser) {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * @hidden\n */\nfunction stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n\n let localStack = stack;\n\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || '';\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(frame => ({\n ...frame,\n filename: frame.filename || localStack[0].filename,\n function: frame.function || '?',\n }))\n .reverse();\n}\n\nvar defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nfunction getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\nfunction node(getModule) {\n var FILENAME_MATCH = /^\\s*[-]{4,}$/;\n var FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/;\n\n return (line) => {\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n var lineMatch = line.match(FULL_MATCH);\n if (!lineMatch) {\n return undefined;\n }\n\n let object;\n let method;\n let functionName;\n let typeName;\n let methodName;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || '';\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n var filename = _optionalChain([lineMatch, 'access', _ => _[2], 'optionalAccess', _2 => _2.startsWith, 'call', _3 => _3('file://')]) ? lineMatch[2].substr(7) : lineMatch[2];\n var isNative = lineMatch[5] === 'native';\n var isInternal =\n isNative || (filename && !filename.startsWith('/') && !filename.startsWith('.') && filename.indexOf(':\\\\') !== 1);\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n var in_app = !isInternal && filename !== undefined && !filename.includes('node_modules/');\n\n return {\n filename,\n module: _optionalChain([getModule, 'optionalCall', _4 => _4(filename)]),\n function: functionName,\n lineno: parseInt(lineMatch[3], 10) || undefined,\n colno: parseInt(lineMatch[4], 10) || undefined,\n in_app,\n };\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/utils so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nfunction nodeStackLineParser(getModule) {\n return [90, node(getModule)];\n}\n\nexport { createStackParser, getFunctionName, nodeStackLineParser, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { isString, isRegExp } from './is.js';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nfunction truncate(str, max = 0) {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.substr(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nfunction snipLine(line, colno) {\n let newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nfunction safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n\n var output = [];\n for (let i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nfunction isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nfunction escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n\nexport { escapeStringForRegex, isMatchingPattern, safeJoin, snipLine, truncate };\n//# sourceMappingURL=string.js.map\n","import { getGlobalObject } from './global.js';\nimport { logger } from './logger.js';\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsDOMException() {\n try {\n new DOMException('');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n } catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\nfunction isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nfunction supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n\n var global = getGlobalObject();\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n var doc = global.document;\n if (doc && typeof (doc.createElement ) === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!supportsFetch()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' ,\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nfunction supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n var chrome = (global ).chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n\n return !isChromePackagedApp && hasHistoryApi;\n}\n\nexport { isNativeFetch, supportsDOMError, supportsDOMException, supportsErrorEvent, supportsFetch, supportsHistory, supportsNativeFetch, supportsReferrerPolicy, supportsReportingObserver };\n//# sourceMappingURL=supports.js.map\n","import { isThenable } from './is.js';\n\n/** SyncPromise internal states */\nvar States; (function (States) {\n /** Pending */\n var PENDING = 0; States[States[\"PENDING\"] = PENDING] = \"PENDING\";\n /** Resolved / OK */\n var RESOLVED = 1; States[States[\"RESOLVED\"] = RESOLVED] = \"RESOLVED\";\n /** Rejected / Error */\n var REJECTED = 2; States[States[\"REJECTED\"] = REJECTED] = \"REJECTED\";\n})(States || (States = {}));\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nfunction resolvedSyncPromise(value) {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nfunction rejectedSyncPromise(reason) {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nclass SyncPromise {\n __init() {this._state = States.PENDING;}\n __init2() {this._handlers = [];}\n \n\n constructor(\n executor,\n ) {;SyncPromise.prototype.__init.call(this);SyncPromise.prototype.__init2.call(this);SyncPromise.prototype.__init3.call(this);SyncPromise.prototype.__init4.call(this);SyncPromise.prototype.__init5.call(this);SyncPromise.prototype.__init6.call(this);\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /** JSDoc */\n then(\n onfulfilled,\n onrejected,\n ) {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result );\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** JSDoc */\n catch(\n onrejected,\n ) {\n return this.then(val => val, onrejected);\n }\n\n /** JSDoc */\n finally(onfinally) {\n return new SyncPromise((resolve, reject) => {\n let val;\n let isRejected;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val );\n });\n });\n }\n\n /** JSDoc */\n __init3() {this._resolve = (value) => {\n this._setResult(States.RESOLVED, value);\n };}\n\n /** JSDoc */\n __init4() {this._reject = (reason) => {\n this._setResult(States.REJECTED, reason);\n };}\n\n /** JSDoc */\n __init5() {this._setResult = (state, value) => {\n if (this._state !== States.PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value ).then(this._resolve, this._reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };}\n\n /** JSDoc */\n __init6() {this._executeHandlers = () => {\n if (this._state === States.PENDING) {\n return;\n }\n\n var cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === States.RESOLVED) {\n handler[1](this._value );\n }\n\n if (this._state === States.REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n };}\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { getGlobalObject } from './global.js';\nimport { dynamicRequire, isNodeEnv } from './node.js';\n\n/**\n * An object that can return the current timestamp in seconds since the UNIX epoch.\n */\n\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: () => Date.now() / 1000,\n};\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n return undefined;\n }\n\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n\n return {\n now: () => performance.now(),\n timeOrigin,\n };\n}\n\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks') ;\n return perfHooks.performance;\n } catch (_) {\n return undefined;\n }\n}\n\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\n\nvar timestampSource =\n platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: () => (platformPerformance.timeOrigin + platformPerformance.now()) / 1000,\n };\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nvar dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nvar timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n\n// Re-exported with an old name for backwards-compatibility.\nvar timestampWithMs = timestampInSeconds;\n\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nvar usingPerformanceAPI = platformPerformance !== undefined;\n\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nlet _browserPerformanceTimeOriginMode;\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nvar browserPerformanceTimeOrigin = (() => {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n\n const { performance } = getGlobalObject();\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n } else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n\nexport { _browserPerformanceTimeOriginMode, browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds, timestampWithMs, usingPerformanceAPI };\n//# sourceMappingURL=time.js.map\n","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"njh0R9zupV7JSiDHrxAnr\"};","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.7.0\"\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(void 0, _toConsumableArray(args));\n registerWrapper(stripe);\n return stripe;\n};\nvar validateLoadParams = function validateLoadParams(params) {\n var errorMessage = \"invalid load parameters; expected object of shape\\n\\n {advancedFraudSignals: boolean}\\n\\nbut received\\n\\n \".concat(JSON.stringify(params), \"\\n\");\n\n if (params === null || _typeof(params) !== 'object') {\n throw new Error(errorMessage);\n }\n\n if (Object.keys(params).length === 1 && typeof params.advancedFraudSignals === 'boolean') {\n return params;\n }\n\n throw new Error(errorMessage);\n};\n\nvar loadParams;\nvar loadStripeCalled = false;\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadStripeCalled = true;\n return loadScript(loadParams).then(function (maybeStripe) {\n return initStripe(maybeStripe, args);\n });\n};\n\nloadStripe.setLoadParameters = function (params) {\n if (loadStripeCalled) {\n throw new Error('You cannot change load parameters after calling loadStripe');\n }\n\n loadParams = validateLoadParams(params);\n};\n\nexports.loadStripe = loadStripe;\n","module.exports = require('./dist/pure.js');\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://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) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\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","import { useContext, createElement, createContext } from 'react';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\n// ^^^^^^^^^^^^^^^^^^^^\n\nvar isDev = process.env.NODE_ENV !== \"production\";\nvar NO_PROVIDER = {};\n\nfunction createUseContext(context) {\n return function () {\n var value = useContext(context);\n\n if (isDev && value === NO_PROVIDER) {\n var warnMessage = context.displayName ? \"The context consumer of \" + context.displayName + \" must be wrapped with its corresponding Provider\" : \"Component must be wrapped with Provider.\"; // eslint-disable-next-line no-console\n\n console.warn(warnMessage);\n }\n\n return value;\n };\n}\n\nfunction constate(useValue) {\n for (var _len = arguments.length, selectors = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n selectors[_key - 1] = arguments[_key];\n }\n\n var contexts = [];\n var hooks = [];\n\n var createContext$1 = function createContext$1(displayName) {\n var context = /*#__PURE__*/createContext(NO_PROVIDER);\n\n if (isDev && displayName) {\n context.displayName = displayName;\n }\n\n contexts.push(context);\n hooks.push(createUseContext(context));\n };\n\n if (selectors.length) {\n selectors.forEach(function (selector) {\n return createContext$1(selector.name);\n });\n } else {\n createContext$1(useValue.name);\n }\n\n var Provider = function Provider(_ref) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, [\"children\"]);\n\n var value = useValue(props);\n var element = children;\n\n for (var i = 0; i < contexts.length; i += 1) {\n var context = contexts[i];\n\n var selector = selectors[i] || function (v) {\n return v;\n };\n\n element = /*#__PURE__*/createElement(context.Provider, {\n value: selector(value)\n }, element);\n }\n\n return element;\n };\n\n if (isDev && useValue.name) {\n Provider.displayName = \"Constate\";\n }\n\n return [Provider].concat(hooks);\n}\n\nexport default constate;\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\nvar pairSplitRegExp = /; */;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(pairSplitRegExp);\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var eq_idx = pair.indexOf('=');\n\n // skip things that don't look like key=value\n if (eq_idx < 0) {\n continue;\n }\n\n var key = pair.substr(0, eq_idx).trim()\n var val = pair.substr(++eq_idx, pair.length).trim();\n\n // quoted values\n if ('\"' == val[0]) {\n val = val.slice(1, -1);\n }\n\n // only assign once\n if (undefined == obj[key]) {\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\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}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\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\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\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 * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\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\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 1, 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\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\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 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 */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\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://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","\"use strict\";\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 */\nvar aStackPool = [];\nvar bStackPool = [];\n/**\n * Checks if two values are equal. Values may be primitives, arrays, or objects.\n * Returns true if both arguments have the same keys and values.\n *\n * @see http://underscorejs.org\n * @copyright 2009-2013 Jeremy Ashkenas, DocumentCloud Inc.\n * @license MIT\n */\n\nfunction areEqual(a, b) {\n var aStack = aStackPool.length ? aStackPool.pop() : [];\n var bStack = bStackPool.length ? bStackPool.pop() : [];\n var result = eq(a, b, aStack, bStack);\n aStack.length = 0;\n bStack.length = 0;\n aStackPool.push(aStack);\n bStackPool.push(bStack);\n return result;\n}\n\nfunction eq(a, b, aStack, bStack) {\n if (a === b) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n return a !== 0 || 1 / a == 1 / b;\n }\n\n if (a == null || b == null) {\n // a or b can be `null` or `undefined`\n return false;\n }\n\n if (typeof a != 'object' || typeof b != 'object') {\n return false;\n }\n\n var objToStr = Object.prototype.toString;\n var className = objToStr.call(a);\n\n if (className != objToStr.call(b)) {\n return false;\n }\n\n switch (className) {\n case '[object String]':\n return a == String(b);\n\n case '[object Number]':\n return isNaN(a) || isNaN(b) ? false : a == Number(b);\n\n case '[object Date]':\n case '[object Boolean]':\n return +a == +b;\n\n case '[object RegExp]':\n return a.source == b.source && a.global == b.global && a.multiline == b.multiline && a.ignoreCase == b.ignoreCase;\n } // Assume equality for cyclic structures.\n\n\n var length = aStack.length;\n\n while (length--) {\n if (aStack[length] == a) {\n return bStack[length] == b;\n }\n }\n\n aStack.push(a);\n bStack.push(b);\n var size = 0; // Recursively compare objects and arrays.\n\n if (className === '[object Array]') {\n size = a.length;\n\n if (size !== b.length) {\n return false;\n } // Deep compare the contents, ignoring non-numeric properties.\n\n\n while (size--) {\n if (!eq(a[size], b[size], aStack, bStack)) {\n return false;\n }\n }\n } else {\n if (a.constructor !== b.constructor) {\n return false;\n }\n\n if (a.hasOwnProperty('valueOf') && b.hasOwnProperty('valueOf')) {\n return a.valueOf() == b.valueOf();\n }\n\n var keys = Object.keys(a);\n\n if (keys.length != Object.keys(b).length) {\n return false;\n }\n\n for (var i = 0; i < keys.length; i++) {\n if (!eq(a[keys[i]], b[keys[i]], aStack, bStack)) {\n return false;\n }\n }\n }\n\n aStack.pop();\n bStack.pop();\n return true;\n}\n\nmodule.exports = areEqual;","\"use strict\";\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 */\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2014-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 emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\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 nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\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 nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\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 != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","import React from 'react';\nimport Head from 'next/head';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nvar _excluded$z = [\"keyOverride\"],\n _excluded2$2 = [\"crossOrigin\"];\nvar defaults = {\n templateTitle: '',\n noindex: false,\n nofollow: false,\n norobots: false,\n defaultOpenGraphImageWidth: 0,\n defaultOpenGraphImageHeight: 0,\n defaultOpenGraphVideoWidth: 0,\n defaultOpenGraphVideoHeight: 0\n};\nvar buildOpenGraphMediaTags = function buildOpenGraphMediaTags(mediaType, media, _temp) {\n if (media === void 0) {\n media = [];\n }\n var _ref = _temp === void 0 ? {} : _temp,\n defaultWidth = _ref.defaultWidth,\n defaultHeight = _ref.defaultHeight;\n return media.reduce(function (tags, medium, index) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":0\" + index,\n property: \"og:\" + mediaType,\n content: medium.url\n }));\n if (medium.alt) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":alt0\" + index,\n property: \"og:\" + mediaType + \":alt\",\n content: medium.alt\n }));\n }\n if (medium.secureUrl) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":secure_url0\" + index,\n property: \"og:\" + mediaType + \":secure_url\",\n content: medium.secureUrl.toString()\n }));\n }\n if (medium.type) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":type0\" + index,\n property: \"og:\" + mediaType + \":type\",\n content: medium.type.toString()\n }));\n }\n if (medium.width) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":width0\" + index,\n property: \"og:\" + mediaType + \":width\",\n content: medium.width.toString()\n }));\n } else if (defaultWidth) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":width0\" + index,\n property: \"og:\" + mediaType + \":width\",\n content: defaultWidth.toString()\n }));\n }\n if (medium.height) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":height\" + index,\n property: \"og:\" + mediaType + \":height\",\n content: medium.height.toString()\n }));\n } else if (defaultHeight) {\n tags.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:\" + mediaType + \":height\" + index,\n property: \"og:\" + mediaType + \":height\",\n content: defaultHeight.toString()\n }));\n }\n return tags;\n }, []);\n};\nvar buildTags = function buildTags(config) {\n var _config$openGraph, _config$openGraph3, _config$additionalLin;\n var tagsToRender = [];\n if (config.titleTemplate) {\n defaults.templateTitle = config.titleTemplate;\n }\n var updatedTitle = '';\n if (config.title) {\n updatedTitle = config.title;\n if (defaults.templateTitle) {\n updatedTitle = defaults.templateTitle.replace(/%s/g, function () {\n return updatedTitle;\n });\n }\n } else if (config.defaultTitle) {\n updatedTitle = config.defaultTitle;\n }\n if (updatedTitle) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"title\", {\n key: \"title\"\n }, updatedTitle));\n }\n var noindex = config.noindex === undefined ? defaults.noindex || config.dangerouslySetAllPagesToNoIndex : config.noindex;\n var nofollow = config.nofollow === undefined ? defaults.nofollow || config.dangerouslySetAllPagesToNoFollow : config.nofollow;\n var norobots = config.norobots || defaults.norobots;\n var robotsParams = '';\n if (config.robotsProps) {\n var _config$robotsProps = config.robotsProps,\n nosnippet = _config$robotsProps.nosnippet,\n maxSnippet = _config$robotsProps.maxSnippet,\n maxImagePreview = _config$robotsProps.maxImagePreview,\n maxVideoPreview = _config$robotsProps.maxVideoPreview,\n noarchive = _config$robotsProps.noarchive,\n noimageindex = _config$robotsProps.noimageindex,\n notranslate = _config$robotsProps.notranslate,\n unavailableAfter = _config$robotsProps.unavailableAfter;\n robotsParams = \"\" + (nosnippet ? ',nosnippet' : '') + (maxSnippet ? \",max-snippet:\" + maxSnippet : '') + (maxImagePreview ? \",max-image-preview:\" + maxImagePreview : '') + (noarchive ? ',noarchive' : '') + (unavailableAfter ? \",unavailable_after:\" + unavailableAfter : '') + (noimageindex ? ',noimageindex' : '') + (maxVideoPreview ? \",max-video-preview:\" + maxVideoPreview : '') + (notranslate ? ',notranslate' : '');\n }\n if (config.norobots) {\n defaults.norobots = true;\n }\n if (noindex || nofollow) {\n if (config.dangerouslySetAllPagesToNoIndex) {\n defaults.noindex = true;\n }\n if (config.dangerouslySetAllPagesToNoFollow) {\n defaults.nofollow = true;\n }\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"robots\",\n name: \"robots\",\n content: (noindex ? 'noindex' : 'index') + \",\" + (nofollow ? 'nofollow' : 'follow') + robotsParams\n }));\n } else if (!norobots || robotsParams) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"robots\",\n name: \"robots\",\n content: \"index,follow\" + robotsParams\n }));\n }\n if (config.description) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"description\",\n name: \"description\",\n content: config.description\n }));\n }\n if (config.themeColor) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"theme-color\",\n name: \"theme-color\",\n content: config.themeColor\n }));\n }\n if (config.mobileAlternate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n key: \"mobileAlternate\",\n media: config.mobileAlternate.media,\n href: config.mobileAlternate.href\n }));\n }\n if (config.languageAlternates && config.languageAlternates.length > 0) {\n config.languageAlternates.forEach(function (languageAlternate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"alternate\",\n key: \"languageAlternate-\" + languageAlternate.hrefLang,\n hrefLang: languageAlternate.hrefLang,\n href: languageAlternate.href\n }));\n });\n }\n if (config.twitter) {\n if (config.twitter.cardType) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:card\",\n name: \"twitter:card\",\n content: config.twitter.cardType\n }));\n }\n if (config.twitter.site) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:site\",\n name: \"twitter:site\",\n content: config.twitter.site\n }));\n }\n if (config.twitter.handle) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"twitter:creator\",\n name: \"twitter:creator\",\n content: config.twitter.handle\n }));\n }\n }\n if (config.facebook) {\n if (config.facebook.appId) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"fb:app_id\",\n property: \"fb:app_id\",\n content: config.facebook.appId\n }));\n }\n }\n if ((_config$openGraph = config.openGraph) != null && _config$openGraph.title || updatedTitle) {\n var _config$openGraph2;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:title\",\n property: \"og:title\",\n content: ((_config$openGraph2 = config.openGraph) == null ? void 0 : _config$openGraph2.title) || updatedTitle\n }));\n }\n if ((_config$openGraph3 = config.openGraph) != null && _config$openGraph3.description || config.description) {\n var _config$openGraph4;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:description\",\n property: \"og:description\",\n content: ((_config$openGraph4 = config.openGraph) == null ? void 0 : _config$openGraph4.description) || config.description\n }));\n }\n if (config.openGraph) {\n if (config.openGraph.url || config.canonical) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:url\",\n property: \"og:url\",\n content: config.openGraph.url || config.canonical\n }));\n }\n if (config.openGraph.type) {\n var type = config.openGraph.type.toLowerCase();\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:type\",\n property: \"og:type\",\n content: type\n }));\n if (type === 'profile' && config.openGraph.profile) {\n if (config.openGraph.profile.firstName) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:first_name\",\n property: \"profile:first_name\",\n content: config.openGraph.profile.firstName\n }));\n }\n if (config.openGraph.profile.lastName) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:last_name\",\n property: \"profile:last_name\",\n content: config.openGraph.profile.lastName\n }));\n }\n if (config.openGraph.profile.username) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:username\",\n property: \"profile:username\",\n content: config.openGraph.profile.username\n }));\n }\n if (config.openGraph.profile.gender) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"profile:gender\",\n property: \"profile:gender\",\n content: config.openGraph.profile.gender\n }));\n }\n } else if (type === 'book' && config.openGraph.book) {\n if (config.openGraph.book.authors && config.openGraph.book.authors.length) {\n config.openGraph.book.authors.forEach(function (author, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:author:0\" + index,\n property: \"book:author\",\n content: author\n }));\n });\n }\n if (config.openGraph.book.isbn) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:isbn\",\n property: \"book:isbn\",\n content: config.openGraph.book.isbn\n }));\n }\n if (config.openGraph.book.releaseDate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:release_date\",\n property: \"book:release_date\",\n content: config.openGraph.book.releaseDate\n }));\n }\n if (config.openGraph.book.tags && config.openGraph.book.tags.length) {\n config.openGraph.book.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"book:tag:0\" + index,\n property: \"book:tag\",\n content: tag\n }));\n });\n }\n } else if (type === 'article' && config.openGraph.article) {\n if (config.openGraph.article.publishedTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:published_time\",\n property: \"article:published_time\",\n content: config.openGraph.article.publishedTime\n }));\n }\n if (config.openGraph.article.modifiedTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:modified_time\",\n property: \"article:modified_time\",\n content: config.openGraph.article.modifiedTime\n }));\n }\n if (config.openGraph.article.expirationTime) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:expiration_time\",\n property: \"article:expiration_time\",\n content: config.openGraph.article.expirationTime\n }));\n }\n if (config.openGraph.article.authors && config.openGraph.article.authors.length) {\n config.openGraph.article.authors.forEach(function (author, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:author:0\" + index,\n property: \"article:author\",\n content: author\n }));\n });\n }\n if (config.openGraph.article.section) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:section\",\n property: \"article:section\",\n content: config.openGraph.article.section\n }));\n }\n if (config.openGraph.article.tags && config.openGraph.article.tags.length) {\n config.openGraph.article.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"article:tag:0\" + index,\n property: \"article:tag\",\n content: tag\n }));\n });\n }\n } else if ((type === 'video.movie' || type === 'video.episode' || type === 'video.tv_show' || type === 'video.other') && config.openGraph.video) {\n if (config.openGraph.video.actors && config.openGraph.video.actors.length) {\n config.openGraph.video.actors.forEach(function (actor, index) {\n if (actor.profile) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:actor:0\" + index,\n property: \"video:actor\",\n content: actor.profile\n }));\n }\n if (actor.role) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:actor:role:0\" + index,\n property: \"video:actor:role\",\n content: actor.role\n }));\n }\n });\n }\n if (config.openGraph.video.directors && config.openGraph.video.directors.length) {\n config.openGraph.video.directors.forEach(function (director, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:director:0\" + index,\n property: \"video:director\",\n content: director\n }));\n });\n }\n if (config.openGraph.video.writers && config.openGraph.video.writers.length) {\n config.openGraph.video.writers.forEach(function (writer, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:writer:0\" + index,\n property: \"video:writer\",\n content: writer\n }));\n });\n }\n if (config.openGraph.video.duration) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:duration\",\n property: \"video:duration\",\n content: config.openGraph.video.duration.toString()\n }));\n }\n if (config.openGraph.video.releaseDate) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:release_date\",\n property: \"video:release_date\",\n content: config.openGraph.video.releaseDate\n }));\n }\n if (config.openGraph.video.tags && config.openGraph.video.tags.length) {\n config.openGraph.video.tags.forEach(function (tag, index) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:tag:0\" + index,\n property: \"video:tag\",\n content: tag\n }));\n });\n }\n if (config.openGraph.video.series) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"video:series\",\n property: \"video:series\",\n content: config.openGraph.video.series\n }));\n }\n }\n }\n // images\n if (config.defaultOpenGraphImageWidth) {\n defaults.defaultOpenGraphImageWidth = config.defaultOpenGraphImageWidth;\n }\n if (config.defaultOpenGraphImageHeight) {\n defaults.defaultOpenGraphImageHeight = config.defaultOpenGraphImageHeight;\n }\n if (config.openGraph.images && config.openGraph.images.length) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('image', config.openGraph.images, {\n defaultWidth: defaults.defaultOpenGraphImageWidth,\n defaultHeight: defaults.defaultOpenGraphImageHeight\n }));\n }\n // videos\n if (config.defaultOpenGraphVideoWidth) {\n defaults.defaultOpenGraphVideoWidth = config.defaultOpenGraphVideoWidth;\n }\n if (config.defaultOpenGraphVideoHeight) {\n defaults.defaultOpenGraphVideoHeight = config.defaultOpenGraphVideoHeight;\n }\n if (config.openGraph.videos && config.openGraph.videos.length) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('video', config.openGraph.videos, {\n defaultWidth: defaults.defaultOpenGraphVideoWidth,\n defaultHeight: defaults.defaultOpenGraphVideoHeight\n }));\n }\n // audio\n if (config.openGraph.audio) {\n tagsToRender.push.apply(tagsToRender, buildOpenGraphMediaTags('audio', config.openGraph.audio));\n }\n if (config.openGraph.locale) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:locale\",\n property: \"og:locale\",\n content: config.openGraph.locale\n }));\n }\n if (config.openGraph.siteName || config.openGraph.site_name) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", {\n key: \"og:site_name\",\n property: \"og:site_name\",\n content: config.openGraph.siteName || config.openGraph.site_name\n }));\n }\n }\n if (config.canonical) {\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", {\n rel: \"canonical\",\n href: config.canonical,\n key: \"canonical\"\n }));\n }\n if (config.additionalMetaTags && config.additionalMetaTags.length > 0) {\n config.additionalMetaTags.forEach(function (_ref2) {\n var _ref3, _ref4;\n var keyOverride = _ref2.keyOverride,\n tag = _objectWithoutPropertiesLoose(_ref2, _excluded$z);\n tagsToRender.push( /*#__PURE__*/React.createElement(\"meta\", _extends({\n key: \"meta:\" + ((_ref3 = (_ref4 = keyOverride != null ? keyOverride : tag.name) != null ? _ref4 : tag.property) != null ? _ref3 : tag.httpEquiv)\n }, tag)));\n });\n }\n if ((_config$additionalLin = config.additionalLinkTags) != null && _config$additionalLin.length) {\n config.additionalLinkTags.forEach(function (tag) {\n var _rest$keyOverride;\n var tagCrossOrigin = tag.crossOrigin,\n rest = _objectWithoutPropertiesLoose(tag, _excluded2$2);\n var crossOrigin = tagCrossOrigin === 'anonymous' || tagCrossOrigin === 'use-credentials' || tagCrossOrigin === '' ? tagCrossOrigin : undefined;\n tagsToRender.push( /*#__PURE__*/React.createElement(\"link\", _extends({\n key: \"link\" + ((_rest$keyOverride = rest.keyOverride) != null ? _rest$keyOverride : rest.href) + rest.rel\n }, rest, {\n crossOrigin: crossOrigin\n })));\n });\n }\n return tagsToRender;\n};\n\nvar WithHead = function WithHead(props) {\n return /*#__PURE__*/React.createElement(Head, null, buildTags(props));\n};\n\nvar DefaultSeo = function DefaultSeo(_ref) {\n var title = _ref.title,\n titleTemplate = _ref.titleTemplate,\n defaultTitle = _ref.defaultTitle,\n themeColor = _ref.themeColor,\n _ref$dangerouslySetAl = _ref.dangerouslySetAllPagesToNoIndex,\n dangerouslySetAllPagesToNoIndex = _ref$dangerouslySetAl === void 0 ? false : _ref$dangerouslySetAl,\n _ref$dangerouslySetAl2 = _ref.dangerouslySetAllPagesToNoFollow,\n dangerouslySetAllPagesToNoFollow = _ref$dangerouslySetAl2 === void 0 ? false : _ref$dangerouslySetAl2,\n description = _ref.description,\n canonical = _ref.canonical,\n facebook = _ref.facebook,\n openGraph = _ref.openGraph,\n additionalMetaTags = _ref.additionalMetaTags,\n twitter = _ref.twitter,\n defaultOpenGraphImageWidth = _ref.defaultOpenGraphImageWidth,\n defaultOpenGraphImageHeight = _ref.defaultOpenGraphImageHeight,\n defaultOpenGraphVideoWidth = _ref.defaultOpenGraphVideoWidth,\n defaultOpenGraphVideoHeight = _ref.defaultOpenGraphVideoHeight,\n mobileAlternate = _ref.mobileAlternate,\n languageAlternates = _ref.languageAlternates,\n additionalLinkTags = _ref.additionalLinkTags,\n robotsProps = _ref.robotsProps,\n norobots = _ref.norobots;\n return /*#__PURE__*/React.createElement(WithHead, {\n title: title,\n titleTemplate: titleTemplate,\n defaultTitle: defaultTitle,\n themeColor: themeColor,\n dangerouslySetAllPagesToNoIndex: dangerouslySetAllPagesToNoIndex,\n dangerouslySetAllPagesToNoFollow: dangerouslySetAllPagesToNoFollow,\n description: description,\n canonical: canonical,\n facebook: facebook,\n openGraph: openGraph,\n additionalMetaTags: additionalMetaTags,\n twitter: twitter,\n defaultOpenGraphImageWidth: defaultOpenGraphImageWidth,\n defaultOpenGraphImageHeight: defaultOpenGraphImageHeight,\n defaultOpenGraphVideoWidth: defaultOpenGraphVideoWidth,\n defaultOpenGraphVideoHeight: defaultOpenGraphVideoHeight,\n mobileAlternate: mobileAlternate,\n languageAlternates: languageAlternates,\n additionalLinkTags: additionalLinkTags,\n robotsProps: robotsProps,\n norobots: norobots\n });\n};\n\nvar NextSeo = function NextSeo(_ref) {\n var title = _ref.title,\n themeColor = _ref.themeColor,\n noindex = _ref.noindex,\n nofollow = _ref.nofollow,\n robotsProps = _ref.robotsProps,\n description = _ref.description,\n canonical = _ref.canonical,\n openGraph = _ref.openGraph,\n facebook = _ref.facebook,\n twitter = _ref.twitter,\n additionalMetaTags = _ref.additionalMetaTags,\n titleTemplate = _ref.titleTemplate,\n defaultTitle = _ref.defaultTitle,\n mobileAlternate = _ref.mobileAlternate,\n languageAlternates = _ref.languageAlternates,\n additionalLinkTags = _ref.additionalLinkTags;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WithHead, {\n title: title,\n themeColor: themeColor,\n noindex: noindex,\n nofollow: nofollow,\n robotsProps: robotsProps,\n description: description,\n canonical: canonical,\n facebook: facebook,\n openGraph: openGraph,\n additionalMetaTags: additionalMetaTags,\n twitter: twitter,\n titleTemplate: titleTemplate,\n defaultTitle: defaultTitle,\n mobileAlternate: mobileAlternate,\n languageAlternates: languageAlternates,\n additionalLinkTags: additionalLinkTags\n }));\n};\n\nvar toJson = function toJson(type, jsonld) {\n var data = jsonld;\n if (Array.isArray(data) && data.length === 1) {\n data = _extends({}, jsonld[0]);\n }\n var jsonLdObject = Array.isArray(data) ? data.map(function (item) {\n return formatObjectForSchema(type, item);\n }) : formatObjectForSchema(type, data);\n return {\n __html: JSON.stringify(jsonLdObject, safeJsonLdReplacer)\n };\n};\nvar formatObjectForSchema = function formatObjectForSchema(type, jsonld) {\n var _jsonld$id = jsonld.id,\n id = _jsonld$id === void 0 ? undefined : _jsonld$id;\n var updated = _extends({}, id ? {\n '@id': jsonld.id\n } : {}, jsonld);\n delete updated.id;\n return _extends({\n '@context': 'https://schema.org',\n '@type': type\n }, updated);\n};\nvar ESCAPE_ENTITIES = Object.freeze({\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n});\nvar ESCAPE_REGEX = new RegExp(\"[\" + Object.keys(ESCAPE_ENTITIES).join('') + \"]\", 'g');\nvar ESCAPE_REPLACER = function ESCAPE_REPLACER(t) {\n return ESCAPE_ENTITIES[t];\n};\n/**\n * A replacer for JSON.stringify to strip JSON-LD of illegal HTML entities\n * per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n */\nvar safeJsonLdReplacer = function () {\n // Replace per https://www.w3.org/TR/json-ld11/#restrictions-for-contents-of-json-ld-script-elements\n // Solution from https://stackoverflow.com/a/5499821/864313\n return function (_, value) {\n switch (typeof value) {\n case 'object':\n // Omit null values.\n if (value === null) {\n return undefined;\n }\n return value;\n // JSON.stringify will recursively call replacer.\n case 'number':\n case 'boolean':\n case 'bigint':\n return value;\n // These values are not risky.\n case 'string':\n return value.replace(ESCAPE_REGEX, ESCAPE_REPLACER);\n default:\n {\n // JSON.stringify will remove this element.\n return undefined;\n }\n }\n };\n}();\n\nvar _excluded$y = [\"type\", \"keyOverride\", \"scriptKey\", \"scriptId\", \"dataArray\", \"useAppDir\"];\nfunction JsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Thing' : _ref$type,\n keyOverride = _ref.keyOverride,\n scriptKey = _ref.scriptKey,\n _ref$scriptId = _ref.scriptId,\n scriptId = _ref$scriptId === void 0 ? undefined : _ref$scriptId,\n dataArray = _ref.dataArray,\n _ref$useAppDir = _ref.useAppDir,\n useAppDir = _ref$useAppDir === void 0 ? false : _ref$useAppDir,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$y);\n var JsonLdScript = function JsonLdScript() {\n return /*#__PURE__*/React.createElement(\"script\", {\n type: \"application/ld+json\",\n id: scriptId,\n \"data-testid\": scriptId,\n dangerouslySetInnerHTML: toJson(type, dataArray === undefined ? _extends({}, rest) : dataArray),\n key: \"jsonld-\" + scriptKey + (keyOverride ? \"-\" + keyOverride : '')\n });\n };\n if (useAppDir) {\n return /*#__PURE__*/React.createElement(JsonLdScript, null);\n }\n return /*#__PURE__*/React.createElement(Head, null, JsonLdScript());\n}\n\n/**\n * Generate author information\n * @param author\n * @returns\n */\nfunction generateAuthorInfo(author) {\n if (typeof author === 'string') {\n return {\n '@type': 'Person',\n name: author\n };\n } else if (!!author.name) {\n var _author$type;\n return {\n '@type': (_author$type = author == null ? void 0 : author.type) != null ? _author$type : 'Person',\n name: author.name,\n url: author == null ? void 0 : author.url\n };\n }\n return;\n}\nfunction setAuthor(author) {\n if (Array.isArray(author)) {\n return author.map(function (item) {\n return generateAuthorInfo(item);\n }).filter(function (item) {\n return !!item;\n });\n } else if (author) {\n return generateAuthorInfo(author);\n }\n return;\n}\n\nfunction setImage(image) {\n if (image) {\n return {\n '@type': 'ImageObject',\n url: image\n };\n }\n return undefined;\n}\n\nfunction setPublisher(publisherName, publisherLogo) {\n if (!publisherName) {\n return undefined;\n }\n return {\n '@type': 'Organization',\n name: publisherName,\n logo: setImage(publisherLogo)\n };\n}\n\nfunction setReviewRating(rating) {\n if (rating) {\n return _extends({}, rating, {\n '@type': 'Rating'\n });\n }\n return undefined;\n}\n\nvar _excluded$x = [\"reviewRating\", \"author\", \"publisher\"];\nfunction setReviews(reviews) {\n function mapReview(_ref) {\n var reviewRating = _ref.reviewRating,\n author = _ref.author,\n publisher = _ref.publisher,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$x);\n return _extends({}, rest, {\n '@type': 'Review'\n }, author && {\n author: setAuthor(author)\n }, reviewRating && {\n reviewRating: setReviewRating(reviewRating)\n }, publisher && {\n publisher: setPublisher(publisher.name)\n });\n }\n if (Array.isArray(reviews)) {\n return reviews.map(mapReview);\n } else if (reviews) {\n return mapReview(reviews);\n }\n return undefined;\n}\n\nfunction setNutrition(calories) {\n if (calories) {\n return {\n '@type': 'NutritionInformation',\n calories: calories + \" calories\"\n };\n }\n return undefined;\n}\n\nfunction setAggregateRating(aggregateRating) {\n if (aggregateRating) {\n return {\n '@type': 'AggregateRating',\n ratingCount: aggregateRating.ratingCount,\n reviewCount: aggregateRating.reviewCount,\n bestRating: aggregateRating.bestRating,\n ratingValue: aggregateRating.ratingValue,\n worstRating: aggregateRating.worstRating\n };\n }\n return undefined;\n}\n\nfunction setClip(clips) {\n function mapClip(clip) {\n return _extends({}, clip, {\n '@type': 'Clip'\n });\n }\n if (Array.isArray(clips)) {\n return clips.map(mapClip);\n } else if (clips) {\n return mapClip(clips);\n }\n return undefined;\n}\n\nfunction setInteractionStatistic(watchCount) {\n if (watchCount) {\n return {\n '@type': 'InteractionCounter',\n interactionType: 'https://schema.org/WatchAction',\n userInteractionCount: watchCount\n };\n }\n return undefined;\n}\n\nfunction setBroadcastEvent(publication) {\n function mapBroadcastEvent(publication) {\n return _extends({}, publication, {\n '@type': 'BroadcastEvent'\n });\n }\n if (publication) {\n if (Array.isArray(publication)) {\n return publication.map(mapBroadcastEvent);\n }\n return mapBroadcastEvent(publication);\n }\n return undefined;\n}\n\nvar _excluded$w = [\"thumbnailUrls\", \"hasPart\", \"watchCount\", \"publication\"];\nfunction setVideo(video, setContext) {\n if (setContext === void 0) {\n setContext = false;\n }\n function mapVideo(_ref, context) {\n var thumbnailUrls = _ref.thumbnailUrls,\n hasPart = _ref.hasPart,\n watchCount = _ref.watchCount,\n publication = _ref.publication,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$w);\n return _extends({}, rest, {\n '@type': 'VideoObject'\n }, context && {\n '@context': 'https://schema.org'\n }, {\n thumbnailUrl: thumbnailUrls,\n hasPart: setClip(hasPart),\n interactionStatistic: setInteractionStatistic(watchCount),\n publication: setBroadcastEvent(publication)\n });\n }\n if (video) {\n return mapVideo(video, setContext);\n }\n return undefined;\n}\n\nfunction setInstruction(instruction) {\n if (instruction) {\n return _extends({}, instruction, {\n '@type': 'HowToStep'\n });\n }\n return undefined;\n}\n\nvar _excluded$v = [\"type\", \"keyOverride\", \"ofType\", \"data\"],\n _excluded2$1 = [\"authorName\", \"images\", \"yields\", \"category\", \"calories\", \"aggregateRating\", \"video\", \"ingredients\", \"instructions\", \"cuisine\"];\nfunction CarouselJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Carousel' : _ref$type,\n keyOverride = _ref.keyOverride,\n ofType = _ref.ofType,\n data = _ref.data,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$v);\n function generateList(data, ofType) {\n switch (ofType) {\n case 'default':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n url: item.url\n };\n });\n case 'course':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: {\n '@context': 'https://schema.org',\n '@type': 'Course',\n url: item.url,\n name: item.courseName,\n description: item.description,\n provider: {\n '@type': 'Organization',\n name: item.providerName,\n sameAs: item.providerUrl\n }\n }\n };\n });\n case 'movie':\n return data.map(function (item, index) {\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: {\n '@context': 'https://schema.org',\n '@type': 'Movie',\n name: item.name,\n url: item.url,\n image: item.image,\n dateCreated: item.dateCreated,\n director: item.director ? Array.isArray(item.director) ? item.director.map(function (director) {\n return {\n '@type': 'Person',\n name: director.name\n };\n }) : {\n '@type': 'Person',\n name: item.director.name\n } : undefined,\n review: setReviews(item.review)\n }\n };\n });\n case 'recipe':\n return data.map(function (_ref2, index) {\n var authorName = _ref2.authorName,\n images = _ref2.images,\n yields = _ref2.yields,\n category = _ref2.category,\n calories = _ref2.calories,\n aggregateRating = _ref2.aggregateRating,\n video = _ref2.video,\n ingredients = _ref2.ingredients,\n instructions = _ref2.instructions,\n cuisine = _ref2.cuisine,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);\n return {\n '@type': 'ListItem',\n position: \"\" + (index + 1),\n item: _extends({\n '@context': 'https://schema.org',\n '@type': 'Recipe'\n }, rest, {\n author: setAuthor(authorName),\n image: images,\n recipeYield: yields,\n recipeCategory: category,\n recipeCuisine: cuisine,\n nutrition: setNutrition(calories),\n aggregateRating: setAggregateRating(aggregateRating),\n video: setVideo(video),\n recipeIngredient: ingredients,\n recipeInstructions: instructions.map(setInstruction)\n })\n };\n });\n case 'custom':\n return data.map(function (item, index) {\n var _item$position;\n return {\n '@type': 'ListItem',\n position: (_item$position = item.position) != null ? _item$position : index + 1,\n item: {\n '@type': item.type,\n name: item.name\n }\n };\n });\n }\n }\n var jsonLdData = _extends({\n '@type': 'ItemList'\n }, rest, {\n itemListElement: generateList(data, ofType)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, jsonLdData, {\n scriptKey: \"Carousel\"\n }));\n}\n\nvar _excluded$u = [\"type\", \"keyOverride\", \"url\", \"title\", \"images\", \"section\", \"dateCreated\", \"datePublished\", \"dateModified\", \"authorName\", \"authorType\", \"publisherName\", \"publisherLogo\", \"body\", \"isAccessibleForFree\"];\nfunction NewsArticleJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'NewsArticle' : _ref$type,\n keyOverride = _ref.keyOverride,\n url = _ref.url,\n title = _ref.title,\n images = _ref.images,\n section = _ref.section,\n dateCreated = _ref.dateCreated,\n datePublished = _ref.datePublished,\n dateModified = _ref.dateModified,\n authorName = _ref.authorName,\n publisherName = _ref.publisherName,\n publisherLogo = _ref.publisherLogo,\n body = _ref.body,\n isAccessibleForFree = _ref.isAccessibleForFree,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$u);\n var data = _extends({}, rest, {\n mainEntityOfPage: {\n '@type': 'WebPage',\n '@id': url\n },\n headline: title,\n image: images,\n articleSection: section,\n dateCreated: dateCreated || datePublished,\n datePublished: datePublished,\n dateModified: dateModified || datePublished,\n author: setAuthor(authorName),\n publisher: setPublisher(publisherName, publisherLogo),\n articleBody: body,\n isAccessibleForFree: isAccessibleForFree\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"NewsArticle\"\n }));\n}\n\nvar _excluded$t = [\"type\", \"keyOverride\", \"baseSalary\", \"hiringOrganization\", \"applicantLocationRequirements\", \"experienceRequirements\", \"jobLocation\"];\nfunction JobPostingJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'JobPosting' : _ref$type,\n keyOverride = _ref.keyOverride,\n baseSalary = _ref.baseSalary,\n hiringOrganization = _ref.hiringOrganization,\n applicantLocationRequirements = _ref.applicantLocationRequirements,\n experienceRequirements = _ref.experienceRequirements,\n jobLocation = _ref.jobLocation,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$t);\n function setBaseSalary(baseSalary) {\n if (baseSalary) {\n return {\n '@type': 'MonetaryAmount',\n currency: baseSalary.currency,\n value: _extends({\n '@type': 'QuantitativeValue',\n unitText: baseSalary.unitText\n }, Array.isArray(baseSalary.value) ? {\n minValue: baseSalary.value[0],\n maxValue: baseSalary.value[1]\n } : {\n value: baseSalary.value\n })\n };\n }\n return undefined;\n }\n function setHiringOrganization(org) {\n if (org === 'confidential') {\n return 'confidential';\n }\n return {\n '@type': 'Organization',\n name: org.name,\n sameAs: org.sameAs,\n logo: org.logo\n };\n }\n function setJobLocation(location) {\n if (location) {\n return {\n '@type': 'Place',\n address: {\n '@type': 'PostalAddress',\n addressCountry: location.addressCountry,\n addressLocality: location.addressLocality,\n addressRegion: location.addressRegion,\n postalCode: location.postalCode,\n streetAddress: location.streetAddress\n }\n };\n }\n return undefined;\n }\n function setApplicantLocationRequirements(requirements) {\n if (requirements) {\n return {\n '@type': 'Country',\n name: requirements\n };\n }\n return undefined;\n }\n function setOccupationalExperienceRequirements(requirements) {\n if (requirements) {\n return {\n '@type': requirements['@type'] ? requirements['@type'] : 'OccupationalExperienceRequirements',\n monthsOfExperience: requirements.minimumMonthsOfExperience\n };\n }\n return undefined;\n }\n function setEducationalOccupationalCredential(requirements) {\n if (requirements) {\n return {\n '@type': requirements['@type'] ? requirements['@type'] : 'EducationalOccupationalCredential',\n credentialCategory: requirements.credentialCategory\n };\n }\n return undefined;\n }\n var data = _extends({}, rest, {\n baseSalary: setBaseSalary(baseSalary),\n hiringOrganization: setHiringOrganization(hiringOrganization),\n jobLocation: setJobLocation(jobLocation),\n applicantLocationRequirements: setApplicantLocationRequirements(applicantLocationRequirements),\n experienceRequirements: setOccupationalExperienceRequirements(experienceRequirements == null ? void 0 : experienceRequirements.occupational),\n educationRequirements: setEducationalOccupationalCredential(experienceRequirements == null ? void 0 : experienceRequirements.educational),\n experienceInPlaceOfEducation: experienceRequirements == null ? void 0 : experienceRequirements.experienceInPlaceOfEducation\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"JobPosting\"\n }));\n}\n\nfunction setAddress(address) {\n if (!address) return undefined;\n if (!Array.isArray(address)) return toPostalAddress(address);\n // If array of one address, replace with single address\n if (address.length === 1) return toPostalAddress(address[0]);\n // If array, return mapped array of PostalAddresses\n return address.map(toPostalAddress);\n}\nfunction toPostalAddress(address) {\n if (typeof address === 'string') return address;\n return _extends({\n '@type': 'PostalAddress'\n }, address);\n}\n\nfunction setGeo(geo) {\n if (geo) {\n return _extends({}, geo, {\n '@type': 'GeoCoordinates'\n });\n }\n return undefined;\n}\n\nfunction setAction(action) {\n if (action) {\n return {\n '@type': action.actionType,\n name: action.actionName,\n target: action.target\n };\n }\n return undefined;\n}\n\nfunction setGeoCircle(geoCircle) {\n if (geoCircle) {\n return {\n '@type': 'GeoCircle',\n geoMidpoint: {\n '@type': 'GeoCoordinates',\n latitude: geoCircle.geoMidpoint.latitude,\n longitude: geoCircle.geoMidpoint.longitude\n },\n geoRadius: geoCircle.geoRadius\n };\n }\n return undefined;\n}\n\nfunction setOffer(offer) {\n function setPriceSpecification(priceSpecification) {\n if (priceSpecification) {\n return {\n '@type': priceSpecification.type,\n priceCurrency: priceSpecification.priceCurrency,\n price: priceSpecification.price\n };\n }\n return undefined;\n }\n function setItemOffered(itemOffered) {\n if (itemOffered) {\n return _extends({}, itemOffered, {\n '@type': 'Service'\n });\n }\n return undefined;\n }\n if (offer) {\n return _extends({}, offer, {\n '@type': 'Offer',\n priceSpecification: setPriceSpecification(offer.priceSpecification),\n itemOffered: setItemOffered(offer.itemOffered)\n });\n }\n return undefined;\n}\n\nfunction setOpeningHours(openingHours) {\n if (openingHours) {\n return _extends({}, openingHours, {\n '@type': 'OpeningHoursSpecification'\n });\n }\n return undefined;\n}\n\nvar _excluded$s = [\"type\", \"keyOverride\", \"address\", \"geo\", \"rating\", \"review\", \"action\", \"areaServed\", \"makesOffer\", \"openingHours\", \"images\"];\nfunction LocalBusinessJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'LocalBusiness' : _ref$type,\n keyOverride = _ref.keyOverride,\n address = _ref.address,\n geo = _ref.geo,\n rating = _ref.rating,\n review = _ref.review,\n action = _ref.action,\n areaServed = _ref.areaServed,\n makesOffer = _ref.makesOffer,\n openingHours = _ref.openingHours,\n images = _ref.images,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$s);\n var data = _extends({}, rest, {\n image: images,\n address: setAddress(address),\n geo: setGeo(geo),\n aggregateRating: setAggregateRating(rating),\n review: setReviews(review),\n potentialAction: setAction(action),\n areaServed: areaServed && areaServed.map(setGeoCircle),\n makesOffer: makesOffer == null ? void 0 : makesOffer.map(setOffer),\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"LocalBusiness\"\n }));\n}\n\nvar _excluded$r = [\"type\", \"keyOverride\", \"mainEntity\"],\n _excluded2 = [\"upvoteCount\"];\nfunction QAPageJsonLd(_ref) {\n var _mainEntity$author, _mainEntity$acceptedA, _mainEntity$acceptedA2;\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'QAPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n mainEntity = _ref.mainEntity,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$r);\n var data = _extends({}, rest, {\n mainEntity: _extends({}, mainEntity, {\n '@type': 'Question',\n author: setAuthor((_mainEntity$author = mainEntity.author) == null ? void 0 : _mainEntity$author.name)\n }, mainEntity.acceptedAnswer && {\n acceptedAnswer: _extends({}, mainEntity.acceptedAnswer, {\n '@type': 'Answer',\n author: setAuthor((_mainEntity$acceptedA = mainEntity.acceptedAnswer) == null ? void 0 : (_mainEntity$acceptedA2 = _mainEntity$acceptedA.author) == null ? void 0 : _mainEntity$acceptedA2.name)\n })\n }, mainEntity.suggestedAnswer && {\n suggestedAnswer: mainEntity.suggestedAnswer.map(function (_ref2) {\n var _rest$author;\n var upvoteCount = _ref2.upvoteCount,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n return _extends({}, rest, {\n '@type': 'Answer',\n upvoteCount: upvoteCount || 0,\n author: setAuthor((_rest$author = rest.author) == null ? void 0 : _rest$author.name)\n });\n })\n })\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"QAPage\"\n }));\n}\n\nfunction setItemListElements(items) {\n if (items && items.length) {\n return items.map(function (item) {\n return {\n '@type': 'ListItem',\n position: item.position,\n item: {\n '@id': item.item,\n name: item.name\n }\n };\n });\n }\n return undefined;\n}\n\nvar _excluded$q = [\"type\", \"keyOverride\", \"breadcrumb\"];\nfunction ProfilePageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'ProfilePage' : _ref$type,\n keyOverride = _ref.keyOverride,\n breadcrumb = _ref.breadcrumb,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$q);\n var data = _extends({}, rest, {\n breadcrumb: Array.isArray(breadcrumb) ? {\n '@type': 'BreadcrumbList',\n itemListElement: setItemListElements(breadcrumb)\n } : breadcrumb\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"ProfilePage\"\n }));\n}\n\nvar _excluded$p = [\"type\", \"keyOverride\", \"potentialActions\"];\nfunction SiteLinksSearchBoxJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'WebSite' : _ref$type,\n keyOverride = _ref.keyOverride,\n potentialActions = _ref.potentialActions,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$p);\n function setPotentialAction(action) {\n if (action) {\n var target = action.target,\n queryInput = action.queryInput;\n return {\n '@type': 'SearchAction',\n target: target + \"={\" + queryInput + \"}\",\n 'query-input': \"required name=\" + queryInput\n };\n }\n return undefined;\n }\n var data = _extends({}, rest, {\n potentialAction: potentialActions.map(setPotentialAction)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"jsonld-siteLinksSearchBox\"\n }));\n}\n\nvar _excluded$o = [\"type\", \"keyOverride\", \"authorName\", \"images\", \"yields\", \"category\", \"cuisine\", \"calories\", \"aggregateRating\", \"video\", \"ingredients\", \"instructions\"];\nfunction RecipeJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Recipe' : _ref$type,\n keyOverride = _ref.keyOverride,\n authorName = _ref.authorName,\n images = _ref.images,\n yields = _ref.yields,\n category = _ref.category,\n cuisine = _ref.cuisine,\n calories = _ref.calories,\n aggregateRating = _ref.aggregateRating,\n video = _ref.video,\n ingredients = _ref.ingredients,\n instructions = _ref.instructions,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$o);\n var data = _extends({}, rest, {\n author: setAuthor(authorName),\n image: images,\n recipeYield: yields,\n recipeCategory: category,\n recipeCuisine: cuisine,\n nutrition: setNutrition(calories),\n aggregateRating: setAggregateRating(aggregateRating),\n video: setVideo(video),\n recipeIngredient: ingredients,\n recipeInstructions: instructions ? instructions.map(setInstruction) : undefined\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"recipe\"\n }));\n}\n\nfunction setLocation(location) {\n if (!location) {\n return undefined;\n }\n if (typeof location === 'string') {\n return location;\n }\n if ('url' in location) {\n return setVirtualLocation(location);\n } else {\n return setPlace(location);\n }\n}\nfunction setVirtualLocation(location) {\n return _extends({}, location, {\n '@type': 'VirtualLocation'\n });\n}\nfunction setPlace(location) {\n return _extends({}, location, {\n address: setAddress(location.address),\n '@type': 'Place'\n });\n}\n\nvar _excluded$n = [\"type\"];\nfunction setPerformer(performer) {\n if (performer) {\n var type = performer.type,\n restPerformer = _objectWithoutPropertiesLoose(performer, _excluded$n);\n return _extends({}, restPerformer, {\n '@type': type || 'PerformingGroup'\n });\n }\n return undefined;\n}\n\nvar _excluded$m = [\"seller\"];\nfunction setOffers(offers) {\n function mapOffer(_ref) {\n var seller = _ref.seller,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$m);\n return _extends({}, rest, {\n '@type': 'Offer'\n }, seller && {\n seller: {\n '@type': 'Organization',\n name: seller.name\n }\n });\n }\n if (Array.isArray(offers)) {\n return offers.map(mapOffer);\n } else if (offers) {\n return mapOffer(offers);\n }\n return undefined;\n}\n\nfunction setAggregateOffer(aggregateOffer) {\n if (aggregateOffer) {\n return {\n '@type': 'AggregateOffer',\n priceCurrency: aggregateOffer.priceCurrency,\n highPrice: aggregateOffer.highPrice,\n lowPrice: aggregateOffer.lowPrice,\n offerCount: aggregateOffer.offerCount,\n offers: setOffers(aggregateOffer.offers)\n };\n }\n return undefined;\n}\n\nvar _excluded$l = [\"type\"];\nfunction setOrganizer(organizer) {\n if (organizer) {\n var type = organizer.type,\n restOrganizer = _objectWithoutPropertiesLoose(organizer, _excluded$l);\n return _extends({}, restOrganizer, {\n '@type': type || 'Person'\n });\n }\n return undefined;\n}\n\nvar _excluded$k = [\"type\", \"keyOverride\", \"location\", \"images\", \"offers\", \"aggregateOffer\", \"performers\", \"organizer\", \"eventStatus\", \"eventAttendanceMode\"];\nfunction EventJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Event' : _ref$type,\n keyOverride = _ref.keyOverride,\n location = _ref.location,\n images = _ref.images,\n offers = _ref.offers,\n aggregateOffer = _ref.aggregateOffer,\n performers = _ref.performers,\n organizer = _ref.organizer,\n eventStatus = _ref.eventStatus,\n eventAttendanceMode = _ref.eventAttendanceMode,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$k);\n var data = _extends({}, rest, {\n location: setLocation(location),\n image: images,\n offers: offers ? setOffers(offers) : setAggregateOffer(aggregateOffer),\n performer: Array.isArray(performers) ? performers.map(setPerformer) : setPerformer(performers),\n organizer: Array.isArray(organizer) ? organizer.map(setOrganizer) : setOrganizer(organizer),\n eventStatus: eventStatus ? \"https://schema.org/\" + eventStatus : undefined,\n eventAttendanceMode: eventAttendanceMode ? \"https://schema.org/\" + eventAttendanceMode : undefined\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Event\"\n }));\n}\n\nfunction setContactPoint(contactPoint) {\n if (contactPoint) {\n return _extends({}, contactPoint, {\n '@type': 'ContactPoint'\n });\n }\n return undefined;\n}\n\nvar _excluded$j = [\"type\", \"keyOverride\", \"contactPoint\"];\nfunction CorporateContactJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n contactPoint = _ref.contactPoint,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$j);\n var data = _extends({}, rest, {\n contactPoint: contactPoint.map(setContactPoint)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"CorporateContact\"\n }));\n}\n\nfunction setCreativeWork(creativeWork) {\n if (creativeWork) {\n return _extends({}, creativeWork, {\n '@type': 'CreativeWork'\n });\n }\n return undefined;\n}\n\nvar _excluded$i = [\"type\", \"keyOverride\", \"hasPart\"];\nfunction CollectionPageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'CollectionPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n hasPart = _ref.hasPart,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$i);\n var data = _extends({}, rest, {\n hasPart: hasPart.map(setCreativeWork)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"CollectionPage\"\n }));\n}\n\nfunction setManufacturer(manufacturer) {\n if (manufacturer && (manufacturer.manufacturerName || manufacturer.manufacturerLogo)) {\n return {\n '@type': 'Organization',\n name: manufacturer.manufacturerName,\n logo: setImage(manufacturer.manufacturerLogo)\n };\n }\n return undefined;\n}\n\nfunction setBrand(brand) {\n if (brand) {\n return {\n '@type': 'Brand',\n name: brand\n };\n }\n return undefined;\n}\n\nvar _excluded$h = [\"type\", \"keyOverride\", \"images\", \"brand\", \"reviews\", \"aggregateRating\", \"manufacturerLogo\", \"manufacturerName\", \"offers\", \"aggregateOffer\", \"productName\"];\nfunction ProductJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Product' : _ref$type,\n keyOverride = _ref.keyOverride,\n images = _ref.images,\n brand = _ref.brand,\n reviews = _ref.reviews,\n aggregateRating = _ref.aggregateRating,\n manufacturerLogo = _ref.manufacturerLogo,\n manufacturerName = _ref.manufacturerName,\n offers = _ref.offers,\n aggregateOffer = _ref.aggregateOffer,\n productName = _ref.productName,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$h);\n var data = _extends({}, rest, {\n image: images,\n brand: setBrand(brand),\n review: setReviews(reviews),\n aggregateRating: setAggregateRating(aggregateRating),\n manufacturer: setManufacturer({\n manufacturerLogo: manufacturerLogo,\n manufacturerName: manufacturerName\n }),\n offers: offers ? setOffers(offers) : setAggregateOffer(aggregateOffer),\n name: productName\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Product\"\n }));\n}\n\nvar _excluded$g = [\"type\", \"keyOverride\", \"priceCurrency\", \"price\", \"aggregateRating\", \"review\", \"keywords\"];\nfunction SoftwareAppJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'SoftwareApplication' : _ref$type,\n keyOverride = _ref.keyOverride,\n priceCurrency = _ref.priceCurrency,\n price = _ref.price,\n aggregateRating = _ref.aggregateRating,\n review = _ref.review,\n keywords = _ref.keywords,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$g);\n var data = _extends({}, rest, {\n offers: {\n '@type': 'Offer',\n price: price,\n priceCurrency: priceCurrency\n },\n aggregateRating: setAggregateRating(aggregateRating),\n review: setReviews(review),\n keywords: keywords\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"SoftwareApp\"\n }));\n}\n\nvar _excluded$f = [\"type\", \"keyOverride\"];\nfunction VideoJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Video' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$f);\n var data = setVideo(rest, true);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"Video\"\n }));\n}\n\nfunction setProducer(producer) {\n if (producer) {\n return {\n '@type': 'Organization',\n sameAs: producer.url,\n name: producer.name\n };\n }\n return undefined;\n}\n\nfunction setProvider(provider) {\n if (provider) {\n return {\n '@type': provider.type || 'Organization',\n name: provider.name,\n sameAs: provider.url\n };\n }\n return undefined;\n}\n\nvar _excluded$e = [\"type\", \"keyOverride\", \"aggregateRating\", \"trailer\", \"reviews\", \"image\", \"authorName\", \"provider\", \"producerName\", \"producerUrl\", \"offers\", \"operatingSystemName\", \"platformName\", \"translatorName\", \"languageName\", \"genreName\", \"publisherName\"];\nfunction VideoGameJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'VideoGame' : _ref$type,\n keyOverride = _ref.keyOverride,\n aggregateRating = _ref.aggregateRating,\n trailer = _ref.trailer,\n reviews = _ref.reviews,\n image = _ref.image,\n authorName = _ref.authorName,\n provider = _ref.provider,\n producerName = _ref.producerName,\n producerUrl = _ref.producerUrl,\n offers = _ref.offers,\n operatingSystemName = _ref.operatingSystemName,\n platformName = _ref.platformName,\n translatorName = _ref.translatorName,\n languageName = _ref.languageName,\n genreName = _ref.genreName,\n publisherName = _ref.publisherName,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$e);\n var data = _extends({}, rest, {\n aggregateRating: setAggregateRating(aggregateRating),\n trailer: setVideo(trailer),\n review: setReviews(reviews),\n image: setImage(image),\n author: setAuthor(authorName),\n provider: setProvider(provider),\n producer: setProducer({\n name: producerName,\n url: producerUrl\n }),\n offers: setOffers(offers),\n operatingSystem: operatingSystemName,\n gamePlatform: platformName,\n translator: translatorName,\n inLanguage: languageName,\n genre: genreName,\n publisher: publisherName\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"VideoGame\"\n }));\n}\n\nfunction setContactPoints(contactPoint) {\n if (contactPoint && contactPoint.length) {\n return contactPoint.map(function (contactPoint) {\n return _extends({\n '@type': 'ContactPoint'\n }, contactPoint);\n });\n }\n return undefined;\n}\n\nvar _excluded$d = [\"type\", \"keyOverride\", \"address\", \"contactPoints\", \"contactPoint\"];\nfunction OrganizationJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n address = _ref.address,\n contactPoints = _ref.contactPoints,\n contactPoint = _ref.contactPoint,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);\n var data = _extends({}, rest, {\n address: setAddress(address),\n contactPoint: setContactPoints(contactPoint || contactPoints)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"organization\"\n }));\n}\n\nfunction setQuestions(questions) {\n if (questions && questions.length) {\n return questions.map(function (question) {\n return {\n '@type': 'Question',\n name: question.questionName,\n acceptedAnswer: {\n '@type': 'Answer',\n text: question.acceptedAnswerText\n }\n };\n });\n }\n return undefined;\n}\n\nvar _excluded$c = [\"type\", \"keyOverride\", \"mainEntity\"];\nfunction FAQPageJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'FAQPage' : _ref$type,\n keyOverride = _ref.keyOverride,\n mainEntity = _ref.mainEntity,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);\n var data = _extends({}, rest, {\n mainEntity: setQuestions(mainEntity)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"faq-page\"\n }));\n}\n\nvar _excluded$b = [\"type\", \"keyOverride\"];\nfunction LogoJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Organization' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"Logo\"\n }));\n}\n\nvar _excluded$a = [\"type\", \"keyOverride\"];\nfunction DatasetJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Dataset' : _ref$type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"dataset\"\n }));\n}\n\nvar _excluded$9 = [\"type\", \"keyOverride\", \"courseName\", \"provider\"];\nfunction CourseJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Course' : _ref$type,\n keyOverride = _ref.keyOverride,\n courseName = _ref.courseName,\n provider = _ref.provider,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);\n var data = _extends({\n name: courseName\n }, rest, {\n provider: setProvider(provider)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"course\"\n }));\n}\n\nvar _excluded$8 = [\"type\", \"keyOverride\", \"itemListElements\"];\nfunction BreadCrumbJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'BreadcrumbList' : _ref$type,\n keyOverride = _ref.keyOverride,\n itemListElements = _ref.itemListElements,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);\n var data = _extends({}, rest, {\n itemListElement: setItemListElements(itemListElements)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"breadcrumb\"\n }));\n}\n\nvar _excluded$7 = [\"type\", \"id\", \"keyOverride\", \"aggregateRating\"];\nfunction BrandJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Brand' : _ref$type,\n id = _ref.id,\n keyOverride = _ref.keyOverride,\n aggregateRating = _ref.aggregateRating,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);\n var data = _extends({\n aggregateRating: setAggregateRating(aggregateRating),\n '@id': id\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"brand\"\n }));\n}\n\nvar _excluded$6 = [\"type\", \"keyOverride\", \"url\", \"title\", \"images\", \"datePublished\", \"dateModified\", \"authorName\", \"publisherName\", \"publisherLogo\", \"description\", \"isAccessibleForFree\"];\nfunction ArticleJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Article' : _ref$type,\n keyOverride = _ref.keyOverride,\n url = _ref.url,\n title = _ref.title,\n images = _ref.images,\n datePublished = _ref.datePublished,\n dateModified = _ref.dateModified,\n authorName = _ref.authorName,\n _ref$publisherName = _ref.publisherName,\n publisherName = _ref$publisherName === void 0 ? undefined : _ref$publisherName,\n _ref$publisherLogo = _ref.publisherLogo,\n publisherLogo = _ref$publisherLogo === void 0 ? undefined : _ref$publisherLogo,\n description = _ref.description,\n isAccessibleForFree = _ref.isAccessibleForFree,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);\n var data = _extends({\n datePublished: datePublished,\n description: description,\n mainEntityOfPage: {\n '@type': 'WebPage',\n '@id': url\n },\n headline: title,\n image: images,\n dateModified: dateModified || datePublished,\n author: setAuthor(authorName),\n publisher: setPublisher(publisherName, publisherLogo),\n isAccessibleForFree: isAccessibleForFree\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"article\"\n }));\n}\n\nfunction setReviewedBy(reviewedBy) {\n if (reviewedBy) {\n return _extends({\n '@type': (reviewedBy == null ? void 0 : reviewedBy.type) || 'Organization'\n }, reviewedBy);\n }\n return undefined;\n}\n\nvar _excluded$5 = [\"keyOverride\", \"reviewedBy\"];\nfunction WebPageJsonLd(_ref) {\n var keyOverride = _ref.keyOverride,\n reviewedBy = _ref.reviewedBy,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);\n var data = _extends({}, rest, {\n reviewedBy: setReviewedBy(reviewedBy)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n keyOverride: keyOverride\n }, data, {\n type: \"WebPage\",\n scriptKey: \"WebPage\"\n }));\n}\n\nvar _excluded$4 = [\"type\", \"keyOverride\"];\nfunction SocialProfileJsonLd(_ref) {\n var type = _ref.type,\n keyOverride = _ref.keyOverride,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, rest, {\n scriptKey: \"social\"\n }));\n}\n\nfunction setCost(cost) {\n if (cost) {\n return _extends({}, cost, {\n '@type': 'MonetaryAmount'\n });\n }\n return undefined;\n}\n\nfunction setSupply(supply) {\n if (supply) {\n return supply.map(function (supplyItem) {\n return {\n '@type': 'HowToSupply',\n name: supplyItem\n };\n });\n }\n return undefined;\n}\n\nfunction setTool(tool) {\n if (tool) {\n return tool.map(function (toolItem) {\n return {\n '@type': 'HowToTool',\n name: toolItem\n };\n });\n }\n return undefined;\n}\n\nfunction setStep(step) {\n if (step) {\n return step.map(function (stepElement) {\n var itemListElement = stepElement.itemListElement,\n image = stepElement.image;\n var currentListElements = itemListElement == null ? void 0 : itemListElement.map(function (_ref) {\n var type = _ref.type,\n text = _ref.text;\n return {\n '@type': type,\n text: text\n };\n });\n return _extends({}, stepElement, {\n '@type': 'HowToStep',\n itemListElement: currentListElements,\n image: setImage(image)\n });\n });\n }\n return undefined;\n}\n\nvar _excluded$3 = [\"type\", \"keyOverride\", \"image\", \"estimatedCost\", \"supply\", \"tool\", \"step\"];\nfunction howToJsonLd(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'HowTo' : _ref$type,\n keyOverride = _ref.keyOverride,\n image = _ref.image,\n estimatedCost = _ref.estimatedCost,\n supply = _ref.supply,\n tool = _ref.tool,\n step = _ref.step,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n var data = _extends({}, rest, {\n image: setImage(image),\n estimatedCost: setCost(estimatedCost),\n supply: setSupply(supply),\n tool: setTool(tool),\n step: setStep(step)\n });\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"howTo\"\n }));\n}\n\nvar _excluded$2 = [\"keyOverride\", \"images\"];\nfunction ImageJsonLd(_ref) {\n var keyOverride = _ref.keyOverride,\n images = _ref.images,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({}, rest, {\n type: \"ImageObject\",\n keyOverride: keyOverride,\n dataArray: images,\n scriptKey: \"image\"\n }));\n}\n\nfunction setAmenityFeature(amenityFeature) {\n if (!amenityFeature) return undefined;\n if (!Array.isArray(amenityFeature)) {\n return decorateAmenityFeature(amenityFeature);\n }\n if (amenityFeature.length === 1) {\n return decorateAmenityFeature(amenityFeature[0]);\n }\n return amenityFeature.map(decorateAmenityFeature);\n}\nfunction decorateAmenityFeature(amenity) {\n return _extends({\n '@type': 'LocationFeatureSpecification'\n }, amenity);\n}\n\nvar _excluded$1 = [\"address\", \"geo\", \"images\", \"keyOverride\", \"openingHours\", \"type\", \"amenityFeature\", \"rating\"];\nfunction CampgroundJsonLd(_ref) {\n var address = _ref.address,\n geo = _ref.geo,\n images = _ref.images,\n keyOverride = _ref.keyOverride,\n openingHours = _ref.openingHours,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Campground' : _ref$type,\n amenityFeature = _ref.amenityFeature,\n rating = _ref.rating,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n var data = _extends({\n image: images,\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours),\n address: setAddress(address),\n geo: setGeo(geo),\n amenityFeature: setAmenityFeature(amenityFeature),\n aggregateRating: setAggregateRating(rating)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"campground\"\n }));\n}\n\nvar _excluded = [\"address\", \"geo\", \"images\", \"keyOverride\", \"openingHours\", \"type\"];\nfunction ParkJsonLd(_ref) {\n var address = _ref.address,\n geo = _ref.geo,\n images = _ref.images,\n keyOverride = _ref.keyOverride,\n openingHours = _ref.openingHours,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'Park' : _ref$type,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var data = _extends({\n image: images,\n openingHoursSpecification: Array.isArray(openingHours) ? openingHours.map(setOpeningHours) : setOpeningHours(openingHours),\n address: setAddress(address),\n geo: setGeo(geo)\n }, rest);\n return /*#__PURE__*/React.createElement(JsonLd, _extends({\n type: type,\n keyOverride: keyOverride\n }, data, {\n scriptKey: \"park\"\n }));\n}\n\nexport { ArticleJsonLd, BrandJsonLd, BreadCrumbJsonLd as BreadcrumbJsonLd, CampgroundJsonLd, CarouselJsonLd, CollectionPageJsonLd, CorporateContactJsonLd, CourseJsonLd, DatasetJsonLd, DefaultSeo, EventJsonLd, FAQPageJsonLd, howToJsonLd as HowToJsonLd, ImageJsonLd, JobPostingJsonLd, LocalBusinessJsonLd, LogoJsonLd, NewsArticleJsonLd, NextSeo, OrganizationJsonLd, ParkJsonLd, ProductJsonLd, ProfilePageJsonLd, QAPageJsonLd, RecipeJsonLd, SiteLinksSearchBoxJsonLd, SocialProfileJsonLd, SoftwareAppJsonLd, VideoGameJsonLd, VideoJsonLd, WebPageJsonLd };\n","\"use strict\";\nvar assign = Object.assign.bind(Object);\nmodule.exports = assign;\nmodule.exports.default = module.exports;\n\n//# sourceMappingURL=object-assign.js.map","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n ","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type checkUserQueryVariables = {};\nexport type checkUserQueryResponse = {\n readonly viewer: {\n readonly me: {\n readonly id: string;\n readonly hasPremiumSubscription: boolean;\n } | null;\n };\n};\nexport type checkUserQuery = {\n readonly response: checkUserQueryResponse;\n readonly variables: checkUserQueryVariables;\n};\n\n\n\n/*\nquery checkUserQuery {\n viewer {\n me {\n __typename\n id\n hasPremiumSubscription\n }\n id\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"id\",\n \"storageKey\": null\n},\nv1 = {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"hasPremiumSubscription\",\n \"storageKey\": null\n};\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"checkUserQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"me\",\n \"plural\": false,\n \"selections\": [\n (v0/*: any*/),\n (v1/*: any*/)\n ],\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n ],\n \"type\": \"Query\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": [],\n \"kind\": \"Operation\",\n \"name\": \"checkUserQuery\",\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": \"Viewer\",\n \"kind\": \"LinkedField\",\n \"name\": \"viewer\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"concreteType\": null,\n \"kind\": \"LinkedField\",\n \"name\": \"me\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"__typename\",\n \"storageKey\": null\n },\n (v0/*: any*/),\n (v1/*: any*/)\n ],\n \"storageKey\": null\n },\n (v0/*: any*/)\n ],\n \"storageKey\": null\n }\n ]\n },\n \"params\": {\n \"cacheID\": \"86090908ec3284c555854dfdf919f8a6\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"checkUserQuery\",\n \"operationKind\": \"query\",\n \"text\": \"query checkUserQuery {\\n viewer {\\n me {\\n __typename\\n id\\n hasPremiumSubscription\\n }\\n id\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'd65c662d4fb9419d5b99d5022034e5e8';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type TrackAppsflyerPBAEventInput = {\n customerUserId: string;\n afUserId: string;\n eventName: string;\n afRevenue?: number | null | undefined;\n afCurrency?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type trackAppsFlyerPBAEventMutationVariables = {\n input: TrackAppsflyerPBAEventInput;\n};\nexport type trackAppsFlyerPBAEventMutationResponse = {\n readonly trackAppsflyerPbaEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type trackAppsFlyerPBAEventMutation = {\n readonly response: trackAppsFlyerPBAEventMutationResponse;\n readonly variables: trackAppsFlyerPBAEventMutationVariables;\n};\n\n\n\n/*\nmutation trackAppsFlyerPBAEventMutation(\n $input: TrackAppsflyerPBAEventInput!\n) {\n trackAppsflyerPbaEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"TrackAppsflyerPBAEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"trackAppsflyerPbaEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"trackAppsFlyerPBAEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"trackAppsFlyerPBAEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"8ec6e3a14e646496ce9e40c90b980197\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"trackAppsFlyerPBAEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation trackAppsFlyerPBAEventMutation(\\n $input: TrackAppsflyerPBAEventInput!\\n) {\\n trackAppsflyerPbaEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '24adfc7803377a9ccac2faae063c6762';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type TrackFBConversionsAPIEventInput = {\n eventName: string;\n eventId?: string | null | undefined;\n fbc?: string | null | undefined;\n fbp?: string | null | undefined;\n actionSource?: string | null | undefined;\n currency?: string | null | undefined;\n value?: number | null | undefined;\n predictedLtv?: number | null | undefined;\n productId?: string | null | undefined;\n searchString?: string | null | undefined;\n advertiserTrackingEnabled?: boolean | null | undefined;\n applicationTrackingEnabled?: boolean | null | undefined;\n extinfo?: Array | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type trackFbConversionsAPIEventMutationVariables = {\n input: TrackFBConversionsAPIEventInput;\n};\nexport type trackFbConversionsAPIEventMutationResponse = {\n readonly trackFbConversionsApiEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type trackFbConversionsAPIEventMutation = {\n readonly response: trackFbConversionsAPIEventMutationResponse;\n readonly variables: trackFbConversionsAPIEventMutationVariables;\n};\n\n\n\n/*\nmutation trackFbConversionsAPIEventMutation(\n $input: TrackFBConversionsAPIEventInput!\n) {\n trackFbConversionsApiEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"TrackFBConversionsAPIEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"trackFbConversionsApiEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"trackFbConversionsAPIEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"trackFbConversionsAPIEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"2293f8d3a913f3ac29b409101ddfbbf7\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"trackFbConversionsAPIEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation trackFbConversionsAPIEventMutation(\\n $input: TrackFBConversionsAPIEventInput!\\n) {\\n trackFbConversionsApiEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '98790fdfc6b33866dde41b8cd2acfc51';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type TrackFinanceadsEventInput = {\n eventName: string;\n financeadsId: string;\n clientMutationId?: string | null | undefined;\n};\nexport type trackFinanceadsEventMutationVariables = {\n input: TrackFinanceadsEventInput;\n};\nexport type trackFinanceadsEventMutationResponse = {\n readonly trackFinanceadsEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type trackFinanceadsEventMutation = {\n readonly response: trackFinanceadsEventMutationResponse;\n readonly variables: trackFinanceadsEventMutationVariables;\n};\n\n\n\n/*\nmutation trackFinanceadsEventMutation(\n $input: TrackFinanceadsEventInput!\n) {\n trackFinanceadsEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"TrackFinanceadsEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"trackFinanceadsEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"trackFinanceadsEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"trackFinanceadsEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"d716314a359f386641e241542f189ba6\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"trackFinanceadsEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation trackFinanceadsEventMutation(\\n $input: TrackFinanceadsEventInput!\\n) {\\n trackFinanceadsEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = '013b8dcaf0755def2330d41fe8b19330';\nexport default node;\n","/* tslint:disable */\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ConcreteRequest } from \"relay-runtime\";\n\nexport type TrackImpactEventInput = {\n userId: string;\n eventName: string;\n clickId?: string | null | undefined;\n orderSubTotalPostDiscount?: number | null | undefined;\n orderDiscount?: number | null | undefined;\n currencyCode?: string | null | undefined;\n itemSubTotal?: number | null | undefined;\n itemCategory?: string | null | undefined;\n clientMutationId?: string | null | undefined;\n};\nexport type trackImpactEventMutationVariables = {\n input: TrackImpactEventInput;\n};\nexport type trackImpactEventMutationResponse = {\n readonly trackImpactEvent: {\n readonly clientMutationId: string | null;\n } | null;\n};\nexport type trackImpactEventMutation = {\n readonly response: trackImpactEventMutationResponse;\n readonly variables: trackImpactEventMutationVariables;\n};\n\n\n\n/*\nmutation trackImpactEventMutation(\n $input: TrackImpactEventInput!\n) {\n trackImpactEvent(input: $input) {\n clientMutationId\n }\n}\n*/\n\nconst node: ConcreteRequest = (function(){\nvar v0 = [\n {\n \"defaultValue\": null,\n \"kind\": \"LocalArgument\",\n \"name\": \"input\"\n }\n],\nv1 = [\n {\n \"alias\": null,\n \"args\": [\n {\n \"kind\": \"Variable\",\n \"name\": \"input\",\n \"variableName\": \"input\"\n }\n ],\n \"concreteType\": \"TrackImpactEventPayload\",\n \"kind\": \"LinkedField\",\n \"name\": \"trackImpactEvent\",\n \"plural\": false,\n \"selections\": [\n {\n \"alias\": null,\n \"args\": null,\n \"kind\": \"ScalarField\",\n \"name\": \"clientMutationId\",\n \"storageKey\": null\n }\n ],\n \"storageKey\": null\n }\n];\nreturn {\n \"fragment\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Fragment\",\n \"metadata\": null,\n \"name\": \"trackImpactEventMutation\",\n \"selections\": (v1/*: any*/),\n \"type\": \"Mutations\",\n \"abstractKey\": null\n },\n \"kind\": \"Request\",\n \"operation\": {\n \"argumentDefinitions\": (v0/*: any*/),\n \"kind\": \"Operation\",\n \"name\": \"trackImpactEventMutation\",\n \"selections\": (v1/*: any*/)\n },\n \"params\": {\n \"cacheID\": \"38374ab8ed049fef450ca285db06af74\",\n \"id\": null,\n \"metadata\": {},\n \"name\": \"trackImpactEventMutation\",\n \"operationKind\": \"mutation\",\n \"text\": \"mutation trackImpactEventMutation(\\n $input: TrackImpactEventInput!\\n) {\\n trackImpactEvent(input: $input) {\\n clientMutationId\\n }\\n}\\n\"\n }\n};\n})();\n(node as any).hash = 'ace4195f14b6b455b1a4c2211436476b';\nexport default node;\n","import styled, { css } from 'styled-components'\n\nimport { type LinkProps } from '../Link'\n\nimport type { IconKeys } from 'components/Icon'\nimport Icon from 'components/Icon'\nimport { LinkWrapper } from 'components/Link/LinkWrapper'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport type { ColorName, ThemedComponent } from 'theme'\nimport { fonts } from 'theme'\n\ntype AccessibilityProps = {\n id?: string\n /**\n * The button has an accessible label.\n * By default, the accessible name is computed from any text content inside the button element.\n * However, it can also be provided with aria-labelledby or aria-label.\n */\n ariaLabelledby?: string\n ariaLabel?: string\n /**\n * If a description of the button's function is present, the button element has aria-describedby set to the ID of the element containing the description.\n */\n ariaDescribedby?: string\n}\n\ntype IconProps = {\n /**\n * Positions the icon, if present. Default - 'left'.\n */\n iconPosition?: 'left' | 'right'\n /**\n * Name of the icon to be used.\n */\n icon?: IconKeys\n /**\n * Color of the icon.\n */\n iconColor?: ColorName\n /**\n * Color of the icon when disabled.\n */\n disabledIconColor?: ColorName\n}\n\ntype ButtonSize = 'small' | 'medium'\n\nexport type ButtonBaseProps = {\n children?: string\n /**\n * Button size. Default - 'medium'.\n */\n size?: ButtonSize\n /**\n * @type {boolean} - Default false. Is the button disabled?\n */\n disabled?: boolean\n /**\n * When passed, will override any onClick and the button will act like\n * a Link component, routing the user to the url. Note: this doesn't change\n * the styling.\n */\n url?: LinkProps['url']\n /**\n * Pass an as component to make the button something different.\n * Note: this may change the styling.\n */\n as?: BoxProps['as']\n /**\n * Function to be triggered on button click.\n */\n onClick?: () => void\n /**\n * @type {'button' | 'submit' | 'reset'} - Default 'button'. The type of the button.\n */\n type?: 'button' | 'submit' | 'reset'\n /**\n * @type {boolean}. Makes the button fill the width of the parent component.\n */\n fullWidth?: boolean\n isLoading?: boolean\n loadingText?: string\n /**\n * No idea what this is used for so removed them\n * if anything breaks we can add them back.\n */\n // target?: string\n // params?: { [key: string]: any }\n} & IconProps &\n AccessibilityProps\n\ntype StyledButtonBaseProps = Omit & { $size: ButtonSize } & {\n isIconOnly: boolean\n}\n\n// Experimental way to get typing for theme\ntype StyledProps = ThemedComponent\n\nexport const ButtonBase = ({\n children,\n as = 'button',\n size = 'medium',\n url,\n disabled = false,\n icon,\n iconPosition = 'left',\n iconColor,\n disabledIconColor,\n fullWidth,\n onClick,\n ariaDescribedby,\n ariaLabel,\n ariaLabelledby,\n isLoading = false,\n loadingText = 'Loading...',\n ...props\n}: ButtonBaseProps) => {\n const isIconOnly = !children && !!icon\n\n return (\n \n \n {icon && (\n \n )}\n\n {isLoading ? loadingText : children}\n \n \n )\n}\n\nexport default ButtonBase\n\nconst StyledButtonBase = styled(Box)`\n display: flex;\n align-items: center;\n text-transform: capitalize;\n cursor: pointer;\n border-radius: ${({ theme }) => theme.radii.rounded};\n flex-direction: ${({ iconPosition }) => (iconPosition === 'right' ? 'row-reverse' : 'row')};\n border: 1px solid ${({ theme }) => theme.palette.neutral[999]};\n\n box-shadow: 3px 3px 0 0 ${({ theme }) => theme.palette.neutral[999]};\n -webkit-transition: box-shadow 200ms ease, -webkit-transform 200ms ease;\n transition: box-shadow 200ms ease, -webkit-transform 200ms ease;\n transition: transform 200ms ease, box-shadow 200ms ease;\n transition: transform 200ms ease, box-shadow 200ms ease, -webkit-transform 200ms ease;\n\n line-height: 1.2;\n font-weight: ${fonts.weight.bold};\n white-space: nowrap;\n\n text-decoration: none;\n\n &:hover:not([disabled]),\n &:focus:not([disabled]) {\n box-shadow: 0 0 0 0 ${({ theme }) => theme.palette.neutral[999]};\n -webkit-transform: translate(4px, 4px);\n -ms-transform: translate(4px, 4px);\n transform: translate(4px, 4px);\n text-decoration: none;\n }\n\n ${({ fullWidth }) =>\n fullWidth\n ? css`\n width: 100%;\n justify-content: center;\n `\n : css`\n width: fit-content;\n `}\n ${({ $size, isIconOnly }) => {\n switch ($size) {\n case 'small':\n if (isIconOnly) {\n return css`\n padding: 0.35em;\n `\n }\n return css`\n font-size: ${fonts.size.XS};\n padding: 0.35em 0.8em;\n `\n case 'medium':\n default:\n if (isIconOnly) {\n return css`\n padding: 0.7em;\n `\n }\n return css`\n font-size: ${fonts.size.S};\n padding: 0.7em 1.5em;\n `\n }\n }}\n`\n","import React from 'react'\n\nimport styled, { css } from 'styled-components'\n\nimport type { ButtonBaseProps } from './ButtonBase'\nimport ButtonBase from './ButtonBase'\n\nimport type { ColorName, ThemedComponent } from 'theme'\n\nexport type ButtonVariant = 'primary' | 'secondary'\n\nexport type ButtonProps = Omit & {\n /**\n * @type {ButtonVariant} - Default 'primary'. Selects the style variant for the button.\n */\n variant?: ButtonVariant\n}\n\n// Experimental way to get typing for theme\ntype StyledProps = ThemedComponent\n\nconst StyledButton = styled(ButtonBase)`\n ${({ variant, theme }) => {\n switch (variant) {\n case 'primary':\n return css`\n background-color: ${theme.palette.accent[500]};\n color: ${theme.palette.neutral[0]};\n &:active {\n background-color: ${theme.palette.primary[600]};\n }\n &:disabled {\n color: ${theme.palette.neutral[0]};\n background-color: ${theme.palette.primary[200]};\n }\n `\n case 'secondary':\n default:\n return css`\n color: ${theme.palette.neutral[999]};\n background-color: ${theme.palette.neutral[0]};\n &:active {\n background-color: ${theme.palette.primary[100]};\n }\n &:disabled {\n color: ${theme.palette.neutral[300]};\n background-color: ${theme.palette.neutral[0]};\n }\n `\n }\n }}\n`\n\nconst Button = ({ variant = 'primary', ...props }: ButtonProps) => {\n let iconColor: ColorName = 'neutral.0'\n\n if (variant === 'primary') iconColor = 'neutral.0'\n if (variant === 'secondary') iconColor = 'neutral.999'\n\n return \n}\n\nexport default Button\n","import styled from 'styled-components'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport type { ThemedComponent } from 'theme/Types'\n\ntype StyledProps = ThemedComponent\n\n/**\n * InlineButton is a button that appears in text content. It is styled like a hyperlink but only has an onClick.\n */\nconst InlineButton = styled(Box)`\n cursor: pointer;\n color: ${({ theme }) => theme.palette.primary[500]};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n &:hover {\n text-decoration: underline;\n }\n`\n\nexport default InlineButton\n","/**\n * Returns the value of `props[path]` or `defaultValue`\n * @example\n * import styled from \"styled-components\";\n * import { prop } from \"styled-tools\";\n *\n * const Button = styled.button`\n * color: ${prop(\"color\", \"red\")};\n * `;\n */\nvar prop = function prop(path, defaultValue) {\n return function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (typeof props[path] !== \"undefined\") {\n return props[path];\n }\n\n if (path && path.indexOf(\".\") > 0) {\n var paths = path.split(\".\");\n var length = paths.length;\n var object = props[paths[0]];\n var index = 1;\n\n while (object != null && index < length) {\n object = object[paths[index]];\n index += 1;\n }\n\n if (typeof object !== \"undefined\") {\n return object;\n }\n }\n\n return defaultValue;\n };\n};\n\nexport default prop;","function _typeof(obj) { 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\n/* eslint-disable no-use-before-define */\nimport prop from \"./prop\";\n\nvar parseFunction = function parseFunction(props, test) {\n return Boolean(test(props));\n};\n\nvar parseObject = function parseObject(props, test) {\n var keys = Object.keys(test);\n var length = keys.length;\n\n for (var index = 0; index < length; index += 1) {\n var key = keys[index];\n var expected = test[key];\n var value = prop(key)(props);\n\n if (expected !== value) {\n return false;\n }\n }\n\n return true;\n};\n\nvar parseString = function parseString(props, test) {\n return Boolean(prop(test)(props));\n};\n\nvar parseMap = {\n function: parseFunction,\n object: parseObject,\n string: parseString\n};\n/**\n * Returns `pass` if prop is truthy. Otherwise returns `fail`\n * @example\n * import styled from \"styled-components\";\n * import { ifProp, palette } from \"styled-tools\";\n *\n * const Button = styled.button`\n * background-color: ${ifProp(\"transparent\", \"transparent\", palette(0))};\n * color: ${ifProp([\"transparent\", \"accent\"], palette(\"secondary\"))};\n * font-size: ${ifProp({ size: \"large\" }, \"20px\", ifProp({ size: \"medium\" }, \"16px\", \"12px\"))};\n * `;\n */\n\nvar ifProp = function ifProp(test) {\n var pass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var fail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"\";\n return function () {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var result = true;\n\n if (Array.isArray(test)) {\n var length = test.length;\n var index = 0;\n\n while (result && index < length) {\n result = parseMap[_typeof(test[index])](props, test[index]);\n index += 1;\n }\n } else {\n result = parseMap[_typeof(test)](props, test);\n }\n\n var value = result ? pass : fail;\n return typeof value === \"function\" ? value(props) : value;\n };\n};\n\nexport default ifProp;","import ifProp from \"./ifProp\";\n\n/**\n * Returns `pass` if prop is falsy. Otherwise returns `fail`\n * @example\n * import styled from \"styled-components\";\n * import { ifNotProp } from \"styled-tools\";\n *\n * const Button = styled.button`\n * font-size: ${ifNotProp(\"large\", \"20px\", \"30px\")};\n * `;\n */\nvar ifNotProp = function ifNotProp(test, pass, fail) {\n return ifProp(test, fail, pass);\n};\n\nexport default ifNotProp;","import prop from \"./prop\";\n\n/**\n * Switches on a given prop. Returns the value or function for a given prop value.\n * @example\n * import styled, { css } from \"styled-components\";\n * import { switchProp, prop } from \"styled-tools\";\n *\n * const Button = styled.button`\n * font-size: ${switchProp(prop(\"size\", \"medium\"), {\n * small: prop(\"theme.sizes.sm\", \"12px\"),\n * medium: prop(\"theme.sizes.md\", \"16px\"),\n * large: prop(\"theme.sizes.lg\", \"20px\")\n * }};\n * ${switchProp(\"theme.kind\", {\n * light: css`\n * color: LightBlue;\n * `,\n * dark: css`\n * color: DarkBlue;\n * `\n * })}\n * `;\n *\n * \n ) : (\n iconComponent\n )\n}\n\nexport const iconDefaultProps: Partial = {\n size: 'default',\n color: 'grey5',\n}\n\nIcon.defaultProps = iconDefaultProps\n\nexport default Icon\n\nconst IconSizeProperties: Record = {\n xsmall: 12,\n small: 16,\n default: 24,\n medium: 36,\n large: 48,\n}\n\nconst _Icon = styled(Box)`\n fill: ${(props: IconProps) => getColor(props.color)};\n`\n","import Icon from './Icon'\nexport default Icon\nexport * from './Icon'\n","import {isValidElement as $hgUW1$isValidElement, createElement as $hgUW1$createElement, Component as $hgUW1$Component, createContext as $hgUW1$createContext, useContext as $hgUW1$useContext, useState as $hgUW1$useState, useMemo as $hgUW1$useMemo, forwardRef as $hgUW1$forwardRef} from \"react\";\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $44d7e150ebc754d2$exports = {};\n\n$parcel$export($44d7e150ebc754d2$exports, \"ErrorBoundary\", () => $44d7e150ebc754d2$export$e926676385687eaf);\n\nvar $ebb31c7feaa4405e$exports = {};\n\n$parcel$export($ebb31c7feaa4405e$exports, \"ErrorBoundaryContext\", () => $ebb31c7feaa4405e$export$b16d9fb1a22de840);\n\nconst $ebb31c7feaa4405e$export$b16d9fb1a22de840 = (0, $hgUW1$createContext)(null);\n\n\nconst $44d7e150ebc754d2$var$initialState = {\n didCatch: false,\n error: null\n};\nclass $44d7e150ebc754d2$export$e926676385687eaf extends (0, $hgUW1$Component) {\n state = $44d7e150ebc754d2$var$initialState;\n static getDerivedStateFromError(error) {\n return {\n didCatch: true,\n error: error\n };\n }\n resetErrorBoundary = (...args)=>{\n const { error: error } = this.state;\n if (error !== null) {\n this.props.onReset?.({\n args: args,\n reason: \"imperative-api\"\n });\n this.setState($44d7e150ebc754d2$var$initialState);\n }\n };\n componentDidCatch(error, info) {\n this.props.onError?.(error, info);\n }\n componentDidUpdate(prevProps, prevState) {\n const { didCatch: didCatch } = this.state;\n const { resetKeys: resetKeys } = this.props;\n // There's an edge case where if the thing that triggered the error happens to *also* be in the resetKeys array,\n // we'd end up resetting the error boundary immediately.\n // This would likely trigger a second error to be thrown.\n // So we make sure that we don't check the resetKeys on the first call of cDU after the error is set.\n if (didCatch && prevState.error !== null && $44d7e150ebc754d2$var$hasArrayChanged(prevProps.resetKeys, resetKeys)) {\n this.props.onReset?.({\n next: resetKeys,\n prev: prevProps.resetKeys,\n reason: \"keys\"\n });\n this.setState($44d7e150ebc754d2$var$initialState);\n }\n }\n render() {\n const { children: children , fallbackRender: fallbackRender , FallbackComponent: FallbackComponent , fallback: fallback } = this.props;\n const { didCatch: didCatch , error: error } = this.state;\n let childToRender = children;\n if (didCatch) {\n const props = {\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n };\n if ((0, $hgUW1$isValidElement)(fallback)) childToRender = fallback;\n else if (typeof fallbackRender === \"function\") childToRender = fallbackRender(props);\n else if (FallbackComponent) childToRender = (0, $hgUW1$createElement)(FallbackComponent, props);\n else throw new Error(\"react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop\");\n }\n return (0, $hgUW1$createElement)((0, $ebb31c7feaa4405e$export$b16d9fb1a22de840).Provider, {\n value: {\n didCatch: didCatch,\n error: error,\n resetErrorBoundary: this.resetErrorBoundary\n }\n }, childToRender);\n }\n}\nfunction $44d7e150ebc754d2$var$hasArrayChanged(a = [], b = []) {\n return a.length !== b.length || a.some((item, index)=>!Object.is(item, b[index]));\n}\n\n\n\nvar $7c3c25b3f398a9d6$exports = {};\n\n$parcel$export($7c3c25b3f398a9d6$exports, \"useErrorBoundary\", () => $7c3c25b3f398a9d6$export$c052f6604b7d51fe);\n\nfunction $75c9d331f9c1ed1a$export$f20aa86254872370(value) {\n if (value == null || typeof value.didCatch !== \"boolean\" || typeof value.resetErrorBoundary !== \"function\") throw new Error(\"ErrorBoundaryContext not found\");\n return true;\n}\n\n\n\nfunction $7c3c25b3f398a9d6$export$c052f6604b7d51fe() {\n const context = (0, $hgUW1$useContext)((0, $ebb31c7feaa4405e$export$b16d9fb1a22de840));\n (0, $75c9d331f9c1ed1a$export$f20aa86254872370)(context);\n const [state, setState] = (0, $hgUW1$useState)({\n error: null,\n hasError: false\n });\n const memoized = (0, $hgUW1$useMemo)(()=>({\n resetBoundary: ()=>{\n context?.resetErrorBoundary();\n setState({\n error: null,\n hasError: false\n });\n },\n showBoundary: (error)=>setState({\n error: error,\n hasError: true\n })\n }), [\n context?.resetErrorBoundary\n ]);\n if (state.hasError) throw state.error;\n return memoized;\n}\n\n\nvar $62ff477d53f02a5b$exports = {};\n\n$parcel$export($62ff477d53f02a5b$exports, \"withErrorBoundary\", () => $62ff477d53f02a5b$export$f0c7a449e0cfaec7);\n\n\nfunction $62ff477d53f02a5b$export$f0c7a449e0cfaec7(component, errorBoundaryProps) {\n const Wrapped = (0, $hgUW1$forwardRef)((props, ref)=>(0, $hgUW1$createElement)((0, $44d7e150ebc754d2$export$e926676385687eaf), errorBoundaryProps, (0, $hgUW1$createElement)(component, {\n ...props,\n ref: ref\n })));\n // Format for display in DevTools\n const name = component.displayName || component.name || \"Unknown\";\n Wrapped.displayName = `withErrorBoundary(${name})`;\n return Wrapped;\n}\n\n\nvar $81c1b644006d48ec$exports = {};\n\n\n\"use client\";\n\n\nexport {$44d7e150ebc754d2$export$e926676385687eaf as ErrorBoundary, $ebb31c7feaa4405e$export$b16d9fb1a22de840 as ErrorBoundaryContext, $7c3c25b3f398a9d6$export$c052f6604b7d51fe as useErrorBoundary, $62ff477d53f02a5b$export$f0c7a449e0cfaec7 as withErrorBoundary};\n//# sourceMappingURL=react-error-boundary.module.js.map\n","import type { CSSProperties } from 'react'\n\nimport type { ImageProps as NextImageProps } from 'next/image'\nimport NextImage from 'next/image'\nimport { ErrorBoundary } from 'react-error-boundary'\n\nimport { LegacyButton as Button } from 'components/Button'\nimport { LegacyLink as Link } from 'components/Link'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport type { Prettify } from 'types/Prettify'\n\ntype LocalImageProps = {\n href?: string\n fallbackSrc?: ImageProps['src']\n objectFit?: CSSProperties['objectFit']\n}\n\ntype ImportedProps = 'layout' | 'alt' | 'objectPosition' | 'src' | 'priority' | 'fill'\n\ntype UglyImageProps = Pick &\n Omit &\n LocalImageProps\n\nexport type ImageProps = Prettify\n\nconst Image = ({\n src,\n className,\n alt,\n onClick,\n href,\n objectFit,\n priority,\n fallbackSrc,\n fill,\n ...containerStyle\n}: ImageProps) => {\n // We need to use this with the new \"fill\" prop when we don't define width & height\n const _fill = fill ? fill : objectFit === 'cover' ? true : false\n\n const imageComponent = (\n \n \n \n )\n\n if (onClick)\n return (\n \n )\n\n if (href)\n return (\n \n {imageComponent}\n \n )\n\n if (!fallbackSrc) return imageComponent\n\n return (\n (\n \n \n \n )}\n >\n {imageComponent}\n \n )\n}\n\nexport default Image\n","import type { ImageProps } from './Image';\nimport Image from './Image'\n\nexport type { ImageProps }\nexport default Image\nexport * from './Image'\n","import React from 'react'\n\nimport NextLink from 'next/link'\nimport styled, { css } from 'styled-components'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport { fonts } from 'theme'\n\ntype LocalLinkProps = {\n children: React.ReactNode\n target?: string\n underline?: boolean\n inline?: boolean\n url: string | { pathname: string; query?: { [key: string]: any } }\n}\n\nexport type LinkProps = LocalLinkProps & BoxProps\n\nexport const isExternalLink = (pathname?: string) =>\n pathname ? /^(http|mailto:)/.test(pathname) : false\n\n/**\n * Parses props into a clean state to be used in the Link component. Abstracted out of the component for sanity.\n */\nconst useParseLinkProps = ({ url, target, ...props }: LinkProps) => {\n let pathname = ''\n\n if (typeof url !== 'string') {\n if (url?.pathname) {\n pathname = url.pathname\n }\n } else {\n pathname = url\n }\n\n if (!pathname) {\n console.warn(' component requires a valid \"url={}\" prop')\n }\n\n const _target = isExternalLink(pathname) ? '_blank' : target\n const rel = _target === '_blank' ? 'noopener noreferrer' : undefined\n\n return { pathname, target: _target, rel, ...props }\n}\n\nexport const Link = (linkProps: LinkProps) => {\n const {\n children,\n className,\n pathname,\n rel,\n target,\n onClick,\n underline,\n inline,\n ...boxStyleProps\n } = useParseLinkProps(linkProps)\n\n return (\n \n {children}\n \n )\n}\n\nexport default Link\n\ntype StyledNextLinkProps = {\n $inline: LocalLinkProps['inline']\n} & LinkProps\n\nconst StyledNextLink = styled(NextLink)`\n cursor: pointer;\n word-wrap: break-word;\n word-break: break-word;\n font-weight: ${props =>\n !!props?.fontWeight ? String(props?.fontWeight) : fonts.weight.semibold};\n\n &:hover {\n text-decoration: underline;\n }\n\n ${props =>\n props?.$inline &&\n css`\n display: inline-block;\n `}\n`\n","import type { ReactElement } from 'react'\n\nimport type { LinkProps } from 'next/link'\nimport Link from 'next/link'\nimport styled from 'styled-components'\n\nimport { cardHeadingHoverTrigger } from 'components/ContentCards/DetailedPreviewCard/CardHeading'\n\ntype LinkWrapperProps = {\n url?: LinkProps['href']\n onClick?: LinkProps['onClick']\n dataCy?: string\n children: ReactElement\n}\n/*\n * This is a wrapper component used when we want another component to\n * behave as a Link if there is a url present.\n * It parses the url to be passed to the next/link component and\n * adds logic for external links.\n */\nexport const LinkWrapper = ({ url, onClick, dataCy, children }: LinkWrapperProps) => {\n if (!url) return children\n\n let pathname: string | undefined\n\n if (typeof url !== 'string') {\n if (url?.pathname) {\n pathname = url.pathname\n }\n } else {\n pathname = url\n }\n\n if (!pathname) {\n console.warn(' component requires a valid \"url={}\" prop')\n }\n\n const isExternalLink = pathname ? /^(http|mailto:)/.test(pathname) : false\n\n return (\n \n {children}\n \n )\n}\n\nconst Wrapper = styled(Link)`\n text-decoration: none;\n color: inherit;\n cursor: pointer;\n\n height: 100%;\n width: inherit;\n\n &:hover,\n :active,\n :visited {\n text-decoration: none;\n }\n\n &:hover {\n ${cardHeadingHoverTrigger}\n }\n`\n","import React from 'react'\n\nimport NextJsLink from 'next/link'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\n\ntype LocalLinkProps = {\n children: React.ReactNode\n target?: string\n underline?: boolean\n url: string | { pathname: string; query?: { [key: string]: any } }\n}\n\nexport type LinkProps = LocalLinkProps & BoxProps\n\nconst isExternalLink = (pathname?: string) => (pathname ? /^(http|mailto:)/.test(pathname) : false)\n\n/**\n * @deprecated Use Link or LinkWrapper where possible\n * This is a component which contains the logic for rendering a link to be used when\n * you want to use a link as an \"as\" prop on another component (e.g. a button).\n */\nexport const UnstyledLink = ({\n children,\n className,\n url,\n target,\n onClick,\n as = 'a',\n ...props\n}: LinkProps) => {\n let pathname: string | undefined\n\n if (typeof url !== 'string') {\n if (url?.pathname) {\n pathname = url.pathname\n }\n } else {\n pathname = url\n }\n\n if (!pathname) {\n console.warn(' component requires a valid \"url={}\" prop')\n }\n\n if (isExternalLink(pathname)) {\n return (\n \n {children}\n \n )\n // Passing an 'onClick' prop will not allow us to take advantage of NextJsLink\n // and may cause performance issues/ slow renders when navigating between pages\n } else if (onClick) {\n return (\n \n {children}\n \n )\n } else {\n return (\n \n \n {children}\n \n \n )\n }\n}\n\nexport default UnstyledLink\n","import type { ElementType } from 'react'\n\nimport UnstyledLink from './UnstyledLink'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport { fonts } from 'theme'\n\ntype LocalLinkProps = {\n children: React.ReactNode\n target?: string\n underline?: boolean\n as?: ElementType\n url: string | { pathname: string; query?: { [key: string]: any } }\n}\n\nexport type LinkProps = LocalLinkProps & BoxProps\n\nexport const isExternalLink = (pathname?: string) =>\n pathname ? /^(http|mailto:)/.test(pathname) : false\n\n/**\n * @deprecated Use Link where possible\n */\nexport const LegacyLink = ({ color = 'primary.500', as = 'a', ...props }: LinkProps) => {\n return (\n \n )\n}\n\nexport default LegacyLink\n","import type { LinkProps } from './Link';\nimport Link from './Link'\n\ntype TextLinkProps = Omit\n\nconst TextLink = ({ children, ...textLinkProps }: TextLinkProps) => (\n \n {children}\n \n)\n\nexport default TextLink\n","import LegacyLink from './LegacyLink'\nimport Link from './Link'\nimport TextLink from './TextLink'\n\nexport { TextLink, LegacyLink }\n\nexport default Link\nexport * from './Link'\n","import { useRef, useEffect } from 'react';\n\n/**\n * A `React.useEffect` that will not run on the first render.\n */\n\nfunction useUpdateEffect(effect, deps) {\n var mounted = useRef(false);\n useEffect(function () {\n if (mounted.current) {\n return effect();\n }\n\n mounted.current = true;\n return undefined;\n }, deps);\n}\n\nexport { useUpdateEffect };\n","import './getDocument.js';\nimport './getWindow.js';\nimport { canUseDOM } from './canUseDOM.js';\nimport { getActiveElement } from './getActiveElement.js';\n\nvar isIE11 = canUseDOM && \"msCrypto\" in window;\n/**\n * Cross-browser method that returns the next active element (the element that\n * is receiving focus) after a blur event is dispatched. It receives the blur\n * event object as the argument.\n *\n * @example\n * import { getNextActiveElementOnBlur } from \"reakit-utils\";\n *\n * const element = document.getElementById(\"id\");\n * element.addEventListener(\"blur\", (event) => {\n * const nextActiveElement = getNextActiveElementOnBlur(event);\n * });\n */\n\nfunction getNextActiveElementOnBlur(event) {\n // IE 11 doesn't support event.relatedTarget on blur.\n // document.activeElement points the the next active element.\n // On modern browsers, document.activeElement points to the current target.\n if (isIE11) {\n var activeElement = getActiveElement(event.currentTarget);\n return activeElement;\n }\n\n return event.relatedTarget;\n}\n\nexport { getNextActiveElementOnBlur };\n","import './getDocument.js';\nimport { getActiveElement } from './getActiveElement.js';\n\n/**\n * Checks if `element` has focus. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n *\n * @example\n * import { hasFocus } from \"reakit-utils\";\n *\n * hasFocus(document.getElementById(\"id\"));\n */\n\nfunction hasFocus(element) {\n var activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (activeElement === element) return true;\n var activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n return activeDescendant === element.id;\n}\n\nexport { hasFocus };\n","import './getDocument.js';\nimport './getActiveElement.js';\nimport { hasFocus } from './hasFocus.js';\n\n/**\n * Ensures `element` will receive focus if it's not already.\n *\n * @example\n * import { ensureFocus } from \"reakit-utils\";\n *\n * ensureFocus(document.activeElement); // does nothing\n *\n * const element = document.querySelector(\"input\");\n *\n * ensureFocus(element); // focuses element\n * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump\n *\n * function isActive(el) {\n * return el.dataset.active === \"true\";\n * }\n *\n * ensureFocus(document.querySelector(\"[data-active='true']\"), { isActive }); // does nothing\n *\n * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed.\n */\nfunction ensureFocus(element, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n preventScroll = _ref.preventScroll,\n _ref$isActive = _ref.isActive,\n isActive = _ref$isActive === void 0 ? hasFocus : _ref$isActive;\n\n if (isActive(element)) return -1;\n element.focus({\n preventScroll: preventScroll\n });\n if (isActive(element)) return -1;\n return requestAnimationFrame(function () {\n element.focus({\n preventScroll: preventScroll\n });\n });\n}\n\nexport { ensureFocus };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport { isSelfTarget } from 'reakit-utils/isSelfTarget';\nimport { useRole } from '../Role/Role.js';\nimport { a as DISCLOSURE_CONTENT_KEYS } from '../__keys-e6a5cfbe.js';\n\nvar useDisclosureContent = createHook({\n name: \"DisclosureContent\",\n compose: useRole,\n keys: DISCLOSURE_CONTENT_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlOnTransitionEnd = _ref.onTransitionEnd,\n htmlOnAnimationEnd = _ref.onAnimationEnd,\n htmlStyle = _ref.style,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onTransitionEnd\", \"onAnimationEnd\", \"style\"]);\n\n var animating = options.animated && options.animating;\n\n var _React$useState = useState(null),\n transition = _React$useState[0],\n setTransition = _React$useState[1];\n\n var hidden = !options.visible && !animating;\n var style = hidden ? _objectSpread2({\n display: \"none\"\n }, htmlStyle) : htmlStyle;\n var onTransitionEndRef = useLiveRef(htmlOnTransitionEnd);\n var onAnimationEndRef = useLiveRef(htmlOnAnimationEnd);\n var raf = useRef(0);\n useEffect(function () {\n if (!options.animated) return undefined; // Double RAF is needed so the browser has enough time to paint the\n // default styles before processing the `data-enter` attribute. Otherwise\n // it wouldn't be considered a transition.\n // See https://github.com/reakit/reakit/issues/643\n\n raf.current = window.requestAnimationFrame(function () {\n raf.current = window.requestAnimationFrame(function () {\n if (options.visible) {\n setTransition(\"enter\");\n } else if (animating) {\n setTransition(\"leave\");\n } else {\n setTransition(null);\n }\n });\n });\n return function () {\n return window.cancelAnimationFrame(raf.current);\n };\n }, [options.animated, options.visible, animating]);\n var onEnd = useCallback(function (event) {\n if (!isSelfTarget(event)) return;\n if (!animating) return; // Ignores number animated\n\n if (options.animated === true) {\n var _options$stopAnimatio;\n\n (_options$stopAnimatio = options.stopAnimation) === null || _options$stopAnimatio === void 0 ? void 0 : _options$stopAnimatio.call(options);\n }\n }, [options.animated, animating, options.stopAnimation]);\n var onTransitionEnd = useCallback(function (event) {\n var _onTransitionEndRef$c;\n\n (_onTransitionEndRef$c = onTransitionEndRef.current) === null || _onTransitionEndRef$c === void 0 ? void 0 : _onTransitionEndRef$c.call(onTransitionEndRef, event);\n onEnd(event);\n }, [onEnd]);\n var onAnimationEnd = useCallback(function (event) {\n var _onAnimationEndRef$cu;\n\n (_onAnimationEndRef$cu = onAnimationEndRef.current) === null || _onAnimationEndRef$cu === void 0 ? void 0 : _onAnimationEndRef$cu.call(onAnimationEndRef, event);\n onEnd(event);\n }, [onEnd]);\n return _objectSpread2({\n id: options.baseId,\n \"data-enter\": transition === \"enter\" ? \"\" : undefined,\n \"data-leave\": transition === \"leave\" ? \"\" : undefined,\n onTransitionEnd: onTransitionEnd,\n onAnimationEnd: onAnimationEnd,\n hidden: hidden,\n style: style\n }, htmlProps);\n }\n});\nvar DisclosureContent = createComponent({\n as: \"div\",\n useHook: useDisclosureContent\n});\n\nexport { DisclosureContent, useDisclosureContent };\n","import { createContext, useContext, useState, createElement } from 'react';\nimport { useIsomorphicEffect } from 'reakit-utils/useIsomorphicEffect';\nimport { canUseDOM } from 'reakit-utils/canUseDOM';\nimport { createPortal } from 'react-dom';\n\nfunction getBodyElement() {\n return canUseDOM ? document.body : null;\n}\n\nvar PortalContext = /*#__PURE__*/createContext(getBodyElement());\nfunction Portal(_ref) {\n var children = _ref.children;\n // if it's a nested portal, context is the parent portal\n // otherwise it's document.body\n // https://github.com/reakit/reakit/issues/513\n var context = useContext(PortalContext) || getBodyElement();\n\n var _React$useState = useState(function () {\n if (canUseDOM) {\n var element = document.createElement(\"div\");\n element.className = Portal.__className;\n return element;\n } // ssr\n\n\n return null;\n }),\n hostNode = _React$useState[0];\n\n useIsomorphicEffect(function () {\n if (!hostNode || !context) return undefined;\n context.appendChild(hostNode);\n return function () {\n context.removeChild(hostNode);\n };\n }, [hostNode, context]);\n\n if (hostNode) {\n return /*#__PURE__*/createPortal( /*#__PURE__*/createElement(PortalContext.Provider, {\n value: hostNode\n }, children), hostNode);\n } // ssr\n\n\n return null;\n}\nPortal.__className = \"__reakit-portal\";\nPortal.__selector = \".\" + Portal.__className;\n\nexport { Portal, PortalContext };\n","/**\n * Immutably removes an index from an array.\n *\n * @example\n * import { removeIndexFromArray } from \"reakit-utils\";\n *\n * removeIndexFromArray([\"a\", \"b\", \"c\"], 1); // [\"a\", \"c\"]\n *\n * @returns {Array} A new array without the item in the passed index.\n */\nfunction removeIndexFromArray(array, index) {\n if (index === -1) return array;\n return [].concat(array.slice(0, index), array.slice(index + 1));\n}\n\nexport { removeIndexFromArray };\n","import { removeIndexFromArray } from './removeIndexFromArray.js';\n\n/**\n * Immutably removes an item from an array.\n *\n * @example\n * import { removeItemFromArray } from \"reakit-utils\";\n *\n * removeItemFromArray([\"a\", \"b\", \"c\"], \"b\"); // [\"a\", \"c\"]\n *\n * // This only works by reference\n * const obj = {};\n * removeItemFromArray([obj], {}); // [obj]\n * removeItemFromArray([obj], obj); // []\n *\n * @returns {Array} A new array without the passed item.\n */\n\nfunction removeItemFromArray(array, item) {\n var index = array.indexOf(item);\n return removeIndexFromArray(array, index);\n}\n\nexport { removeItemFromArray };\n","import { createContext, useContext, useState, useCallback, useEffect, useMemo, createElement } from 'react';\nimport { removeItemFromArray } from 'reakit-utils/removeItemFromArray';\n\nvar MenuContext = /*#__PURE__*/createContext(null);\nfunction useMenuContext(menuRef, role, options) {\n var orphan = \"unstable_orphan\" in options && options.unstable_orphan;\n var parent = useContext(MenuContext);\n\n var _React$useState = useState([]),\n children = _React$useState[0],\n setChildren = _React$useState[1];\n\n var _ref = parent || {},\n addChildToParent = _ref.addChild,\n removeChildFromParent = _ref.removeChild;\n\n var addChild = useCallback(function (ref) {\n return setChildren(function (refs) {\n return [].concat(refs, [ref]);\n });\n }, []);\n var removeChild = useCallback(function (ref) {\n return setChildren(function (refs) {\n return removeItemFromArray(refs, ref);\n });\n }, []); // If it's a nested menu, add it to parent\n\n useEffect(function () {\n if (!addChildToParent || orphan) return undefined;\n addChildToParent(menuRef);\n return function () {\n removeChildFromParent === null || removeChildFromParent === void 0 ? void 0 : removeChildFromParent(menuRef);\n };\n }, [menuRef, addChildToParent, removeChildFromParent, orphan]);\n var providerValue = useMemo(function () {\n return {\n orientation: options.orientation,\n next: options.next,\n previous: options.previous,\n ref: menuRef,\n role: role,\n parent: parent,\n children: children,\n addChild: addChild,\n removeChild: removeChild\n };\n }, [options.orientation, options.next, options.previous, menuRef, role, parent, children, addChild, removeChild]);\n var wrapElement = useCallback(function (element) {\n return /*#__PURE__*/createElement(MenuContext.Provider, {\n value: providerValue\n }, element);\n }, [providerValue]);\n return wrapElement;\n}\n\nexport { MenuContext as M, useMenuContext as u };\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { matches } from './matches.js';\n\n/**\n * Ponyfill for `Element.prototype.closest`\n *\n * @example\n * import { closest } from \"reakit-utils\";\n *\n * closest(document.getElementById(\"id\"), \"div\");\n * // same as\n * document.getElementById(\"id\").closest(\"div\");\n */\nfunction closest(element, selectors) {\n if (\"closest\" in element) return element.closest(selectors);\n\n do {\n if (matches(element, selectors)) return element;\n element = element.parentElement || element.parentNode;\n } while (element !== null && element.nodeType === 1);\n\n return null;\n}\n\nexport { closest };\n","import { createContext } from 'react';\n\nvar DialogBackdropContext = /*#__PURE__*/createContext(undefined);\n\nexport { DialogBackdropContext as D };\n","import { isObject } from './isObject.js';\n\n/**\n * Checks whether `arg` is empty or not.\n *\n * @example\n * import { isEmpty } from \"reakit-utils\";\n *\n * isEmpty([]); // true\n * isEmpty([\"a\"]); // false\n * isEmpty({}); // true\n * isEmpty({ a: \"a\" }); // false\n * isEmpty(); // true\n * isEmpty(null); // true\n * isEmpty(undefined); // true\n * isEmpty(\"\"); // true\n */\n\nfunction isEmpty(arg) {\n if (Array.isArray(arg)) return !arg.length;\n if (isObject(arg)) return !Object.keys(arg).length;\n if (arg == null) return true;\n if (arg === \"\") return true;\n return false;\n}\n\nexport { isEmpty };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useEffect, useContext, useState, useCallback, useMemo, createElement, createContext, useReducer } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport { isButton } from 'reakit-utils/isButton';\nimport { warning, useWarning } from 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport { useIsomorphicEffect } from 'reakit-utils/useIsomorphicEffect';\nimport { hasFocusWithin } from 'reakit-utils/hasFocusWithin';\nimport { getFirstTabbableIn, getLastTabbableIn, isTabbable } from 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport { useUpdateEffect } from 'reakit-utils/useUpdateEffect';\nimport { useCreateElement } from 'reakit-system/useCreateElement';\nimport { getDocument } from 'reakit-utils/getDocument';\nimport 'reakit-utils/canUseDOM';\nimport { getNextActiveElementOnBlur } from 'reakit-utils/getNextActiveElementOnBlur';\nimport { ensureFocus } from 'reakit-utils/ensureFocus';\nimport '../__keys-e6a5cfbe.js';\nimport { useDisclosureContent } from '../Disclosure/DisclosureContent.js';\nimport 'react-dom';\nimport { Portal } from '../Portal/Portal.js';\nimport { removeItemFromArray } from 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { closest } from 'reakit-utils/closest';\nimport { getActiveElement } from 'reakit-utils/getActiveElement';\nimport { contains } from 'reakit-utils/contains';\nimport { D as DialogBackdropContext } from '../DialogBackdropContext-8775f78b.js';\nimport { isEmpty } from 'reakit-utils/isEmpty';\nimport { D as DIALOG_KEYS } from '../__keys-ed7b48af.js';\n\nfunction useDisclosureRef(dialogRef, options) {\n var ref = useRef(null);\n var animating = !!(options.animated && options.animating);\n useEffect(function () {\n if (options.visible || animating) return undefined; // We get the last focused element before the dialog opens, so we can move\n // focus back to it when the dialog closes.\n\n var onFocus = function onFocus(event) {\n var target = event.target;\n\n if (\"focus\" in target) {\n ref.current = target;\n\n if (options.unstable_disclosureRef) {\n options.unstable_disclosureRef.current = target;\n }\n }\n };\n\n var document = getDocument(dialogRef.current);\n document.addEventListener(\"focusin\", onFocus);\n return function () {\n return document.removeEventListener(\"focusin\", onFocus);\n };\n }, [options.visible, animating, options.unstable_disclosureRef, dialogRef]);\n useEffect(function () {\n var _options$unstable_dis;\n\n if (!options.visible || animating) return undefined; // Safari and Firefox on MacOS don't focus on buttons on mouse down.\n // Instead, they focus on the closest focusable parent (ultimately, the\n // body element). This works around that by preventing that behavior and\n // forcing focus on the disclosure button. Otherwise, we wouldn't be able\n // to close the dialog by clicking again on the disclosure.\n\n var onMouseDown = function onMouseDown(event) {\n var element = event.currentTarget;\n if (!isButton(element)) return;\n event.preventDefault();\n element.focus();\n };\n\n var disclosure = ((_options$unstable_dis = options.unstable_disclosureRef) === null || _options$unstable_dis === void 0 ? void 0 : _options$unstable_dis.current) || ref.current;\n disclosure === null || disclosure === void 0 ? void 0 : disclosure.addEventListener(\"mousedown\", onMouseDown);\n return function () {\n return disclosure === null || disclosure === void 0 ? void 0 : disclosure.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [options.visible, animating, options.unstable_disclosureRef]);\n return options.unstable_disclosureRef || ref;\n}\n\nfunction usePreventBodyScroll(targetRef, options) {\n var shouldPrevent = Boolean(options.preventBodyScroll && options.visible);\n useEffect(function () {\n var element = targetRef.current;\n if (!element || !shouldPrevent) return undefined;\n disableBodyScroll(element, {\n reserveScrollBarGap: true\n });\n return function () {\n return enableBodyScroll(element);\n };\n }, [targetRef, shouldPrevent]);\n}\n\nfunction useFocusOnShow(dialogRef, nestedDialogs, options) {\n var initialFocusRef = options.unstable_initialFocusRef;\n var shouldFocus = options.visible && options.unstable_autoFocusOnShow;\n var animating = !!(options.animated && options.animating);\n useUpdateEffect(function () {\n var dialog = dialogRef.current;\n process.env.NODE_ENV !== \"production\" ? warning(!!shouldFocus && !dialog, \"[reakit/Dialog]\", \"Can't set initial focus on dialog because `ref` wasn't passed to the dialog element.\", \"See https://reakit.io/docs/dialog\") : void 0;\n if (!shouldFocus) return;\n if (!dialog) return;\n if (animating) return; // If there're nested open dialogs, let them handle focus\n\n if (nestedDialogs.some(function (child) {\n return child.current && !child.current.hidden;\n })) {\n return;\n }\n\n if (initialFocusRef !== null && initialFocusRef !== void 0 && initialFocusRef.current) {\n initialFocusRef.current.focus({\n preventScroll: true\n });\n } else {\n var tabbable = getFirstTabbableIn(dialog, true);\n\n var isActive = function isActive() {\n return hasFocusWithin(dialog);\n };\n\n if (tabbable) {\n ensureFocus(tabbable, {\n preventScroll: true,\n isActive: isActive\n });\n } else {\n ensureFocus(dialog, {\n preventScroll: true,\n isActive: isActive\n });\n process.env.NODE_ENV !== \"production\" ? warning(dialog.tabIndex === undefined || dialog.tabIndex < 0, \"It's recommended to have at least one tabbable element inside dialog. The dialog element has been automatically focused.\", \"If this is the intended behavior, pass `tabIndex={0}` to the dialog element to disable this warning.\", \"See https://reakit.io/docs/dialog/#initial-focus\", dialog) : void 0;\n }\n }\n }, [dialogRef, shouldFocus, animating, nestedDialogs, initialFocusRef]);\n}\n\nfunction usePortalRef(dialogRef, options) {\n var portalRef = useRef(null);\n useEffect(function () {\n var dialog = dialogRef.current;\n if (!dialog || !options.visible) return;\n portalRef.current = closest(dialog, Portal.__selector);\n }, [dialogRef, options.visible]);\n return portalRef;\n}\n\nfunction removeFromDOM(element) {\n if (element.parentNode == null) return;\n element.parentNode.removeChild(element);\n}\n\nvar focusTrapClassName = \"__reakit-focus-trap\";\nfunction isFocusTrap(element) {\n var _element$classList;\n\n return (_element$classList = element.classList) === null || _element$classList === void 0 ? void 0 : _element$classList.contains(focusTrapClassName);\n}\nfunction useFocusTrap(dialogRef, visibleModals, options) {\n var portalRef = usePortalRef(dialogRef, options);\n var shouldTrap = options.visible && options.modal;\n var beforeElement = useRef(null);\n var afterElement = useRef(null); // Create before and after elements\n // https://github.com/w3c/aria-practices/issues/545\n\n useEffect(function () {\n if (!shouldTrap) return undefined;\n var portal = portalRef.current;\n\n if (!portal) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Can't trap focus within modal dialog because either `ref` wasn't passed to component or the component wasn't rendered within a portal\", \"See https://reakit.io/docs/dialog\") : void 0;\n return undefined;\n }\n\n if (!beforeElement.current) {\n var document = getDocument(portal);\n beforeElement.current = document.createElement(\"div\");\n beforeElement.current.className = focusTrapClassName;\n beforeElement.current.tabIndex = 0;\n beforeElement.current.style.position = \"fixed\";\n beforeElement.current.setAttribute(\"aria-hidden\", \"true\");\n }\n\n if (!afterElement.current) {\n afterElement.current = beforeElement.current.cloneNode();\n }\n\n portal.insertAdjacentElement(\"beforebegin\", beforeElement.current);\n portal.insertAdjacentElement(\"afterend\", afterElement.current);\n return function () {\n if (beforeElement.current) removeFromDOM(beforeElement.current);\n if (afterElement.current) removeFromDOM(afterElement.current);\n };\n }, [portalRef, shouldTrap]); // Focus trap\n\n useEffect(function () {\n var before = beforeElement.current;\n var after = afterElement.current;\n if (!shouldTrap || !before || !after) return undefined;\n\n var handleFocus = function handleFocus(event) {\n var dialog = dialogRef.current;\n if (!dialog || visibleModals.length) return;\n event.preventDefault();\n var isAfter = event.target === after;\n var tabbable = isAfter ? getFirstTabbableIn(dialog) : getLastTabbableIn(dialog);\n\n if (tabbable) {\n tabbable.focus();\n } else {\n // fallback to dialog\n dialog.focus();\n }\n };\n\n before.addEventListener(\"focus\", handleFocus);\n after.addEventListener(\"focus\", handleFocus);\n return function () {\n before.removeEventListener(\"focus\", handleFocus);\n after.removeEventListener(\"focus\", handleFocus);\n };\n }, [dialogRef, visibleModals, shouldTrap]);\n}\n\nfunction hidByFocusingAnotherElement(dialogRef) {\n var dialog = dialogRef.current;\n if (!dialog) return false;\n var activeElement = getActiveElement(dialog);\n if (!activeElement) return false;\n if (contains(dialog, activeElement)) return false;\n if (isTabbable(activeElement)) return true;\n if (activeElement.getAttribute(\"data-dialog\") === \"true\") return true;\n return false;\n}\n\nfunction useFocusOnHide(dialogRef, disclosureRef, options) {\n var shouldFocus = options.unstable_autoFocusOnHide && !options.visible;\n var animating = !!(options.animated && options.animating);\n useUpdateEffect(function () {\n var _options$unstable_fin;\n\n if (!shouldFocus) return;\n if (animating) return; // Hide was triggered by a click/focus on a tabbable element outside\n // the dialog or on another dialog. We won't change focus then.\n\n if (hidByFocusingAnotherElement(dialogRef)) {\n return;\n }\n\n var finalFocusEl = ((_options$unstable_fin = options.unstable_finalFocusRef) === null || _options$unstable_fin === void 0 ? void 0 : _options$unstable_fin.current) || disclosureRef.current;\n\n if (finalFocusEl) {\n if (finalFocusEl.id) {\n var document = getDocument(finalFocusEl);\n var compositeElement = document.querySelector(\"[aria-activedescendant='\" + finalFocusEl.id + \"']\");\n\n if (compositeElement) {\n ensureFocus(compositeElement);\n return;\n }\n }\n\n ensureFocus(finalFocusEl);\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Can't return focus after closing dialog. Either render a disclosure component or provide a `unstable_finalFocusRef` prop.\", \"See https://reakit.io/docs/dialog\", dialogRef.current) : void 0;\n }, [shouldFocus, animating, dialogRef, disclosureRef]);\n}\n\nvar DialogContext = /*#__PURE__*/createContext({});\nfunction useNestedDialogs(dialogRef, options) {\n var context = useContext(DialogContext);\n\n var _React$useState = useState([]),\n dialogs = _React$useState[0],\n setDialogs = _React$useState[1];\n\n var _React$useState2 = useState(dialogs),\n visibleModals = _React$useState2[0],\n setVisibleModals = _React$useState2[1];\n\n var addDialog = useCallback(function (ref) {\n var _context$addDialog;\n\n (_context$addDialog = context.addDialog) === null || _context$addDialog === void 0 ? void 0 : _context$addDialog.call(context, ref);\n setDialogs(function (prevDialogs) {\n return [].concat(prevDialogs, [ref]);\n });\n }, [context.addDialog]);\n var removeDialog = useCallback(function (ref) {\n var _context$removeDialog;\n\n (_context$removeDialog = context.removeDialog) === null || _context$removeDialog === void 0 ? void 0 : _context$removeDialog.call(context, ref);\n setDialogs(function (prevDialogs) {\n return removeItemFromArray(prevDialogs, ref);\n });\n }, [context.removeDialog]);\n var showDialog = useCallback(function (ref) {\n var _context$showDialog;\n\n (_context$showDialog = context.showDialog) === null || _context$showDialog === void 0 ? void 0 : _context$showDialog.call(context, ref);\n setVisibleModals(function (prevDialogs) {\n return [].concat(prevDialogs, [ref]);\n });\n }, [context.showDialog]);\n var hideDialog = useCallback(function (ref) {\n var _context$hideDialog;\n\n (_context$hideDialog = context.hideDialog) === null || _context$hideDialog === void 0 ? void 0 : _context$hideDialog.call(context, ref);\n setVisibleModals(function (prevDialogs) {\n return removeItemFromArray(prevDialogs, ref);\n });\n }, [context.hideDialog]); // If it's a nested dialog, add it to context\n\n useEffect(function () {\n var _context$addDialog2;\n\n if (options.unstable_orphan) return undefined;\n (_context$addDialog2 = context.addDialog) === null || _context$addDialog2 === void 0 ? void 0 : _context$addDialog2.call(context, dialogRef);\n return function () {\n var _context$removeDialog2;\n\n (_context$removeDialog2 = context.removeDialog) === null || _context$removeDialog2 === void 0 ? void 0 : _context$removeDialog2.call(context, dialogRef);\n };\n }, [options.unstable_orphan, context.addDialog, dialogRef, context.removeDialog]);\n useEffect(function () {\n var _context$showDialog2;\n\n if (options.unstable_orphan) return undefined;\n if (!options.modal) return undefined;\n if (!options.visible) return undefined;\n (_context$showDialog2 = context.showDialog) === null || _context$showDialog2 === void 0 ? void 0 : _context$showDialog2.call(context, dialogRef);\n return function () {\n var _context$hideDialog2;\n\n (_context$hideDialog2 = context.hideDialog) === null || _context$hideDialog2 === void 0 ? void 0 : _context$hideDialog2.call(context, dialogRef);\n };\n }, [options.unstable_orphan, options.modal, options.visible, context.showDialog, dialogRef, context.hideDialog]); // Close all nested dialogs when parent dialog closes\n\n useEffect(function () {\n if (context.visible === false && options.visible && !options.unstable_orphan) {\n var _options$hide;\n\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n }\n }, [context.visible, options.visible, options.hide, options.unstable_orphan]); // Provider\n\n var providerValue = useMemo(function () {\n return {\n visible: options.visible,\n addDialog: addDialog,\n removeDialog: removeDialog,\n showDialog: showDialog,\n hideDialog: hideDialog\n };\n }, [options.visible, addDialog, removeDialog, showDialog, hideDialog]);\n var wrap = useCallback(function (element) {\n return /*#__PURE__*/createElement(DialogContext.Provider, {\n value: providerValue\n }, element);\n }, [providerValue]);\n return {\n dialogs: dialogs,\n visibleModals: visibleModals,\n wrap: wrap\n };\n}\n\nfunction dialogContains(target) {\n return function (dialogRef) {\n var dialog = dialogRef.current;\n if (!dialog) return false;\n if (contains(dialog, target)) return true;\n var document = getDocument(dialog);\n var backdrop = document.querySelector(\"[data-dialog-ref=\\\"\" + dialog.id + \"\\\"]\");\n\n if (backdrop) {\n return contains(backdrop, target);\n }\n\n return false;\n };\n}\n\nfunction isDisclosure(target, disclosure) {\n return contains(disclosure, target);\n}\n\nfunction isInDocument(target) {\n var document = getDocument(target);\n\n if (target.tagName === \"HTML\") {\n return true;\n }\n\n return contains(document.body, target);\n}\n\nfunction useEventListenerOutside(containerRef, disclosureRef, nestedDialogs, eventType, listener, shouldListen, capture) {\n var listenerRef = useLiveRef(listener);\n useEffect(function () {\n if (!shouldListen) return undefined;\n\n var onEvent = function onEvent(event) {\n if (!listenerRef.current) return;\n var container = containerRef.current;\n var disclosure = disclosureRef.current;\n var target = event.target;\n\n if (!container) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Can't detect events outside dialog because `ref` wasn't passed to component.\", \"See https://reakit.io/docs/dialog\") : void 0;\n return;\n } // When an element is unmounted right after it receives focus, the focus\n // event is triggered after that, when the element isn't part of the\n // current document anymore. So we ignore it.\n\n\n if (!isInDocument(target)) return; // Event inside dialog\n\n if (contains(container, target)) return; // Event on disclosure\n\n if (disclosure && isDisclosure(target, disclosure)) return; // Event inside a nested dialog or focus trap\n\n if (isFocusTrap(target) || nestedDialogs.some(dialogContains(target))) {\n return;\n }\n\n listenerRef.current(event);\n };\n\n var document = getDocument(containerRef.current);\n document.addEventListener(eventType, onEvent, capture);\n return function () {\n return document.removeEventListener(eventType, onEvent, capture);\n };\n }, [containerRef, disclosureRef, nestedDialogs, eventType, shouldListen, listenerRef]);\n}\n\nfunction useMouseDownRef(dialogRef, options) {\n var mouseDownRef = useRef();\n useEffect(function () {\n if (!options.visible) return undefined;\n if (!options.hideOnClickOutside) return undefined;\n var document = getDocument(dialogRef.current);\n\n var onMouseDown = function onMouseDown(event) {\n mouseDownRef.current = event.target;\n };\n\n document.addEventListener(\"mousedown\", onMouseDown);\n return function () {\n return document.removeEventListener(\"mousedown\", onMouseDown);\n };\n }, [options.visible, options.hideOnClickOutside, dialogRef]);\n return mouseDownRef;\n}\n\nfunction useHideOnClickOutside(dialogRef, disclosureRef, nestedDialogs, options) {\n var mouseDownRef = useMouseDownRef(dialogRef, options);\n useEventListenerOutside(dialogRef, disclosureRef, nestedDialogs, \"click\", function (event) {\n // Make sure the element that has been clicked is the same that last\n // triggered the mousedown event. This prevents the dialog from closing\n // by dragging the cursor (for example, selecting some text inside the\n // dialog and releasing the mouse outside of it).\n if (mouseDownRef.current === event.target) {\n var _options$hide;\n\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n }\n }, options.visible && options.hideOnClickOutside);\n useEventListenerOutside(dialogRef, disclosureRef, nestedDialogs, \"focusin\", function (event) {\n var document = getDocument(dialogRef.current); // Fix for https://github.com/reakit/reakit/issues/619\n // On IE11, calling element.blur() triggers the focus event on\n // document.body, so we make sure to ignore it as well.\n\n if (event.target !== document && event.target !== document.body) {\n var _options$hide2;\n\n (_options$hide2 = options.hide) === null || _options$hide2 === void 0 ? void 0 : _options$hide2.call(options);\n }\n }, options.visible && options.hideOnClickOutside);\n}\n\nfunction useDisableHoverOutside(portalRef, nestedDialogs, options) {\n var useEvent = function useEvent(eventType) {\n return useEventListenerOutside(portalRef, {\n current: null\n }, nestedDialogs, eventType, function (event) {\n event.stopPropagation();\n event.preventDefault();\n }, options.visible && options.modal, true);\n };\n\n useEvent(\"mouseover\");\n useEvent(\"mousemove\");\n useEvent(\"mouseout\");\n}\n\n/**\n * When the focused child gets removed from the DOM, we make sure to move focus\n * to the dialog.\n */\nfunction useFocusOnChildUnmount(dialogRef, options) {\n useEffect(function () {\n var dialog = dialogRef.current;\n if (!options.visible || !dialog) return undefined;\n var observer = new MutationObserver(function (mutations) {\n var target = mutations[0].target; // If target is not this dialog, then this observer was triggered by a\n // nested dialog, so we just ignore it here and let the nested dialog\n // handle it there.\n\n if (target !== dialog) return;\n var document = getDocument(dialog);\n var activeElement = getActiveElement(dialog); // We can check if the current focused element is the document body. On\n // IE 11, it's an empty object when the current document is in a frame or\n // iframe.\n\n if (activeElement === document.body || isEmpty(activeElement)) {\n dialog.focus();\n }\n });\n observer.observe(dialog, {\n childList: true,\n subtree: true\n });\n return function () {\n observer.disconnect();\n };\n }, [options.visible, dialogRef]);\n}\n\nfunction isActualElement(element) {\n return element && element.tagName && element.tagName !== \"HTML\" && element !== getDocument(element).body;\n}\n\nfunction useFocusOnBlur(dialogRef, options) {\n var _React$useReducer = useReducer(function (n) {\n return n + 1;\n }, 0),\n blurred = _React$useReducer[0],\n scheduleFocus = _React$useReducer[1];\n\n useIsomorphicEffect(function () {\n var dialog = dialogRef.current;\n if (!options.visible) return;\n if (!blurred) return; // After blur, if the active element isn't an actual element, this probably\n // means that element.blur() was called on an element inside the dialog.\n // In this case, the browser will automatically focus the body element.\n // So we move focus back to the dialog.\n\n if (!isActualElement(getActiveElement(dialog))) {\n process.env.NODE_ENV !== \"production\" ? warning(!dialog, \"Can't focus dialog after a nested element got blurred because `ref` wasn't passed to the component\", \"See https://reakit.io/docs/dialog\") : void 0;\n dialog === null || dialog === void 0 ? void 0 : dialog.focus();\n }\n }, [blurred, dialogRef]);\n var onBlur = useCallback(function (event) {\n if (!options.visible) return;\n var nextActiveElement = getNextActiveElementOnBlur(event);\n\n if (!isActualElement(nextActiveElement)) {\n scheduleFocus();\n }\n }, [options.visible]);\n return onBlur;\n}\n\nvar useDialog = createHook({\n name: \"Dialog\",\n compose: useDisclosureContent,\n keys: DIALOG_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? true : _ref$modal,\n _ref$hideOnEsc = _ref.hideOnEsc,\n hideOnEsc = _ref$hideOnEsc === void 0 ? true : _ref$hideOnEsc,\n _ref$hideOnClickOutsi = _ref.hideOnClickOutside,\n hideOnClickOutside = _ref$hideOnClickOutsi === void 0 ? true : _ref$hideOnClickOutsi,\n _ref$preventBodyScrol = _ref.preventBodyScroll,\n preventBodyScroll = _ref$preventBodyScrol === void 0 ? modal : _ref$preventBodyScrol,\n _ref$unstable_autoFoc = _ref.unstable_autoFocusOnShow,\n unstable_autoFocusOnShow = _ref$unstable_autoFoc === void 0 ? true : _ref$unstable_autoFoc,\n _ref$unstable_autoFoc2 = _ref.unstable_autoFocusOnHide,\n unstable_autoFocusOnHide = _ref$unstable_autoFoc2 === void 0 ? true : _ref$unstable_autoFoc2,\n unstable_orphan = _ref.unstable_orphan,\n options = _objectWithoutPropertiesLoose(_ref, [\"modal\", \"hideOnEsc\", \"hideOnClickOutside\", \"preventBodyScroll\", \"unstable_autoFocusOnShow\", \"unstable_autoFocusOnHide\", \"unstable_orphan\"]);\n\n return _objectSpread2({\n modal: modal,\n hideOnEsc: hideOnEsc,\n hideOnClickOutside: hideOnClickOutside,\n preventBodyScroll: modal && preventBodyScroll,\n unstable_autoFocusOnShow: unstable_autoFocusOnShow,\n unstable_autoFocusOnHide: unstable_autoFocusOnHide,\n unstable_orphan: modal && unstable_orphan\n }, options);\n },\n useProps: function useProps(options, _ref2) {\n var htmlRef = _ref2.ref,\n htmlOnKeyDown = _ref2.onKeyDown,\n htmlOnBlur = _ref2.onBlur,\n htmlWrapElement = _ref2.wrapElement,\n tabIndex = _ref2.tabIndex,\n htmlProps = _objectWithoutPropertiesLoose(_ref2, [\"ref\", \"onKeyDown\", \"onBlur\", \"wrapElement\", \"tabIndex\"]);\n\n var dialog = useRef(null);\n var backdrop = useContext(DialogBackdropContext);\n var hasBackdrop = backdrop && backdrop === options.baseId;\n var disclosure = useDisclosureRef(dialog, options);\n var onKeyDownRef = useLiveRef(htmlOnKeyDown);\n var onBlurRef = useLiveRef(htmlOnBlur);\n var focusOnBlur = useFocusOnBlur(dialog, options);\n\n var _useNestedDialogs = useNestedDialogs(dialog, options),\n dialogs = _useNestedDialogs.dialogs,\n visibleModals = _useNestedDialogs.visibleModals,\n wrap = _useNestedDialogs.wrap; // VoiceOver/Safari accepts only one `aria-modal` container, so if there\n // are visible child modals, then we don't want to set aria-modal on the\n // parent modal (this component).\n\n\n var modal = options.modal && !visibleModals.length ? true : undefined;\n usePreventBodyScroll(dialog, options);\n useFocusTrap(dialog, visibleModals, options);\n useFocusOnChildUnmount(dialog, options);\n useFocusOnShow(dialog, dialogs, options);\n useFocusOnHide(dialog, disclosure, options);\n useHideOnClickOutside(dialog, disclosure, dialogs, options);\n useDisableHoverOutside(dialog, dialogs, options);\n var onKeyDown = useCallback(function (event) {\n var _onKeyDownRef$current;\n\n (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n if (event.defaultPrevented) return;\n if (event.key !== \"Escape\") return;\n if (!options.hideOnEsc) return;\n\n if (!options.hide) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"`hideOnEsc` prop is truthy, but `hide` prop wasn't provided.\", \"See https://reakit.io/docs/dialog\", dialog.current) : void 0;\n return;\n }\n\n event.stopPropagation();\n options.hide();\n }, [options.hideOnEsc, options.hide]);\n var onBlur = useCallback(function (event) {\n var _onBlurRef$current;\n\n (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);\n focusOnBlur(event);\n }, [focusOnBlur]);\n var wrapElement = useCallback(function (element) {\n element = wrap(element);\n\n if (options.modal && !hasBackdrop) {\n element = /*#__PURE__*/createElement(Portal, null, element);\n }\n\n if (htmlWrapElement) {\n element = htmlWrapElement(element);\n }\n\n return (\n /*#__PURE__*/\n // Prevents Menu > Dialog > Menu to behave as a sub menu\n createElement(MenuContext.Provider, {\n value: null\n }, element)\n );\n }, [wrap, options.modal, hasBackdrop, htmlWrapElement]);\n return _objectSpread2({\n ref: useForkRef(dialog, htmlRef),\n role: \"dialog\",\n tabIndex: tabIndex != null ? tabIndex : -1,\n \"aria-modal\": modal,\n \"data-dialog\": true,\n onKeyDown: onKeyDown,\n onBlur: onBlur,\n wrapElement: wrapElement\n }, htmlProps);\n }\n});\nvar Dialog = createComponent({\n as: \"div\",\n useHook: useDialog,\n useCreateElement: function useCreateElement$1(type, props, children) {\n process.env.NODE_ENV !== \"production\" ? useWarning(!props[\"aria-label\"] && !props[\"aria-labelledby\"], \"You should provide either `aria-label` or `aria-labelledby` props.\", \"See https://reakit.io/docs/dialog\") : void 0;\n return useCreateElement(type, props, children);\n }\n});\n\nexport { Dialog, useDialog };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useCallback, createElement } from 'react';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport '../Role/Role.js';\nimport 'reakit-utils/canUseDOM';\nimport '../__keys-e6a5cfbe.js';\nimport { useDisclosureContent } from '../Disclosure/DisclosureContent.js';\nimport 'react-dom';\nimport { Portal } from '../Portal/Portal.js';\nimport { D as DialogBackdropContext } from '../DialogBackdropContext-8775f78b.js';\nimport { a as DIALOG_BACKDROP_KEYS } from '../__keys-ed7b48af.js';\n\nvar useDialogBackdrop = createHook({\n name: \"DialogBackdrop\",\n compose: useDisclosureContent,\n keys: DIALOG_BACKDROP_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$modal = _ref.modal,\n modal = _ref$modal === void 0 ? true : _ref$modal,\n options = _objectWithoutPropertiesLoose(_ref, [\"modal\"]);\n\n return _objectSpread2({\n modal: modal\n }, options);\n },\n useProps: function useProps(options, _ref2) {\n var htmlWrapElement = _ref2.wrapElement,\n htmlProps = _objectWithoutPropertiesLoose(_ref2, [\"wrapElement\"]);\n\n var wrapElement = useCallback(function (element) {\n if (options.modal) {\n element = /*#__PURE__*/createElement(Portal, null, /*#__PURE__*/createElement(DialogBackdropContext.Provider, {\n value: options.baseId\n }, element));\n }\n\n if (htmlWrapElement) {\n return htmlWrapElement(element);\n }\n\n return element;\n }, [options.modal, htmlWrapElement]);\n return _objectSpread2({\n id: undefined,\n \"data-dialog-ref\": options.baseId,\n wrapElement: wrapElement\n }, htmlProps);\n }\n});\nvar DialogBackdrop = createComponent({\n as: \"div\",\n memo: true,\n useHook: useDialogBackdrop\n});\n\nexport { DialogBackdrop, useDialogBackdrop };\n","import { useEffect, useRef } from 'react'\n\nimport type { DialogProps } from 'reakit/Dialog'\nimport { Dialog, DialogBackdrop } from 'reakit/Dialog'\nimport styled, { css } from 'styled-components'\n\nimport { colors, zIndex } from 'theme'\n\ntype LocalModalProps = {\n children: React.ReactNode\n ariaLabel: string\n}\n\nexport type ModalProps = LocalModalProps & DialogProps\n\nconst Modal = ({ children, ariaLabel, className, ...modalState }: ModalProps) => {\n const ref = useRef(null)\n\n useEffect(() => {\n if (modalState.visible) {\n ref.current && ref.current.focus()\n }\n }, [modalState.visible])\n\n if (!modalState.visible) return null\n\n return (\n <>\n <_DialogBackdrop {...modalState} {...{ className }} />\n <_Dialog {...modalState} {...{ className }} aria-label={ariaLabel} ref={ref}>\n {children}\n \n \n )\n}\n\nexport default Modal\n\nconst _Dialog = styled(Dialog)`\n ${(props: any) =>\n props.visible &&\n css`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n z-index: ${zIndex.layerTop};\n\n :focus {\n outline: none;\n }\n `}\n`\n\nconst _DialogBackdrop = styled(DialogBackdrop)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: ${zIndex.layer09};\n background-color: ${colors.modalBackground}; // TODO TOMMY - transparent\n`\n","import Modal from './Modal'\nexport default Modal\nexport * from './Modal'\n","import React from 'react'\n\nimport styled, { css } from 'styled-components'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport { fonts } from 'theme'\n\ntype LocalParagraphProps = {\n children: string | (React.ReactNode & string) | React.ReactNode\n maxLines?: number\n}\n\nexport type ParagraphProps = LocalParagraphProps & BoxProps\n\nexport const Paragraph = ({\n children,\n as = 'p',\n className,\n maxLines,\n color = 'neutral.700',\n fontWeight = fonts.weight.normal,\n lineHeight = 1.4,\n ...props\n}: ParagraphProps) => {\n return (\n <_Paragraph\n as={as}\n className={className}\n fontWeight={fontWeight}\n lineHeight={lineHeight}\n maxLines={maxLines}\n color={color}\n {...props}\n >\n {children}\n \n )\n}\n\nexport default Paragraph\n\nconst _Paragraph = styled(Box)`\n &:not(:last-child) {\n margin-bottom: 1rem;\n }\n ${({ maxLines }) =>\n maxLines &&\n css`\n -webkit-box-orient: vertical;\n display: -webkit-box;\n -webkit-line-clamp: ${maxLines};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n `}\n`\n","import Paragraph from './Paragraph'\nexport default Paragraph\nexport * from './Paragraph'\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import type { ElementType } from 'react'\n\nimport isPropValid from '@emotion/is-prop-valid'\nimport styled from 'styled-components'\nimport {\n space,\n layout,\n compose,\n color,\n flexbox,\n typography,\n border,\n background,\n position,\n system,\n boxShadow,\n grid,\n} from 'styled-system'\nimport type {\n SpaceProps,\n ColorProps,\n WidthProps,\n HeightProps,\n DisplayProps,\n FontSizeProps,\n FontWeightProps,\n FontFamilyProps,\n LineHeightProps,\n LetterSpacingProps,\n FontStyleProps,\n TextAlignProps,\n FlexProps,\n AlignItemsProps,\n JustifyItemsProps,\n JustifyContentProps,\n FlexDirectionProps,\n FlexWrapProps,\n AlignSelfProps,\n AlignContentProps,\n BorderProps as BrderProps,\n BorderBottomProps,\n BorderTopProps,\n BorderLeftProps,\n BorderRightProps,\n BorderColorProps,\n BorderStyleProps,\n BorderRadiusProps,\n BorderWidthProps,\n ZIndexProps,\n TopProps,\n BottomProps,\n RightProps,\n LeftProps,\n PositionProps as PosProps,\n BackgroundProps as BGProps,\n BackgroundImageProps,\n BackgroundColorProps,\n BackgroundPositionProps,\n BackgroundRepeatProps,\n BackgroundSizeProps,\n MinWidthProps,\n MinHeightProps,\n MaxWidthProps,\n MaxHeightProps,\n ResponsiveValue,\n BoxShadowProps,\n GridProps,\n GridGapProps,\n GridColumnGapProps,\n} from 'styled-system'\n\nimport type { RadiiProps } from 'components/types/props'\nimport type { ColorName, ThemedComponent } from 'theme'\nimport { getColor, radii } from 'theme'\n\nexport type TypographyProps = FontWeightProps &\n FontSizeProps &\n FontFamilyProps &\n LineHeightProps &\n LetterSpacingProps &\n FontStyleProps &\n TextAlignProps\n\nexport type FlexBoxProps = FlexProps &\n AlignItemsProps &\n JustifyItemsProps &\n JustifyContentProps &\n FlexDirectionProps &\n FlexWrapProps &\n AlignSelfProps &\n AlignContentProps\n\nexport type GridBoxProps = GridProps & GridGapProps & GridColumnGapProps\n\nexport type BorderProps = BrderProps &\n BorderBottomProps &\n BorderTopProps &\n BorderLeftProps &\n BorderRightProps &\n BorderColorProps &\n BorderStyleProps &\n BorderRadiusProps &\n BorderWidthProps\n\nexport type BackgroundProps = BGProps &\n BackgroundImageProps &\n BackgroundColorProps &\n BackgroundPositionProps &\n BackgroundRepeatProps &\n BackgroundSizeProps\n\nexport type PositionProps = ZIndexProps & TopProps & BottomProps & RightProps & LeftProps & PosProps\n\nexport type LayoutProps = WidthProps &\n HeightProps &\n DisplayProps &\n MinHeightProps &\n MaxHeightProps &\n MinWidthProps &\n MaxWidthProps\n\nexport type CSSProps = {\n objectFit?: ResponsiveValue\n overflow?: ResponsiveValue\n transform?: ResponsiveValue\n}\n\ntype CustomColorProps = {\n color?: ColorName\n borderColor?: ColorName\n backgroundColor?: ColorName\n bg?: ColorName\n}\n\ntype _BoxProps = SpaceProps &\n ColorProps &\n TypographyProps &\n FlexBoxProps &\n BorderProps &\n BackgroundProps &\n PositionProps &\n LayoutProps &\n BoxShadowProps &\n CSSProps &\n GridBoxProps &\n React.HTMLAttributes & {\n as?: ElementType\n className?: string\n css?: any\n }\n\nexport type BoxProps = Omit<\n _BoxProps,\n 'color' | 'backgroundColor' | 'borderColor' | 'bg' | 'borderRadius' | 'url' | 'href'\n> &\n CustomColorProps & {\n borderRadius?: ResponsiveValue\n }\n\nexport type BoxPropsWithTheme = ThemedComponent\n\nconst objectFit = system({\n objectFit: true,\n transform: true,\n})\n\nexport const _getColor = ({ color }: any) => getColor(color)\n\nexport const shouldForwardProp = (propName: string) => {\n if (\n // These props are not passed through as they have custom values (e.g. neutral.999)\n // which are handled by the Box component (i.e. converted into valid HTML values)\n propName === 'color' ||\n propName === 'backgroundColor' ||\n propName === 'borderColor' ||\n propName === 'bg' ||\n propName === 'borderRadius'\n ) {\n return false\n }\n // Forward the prop if it is a valid HTML attribute with valid values\n return isPropValid(propName)\n}\n\nconst Box = styled.div.withConfig({\n shouldForwardProp: prop => shouldForwardProp(prop),\n})`\n box-sizing: border-box;\n & {\n ${compose(\n space,\n typography,\n color,\n layout,\n flexbox,\n border,\n background,\n position,\n objectFit,\n boxShadow,\n grid,\n )}\n }\n & {\n border-radius: ${({ borderRadius }) =>\n typeof borderRadius === 'string' && radii[borderRadius]};\n color: ${({ color }) => getColor(color)};\n background-color: ${({ backgroundColor, bg }) => getColor(bg ?? backgroundColor)};\n border-color: ${({ borderColor }) => getColor(borderColor)};\n }\n`\n\nexport default Box\n","import React from 'react'\n\nimport styled, { css } from 'styled-components'\n\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Box from 'components/Primitives/Box'\nimport Theme from 'theme'\n\nexport type Spacing = number | number[]\n\ntype LocalSetProps = {\n children: React.ReactNode\n isVertical?: boolean\n spacing?: Spacing\n isBlock?: boolean //only works with isVertical=true\n}\n\nexport type SetProps = LocalSetProps &\n Omit<\n BoxProps,\n | 'children'\n // The margin props are used internally to create responsive spacing,\n // so we don't want to be able to pass them in\n | 'margin-left'\n | 'margin-top'\n | 'margin-bottom'\n | 'margin-right'\n | 'margin'\n | 'marginX'\n | 'marginY'\n | 'm'\n | 'mx'\n | 'my'\n | 'mt'\n | 'mr'\n | 'mb'\n | 'ml'\n >\n\nconst Set = React.forwardRef(\n (\n {\n className,\n children,\n isVertical = false,\n isBlock = false,\n spacing = 1,\n ...props\n }: SetProps,\n ref,\n ) => (\n <_Set\n className={className}\n spacing={spacing}\n isVertical={isVertical}\n isBlock={isBlock}\n ref={ref}\n {...props}\n >\n {children}\n \n ),\n)\n\nSet.displayName = 'Set'\n\nexport default Set\n\n/**\n * This is to support responsive spacing on Set component. It works now but I'm sure there is a better way to do this.\n *\n * @param spacing spacing scale. Can be a single number or an array of numbers to support responsive spacing\n * @param cssString css styling to be applied to the spacing scale as well as the other css styles\n * Use {{scale}} to represent the spacing scale in the cssString. e.g. margin-left: {{scale}}rem;\n * @returns css styling with the responsive spacing applied\n */\nconst createResponsiveSpacing = (spacing: Spacing | undefined, cssString: string) => {\n if (!spacing) return\n\n if (!Array.isArray(spacing)) {\n return css`\n ${cssString.replace(/{{scale}}/g, spacing.toString())};\n `\n }\n\n const callback = (spacingScale: number, index: number) =>\n css`\n @media screen and (min-width: ${Theme.breakpoints[index]}) {\n ${cssString.replace(/{{scale}}/g, spacingScale.toString())}\n } ;\n `\n\n const smallestScreen = css`\n @media screen and (min-width: 0px) {\n ${cssString.replace(/{{scale}}/g, spacing[0].toString())}\n } ;\n `\n\n return `\n ${smallestScreen}${spacing.map(callback).join('')}\n `\n}\n\nconst _Set = styled(Box)`\n display: flex;\n ${props => {\n if (props.isVertical) {\n return css`\n flex-direction: column;\n ${!props.isBlock && `align-items: ${props.alignItems || 'flex-start'};`}\n `\n }\n const cssString = `\n margin-left: -{{scale}}rem;\n margin-top: -{{scale}}rem;\n align-items: ${props.alignItems || 'center'};\n justify-content: ${props.justifyContent || 'flex-start'};\n `\n return createResponsiveSpacing(props.spacing, cssString)\n }}\n\n & > * {\n ${({ spacing, isVertical }) => {\n if (spacing === undefined) return\n const cssStr = isVertical\n ? '&:not(:last-child) {margin-bottom: {{scale}}rem;}'\n : 'margin-left: {{scale}}rem; margin-top: {{scale}}rem;'\n\n return createResponsiveSpacing(spacing, cssStr)\n }}\n }\n`\n","import Set from './Set'\nexport default Set\nexport * from './Set'\n","import React from 'react'\n\nimport Icon from 'components/Icon'\nimport type { IconProps } from 'components/Icon'\nimport type { BoxProps } from 'components/Primitives/Box'\nimport Set from 'components/Set'\nimport type { ColorName } from 'theme/Types'\n\nexport type StarRatingProps = {\n rating?: number\n color?: ColorName\n secondaryColor?: ColorName\n starSize?: IconProps['size']\n} & BoxProps\n\nconst StarRating = ({\n rating = 5,\n color = 'yellow',\n secondaryColor = 'grey300',\n starSize = '16px',\n ...rest\n}: StarRatingProps) => (\n \n {Array(5)\n .fill(1)\n .map((_, i) => (\n rating ? secondaryColor : color}\n />\n ))}\n \n)\n\nexport default StarRating\n","// couldn't find this in the new stripe lib, so just typed manually for now\ntype InvoiceStatus = 'draft' | 'paid' | 'uncollectible' | 'void' | 'open'\n\ntype InvoiceStatusMapping = { [key: string]: InvoiceStatus }\n\nexport const INVOICE_STATUS: InvoiceStatusMapping = {\n DRAFT: 'draft',\n PAID: 'paid',\n UNCOLLECTIBLE: 'uncollectible',\n VOID: 'void',\n OPEN: 'open',\n}\n","export * from './stripe'\n\n// this domain is used for SEO purposes, so we want to only link to the prod url\n// don't want to index other ones!\nexport const SEO_DOMAIN = 'https://finimize.com'\n\nexport const ImageRatios = {\n GOLDEN_RATIO: 1.61803398,\n SQUARE: 1,\n} as const\n","import Router from 'next/router'\n\nimport { getFBTrackingParams } from './useTrackingParams'\n\nimport { getMessageFromUnknownError } from 'lib/getMessageFromUnknownError'\nimport { getCookies, setCookie, clearCookie, DAY_IN_SECONDS } from 'lib/useCookies'\nimport { captureException } from 'shared/sentry'\n\nconst LAST_TOUCH_SUFFIX = '[last touch]'\nconst FIRST_TOUCH_SUFFIX = '[first touch]'\n\nexport type QueryAttributionParams = { [key: string]: string }\nexport type AttributionParams = {\n firstTouch: QueryAttributionParams\n lastTouch: QueryAttributionParams\n base: QueryAttributionParams\n}\n\n// Gets us formatted trackable attribution params for mixpanel events\nexport const getAttributionParams = (): AttributionParams => {\n const utmParams = ['utm_source', 'utm_campaign', 'utm_term', 'utm_content', 'utm_medium']\n const params = Router.query\n const paramsKeys = Object.entries(params)\n\n const initialParams: AttributionParams = {\n firstTouch: {},\n lastTouch: {},\n base: {},\n }\n\n if (paramsKeys.length == 0) return initialParams\n\n const paramsList = paramsKeys.reduce(\n (obj, [key, value]) => {\n const isUtmParam = utmParams.includes(key)\n if (!isUtmParam) return obj\n\n const param = Array.isArray(value) ? value[0] : value\n if (!param) return obj\n\n const firstTouchKey = `${key} ${FIRST_TOUCH_SUFFIX}`\n const lastTouchKey = `${key} ${LAST_TOUCH_SUFFIX}`\n\n obj.firstTouch[firstTouchKey] = param\n obj.lastTouch[lastTouchKey] = param\n obj.base[key] = param\n\n return obj\n },\n { ...initialParams },\n )\n\n return paramsList\n}\n\n// Set attribution params for 7 days so we can use on other pages\nexport const ATTRIBUTION_PARAM_PREFIX = '[att]'\n\nexport const setAttributionParams = () => {\n const { base } = getAttributionParams()\n const { fbclid } = getFBTrackingParams()\n const newParams = Object.keys(base).length > 0\n\n const cookieKeyName = ATTRIBUTION_PARAM_PREFIX\n const options = {\n maxAge: DAY_IN_SECONDS * 7, // expire in 7 days\n path: '/',\n }\n\n if (newParams) {\n setCookie(cookieKeyName, JSON.stringify(base), options)\n }\n\n if (fbclid) {\n setCookie('_fbc', fbclid, options)\n }\n}\n\nexport const getLastTouchParamsFromMixpanel = (): QueryAttributionParams => {\n const cookies = getCookies()\n try {\n const lastTouchParams: Record = {}\n\n for (const [cookie, value] of Object.entries(cookies)) {\n if (cookie.startsWith('mixpanel')) {\n const parsedValue = JSON.parse(value) as Record\n\n for (const [param, value] of Object.entries(parsedValue)) {\n if (param.includes(LAST_TOUCH_SUFFIX)) {\n lastTouchParams[param] = value\n }\n }\n }\n }\n\n return lastTouchParams\n } catch (error) {\n const errorMessage = getMessageFromUnknownError(error)\n captureException(new Error(errorMessage))\n return {}\n }\n}\n\n/*\n\n Checkout cookie logic\n\n From some pages (e.g. content pages), we want to persist some data through\n to checkout success. This is used for tracking (where they came from, how\n they clicked through to the paywall), but also for redirecting back\n to that content afterwards.\n\n\n*/\n\n// what we want to check for when we redirect\nexport const checkoutRedirectKey = 'ref page'\n\ntype CheckoutTrackingKeys = 'cta source' | typeof checkoutRedirectKey\n\nconst paramToMixpanelKey: { [x: string]: CheckoutTrackingKeys } = {\n 'cta-source': 'cta source',\n 'ref-page': checkoutRedirectKey, // ref page is also used for post-purchase redirect\n}\n\nconst CHECKOUT_PARAM_PREFIX = '[Checkout]'\n\n// If these params appear on a page, save them in a cookie,\n// then add to the tracking on the next purchase event\nexport const setCheckoutDataParams = () => {\n const params = Router.query\n\n Object.entries(params).forEach(([key, val]) => {\n if (key in paramToMixpanelKey && typeof val === 'string') {\n const cookieKeyName = CHECKOUT_PARAM_PREFIX + paramToMixpanelKey[key]\n const options = {\n maxAge: 60 * 30, // expire in 30mins\n path: '/',\n }\n setCookie(cookieKeyName, decodeURIComponent(val), options)\n }\n })\n}\n\nexport type CheckoutDataParams = {\n [key in CheckoutTrackingKeys]?: string\n}\n\nexport const getCheckoutDataParams = (): CheckoutDataParams => {\n const cookies = getCookies()\n\n const checkoutParams = Object.entries(cookies).reduce((list, [cookie, value]) => {\n const isCheckoutCookie = cookie.startsWith(CHECKOUT_PARAM_PREFIX)\n\n if (!isCheckoutCookie) return list\n\n const mixpanelPropKey = cookie.replace(CHECKOUT_PARAM_PREFIX, '')\n\n clearCookie(cookie)\n\n return {\n [mixpanelPropKey]: value,\n ...list,\n }\n }, {})\n return checkoutParams\n}\n\n","import { useState, useEffect } from 'react'\n\nimport Router from 'next/router'\n\nimport type { QueryAttributionParams } from './helpers'\nimport { ATTRIBUTION_PARAM_PREFIX, getAttributionParams } from './helpers'\n\nimport { getCookies } from 'lib/useCookies'\n/****\n *\n * FB pixel utility helpers\n * For severside events (marketign api) we want to send tracking params to match users\n * https://developers.facebook.com/docs/marketing-api/conversions-api/\n */\n\ntype FBTrackingCookies = {\n fbclid: string\n fbp: string\n}\n\n/**\n * getFBTrackingParams gets the Facebook fbp and fbc values.\n *\n * fbp: when the Meta Pixel is installed on a website, and the Pixel uses first-party cookies,\n * the Pixel automatically saves a unique identifier to an _fbp cookie for the website domain if one does not already exist.\n *\n * The fbp event parameter value must be of the form version.subdomainIndex.creationTime.randomnumber, where:\n * version is always this prefix: fb\n * subdomainIndex is which domain the cookie is defined on ('com' = 0, 'facebook.com' = 1, 'www.facebook.com' = 2). If you’re generating this field on a server, and not saving an _fbp cookie, use the value 1.\n * creationTime is the UNIX time since epoch in milliseconds when the _fbp cookie was saved. If you don't save the _fbp cookie, use the timestamp when you first observed or received this fbp value.\n * Randomnumber is generated by the Meta Pixel SDK to ensure every _fbp cookie is unique.\n *\n * fbc: when a user clicks on an ad on Facebook, the link sometimes includes a fbclid query parameter.\n * The fbc event parameter value must be of the form version.subdomainIndex.creationTime.fbclid, where:\n * version is always this prefix: fb\n * subdomainIndex is which domain the cookie is defined on ('com' = 0, 'facebook.com' = 1, 'www.facebook.com' = 2). If you’re generating this field on a server, and not saving an _fbc cookie, use the value 1.\n * creationTime is the UNIX time since epoch in milliseconds when the _fbc cookie was saved. If you don't save the _fbc cookie, use the timestamp when you first observed or received this fbclid value.\n * fbclid is the value for the fbclid query parameter in the page URL.\n *\n * https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc/\n */\nexport const getFBTrackingParams = (): FBTrackingCookies => {\n const { _fbp, _fbc } = getCookies()\n const { fbclid: fbclidParam } = Router.query\n const _fbclidParam = Array.isArray(fbclidParam) ? fbclidParam[0] : fbclidParam\n const fbclid = _fbclidParam || _fbc\n\n return { fbp: _fbp, fbclid }\n}\nexport const useFBTrackingParams = (): FBTrackingCookies => {\n const [fbclid, setFbclid] = useState('')\n const [fbp, setFbp] = useState('')\n\n useEffect(() => {\n const { fbclid, fbp } = getFBTrackingParams()\n\n setFbclid(fbclid)\n setFbp(fbp)\n }, [])\n\n return {\n fbp,\n fbclid,\n }\n}\n\nexport const useAttributionParams = (): { params: QueryAttributionParams } => {\n const [params, setParams] = useState({})\n\n useEffect(() => {\n const cookies = getCookies()\n const { base } = getAttributionParams()\n const savedParams = cookies[ATTRIBUTION_PARAM_PREFIX]\n ? JSON.parse(cookies[ATTRIBUTION_PARAM_PREFIX])\n : {}\n\n const hasUrlParams = Object.values(base).length > 0\n const hasSavedParams = Object.values(savedParams).length > 0\n\n const mostRecentAttributionParams = hasUrlParams ? base : hasSavedParams ? savedParams : {}\n setParams(mostRecentAttributionParams)\n }, [])\n\n return { params }\n}\n","// Standard Events\nexport const COMPLETE_REGISTRATION = 'CompleteRegistration'\nexport const SUBSCRIBE = 'Subscribe'\nexport const START_TRIAL = 'StartTrial'\nexport const PURCHASE = 'Purchase'\nexport const SEARCH = 'Search'\n\n// Custom Events\nexport const COMPLETE_APP_REGISTRATION = 'Complete App Registration'\nexport const APP_STORE_CLICK = 'AppStoreClick'\nexport const NEWSLETTER_EMAIL_SUBMITTED = 'NewsletterEmailSubmitted'\n","import type { Environment } from 'relay-runtime'\n\nimport {\n APP_STORE_CLICK,\n COMPLETE_APP_REGISTRATION,\n COMPLETE_REGISTRATION,\n NEWSLETTER_EMAIL_SUBMITTED,\n PURCHASE,\n SEARCH,\n START_TRIAL,\n SUBSCRIBE,\n} from './consts'\nimport fbClient from './fbTrackingClient'\nimport type {\n AppStoreClickProps,\n CompleteRegistration,\n ConversionsAPIUserProps,\n Purchase,\n Search,\n StartTrial,\n Subscribe,\n} from './types'\n\n// Standard FB Conversions API Events\n\nexport const trackSubscribe = (\n environment: Environment,\n data: Subscribe & ConversionsAPIUserProps,\n) => {\n fbClient.trackConversionsAPIEvent(environment, SUBSCRIBE, data)\n}\n\nexport const trackSearch = (environment: Environment, data: Search & ConversionsAPIUserProps) => {\n fbClient.trackConversionsAPIEvent(environment, SEARCH, data)\n}\n\nexport const trackPurchase = (\n environment: Environment,\n data: Purchase & ConversionsAPIUserProps,\n) => {\n fbClient.trackConversionsAPIEvent(environment, PURCHASE, data)\n}\n\nexport const trackStartTrial = (\n environment: Environment,\n data: StartTrial & ConversionsAPIUserProps,\n) => {\n fbClient.trackConversionsAPIEvent(environment, START_TRIAL, data)\n}\n\nexport const trackCompleteRegistration = (\n environment: Environment,\n data: ConversionsAPIUserProps,\n) => {\n fbClient.trackConversionsAPIEvent(environment, COMPLETE_REGISTRATION, data)\n}\n\n// Custom FB Events\n// TODO: Migrate to Conversions API\n\nexport const trackCompleteAppRegistration = (data: CompleteRegistration) => {\n fbClient.trackCustom(COMPLETE_APP_REGISTRATION, data)\n}\n\nexport const trackAppStoreClick = (data: AppStoreClickProps) => {\n fbClient.trackCustom(APP_STORE_CLICK, data)\n}\n\nexport const trackNewsletterEmailSubmitted = () => {\n fbClient.trackCustom(NEWSLETTER_EMAIL_SUBMITTED, { value: 2, currency: 'usd' })\n}\n\nexport const trackPageView = () => {\n fbClient.pageView()\n}\n","import axios from 'axios'\n\nimport { getFBTrackingParams } from '../analytics/useTrackingParams'\n\nimport type { StartTrial as FBStartTrial, Subscribe as FBSubscribe } from './fb/types'\n\nimport { captureException } from 'shared/sentry'\n\nconst IS_DEV = process.env.NODE_ENV !== 'production'\n\nconst NEWSLETTER_API_ENDPOINT = process.env.NEXT_PUBLIC_NEWSLETTER_API_ENDPOINT\nconst NEXT_PUBLIC_ALLOW_LOCAL_NEWSLETTER_API_CALLS =\n process.env.NEXT_PUBLIC_NEWSLETTER_API_ENDPOINT === 'true'\n\nconst TEST_CODES = {\n fb_test_code: 'TEST49776', // get this from ad manager to test server events\n}\n\nconst instance = axios.create({\n baseURL: NEWSLETTER_API_ENDPOINT,\n})\n\n/**\n\n A client to interface with a selection of our lambdas \n https://github.com/finimize/Nikka-from-the-barrel/blob/master/src/functions/track/index.js\n\n /track endpoint gives us a place to fire serverside events to be less reliant on 3rd party cookies.\n\n Certain providers e.g. FB take a test code above in DEV mode, they'll need to be updated each time by going to the relevant provider.\n **/\n\nclass FMZTrackingClient {\n _handleEvent = (trackingFn: Function) => {\n try {\n trackingFn()\n } catch (e) {\n captureException(e)\n }\n }\n\n track = (eventName: string, data?: { [key: string]: any }) => {\n const fbParams = getFBTrackingParams()\n const body = IS_DEV ? { ...data, ...TEST_CODES, ...fbParams } : { ...data, ...fbParams }\n\n const event = () => instance.post(`/track/${eventName}`, body).catch(captureException)\n // It seems like quite a rare use-case we'd want to test this event in dev, and\n // is causes errors otherwise. So we can change a .env variable if we want to actually\n // fire these events to the local test server in dev\n if (!IS_DEV || NEXT_PUBLIC_ALLOW_LOCAL_NEWSLETTER_API_CALLS) {\n this._handleEvent(event)\n }\n }\n}\n\nexport const client = new FMZTrackingClient()\n\nexport type DefaultUserTrackingProperties = {\n email?: string\n userId?: string\n}\nexport type StartTrial = DefaultUserTrackingProperties & FBStartTrial\nexport type Subscribe = DefaultUserTrackingProperties & FBSubscribe\n\n/*\nThese events mimic the analytics client events and may need to be de-duplicated e.g. Facebook client event and Facebook server event\n*/\n\nexport const trackStartTrial = (data?: StartTrial) => client.track('start-trial', data)\nexport const trackSubscribe = (data?: Subscribe) => client.track('subscribe', data)\nexport const trackSignup = (data?: DefaultUserTrackingProperties) => client.track('signup', data)\nexport const trackNewsletterSignup = (data?: DefaultUserTrackingProperties) =>\n client.track('newsletter-signup', data)\n","import type { Environment } from 'relay-runtime'\n\nimport type { CheckoutDataParams } from './analytics/helpers'\nimport { getAttributionParams, setAttributionParams } from './analytics/helpers'\nimport analyticsClient from './analyticsClient'\nimport {\n trackCompleteAppRegistration,\n trackCompleteRegistration,\n trackAppStoreClick as trackFBAppStoreClick,\n trackNewsletterEmailSubmitted as trackFBNewsletterEmailSubmitted,\n trackPageView as trackFBPageview,\n trackSearch as trackFBSearch,\n trackSubscribe as trackFBSubscribe,\n trackStartTrial as trackFBTrial,\n} from './tracking/fb/fbTrackingApi'\nimport type { AppStoreClickProps } from './tracking/fb/types'\nimport type { StartTrial, Subscribe } from './tracking/fmzTrackingClient'\nimport { trackSignup as trackFMZSignup } from './tracking/fmzTrackingClient'\n\nimport type { LayoutComponentTrackingProps } from 'components/LayoutComponents/types'\nimport type { NewsletterEdition } from 'data'\nimport type { SocialShareContentVariants } from 'modules/ShareContent/consts'\n\nexport * from './analytics/helpers'\n\nconst ACTION_SOURCE = 'website'\n\nconst LOGIN_METHOD = 'Login method'\nconst CAMPAIGN_ID = 'Campaign ID'\nconst STRIPE_NICKNAME = 'Stripe nickname'\nconst LOGIN_METHOD_CHECKOUT = 'Checkout'\n\nconst NEWSLETTER_EMAIL_SUBMITTED = 'Newsletter email submitted'\nconst NEWSLETTER_SIGNUP_COMPLETED = 'Newsletter signup completed'\n\n/*\n This file contains all the tracking events that are sent to mixpanel.\n\n Read some Mixpanel tips and best practices in this doc:\n https://www.notion.so/finimize/Mixpanel-Tracking-Best-Practices-12d5518c481a47e3bb847e49fb89a6c5\n*/\n\n/*\n --------------\n AUTHENTICATION\n --------------\n*/\n\n// This will attach the user's email to any mixpanel tracking events (as per website terms)\nexport function identifyUser(email: string, wasCreated: boolean | null) {\n const lcEmail = email.trim().toLowerCase()\n\n if (wasCreated) {\n // create new mixpanel user if signing up\n analyticsClient.alias(lcEmail)\n analyticsClient.set({ $email: lcEmail })\n } else {\n // link to existing mixpanel user if logging in\n analyticsClient.identify(lcEmail)\n }\n}\n\ntype AuthMethod = 'apple' | 'email' | 'google'\n\n/*\n Signup events\n*/\n\nexport function trackSignUpPressed(method: AuthMethod, message: string) {\n analyticsClient.trackWithProperties('Signup Pressed', {\n method,\n message,\n })\n}\n\nexport function trackSignUpFailed(method: AuthMethod, message: string) {\n analyticsClient.trackWithProperties('Signup Failed', {\n method,\n message,\n })\n}\n\nexport function trackSignUpCompleted(\n method: AuthMethod,\n refPage: string | undefined,\n email: string,\n ctaSource: string | undefined,\n environment: Environment,\n fbc: string,\n fbp: string,\n) {\n analyticsClient.trackWithProperties('Signup Completed', {\n method,\n refPage,\n email,\n ctaSource,\n })\n trackCompleteAppRegistration({ content_name: refPage })\n trackCompleteRegistration(environment, { actionSource: ACTION_SOURCE, fbc, fbp, eventId: null })\n identifyUser(email, true)\n trackFMZSignup({ email })\n}\n\nexport function trackSignupOnCheckout(stripeNickname: string, email?: string, slug?: string) {\n analyticsClient.trackWithProperties('Sign up On Checkout Web', {\n [LOGIN_METHOD]: LOGIN_METHOD_CHECKOUT,\n [CAMPAIGN_ID]: slug,\n [STRIPE_NICKNAME]: stripeNickname,\n email,\n })\n\n if (!email) return\n\n const lcEmail = email.trim().toLowerCase()\n\n analyticsClient.alias(lcEmail)\n analyticsClient.set({ $email: lcEmail })\n}\n\n/*\n Login events\n*/\n\nexport function trackLoginPressed(method: AuthMethod, message: string) {\n analyticsClient.trackWithProperties('Login Pressed', {\n method,\n message,\n })\n}\n\nexport function trackLoginFailed(method: AuthMethod, message: string) {\n analyticsClient.trackWithProperties('Login Failed', {\n method,\n message,\n })\n}\n\nexport function trackLoginCompleted(method: AuthMethod, email: string) {\n analyticsClient.trackWithProperties('Login Completed', {\n method,\n email,\n })\n identifyUser(email, false)\n}\n\n/*\n Logout events\n*/\n\nexport const trackLogOut = () => {\n analyticsClient.track('Log Out web')\n analyticsClient.reset()\n}\n\n/*\n Other auth-related events\n*/\n\nexport function trackPasswordResetSent() {\n analyticsClient.track('Password Reset Sent')\n}\n\nexport function trackWafGetTokenFailed(mutationType: 'SignUp' | 'Login') {\n analyticsClient.trackWithProperties('WAF Get Token Failed', {\n 'Mutation type': mutationType,\n })\n}\n\n/*\n ------------------------\n SUBSCRIPTIONS AND TRIALS\n ------------------------\n*/\n\ntype PurchaseProps = {\n amount: number\n currency?: string\n slug?: string\n discount?: number\n}\n\n/*\n Subscription events\n*/\n\nexport function trackClickManageSubscription() {\n analyticsClient.track('Click manage subscription')\n}\n\nexport function attemptCancellation() {\n analyticsClient.track('Click Cancel Subscription Web')\n}\n\nexport const trackSubscription = (\n environment: Environment,\n fbc: string,\n fbp: string,\n customerId: string | null,\n { amount, currency }: PurchaseProps & Omit,\n) => {\n trackFBSubscribe(environment, {\n actionSource: ACTION_SOURCE,\n fbc,\n fbp,\n currency,\n eventId: customerId,\n value: amount,\n // TODO: Check if we want to re-add these\n // as custom parameters once we add support\n // slug,\n // discount\n })\n}\n\nexport const trackSubscriptionProxy = (props: PurchaseProps & CheckoutDataParams) => {\n analyticsClient.trackWithProperties('Purchase subscription proxy Web', props)\n}\n\nexport function redeemCorporateCode(companyName: string, isDiscountCode = false) {\n analyticsClient.trackWithProperties('Corporate redeem Code', { name: companyName })\n analyticsClient.set({\n 'Redeemed corporate Code': true,\n 'Redeemed code company name': companyName,\n 'Is discount code': isDiscountCode,\n })\n}\n\n/*\n Trial events\n*/\n\nexport const trackStartTrial = (\n environment: Environment,\n fbc: string,\n fbp: string,\n customerId: string | null,\n { amount, currency }: PurchaseProps & Omit,\n) => {\n trackFBTrial(environment, {\n actionSource: ACTION_SOURCE,\n currency,\n value: amount,\n fbp,\n fbc,\n eventId: customerId,\n // TODO: can re-add as part of custom events and parameters\n // slug,\n // discount\n })\n}\n\n// Proxy events that we can use on the client so we can pass more information\n// useful for conversion data etc from cookie\nexport const trackStartTrialProxy = (props: PurchaseProps & CheckoutDataParams) => {\n analyticsClient.trackWithProperties('Trial started proxy Web', props)\n}\n\n/*\n -------\n CONTENT\n -------\n\n Make sure you are using globalContentPieceId as id so that the event can be properly mapped to content pieces.\n Using just 'id' will produce a different value when the user is logged in.\n*/\nexport type ContentTrackingProps = {\n id: string\n type: string\n walled: boolean\n title: string | null\n parentTitle: string | null\n parentId: string | null\n chapters: boolean\n text: boolean\n audio: boolean\n isFreePreview: boolean\n}\n\nexport type TrackLicenseContentProps = { contentPieceId: string; contentPieceTitle: string }\n\nexport type SocialShareContentProps = {\n contentPieceId: string\n contentPieceTitle: string\n network: SocialShareContentVariants\n location: 'top' | 'bottom'\n}\n\ninterface ToggleBookmarkProps {\n contentPieceId: string\n contentPieceName: string\n toggledVia: string\n}\n\n/*\n Content consumption events\n*/\n\n// This is used to set the last piece of content the user has started at the time\n// of an event being fired as a super property, so that we can analyse\n// how content users read influences their behaviour, e.g. what content type\n// best leads to a trial/subscription\n\n// Make sure that you're using `globalContentPieceId` as the id that is passed through\n// https://www.notion.so/finimize/Mixpanel-Tracking-Best-Practices-12d5518c481a47e3bb847e49fb89a6c5?pvs=4#d415bccf552c49efb392f2336a7717cb\nexport const trackLastStartedContent = (contentPieceId: string) => {\n analyticsClient.register({ 'Last started content piece ID': contentPieceId })\n}\n\nexport const trackStartReadContent = (props: ContentTrackingProps) => {\n analyticsClient.trackWithProperties('Start Read Content', props)\n}\n\nexport const trackEndReadContent = (props: ContentTrackingProps) => {\n analyticsClient.trackWithProperties('End Read Content', props)\n}\n\nexport const trackContentPieceRated = (\n trackingParams: ContentTrackingProps,\n rating: number,\n): void => {\n analyticsClient.trackWithProperties('Rate Content Piece', {\n ...trackingParams,\n rating,\n })\n}\n\nexport const trackAttemptListenContent = (props: Omit) => {\n analyticsClient.trackWithProperties('Attempt Listen Content Web', props)\n}\n\nexport const trackViewPaywalledContent = (props: ContentTrackingProps) => {\n analyticsClient.trackWithProperties('View Paywalled Content', props)\n}\n\nexport const trackClickRelatedContent = (props: { id: string }) => {\n analyticsClient.trackWithProperties('Clicked Related Content', props)\n}\n\ntype CardLocation = 'most_popular'\nexport const trackClickContentCard = (props: { id: string; location: CardLocation }) => {\n analyticsClient.trackWithProperties('Clicked Content Card', props)\n}\n\nexport const trackViewFreeAllowanceBanner = (props: { number: number }) => {\n analyticsClient.trackWithProperties('Viewed Free Allowance Banner', { props })\n}\n\nexport const trackClickFreeAllowanceBanner = (props: { number: number; expanded: boolean }) => {\n analyticsClient.trackWithProperties('Clicked Free Allowance Banner', { props })\n}\n\nexport const trackToggleFreeAllowanceBanner = (props: { number: number; expanded: boolean }) => {\n analyticsClient.trackWithProperties('Toggled Free Allowance Banner', { props })\n}\n\n/*\n Content sharing events\n*/\n\nexport const trackDownloadContent = (props: { id: string; title: string }) => {\n analyticsClient.trackWithProperties('Download Content B2B', props)\n}\n\nexport const trackLicenseContent = (props: TrackLicenseContentProps) => {\n analyticsClient.trackWithProperties('Clicked License Button', props)\n}\n\nexport const trackContentPieceLinkCopied = (props: {\n contentPieceId: string\n contentPieceTitle: string\n}) => {\n analyticsClient.trackWithProperties('Content piece link copied', props)\n}\n\nexport const trackSocialShareContent = (props: SocialShareContentProps) => {\n analyticsClient.trackWithProperties('Social share content', props)\n}\n\n/*\n Bookmark events\n */\n\nexport const trackToggledBookmarkOn = ({\n contentPieceId,\n contentPieceName,\n toggledVia,\n}: ToggleBookmarkProps) => {\n analyticsClient.trackWithProperties('Toggled Bookmark On', {\n 'Bookmark Type': 'Content Piece',\n 'Content Piece ID': contentPieceId,\n 'Content Piece Name': contentPieceName,\n 'Toggled Via': toggledVia,\n })\n}\n\nexport const trackToggledBookmarkOff = ({\n contentPieceId,\n contentPieceName,\n toggledVia,\n}: ToggleBookmarkProps) => {\n analyticsClient.trackWithProperties('Toggled Bookmark Off', {\n 'Bookmark Type': 'Content Piece',\n 'Content Piece ID': contentPieceId,\n 'Content Piece Name': contentPieceName,\n 'Toggled Via': toggledVia,\n })\n}\n\n/*\n -------\n ONBOARDING\n -------\n*/\n// TODO: Mixpanel Tracking coming in follow up PR\ntype TrackSkippedOnboardingProps = {\n step: string\n sourceChannel: string\n}\nexport const trackSkippedOnboardingStep = ({\n step,\n sourceChannel,\n}: TrackSkippedOnboardingProps) => {\n analyticsClient.trackWithProperties('Onboarding Form - Skipped Step', {\n step,\n sourceChannel,\n })\n}\n\ntype TrackSubmitOnboardingProps = {\n sourceChannel: string\n}\n// not sure if want to submit with selections or just that they submitted\nexport const trackSubmitOnboarding = ({ sourceChannel }: TrackSubmitOnboardingProps) => {\n analyticsClient.trackWithProperties('Onboarding Form - Submitted', {\n sourceChannel,\n })\n}\n\n/*\n ----------\n NEWSLETTER\n ----------\n */\n\n// On the initial form submission or when we get their email\nexport const trackNewsletterEmailSubmitted = ({\n email,\n isPremium = false,\n}: {\n email: string\n isPremium?: boolean\n}) => {\n analyticsClient.trackWithProperties(NEWSLETTER_EMAIL_SUBMITTED, { email, isPremium })\n trackFBNewsletterEmailSubmitted()\n}\n\n// When user completes entire flow\nexport const trackNewsletterSignupCompleted = ({\n email,\n edition,\n isPremium = false,\n}: {\n email: string\n edition?: NewsletterEdition\n isPremium?: boolean\n}) => {\n analyticsClient.trackWithProperties(NEWSLETTER_SIGNUP_COMPLETED, { email, edition, isPremium })\n}\n\n/*\n -----------\n EXPERIMENTS\n -----------\n */\n\ntype ExperimentProps = {\n experimentName: string\n usedVariantName: string\n}\n\n/*\n registerExperiment\n \n Used in the useEnrollInExperiment hook to send the experiments data to mixpanel as \n super properties (properties that get sent with every event in the session).\n*/\nexport const registerExperiment = ({ experimentName, usedVariantName }: ExperimentProps) => {\n const experimentProperty = { [`Experiment ${experimentName}`]: usedVariantName }\n analyticsClient.register(experimentProperty)\n}\n\n/*\n trackExperimentStarted\n\n This fires when an experiment has started for a user. It's used in the useEnrollInExperiment hook.\n Using the $experiment_started event name and these exact property names allows Mixpanel to register \n it in the Experiments app:\n https://mixpanel.com/project/1527361/view/118275/app/experiment-reporting\n*/\nexport const trackExperimentStarted = ({ experimentName, usedVariantName }: ExperimentProps) => {\n analyticsClient.trackWithProperties('$experiment_started', {\n 'Experiment name': experimentName,\n 'Variant name': usedVariantName,\n })\n}\n\n/*\n ------\n CONVERSION FUNNEL\n ------\n*/\n\nexport enum CTAPlacement {\n ALWAYS_ON_PAGE_BANNER = 'always_on_page_banner',\n NAV_BAR = 'nav_bar',\n CONTENT_BANNER_PAYWALL = 'content_banner_paywall',\n MODAL_PAYWALL = 'modal_paywall',\n NEWSLETTER_SIGNUP_DROPDOWN = 'newsletter_signup_dropdown',\n}\n\nexport type ConversionCTAParams = {\n placement: CTAPlacement\n}\n\nexport const trackConversionCTAClicked = (params: ConversionCTAParams) => {\n analyticsClient.trackWithProperties('Conversion CTA - clicked', params)\n}\n\nexport const trackPageCTABannerClicked = () => {\n analyticsClient.track('Clicked page CTA banner')\n trackConversionCTAClicked({ placement: CTAPlacement.ALWAYS_ON_PAGE_BANNER })\n}\n\nexport type NotLoggedInModalConversionTrackingProps = {\n location: string\n}\n\nexport const trackNotLoggedInModalConversion = (\n params: NotLoggedInModalConversionTrackingProps,\n) => {\n analyticsClient.trackWithProperties('Not logged in modal conversion', params)\n trackConversionCTAClicked({ placement: CTAPlacement.MODAL_PAYWALL })\n}\n\n/*\n -------\n PAYWALL\n -------\n*/\n\nexport enum PaywallFlowPointEnum {\n FREE_UNLOCK = 'Banner unlock free',\n FREE_DOWNGRADE = 'Banner downgrade free',\n PREMIUM_UNLOCK = 'Banner unlock premium',\n PREMIUM_UPGRADE = 'Banner upgrade premium',\n}\n\nexport enum PlansPricingFlowPointEnum {\n FREE = 'Pricing plan free',\n PREMIUM = 'Pricing plan premium',\n}\n\nexport const trackClickedPaywallBanner = (flowPoint?: PaywallFlowPointEnum) => {\n if (flowPoint) {\n analyticsClient.trackWithProperties('PaywallBanner clicked', {\n flowPoint,\n })\n } else {\n analyticsClient.track('PaywallBanner clicked')\n }\n trackConversionCTAClicked({ placement: CTAPlacement.CONTENT_BANNER_PAYWALL })\n}\n\nexport const trackClickedPlansPricingBanner = (flowPoint?: PlansPricingFlowPointEnum) => {\n if (flowPoint) {\n analyticsClient.trackWithProperties('PlansPricing clicked', {\n flowPoint,\n })\n } else {\n analyticsClient.track('PlansPricing clicked')\n }\n trackConversionCTAClicked({ placement: CTAPlacement.CONTENT_BANNER_PAYWALL })\n}\n\n// Temporary explicit tracking for paywall experiment\ntype PaywallVariant = 'paywall_default' | 'paywall_new'\nexport const trackViewedPaywall = (variant: PaywallVariant) => {\n analyticsClient.trackWithProperties('Viewed Paywall (temp)', { variant })\n}\n\nexport const trackClickedSubmitPaywallSignUp = (variant: PaywallVariant) => {\n analyticsClient.trackWithProperties('Clicked Paywall Sign Up (temp)', { variant })\n}\n\nexport const trackClickedPaywallSubscribe = (variant: PaywallVariant) => {\n analyticsClient.trackWithProperties('Clicked Paywall Subscribe (temp)', { variant })\n}\n\n/*\n ------\n SEARCH\n ------\n*/\n\nexport const trackSearch = (\n environment: Environment,\n isAuthenticated: boolean,\n fbc: string,\n fbp: string,\n searchString: string,\n) => {\n if (!searchString || searchString.length < 3) return\n if (searchString) {\n analyticsClient.trackWithProperties('Search term triggered', { searchString })\n\n if (!isAuthenticated) {\n return\n }\n\n trackFBSearch(environment, {\n actionSource: ACTION_SOURCE,\n fbc,\n fbp,\n searchString,\n eventId: null,\n })\n }\n}\n\n/*\n ----\n TAGS\n ----\n*/\n\nexport enum TagPlacementEnum {\n ARTICLE_FOOTER = 'Article footer',\n PAGE_SIDEBAR = 'Page sidebar',\n SUB_NAVIGATION = 'Sub navigation bar',\n}\n\ntype TagsTrackingProps = {\n placement: TagPlacementEnum\n location: string\n tagName: string\n}\n\nexport const trackTagClicked = (props: TagsTrackingProps) => {\n analyticsClient.trackWithProperties('Tag clicked', props)\n}\n\nexport const trackNotFoundRedirect = (props: { origin: string }) => {\n analyticsClient.trackWithProperties('Permanent Redirect', props)\n}\n\n/*\n ---------------\n BREADCRUMBS\n ---------------\n*/\n\nexport type BreadcrumbTrackingProps = {\n clickedLevel: number\n currentHierarchy: string[]\n targetHierarchy: string[]\n targetUrl: string\n}\n\nexport const trackBreadcrumbClick = (trackingParams: BreadcrumbTrackingProps) => {\n analyticsClient.trackWithProperties('Clicked Breadcrumb', trackingParams)\n}\n\n/*\n -----------------\n LAYOUT COMPONENTS\n -----------------\n*/\n\nexport const trackLayoutComponentShown = ({\n layoutComponentType,\n trackingId,\n cta,\n}: LayoutComponentTrackingProps) => {\n analyticsClient.trackWithProperties('Layout Component Shown', {\n 'Component Type': layoutComponentType,\n 'Tracking ID': trackingId,\n 'CTA Text': cta?.text ?? null,\n 'CTA URL': cta?.url ?? null,\n })\n}\n\nexport const trackLayoutComponentCTAClicked = ({\n layoutComponentType,\n trackingId,\n cta,\n}: LayoutComponentTrackingProps) => {\n analyticsClient.trackWithProperties('Layout Component CTA Clicked', {\n 'Component Type': layoutComponentType,\n 'Tracking ID': trackingId,\n 'CTA Text': cta?.text ?? null,\n 'CTA URL': cta?.url ?? null,\n })\n}\n\n/*\n ---------------\n PRODUCT ADVERTS\n ---------------\n*/\n\nexport type ProductAdvertEvent = 'Page Load' | 'Impression' | 'Click'\n\nexport type AdvertType = 'banner' | 'inline'\n\nexport type AdvertTrackingProps = {\n advertHandle: string\n advertId: string\n pathname: string\n companyName: string\n type: AdvertType\n}\n\nexport const trackProductAdvert = (event: ProductAdvertEvent, params: AdvertTrackingProps) => {\n analyticsClient.trackWithProperties(`Product Advert ${event}`, params)\n}\n\nexport const trackExternalProductAdvert = (event: ProductAdvertEvent) => {\n analyticsClient.track(`External Product Advert ${event}`)\n}\n\n/*\n ---------------\n Markets\n ---------------\n*/\n\nexport type AssetClickedTrackingProps = {\n assetName: string | null\n assetSymbol: string\n contentPieceTitle?: string\n}\n\nexport const trackAssetClicked = (params: AssetClickedTrackingProps) => {\n analyticsClient.trackWithProperties('Asset clicked', params)\n}\n\nexport enum AssetDataTrackingName {\n FORWARD_PE = 'forwardPE',\n OPERATING_MARGIN = 'operatingMargin',\n SALES_GROWTH_5_YEAR = 'salesGrowth5Year',\n RETURN_ON_INVESTED_CAPITAL = 'returnOnInvestedCapital',\n ANALYST_RATING = 'analystRating',\n ENTERPRISE_VALUE_TO_SALES = 'enterpriseValueToSales',\n FREE_CASH_FLOW_YIELD = 'freeCashFlowYield',\n AVERAGE_ANALYST_RATING = 'averageAnalystRating',\n NET_INSIDER_BUY_SELL = 'netInsiderBuyingSelling',\n TREND = 'trend',\n STOCKS_BETA = 'stocksBeta',\n NET_DEBT_EBITDA = 'netDebtEBITDA',\n STOCKS_VOLITILITY = 'stocksVolitility',\n}\n\nexport type AssetHiddenDataClickedTrackingProps = {\n dataName: AssetDataTrackingName\n}\n\nexport const trackAssetHiddenDataClick = (params: AssetHiddenDataClickedTrackingProps) => {\n analyticsClient.trackWithProperties('Asset hidden data clicked', params)\n}\n\n/*\n ---------------\n Navigation Bar\n ---------------\n*/\n\nexport const trackNavigationItemClicked = (item: string) => {\n analyticsClient.trackWithProperties('Navigation item clicked', { item })\n}\n\n/*\n ---------------\n PROFILE\n ---------------\n*/\n\nexport const trackProfileOnboardingClicked = ({\n hasPreviouslyCompletedOnboardingFlow,\n}: {\n hasPreviouslyCompletedOnboardingFlow: boolean\n}) => {\n analyticsClient.trackWithProperties('Profile onboarding update clicked', {\n 'Has Previously completed onboarding flow': hasPreviouslyCompletedOnboardingFlow,\n })\n}\n\n/*\n -------------\n MISCELLANEOUS\n -------------\n */\n\nexport const trackPageView = () => {\n const attributionParams = getAttributionParams()\n setAttributionParams()\n\n analyticsClient.setOnce(attributionParams.firstTouch)\n analyticsClient.register(attributionParams.lastTouch, 7)\n analyticsClient.set(attributionParams.lastTouch)\n analyticsClient.track('Page View')\n\n trackFBPageview()\n}\n\nexport const trackErrorPageSeen = () => {\n // Hard 404s can already be tracked by filtering Page View for '/404'\n analyticsClient.track('Error Page Seen (soft 404)')\n}\n\nexport const trackAppStoreClick = (props: AppStoreClickProps) => {\n trackFBAppStoreClick(props)\n analyticsClient.trackWithProperties('App Store Click', props)\n}\n\nexport const trackCookieModalSeen = () => {\n analyticsClient.track('View Cookie Modal')\n}\n\nexport enum COOKIE_MODAL_ACTIONS {\n ALLOW = 'allow',\n DECLINE = 'decline',\n}\n\nexport const trackCookieModalAction = (action: COOKIE_MODAL_ACTIONS) => {\n analyticsClient.trackWithProperties('Cookie Modal Action', { action })\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 === null || n === void 0 ? void 0 : n.host;\r\n return Boolean((host === null || host === void 0 ? void 0 : host.shadowRoot) === n);\r\n}\r\nfunction isNativeShadowDom(shadowRoot) {\r\n return Object.prototype.toString.call(shadowRoot) === '[object ShadowRoot]';\r\n}\r\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\r\n if (cssText.includes(' background-clip: text;') &&\r\n !cssText.includes(' -webkit-background-clip: text;')) {\r\n cssText = cssText.replace(' background-clip: text;', ' -webkit-background-clip: text; background-clip: text;');\r\n }\r\n return cssText;\r\n}\r\nfunction escapeImportStatement(rule) {\r\n const { cssText } = rule;\r\n if (cssText.split('\"').length < 3)\r\n return cssText;\r\n const statement = ['@import', `url(${JSON.stringify(rule.href)})`];\r\n if (rule.layerName === '') {\r\n statement.push(`layer`);\r\n }\r\n else if (rule.layerName) {\r\n statement.push(`layer(${rule.layerName})`);\r\n }\r\n if (rule.supportsText) {\r\n statement.push(`supports(${rule.supportsText})`);\r\n }\r\n if (rule.media.length) {\r\n statement.push(rule.media.mediaText);\r\n }\r\n return statement.join(' ') + ';';\r\n}\r\nfunction stringifyStylesheet(s) {\r\n try {\r\n const rules = s.rules || s.cssRules;\r\n return rules\r\n ? fixBrowserCompatibilityIssuesInCSS(Array.from(rules, stringifyRule).join(''))\r\n : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n}\r\nfunction stringifyRule(rule) {\r\n let importStringified;\r\n if (isCSSImportRule(rule)) {\r\n try {\r\n importStringified =\r\n stringifyStylesheet(rule.styleSheet) ||\r\n escapeImportStatement(rule);\r\n }\r\n catch (error) {\r\n }\r\n }\r\n else if (isCSSStyleRule(rule) && rule.selectorText.includes(':')) {\r\n return fixSafariColons(rule.cssText);\r\n }\r\n return importStringified || rule.cssText;\r\n}\r\nfunction fixSafariColons(cssStringified) {\r\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\r\n return cssStringified.replace(regex, '$1\\\\$2');\r\n}\r\nfunction isCSSImportRule(rule) {\r\n return 'styleSheet' in rule;\r\n}\r\nfunction isCSSStyleRule(rule) {\r\n return 'selectorText' in rule;\r\n}\r\nclass Mirror {\r\n constructor() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n getId(n) {\r\n var _a;\r\n if (!n)\r\n return -1;\r\n const id = (_a = this.getMeta(n)) === null || _a === void 0 ? void 0 : _a.id;\r\n return id !== null && id !== void 0 ? id : -1;\r\n }\r\n getNode(id) {\r\n return this.idNodeMap.get(id) || null;\r\n }\r\n getIds() {\r\n return Array.from(this.idNodeMap.keys());\r\n }\r\n getMeta(n) {\r\n return this.nodeMetaMap.get(n) || null;\r\n }\r\n removeNodeFromMap(n) {\r\n const id = this.getId(n);\r\n this.idNodeMap.delete(id);\r\n if (n.childNodes) {\r\n n.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\r\n }\r\n }\r\n has(id) {\r\n return this.idNodeMap.has(id);\r\n }\r\n hasNode(node) {\r\n return this.nodeMetaMap.has(node);\r\n }\r\n add(n, meta) {\r\n const id = meta.id;\r\n this.idNodeMap.set(id, n);\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n replace(id, n) {\r\n const oldNode = this.getNode(id);\r\n if (oldNode) {\r\n const meta = this.nodeMetaMap.get(oldNode);\r\n if (meta)\r\n this.nodeMetaMap.set(n, meta);\r\n }\r\n this.idNodeMap.set(id, n);\r\n }\r\n reset() {\r\n this.idNodeMap = new Map();\r\n this.nodeMetaMap = new WeakMap();\r\n }\r\n}\r\nfunction createMirror() {\r\n return new Mirror();\r\n}\r\nfunction maskInputValue({ element, maskInputOptions, tagName, type, value, maskInputFn, }) {\r\n let text = value || '';\r\n const actualType = type && toLowerCase(type);\r\n if (maskInputOptions[tagName.toLowerCase()] ||\r\n (actualType && maskInputOptions[actualType])) {\r\n if (maskInputFn) {\r\n text = maskInputFn(text, element);\r\n }\r\n else {\r\n text = '*'.repeat(text.length);\r\n }\r\n }\r\n return text;\r\n}\r\nfunction toLowerCase(str) {\r\n return str.toLowerCase();\r\n}\r\nconst ORIGINAL_ATTRIBUTE_NAME = '__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 getInputType(element) {\r\n const type = element.type;\r\n return element.hasAttribute('data-rr-is-password')\r\n ? 'password'\r\n : type\r\n ?\r\n toLowerCase(type)\r\n : null;\r\n}\r\nfunction extractFileExtension(path, baseURL) {\r\n var _a;\r\n let url;\r\n try {\r\n url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href);\r\n }\r\n catch (err) {\r\n return null;\r\n }\r\n const regex = /\\.([0-9a-z]+)(?:$)/i;\r\n const match = url.pathname.match(regex);\r\n return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : null;\r\n}\n\nlet _id = 1;\r\nconst tagNameRegex = new RegExp('[^a-z0-9-_:]');\r\nconst IGNORED_NODE = -2;\r\nfunction genId() {\r\n return _id++;\r\n}\r\nfunction getValidTagName(element) {\r\n if (element instanceof HTMLFormElement) {\r\n return 'form';\r\n }\r\n const processedTagName = toLowerCase(element.tagName);\r\n if (tagNameRegex.test(processedTagName)) {\r\n return 'div';\r\n }\r\n return processedTagName;\r\n}\r\nfunction extractOrigin(url) {\r\n let origin = '';\r\n if (url.indexOf('//') > -1) {\r\n origin = url.split('/').slice(0, 3).join('/');\r\n }\r\n else {\r\n origin = url.split('/')[0];\r\n }\r\n origin = origin.split('?')[0];\r\n return origin;\r\n}\r\nlet canvasService;\r\nlet canvasCtx;\r\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\r\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\r\nconst URL_WWW_MATCH = /^www\\..*/i;\r\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\r\nfunction absoluteToStylesheet(cssText, href) {\r\n return (cssText || '').replace(URL_IN_CSS_REF, (origin, quote1, path1, quote2, path2, path3) => {\r\n const filePath = path1 || path2 || path3;\r\n const maybeQuote = quote1 || quote2 || '';\r\n if (!filePath) {\r\n return origin;\r\n }\r\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (DATA_URI.test(filePath)) {\r\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\r\n }\r\n if (filePath[0] === '/') {\r\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\r\n }\r\n const stack = href.split('/');\r\n const parts = filePath.split('/');\r\n stack.pop();\r\n for (const part of parts) {\r\n if (part === '.') {\r\n continue;\r\n }\r\n else if (part === '..') {\r\n stack.pop();\r\n }\r\n else {\r\n stack.push(part);\r\n }\r\n }\r\n return `url(${maybeQuote}${stack.join('/')}${maybeQuote})`;\r\n });\r\n}\r\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\r\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\r\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\r\n if (attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n let pos = 0;\r\n function collectCharacters(regEx) {\r\n let chars;\r\n const match = regEx.exec(attributeValue.substring(pos));\r\n if (match) {\r\n chars = match[0];\r\n pos += chars.length;\r\n return chars;\r\n }\r\n return '';\r\n }\r\n const output = [];\r\n while (true) {\r\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\r\n if (pos >= attributeValue.length) {\r\n break;\r\n }\r\n let url = collectCharacters(SRCSET_NOT_SPACES);\r\n if (url.slice(-1) === ',') {\r\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\r\n output.push(url);\r\n }\r\n else {\r\n let descriptorsStr = '';\r\n url = absoluteToDoc(doc, url);\r\n let inParens = false;\r\n while (true) {\r\n const c = attributeValue.charAt(pos);\r\n if (c === '') {\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (!inParens) {\r\n if (c === ',') {\r\n pos += 1;\r\n output.push((url + descriptorsStr).trim());\r\n break;\r\n }\r\n else if (c === '(') {\r\n inParens = true;\r\n }\r\n }\r\n else {\r\n if (c === ')') {\r\n inParens = false;\r\n }\r\n }\r\n descriptorsStr += c;\r\n pos += 1;\r\n }\r\n }\r\n }\r\n return output.join(', ');\r\n}\r\nfunction absoluteToDoc(doc, attributeValue) {\r\n if (!attributeValue || attributeValue.trim() === '') {\r\n return attributeValue;\r\n }\r\n const a = doc.createElement('a');\r\n a.href = attributeValue;\r\n return a.href;\r\n}\r\nfunction isSVGElement(el) {\r\n return Boolean(el.tagName === 'svg' || el.ownerSVGElement);\r\n}\r\nfunction getHref() {\r\n const a = document.createElement('a');\r\n a.href = '';\r\n return a.href;\r\n}\r\nfunction transformAttribute(doc, tagName, name, value) {\r\n if (!value) {\r\n return value;\r\n }\r\n if (name === 'src' ||\r\n (name === 'href' && !(tagName === 'use' && value[0] === '#'))) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'xlink:href' && value[0] !== '#') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'background' &&\r\n (tagName === 'table' || tagName === 'td' || tagName === 'th')) {\r\n return absoluteToDoc(doc, value);\r\n }\r\n else if (name === 'srcset') {\r\n return getAbsoluteSrcsetString(doc, value);\r\n }\r\n else if (name === 'style') {\r\n return absoluteToStylesheet(value, getHref());\r\n }\r\n else if (tagName === 'object' && name === 'data') {\r\n return absoluteToDoc(doc, value);\r\n }\r\n return value;\r\n}\r\nfunction ignoreAttribute(tagName, name, _value) {\r\n return (tagName === 'video' || tagName === 'audio') && name === 'autoplay';\r\n}\r\nfunction _isBlockedElement(element, blockClass, blockSelector) {\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (element.classList.contains(blockClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n for (let eIndex = element.classList.length; eIndex--;) {\r\n const className = element.classList[eIndex];\r\n if (blockClass.test(className)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (blockSelector) {\r\n return element.matches(blockSelector);\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction classMatchesRegex(node, regex, checkAncestors) {\r\n if (!node)\r\n return false;\r\n if (node.nodeType !== node.ELEMENT_NODE) {\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n }\r\n for (let eIndex = node.classList.length; eIndex--;) {\r\n const className = node.classList[eIndex];\r\n if (regex.test(className)) {\r\n return true;\r\n }\r\n }\r\n if (!checkAncestors)\r\n return false;\r\n return classMatchesRegex(node.parentNode, regex, checkAncestors);\r\n}\r\nfunction needMaskingText(node, maskTextClass, maskTextSelector, checkAncestors) {\r\n try {\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n if (el === null)\r\n return false;\r\n if (typeof maskTextClass === 'string') {\r\n if (checkAncestors) {\r\n if (el.closest(`.${maskTextClass}`))\r\n return true;\r\n }\r\n else {\r\n if (el.classList.contains(maskTextClass))\r\n return true;\r\n }\r\n }\r\n else {\r\n if (classMatchesRegex(el, maskTextClass, checkAncestors))\r\n return true;\r\n }\r\n if (maskTextSelector) {\r\n if (checkAncestors) {\r\n if (el.closest(maskTextSelector))\r\n return true;\r\n }\r\n else {\r\n if (el.matches(maskTextSelector))\r\n return true;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n}\r\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\r\n const win = iframeEl.contentWindow;\r\n if (!win) {\r\n return;\r\n }\r\n let fired = false;\r\n let readyState;\r\n try {\r\n readyState = win.document.readyState;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (readyState !== 'complete') {\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, iframeLoadTimeout);\r\n iframeEl.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n return;\r\n }\r\n const blankUrl = 'about:blank';\r\n if (win.location.href !== blankUrl ||\r\n iframeEl.src === blankUrl ||\r\n iframeEl.src === '') {\r\n setTimeout(listener, 0);\r\n return iframeEl.addEventListener('load', listener);\r\n }\r\n iframeEl.addEventListener('load', listener);\r\n}\r\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\r\n let fired = false;\r\n let styleSheetLoaded;\r\n try {\r\n styleSheetLoaded = link.sheet;\r\n }\r\n catch (error) {\r\n return;\r\n }\r\n if (styleSheetLoaded)\r\n return;\r\n const timer = setTimeout(() => {\r\n if (!fired) {\r\n listener();\r\n fired = true;\r\n }\r\n }, styleSheetLoadTimeout);\r\n link.addEventListener('load', () => {\r\n clearTimeout(timer);\r\n fired = true;\r\n listener();\r\n });\r\n}\r\nfunction serializeNode(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, needsMask, inlineStylesheet, maskInputOptions = {}, maskTextFn, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, } = options;\r\n const rootId = getRootId(doc, mirror);\r\n switch (n.nodeType) {\r\n case n.DOCUMENT_NODE:\r\n if (n.compatMode !== 'CSS1Compat') {\r\n return {\r\n type: NodeType.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 inlineStylesheet,\r\n maskInputOptions,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n rootId,\r\n });\r\n case n.TEXT_NODE:\r\n return serializeTextNode(n, {\r\n needsMask,\r\n maskTextFn,\r\n rootId,\r\n });\r\n case n.CDATA_SECTION_NODE:\r\n return {\r\n type: NodeType.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 var _a;\r\n const { needsMask, maskTextFn, rootId } = options;\r\n const parentTagName = n.parentNode && n.parentNode.tagName;\r\n let textContent = n.textContent;\r\n const isStyle = parentTagName === 'STYLE' ? true : undefined;\r\n const isScript = parentTagName === 'SCRIPT' ? true : undefined;\r\n if (isStyle && textContent) {\r\n try {\r\n if (n.nextSibling || n.previousSibling) {\r\n }\r\n else if ((_a = n.parentNode.sheet) === null || _a === void 0 ? void 0 : _a.cssRules) {\r\n textContent = stringifyStylesheet(n.parentNode.sheet);\r\n }\r\n }\r\n catch (err) {\r\n console.warn(`Cannot get CSS styles from text's parentNode. Error: ${err}`, n);\r\n }\r\n textContent = absoluteToStylesheet(textContent, getHref());\r\n }\r\n if (isScript) {\r\n textContent = 'SCRIPT_PLACEHOLDER';\r\n }\r\n if (!isStyle && !isScript && textContent && needsMask) {\r\n textContent = maskTextFn\r\n ? maskTextFn(textContent, n.parentElement)\r\n : textContent.replace(/[\\S]/g, '*');\r\n }\r\n return {\r\n type: NodeType.Text,\r\n textContent: textContent || '',\r\n isStyle,\r\n rootId,\r\n };\r\n}\r\nfunction serializeElementNode(n, options) {\r\n const { doc, blockClass, blockSelector, inlineStylesheet, maskInputOptions = {}, maskInputFn, dataURLOptions = {}, inlineImages, recordCanvas, keepIframeSrcFn, newlyAddedElement = false, rootId, } = options;\r\n const needBlock = _isBlockedElement(n, blockClass, blockSelector);\r\n const tagName = getValidTagName(n);\r\n let attributes = {};\r\n const len = n.attributes.length;\r\n for (let i = 0; i < len; i++) {\r\n const attr = n.attributes[i];\r\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\r\n attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value);\r\n }\r\n }\r\n if (tagName === 'link' && inlineStylesheet) {\r\n const stylesheet = Array.from(doc.styleSheets).find((s) => {\r\n return s.href === n.href;\r\n });\r\n let cssText = null;\r\n if (stylesheet) {\r\n cssText = stringifyStylesheet(stylesheet);\r\n }\r\n if (cssText) {\r\n delete attributes.rel;\r\n delete attributes.href;\r\n attributes._cssText = absoluteToStylesheet(cssText, stylesheet.href);\r\n }\r\n }\r\n if (tagName === 'style' &&\r\n n.sheet &&\r\n !(n.innerText || n.textContent || '').trim().length) {\r\n const cssText = stringifyStylesheet(n.sheet);\r\n if (cssText) {\r\n attributes._cssText = absoluteToStylesheet(cssText, getHref());\r\n }\r\n }\r\n if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {\r\n const value = n.value;\r\n const checked = n.checked;\r\n if (attributes.type !== 'radio' &&\r\n attributes.type !== 'checkbox' &&\r\n attributes.type !== 'submit' &&\r\n attributes.type !== 'button' &&\r\n value) {\r\n attributes.value = maskInputValue({\r\n element: n,\r\n type: getInputType(n),\r\n tagName,\r\n value,\r\n maskInputOptions,\r\n maskInputFn,\r\n });\r\n }\r\n else if (checked) {\r\n attributes.checked = checked;\r\n }\r\n }\r\n if (tagName === 'option') {\r\n if (n.selected && !maskInputOptions['select']) {\r\n attributes.selected = true;\r\n }\r\n else {\r\n delete attributes.selected;\r\n }\r\n }\r\n if (tagName === 'canvas' && recordCanvas) {\r\n if (n.__context === '2d') {\r\n if (!is2DCanvasBlank(n)) {\r\n attributes.rr_dataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n }\r\n else if (!('__context' in n)) {\r\n const canvasDataURL = n.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n const blankCanvas = document.createElement('canvas');\r\n blankCanvas.width = n.width;\r\n blankCanvas.height = n.height;\r\n const blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n if (canvasDataURL !== blankCanvasDataURL) {\r\n attributes.rr_dataURL = canvasDataURL;\r\n }\r\n }\r\n }\r\n if (tagName === 'img' && inlineImages) {\r\n if (!canvasService) {\r\n canvasService = doc.createElement('canvas');\r\n canvasCtx = canvasService.getContext('2d');\r\n }\r\n const image = n;\r\n const oldValue = image.crossOrigin;\r\n image.crossOrigin = 'anonymous';\r\n const recordInlineImage = () => {\r\n image.removeEventListener('load', recordInlineImage);\r\n try {\r\n canvasService.width = image.naturalWidth;\r\n canvasService.height = image.naturalHeight;\r\n canvasCtx.drawImage(image, 0, 0);\r\n attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality);\r\n }\r\n catch (err) {\r\n console.warn(`Cannot inline img src=${image.currentSrc}! Error: ${err}`);\r\n }\r\n oldValue\r\n ? (attributes.crossOrigin = oldValue)\r\n : image.removeAttribute('crossorigin');\r\n };\r\n if (image.complete && image.naturalWidth !== 0)\r\n recordInlineImage();\r\n else\r\n image.addEventListener('load', recordInlineImage);\r\n }\r\n if (tagName === 'audio' || tagName === 'video') {\r\n const mediaAttributes = attributes;\r\n mediaAttributes.rr_mediaState = n.paused\r\n ? 'paused'\r\n : 'played';\r\n mediaAttributes.rr_mediaCurrentTime = n.currentTime;\r\n mediaAttributes.rr_mediaPlaybackRate = n.playbackRate;\r\n mediaAttributes.rr_mediaMuted = n.muted;\r\n mediaAttributes.rr_mediaLoop = n.loop;\r\n mediaAttributes.rr_mediaVolume = n.volume;\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 extractFileExtension(sn.attributes.href) === 'js'))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headFavicon &&\r\n ((sn.tagName === 'link' && sn.attributes.rel === 'shortcut icon') ||\r\n (sn.tagName === 'meta' &&\r\n (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) ||\r\n lowerIfExists(sn.attributes.name) === 'application-name' ||\r\n lowerIfExists(sn.attributes.rel) === 'icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'apple-touch-icon' ||\r\n lowerIfExists(sn.attributes.rel) === 'shortcut icon')))) {\r\n return true;\r\n }\r\n else if (sn.tagName === 'meta') {\r\n if (slimDOMOptions.headMetaDescKeywords &&\r\n lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaSocial &&\r\n (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) ||\r\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) ||\r\n lowerIfExists(sn.attributes.name) === 'pinterest')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaRobots &&\r\n (lowerIfExists(sn.attributes.name) === 'robots' ||\r\n lowerIfExists(sn.attributes.name) === 'googlebot' ||\r\n lowerIfExists(sn.attributes.name) === 'bingbot')) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaHttpEquiv &&\r\n sn.attributes['http-equiv'] !== undefined) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaAuthorship &&\r\n (lowerIfExists(sn.attributes.name) === 'author' ||\r\n lowerIfExists(sn.attributes.name) === 'generator' ||\r\n lowerIfExists(sn.attributes.name) === 'framework' ||\r\n lowerIfExists(sn.attributes.name) === 'publisher' ||\r\n lowerIfExists(sn.attributes.name) === 'progid' ||\r\n lowerIfExists(sn.attributes.property).match(/^article:/) ||\r\n lowerIfExists(sn.attributes.property).match(/^product:/))) {\r\n return true;\r\n }\r\n else if (slimDOMOptions.headMetaVerification &&\r\n (lowerIfExists(sn.attributes.name) === 'google-site-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'yandex-verification' ||\r\n lowerIfExists(sn.attributes.name) === 'csrf-token' ||\r\n lowerIfExists(sn.attributes.name) === 'p:domain_verify' ||\r\n lowerIfExists(sn.attributes.name) === 'verify-v1' ||\r\n lowerIfExists(sn.attributes.name) === 'verification' ||\r\n lowerIfExists(sn.attributes.name) === 'shopify-checkout-api-token')) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\nfunction serializeNodeWithId(n, options) {\r\n const { doc, mirror, blockClass, blockSelector, maskTextClass, maskTextSelector, skipChild = false, inlineStylesheet = true, maskInputOptions = {}, maskTextFn, maskInputFn, slimDOMOptions, dataURLOptions = {}, inlineImages = false, recordCanvas = false, onSerialize, onIframeLoad, iframeLoadTimeout = 5000, onStylesheetLoad, stylesheetLoadTimeout = 5000, keepIframeSrcFn = () => false, newlyAddedElement = false, } = options;\r\n let { needsMask } = options;\r\n let { preserveWhiteSpace = true } = options;\r\n if (!needsMask &&\r\n n.childNodes) {\r\n const checkAncestors = needsMask === undefined;\r\n needsMask = needMaskingText(n, maskTextClass, maskTextSelector, checkAncestors);\r\n }\r\n const _serializedNode = serializeNode(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n keepIframeSrcFn,\r\n newlyAddedElement,\r\n });\r\n if (!_serializedNode) {\r\n console.warn(n, 'not serialized');\r\n return null;\r\n }\r\n let id;\r\n if (mirror.hasNode(n)) {\r\n id = mirror.getId(n);\r\n }\r\n else if (slimDOMExcluded(_serializedNode, slimDOMOptions) ||\r\n (!preserveWhiteSpace &&\r\n _serializedNode.type === NodeType.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 needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n };\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'textarea' &&\r\n serializedNode.attributes.value !== undefined) ;\r\n else {\r\n for (const childN of Array.from(n.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n if (isElement(n) && n.shadowRoot) {\r\n for (const childN of Array.from(n.shadowRoot.childNodes)) {\r\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\r\n if (serializedChildNode) {\r\n isNativeShadowDom(n.shadowRoot) &&\r\n (serializedChildNode.isShadow = true);\r\n serializedNode.childNodes.push(serializedChildNode);\r\n }\r\n }\r\n }\r\n }\r\n if (n.parentNode &&\r\n isShadowRoot(n.parentNode) &&\r\n isNativeShadowDom(n.parentNode)) {\r\n serializedNode.isShadow = true;\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'iframe') {\r\n onceIframeLoaded(n, () => {\r\n const iframeDoc = n.contentDocument;\r\n if (iframeDoc && onIframeLoad) {\r\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\r\n doc: iframeDoc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedIframeNode) {\r\n onIframeLoad(n, serializedIframeNode);\r\n }\r\n }\r\n }, iframeLoadTimeout);\r\n }\r\n if (serializedNode.type === NodeType.Element &&\r\n serializedNode.tagName === 'link' &&\r\n typeof serializedNode.attributes.rel === 'string' &&\r\n (serializedNode.attributes.rel === 'stylesheet' ||\r\n (serializedNode.attributes.rel === 'preload' &&\r\n typeof serializedNode.attributes.href === 'string' &&\r\n extractFileExtension(serializedNode.attributes.href) === 'css'))) {\r\n onceStylesheetLoaded(n, () => {\r\n if (onStylesheetLoad) {\r\n const serializedLinkNode = serializeNodeWithId(n, {\r\n doc,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n needsMask,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n });\r\n if (serializedLinkNode) {\r\n onStylesheetLoad(n, serializedLinkNode);\r\n }\r\n }\r\n }, stylesheetLoadTimeout);\r\n }\r\n return serializedNode;\r\n}\r\nfunction snapshot(n, options) {\r\n const { mirror = new Mirror(), blockClass = 'rr-block', blockSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, inlineImages = false, recordCanvas = false, maskAllInputs = false, maskTextFn, maskInputFn, slimDOM = false, dataURLOptions, preserveWhiteSpace, onSerialize, onIframeLoad, iframeLoadTimeout, onStylesheetLoad, stylesheetLoadTimeout, keepIframeSrcFn = () => false, } = options || {};\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : maskAllInputs === false\r\n ? {\r\n password: true,\r\n }\r\n : maskAllInputs;\r\n const slimDOMOptions = slimDOM === true || slimDOM === 'all'\r\n ?\r\n {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaDescKeywords: slimDOM === 'all',\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaAuthorship: true,\r\n headMetaVerification: true,\r\n }\r\n : slimDOM === false\r\n ? {}\r\n : slimDOM;\r\n return serializeNodeWithId(n, {\r\n doc: n,\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n skipChild: false,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n inlineImages,\r\n recordCanvas,\r\n preserveWhiteSpace,\r\n onSerialize,\r\n onIframeLoad,\r\n iframeLoadTimeout,\r\n onStylesheetLoad,\r\n stylesheetLoadTimeout,\r\n keepIframeSrcFn,\r\n newlyAddedElement: false,\r\n });\r\n}\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 (_a) {\r\n return () => {\r\n };\r\n }\r\n}\r\nlet nowTimestamp = Date.now;\r\nif (!(/[1-9][0-9]{12}/.test(Date.now().toString()))) {\r\n nowTimestamp = () => new Date().getTime();\r\n}\r\nfunction getWindowScroll(win) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const doc = win.document;\r\n return {\r\n left: doc.scrollingElement\r\n ? doc.scrollingElement.scrollLeft\r\n : win.pageXOffset !== undefined\r\n ? win.pageXOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollLeft) ||\r\n ((_b = (_a = doc === null || doc === void 0 ? void 0 : doc.body) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.scrollLeft) ||\r\n ((_c = doc === null || doc === void 0 ? void 0 : doc.body) === null || _c === void 0 ? void 0 : _c.scrollLeft) ||\r\n 0,\r\n top: doc.scrollingElement\r\n ? doc.scrollingElement.scrollTop\r\n : win.pageYOffset !== undefined\r\n ? win.pageYOffset\r\n : (doc === null || doc === void 0 ? void 0 : doc.documentElement.scrollTop) ||\r\n ((_e = (_d = doc === null || doc === void 0 ? void 0 : doc.body) === null || _d === void 0 ? void 0 : _d.parentElement) === null || _e === void 0 ? void 0 : _e.scrollTop) ||\r\n ((_f = doc === null || doc === void 0 ? void 0 : doc.body) === null || _f === void 0 ? void 0 : _f.scrollTop) ||\r\n 0,\r\n };\r\n}\r\nfunction getWindowHeight() {\r\n return (window.innerHeight ||\r\n (document.documentElement && document.documentElement.clientHeight) ||\r\n (document.body && document.body.clientHeight));\r\n}\r\nfunction getWindowWidth() {\r\n return (window.innerWidth ||\r\n (document.documentElement && document.documentElement.clientWidth) ||\r\n (document.body && document.body.clientWidth));\r\n}\r\nfunction closestElementOfNode(node) {\r\n if (!node) {\r\n return null;\r\n }\r\n const el = node.nodeType === node.ELEMENT_NODE\r\n ? node\r\n : node.parentElement;\r\n return el;\r\n}\r\nfunction isBlocked(node, blockClass, blockSelector, checkAncestors) {\r\n if (!node) {\r\n return false;\r\n }\r\n const el = closestElementOfNode(node);\r\n if (!el) {\r\n return false;\r\n }\r\n try {\r\n if (typeof blockClass === 'string') {\r\n if (el.classList.contains(blockClass))\r\n return true;\r\n if (checkAncestors && el.closest('.' + blockClass) !== null)\r\n return true;\r\n }\r\n else {\r\n if (classMatchesRegex(el, blockClass, checkAncestors))\r\n return true;\r\n }\r\n }\r\n catch (e) {\r\n }\r\n if (blockSelector) {\r\n if (el.matches(blockSelector))\r\n return true;\r\n if (checkAncestors && el.closest(blockSelector) !== null)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSerialized(n, mirror) {\r\n return mirror.getId(n) !== -1;\r\n}\r\nfunction isIgnored(n, mirror) {\r\n return mirror.getId(n) === IGNORED_NODE;\r\n}\r\nfunction isAncestorRemoved(target, mirror) {\r\n if (isShadowRoot(target)) {\r\n return false;\r\n }\r\n const id = mirror.getId(target);\r\n if (!mirror.has(id)) {\r\n return true;\r\n }\r\n if (target.parentNode &&\r\n target.parentNode.nodeType === target.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n if (!target.parentNode) {\r\n return true;\r\n }\r\n return isAncestorRemoved(target.parentNode, mirror);\r\n}\r\nfunction legacy_isTouchEvent(event) {\r\n return Boolean(event.changedTouches);\r\n}\r\nfunction polyfill(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 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 hasShadowRoot(n) {\r\n return Boolean(n === null || n === void 0 ? void 0 : n.shadowRoot);\r\n}\r\nclass StyleSheetMirror {\r\n constructor() {\r\n this.id = 1;\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n }\r\n getId(stylesheet) {\r\n var _a;\r\n return (_a = this.styleIDMap.get(stylesheet)) !== null && _a !== void 0 ? _a : -1;\r\n }\r\n has(stylesheet) {\r\n return this.styleIDMap.has(stylesheet);\r\n }\r\n add(stylesheet, id) {\r\n if (this.has(stylesheet))\r\n return this.getId(stylesheet);\r\n let newId;\r\n if (id === undefined) {\r\n newId = this.id++;\r\n }\r\n else\r\n newId = id;\r\n this.styleIDMap.set(stylesheet, newId);\r\n this.idStyleMap.set(newId, stylesheet);\r\n return newId;\r\n }\r\n getStyle(id) {\r\n return this.idStyleMap.get(id) || null;\r\n }\r\n reset() {\r\n this.styleIDMap = new WeakMap();\r\n this.idStyleMap = new Map();\r\n this.id = 1;\r\n }\r\n generateId() {\r\n return this.id++;\r\n }\r\n}\r\nfunction getShadowHost(n) {\r\n var _a, _b;\r\n let shadowHost = null;\r\n if (((_b = (_a = n.getRootNode) === null || _a === void 0 ? void 0 : _a.call(n)) === null || _b === void 0 ? void 0 : _b.nodeType) === Node.DOCUMENT_FRAGMENT_NODE &&\r\n n.getRootNode().host)\r\n shadowHost = n.getRootNode().host;\r\n return shadowHost;\r\n}\r\nfunction getRootShadowHost(n) {\r\n let rootShadowHost = n;\r\n let shadowHost;\r\n while ((shadowHost = getShadowHost(rootShadowHost)))\r\n rootShadowHost = shadowHost;\r\n return rootShadowHost;\r\n}\r\nfunction shadowHostInDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n const shadowHost = getRootShadowHost(n);\r\n return doc.contains(shadowHost);\r\n}\r\nfunction inDom(n) {\r\n const doc = n.ownerDocument;\r\n if (!doc)\r\n return false;\r\n return doc.contains(n) || shadowHostInDom(n);\r\n}\n\nvar EventType$1 = /* @__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$1 || {});\nvar IncrementalSource$1 = /* @__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$1 || {});\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 || {});\n\nfunction isNodeInLinkedList(n) {\r\n return '__ln' in n;\r\n}\r\nclass DoubleLinkedList {\r\n constructor() {\r\n this.length = 0;\r\n this.head = null;\r\n this.tail = null;\r\n }\r\n get(position) {\r\n if (position >= this.length) {\r\n throw new Error('Position outside of list range');\r\n }\r\n let current = this.head;\r\n for (let index = 0; index < position; index++) {\r\n current = (current === null || current === void 0 ? void 0 : current.next) || null;\r\n }\r\n return current;\r\n }\r\n addNode(n) {\r\n const node = {\r\n value: n,\r\n previous: null,\r\n next: null,\r\n };\r\n n.__ln = node;\r\n if (n.previousSibling && isNodeInLinkedList(n.previousSibling)) {\r\n const current = n.previousSibling.__ln.next;\r\n node.next = current;\r\n node.previous = n.previousSibling.__ln;\r\n n.previousSibling.__ln.next = node;\r\n if (current) {\r\n current.previous = node;\r\n }\r\n }\r\n else if (n.nextSibling &&\r\n isNodeInLinkedList(n.nextSibling) &&\r\n n.nextSibling.__ln.previous) {\r\n const current = n.nextSibling.__ln.previous;\r\n node.previous = current;\r\n node.next = n.nextSibling.__ln;\r\n n.nextSibling.__ln.previous = node;\r\n if (current) {\r\n current.next = node;\r\n }\r\n }\r\n else {\r\n if (this.head) {\r\n this.head.previous = node;\r\n }\r\n node.next = this.head;\r\n this.head = node;\r\n }\r\n if (node.next === null) {\r\n this.tail = node;\r\n }\r\n this.length++;\r\n }\r\n removeNode(n) {\r\n const current = n.__ln;\r\n if (!this.head) {\r\n return;\r\n }\r\n if (!current.previous) {\r\n this.head = current.next;\r\n if (this.head) {\r\n this.head.previous = null;\r\n }\r\n else {\r\n this.tail = null;\r\n }\r\n }\r\n else {\r\n current.previous.next = current.next;\r\n if (current.next) {\r\n current.next.previous = current.previous;\r\n }\r\n else {\r\n this.tail = current.previous;\r\n }\r\n }\r\n if (n.__ln) {\r\n delete n.__ln;\r\n }\r\n this.length--;\r\n }\r\n}\r\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\r\nclass MutationBuffer {\r\n constructor() {\r\n this.frozen = false;\r\n this.locked = false;\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.mapRemoves = [];\r\n this.movedMap = {};\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.processMutations = (mutations) => {\r\n mutations.forEach(this.processMutation);\r\n this.emit();\r\n };\r\n this.emit = () => {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const adds = [];\r\n const addedIds = new Set();\r\n const addList = new DoubleLinkedList();\r\n const getNextId = (n) => {\r\n let ns = n;\r\n let nextId = IGNORED_NODE;\r\n while (nextId === IGNORED_NODE) {\r\n ns = ns && ns.nextSibling;\r\n nextId = ns && this.mirror.getId(ns);\r\n }\r\n return nextId;\r\n };\r\n const pushAdd = (n) => {\r\n if (!n.parentNode ||\r\n !inDom(n) ||\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n return;\r\n }\r\n const parentId = isShadowRoot(n.parentNode)\r\n ? this.mirror.getId(getShadowHost(n))\r\n : this.mirror.getId(n.parentNode);\r\n const nextId = getNextId(n);\r\n if (parentId === -1 || nextId === -1) {\r\n return addList.addNode(n);\r\n }\r\n const sn = serializeNodeWithId(n, {\r\n doc: this.doc,\r\n mirror: this.mirror,\r\n blockClass: this.blockClass,\r\n blockSelector: this.blockSelector,\r\n maskTextClass: this.maskTextClass,\r\n maskTextSelector: this.maskTextSelector,\r\n skipChild: true,\r\n newlyAddedElement: true,\r\n inlineStylesheet: this.inlineStylesheet,\r\n maskInputOptions: this.maskInputOptions,\r\n maskTextFn: this.maskTextFn,\r\n maskInputFn: this.maskInputFn,\r\n slimDOMOptions: this.slimDOMOptions,\r\n dataURLOptions: this.dataURLOptions,\r\n recordCanvas: this.recordCanvas,\r\n inlineImages: this.inlineImages,\r\n onSerialize: (currentN) => {\r\n if (isSerializedIframe(currentN, this.mirror)) {\r\n this.iframeManager.addIframe(currentN);\r\n }\r\n if (isSerializedStylesheet(currentN, this.mirror)) {\r\n this.stylesheetManager.trackLinkElement(currentN);\r\n }\r\n if (hasShadowRoot(n)) {\r\n this.shadowDomManager.addShadowRoot(n.shadowRoot, this.doc);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n this.iframeManager.attachIframe(iframe, childSn);\r\n this.shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (link, childSn) => {\r\n this.stylesheetManager.attachLinkElement(link, childSn);\r\n },\r\n });\r\n if (sn) {\r\n adds.push({\r\n parentId,\r\n nextId,\r\n node: sn,\r\n });\r\n addedIds.add(sn.id);\r\n }\r\n };\r\n while (this.mapRemoves.length) {\r\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\r\n }\r\n for (const n of this.movedSet) {\r\n if (isParentRemoved(this.removes, n, this.mirror) &&\r\n !this.movedSet.has(n.parentNode)) {\r\n continue;\r\n }\r\n pushAdd(n);\r\n }\r\n for (const n of this.addedSet) {\r\n if (!isAncestorInSet(this.droppedSet, n) &&\r\n !isParentRemoved(this.removes, n, this.mirror)) {\r\n pushAdd(n);\r\n }\r\n else if (isAncestorInSet(this.movedSet, n)) {\r\n pushAdd(n);\r\n }\r\n else {\r\n this.droppedSet.add(n);\r\n }\r\n }\r\n let candidate = null;\r\n while (addList.length) {\r\n let node = null;\r\n if (candidate) {\r\n const parentId = this.mirror.getId(candidate.value.parentNode);\r\n const nextId = getNextId(candidate.value);\r\n if (parentId !== -1 && nextId !== -1) {\r\n node = candidate;\r\n }\r\n }\r\n if (!node) {\r\n let tailNode = addList.tail;\r\n while (tailNode) {\r\n const _node = tailNode;\r\n tailNode = tailNode.previous;\r\n if (_node) {\r\n const parentId = this.mirror.getId(_node.value.parentNode);\r\n const nextId = getNextId(_node.value);\r\n if (nextId === -1)\r\n continue;\r\n else if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n else {\r\n const unhandledNode = _node.value;\r\n if (unhandledNode.parentNode &&\r\n unhandledNode.parentNode.nodeType ===\r\n Node.DOCUMENT_FRAGMENT_NODE) {\r\n const shadowHost = unhandledNode.parentNode\r\n .host;\r\n const parentId = this.mirror.getId(shadowHost);\r\n if (parentId !== -1) {\r\n node = _node;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!node) {\r\n while (addList.head) {\r\n addList.removeNode(addList.head.value);\r\n }\r\n break;\r\n }\r\n candidate = node.previous;\r\n addList.removeNode(node.value);\r\n pushAdd(node.value);\r\n }\r\n const payload = {\r\n texts: this.texts\r\n .map((text) => {\r\n const n = text.node;\r\n if (n.parentNode &&\r\n n.parentNode.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(n.parentNode);\r\n }\r\n return {\r\n id: this.mirror.getId(n),\r\n value: text.value,\r\n };\r\n })\r\n .filter((text) => !addedIds.has(text.id))\r\n .filter((text) => this.mirror.has(text.id)),\r\n attributes: this.attributes\r\n .map((attribute) => {\r\n const { attributes } = attribute;\r\n if (typeof attributes.style === 'string') {\r\n const diffAsStr = JSON.stringify(attribute.styleDiff);\r\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\r\n if (diffAsStr.length < attributes.style.length) {\r\n if ((diffAsStr + unchangedAsStr).split('var(').length ===\r\n attributes.style.split('var(').length) {\r\n attributes.style = attribute.styleDiff;\r\n }\r\n }\r\n }\r\n return {\r\n id: this.mirror.getId(attribute.node),\r\n attributes: attributes,\r\n };\r\n })\r\n .filter((attribute) => !addedIds.has(attribute.id))\r\n .filter((attribute) => this.mirror.has(attribute.id)),\r\n removes: this.removes,\r\n adds,\r\n };\r\n if (!payload.texts.length &&\r\n !payload.attributes.length &&\r\n !payload.removes.length &&\r\n !payload.adds.length) {\r\n return;\r\n }\r\n this.texts = [];\r\n this.attributes = [];\r\n this.attributeMap = new WeakMap();\r\n this.removes = [];\r\n this.addedSet = new Set();\r\n this.movedSet = new Set();\r\n this.droppedSet = new Set();\r\n this.movedMap = {};\r\n this.mutationCb(payload);\r\n };\r\n this.genTextAreaValueMutation = (textarea) => {\r\n let item = this.attributeMap.get(textarea);\r\n if (!item) {\r\n item = {\r\n node: textarea,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(textarea, item);\r\n }\r\n item.attributes.value = Array.from(textarea.childNodes, (cn) => cn.textContent || '').join('');\r\n };\r\n this.processMutation = (m) => {\r\n if (isIgnored(m.target, this.mirror)) {\r\n return;\r\n }\r\n switch (m.type) {\r\n case 'characterData': {\r\n const value = m.target.textContent;\r\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) &&\r\n value !== m.oldValue) {\r\n this.texts.push({\r\n value: needMaskingText(m.target, this.maskTextClass, this.maskTextSelector, true) && value\r\n ? this.maskTextFn\r\n ? this.maskTextFn(value, closestElementOfNode(m.target))\r\n : value.replace(/[\\S]/g, '*')\r\n : value,\r\n node: m.target,\r\n });\r\n }\r\n break;\r\n }\r\n case 'attributes': {\r\n const target = m.target;\r\n let attributeName = m.attributeName;\r\n let value = m.target.getAttribute(attributeName);\r\n if (attributeName === 'value') {\r\n const type = getInputType(target);\r\n value = maskInputValue({\r\n element: target,\r\n maskInputOptions: this.maskInputOptions,\r\n tagName: target.tagName,\r\n type,\r\n value,\r\n maskInputFn: this.maskInputFn,\r\n });\r\n }\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n value === m.oldValue) {\r\n return;\r\n }\r\n let item = this.attributeMap.get(m.target);\r\n if (target.tagName === 'IFRAME' &&\r\n attributeName === 'src' &&\r\n !this.keepIframeSrcFn(value)) {\r\n if (!target.contentDocument) {\r\n attributeName = 'rr_src';\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (!item) {\r\n item = {\r\n node: m.target,\r\n attributes: {},\r\n styleDiff: {},\r\n _unchangedStyles: {},\r\n };\r\n this.attributes.push(item);\r\n this.attributeMap.set(m.target, item);\r\n }\r\n if (attributeName === 'type' &&\r\n target.tagName === 'INPUT' &&\r\n (m.oldValue || '').toLowerCase() === 'password') {\r\n target.setAttribute('data-rr-is-password', 'true');\r\n }\r\n if (!ignoreAttribute(target.tagName, attributeName)) {\r\n item.attributes[attributeName] = transformAttribute(this.doc, toLowerCase(target.tagName), toLowerCase(attributeName), value);\r\n if (attributeName === 'style') {\r\n if (!this.unattachedDoc) {\r\n try {\r\n this.unattachedDoc =\r\n document.implementation.createHTMLDocument();\r\n }\r\n catch (e) {\r\n this.unattachedDoc = this.doc;\r\n }\r\n }\r\n const old = this.unattachedDoc.createElement('span');\r\n if (m.oldValue) {\r\n old.setAttribute('style', m.oldValue);\r\n }\r\n for (const pname of Array.from(target.style)) {\r\n const newValue = target.style.getPropertyValue(pname);\r\n const newPriority = target.style.getPropertyPriority(pname);\r\n if (newValue !== old.style.getPropertyValue(pname) ||\r\n newPriority !== old.style.getPropertyPriority(pname)) {\r\n if (newPriority === '') {\r\n item.styleDiff[pname] = newValue;\r\n }\r\n else {\r\n item.styleDiff[pname] = [newValue, newPriority];\r\n }\r\n }\r\n else {\r\n item._unchangedStyles[pname] = [newValue, newPriority];\r\n }\r\n }\r\n for (const pname of Array.from(old.style)) {\r\n if (target.style.getPropertyValue(pname) === '') {\r\n item.styleDiff[pname] = false;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n case 'childList': {\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\r\n return;\r\n if (m.target.tagName === 'TEXTAREA') {\r\n this.genTextAreaValueMutation(m.target);\r\n return;\r\n }\r\n m.addedNodes.forEach((n) => this.genAdds(n, m.target));\r\n m.removedNodes.forEach((n) => {\r\n const nodeId = this.mirror.getId(n);\r\n const parentId = isShadowRoot(m.target)\r\n ? this.mirror.getId(m.target.host)\r\n : this.mirror.getId(m.target);\r\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) ||\r\n isIgnored(n, this.mirror) ||\r\n !isSerialized(n, this.mirror)) {\r\n return;\r\n }\r\n if (this.addedSet.has(n)) {\r\n deepDelete(this.addedSet, n);\r\n this.droppedSet.add(n);\r\n }\r\n else if (this.addedSet.has(m.target) && nodeId === -1) ;\r\n else if (isAncestorRemoved(m.target, this.mirror)) ;\r\n else if (this.movedSet.has(n) &&\r\n this.movedMap[moveKey(nodeId, parentId)]) {\r\n deepDelete(this.movedSet, n);\r\n }\r\n else {\r\n this.removes.push({\r\n parentId,\r\n id: nodeId,\r\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target)\r\n ? true\r\n : undefined,\r\n });\r\n }\r\n this.mapRemoves.push(n);\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n this.genAdds = (n, target) => {\r\n if (this.processedNodeManager.inOtherBuffer(n, this))\r\n return;\r\n if (this.addedSet.has(n) || this.movedSet.has(n))\r\n return;\r\n if (this.mirror.hasNode(n)) {\r\n if (isIgnored(n, this.mirror)) {\r\n return;\r\n }\r\n this.movedSet.add(n);\r\n let targetId = null;\r\n if (target && this.mirror.hasNode(target)) {\r\n targetId = this.mirror.getId(target);\r\n }\r\n if (targetId && targetId !== -1) {\r\n this.movedMap[moveKey(this.mirror.getId(n), targetId)] = true;\r\n }\r\n }\r\n else {\r\n this.addedSet.add(n);\r\n this.droppedSet.delete(n);\r\n }\r\n if (!isBlocked(n, this.blockClass, this.blockSelector, false)) {\r\n n.childNodes.forEach((childN) => this.genAdds(childN));\r\n if (hasShadowRoot(n)) {\r\n n.shadowRoot.childNodes.forEach((childN) => {\r\n this.processedNodeManager.add(childN, this);\r\n this.genAdds(childN, n);\r\n });\r\n }\r\n }\r\n };\r\n }\r\n init(options) {\r\n [\r\n 'mutationCb',\r\n 'blockClass',\r\n 'blockSelector',\r\n 'maskTextClass',\r\n 'maskTextSelector',\r\n 'inlineStylesheet',\r\n 'maskInputOptions',\r\n 'maskTextFn',\r\n 'maskInputFn',\r\n 'keepIframeSrcFn',\r\n 'recordCanvas',\r\n 'inlineImages',\r\n 'slimDOMOptions',\r\n 'dataURLOptions',\r\n 'doc',\r\n 'mirror',\r\n 'iframeManager',\r\n 'stylesheetManager',\r\n 'shadowDomManager',\r\n 'canvasManager',\r\n 'processedNodeManager',\r\n ].forEach((key) => {\r\n this[key] = options[key];\r\n });\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n this.canvasManager.freeze();\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n this.canvasManager.unfreeze();\r\n this.emit();\r\n }\r\n isFrozen() {\r\n return this.frozen;\r\n }\r\n lock() {\r\n this.locked = true;\r\n this.canvasManager.lock();\r\n }\r\n unlock() {\r\n this.locked = false;\r\n this.canvasManager.unlock();\r\n this.emit();\r\n }\r\n reset() {\r\n this.shadowDomManager.reset();\r\n this.canvasManager.reset();\r\n }\r\n}\r\nfunction deepDelete(addsSet, n) {\r\n addsSet.delete(n);\r\n n.childNodes.forEach((childN) => deepDelete(addsSet, childN));\r\n}\r\nfunction isParentRemoved(removes, n, mirror) {\r\n if (removes.length === 0)\r\n return false;\r\n return _isParentRemoved(removes, n, mirror);\r\n}\r\nfunction _isParentRemoved(removes, n, mirror) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n const parentId = mirror.getId(parentNode);\r\n if (removes.some((r) => r.id === parentId)) {\r\n return true;\r\n }\r\n return _isParentRemoved(removes, parentNode, mirror);\r\n}\r\nfunction isAncestorInSet(set, n) {\r\n if (set.size === 0)\r\n return false;\r\n return _isAncestorInSet(set, n);\r\n}\r\nfunction _isAncestorInSet(set, n) {\r\n const { parentNode } = n;\r\n if (!parentNode) {\r\n return false;\r\n }\r\n if (set.has(parentNode)) {\r\n return true;\r\n }\r\n return _isAncestorInSet(set, parentNode);\r\n}\n\nlet errorHandler;\r\nfunction registerErrorHandler(handler) {\r\n errorHandler = handler;\r\n}\r\nfunction unregisterErrorHandler() {\r\n errorHandler = undefined;\r\n}\r\nconst callbackWrapper = (cb) => {\r\n if (!errorHandler) {\r\n return cb;\r\n }\r\n const rrwebWrapped = ((...rest) => {\r\n try {\r\n return cb(...rest);\r\n }\r\n catch (error) {\r\n if (errorHandler && errorHandler(error) === true) {\r\n return;\r\n }\r\n throw error;\r\n }\r\n });\r\n return rrwebWrapped;\r\n};\n\nconst mutationBuffers = [];\r\nfunction getEventTarget(event) {\r\n try {\r\n if ('composedPath' in event) {\r\n const path = event.composedPath();\r\n if (path.length) {\r\n return path[0];\r\n }\r\n }\r\n else if ('path' in event && event.path.length) {\r\n return event.path[0];\r\n }\r\n }\r\n catch (_a) {\r\n }\r\n return event && event.target;\r\n}\r\nfunction initMutationObserver(options, rootEl) {\r\n var _a, _b;\r\n const mutationBuffer = new MutationBuffer();\r\n mutationBuffers.push(mutationBuffer);\r\n mutationBuffer.init(options);\r\n let mutationObserverCtor = window.MutationObserver ||\r\n window.__rrMutationObserver;\r\n const angularZoneSymbol = (_b = (_a = window === null || window === void 0 ? void 0 : window.Zone) === null || _a === void 0 ? void 0 : _a.__symbol__) === null || _b === void 0 ? void 0 : _b.call(_a, 'MutationObserver');\r\n if (angularZoneSymbol &&\r\n window[angularZoneSymbol]) {\r\n mutationObserverCtor = window[angularZoneSymbol];\r\n }\r\n const observer = new mutationObserverCtor(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer)));\r\n observer.observe(rootEl, {\r\n attributes: true,\r\n attributeOldValue: true,\r\n characterData: true,\r\n characterDataOldValue: true,\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\r\nfunction initMoveObserver({ mousemoveCb, sampling, doc, mirror, }) {\r\n if (sampling.mousemove === false) {\r\n return () => {\r\n };\r\n }\r\n const threshold = typeof sampling.mousemove === 'number' ? sampling.mousemove : 50;\r\n const callbackThreshold = typeof sampling.mousemoveCallback === 'number'\r\n ? sampling.mousemoveCallback\r\n : 500;\r\n let positions = [];\r\n let timeBaseline;\r\n const wrappedCb = throttle(callbackWrapper((source) => {\r\n const totalOffset = Date.now() - timeBaseline;\r\n mousemoveCb(positions.map((p) => {\r\n p.timeOffset -= totalOffset;\r\n return p;\r\n }), source);\r\n positions = [];\r\n timeBaseline = null;\r\n }), callbackThreshold);\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n const { clientX, clientY } = legacy_isTouchEvent(evt)\r\n ? evt.changedTouches[0]\r\n : evt;\r\n if (!timeBaseline) {\r\n timeBaseline = nowTimestamp();\r\n }\r\n positions.push({\r\n x: clientX,\r\n y: clientY,\r\n id: mirror.getId(target),\r\n timeOffset: nowTimestamp() - timeBaseline,\r\n });\r\n wrappedCb(typeof DragEvent !== 'undefined' && evt instanceof DragEvent\r\n ? IncrementalSource$1.Drag\r\n : evt instanceof MouseEvent\r\n ? IncrementalSource$1.MouseMove\r\n : IncrementalSource$1.TouchMove);\r\n }), threshold, {\r\n trailing: false,\r\n }));\r\n const handlers = [\r\n on('mousemove', updatePosition, doc),\r\n on('touchmove', updatePosition, doc),\r\n on('drag', updatePosition, doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initMouseInteractionObserver({ mouseInteractionCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n if (sampling.mouseInteraction === false) {\r\n return () => {\r\n };\r\n }\r\n const disableMap = sampling.mouseInteraction === true ||\r\n sampling.mouseInteraction === undefined\r\n ? {}\r\n : sampling.mouseInteraction;\r\n const handlers = [];\r\n let currentPointerType = null;\r\n const getHandler = (eventKey) => {\r\n return (event) => {\r\n const target = getEventTarget(event);\r\n if (isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n let pointerType = null;\r\n let thisEventKey = eventKey;\r\n if ('pointerType' in event) {\r\n switch (event.pointerType) {\r\n case 'mouse':\r\n pointerType = PointerTypes.Mouse;\r\n break;\r\n case 'touch':\r\n pointerType = PointerTypes.Touch;\r\n break;\r\n case 'pen':\r\n pointerType = PointerTypes.Pen;\r\n break;\r\n }\r\n if (pointerType === PointerTypes.Touch) {\r\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\r\n thisEventKey = 'TouchStart';\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\r\n thisEventKey = 'TouchEnd';\r\n }\r\n }\r\n else if (pointerType === PointerTypes.Pen) ;\r\n }\r\n else if (legacy_isTouchEvent(event)) {\r\n pointerType = PointerTypes.Touch;\r\n }\r\n if (pointerType !== null) {\r\n currentPointerType = pointerType;\r\n if ((thisEventKey.startsWith('Touch') &&\r\n pointerType === PointerTypes.Touch) ||\r\n (thisEventKey.startsWith('Mouse') &&\r\n pointerType === PointerTypes.Mouse)) {\r\n pointerType = null;\r\n }\r\n }\r\n else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\r\n pointerType = currentPointerType;\r\n currentPointerType = null;\r\n }\r\n const e = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\r\n if (!e) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n const { clientX, clientY } = e;\r\n callbackWrapper(mouseInteractionCb)(Object.assign({ type: MouseInteractions[thisEventKey], id, x: clientX, y: clientY }, (pointerType !== null && { pointerType })));\r\n };\r\n };\r\n Object.keys(MouseInteractions)\r\n .filter((key) => Number.isNaN(Number(key)) &&\r\n !key.endsWith('_Departed') &&\r\n disableMap[key] !== false)\r\n .forEach((eventKey) => {\r\n let eventName = toLowerCase(eventKey);\r\n const handler = getHandler(eventKey);\r\n if (window.PointerEvent) {\r\n switch (MouseInteractions[eventKey]) {\r\n case MouseInteractions.MouseDown:\r\n case MouseInteractions.MouseUp:\r\n eventName = eventName.replace('mouse', 'pointer');\r\n break;\r\n case MouseInteractions.TouchStart:\r\n case MouseInteractions.TouchEnd:\r\n return;\r\n }\r\n }\r\n handlers.push(on(eventName, handler, doc));\r\n });\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initScrollObserver({ scrollCb, doc, mirror, blockClass, blockSelector, sampling, }) {\r\n const updatePosition = callbackWrapper(throttle(callbackWrapper((evt) => {\r\n const target = getEventTarget(evt);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const id = mirror.getId(target);\r\n if (target === doc && doc.defaultView) {\r\n const scrollLeftTop = getWindowScroll(doc.defaultView);\r\n scrollCb({\r\n id,\r\n x: scrollLeftTop.left,\r\n y: scrollLeftTop.top,\r\n });\r\n }\r\n else {\r\n scrollCb({\r\n id,\r\n x: target.scrollLeft,\r\n y: target.scrollTop,\r\n });\r\n }\r\n }), sampling.scroll || 100));\r\n return on('scroll', updatePosition, doc);\r\n}\r\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\r\n let lastH = -1;\r\n let lastW = -1;\r\n const updateDimension = callbackWrapper(throttle(callbackWrapper(() => {\r\n const height = getWindowHeight();\r\n const width = getWindowWidth();\r\n if (lastH !== height || lastW !== width) {\r\n viewportResizeCb({\r\n width: Number(width),\r\n height: Number(height),\r\n });\r\n lastH = height;\r\n lastW = width;\r\n }\r\n }), 200));\r\n return on('resize', updateDimension, win);\r\n}\r\nconst INPUT_TAGS = ['INPUT', 'TEXTAREA', 'SELECT'];\r\nconst lastInputValueMap = new WeakMap();\r\nfunction initInputObserver({ inputCb, doc, mirror, blockClass, blockSelector, ignoreClass, ignoreSelector, maskInputOptions, maskInputFn, sampling, userTriggeredOnInput, }) {\r\n function eventHandler(event) {\r\n let target = getEventTarget(event);\r\n const userTriggered = event.isTrusted;\r\n const tagName = target && target.tagName;\r\n if (target && tagName === 'OPTION') {\r\n target = target.parentElement;\r\n }\r\n if (!target ||\r\n !tagName ||\r\n INPUT_TAGS.indexOf(tagName) < 0 ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n if (target.classList.contains(ignoreClass) ||\r\n (ignoreSelector && target.matches(ignoreSelector))) {\r\n return;\r\n }\r\n let text = target.value;\r\n let isChecked = false;\r\n const type = getInputType(target) || '';\r\n if (type === 'radio' || type === 'checkbox') {\r\n isChecked = target.checked;\r\n }\r\n else if (maskInputOptions[tagName.toLowerCase()] ||\r\n maskInputOptions[type]) {\r\n text = maskInputValue({\r\n element: target,\r\n maskInputOptions,\r\n tagName,\r\n type,\r\n value: text,\r\n maskInputFn,\r\n });\r\n }\r\n cbWithDedup(target, userTriggeredOnInput\r\n ? { text, isChecked, userTriggered }\r\n : { text, isChecked });\r\n const name = target.name;\r\n if (type === 'radio' && name && isChecked) {\r\n doc\r\n .querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`)\r\n .forEach((el) => {\r\n if (el !== target) {\r\n const text = el.value;\r\n cbWithDedup(el, userTriggeredOnInput\r\n ? { text, isChecked: !isChecked, userTriggered: false }\r\n : { text, isChecked: !isChecked });\r\n }\r\n });\r\n }\r\n }\r\n function cbWithDedup(target, v) {\r\n const lastInputValue = lastInputValueMap.get(target);\r\n if (!lastInputValue ||\r\n lastInputValue.text !== v.text ||\r\n lastInputValue.isChecked !== v.isChecked) {\r\n lastInputValueMap.set(target, v);\r\n const id = mirror.getId(target);\r\n callbackWrapper(inputCb)(Object.assign(Object.assign({}, v), { id }));\r\n }\r\n }\r\n const events = sampling.input === 'last' ? ['change'] : ['input', 'change'];\r\n const handlers = events.map((eventName) => on(eventName, callbackWrapper(eventHandler), doc));\r\n const currentWindow = doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n }\r\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, 'value');\r\n const hookProperties = [\r\n [currentWindow.HTMLInputElement.prototype, 'value'],\r\n [currentWindow.HTMLInputElement.prototype, 'checked'],\r\n [currentWindow.HTMLSelectElement.prototype, 'value'],\r\n [currentWindow.HTMLTextAreaElement.prototype, 'value'],\r\n [currentWindow.HTMLSelectElement.prototype, 'selectedIndex'],\r\n [currentWindow.HTMLOptionElement.prototype, 'selected'],\r\n ];\r\n if (propertyDescriptor && propertyDescriptor.set) {\r\n handlers.push(...hookProperties.map((p) => hookSetter(p[0], p[1], {\r\n set() {\r\n callbackWrapper(eventHandler)({\r\n target: this,\r\n isTrusted: false,\r\n });\r\n },\r\n }, false, currentWindow)));\r\n }\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction getNestedCSSRulePositions(rule) {\r\n const positions = [];\r\n function recurse(childRule, pos) {\r\n if ((hasNestedCSSRule('CSSGroupingRule') &&\r\n childRule.parentRule instanceof CSSGroupingRule) ||\r\n (hasNestedCSSRule('CSSMediaRule') &&\r\n childRule.parentRule instanceof CSSMediaRule) ||\r\n (hasNestedCSSRule('CSSSupportsRule') &&\r\n childRule.parentRule instanceof CSSSupportsRule) ||\r\n (hasNestedCSSRule('CSSConditionRule') &&\r\n childRule.parentRule instanceof CSSConditionRule)) {\r\n const rules = Array.from(childRule.parentRule.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n else if (childRule.parentStyleSheet) {\r\n const rules = Array.from(childRule.parentStyleSheet.cssRules);\r\n const index = rules.indexOf(childRule);\r\n pos.unshift(index);\r\n }\r\n return pos;\r\n }\r\n return recurse(rule, positions);\r\n}\r\nfunction getIdAndStyleId(sheet, mirror, styleMirror) {\r\n let id, styleId;\r\n if (!sheet)\r\n return {};\r\n if (sheet.ownerNode)\r\n id = mirror.getId(sheet.ownerNode);\r\n else\r\n styleId = styleMirror.getId(sheet);\r\n return {\r\n styleId,\r\n id,\r\n };\r\n}\r\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror, stylesheetManager }, { win }) {\r\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\r\n return () => {\r\n };\r\n }\r\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\r\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [{ rule, index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\r\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [{ index }],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n let replace;\r\n if (win.CSSStyleSheet.prototype.replace) {\r\n replace = win.CSSStyleSheet.prototype.replace;\r\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replace: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n let replaceSync;\r\n if (win.CSSStyleSheet.prototype.replaceSync) {\r\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\r\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [text] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n replaceSync: text,\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n }\r\n const supportedNestedCSSRuleTypes = {};\r\n if (canMonkeyPatchNestedCSSRule('CSSGroupingRule')) {\r\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\r\n }\r\n else {\r\n if (canMonkeyPatchNestedCSSRule('CSSMediaRule')) {\r\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSConditionRule')) {\r\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\r\n }\r\n if (canMonkeyPatchNestedCSSRule('CSSSupportsRule')) {\r\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\r\n }\r\n }\r\n const unmodifiedFunctions = {};\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n unmodifiedFunctions[typeKey] = {\r\n insertRule: type.prototype.insertRule,\r\n deleteRule: type.prototype.deleteRule,\r\n };\r\n type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [rule, index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n adds: [\r\n {\r\n rule,\r\n index: [\r\n ...getNestedCSSRulePositions(thisArg),\r\n index || 0,\r\n ],\r\n },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n const [index] = argumentsList;\r\n const { id, styleId } = getIdAndStyleId(thisArg.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleSheetRuleCb({\r\n id,\r\n styleId,\r\n removes: [\r\n { index: [...getNestedCSSRulePositions(thisArg), index] },\r\n ],\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleSheet.prototype.insertRule = insertRule;\r\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\r\n replace && (win.CSSStyleSheet.prototype.replace = replace);\r\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\r\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\r\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\r\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\r\n });\r\n });\r\n}\r\nfunction initAdoptedStyleSheetObserver({ mirror, stylesheetManager, }, host) {\r\n var _a, _b, _c;\r\n let hostId = null;\r\n if (host.nodeName === '#document')\r\n hostId = mirror.getId(host);\r\n else\r\n hostId = mirror.getId(host.host);\r\n const patchTarget = host.nodeName === '#document'\r\n ? (_a = host.defaultView) === null || _a === void 0 ? void 0 : _a.Document\r\n : (_c = (_b = host.ownerDocument) === null || _b === void 0 ? void 0 : _b.defaultView) === null || _c === void 0 ? void 0 : _c.ShadowRoot;\r\n const originalPropertyDescriptor = (patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype)\r\n ? Object.getOwnPropertyDescriptor(patchTarget === null || patchTarget === void 0 ? void 0 : patchTarget.prototype, 'adoptedStyleSheets')\r\n : undefined;\r\n if (hostId === null ||\r\n hostId === -1 ||\r\n !patchTarget ||\r\n !originalPropertyDescriptor)\r\n return () => {\r\n };\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get() {\r\n var _a;\r\n return (_a = originalPropertyDescriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\r\n },\r\n set(sheets) {\r\n var _a;\r\n const result = (_a = originalPropertyDescriptor.set) === null || _a === void 0 ? void 0 : _a.call(this, sheets);\r\n if (hostId !== null && hostId !== -1) {\r\n try {\r\n stylesheetManager.adoptStyleSheets(sheets, hostId);\r\n }\r\n catch (e) {\r\n }\r\n }\r\n return result;\r\n },\r\n });\r\n return callbackWrapper(() => {\r\n Object.defineProperty(host, 'adoptedStyleSheets', {\r\n configurable: originalPropertyDescriptor.configurable,\r\n enumerable: originalPropertyDescriptor.enumerable,\r\n get: originalPropertyDescriptor.get,\r\n set: originalPropertyDescriptor.set,\r\n });\r\n });\r\n}\r\nfunction initStyleDeclarationObserver({ styleDeclarationCb, mirror, ignoreCSSAttributes, stylesheetManager, }, { win }) {\r\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\r\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property, value, priority] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return setProperty.apply(thisArg, [property, value, priority]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n set: {\r\n property,\r\n value,\r\n priority,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\r\n apply: callbackWrapper((target, thisArg, argumentsList) => {\r\n var _a;\r\n const [property] = argumentsList;\r\n if (ignoreCSSAttributes.has(property)) {\r\n return removeProperty.apply(thisArg, [property]);\r\n }\r\n const { id, styleId } = getIdAndStyleId((_a = thisArg.parentRule) === null || _a === void 0 ? void 0 : _a.parentStyleSheet, mirror, stylesheetManager.styleMirror);\r\n if ((id && id !== -1) || (styleId && styleId !== -1)) {\r\n styleDeclarationCb({\r\n id,\r\n styleId,\r\n remove: {\r\n property,\r\n },\r\n index: getNestedCSSRulePositions(thisArg.parentRule),\r\n });\r\n }\r\n return target.apply(thisArg, argumentsList);\r\n }),\r\n });\r\n return callbackWrapper(() => {\r\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\r\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\r\n });\r\n}\r\nfunction initMediaInteractionObserver({ mediaInteractionCb, blockClass, blockSelector, mirror, sampling, doc, }) {\r\n const handler = callbackWrapper((type) => throttle(callbackWrapper((event) => {\r\n const target = getEventTarget(event);\r\n if (!target ||\r\n isBlocked(target, blockClass, blockSelector, true)) {\r\n return;\r\n }\r\n const { currentTime, volume, muted, playbackRate, loop } = 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 loop,\r\n });\r\n }), sampling.media || 500));\r\n const handlers = [\r\n on('play', handler(0), doc),\r\n on('pause', handler(1), doc),\r\n on('seeked', handler(2), doc),\r\n on('volumechange', handler(3), doc),\r\n on('ratechange', handler(4), doc),\r\n ];\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initFontObserver({ fontCb, doc }) {\r\n const win = doc.defaultView;\r\n if (!win) {\r\n return () => {\r\n };\r\n }\r\n const handlers = [];\r\n const fontMap = new WeakMap();\r\n const originalFontFace = win.FontFace;\r\n win.FontFace = function FontFace(family, source, descriptors) {\r\n const fontFace = new originalFontFace(family, source, descriptors);\r\n fontMap.set(fontFace, {\r\n family,\r\n buffer: typeof source !== 'string',\r\n descriptors,\r\n fontSource: typeof source === 'string'\r\n ? source\r\n : JSON.stringify(Array.from(new Uint8Array(source))),\r\n });\r\n return fontFace;\r\n };\r\n const restoreHandler = patch(doc.fonts, 'add', function (original) {\r\n return function (fontFace) {\r\n setTimeout(callbackWrapper(() => {\r\n const p = fontMap.get(fontFace);\r\n if (p) {\r\n fontCb(p);\r\n fontMap.delete(fontFace);\r\n }\r\n }), 0);\r\n return original.apply(this, [fontFace]);\r\n };\r\n });\r\n handlers.push(() => {\r\n win.FontFace = originalFontFace;\r\n });\r\n handlers.push(restoreHandler);\r\n return callbackWrapper(() => {\r\n handlers.forEach((h) => h());\r\n });\r\n}\r\nfunction initSelectionObserver(param) {\r\n const { doc, mirror, blockClass, blockSelector, selectionCb } = param;\r\n let collapsed = true;\r\n const updateSelection = callbackWrapper(() => {\r\n const selection = doc.getSelection();\r\n if (!selection || (collapsed && (selection === null || selection === void 0 ? void 0 : selection.isCollapsed)))\r\n return;\r\n collapsed = selection.isCollapsed || false;\r\n const ranges = [];\r\n const count = selection.rangeCount || 0;\r\n for (let i = 0; i < count; i++) {\r\n const range = selection.getRangeAt(i);\r\n const { startContainer, startOffset, endContainer, endOffset } = range;\r\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) ||\r\n isBlocked(endContainer, blockClass, blockSelector, true);\r\n if (blocked)\r\n continue;\r\n ranges.push({\r\n start: mirror.getId(startContainer),\r\n startOffset,\r\n end: mirror.getId(endContainer),\r\n endOffset,\r\n });\r\n }\r\n selectionCb({ ranges });\r\n });\r\n updateSelection();\r\n return on('selectionchange', updateSelection);\r\n}\r\nfunction initCustomElementObserver({ doc, customElementCb, }) {\r\n const win = doc.defaultView;\r\n if (!win || !win.customElements)\r\n return () => { };\r\n const restoreHandler = patch(win.customElements, 'define', function (original) {\r\n return function (name, constructor, options) {\r\n try {\r\n customElementCb({\r\n define: {\r\n name,\r\n },\r\n });\r\n }\r\n catch (e) {\r\n console.warn(`Custom element callback failed for ${name}`);\r\n }\r\n return original.apply(this, [name, constructor, options]);\r\n };\r\n });\r\n return restoreHandler;\r\n}\r\nfunction mergeHooks(o, hooks) {\r\n const { mutationCb, mousemoveCb, mouseInteractionCb, scrollCb, viewportResizeCb, inputCb, mediaInteractionCb, styleSheetRuleCb, styleDeclarationCb, canvasMutationCb, fontCb, selectionCb, customElementCb, } = o;\r\n o.mutationCb = (...p) => {\r\n if (hooks.mutation) {\r\n hooks.mutation(...p);\r\n }\r\n mutationCb(...p);\r\n };\r\n o.mousemoveCb = (...p) => {\r\n if (hooks.mousemove) {\r\n hooks.mousemove(...p);\r\n }\r\n mousemoveCb(...p);\r\n };\r\n o.mouseInteractionCb = (...p) => {\r\n if (hooks.mouseInteraction) {\r\n hooks.mouseInteraction(...p);\r\n }\r\n mouseInteractionCb(...p);\r\n };\r\n o.scrollCb = (...p) => {\r\n if (hooks.scroll) {\r\n hooks.scroll(...p);\r\n }\r\n scrollCb(...p);\r\n };\r\n o.viewportResizeCb = (...p) => {\r\n if (hooks.viewportResize) {\r\n hooks.viewportResize(...p);\r\n }\r\n viewportResizeCb(...p);\r\n };\r\n o.inputCb = (...p) => {\r\n if (hooks.input) {\r\n hooks.input(...p);\r\n }\r\n inputCb(...p);\r\n };\r\n o.mediaInteractionCb = (...p) => {\r\n if (hooks.mediaInteaction) {\r\n hooks.mediaInteaction(...p);\r\n }\r\n mediaInteractionCb(...p);\r\n };\r\n o.styleSheetRuleCb = (...p) => {\r\n if (hooks.styleSheetRule) {\r\n hooks.styleSheetRule(...p);\r\n }\r\n styleSheetRuleCb(...p);\r\n };\r\n o.styleDeclarationCb = (...p) => {\r\n if (hooks.styleDeclaration) {\r\n hooks.styleDeclaration(...p);\r\n }\r\n styleDeclarationCb(...p);\r\n };\r\n o.canvasMutationCb = (...p) => {\r\n if (hooks.canvasMutation) {\r\n hooks.canvasMutation(...p);\r\n }\r\n canvasMutationCb(...p);\r\n };\r\n o.fontCb = (...p) => {\r\n if (hooks.font) {\r\n hooks.font(...p);\r\n }\r\n fontCb(...p);\r\n };\r\n o.selectionCb = (...p) => {\r\n if (hooks.selection) {\r\n hooks.selection(...p);\r\n }\r\n selectionCb(...p);\r\n };\r\n o.customElementCb = (...c) => {\r\n if (hooks.customElement) {\r\n hooks.customElement(...c);\r\n }\r\n customElementCb(...c);\r\n };\r\n}\r\nfunction initObservers(o, hooks = {}) {\r\n const currentWindow = o.doc.defaultView;\r\n if (!currentWindow) {\r\n return () => {\r\n };\r\n }\r\n mergeHooks(o, hooks);\r\n let mutationObserver;\r\n if (o.recordDOM) {\r\n mutationObserver = initMutationObserver(o, o.doc);\r\n }\r\n const mousemoveHandler = initMoveObserver(o);\r\n const mouseInteractionHandler = initMouseInteractionObserver(o);\r\n const scrollHandler = initScrollObserver(o);\r\n const viewportResizeHandler = initViewportResizeObserver(o, {\r\n win: currentWindow,\r\n });\r\n const inputHandler = initInputObserver(o);\r\n const mediaInteractionHandler = initMediaInteractionObserver(o);\r\n let styleSheetObserver = () => { };\r\n let adoptedStyleSheetObserver = () => { };\r\n let styleDeclarationObserver = () => { };\r\n let fontObserver = () => { };\r\n if (o.recordDOM) {\r\n styleSheetObserver = initStyleSheetObserver(o, { win: currentWindow });\r\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o, o.doc);\r\n styleDeclarationObserver = initStyleDeclarationObserver(o, {\r\n win: currentWindow,\r\n });\r\n if (o.collectFonts) {\r\n fontObserver = initFontObserver(o);\r\n }\r\n }\r\n const selectionObserver = initSelectionObserver(o);\r\n const customElementObserver = initCustomElementObserver(o);\r\n const pluginHandlers = [];\r\n for (const plugin of o.plugins) {\r\n pluginHandlers.push(plugin.observer(plugin.callback, currentWindow, plugin.options));\r\n }\r\n return callbackWrapper(() => {\r\n mutationBuffers.forEach((b) => b.reset());\r\n mutationObserver === null || mutationObserver === void 0 ? void 0 : mutationObserver.disconnect();\r\n mousemoveHandler();\r\n mouseInteractionHandler();\r\n scrollHandler();\r\n viewportResizeHandler();\r\n inputHandler();\r\n mediaInteractionHandler();\r\n styleSheetObserver();\r\n adoptedStyleSheetObserver();\r\n styleDeclarationObserver();\r\n fontObserver();\r\n selectionObserver();\r\n customElementObserver();\r\n pluginHandlers.forEach((h) => h());\r\n });\r\n}\r\nfunction hasNestedCSSRule(prop) {\r\n return typeof window[prop] !== 'undefined';\r\n}\r\nfunction canMonkeyPatchNestedCSSRule(prop) {\r\n return Boolean(typeof window[prop] !== 'undefined' &&\r\n window[prop].prototype &&\r\n 'insertRule' in window[prop].prototype &&\r\n 'deleteRule' in window[prop].prototype);\r\n}\n\nclass CrossOriginIframeMirror {\r\n constructor(generateIdFn) {\r\n this.generateIdFn = generateIdFn;\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n }\r\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\r\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\r\n let id = idToRemoteIdMap.get(remoteId);\r\n if (!id) {\r\n id = this.generateIdFn();\r\n idToRemoteIdMap.set(remoteId, id);\r\n remoteIdToIdMap.set(id, remoteId);\r\n }\r\n return id;\r\n }\r\n getIds(iframe, remoteId) {\r\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return remoteId.map((id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap));\r\n }\r\n getRemoteId(iframe, id, map) {\r\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\r\n if (typeof id !== 'number')\r\n return id;\r\n const remoteId = remoteIdToIdMap.get(id);\r\n if (!remoteId)\r\n return -1;\r\n return remoteId;\r\n }\r\n getRemoteIds(iframe, ids) {\r\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\r\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\r\n }\r\n reset(iframe) {\r\n if (!iframe) {\r\n this.iframeIdToRemoteIdMap = new WeakMap();\r\n this.iframeRemoteIdToIdMap = new WeakMap();\r\n return;\r\n }\r\n this.iframeIdToRemoteIdMap.delete(iframe);\r\n this.iframeRemoteIdToIdMap.delete(iframe);\r\n }\r\n getIdToRemoteIdMap(iframe) {\r\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\r\n if (!idToRemoteIdMap) {\r\n idToRemoteIdMap = new Map();\r\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\r\n }\r\n return idToRemoteIdMap;\r\n }\r\n getRemoteIdToIdMap(iframe) {\r\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\r\n if (!remoteIdToIdMap) {\r\n remoteIdToIdMap = new Map();\r\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\r\n }\r\n return remoteIdToIdMap;\r\n }\r\n}\n\nclass IframeManager {\r\n constructor(options) {\r\n this.iframes = new WeakMap();\r\n this.crossOriginIframeMap = new WeakMap();\r\n this.crossOriginIframeMirror = new CrossOriginIframeMirror(genId);\r\n this.crossOriginIframeRootIdMap = new WeakMap();\r\n this.mutationCb = options.mutationCb;\r\n this.wrappedEmit = options.wrappedEmit;\r\n this.stylesheetManager = options.stylesheetManager;\r\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\r\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror));\r\n this.mirror = options.mirror;\r\n if (this.recordCrossOriginIframes) {\r\n window.addEventListener('message', this.handleMessage.bind(this));\r\n }\r\n }\r\n addIframe(iframeEl) {\r\n this.iframes.set(iframeEl, true);\r\n if (iframeEl.contentWindow)\r\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\r\n }\r\n addLoadListener(cb) {\r\n this.loadListener = cb;\r\n }\r\n attachIframe(iframeEl, childSn) {\r\n var _a;\r\n this.mutationCb({\r\n adds: [\r\n {\r\n parentId: this.mirror.getId(iframeEl),\r\n nextId: null,\r\n node: childSn,\r\n },\r\n ],\r\n removes: [],\r\n texts: [],\r\n attributes: [],\r\n isAttachIframe: true,\r\n });\r\n (_a = this.loadListener) === null || _a === void 0 ? void 0 : _a.call(this, iframeEl);\r\n if (iframeEl.contentDocument &&\r\n iframeEl.contentDocument.adoptedStyleSheets &&\r\n iframeEl.contentDocument.adoptedStyleSheets.length > 0)\r\n this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));\r\n }\r\n handleMessage(message) {\r\n const crossOriginMessageEvent = message;\r\n if (crossOriginMessageEvent.data.type !== 'rrweb' ||\r\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\r\n return;\r\n const iframeSourceWindow = message.source;\r\n if (!iframeSourceWindow)\r\n return;\r\n const iframeEl = this.crossOriginIframeMap.get(message.source);\r\n if (!iframeEl)\r\n return;\r\n const transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event);\r\n if (transformedEvent)\r\n this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout);\r\n }\r\n transformCrossOriginEvent(iframeEl, e) {\r\n var _a;\r\n switch (e.type) {\r\n case EventType$1.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$1.IncrementalSnapshot,\r\n data: {\r\n source: IncrementalSource$1.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$1.Meta:\r\n case EventType$1.Load:\r\n case EventType$1.DomContentLoaded: {\r\n return false;\r\n }\r\n case EventType$1.Plugin: {\r\n return e;\r\n }\r\n case EventType$1.Custom: {\r\n this.replaceIds(e.data.payload, iframeEl, ['id', 'parentId', 'previousId', 'nextId']);\r\n return e;\r\n }\r\n case EventType$1.IncrementalSnapshot: {\r\n switch (e.data.source) {\r\n case IncrementalSource$1.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$1.Drag:\r\n case IncrementalSource$1.TouchMove:\r\n case IncrementalSource$1.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$1.ViewportResize: {\r\n return false;\r\n }\r\n case IncrementalSource$1.MediaInteraction:\r\n case IncrementalSource$1.MouseInteraction:\r\n case IncrementalSource$1.Scroll:\r\n case IncrementalSource$1.CanvasMutation:\r\n case IncrementalSource$1.Input: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n return e;\r\n }\r\n case IncrementalSource$1.StyleSheetRule:\r\n case IncrementalSource$1.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$1.Font: {\r\n return e;\r\n }\r\n case IncrementalSource$1.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$1.AdoptedStyleSheet: {\r\n this.replaceIds(e.data, iframeEl, ['id']);\r\n this.replaceStyleIds(e.data, iframeEl, ['styleIds']);\r\n (_a = e.data.styles) === null || _a === void 0 ? void 0 : _a.forEach((style) => {\r\n this.replaceStyleIds(style, iframeEl, ['styleId']);\r\n });\r\n return e;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n replace(iframeMirror, obj, iframeEl, keys) {\r\n for (const key of keys) {\r\n if (!Array.isArray(obj[key]) && typeof obj[key] !== 'number')\r\n continue;\r\n if (Array.isArray(obj[key])) {\r\n obj[key] = iframeMirror.getIds(iframeEl, obj[key]);\r\n }\r\n else {\r\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\r\n }\r\n }\r\n return obj;\r\n }\r\n replaceIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\r\n }\r\n replaceStyleIds(obj, iframeEl, keys) {\r\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\r\n }\r\n replaceIdOnNode(node, iframeEl) {\r\n this.replaceIds(node, iframeEl, ['id', 'rootId']);\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.replaceIdOnNode(child, iframeEl);\r\n });\r\n }\r\n }\r\n patchRootIdOnNode(node, rootId) {\r\n if (node.type !== NodeType.Document && !node.rootId)\r\n node.rootId = rootId;\r\n if ('childNodes' in node) {\r\n node.childNodes.forEach((child) => {\r\n this.patchRootIdOnNode(child, rootId);\r\n });\r\n }\r\n }\r\n}\n\nclass ShadowDomManager {\r\n constructor(options) {\r\n this.shadowDoms = new WeakSet();\r\n this.restoreHandlers = [];\r\n this.mutationCb = options.mutationCb;\r\n this.scrollCb = options.scrollCb;\r\n this.bypassOptions = options.bypassOptions;\r\n this.mirror = options.mirror;\r\n this.init();\r\n }\r\n init() {\r\n this.reset();\r\n this.patchAttachShadow(Element, document);\r\n }\r\n addShadowRoot(shadowRoot, doc) {\r\n if (!isNativeShadowDom(shadowRoot))\r\n return;\r\n if (this.shadowDoms.has(shadowRoot))\r\n return;\r\n this.shadowDoms.add(shadowRoot);\r\n const observer = initMutationObserver(Object.assign(Object.assign({}, this.bypassOptions), { doc, mutationCb: this.mutationCb, mirror: this.mirror, shadowDomManager: this }), shadowRoot);\r\n this.restoreHandlers.push(() => observer.disconnect());\r\n this.restoreHandlers.push(initScrollObserver(Object.assign(Object.assign({}, this.bypassOptions), { scrollCb: this.scrollCb, doc: shadowRoot, mirror: this.mirror })));\r\n setTimeout(() => {\r\n if (shadowRoot.adoptedStyleSheets &&\r\n shadowRoot.adoptedStyleSheets.length > 0)\r\n this.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot.adoptedStyleSheets, this.mirror.getId(shadowRoot.host));\r\n this.restoreHandlers.push(initAdoptedStyleSheetObserver({\r\n mirror: this.mirror,\r\n stylesheetManager: this.bypassOptions.stylesheetManager,\r\n }, shadowRoot));\r\n }, 0);\r\n }\r\n observeAttachShadow(iframeElement) {\r\n if (!iframeElement.contentWindow || !iframeElement.contentDocument)\r\n return;\r\n this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument);\r\n }\r\n patchAttachShadow(element, doc) {\r\n const manager = this;\r\n this.restoreHandlers.push(patch(element.prototype, 'attachShadow', function (original) {\r\n return function (option) {\r\n const shadowRoot = original.call(this, option);\r\n if (this.shadowRoot && inDom(this))\r\n manager.addShadowRoot(this.shadowRoot, doc);\r\n return shadowRoot;\r\n };\r\n }));\r\n }\r\n reset() {\r\n this.restoreHandlers.forEach((handler) => {\r\n try {\r\n handler();\r\n }\r\n catch (e) {\r\n }\r\n });\r\n this.restoreHandlers = [];\r\n this.shadowDoms = new WeakSet();\r\n }\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\n\n/*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\n\nconst canvasVarMap = new Map();\r\nfunction variableListFor(ctx, ctor) {\r\n let contextMap = canvasVarMap.get(ctx);\r\n if (!contextMap) {\r\n contextMap = new Map();\r\n canvasVarMap.set(ctx, contextMap);\r\n }\r\n if (!contextMap.has(ctor)) {\r\n contextMap.set(ctor, []);\r\n }\r\n return contextMap.get(ctor);\r\n}\r\nconst saveWebGLVar = (value, win, ctx) => {\r\n if (!value ||\r\n !(isInstanceOfWebGLObject(value, win) || typeof value === 'object'))\r\n return;\r\n const name = value.constructor.name;\r\n const list = variableListFor(ctx, name);\r\n let index = list.indexOf(value);\r\n if (index === -1) {\r\n index = list.length;\r\n list.push(value);\r\n }\r\n return index;\r\n};\r\nfunction serializeArg(value, win, ctx) {\r\n if (value instanceof Array) {\r\n return value.map((arg) => serializeArg(arg, win, ctx));\r\n }\r\n else if (value === null) {\r\n return value;\r\n }\r\n else if (value instanceof Float32Array ||\r\n value instanceof Float64Array ||\r\n value instanceof Int32Array ||\r\n value instanceof Uint32Array ||\r\n value instanceof Uint8Array ||\r\n value instanceof Uint16Array ||\r\n value instanceof Int16Array ||\r\n value instanceof Int8Array ||\r\n value instanceof Uint8ClampedArray) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [Object.values(value)],\r\n };\r\n }\r\n else if (value instanceof ArrayBuffer) {\r\n const name = value.constructor.name;\r\n const base64 = encode(value);\r\n return {\r\n rr_type: name,\r\n base64,\r\n };\r\n }\r\n else if (value instanceof DataView) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [\r\n serializeArg(value.buffer, win, ctx),\r\n value.byteOffset,\r\n value.byteLength,\r\n ],\r\n };\r\n }\r\n else if (value instanceof HTMLImageElement) {\r\n const name = value.constructor.name;\r\n const { src } = value;\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof HTMLCanvasElement) {\r\n const name = 'HTMLImageElement';\r\n const src = value.toDataURL();\r\n return {\r\n rr_type: name,\r\n src,\r\n };\r\n }\r\n else if (value instanceof ImageData) {\r\n const name = value.constructor.name;\r\n return {\r\n rr_type: name,\r\n args: [serializeArg(value.data, win, ctx), value.width, value.height],\r\n };\r\n }\r\n else if (isInstanceOfWebGLObject(value, win) || typeof value === 'object') {\r\n const name = value.constructor.name;\r\n const index = saveWebGLVar(value, win, ctx);\r\n return {\r\n rr_type: name,\r\n index: index,\r\n };\r\n }\r\n return value;\r\n}\r\nconst serializeArgs = (args, win, ctx) => {\r\n return args.map((arg) => serializeArg(arg, win, ctx));\r\n};\r\nconst isInstanceOfWebGLObject = (value, win) => {\r\n const webGLConstructorNames = [\r\n 'WebGLActiveInfo',\r\n 'WebGLBuffer',\r\n 'WebGLFramebuffer',\r\n 'WebGLProgram',\r\n 'WebGLRenderbuffer',\r\n 'WebGLShader',\r\n 'WebGLShaderPrecisionFormat',\r\n 'WebGLTexture',\r\n 'WebGLUniformLocation',\r\n 'WebGLVertexArrayObject',\r\n 'WebGLVertexArrayObjectOES',\r\n ];\r\n const supportedWebGLConstructorNames = webGLConstructorNames.filter((name) => typeof win[name] === 'function');\r\n return Boolean(supportedWebGLConstructorNames.find((name) => value instanceof win[name]));\r\n};\n\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\r\n const handlers = [];\r\n const props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype);\r\n for (const prop of props2D) {\r\n try {\r\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) {\r\n return function (...args) {\r\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n setTimeout(() => {\r\n const recordArgs = serializeArgs(args, win, this);\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: recordArgs,\r\n });\r\n }, 0);\r\n }\r\n return original.apply(this, args);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type: CanvasContext['2D'],\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction getNormalizedContextName(contextType) {\r\n return contextType === 'experimental-webgl' ? 'webgl' : contextType;\r\n}\r\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\r\n const handlers = [];\r\n try {\r\n const restoreHandler = patch(win.HTMLCanvasElement.prototype, 'getContext', function (original) {\r\n return function (contextType, ...args) {\r\n if (!isBlocked(this, blockClass, blockSelector, true)) {\r\n const ctxName = getNormalizedContextName(contextType);\r\n if (!('__context' in this))\r\n this.__context = ctxName;\r\n if (setPreserveDrawingBufferToTrue &&\r\n ['webgl', 'webgl2'].includes(ctxName)) {\r\n if (args[0] && typeof args[0] === 'object') {\r\n const contextAttributes = args[0];\r\n if (!contextAttributes.preserveDrawingBuffer) {\r\n contextAttributes.preserveDrawingBuffer = true;\r\n }\r\n }\r\n else {\r\n args.splice(0, 1, {\r\n preserveDrawingBuffer: true,\r\n });\r\n }\r\n }\r\n }\r\n return original.apply(this, [contextType, ...args]);\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n console.error('failed to patch HTMLCanvasElement.prototype.getContext');\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, mirror, win) {\r\n const handlers = [];\r\n const props = Object.getOwnPropertyNames(prototype);\r\n for (const prop of props) {\r\n if ([\r\n 'isContextLost',\r\n 'canvas',\r\n 'drawingBufferWidth',\r\n 'drawingBufferHeight',\r\n ].includes(prop)) {\r\n continue;\r\n }\r\n try {\r\n if (typeof prototype[prop] !== 'function') {\r\n continue;\r\n }\r\n const restoreHandler = patch(prototype, prop, function (original) {\r\n return function (...args) {\r\n const result = original.apply(this, args);\r\n saveWebGLVar(result, win, this);\r\n if ('tagName' in this.canvas &&\r\n !isBlocked(this.canvas, blockClass, blockSelector, true)) {\r\n const recordArgs = serializeArgs(args, win, this);\r\n const mutation = {\r\n type,\r\n property: prop,\r\n args: recordArgs,\r\n };\r\n cb(this.canvas, mutation);\r\n }\r\n return result;\r\n };\r\n });\r\n handlers.push(restoreHandler);\r\n }\r\n catch (_a) {\r\n const hookHandler = hookSetter(prototype, prop, {\r\n set(v) {\r\n cb(this.canvas, {\r\n type,\r\n property: prop,\r\n args: [v],\r\n setter: true,\r\n });\r\n },\r\n });\r\n handlers.push(hookHandler);\r\n }\r\n }\r\n return handlers;\r\n}\r\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector, mirror) {\r\n const handlers = [];\r\n handlers.push(...patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, mirror, win));\r\n if (typeof win.WebGL2RenderingContext !== 'undefined') {\r\n handlers.push(...patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, mirror, win));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n };\r\n}\n\nfunction funcToSource(fn, sourcemapArg) {\n var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;\n var source = fn.toString();\n var lines = source.split('\\n');\n lines.pop();\n lines.shift();\n var blankPrefixLength = lines[0].search(/\\S/);\n var regex = /(['\"])__worker_loader_strict__(['\"])/g;\n for (var i = 0, n = lines.length; i < n; ++i) {\n lines[i] = lines[i].substring(blankPrefixLength).replace(regex, '$1use strict$2') + '\\n';\n }\n if (sourcemap) {\n lines.push('\\/\\/# sourceMappingURL=' + sourcemap + '\\n');\n }\n return lines;\n}\n\nfunction createURL(fn, sourcemapArg) {\n var lines = funcToSource(fn, sourcemapArg);\n var blob = new Blob(lines, { type: 'application/javascript' });\n return URL.createObjectURL(blob);\n}\n\nfunction createInlineWorkerFactory(fn, sourcemapArg) {\n var url;\n return function WorkerFactory(options) {\n url = url || createURL(fn, sourcemapArg);\n return new Worker(url, options);\n };\n}\n\nvar WorkerFactory = createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {\n(function () {\n '__worker_loader_strict__';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\n\n /*\n * base64-arraybuffer 1.0.1 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n };\n\n const lastBlobMap = new Map();\r\n const transparentBlobMap = new Map();\r\n function getTransparentBlobFor(width, height, dataURLOptions) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n const id = `${width}-${height}`;\r\n if ('OffscreenCanvas' in globalThis) {\r\n if (transparentBlobMap.has(id))\r\n return transparentBlobMap.get(id);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n offscreen.getContext('2d');\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n transparentBlobMap.set(id, base64);\r\n return base64;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n }\r\n const worker = self;\r\n worker.onmessage = function (e) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if ('OffscreenCanvas' in globalThis) {\r\n const { id, bitmap, width, height, dataURLOptions } = e.data;\r\n const transparentBase64 = getTransparentBlobFor(width, height, dataURLOptions);\r\n const offscreen = new OffscreenCanvas(width, height);\r\n const ctx = offscreen.getContext('2d');\r\n ctx.drawImage(bitmap, 0, 0);\r\n bitmap.close();\r\n const blob = yield offscreen.convertToBlob(dataURLOptions);\r\n const type = blob.type;\r\n const arrayBuffer = yield blob.arrayBuffer();\r\n const base64 = encode(arrayBuffer);\r\n if (!lastBlobMap.has(id) && (yield transparentBase64) === base64) {\r\n lastBlobMap.set(id, base64);\r\n return worker.postMessage({ id });\r\n }\r\n if (lastBlobMap.get(id) === base64)\r\n return worker.postMessage({ id });\r\n worker.postMessage({\r\n id,\r\n type,\r\n base64,\r\n width,\r\n height,\r\n });\r\n lastBlobMap.set(id, base64);\r\n }\r\n else {\r\n return worker.postMessage({ id: e.data.id });\r\n }\r\n });\r\n };\n\n})();\n}, null);\n\nclass CanvasManager {\r\n reset() {\r\n this.pendingCanvasMutations.clear();\r\n this.resetObservers && this.resetObservers();\r\n }\r\n freeze() {\r\n this.frozen = true;\r\n }\r\n unfreeze() {\r\n this.frozen = false;\r\n }\r\n lock() {\r\n this.locked = true;\r\n }\r\n unlock() {\r\n this.locked = false;\r\n }\r\n constructor(options) {\r\n this.pendingCanvasMutations = new Map();\r\n this.rafStamps = { latestId: 0, invokeId: null };\r\n this.frozen = false;\r\n this.locked = false;\r\n this.processMutation = (target, mutation) => {\r\n const newFrame = this.rafStamps.invokeId &&\r\n this.rafStamps.latestId !== this.rafStamps.invokeId;\r\n if (newFrame || !this.rafStamps.invokeId)\r\n this.rafStamps.invokeId = this.rafStamps.latestId;\r\n if (!this.pendingCanvasMutations.has(target)) {\r\n this.pendingCanvasMutations.set(target, []);\r\n }\r\n this.pendingCanvasMutations.get(target).push(mutation);\r\n };\r\n const { sampling = 'all', win, blockClass, blockSelector, recordCanvas, dataURLOptions, } = options;\r\n this.mutationCb = options.mutationCb;\r\n this.mirror = options.mirror;\r\n if (recordCanvas && sampling === 'all')\r\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\r\n if (recordCanvas && typeof sampling === 'number')\r\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\r\n dataURLOptions,\r\n });\r\n }\r\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true);\r\n const snapshotInProgressMap = new Map();\r\n const worker = new WorkerFactory();\r\n worker.onmessage = (e) => {\r\n const { id } = e.data;\r\n snapshotInProgressMap.set(id, false);\r\n if (!('base64' in e.data))\r\n return;\r\n const { base64, type, width, height } = e.data;\r\n this.mutationCb({\r\n id,\r\n type: CanvasContext['2D'],\r\n commands: [\r\n {\r\n property: 'clearRect',\r\n args: [0, 0, width, height],\r\n },\r\n {\r\n property: 'drawImage',\r\n args: [\r\n {\r\n rr_type: 'ImageBitmap',\r\n args: [\r\n {\r\n rr_type: 'Blob',\r\n data: [{ rr_type: 'ArrayBuffer', base64 }],\r\n type,\r\n },\r\n ],\r\n },\r\n 0,\r\n 0,\r\n ],\r\n },\r\n ],\r\n });\r\n };\r\n const timeBetweenSnapshots = 1000 / fps;\r\n let lastSnapshotTime = 0;\r\n let rafId;\r\n const getCanvas = () => {\r\n const matchedCanvas = [];\r\n win.document.querySelectorAll('canvas').forEach((canvas) => {\r\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\r\n matchedCanvas.push(canvas);\r\n }\r\n });\r\n return matchedCanvas;\r\n };\r\n const takeCanvasSnapshots = (timestamp) => {\r\n if (lastSnapshotTime &&\r\n timestamp - lastSnapshotTime < timeBetweenSnapshots) {\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n return;\r\n }\r\n lastSnapshotTime = timestamp;\r\n getCanvas()\r\n .forEach((canvas) => __awaiter(this, void 0, void 0, function* () {\r\n var _a;\r\n const id = this.mirror.getId(canvas);\r\n if (snapshotInProgressMap.get(id))\r\n return;\r\n if (canvas.width === 0 || canvas.height === 0)\r\n return;\r\n snapshotInProgressMap.set(id, true);\r\n if (['webgl', 'webgl2'].includes(canvas.__context)) {\r\n const context = canvas.getContext(canvas.__context);\r\n if (((_a = context === null || context === void 0 ? void 0 : context.getContextAttributes()) === null || _a === void 0 ? void 0 : _a.preserveDrawingBuffer) === false) {\r\n context.clear(context.COLOR_BUFFER_BIT);\r\n }\r\n }\r\n const bitmap = yield createImageBitmap(canvas);\r\n worker.postMessage({\r\n id,\r\n bitmap,\r\n width: canvas.width,\r\n height: canvas.height,\r\n dataURLOptions: options.dataURLOptions,\r\n }, [bitmap]);\r\n }));\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n };\r\n rafId = requestAnimationFrame(takeCanvasSnapshots);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n cancelAnimationFrame(rafId);\r\n };\r\n }\r\n initCanvasMutationObserver(win, blockClass, blockSelector) {\r\n this.startRAFTimestamping();\r\n this.startPendingCanvasMutationFlusher();\r\n const canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false);\r\n const canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector);\r\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector, this.mirror);\r\n this.resetObservers = () => {\r\n canvasContextReset();\r\n canvas2DReset();\r\n canvasWebGL1and2Reset();\r\n };\r\n }\r\n startPendingCanvasMutationFlusher() {\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n startRAFTimestamping() {\r\n const setLatestRAFTimestamp = (timestamp) => {\r\n this.rafStamps.latestId = timestamp;\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n };\r\n requestAnimationFrame(setLatestRAFTimestamp);\r\n }\r\n flushPendingCanvasMutations() {\r\n this.pendingCanvasMutations.forEach((values, canvas) => {\r\n const id = this.mirror.getId(canvas);\r\n this.flushPendingCanvasMutationFor(canvas, id);\r\n });\r\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\r\n }\r\n flushPendingCanvasMutationFor(canvas, id) {\r\n if (this.frozen || this.locked) {\r\n return;\r\n }\r\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\r\n if (!valuesWithType || id === -1)\r\n return;\r\n const values = valuesWithType.map((value) => {\r\n const rest = __rest(value, [\"type\"]);\r\n return rest;\r\n });\r\n const { type } = valuesWithType[0];\r\n this.mutationCb({ id, type, commands: values });\r\n this.pendingCanvasMutations.delete(canvas);\r\n }\r\n}\n\nclass StylesheetManager {\r\n constructor(options) {\r\n this.trackedLinkElements = new WeakSet();\r\n this.styleMirror = new StyleSheetMirror();\r\n this.mutationCb = options.mutationCb;\r\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\r\n }\r\n attachLinkElement(linkEl, childSn) {\r\n if ('_cssText' in childSn.attributes)\r\n this.mutationCb({\r\n adds: [],\r\n removes: [],\r\n texts: [],\r\n attributes: [\r\n {\r\n id: childSn.id,\r\n attributes: childSn\r\n .attributes,\r\n },\r\n ],\r\n });\r\n this.trackLinkElement(linkEl);\r\n }\r\n trackLinkElement(linkEl) {\r\n if (this.trackedLinkElements.has(linkEl))\r\n return;\r\n this.trackedLinkElements.add(linkEl);\r\n this.trackStylesheetInLinkElement(linkEl);\r\n }\r\n adoptStyleSheets(sheets, hostId) {\r\n if (sheets.length === 0)\r\n return;\r\n const adoptedStyleSheetData = {\r\n id: hostId,\r\n styleIds: [],\r\n };\r\n const styles = [];\r\n for (const sheet of sheets) {\r\n let styleId;\r\n if (!this.styleMirror.has(sheet)) {\r\n styleId = this.styleMirror.add(sheet);\r\n styles.push({\r\n styleId,\r\n rules: Array.from(sheet.rules || CSSRule, (r, index) => ({\r\n rule: stringifyRule(r),\r\n index,\r\n })),\r\n });\r\n }\r\n else\r\n styleId = this.styleMirror.getId(sheet);\r\n adoptedStyleSheetData.styleIds.push(styleId);\r\n }\r\n if (styles.length > 0)\r\n adoptedStyleSheetData.styles = styles;\r\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\r\n }\r\n reset() {\r\n this.styleMirror.reset();\r\n this.trackedLinkElements = new WeakSet();\r\n }\r\n trackStylesheetInLinkElement(linkEl) {\r\n }\r\n}\n\nclass ProcessedNodeManager {\r\n constructor() {\r\n this.nodeMap = new WeakMap();\r\n this.loop = true;\r\n this.periodicallyClear();\r\n }\r\n periodicallyClear() {\r\n requestAnimationFrame(() => {\r\n this.clear();\r\n if (this.loop)\r\n this.periodicallyClear();\r\n });\r\n }\r\n inOtherBuffer(node, thisBuffer) {\r\n const buffers = this.nodeMap.get(node);\r\n return (buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer));\r\n }\r\n add(node, buffer) {\r\n this.nodeMap.set(node, (this.nodeMap.get(node) || new Set()).add(buffer));\r\n }\r\n clear() {\r\n this.nodeMap = new WeakMap();\r\n }\r\n destroy() {\r\n this.loop = false;\r\n }\r\n}\n\nfunction wrapEvent(e) {\r\n return Object.assign(Object.assign({}, e), { timestamp: nowTimestamp() });\r\n}\r\nlet wrappedEmit;\r\nlet takeFullSnapshot;\r\nlet canvasManager;\r\nlet recording = false;\r\nconst mirror = createMirror();\r\nfunction record(options = {}) {\r\n const { emit, checkoutEveryNms, checkoutEveryNth, blockClass = 'rr-block', blockSelector = null, ignoreClass = 'rr-ignore', ignoreSelector = null, maskTextClass = 'rr-mask', maskTextSelector = null, inlineStylesheet = true, maskAllInputs, maskInputOptions: _maskInputOptions, slimDOMOptions: _slimDOMOptions, maskInputFn, maskTextFn, hooks, packFn, sampling = {}, dataURLOptions = {}, mousemoveWait, recordDOM = true, recordCanvas = false, recordCrossOriginIframes = false, recordAfter = options.recordAfter === 'DOMContentLoaded'\r\n ? options.recordAfter\r\n : 'load', userTriggeredOnInput = false, collectFonts = false, inlineImages = false, plugins, keepIframeSrcFn = () => false, ignoreCSSAttributes = new Set([]), errorHandler, } = options;\r\n registerErrorHandler(errorHandler);\r\n const inEmittingFrame = recordCrossOriginIframes\r\n ? window.parent === window\r\n : true;\r\n let passEmitsToParent = false;\r\n if (!inEmittingFrame) {\r\n try {\r\n if (window.parent.document) {\r\n passEmitsToParent = false;\r\n }\r\n }\r\n catch (e) {\r\n passEmitsToParent = true;\r\n }\r\n }\r\n if (inEmittingFrame && !emit) {\r\n throw new Error('emit function is required');\r\n }\r\n if (mousemoveWait !== undefined && sampling.mousemove === undefined) {\r\n sampling.mousemove = mousemoveWait;\r\n }\r\n mirror.reset();\r\n const maskInputOptions = maskAllInputs === true\r\n ? {\r\n color: true,\r\n date: true,\r\n 'datetime-local': true,\r\n email: true,\r\n month: true,\r\n number: true,\r\n range: true,\r\n search: true,\r\n tel: true,\r\n text: true,\r\n time: true,\r\n url: true,\r\n week: true,\r\n textarea: true,\r\n select: true,\r\n password: true,\r\n }\r\n : _maskInputOptions !== undefined\r\n ? _maskInputOptions\r\n : { password: true };\r\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === 'all'\r\n ? {\r\n script: true,\r\n comment: true,\r\n headFavicon: true,\r\n headWhitespace: true,\r\n headMetaSocial: true,\r\n headMetaRobots: true,\r\n headMetaHttpEquiv: true,\r\n headMetaVerification: true,\r\n headMetaAuthorship: _slimDOMOptions === 'all',\r\n headMetaDescKeywords: _slimDOMOptions === 'all',\r\n }\r\n : _slimDOMOptions\r\n ? _slimDOMOptions\r\n : {};\r\n polyfill();\r\n let lastFullSnapshotEvent;\r\n let incrementalSnapshotCount = 0;\r\n const eventProcessor = (e) => {\r\n for (const plugin of plugins || []) {\r\n if (plugin.eventProcessor) {\r\n e = plugin.eventProcessor(e);\r\n }\r\n }\r\n if (packFn &&\r\n !passEmitsToParent) {\r\n e = packFn(e);\r\n }\r\n return e;\r\n };\r\n wrappedEmit = (e, isCheckout) => {\r\n var _a;\r\n if (((_a = mutationBuffers[0]) === null || _a === void 0 ? void 0 : _a.isFrozen()) &&\r\n e.type !== EventType$1.FullSnapshot &&\r\n !(e.type === EventType$1.IncrementalSnapshot &&\r\n e.data.source === IncrementalSource$1.Mutation)) {\r\n mutationBuffers.forEach((buf) => buf.unfreeze());\r\n }\r\n if (inEmittingFrame) {\r\n emit === null || emit === void 0 ? void 0 : emit(eventProcessor(e), isCheckout);\r\n }\r\n else if (passEmitsToParent) {\r\n const message = {\r\n type: 'rrweb',\r\n event: eventProcessor(e),\r\n origin: window.location.origin,\r\n isCheckout,\r\n };\r\n window.parent.postMessage(message, '*');\r\n }\r\n if (e.type === EventType$1.FullSnapshot) {\r\n lastFullSnapshotEvent = e;\r\n incrementalSnapshotCount = 0;\r\n }\r\n else if (e.type === EventType$1.IncrementalSnapshot) {\r\n if (e.data.source === IncrementalSource$1.Mutation &&\r\n e.data.isAttachIframe) {\r\n return;\r\n }\r\n incrementalSnapshotCount++;\r\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\r\n const exceedTime = checkoutEveryNms &&\r\n e.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\r\n if (exceedCount || exceedTime) {\r\n takeFullSnapshot(true);\r\n }\r\n }\r\n };\r\n const wrappedMutationEmit = (m) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Mutation }, m),\r\n }));\r\n };\r\n const wrappedScrollEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Scroll }, p),\r\n }));\r\n const wrappedCanvasMutationEmit = (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CanvasMutation }, p),\r\n }));\r\n const wrappedAdoptedStyleSheetEmit = (a) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.AdoptedStyleSheet }, a),\r\n }));\r\n const stylesheetManager = new StylesheetManager({\r\n mutationCb: wrappedMutationEmit,\r\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit,\r\n });\r\n const iframeManager = new IframeManager({\r\n mirror,\r\n mutationCb: wrappedMutationEmit,\r\n stylesheetManager: stylesheetManager,\r\n recordCrossOriginIframes,\r\n wrappedEmit,\r\n });\r\n for (const plugin of plugins || []) {\r\n if (plugin.getMirror)\r\n plugin.getMirror({\r\n nodeMirror: mirror,\r\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\r\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror,\r\n });\r\n }\r\n const processedNodeManager = new ProcessedNodeManager();\r\n canvasManager = new CanvasManager({\r\n recordCanvas,\r\n mutationCb: wrappedCanvasMutationEmit,\r\n win: window,\r\n blockClass,\r\n blockSelector,\r\n mirror,\r\n sampling: sampling.canvas,\r\n dataURLOptions,\r\n });\r\n const shadowDomManager = new ShadowDomManager({\r\n mutationCb: wrappedMutationEmit,\r\n scrollCb: wrappedScrollEmit,\r\n bypassOptions: {\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskInputOptions,\r\n dataURLOptions,\r\n maskTextFn,\r\n maskInputFn,\r\n recordCanvas,\r\n inlineImages,\r\n sampling,\r\n slimDOMOptions,\r\n iframeManager,\r\n stylesheetManager,\r\n canvasManager,\r\n keepIframeSrcFn,\r\n processedNodeManager,\r\n },\r\n mirror,\r\n });\r\n takeFullSnapshot = (isCheckout = false) => {\r\n if (!recordDOM) {\r\n return;\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Meta,\r\n data: {\r\n href: window.location.href,\r\n width: getWindowWidth(),\r\n height: getWindowHeight(),\r\n },\r\n }), isCheckout);\r\n stylesheetManager.reset();\r\n shadowDomManager.init();\r\n mutationBuffers.forEach((buf) => buf.lock());\r\n const node = snapshot(document, {\r\n mirror,\r\n blockClass,\r\n blockSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n inlineStylesheet,\r\n maskAllInputs: maskInputOptions,\r\n maskTextFn,\r\n slimDOM: slimDOMOptions,\r\n dataURLOptions,\r\n recordCanvas,\r\n inlineImages,\r\n onSerialize: (n) => {\r\n if (isSerializedIframe(n, mirror)) {\r\n iframeManager.addIframe(n);\r\n }\r\n if (isSerializedStylesheet(n, mirror)) {\r\n stylesheetManager.trackLinkElement(n);\r\n }\r\n if (hasShadowRoot(n)) {\r\n shadowDomManager.addShadowRoot(n.shadowRoot, document);\r\n }\r\n },\r\n onIframeLoad: (iframe, childSn) => {\r\n iframeManager.attachIframe(iframe, childSn);\r\n shadowDomManager.observeAttachShadow(iframe);\r\n },\r\n onStylesheetLoad: (linkEl, childSn) => {\r\n stylesheetManager.attachLinkElement(linkEl, childSn);\r\n },\r\n keepIframeSrcFn,\r\n });\r\n if (!node) {\r\n return console.warn('Failed to snapshot the document');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.FullSnapshot,\r\n data: {\r\n node,\r\n initialOffset: getWindowScroll(window),\r\n },\r\n }), isCheckout);\r\n mutationBuffers.forEach((buf) => buf.unlock());\r\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\r\n stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document));\r\n };\r\n try {\r\n const handlers = [];\r\n const observe = (doc) => {\r\n var _a;\r\n return callbackWrapper(initObservers)({\r\n mutationCb: wrappedMutationEmit,\r\n mousemoveCb: (positions, source) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: {\r\n source,\r\n positions,\r\n },\r\n })),\r\n mouseInteractionCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MouseInteraction }, d),\r\n })),\r\n scrollCb: wrappedScrollEmit,\r\n viewportResizeCb: (d) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.ViewportResize }, d),\r\n })),\r\n inputCb: (v) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Input }, v),\r\n })),\r\n mediaInteractionCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.MediaInteraction }, p),\r\n })),\r\n styleSheetRuleCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleSheetRule }, r),\r\n })),\r\n styleDeclarationCb: (r) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.StyleDeclaration }, r),\r\n })),\r\n canvasMutationCb: wrappedCanvasMutationEmit,\r\n fontCb: (p) => wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Font }, p),\r\n })),\r\n selectionCb: (p) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.Selection }, p),\r\n }));\r\n },\r\n customElementCb: (c) => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.IncrementalSnapshot,\r\n data: Object.assign({ source: IncrementalSource$1.CustomElement }, c),\r\n }));\r\n },\r\n blockClass,\r\n ignoreClass,\r\n ignoreSelector,\r\n maskTextClass,\r\n maskTextSelector,\r\n maskInputOptions,\r\n inlineStylesheet,\r\n sampling,\r\n recordDOM,\r\n recordCanvas,\r\n inlineImages,\r\n userTriggeredOnInput,\r\n collectFonts,\r\n doc,\r\n maskInputFn,\r\n maskTextFn,\r\n keepIframeSrcFn,\r\n blockSelector,\r\n slimDOMOptions,\r\n dataURLOptions,\r\n mirror,\r\n iframeManager,\r\n stylesheetManager,\r\n shadowDomManager,\r\n processedNodeManager,\r\n canvasManager,\r\n ignoreCSSAttributes,\r\n plugins: ((_a = plugins === null || plugins === void 0 ? void 0 : plugins.filter((p) => p.observer)) === null || _a === void 0 ? void 0 : _a.map((p) => ({\r\n observer: p.observer,\r\n options: p.options,\r\n callback: (payload) => wrappedEmit(wrapEvent({\r\n type: EventType$1.Plugin,\r\n data: {\r\n plugin: p.name,\r\n payload,\r\n },\r\n })),\r\n }))) || [],\r\n }, hooks);\r\n };\r\n iframeManager.addLoadListener((iframeEl) => {\r\n try {\r\n handlers.push(observe(iframeEl.contentDocument));\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n });\r\n const init = () => {\r\n takeFullSnapshot();\r\n handlers.push(observe(document));\r\n recording = true;\r\n };\r\n if (document.readyState === 'interactive' ||\r\n document.readyState === 'complete') {\r\n init();\r\n }\r\n else {\r\n handlers.push(on('DOMContentLoaded', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.DomContentLoaded,\r\n data: {},\r\n }));\r\n if (recordAfter === 'DOMContentLoaded')\r\n init();\r\n }));\r\n handlers.push(on('load', () => {\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Load,\r\n data: {},\r\n }));\r\n if (recordAfter === 'load')\r\n init();\r\n }, window));\r\n }\r\n return () => {\r\n handlers.forEach((h) => h());\r\n processedNodeManager.destroy();\r\n recording = false;\r\n unregisterErrorHandler();\r\n };\r\n }\r\n catch (error) {\r\n console.warn(error);\r\n }\r\n}\r\nrecord.addCustomEvent = (tag, payload) => {\r\n if (!recording) {\r\n throw new Error('please add custom event after start recording');\r\n }\r\n wrappedEmit(wrapEvent({\r\n type: EventType$1.Custom,\r\n data: {\r\n tag,\r\n payload,\r\n },\r\n }));\r\n};\r\nrecord.freezePage = () => {\r\n mutationBuffers.forEach((buf) => buf.freeze());\r\n};\r\nrecord.takeFullSnapshot = (isCheckout) => {\r\n if (!recording) {\r\n throw new Error('please take full snapshot after start recording');\r\n }\r\n takeFullSnapshot(isCheckout);\r\n};\r\nrecord.mirror = mirror;\n\nvar 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 || {});\n\nvar Config = {\n DEBUG: false,\n LIB_VERSION: '2.59.0'\n};\n\n// since es6 imports are static and we run unit tests from the console, window won't be defined when importing this file\nvar win;\nif (typeof(window) === 'undefined') {\n var loc = {\n hostname: ''\n };\n win = {\n navigator: { userAgent: '', onLine: true },\n document: {\n createElement: function() { return {}; },\n location: loc,\n referrer: ''\n },\n screen: { width: 0, height: 0 },\n location: loc,\n addEventListener: function() {},\n removeEventListener: function() {}\n };\n} else {\n win = window;\n}\n\nvar setImmediate = win['setImmediate'];\nvar builtInProp, cycle, schedulingQueue,\n ToString = Object.prototype.toString,\n timer = (typeof setImmediate !== 'undefined') ?\n function timer(fn) { return setImmediate(fn); } :\n setTimeout;\n\n// dammit, IE8.\ntry {\n Object.defineProperty({},'x',{});\n builtInProp = function builtInProp(obj,name,val,config) {\n return Object.defineProperty(obj,name,{\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n}\ncatch (err) {\n builtInProp = function builtInProp(obj,name,val) {\n obj[name] = val;\n return obj;\n };\n}\n\n// Note: using a queue instead of array for efficiency\nschedulingQueue = (function Queue() {\n var first, last, item;\n\n function Item(fn,self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n\n return {\n add: function add(fn,self) {\n item = new Item(fn,self);\n if (last) {\n last.next = item;\n }\n else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n})();\n\nfunction schedule(fn,self) {\n schedulingQueue.add(fn,self);\n if (!cycle) {\n cycle = timer(schedulingQueue.drain);\n }\n}\n\n// promise duck typing\nfunction isThenable(o) {\n var _then, oType = typeof o;\n\n if (o !== null && (oType === 'object' || oType === 'function')) {\n _then = o.then;\n }\n return typeof _then === 'function' ? _then : false;\n}\n\nfunction notify() {\n for (var i=0; i 0) {\n schedule(notify,self);\n }\n }\n }\n catch (err) {\n reject.call(new MakeDefWrapper(self),err);\n }\n}\n\nfunction reject(msg) {\n var self = this;\n\n // already triggered?\n if (self.triggered) { return; }\n\n self.triggered = true;\n\n // unwrap\n if (self.def) {\n self = self.def;\n }\n\n self.msg = msg;\n self.state = 2;\n if (self.chain.length > 0) {\n schedule(notify,self);\n }\n}\n\nfunction iteratePromises(Constructor,arr,resolver,rejecter) {\n for (var idx=0; idx 0) {\n ret[k] = v;\n }\n });\n return ret;\n};\n\n/*\n * this function returns a copy of object after truncating it. If\n * passed an Array or Object it will iterate through obj and\n * truncate all the values recursively.\n */\n_.truncate = function(obj, length) {\n var ret;\n\n if (typeof(obj) === 'string') {\n ret = obj.slice(0, length);\n } else if (_.isArray(obj)) {\n ret = [];\n _.each(obj, function(val) {\n ret.push(_.truncate(val, length));\n });\n } else if (_.isObject(obj)) {\n ret = {};\n _.each(obj, function(val, key) {\n ret[key] = _.truncate(val, length);\n });\n } else {\n ret = obj;\n }\n\n return ret;\n};\n\n_.JSONEncode = (function() {\n return function(mixed_val) {\n var value = mixed_val;\n var quote = function(string) {\n var escapable = /[\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g; // eslint-disable-line no-control-regex\n var meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"': '\\\\\"',\n '\\\\': '\\\\\\\\'\n };\n\n escapable.lastIndex = 0;\n return escapable.test(string) ?\n '\"' + string.replace(escapable, function(a) {\n var c = meta[a];\n return typeof c === 'string' ? c :\n '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' :\n '\"' + string + '\"';\n };\n\n var str = function(key, holder) {\n var gap = '';\n var indent = ' ';\n var i = 0; // The loop counter.\n var k = ''; // The member key.\n var v = ''; // The member value.\n var length = 0;\n var mind = gap;\n var partial = [];\n var value = holder[key];\n\n // If the value has a toJSON method, call it to obtain a replacement value.\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n // What happens next depends on the value's type.\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n // JSON numbers must be finite. Encode non-finite numbers as null.\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n // If the value is a boolean or null, convert it to a string. Note:\n // typeof null does not produce 'null'. The case is included here in\n // the remote chance that this gets fixed someday.\n\n return String(value);\n\n case 'object':\n // If the type is 'object', we might be dealing with an object or an array or\n // null.\n // Due to a specification blunder in ECMAScript, typeof null is 'object',\n // so watch out for that case.\n if (!value) {\n return 'null';\n }\n\n // Make an array to hold the partial results of stringifying this object value.\n gap += indent;\n partial = [];\n\n // Is the value an array?\n if (toString.apply(value) === '[object Array]') {\n // The value is an array. Stringify every element. Use null as a placeholder\n // for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n // Join all of the elements together, separated with commas, and wrap them in\n // brackets.\n v = partial.length === 0 ? '[]' :\n gap ? '[\\n' + gap +\n partial.join(',\\n' + gap) + '\\n' +\n mind + ']' :\n '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n // Iterate through all of the keys in the object.\n for (k in value) {\n if (hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n\n // Join all of the member texts together, separated with commas,\n // and wrap them in braces.\n v = partial.length === 0 ? '{}' :\n gap ? '{' + partial.join(',') + '' +\n mind + '}' : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n };\n\n // Make a fake root object containing our value under the key of ''.\n // Return the result of stringifying the value.\n return str('', {\n '': value\n });\n };\n})();\n\n/**\n * From https://github.com/douglascrockford/JSON-js/blob/master/json_parse.js\n * Slightly modified to throw a real Error rather than a POJO\n */\n_.JSONDecode = (function() {\n var at, // The index of the current character\n ch, // The current character\n escapee = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t'\n },\n text,\n error = function(m) {\n var e = new SyntaxError(m);\n e.at = at;\n e.text = text;\n throw e;\n },\n next = function(c) {\n // If a c parameter is provided, verify that it matches the current character.\n if (c && c !== ch) {\n error('Expected \\'' + c + '\\' instead of \\'' + ch + '\\'');\n }\n // Get the next character. When there are no more characters,\n // return the empty string.\n ch = text.charAt(at);\n at += 1;\n return ch;\n },\n number = function() {\n // Parse a number value.\n var number,\n string = '';\n\n if (ch === '-') {\n string = '-';\n next('-');\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n if (ch === '.') {\n string += '.';\n while (next() && ch >= '0' && ch <= '9') {\n string += ch;\n }\n }\n if (ch === 'e' || ch === 'E') {\n string += ch;\n next();\n if (ch === '-' || ch === '+') {\n string += ch;\n next();\n }\n while (ch >= '0' && ch <= '9') {\n string += ch;\n next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n error('Bad number');\n } else {\n return number;\n }\n },\n\n string = function() {\n // Parse a string value.\n var hex,\n i,\n string = '',\n uffff;\n // When parsing for string values, we must look for \" and \\ characters.\n if (ch === '\"') {\n while (next()) {\n if (ch === '\"') {\n next();\n return string;\n }\n if (ch === '\\\\') {\n next();\n if (ch === 'u') {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === 'string') {\n string += escapee[ch];\n } else {\n break;\n }\n } else {\n string += ch;\n }\n }\n }\n error('Bad string');\n },\n white = function() {\n // Skip whitespace.\n while (ch && ch <= ' ') {\n next();\n }\n },\n word = function() {\n // true, false, or null.\n switch (ch) {\n case 't':\n next('t');\n next('r');\n next('u');\n next('e');\n return true;\n case 'f':\n next('f');\n next('a');\n next('l');\n next('s');\n next('e');\n return false;\n case 'n':\n next('n');\n next('u');\n next('l');\n next('l');\n return null;\n }\n error('Unexpected \"' + ch + '\"');\n },\n value, // Placeholder for the value function.\n array = function() {\n // Parse an array value.\n var array = [];\n\n if (ch === '[') {\n next('[');\n white();\n if (ch === ']') {\n next(']');\n return array; // empty array\n }\n while (ch) {\n array.push(value());\n white();\n if (ch === ']') {\n next(']');\n return array;\n }\n next(',');\n white();\n }\n }\n error('Bad array');\n },\n object = function() {\n // Parse an object value.\n var key,\n object = {};\n\n if (ch === '{') {\n next('{');\n white();\n if (ch === '}') {\n next('}');\n return object; // empty object\n }\n while (ch) {\n key = string();\n white();\n next(':');\n if (Object.hasOwnProperty.call(object, key)) {\n error('Duplicate key \"' + key + '\"');\n }\n object[key] = value();\n white();\n if (ch === '}') {\n next('}');\n return object;\n }\n next(',');\n white();\n }\n }\n error('Bad object');\n };\n\n value = function() {\n // Parse a JSON value. It could be an object, an array, a string,\n // a number, or a word.\n white();\n switch (ch) {\n case '{':\n return object();\n case '[':\n return array();\n case '\"':\n return string();\n case '-':\n return number();\n default:\n return ch >= '0' && ch <= '9' ? number() : word();\n }\n };\n\n // Return the json_parse function. It will have access to all of the\n // above functions and variables.\n return function(source) {\n var result;\n\n text = source;\n at = 0;\n ch = ' ';\n result = value();\n white();\n if (ch) {\n error('Syntax error');\n }\n\n return result;\n };\n})();\n\n_.base64Encode = function(data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,\n ac = 0,\n enc = '',\n tmp_arr = [];\n\n if (!data) {\n return data;\n }\n\n data = _.utf8Encode(data);\n\n do { // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmp_arr.join('');\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '==';\n break;\n case 2:\n enc = enc.slice(0, -1) + '=';\n break;\n }\n\n return enc;\n};\n\n_.utf8Encode = function(string) {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n\n var utftext = '',\n start,\n end;\n var stringl = 0,\n n;\n\n start = end = 0;\n stringl = string.length;\n\n for (n = 0; n < stringl; n++) {\n var c1 = string.charCodeAt(n);\n var enc = null;\n\n if (c1 < 128) {\n end++;\n } else if ((c1 > 127) && (c1 < 2048)) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);\n }\n if (enc !== null) {\n if (end > start) {\n utftext += string.substring(start, end);\n }\n utftext += enc;\n start = end = n + 1;\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length);\n }\n\n return utftext;\n};\n\n_.UUID = (function() {\n\n // Time-based entropy\n var T = function() {\n var time = 1 * new Date(); // cross-browser version of Date.now()\n var ticks;\n if (win.performance && win.performance.now) {\n ticks = win.performance.now();\n } else {\n // fall back to busy loop\n ticks = 0;\n\n // this while loop figures how many browser ticks go by\n // before 1*new Date() returns a new number, ie the amount\n // of ticks that go by per millisecond\n while (time == 1 * new Date()) {\n ticks++;\n }\n }\n return time.toString(16) + Math.floor(ticks).toString(16);\n };\n\n // Math.Random entropy\n var R = function() {\n return Math.random().toString(16).replace('.', '');\n };\n\n // User agent entropy\n // This function takes the user agent string, and then xors\n // together each sequence of 8 bytes. This produces a final\n // sequence of 8 bytes which it returns as hex.\n var UA = function() {\n var ua = userAgent,\n i, ch, buffer = [],\n ret = 0;\n\n function xor(result, byte_array) {\n var j, tmp = 0;\n for (j = 0; j < byte_array.length; j++) {\n tmp |= (buffer[j] << j * 8);\n }\n return result ^ tmp;\n }\n\n for (i = 0; i < ua.length; i++) {\n ch = ua.charCodeAt(i);\n buffer.unshift(ch & 0xFF);\n if (buffer.length >= 4) {\n ret = xor(ret, buffer);\n buffer = [];\n }\n }\n\n if (buffer.length > 0) {\n ret = xor(ret, buffer);\n }\n\n return ret.toString(16);\n };\n\n return function() {\n var se = (screen.height * screen.width).toString(16);\n return (T() + '-' + R() + '-' + UA() + '-' + se + '-' + T());\n };\n})();\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false tracking data\nvar BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'ahrefssiteaudit',\n 'amazonbot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'chrome-lighthouse',\n 'facebookexternal',\n 'petalbot',\n 'pinterest',\n 'screaming frog',\n 'yahoo! slurp',\n 'yandex',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google'\n];\n_.isBlockedUA = function(ua) {\n var i;\n ua = ua.toLowerCase();\n for (i = 0; i < BLOCKED_UA_STRS.length; i++) {\n if (ua.indexOf(BLOCKED_UA_STRS[i]) !== -1) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {Object=} formdata\n * @param {string=} arg_separator\n */\n_.HTTPBuildQuery = function(formdata, arg_separator) {\n var use_val, use_key, tmp_arr = [];\n\n if (_.isUndefined(arg_separator)) {\n arg_separator = '&';\n }\n\n _.each(formdata, function(val, key) {\n use_val = encodeURIComponent(val.toString());\n use_key = encodeURIComponent(key);\n tmp_arr[tmp_arr.length] = use_key + '=' + use_val;\n });\n\n return tmp_arr.join(arg_separator);\n};\n\n_.getQueryParam = function(url, param) {\n // Expects a raw URL\n\n param = param.replace(/[[]/g, '\\\\[').replace(/[\\]]/g, '\\\\]');\n var regexS = '[\\\\?&]' + param + '=([^&#]*)',\n regex = new RegExp(regexS),\n results = regex.exec(url);\n if (results === null || (results && typeof(results[1]) !== 'string' && results[1].length)) {\n return '';\n } else {\n var result = results[1];\n try {\n result = decodeURIComponent(result);\n } catch(err) {\n console$1.error('Skipping decoding for malformed query param: ' + result);\n }\n return result.replace(/\\+/g, ' ');\n }\n};\n\n\n// _.cookie\n// Methods partially borrowed from quirksmode.org/js/cookies.html\n_.cookie = {\n get: function(name) {\n var nameEQ = name + '=';\n var ca = document$1.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n }\n return null;\n },\n\n parse: function(name) {\n var cookie;\n try {\n cookie = _.JSONDecode(_.cookie.get(name)) || {};\n } catch (err) {\n // noop\n }\n return cookie;\n },\n\n set_seconds: function(name, value, seconds, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '',\n expires = '',\n secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (seconds) {\n var date = new Date();\n date.setTime(date.getTime() + (seconds * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n document$1.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n },\n\n set: function(name, value, days, is_cross_subdomain, is_secure, is_cross_site, domain_override) {\n var cdomain = '', expires = '', secure = '';\n\n if (domain_override) {\n cdomain = '; domain=' + domain_override;\n } else if (is_cross_subdomain) {\n var domain = extract_domain(document$1.location.hostname);\n cdomain = domain ? '; domain=.' + domain : '';\n }\n\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = '; expires=' + date.toGMTString();\n }\n\n if (is_cross_site) {\n is_secure = true;\n secure = '; SameSite=None';\n }\n if (is_secure) {\n secure += '; secure';\n }\n\n var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure;\n document$1.cookie = new_cookie_val;\n return new_cookie_val;\n },\n\n remove: function(name, is_cross_subdomain, domain_override) {\n _.cookie.set(name, '', -1, is_cross_subdomain, false, false, domain_override);\n }\n};\n\nvar _localStorageSupported = null;\nvar localStorageSupported = function(storage, forceCheck) {\n if (_localStorageSupported !== null && !forceCheck) {\n return _localStorageSupported;\n }\n\n var supported = true;\n try {\n storage = storage || win.localStorage;\n var key = '__mplss_' + cheap_guid(8),\n val = 'xyz';\n storage.setItem(key, val);\n if (storage.getItem(key) !== val) {\n supported = false;\n }\n storage.removeItem(key);\n } catch (err) {\n supported = false;\n }\n\n _localStorageSupported = supported;\n return supported;\n};\n\n// _.localStorage\n_.localStorage = {\n is_supported: function(force_check) {\n var supported = localStorageSupported(null, force_check);\n if (!supported) {\n console$1.error('localStorage unsupported; falling back to cookie store');\n }\n return supported;\n },\n\n error: function(msg) {\n console$1.error('localStorage error: ' + msg);\n },\n\n get: function(name) {\n try {\n return win.localStorage.getItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n return null;\n },\n\n parse: function(name) {\n try {\n return _.JSONDecode(_.localStorage.get(name)) || {};\n } catch (err) {\n // noop\n }\n return null;\n },\n\n set: function(name, value) {\n try {\n win.localStorage.setItem(name, value);\n } catch (err) {\n _.localStorage.error(err);\n }\n },\n\n remove: function(name) {\n try {\n win.localStorage.removeItem(name);\n } catch (err) {\n _.localStorage.error(err);\n }\n }\n};\n\n_.register_event = (function() {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from Mixpanel\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n var register_event = function(element, type, handler, oldSchool, useCapture) {\n if (!element) {\n console$1.error('No valid element provided to register_event');\n return;\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture);\n } else {\n var ontype = 'on' + type;\n var old_handler = element[ontype]; // can be undefined\n element[ontype] = makeHandler(element, handler, old_handler);\n }\n };\n\n function makeHandler(element, new_handler, old_handlers) {\n var handler = function(event) {\n event = event || fixEvent(win.event);\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined;\n }\n\n var ret = true;\n var old_result, new_result;\n\n if (_.isFunction(old_handlers)) {\n old_result = old_handlers(event);\n }\n new_result = new_handler.call(element, event);\n\n if ((false === old_result) || (false === new_result)) {\n ret = false;\n }\n\n return ret;\n };\n\n return handler;\n }\n\n function fixEvent(event) {\n if (event) {\n event.preventDefault = fixEvent.preventDefault;\n event.stopPropagation = fixEvent.stopPropagation;\n }\n return event;\n }\n fixEvent.preventDefault = function() {\n this.returnValue = false;\n };\n fixEvent.stopPropagation = function() {\n this.cancelBubble = true;\n };\n\n return register_event;\n})();\n\n\nvar TOKEN_MATCH_REGEX = new RegExp('^(\\\\w*)\\\\[(\\\\w+)([=~\\\\|\\\\^\\\\$\\\\*]?)=?\"?([^\\\\]\"]*)\"?\\\\]$');\n\n_.dom_query = (function() {\n /* document.getElementsBySelector(selector)\n - returns an array of element objects from the current document\n matching the CSS selector. Selectors can contain element names,\n class names and ids and can be nested. For example:\n\n elements = document.getElementsBySelector('div#main p a.external')\n\n Will return an array of all 'a' elements with 'external' in their\n class attribute that are contained inside 'p' elements that are\n contained inside the 'div' element which has id=\"main\"\n\n New in version 0.4: Support for CSS2 and CSS3 attribute selectors:\n See http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\n Version 0.4 - Simon Willison, March 25th 2003\n -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows\n -- Opera 7 fails\n\n Version 0.5 - Carl Sverre, Jan 7th 2013\n -- Now uses jQuery-esque `hasClass` for testing class name\n equality. This fixes a bug related to '-' characters being\n considered not part of a 'word' in regex.\n */\n\n function getAllChildren(e) {\n // Returns all children of element. Workaround required for IE5/Windows. Ugh.\n return e.all ? e.all : e.getElementsByTagName('*');\n }\n\n var bad_whitespace = /[\\t\\r\\n]/g;\n\n function hasClass(elem, selector) {\n var className = ' ' + selector + ' ';\n return ((' ' + elem.className + ' ').replace(bad_whitespace, ' ').indexOf(className) >= 0);\n }\n\n function getElementsBySelector(selector) {\n // Attempt to fail gracefully in lesser browsers\n if (!document$1.getElementsByTagName) {\n return [];\n }\n // Split selector in to tokens\n var tokens = selector.split(' ');\n var token, bits, tagName, found, foundCount, i, j, k, elements, currentContextIndex;\n var currentContext = [document$1];\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i].replace(/^\\s+/, '').replace(/\\s+$/, '');\n if (token.indexOf('#') > -1) {\n // Token is an ID selector\n bits = token.split('#');\n tagName = bits[0];\n var id = bits[1];\n var element = document$1.getElementById(id);\n if (!element || (tagName && element.nodeName.toLowerCase() != tagName)) {\n // element not found or tag with that ID not found, return false\n return [];\n }\n // Set currentContext to contain just this element\n currentContext = [element];\n continue; // Skip to next token\n }\n if (token.indexOf('.') > -1) {\n // Token contains a class selector\n bits = token.split('.');\n tagName = bits[0];\n var className = bits[1];\n if (!tagName) {\n tagName = '*';\n }\n // Get elements matching tag, filter them for class selector\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (found[j].className &&\n _.isString(found[j].className) && // some SVG elements have classNames which are not strings\n hasClass(found[j], className)\n ) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n continue; // Skip to next token\n }\n // Code to deal with attribute selectors\n var token_match = token.match(TOKEN_MATCH_REGEX);\n if (token_match) {\n tagName = token_match[1];\n var attrName = token_match[2];\n var attrOperator = token_match[3];\n var attrValue = token_match[4];\n if (!tagName) {\n tagName = '*';\n }\n // Grab all of the tagName elements within current context\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n if (tagName == '*') {\n elements = getAllChildren(currentContext[j]);\n } else {\n elements = currentContext[j].getElementsByTagName(tagName);\n }\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = [];\n currentContextIndex = 0;\n var checkFunction; // This function will be used to filter the elements\n switch (attrOperator) {\n case '=': // Equality\n checkFunction = function(e) {\n return (e.getAttribute(attrName) == attrValue);\n };\n break;\n case '~': // Match one of space seperated words\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('\\\\b' + attrValue + '\\\\b')));\n };\n break;\n case '|': // Match start with value followed by optional hyphen\n checkFunction = function(e) {\n return (e.getAttribute(attrName).match(new RegExp('^' + attrValue + '-?')));\n };\n break;\n case '^': // Match starts with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) === 0);\n };\n break;\n case '$': // Match ends with value - fails with \"Warning\" in Opera 7\n checkFunction = function(e) {\n return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length);\n };\n break;\n case '*': // Match ends with value\n checkFunction = function(e) {\n return (e.getAttribute(attrName).indexOf(attrValue) > -1);\n };\n break;\n default:\n // Just test for existence of attribute\n checkFunction = function(e) {\n return e.getAttribute(attrName);\n };\n }\n currentContext = [];\n currentContextIndex = 0;\n for (j = 0; j < found.length; j++) {\n if (checkFunction(found[j])) {\n currentContext[currentContextIndex++] = found[j];\n }\n }\n // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue);\n continue; // Skip to next token\n }\n // If we get here, token is JUST an element (not a class or ID selector)\n tagName = token;\n found = [];\n foundCount = 0;\n for (j = 0; j < currentContext.length; j++) {\n elements = currentContext[j].getElementsByTagName(tagName);\n for (k = 0; k < elements.length; k++) {\n found[foundCount++] = elements[k];\n }\n }\n currentContext = found;\n }\n return currentContext;\n }\n\n return function(query) {\n if (_.isElement(query)) {\n return [query];\n } else if (_.isObject(query) && !_.isUndefined(query.length)) {\n return query;\n } else {\n return getElementsBySelector.call(this, query);\n }\n };\n})();\n\nvar CAMPAIGN_KEYWORDS = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term', 'utm_id', 'utm_source_platform','utm_campaign_id', 'utm_creative_format', 'utm_marketing_tactic'];\nvar CLICK_IDS = ['dclid', 'fbclid', 'gclid', 'ko_click_id', 'li_fat_id', 'msclkid', 'sccid', 'ttclid', 'twclid', 'wbraid'];\n\n_.info = {\n campaignParams: function(default_value) {\n var kw = '',\n params = {};\n _.each(CAMPAIGN_KEYWORDS, function(kwkey) {\n kw = _.getQueryParam(document$1.URL, kwkey);\n if (kw.length) {\n params[kwkey] = kw;\n } else if (default_value !== undefined) {\n params[kwkey] = default_value;\n }\n });\n\n return params;\n },\n\n clickParams: function() {\n var id = '',\n params = {};\n _.each(CLICK_IDS, function(idkey) {\n id = _.getQueryParam(document$1.URL, idkey);\n if (id.length) {\n params[idkey] = id;\n }\n });\n\n return params;\n },\n\n marketingParams: function() {\n return _.extend(_.info.campaignParams(), _.info.clickParams());\n },\n\n searchEngine: function(referrer) {\n if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google';\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing';\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo';\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo';\n } else {\n return null;\n }\n },\n\n searchInfo: function(referrer) {\n var search = _.info.searchEngine(referrer),\n param = (search != 'yahoo') ? 'q' : 'p',\n ret = {};\n\n if (search !== null) {\n ret['$search_engine'] = search;\n\n var keyword = _.getQueryParam(referrer, param);\n if (keyword.length) {\n ret['mp_keyword'] = keyword;\n }\n }\n\n return ret;\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function(user_agent, vendor, opera) {\n vendor = vendor || ''; // vendor is undefined for at least IE9\n if (opera || _.includes(user_agent, ' OPR/')) {\n if (_.includes(user_agent, 'Mini')) {\n return 'Opera Mini';\n }\n return 'Opera';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (_.includes(user_agent, 'IEMobile') || _.includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile';\n } else if (_.includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet';\n } else if (_.includes(user_agent, 'Edge') || _.includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge';\n } else if (_.includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile';\n } else if (_.includes(user_agent, 'Chrome')) {\n return 'Chrome';\n } else if (_.includes(user_agent, 'CriOS')) {\n return 'Chrome iOS';\n } else if (_.includes(user_agent, 'UCWEB') || _.includes(user_agent, 'UCBrowser')) {\n return 'UC Browser';\n } else if (_.includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS';\n } else if (_.includes(vendor, 'Apple')) {\n if (_.includes(user_agent, 'Mobile')) {\n return 'Mobile Safari';\n }\n return 'Safari';\n } else if (_.includes(user_agent, 'Android')) {\n return 'Android Mobile';\n } else if (_.includes(user_agent, 'Konqueror')) {\n return 'Konqueror';\n } else if (_.includes(user_agent, 'Firefox')) {\n return 'Firefox';\n } else if (_.includes(user_agent, 'MSIE') || _.includes(user_agent, 'Trident/')) {\n return 'Internet Explorer';\n } else if (_.includes(user_agent, 'Gecko')) {\n return 'Mozilla';\n } else {\n return '';\n }\n },\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n */\n browserVersion: function(userAgent, vendor, opera) {\n var browser = _.info.browser(userAgent, vendor, opera);\n var versionRegexs = {\n 'Internet Explorer Mobile': /rv:(\\d+(\\.\\d+)?)/,\n 'Microsoft Edge': /Edge?\\/(\\d+(\\.\\d+)?)/,\n 'Chrome': /Chrome\\/(\\d+(\\.\\d+)?)/,\n 'Chrome iOS': /CriOS\\/(\\d+(\\.\\d+)?)/,\n 'UC Browser' : /(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/,\n 'Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Mobile Safari': /Version\\/(\\d+(\\.\\d+)?)/,\n 'Opera': /(Opera|OPR)\\/(\\d+(\\.\\d+)?)/,\n 'Firefox': /Firefox\\/(\\d+(\\.\\d+)?)/,\n 'Firefox iOS': /FxiOS\\/(\\d+(\\.\\d+)?)/,\n 'Konqueror': /Konqueror:(\\d+(\\.\\d+)?)/,\n 'BlackBerry': /BlackBerry (\\d+(\\.\\d+)?)/,\n 'Android Mobile': /android\\s(\\d+(\\.\\d+)?)/,\n 'Samsung Internet': /SamsungBrowser\\/(\\d+(\\.\\d+)?)/,\n 'Internet Explorer': /(rv:|MSIE )(\\d+(\\.\\d+)?)/,\n 'Mozilla': /rv:(\\d+(\\.\\d+)?)/\n };\n var regex = versionRegexs[browser];\n if (regex === undefined) {\n return null;\n }\n var matches = userAgent.match(regex);\n if (!matches) {\n return null;\n }\n return parseFloat(matches[matches.length - 2]);\n },\n\n os: function() {\n var a = userAgent;\n if (/Windows/i.test(a)) {\n if (/Phone/.test(a) || /WPDesktop/.test(a)) {\n return 'Windows Phone';\n }\n return 'Windows';\n } else if (/(iPhone|iPad|iPod)/.test(a)) {\n return 'iOS';\n } else if (/Android/.test(a)) {\n return 'Android';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(a)) {\n return 'BlackBerry';\n } else if (/Mac/i.test(a)) {\n return 'Mac OS X';\n } else if (/Linux/.test(a)) {\n return 'Linux';\n } else if (/CrOS/.test(a)) {\n return 'Chrome OS';\n } else {\n return '';\n }\n },\n\n device: function(user_agent) {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone';\n } else if (/iPad/.test(user_agent)) {\n return 'iPad';\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch';\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone';\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry';\n } else if (/Android/.test(user_agent)) {\n return 'Android';\n } else {\n return '';\n }\n },\n\n referringDomain: function(referrer) {\n var split = referrer.split('/');\n if (split.length >= 3) {\n return split[2];\n }\n return '';\n },\n\n currentUrl: function() {\n return win.location.href;\n },\n\n properties: function(extra_props) {\n if (typeof extra_props !== 'object') {\n extra_props = {};\n }\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera),\n '$referrer': document$1.referrer,\n '$referring_domain': _.info.referringDomain(document$1.referrer),\n '$device': _.info.device(userAgent)\n }), {\n '$current_url': _.info.currentUrl(),\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera),\n '$screen_height': screen.height,\n '$screen_width': screen.width,\n 'mp_lib': 'web',\n '$lib_version': Config.LIB_VERSION,\n '$insert_id': cheap_guid(),\n 'time': _.timestamp() / 1000 // epoch time in seconds\n }, _.strip_empty_properties(extra_props));\n },\n\n people_properties: function() {\n return _.extend(_.strip_empty_properties({\n '$os': _.info.os(),\n '$browser': _.info.browser(userAgent, navigator.vendor, windowOpera)\n }), {\n '$browser_version': _.info.browserVersion(userAgent, navigator.vendor, windowOpera)\n });\n },\n\n mpPageViewProperties: function() {\n return _.strip_empty_properties({\n 'current_page_title': document$1.title,\n 'current_domain': win.location.hostname,\n 'current_url_path': win.location.pathname,\n 'current_url_protocol': win.location.protocol,\n 'current_url_search': win.location.search\n });\n }\n};\n\nvar cheap_guid = function(maxlen) {\n var guid = Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10);\n return maxlen ? guid.substring(0, maxlen) : guid;\n};\n\n// naive way to extract domain name (example.com) from full hostname (my.sub.example.com)\nvar SIMPLE_DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]*\\.[a-z]+$/i;\n// this next one attempts to account for some ccSLDs, e.g. extracting oxford.ac.uk from www.oxford.ac.uk\nvar DOMAIN_MATCH_REGEX = /[a-z0-9][a-z0-9-]+\\.[a-z.]{2,6}$/i;\n/**\n * Attempts to extract main domain name from full hostname, using a few blunt heuristics. For\n * common TLDs like .com/.org that always have a simple SLD.TLD structure (example.com), we\n * simply extract the last two .-separated parts of the hostname (SIMPLE_DOMAIN_MATCH_REGEX).\n * For others, we attempt to account for short ccSLD+TLD combos (.ac.uk) with the legacy\n * DOMAIN_MATCH_REGEX (kept to maintain backwards compatibility with existing Mixpanel\n * integrations). The only _reliable_ way to extract domain from hostname is with an up-to-date\n * list like at https://publicsuffix.org/ so for cases that this helper fails at, the SDK\n * offers the 'cookie_domain' config option to set it explicitly.\n * @example\n * extract_domain('my.sub.example.com')\n * // 'example.com'\n */\nvar extract_domain = function(hostname) {\n var domain_regex = DOMAIN_MATCH_REGEX;\n var parts = hostname.split('.');\n var tld = parts[parts.length - 1];\n if (tld.length > 4 || tld === 'com' || tld === 'org') {\n domain_regex = SIMPLE_DOMAIN_MATCH_REGEX;\n }\n var matches = hostname.match(domain_regex);\n return matches ? matches[0] : '';\n};\n\n/**\n * Check whether we have network connection. default to true for browsers that don't support navigator.onLine (IE)\n * @returns {boolean}\n */\nvar isOnline = function() {\n var onLine = win.navigator['onLine'];\n return _.isUndefined(onLine) || onLine;\n};\n\nvar JSONStringify = null, JSONParse = null;\nif (typeof JSON !== 'undefined') {\n JSONStringify = JSON.stringify;\n JSONParse = JSON.parse;\n}\nJSONStringify = JSONStringify || _.JSONEncode;\nJSONParse = JSONParse || _.JSONDecode;\n\n// EXPORTS (for closure compiler)\n_['toArray'] = _.toArray;\n_['isObject'] = _.isObject;\n_['JSONEncode'] = _.JSONEncode;\n_['JSONDecode'] = _.JSONDecode;\n_['isBlockedUA'] = _.isBlockedUA;\n_['isEmptyObject'] = _.isEmptyObject;\n_['info'] = _.info;\n_['info']['device'] = _.info.device;\n_['info']['browser'] = _.info.browser;\n_['info']['browserVersion'] = _.info.browserVersion;\n_['info']['properties'] = _.info.properties;\n_['NPO'] = NpoPromise;\n\n/**\n * GDPR utils\n *\n * The General Data Protection Regulation (GDPR) is a regulation in EU law on data protection\n * and privacy for all individuals within the European Union. It addresses the export of personal\n * data outside the EU. The GDPR aims primarily to give control back to citizens and residents\n * over their personal data and to simplify the regulatory environment for international business\n * by unifying the regulation within the EU.\n *\n * This set of utilities is intended to enable opt in/out functionality in the Mixpanel JS SDK.\n * These functions are used internally by the SDK and are not intended to be publicly exposed.\n */\n\n/**\n * A function used to track a Mixpanel event (e.g. MixpanelLib.track)\n * @callback trackFunction\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n */\n\n/** Public **/\n\nvar GDPR_DEFAULT_PERSISTENCE_PREFIX = '__mp_opt_in_out_';\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction optIn(token, options) {\n _optInOut(true, token, options);\n}\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-out cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-out cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-out cookie is set as secure or not\n */\nfunction optOut(token, options) {\n _optInOut(false, token, options);\n}\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} whether the user has opted in to the given opt type\n */\nfunction hasOptedIn(token, options) {\n return _getStorageValue(token, options) === '1';\n}\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the user has opted out of the given opt type\n */\nfunction hasOptedOut(token, options) {\n if (_hasDoNotTrackFlagOn(options)) {\n console$1.warn('This browser has \"Do Not Track\" enabled. This will prevent the Mixpanel SDK from sending any data. To ignore the \"Do Not Track\" browser setting, initialize the Mixpanel instance with the config \"ignore_dnt: true\"');\n return true;\n }\n var optedOut = _getStorageValue(token, options) === '0';\n if (optedOut) {\n console$1.warn('You are opted out of Mixpanel tracking. This will prevent the Mixpanel SDK from sending any data.');\n }\n return optedOut;\n}\n\n/**\n * Wrap a MixpanelLib method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelLib(method) {\n return _addOptOutCheck(method, function(name) {\n return this.get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelPeople method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelPeople(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Wrap a MixpanelGroup method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction addOptOutCheckMixpanelGroup(method) {\n return _addOptOutCheck(method, function(name) {\n return this._get_config(name);\n });\n}\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for the given token\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistenceType] Persistence mechanism used - cookie or localStorage\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction clearOptInOut(token, options) {\n options = options || {};\n _getStorage(options).remove(\n _getStorageKey(token, options), !!options.crossSubdomainCookie, options.cookieDomain\n );\n}\n\n/** Private **/\n\n/**\n * Get storage util\n * @param {Object} [options]\n * @param {string} [options.persistenceType]\n * @returns {object} either _.cookie or _.localstorage\n */\nfunction _getStorage(options) {\n options = options || {};\n return options.persistenceType === 'localStorage' ? _.localStorage : _.cookie;\n}\n\n/**\n * Get the name of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the name of the cookie for the given opt type\n */\nfunction _getStorageKey(token, options) {\n options = options || {};\n return (options.persistencePrefix || GDPR_DEFAULT_PERSISTENCE_PREFIX) + token;\n}\n\n/**\n * Get the value of the cookie that is used for the given opt type (tracking, cookie, etc.)\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @returns {string} the value of the cookie for the given opt type\n */\nfunction _getStorageValue(token, options) {\n return _getStorage(options).get(_getStorageKey(token, options));\n}\n\n/**\n * Check whether the user has set the DNT/doNotTrack setting to true in their browser\n * @param {Object} [options]\n * @param {string} [options.window] - alternate window object to check; used to force various DNT settings in browser tests\n * @param {boolean} [options.ignoreDnt] - flag to ignore browser DNT settings and always return false\n * @returns {boolean} whether the DNT setting is true\n */\nfunction _hasDoNotTrackFlagOn(options) {\n if (options && options.ignoreDnt) {\n return false;\n }\n var win$1 = (options && options.window) || win;\n var nav = win$1['navigator'] || {};\n var hasDntOn = false;\n\n _.each([\n nav['doNotTrack'], // standard\n nav['msDoNotTrack'],\n win$1['doNotTrack']\n ], function(dntValue) {\n if (_.includes([true, 1, '1', 'yes'], dntValue)) {\n hasDntOn = true;\n }\n });\n\n return hasDntOn;\n}\n\n/**\n * Set cookie/localstorage for the user indicating that they are opted in or out for the given opt type\n * @param {boolean} optValue - whether to opt the user in or out for the given opt type\n * @param {string} token - Mixpanel project tracking token\n * @param {Object} [options]\n * @param {trackFunction} [options.track] - function used for tracking a Mixpanel event to record the opt-in action\n * @param {string} [options.trackEventName] - event name to be used for tracking the opt-in action\n * @param {Object} [options.trackProperties] - set of properties to be tracked along with the opt-in action\n * @param {string} [options.persistencePrefix=__mp_opt_in_out] - custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookieExpiration] - number of days until the opt-in cookie expires\n * @param {string} [options.cookieDomain] - custom cookie domain\n * @param {boolean} [options.crossSiteCookie] - whether the opt-in cookie is set as cross-site-enabled\n * @param {boolean} [options.crossSubdomainCookie] - whether the opt-in cookie is set as cross-subdomain or not\n * @param {boolean} [options.secureCookie] - whether the opt-in cookie is set as secure or not\n */\nfunction _optInOut(optValue, token, options) {\n if (!_.isString(token) || !token.length) {\n console$1.error('gdpr.' + (optValue ? 'optIn' : 'optOut') + ' called with an invalid token');\n return;\n }\n\n options = options || {};\n\n _getStorage(options).set(\n _getStorageKey(token, options),\n optValue ? 1 : 0,\n _.isNumber(options.cookieExpiration) ? options.cookieExpiration : null,\n !!options.crossSubdomainCookie,\n !!options.secureCookie,\n !!options.crossSiteCookie,\n options.cookieDomain\n );\n\n if (options.track && optValue) { // only track event if opting in (optValue=true)\n options.track(options.trackEventName || '$opt_in', options.trackProperties, {\n 'send_immediately': true\n });\n }\n}\n\n/**\n * Wrap a method with a check for whether the user is opted out of data tracking and cookies/localstorage for the given token\n * If the user has opted out, return early instead of executing the method.\n * If a callback argument was provided, execute it passing the 0 error code.\n * @param {function} method - wrapped method to be executed if the user has not opted out\n * @param {function} getConfigValue - getter function for the Mixpanel API token and other options to be used with opt-out check\n * @returns {*} the result of executing method OR undefined if the user has opted out\n */\nfunction _addOptOutCheck(method, getConfigValue) {\n return function() {\n var optedOut = false;\n\n try {\n var token = getConfigValue.call(this, 'token');\n var ignoreDnt = getConfigValue.call(this, 'ignore_dnt');\n var persistenceType = getConfigValue.call(this, 'opt_out_tracking_persistence_type');\n var persistencePrefix = getConfigValue.call(this, 'opt_out_tracking_cookie_prefix');\n var win = getConfigValue.call(this, 'window'); // used to override window during browser tests\n\n if (token) { // if there was an issue getting the token, continue method execution as normal\n optedOut = hasOptedOut(token, {\n ignoreDnt: ignoreDnt,\n persistenceType: persistenceType,\n persistencePrefix: persistencePrefix,\n window: win\n });\n }\n } catch(err) {\n console$1.error('Unexpected error when checking tracking opt-out status: ' + err);\n }\n\n if (!optedOut) {\n return method.apply(this, arguments);\n }\n\n var callback = arguments[arguments.length - 1];\n if (typeof(callback) === 'function') {\n callback(0);\n }\n\n return;\n };\n}\n\nvar logger$5 = console_with_prefix('lock');\n\n/**\n * SharedLock: a mutex built on HTML5 localStorage, to ensure that only one browser\n * window/tab at a time will be able to access shared resources.\n *\n * Based on the Alur and Taubenfeld fast lock\n * (http://www.cs.rochester.edu/research/synchronization/pseudocode/fastlock.html)\n * with an added timeout to ensure there will be eventual progress in the event\n * that a window is closed in the middle of the callback.\n *\n * Implementation based on the original version by David Wolever (https://github.com/wolever)\n * at https://gist.github.com/wolever/5fd7573d1ef6166e8f8c4af286a69432.\n *\n * @example\n * const myLock = new SharedLock('some-key');\n * myLock.withLock(function() {\n * console.log('I hold the mutex!');\n * });\n *\n * @constructor\n */\nvar SharedLock = function(key, options) {\n options = options || {};\n\n this.storageKey = key;\n this.storage = options.storage || window.localStorage;\n this.pollIntervalMS = options.pollIntervalMS || 100;\n this.timeoutMS = options.timeoutMS || 2000;\n\n // dependency-inject promise implementation for testing purposes\n this.promiseImpl = options.promiseImpl || PromisePolyfill;\n};\n\n// pass in a specific pid to test contention scenarios; otherwise\n// it is chosen randomly for each acquisition attempt\nSharedLock.prototype.withLock = function(lockedCB, pid) {\n var Promise = this.promiseImpl;\n return new Promise(_.bind(function (resolve, reject) {\n var i = pid || (new Date().getTime() + '|' + Math.random());\n var startTime = new Date().getTime();\n\n var key = this.storageKey;\n var pollIntervalMS = this.pollIntervalMS;\n var timeoutMS = this.timeoutMS;\n var storage = this.storage;\n\n var keyX = key + ':X';\n var keyY = key + ':Y';\n var keyZ = key + ':Z';\n\n var delay = function(cb) {\n if (new Date().getTime() - startTime > timeoutMS) {\n logger$5.error('Timeout waiting for mutex on ' + key + '; clearing lock. [' + i + ']');\n storage.removeItem(keyZ);\n storage.removeItem(keyY);\n loop();\n return;\n }\n setTimeout(function() {\n try {\n cb();\n } catch(err) {\n reject(err);\n }\n }, pollIntervalMS * (Math.random() + 0.1));\n };\n\n var waitFor = function(predicate, cb) {\n if (predicate()) {\n cb();\n } else {\n delay(function() {\n waitFor(predicate, cb);\n });\n }\n };\n\n var getSetY = function() {\n var valY = storage.getItem(keyY);\n if (valY && valY !== i) { // if Y == i then this process already has the lock (useful for test cases)\n return false;\n } else {\n storage.setItem(keyY, i);\n if (storage.getItem(keyY) === i) {\n return true;\n } else {\n if (!localStorageSupported(storage, true)) {\n reject(new Error('localStorage support dropped while acquiring lock'));\n }\n return false;\n }\n }\n };\n\n var loop = function() {\n storage.setItem(keyX, i);\n\n waitFor(getSetY, function() {\n if (storage.getItem(keyX) === i) {\n criticalSection();\n return;\n }\n\n delay(function() {\n if (storage.getItem(keyY) !== i) {\n loop();\n return;\n }\n waitFor(function() {\n return !storage.getItem(keyZ);\n }, criticalSection);\n });\n });\n };\n\n var criticalSection = function() {\n storage.setItem(keyZ, '1');\n var removeLock = function () {\n storage.removeItem(keyZ);\n if (storage.getItem(keyY) === i) {\n storage.removeItem(keyY);\n }\n if (storage.getItem(keyX) === i) {\n storage.removeItem(keyX);\n }\n };\n\n lockedCB()\n .then(function (ret) {\n removeLock();\n resolve(ret);\n })\n .catch(function (err) {\n removeLock();\n reject(err);\n });\n };\n\n try {\n if (localStorageSupported(storage, true)) {\n loop();\n } else {\n throw new Error('localStorage support check failed');\n }\n } catch(err) {\n reject(err);\n }\n }, this));\n};\n\n/**\n * @typedef {import('./wrapper').StorageWrapper}\n */\n\n/**\n * @type {StorageWrapper}\n */\nvar LocalStorageWrapper = function (storageOverride) {\n this.storage = storageOverride || localStorage;\n};\n\nLocalStorageWrapper.prototype.init = function () {\n return PromisePolyfill.resolve();\n};\n\nLocalStorageWrapper.prototype.setItem = function (key, value) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.setItem(key, value);\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nLocalStorageWrapper.prototype.getItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n var item;\n try {\n item = this.storage.getItem(key);\n } catch (e) {\n reject(e);\n }\n resolve(item);\n }, this));\n};\n\nLocalStorageWrapper.prototype.removeItem = function (key) {\n return new PromisePolyfill(_.bind(function (resolve, reject) {\n try {\n this.storage.removeItem(key);\n } catch (e) {\n reject(e);\n }\n resolve();\n }, this));\n};\n\nvar logger$4 = console_with_prefix('batch');\n\n/**\n * RequestQueue: queue for batching API requests with localStorage backup for retries.\n * Maintains an in-memory queue which represents the source of truth for the current\n * page, but also writes all items out to a copy in the browser's localStorage, which\n * can be read on subsequent pageloads and retried. For batchability, all the request\n * items in the queue should be of the same type (events, people updates, group updates)\n * so they can be sent in a single request to the same API endpoint.\n *\n * LocalStorage keying and locking: In order for reloads and subsequent pageloads of\n * the same site to access the same persisted data, they must share the same localStorage\n * key (for instance based on project token and queue type). Therefore access to the\n * localStorage entry is guarded by an asynchronous mutex (SharedLock) to prevent\n * simultaneously open windows/tabs from overwriting each other's data (which would lead\n * to data loss in some situations).\n * @constructor\n */\nvar RequestQueue = function (storageKey, options) {\n options = options || {};\n this.storageKey = storageKey;\n this.usePersistence = options.usePersistence;\n if (this.usePersistence) {\n this.queueStorage = options.queueStorage || new LocalStorageWrapper();\n this.lock = new SharedLock(storageKey, { storage: options.sharedLockStorage || window.localStorage });\n this.queueStorage.init();\n }\n this.reportError = options.errorReporter || _.bind(logger$4.error, logger$4);\n\n this.pid = options.pid || null; // pass pid to test out storage lock contention scenarios\n\n this.memQueue = [];\n this.initialized = false;\n};\n\nRequestQueue.prototype.ensureInit = function () {\n if (this.initialized) {\n return PromisePolyfill.resolve();\n }\n\n return this.queueStorage\n .init()\n .then(_.bind(function () {\n this.initialized = true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error initializing queue persistence. Disabling persistence', err);\n this.initialized = true;\n this.usePersistence = false;\n }, this));\n};\n\n/**\n * Add one item to queues (memory and localStorage). The queued entry includes\n * the given item along with an auto-generated ID and a \"flush-after\" timestamp.\n * It is expected that the item will be sent over the network and dequeued\n * before the flush-after time; if this doesn't happen it is considered orphaned\n * (e.g., the original tab where it was enqueued got closed before it could be\n * sent) and the item can be sent by any tab that finds it in localStorage.\n *\n * The final callback param is called with a param indicating success or\n * failure of the enqueue operation; it is asynchronous because the localStorage\n * lock is asynchronous.\n */\nRequestQueue.prototype.enqueue = function (item, flushInterval) {\n var queueEntry = {\n 'id': cheap_guid(),\n 'flushAfter': new Date().getTime() + flushInterval * 2,\n 'payload': item\n };\n\n if (!this.usePersistence) {\n this.memQueue.push(queueEntry);\n return PromisePolyfill.resolve(true);\n } else {\n\n var enqueueItem = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue.push(queueEntry);\n return this.saveToStorage(storedQueue);\n }, this))\n .then(_.bind(function (succeeded) {\n // only add to in-memory queue when storage succeeds\n if (succeeded) {\n this.memQueue.push(queueEntry);\n }\n return succeeded;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error enqueueing item', err, item);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(enqueueItem, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n }\n};\n\n/**\n * Read out the given number of queue entries. If this.memQueue\n * has fewer than batchSize items, then look for \"orphaned\" items\n * in the persisted queue (items where the 'flushAfter' time has\n * already passed).\n */\nRequestQueue.prototype.fillBatch = function (batchSize) {\n var batch = this.memQueue.slice(0, batchSize);\n if (this.usePersistence && batch.length < batchSize) {\n // don't need lock just to read events; localStorage is thread-safe\n // and the worst that could happen is a duplicate send of some\n // orphaned events, which will be deduplicated on the server side\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n if (storedQueue.length) {\n // item IDs already in batch; don't duplicate out of storage\n var idsInBatch = {}; // poor man's Set\n _.each(batch, function (item) {\n idsInBatch[item['id']] = true;\n });\n\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (new Date().getTime() > item['flushAfter'] && !idsInBatch[item['id']]) {\n item.orphaned = true;\n batch.push(item);\n if (batch.length >= batchSize) {\n break;\n }\n }\n }\n }\n\n return batch;\n }, this));\n } else {\n return PromisePolyfill.resolve(batch);\n }\n};\n\n/**\n * Remove items with matching 'id' from array (immutably)\n * also remove any item without a valid id (e.g., malformed\n * storage entries).\n */\nvar filterOutIDsAndInvalid = function (items, idSet) {\n var filteredItems = [];\n _.each(items, function (item) {\n if (item['id'] && !idSet[item['id']]) {\n filteredItems.push(item);\n }\n });\n return filteredItems;\n};\n\n/**\n * Remove items with matching IDs from both in-memory queue\n * and persisted queue\n */\nRequestQueue.prototype.removeItemsByID = function (ids) {\n var idSet = {}; // poor man's Set\n _.each(ids, function (id) {\n idSet[id] = true;\n });\n\n this.memQueue = filterOutIDsAndInvalid(this.memQueue, idSet);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n var removeFromStorage = _.bind(function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = filterOutIDsAndInvalid(storedQueue, idSet);\n return this.saveToStorage(storedQueue);\n }, this))\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n // an extra check: did storage report success but somehow\n // the items are still there?\n for (var i = 0; i < storedQueue.length; i++) {\n var item = storedQueue[i];\n if (item['id'] && !!idSet[item['id']]) {\n throw new Error('Item not removed from storage');\n }\n }\n return true;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error removing items', err, ids);\n return false;\n }, this));\n }, this);\n\n return this.lock\n .withLock(removeFromStorage, this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n if (!localStorageSupported(this.queueStorage.storage, true)) {\n // Looks like localStorage writes have stopped working sometime after\n // initialization (probably full), and so nobody can acquire locks\n // anymore. Consider it temporarily safe to remove items without the\n // lock, since nobody's writing successfully anyway.\n return removeFromStorage()\n .then(_.bind(function (success) {\n if (!success) {\n // OK, we couldn't even write out the smaller queue. Try clearing it\n // entirely.\n return this.queueStorage.removeItem(this.storageKey).then(function () {\n return success;\n });\n }\n return success;\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error clearing queue', err);\n return false;\n }, this));\n } else {\n return false;\n }\n }, this));\n }\n};\n\n// internal helper for RequestQueue.updatePayloads\nvar updatePayloads = function (existingItems, itemsToUpdate) {\n var newItems = [];\n _.each(existingItems, function (item) {\n var id = item['id'];\n if (id in itemsToUpdate) {\n var newPayload = itemsToUpdate[id];\n if (newPayload !== null) {\n item['payload'] = newPayload;\n newItems.push(item);\n }\n } else {\n // no update\n newItems.push(item);\n }\n });\n return newItems;\n};\n\n/**\n * Update payloads of given items in both in-memory queue and\n * persisted queue. Items set to null are removed from queues.\n */\nRequestQueue.prototype.updatePayloads = function (itemsToUpdate) {\n this.memQueue = updatePayloads(this.memQueue, itemsToUpdate);\n if (!this.usePersistence) {\n return PromisePolyfill.resolve(true);\n } else {\n return this.lock\n .withLock(_.bind(function lockAcquired() {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.readFromStorage();\n }, this))\n .then(_.bind(function (storedQueue) {\n storedQueue = updatePayloads(storedQueue, itemsToUpdate);\n return this.saveToStorage(storedQueue);\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error updating items', itemsToUpdate, err);\n return false;\n }, this));\n }, this), this.pid)\n .catch(_.bind(function (err) {\n this.reportError('Error acquiring storage lock', err);\n return false;\n }, this));\n }\n};\n\n/**\n * Read and parse items array from localStorage entry, handling\n * malformed/missing data if necessary.\n */\nRequestQueue.prototype.readFromStorage = function () {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.getItem(this.storageKey);\n }, this))\n .then(_.bind(function (storageEntry) {\n if (storageEntry) {\n storageEntry = JSONParse(storageEntry);\n if (!_.isArray(storageEntry)) {\n this.reportError('Invalid storage entry:', storageEntry);\n storageEntry = null;\n }\n }\n return storageEntry || [];\n }, this))\n .catch(_.bind(function (err) {\n this.reportError('Error retrieving queue', err);\n return [];\n }, this));\n};\n\n/**\n * Serialize the given items array to localStorage.\n */\nRequestQueue.prototype.saveToStorage = function (queue) {\n try {\n var serialized = JSONStringify(queue);\n } catch (err) {\n this.reportError('Error serializing queue', err);\n return PromisePolyfill.resolve(false);\n }\n\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.setItem(this.storageKey, serialized);\n }, this))\n .then(function () {\n return true;\n })\n .catch(_.bind(function (err) {\n this.reportError('Error saving queue', err);\n return false;\n }, this));\n};\n\n/**\n * Clear out queues (memory and localStorage).\n */\nRequestQueue.prototype.clear = function () {\n this.memQueue = [];\n\n if (this.usePersistence) {\n return this.ensureInit()\n .then(_.bind(function () {\n return this.queueStorage.removeItem(this.storageKey);\n }, this));\n } else {\n return PromisePolyfill.resolve();\n }\n};\n\n// maximum interval between request retries after exponential backoff\nvar MAX_RETRY_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes\n\nvar logger$3 = console_with_prefix('batch');\n\n/**\n * RequestBatcher: manages the queueing, flushing, retry etc of requests of one\n * type (events, people, groups).\n * Uses RequestQueue to manage the backing store.\n * @constructor\n */\nvar RequestBatcher = function(storageKey, options) {\n this.errorReporter = options.errorReporter;\n this.queue = new RequestQueue(storageKey, {\n errorReporter: _.bind(this.reportError, this),\n queueStorage: options.queueStorage,\n sharedLockStorage: options.sharedLockStorage,\n usePersistence: options.usePersistence\n });\n\n this.libConfig = options.libConfig;\n this.sendRequest = options.sendRequestFunc;\n this.beforeSendHook = options.beforeSendHook;\n this.stopAllBatching = options.stopAllBatchingFunc;\n\n // seed variable batch size + flush interval with configured values\n this.batchSize = this.libConfig['batch_size'];\n this.flushInterval = this.libConfig['batch_flush_interval_ms'];\n\n this.stopped = !this.libConfig['batch_autostart'];\n this.consecutiveRemovalFailures = 0;\n\n // extra client-side dedupe\n this.itemIdsSentSuccessfully = {};\n\n // Make the flush occur at the interval specified by flushIntervalMs, default behavior will attempt consecutive flushes\n // as long as the queue is not empty. This is useful for high-frequency events like Session Replay where we might end up\n // in a request loop and get ratelimited by the server.\n this.flushOnlyOnInterval = options.flushOnlyOnInterval || false;\n};\n\n/**\n * Add one item to queue.\n */\nRequestBatcher.prototype.enqueue = function(item) {\n return this.queue.enqueue(item, this.flushInterval);\n};\n\n/**\n * Start flushing batches at the configured time interval. Must call\n * this method upon SDK init in order to send anything over the network.\n */\nRequestBatcher.prototype.start = function() {\n this.stopped = false;\n this.consecutiveRemovalFailures = 0;\n return this.flush();\n};\n\n/**\n * Stop flushing batches. Can be restarted by calling start().\n */\nRequestBatcher.prototype.stop = function() {\n this.stopped = true;\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = null;\n }\n};\n\n/**\n * Clear out queue.\n */\nRequestBatcher.prototype.clear = function() {\n return this.queue.clear();\n};\n\n/**\n * Restore batch size configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetBatchSize = function() {\n this.batchSize = this.libConfig['batch_size'];\n};\n\n/**\n * Restore flush interval time configuration to whatever is set in the main SDK.\n */\nRequestBatcher.prototype.resetFlush = function() {\n this.scheduleFlush(this.libConfig['batch_flush_interval_ms']);\n};\n\n/**\n * Schedule the next flush in the given number of milliseconds.\n */\nRequestBatcher.prototype.scheduleFlush = function(flushMS) {\n this.flushInterval = flushMS;\n if (!this.stopped) { // don't schedule anymore if batching has been stopped\n this.timeoutID = setTimeout(_.bind(function() {\n if (!this.stopped) {\n this.flush();\n }\n }, this), this.flushInterval);\n }\n};\n\n/**\n * Send a request using the sendRequest callback, but promisified.\n * TODO: sendRequest should be promisified in the first place.\n */\nRequestBatcher.prototype.sendRequestPromise = function(data, options) {\n return new PromisePolyfill(_.bind(function(resolve) {\n this.sendRequest(data, options, resolve);\n }, this));\n};\n\n\n/**\n * Flush one batch to network. Depending on success/failure modes, it will either\n * remove the batch from the queue or leave it in for retry, and schedule the next\n * flush. In cases of most network or API failures, it will back off exponentially\n * when retrying.\n * @param {Object} [options]\n * @param {boolean} [options.sendBeacon] - whether to send batch with\n * navigator.sendBeacon (only useful for sending batches before page unloads, as\n * sendBeacon offers no callbacks or status indications)\n */\nRequestBatcher.prototype.flush = function(options) {\n if (this.requestInProgress) {\n logger$3.log('Flush: Request already in progress');\n return PromisePolyfill.resolve();\n }\n\n this.requestInProgress = true;\n\n options = options || {};\n var timeoutMS = this.libConfig['batch_request_timeout_ms'];\n var startTime = new Date().getTime();\n var currentBatchSize = this.batchSize;\n\n return this.queue.fillBatch(currentBatchSize)\n .then(_.bind(function(batch) {\n\n // if there's more items in the queue than the batch size, attempt\n // to flush again after the current batch is done.\n var attemptSecondaryFlush = batch.length === currentBatchSize;\n var dataForRequest = [];\n var transformedItems = {};\n _.each(batch, function(item) {\n var payload = item['payload'];\n if (this.beforeSendHook && !item.orphaned) {\n payload = this.beforeSendHook(payload);\n }\n if (payload) {\n // mp_sent_by_lib_version prop captures which lib version actually\n // sends each event (regardless of which version originally queued\n // it for sending)\n if (payload['event'] && payload['properties']) {\n payload['properties'] = _.extend(\n {},\n payload['properties'],\n {'mp_sent_by_lib_version': Config.LIB_VERSION}\n );\n }\n var addPayload = true;\n var itemId = item['id'];\n if (itemId) {\n if ((this.itemIdsSentSuccessfully[itemId] || 0) > 5) {\n this.reportError('[dupe] item ID sent too many times, not sending', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n addPayload = false;\n }\n } else {\n this.reportError('[dupe] found item with no ID', {item: item});\n }\n\n if (addPayload) {\n dataForRequest.push(payload);\n }\n }\n transformedItems[item['id']] = payload;\n }, this);\n\n if (dataForRequest.length < 1) {\n this.requestInProgress = false;\n this.resetFlush();\n return PromisePolyfill.resolve(); // nothing to do\n }\n\n var removeItemsFromQueue = _.bind(function () {\n return this.queue\n .removeItemsByID(\n _.map(batch, function (item) {\n return item['id'];\n })\n )\n .then(_.bind(function (succeeded) {\n // client-side dedupe\n _.each(batch, _.bind(function(item) {\n var itemId = item['id'];\n if (itemId) {\n this.itemIdsSentSuccessfully[itemId] = this.itemIdsSentSuccessfully[itemId] || 0;\n this.itemIdsSentSuccessfully[itemId]++;\n if (this.itemIdsSentSuccessfully[itemId] > 5) {\n this.reportError('[dupe] item ID sent too many times', {\n item: item,\n batchSize: batch.length,\n timesSent: this.itemIdsSentSuccessfully[itemId]\n });\n }\n } else {\n this.reportError('[dupe] found item with no ID while removing', {item: item});\n }\n }, this));\n\n if (succeeded) {\n this.consecutiveRemovalFailures = 0;\n if (this.flushOnlyOnInterval && !attemptSecondaryFlush) {\n this.resetFlush(); // schedule next batch with a delay\n return PromisePolyfill.resolve();\n } else {\n return this.flush(); // handle next batch if the queue isn't empty\n }\n } else {\n if (++this.consecutiveRemovalFailures > 5) {\n this.reportError('Too many queue failures; disabling batching system.');\n this.stopAllBatching();\n } else {\n this.resetFlush();\n }\n return PromisePolyfill.resolve();\n }\n }, this));\n }, this);\n\n var batchSendCallback = _.bind(function(res) {\n this.requestInProgress = false;\n\n try {\n\n // handle API response in a try-catch to make sure we can reset the\n // flush operation if something goes wrong\n\n if (options.unloading) {\n // update persisted data to include hook transformations\n return this.queue.updatePayloads(transformedItems);\n } else if (\n _.isObject(res) &&\n res.error === 'timeout' &&\n new Date().getTime() - startTime >= timeoutMS\n ) {\n this.reportError('Network timeout; retrying');\n return this.flush();\n } else if (\n _.isObject(res) &&\n (\n res.httpStatusCode >= 500\n || res.httpStatusCode === 429\n || (res.httpStatusCode <= 0 && !isOnline())\n || res.error === 'timeout'\n )\n ) {\n // network or API error, or 429 Too Many Requests, retry\n var retryMS = this.flushInterval * 2;\n if (res.retryAfter) {\n retryMS = (parseInt(res.retryAfter, 10) * 1000) || retryMS;\n }\n retryMS = Math.min(MAX_RETRY_INTERVAL_MS, retryMS);\n this.reportError('Error; retry in ' + retryMS + ' ms');\n this.scheduleFlush(retryMS);\n return PromisePolyfill.resolve();\n } else if (_.isObject(res) && res.httpStatusCode === 413) {\n // 413 Payload Too Large\n if (batch.length > 1) {\n var halvedBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));\n this.batchSize = Math.min(this.batchSize, halvedBatchSize, batch.length - 1);\n this.reportError('413 response; reducing batch size to ' + this.batchSize);\n this.resetFlush();\n return PromisePolyfill.resolve();\n } else {\n this.reportError('Single-event request too large; dropping', batch);\n this.resetBatchSize();\n return removeItemsFromQueue();\n }\n } else {\n // successful network request+response; remove each item in batch from queue\n // (even if it was e.g. a 400, in which case retrying won't help)\n return removeItemsFromQueue();\n }\n } catch(err) {\n this.reportError('Error handling API response', err);\n this.resetFlush();\n }\n }, this);\n var requestOptions = {\n method: 'POST',\n verbose: true,\n ignore_json_errors: true, // eslint-disable-line camelcase\n timeout_ms: timeoutMS // eslint-disable-line camelcase\n };\n if (options.unloading) {\n requestOptions.transport = 'sendBeacon';\n }\n logger$3.log('MIXPANEL REQUEST:', dataForRequest);\n return this.sendRequestPromise(dataForRequest, requestOptions).then(batchSendCallback);\n }, this))\n .catch(_.bind(function(err) {\n this.reportError('Error flushing request queue', err);\n this.resetFlush();\n }, this));\n};\n\n/**\n * Log error to global logger and optional user-defined logger.\n */\nRequestBatcher.prototype.reportError = function(msg, err) {\n logger$3.error.apply(logger$3.error, arguments);\n if (this.errorReporter) {\n try {\n if (!(err instanceof Error)) {\n err = new Error(msg);\n }\n this.errorReporter(msg, err);\n } catch(err) {\n logger$3.error(err);\n }\n }\n};\n\nvar logger$2 = console_with_prefix('recorder');\nvar CompressionStream = win['CompressionStream'];\n\nvar RECORDER_BATCHER_LIB_CONFIG = {\n 'batch_size': 1000,\n 'batch_flush_interval_ms': 10 * 1000,\n 'batch_request_timeout_ms': 90 * 1000,\n 'batch_autostart': true\n};\n\nvar ACTIVE_SOURCES = new Set([\n IncrementalSource.MouseMove,\n IncrementalSource.MouseInteraction,\n IncrementalSource.Scroll,\n IncrementalSource.ViewportResize,\n IncrementalSource.Input,\n IncrementalSource.TouchMove,\n IncrementalSource.MediaInteraction,\n IncrementalSource.Drag,\n IncrementalSource.Selection,\n]);\n\nfunction isUserEvent(ev) {\n return ev.type === EventType.IncrementalSnapshot && ACTIVE_SOURCES.has(ev.data.source);\n}\n\n/**\n * This class encapsulates a single session recording and its lifecycle.\n * @param {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n * @param {String} [options.replayId] - unique uuid for a single replay\n * @param {Function} [options.onIdleTimeout] - callback when a recording reaches idle timeout\n * @param {Function} [options.onMaxLengthReached] - callback when a recording reaches its maximum length\n * @param {Function} [options.rrwebRecord] - rrweb's `record` function\n */\nvar SessionRecording = function(options) {\n this._mixpanel = options.mixpanelInstance;\n this._onIdleTimeout = options.onIdleTimeout;\n this._onMaxLengthReached = options.onMaxLengthReached;\n this._rrwebRecord = options.rrwebRecord;\n\n this.replayId = options.replayId;\n\n // internal rrweb stopRecording function\n this._stopRecording = null;\n\n this.seqNo = 0;\n this.replayStartTime = null;\n this.replayStartUrl = null;\n this.batchStartUrl = null;\n\n this.idleTimeoutId = null;\n this.maxTimeoutId = null;\n\n this.recordMaxMs = MAX_RECORDING_MS;\n this.recordMinMs = 0;\n\n // each replay has its own batcher key to avoid conflicts between rrweb events of different recordings\n // this will be important when persistence is introduced\n var batcherKey = '__mprec_' + this.getConfig('token') + '_' + this.replayId;\n this.batcher = new RequestBatcher(batcherKey, {\n errorReporter: _.bind(this.reportError, this),\n flushOnlyOnInterval: true,\n libConfig: RECORDER_BATCHER_LIB_CONFIG,\n sendRequestFunc: _.bind(this.flushEventsWithOptOut, this),\n usePersistence: false\n });\n};\n\nSessionRecording.prototype.getConfig = function(configVar) {\n return this._mixpanel.get_config(configVar);\n};\n\n// Alias for getConfig, used by the common addOptOutCheckMixpanelLib function which\n// reaches into this class instance and expects the snake case version of the function.\n// eslint-disable-next-line camelcase\nSessionRecording.prototype.get_config = function(configVar) {\n return this.getConfig(configVar);\n};\n\nSessionRecording.prototype.startRecording = function (shouldStopBatcher) {\n if (this._stopRecording !== null) {\n logger$2.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n this.recordMaxMs = this.getConfig('record_max_ms');\n if (this.recordMaxMs > MAX_RECORDING_MS) {\n this.recordMaxMs = MAX_RECORDING_MS;\n logger$2.critical('record_max_ms cannot be greater than ' + MAX_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.recordMinMs = this.getConfig('record_min_ms');\n if (this.recordMinMs > MAX_VALUE_FOR_MIN_RECORDING_MS) {\n this.recordMinMs = MAX_VALUE_FOR_MIN_RECORDING_MS;\n logger$2.critical('record_min_ms cannot be greater than ' + MAX_VALUE_FOR_MIN_RECORDING_MS + 'ms. Capping value.');\n }\n\n this.replayStartTime = new Date().getTime();\n this.batchStartUrl = _.info.currentUrl();\n this.replayStartUrl = _.info.currentUrl();\n\n if (shouldStopBatcher || this.recordMinMs > 0) {\n // the primary case for shouldStopBatcher is when we're starting recording after a reset\n // and don't want to send anything over the network until there's\n // actual user activity\n // this also applies if the minimum recording length has not been hit yet\n // so that we don't send data until we know the recording will be long enough\n this.batcher.stop();\n } else {\n this.batcher.start();\n }\n\n var resetIdleTimeout = _.bind(function () {\n clearTimeout(this.idleTimeoutId);\n this.idleTimeoutId = setTimeout(this._onIdleTimeout, this.getConfig('record_idle_timeout_ms'));\n }, this);\n\n var blockSelector = this.getConfig('record_block_selector');\n if (blockSelector === '' || blockSelector === null) {\n blockSelector = undefined;\n }\n\n this._stopRecording = this._rrwebRecord({\n 'emit': _.bind(function (ev) {\n this.batcher.enqueue(ev);\n if (isUserEvent(ev)) {\n if (this.batcher.stopped && new Date().getTime() - this.replayStartTime >= this.recordMinMs) {\n // start flushing again after user activity\n this.batcher.start();\n }\n resetIdleTimeout();\n }\n }, this),\n 'blockClass': this.getConfig('record_block_class'),\n 'blockSelector': blockSelector,\n 'collectFonts': this.getConfig('record_collect_fonts'),\n 'dataURLOptions': { // canvas image options (https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL)\n 'type': 'image/webp',\n 'quality': 0.6\n },\n 'maskAllInputs': true,\n 'maskTextClass': this.getConfig('record_mask_text_class'),\n 'maskTextSelector': this.getConfig('record_mask_text_selector'),\n 'recordCanvas': this.getConfig('record_canvas'),\n 'sampling': {\n 'canvas': 15\n }\n });\n\n if (typeof this._stopRecording !== 'function') {\n this.reportError('rrweb failed to start, skipping this recording.');\n this._stopRecording = null;\n this.stopRecording(); // stop batcher looping and any timeouts\n return;\n }\n\n resetIdleTimeout();\n\n this.maxTimeoutId = setTimeout(_.bind(this._onMaxLengthReached, this), this.recordMaxMs);\n};\n\nSessionRecording.prototype.stopRecording = function () {\n if (!this.isRrwebStopped()) {\n try {\n this._stopRecording();\n } catch (err) {\n this.reportError('Error with rrweb stopRecording', err);\n }\n this._stopRecording = null;\n }\n\n if (this.batcher.stopped) {\n // never got user activity to flush after reset, so just clear the batcher\n this.batcher.clear();\n } else {\n // flush any remaining events from running batcher\n this.batcher.flush();\n this.batcher.stop();\n }\n\n clearTimeout(this.idleTimeoutId);\n clearTimeout(this.maxTimeoutId);\n};\n\nSessionRecording.prototype.isRrwebStopped = function () {\n return this._stopRecording === null;\n};\n\n/**\n * Flushes the current batch of events to the server, but passes an opt-out callback to make sure\n * we stop recording and dump any queued events if the user has opted out.\n */\nSessionRecording.prototype.flushEventsWithOptOut = function (data, options, cb) {\n this._flushEvents(data, options, cb, _.bind(this._onOptOut, this));\n};\n\nSessionRecording.prototype._onOptOut = function (code) {\n // addOptOutCheckMixpanelLib invokes this function with code=0 when the user has opted out\n if (code === 0) {\n this.stopRecording();\n }\n};\n\nSessionRecording.prototype._sendRequest = function(currentReplayId, reqParams, reqBody, callback) {\n var onSuccess = _.bind(function (response, responseBody) {\n // Update batch specific props only if the request was successful to guarantee ordering.\n // RequestBatcher will always flush the next batch after the previous one succeeds.\n // extra check to see if the replay ID has changed so that we don't increment the seqNo on the wrong replay\n if (response.status === 200 && this.replayId === currentReplayId) {\n this.seqNo++;\n this.batchStartUrl = _.info.currentUrl();\n }\n callback({\n status: 0,\n httpStatusCode: response.status,\n responseBody: responseBody,\n retryAfter: response.headers.get('Retry-After')\n });\n }, this);\n\n win['fetch'](this.getConfig('api_host') + '/' + this.getConfig('api_routes')['record'] + '?' + new URLSearchParams(reqParams), {\n 'method': 'POST',\n 'headers': {\n 'Authorization': 'Basic ' + btoa(this.getConfig('token') + ':'),\n 'Content-Type': 'application/octet-stream'\n },\n 'body': reqBody,\n }).then(function (response) {\n response.json().then(function (responseBody) {\n onSuccess(response, responseBody);\n }).catch(function (error) {\n callback({error: error});\n });\n }).catch(function (error) {\n callback({error: error, httpStatusCode: 0});\n });\n};\n\nSessionRecording.prototype._flushEvents = addOptOutCheckMixpanelLib(function (data, options, callback) {\n const numEvents = data.length;\n\n if (numEvents > 0) {\n var replayId = this.replayId;\n // each rrweb event has a timestamp - leverage those to get time properties\n var batchStartTime = data[0].timestamp;\n if (this.seqNo === 0 || !this.replayStartTime) {\n // extra safety net so that we don't send a null replay start time\n if (this.seqNo !== 0) {\n this.reportError('Replay start time not set but seqNo is not 0. Using current batch start time as a fallback.');\n }\n\n this.replayStartTime = batchStartTime;\n }\n var replayLengthMs = data[numEvents - 1].timestamp - this.replayStartTime;\n\n var reqParams = {\n '$current_url': this.batchStartUrl,\n '$lib_version': Config.LIB_VERSION,\n 'batch_start_time': batchStartTime / 1000,\n 'distinct_id': String(this._mixpanel.get_distinct_id()),\n 'mp_lib': 'web',\n 'replay_id': replayId,\n 'replay_length_ms': replayLengthMs,\n 'replay_start_time': this.replayStartTime / 1000,\n 'replay_start_url': this.replayStartUrl,\n 'seq': this.seqNo\n };\n var eventsJson = _.JSONEncode(data);\n\n // send ID management props if they exist\n var deviceId = this._mixpanel.get_property('$device_id');\n if (deviceId) {\n reqParams['$device_id'] = deviceId;\n }\n var userId = this._mixpanel.get_property('$user_id');\n if (userId) {\n reqParams['$user_id'] = userId;\n }\n\n if (CompressionStream) {\n var jsonStream = new Blob([eventsJson], {type: 'application/json'}).stream();\n var gzipStream = jsonStream.pipeThrough(new CompressionStream('gzip'));\n new Response(gzipStream)\n .blob()\n .then(_.bind(function(compressedBlob) {\n reqParams['format'] = 'gzip';\n this._sendRequest(replayId, reqParams, compressedBlob, callback);\n }, this));\n } else {\n reqParams['format'] = 'body';\n this._sendRequest(replayId, reqParams, eventsJson, callback);\n }\n }\n});\n\n\nSessionRecording.prototype.reportError = function(msg, err) {\n logger$2.error.apply(logger$2.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.getConfig('error_reporter')(msg, err);\n } catch(err) {\n logger$2.error(err);\n }\n};\n\nvar logger$1 = console_with_prefix('recorder');\n\n/**\n * Recorder API: manages recordings and exposes methods public to the core Mixpanel library.\n * @param {Object} [options.mixpanelInstance] - reference to the core MixpanelLib\n */\nvar MixpanelRecorder = function(mixpanelInstance) {\n this._mixpanel = mixpanelInstance;\n this.activeRecording = null;\n};\n\nMixpanelRecorder.prototype.startRecording = function(shouldStopBatcher) {\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n logger$1.log('Recording already in progress, skipping startRecording.');\n return;\n }\n\n var onIdleTimeout = _.bind(function () {\n logger$1.log('Idle timeout reached, restarting recording.');\n this.resetRecording();\n }, this);\n\n var onMaxLengthReached = _.bind(function () {\n logger$1.log('Max recording length reached, stopping recording.');\n this.resetRecording();\n }, this);\n\n this.activeRecording = new SessionRecording({\n mixpanelInstance: this._mixpanel,\n onIdleTimeout: onIdleTimeout,\n onMaxLengthReached: onMaxLengthReached,\n replayId: _.UUID(),\n rrwebRecord: record\n });\n\n this.activeRecording.startRecording(shouldStopBatcher);\n};\n\nMixpanelRecorder.prototype.stopRecording = function() {\n if (this.activeRecording) {\n this.activeRecording.stopRecording();\n this.activeRecording = null;\n }\n};\n\nMixpanelRecorder.prototype.resetRecording = function () {\n this.stopRecording();\n this.startRecording(true);\n};\n\nMixpanelRecorder.prototype.getActiveReplayId = function () {\n if (this.activeRecording && !this.activeRecording.isRrwebStopped()) {\n return this.activeRecording.replayId;\n } else {\n return null;\n }\n};\n\n// getter so that older mixpanel-core versions can still retrieve the replay ID\n// when pulling the latest recorder bundle from the CDN\nObject.defineProperty(MixpanelRecorder.prototype, 'replayId', {\n get: function () {\n return this.getActiveReplayId();\n }\n});\n\nwin['__mp_recorder'] = MixpanelRecorder;\n\n// stateless utils\n\nvar EV_CHANGE = 'change';\nvar EV_CLICK = 'click';\nvar EV_HASHCHANGE = 'hashchange';\nvar EV_MP_LOCATION_CHANGE = 'mp_locationchange';\nvar EV_POPSTATE = 'popstate';\n// TODO scrollend isn't available in Safari: document or polyfill?\nvar EV_SCROLLEND = 'scrollend';\nvar EV_SUBMIT = 'submit';\n\nvar CLICK_EVENT_PROPS = [\n 'clientX', 'clientY',\n 'offsetX', 'offsetY',\n 'pageX', 'pageY',\n 'screenX', 'screenY',\n 'x', 'y'\n];\nvar OPT_IN_CLASSES = ['mp-include'];\nvar OPT_OUT_CLASSES = ['mp-no-track'];\nvar SENSITIVE_DATA_CLASSES = OPT_OUT_CLASSES.concat(['mp-sensitive']);\nvar TRACKED_ATTRS = [\n 'aria-label', 'aria-labelledby', 'aria-describedby',\n 'href', 'name', 'role', 'title', 'type'\n];\n\nvar logger = console_with_prefix('autocapture');\n\n\nfunction getClasses(el) {\n var classes = {};\n var classList = getClassName(el).split(' ');\n for (var i = 0; i < classList.length; i++) {\n var cls = classList[i];\n if (cls) {\n classes[cls] = true;\n }\n }\n return classes;\n}\n\n/*\n * Get the className of an element, accounting for edge cases where element.className is an object\n * @param {Element} el - element to get the className of\n * @returns {string} the element's class\n */\nfunction getClassName(el) {\n switch(typeof el.className) {\n case 'string':\n return el.className;\n case 'object': // handle cases where className might be SVGAnimatedString or some other type\n return el.className.baseVal || el.getAttribute('class') || '';\n default: // future proof\n return '';\n }\n}\n\nfunction getPreviousElementSibling(el) {\n if (el.previousElementSibling) {\n return el.previousElementSibling;\n } else {\n do {\n el = el.previousSibling;\n } while (el && !isElementNode(el));\n return el;\n }\n}\n\nfunction getPropertiesFromElement(el) {\n var props = {\n '$classes': getClassName(el).split(' '),\n '$tag_name': el.tagName.toLowerCase()\n };\n var elId = el.id;\n if (elId) {\n props['$id'] = elId;\n }\n\n if (shouldTrackElement(el)) {\n _.each(TRACKED_ATTRS, function(attr) {\n if (el.hasAttribute(attr)) {\n var attrVal = el.getAttribute(attr);\n if (shouldTrackValue(attrVal)) {\n props['$attr-' + attr] = attrVal;\n }\n }\n });\n }\n\n var nthChild = 1;\n var nthOfType = 1;\n var currentElem = el;\n while (currentElem = getPreviousElementSibling(currentElem)) { // eslint-disable-line no-cond-assign\n nthChild++;\n if (currentElem.tagName === el.tagName) {\n nthOfType++;\n }\n }\n props['$nth_child'] = nthChild;\n props['$nth_of_type'] = nthOfType;\n\n return props;\n}\n\nfunction getPropsForDOMEvent(ev, blockSelectors, captureTextContent) {\n blockSelectors = blockSelectors || [];\n var props = null;\n\n var target = typeof ev.target === 'undefined' ? ev.srcElement : ev.target;\n if (isTextNode(target)) { // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = target.parentNode;\n }\n\n if (shouldTrackDomEvent(target, ev)) {\n var targetElementList = [target];\n var curEl = target;\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n targetElementList.push(curEl.parentNode);\n curEl = curEl.parentNode;\n }\n\n var elementsJson = [];\n var href, explicitNoTrack = false;\n _.each(targetElementList, function(el) {\n var shouldTrackEl = shouldTrackElement(el);\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href');\n href = shouldTrackEl && shouldTrackValue(href) && href;\n }\n\n // allow users to programmatically prevent tracking of elements by adding classes such as 'mp-no-track'\n var classes = getClasses(el);\n _.each(OPT_OUT_CLASSES, function(cls) {\n if (classes[cls]) {\n explicitNoTrack = true;\n }\n });\n\n if (!explicitNoTrack) {\n // programmatically prevent tracking of elements that match CSS selectors\n _.each(blockSelectors, function(sel) {\n try {\n if (el['matches'](sel)) {\n explicitNoTrack = true;\n }\n } catch (err) {\n logger.critical('Error while checking selector: ' + sel, err);\n }\n });\n }\n\n elementsJson.push(getPropertiesFromElement(el));\n }, this);\n\n if (!explicitNoTrack) {\n var docElement = document$1['documentElement'];\n props = {\n '$event_type': ev.type,\n '$host': win.location.host,\n '$pathname': win.location.pathname,\n '$elements': elementsJson,\n '$el_attr__href': href,\n '$viewportHeight': Math.max(docElement['clientHeight'], win['innerHeight'] || 0),\n '$viewportWidth': Math.max(docElement['clientWidth'], win['innerWidth'] || 0)\n };\n\n if (captureTextContent) {\n elementText = getSafeText(target);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (ev.type === EV_CLICK) {\n _.each(CLICK_EVENT_PROPS, function(prop) {\n if (prop in ev) {\n props['$' + prop] = ev[prop];\n }\n });\n target = guessRealClickTarget(ev);\n }\n // prioritize text content from \"real\" click target if different from original target\n if (captureTextContent) {\n var elementText = getSafeText(target);\n if (elementText && elementText.length) {\n props['$el_text'] = elementText;\n }\n }\n\n if (target) {\n var targetProps = getPropertiesFromElement(target);\n props['$target'] = targetProps;\n // pull up more props onto main event props\n props['$el_classes'] = targetProps['$classes'];\n _.extend(props, _.strip_empty_properties({\n '$el_id': targetProps['$id'],\n '$el_tag_name': targetProps['$tag_name']\n }));\n }\n }\n }\n\n return props;\n}\n\n\n/*\n * Get the direct text content of an element, protecting against sensitive data collection.\n * Concats textContent of each of the element's text node children; this avoids potential\n * collection of sensitive data that could happen if we used element.textContent and the\n * element had sensitive child elements, since element.textContent includes child content.\n * Scrubs values that look like they could be sensitive (i.e. cc or ssn number).\n * @param {Element} el - element to get the text of\n * @returns {string} the element's direct text content\n */\nfunction getSafeText(el) {\n var elText = '';\n\n if (shouldTrackElement(el) && el.childNodes && el.childNodes.length) {\n _.each(el.childNodes, function(child) {\n if (isTextNode(child) && child.textContent) {\n elText += _.trim(child.textContent)\n // scrub potentially sensitive values\n .split(/(\\s+)/).filter(shouldTrackValue).join('')\n // normalize whitespace\n .replace(/[\\r\\n]/g, ' ').replace(/[ ]+/g, ' ')\n // truncate\n .substring(0, 255);\n }\n });\n }\n\n return _.trim(elText);\n}\n\nfunction guessRealClickTarget(ev) {\n var target = ev.target;\n var composedPath = ev['composedPath']();\n for (var i = 0; i < composedPath.length; i++) {\n var node = composedPath[i];\n if (\n isTag(node, 'a') ||\n isTag(node, 'button') ||\n isTag(node, 'input') ||\n isTag(node, 'select') ||\n (node.getAttribute && node.getAttribute('role') === 'button')\n ) {\n target = node;\n break;\n }\n if (node === target) {\n break;\n }\n }\n return target;\n}\n\n/*\n * Check whether a DOM node has nodeType Node.ELEMENT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of the correct nodeType\n */\nfunction isElementNode(node) {\n return node && node.nodeType === 1; // Node.ELEMENT_NODE - use integer constant for browser portability\n}\n\n/*\n * Check whether an element is of a given tag type.\n * Due to potential reference discrepancies (such as the webcomponents.js polyfill),\n * we want to match tagNames instead of specific references because something like\n * element === document.body won't always work because element might not be a native\n * element.\n * @param {Element} el - element to check\n * @param {string} tag - tag name (e.g., \"div\")\n * @returns {boolean} whether el is of the given tag type\n */\nfunction isTag(el, tag) {\n return el && el.tagName && el.tagName.toLowerCase() === tag.toLowerCase();\n}\n\n/*\n * Check whether a DOM node is a TEXT_NODE\n * @param {Node} node - node to check\n * @returns {boolean} whether node is of type Node.TEXT_NODE\n */\nfunction isTextNode(node) {\n return node && node.nodeType === 3; // Node.TEXT_NODE - use integer constant for browser portability\n}\n\nfunction minDOMApisSupported() {\n try {\n var testEl = document$1.createElement('div');\n return !!testEl['matches'];\n } catch (err) {\n return false;\n }\n}\n\n/*\n * Check whether a DOM event should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @param {Event} ev - event to check\n * @returns {boolean} whether the event should be tracked\n */\nfunction shouldTrackDomEvent(el, ev) {\n if (!el || isTag(el, 'html') || !isElementNode(el)) {\n return false;\n }\n var tag = el.tagName.toLowerCase();\n switch (tag) {\n case 'form':\n return ev.type === EV_SUBMIT;\n case 'input':\n if (['button', 'submit'].indexOf(el.getAttribute('type')) === -1) {\n return ev.type === EV_CHANGE;\n } else {\n return ev.type === EV_CLICK;\n }\n case 'select':\n case 'textarea':\n return ev.type === EV_CHANGE;\n default:\n return ev.type === EV_CLICK;\n }\n}\n\n/*\n * Check whether a DOM element should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {Element} el - element to check\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackElement(el) {\n var i;\n\n for (var curEl = el; curEl.parentNode && !isTag(curEl, 'body'); curEl = curEl.parentNode) {\n var classes = getClasses(curEl);\n for (i = 0; i < SENSITIVE_DATA_CLASSES.length; i++) {\n if (classes[SENSITIVE_DATA_CLASSES[i]]) {\n return false;\n }\n }\n }\n\n var elClasses = getClasses(el);\n for (i = 0; i < OPT_IN_CLASSES.length; i++) {\n if (elClasses[OPT_IN_CLASSES[i]]) {\n return true;\n }\n }\n\n // don't send data from inputs or similar elements since there will always be\n // a risk of clientside javascript placing sensitive data in attributes\n if (\n isTag(el, 'input') ||\n isTag(el, 'select') ||\n isTag(el, 'textarea') ||\n el.getAttribute('contenteditable') === 'true'\n ) {\n return false;\n }\n\n // don't include hidden or password fields\n var type = el.type || '';\n if (typeof type === 'string') { // it's possible for el.type to be a DOM element if el is a form with a child input[name=\"type\"]\n switch(type.toLowerCase()) {\n case 'hidden':\n return false;\n case 'password':\n return false;\n }\n }\n\n // filter out data from fields that look like sensitive fields\n var name = el.name || el.id || '';\n if (typeof name === 'string') { // it's possible for el.name or el.id to be a DOM element if el is a form with a child input[name=\"name\"]\n var sensitiveNameRegex = /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i;\n if (sensitiveNameRegex.test(name.replace(/[^a-zA-Z0-9]/g, ''))) {\n return false;\n }\n }\n\n return true;\n}\n\n\n/*\n * Check whether a string value should be \"tracked\" or if it may contain sensitive data\n * using a variety of heuristics.\n * @param {string} value - string value to check\n * @returns {boolean} whether the element should be tracked\n */\nfunction shouldTrackValue(value) {\n if (value === null || _.isUndefined(value)) {\n return false;\n }\n\n if (typeof value === 'string') {\n value = _.trim(value);\n\n // check to see if input value looks like a credit card number\n // see: https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9781449327453/ch04s20.html\n var ccRegex = /^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;\n if (ccRegex.test((value || '').replace(/[- ]/g, ''))) {\n return false;\n }\n\n // check to see if input value looks like a social security number\n var ssnRegex = /(^\\d{3}-?\\d{2}-?\\d{4}$)/;\n if (ssnRegex.test(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nvar AUTOCAPTURE_CONFIG_KEY = 'autocapture';\nvar LEGACY_PAGEVIEW_CONFIG_KEY = 'track_pageview';\n\nvar PAGEVIEW_OPTION_FULL_URL = 'full-url';\nvar PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING = 'url-with-path-and-query-string';\nvar PAGEVIEW_OPTION_URL_WITH_PATH = 'url-with-path';\n\nvar CONFIG_BLOCK_SELECTORS = 'block_selectors';\nvar CONFIG_BLOCK_URL_REGEXES = 'block_url_regexes';\nvar CONFIG_CAPTURE_TEXT_CONTENT = 'capture_text_content';\nvar CONFIG_TRACK_CLICK = 'click';\nvar CONFIG_TRACK_INPUT = 'input';\nvar CONFIG_TRACK_PAGEVIEW = 'pageview';\nvar CONFIG_TRACK_SCROLL = 'scroll';\nvar CONFIG_TRACK_SUBMIT = 'submit';\n\nvar CONFIG_DEFAULTS = {};\nCONFIG_DEFAULTS[CONFIG_CAPTURE_TEXT_CONTENT] = false;\nCONFIG_DEFAULTS[CONFIG_TRACK_CLICK] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_INPUT] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_PAGEVIEW] = PAGEVIEW_OPTION_FULL_URL;\nCONFIG_DEFAULTS[CONFIG_TRACK_SCROLL] = true;\nCONFIG_DEFAULTS[CONFIG_TRACK_SUBMIT] = true;\n\nvar DEFAULT_PROPS = {\n '$mp_autocapture': true\n};\n\nvar MP_EV_CLICK = '$mp_click';\nvar MP_EV_INPUT = '$mp_input_change';\nvar MP_EV_SCROLL = '$mp_scroll';\nvar MP_EV_SUBMIT = '$mp_submit';\n\n/**\n * Autocapture: manages automatic event tracking\n * @constructor\n */\nvar Autocapture = function(mp) {\n this.mp = mp;\n};\n\nAutocapture.prototype.init = function() {\n if (!minDOMApisSupported()) {\n logger.critical('Autocapture unavailable: missing required DOM APIs');\n return;\n }\n\n this.initPageviewTracking();\n this.initClickTracking();\n this.initInputTracking();\n this.initScrollTracking();\n this.initSubmitTracking();\n};\n\nAutocapture.prototype.getFullConfig = function() {\n var autocaptureConfig = this.mp.get_config(AUTOCAPTURE_CONFIG_KEY);\n if (!autocaptureConfig) {\n // Autocapture is completely off\n return {};\n } else if (_.isObject(autocaptureConfig)) {\n return _.extend({}, CONFIG_DEFAULTS, autocaptureConfig);\n } else {\n // Autocapture config is non-object truthy value, return default\n return CONFIG_DEFAULTS;\n }\n};\n\nAutocapture.prototype.getConfig = function(key) {\n return this.getFullConfig()[key];\n};\n\nAutocapture.prototype.currentUrlBlocked = function() {\n var blockUrlRegexes = this.getConfig(CONFIG_BLOCK_URL_REGEXES) || [];\n if (!blockUrlRegexes || !blockUrlRegexes.length) {\n return false;\n }\n\n var currentUrl = _.info.currentUrl();\n for (var i = 0; i < blockUrlRegexes.length; i++) {\n try {\n if (currentUrl.match(blockUrlRegexes[i])) {\n return true;\n }\n } catch (err) {\n logger.critical('Error while checking block URL regex: ' + blockUrlRegexes[i], err);\n return true;\n }\n }\n return false;\n};\n\nAutocapture.prototype.pageviewTrackingConfig = function() {\n // supports both autocapture config and old track_pageview config\n if (this.mp.get_config(AUTOCAPTURE_CONFIG_KEY)) {\n return this.getConfig(CONFIG_TRACK_PAGEVIEW);\n } else {\n return this.mp.get_config(LEGACY_PAGEVIEW_CONFIG_KEY);\n }\n};\n\n// helper for event handlers\nAutocapture.prototype.trackDomEvent = function(ev, mpEventName) {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var props = getPropsForDOMEvent(\n ev,\n this.getConfig(CONFIG_BLOCK_SELECTORS),\n this.getConfig(CONFIG_CAPTURE_TEXT_CONTENT)\n );\n if (props) {\n _.extend(props, DEFAULT_PROPS);\n this.mp.track(mpEventName, props);\n }\n};\n\nAutocapture.prototype.initClickTracking = function() {\n win.removeEventListener(EV_CLICK, this.listenerClick);\n\n if (!this.getConfig(CONFIG_TRACK_CLICK)) {\n return;\n }\n logger.log('Initializing click tracking');\n\n this.listenerClick = win.addEventListener(EV_CLICK, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_CLICK)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_CLICK);\n }.bind(this));\n};\n\nAutocapture.prototype.initInputTracking = function() {\n win.removeEventListener(EV_CHANGE, this.listenerChange);\n\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n logger.log('Initializing input tracking');\n\n this.listenerChange = win.addEventListener(EV_CHANGE, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_INPUT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_INPUT);\n }.bind(this));\n};\n\nAutocapture.prototype.initPageviewTracking = function() {\n win.removeEventListener(EV_POPSTATE, this.listenerPopstate);\n win.removeEventListener(EV_HASHCHANGE, this.listenerHashchange);\n win.removeEventListener(EV_MP_LOCATION_CHANGE, this.listenerLocationchange);\n\n if (!this.pageviewTrackingConfig()) {\n return;\n }\n logger.log('Initializing pageview tracking');\n\n var previousTrackedUrl = '';\n var tracked = false;\n if (!this.currentUrlBlocked()) {\n tracked = this.mp.track_pageview(DEFAULT_PROPS);\n }\n if (tracked) {\n previousTrackedUrl = _.info.currentUrl();\n }\n\n this.listenerPopstate = win.addEventListener(EV_POPSTATE, function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n });\n this.listenerHashchange = win.addEventListener(EV_HASHCHANGE, function() {\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n });\n var nativePushState = win.history.pushState;\n if (typeof nativePushState === 'function') {\n win.history.pushState = function(state, unused, url) {\n nativePushState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n var nativeReplaceState = win.history.replaceState;\n if (typeof nativeReplaceState === 'function') {\n win.history.replaceState = function(state, unused, url) {\n nativeReplaceState.call(win.history, state, unused, url);\n win.dispatchEvent(new Event(EV_MP_LOCATION_CHANGE));\n };\n }\n this.listenerLocationchange = win.addEventListener(EV_MP_LOCATION_CHANGE, safewrap(function() {\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var currentUrl = _.info.currentUrl();\n var shouldTrack = false;\n var trackPageviewOption = this.pageviewTrackingConfig();\n if (trackPageviewOption === PAGEVIEW_OPTION_FULL_URL) {\n shouldTrack = currentUrl !== previousTrackedUrl;\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH_AND_QUERY_STRING) {\n shouldTrack = currentUrl.split('#')[0] !== previousTrackedUrl.split('#')[0];\n } else if (trackPageviewOption === PAGEVIEW_OPTION_URL_WITH_PATH) {\n shouldTrack = currentUrl.split('#')[0].split('?')[0] !== previousTrackedUrl.split('#')[0].split('?')[0];\n }\n\n if (shouldTrack) {\n var tracked = this.mp.track_pageview(DEFAULT_PROPS);\n if (tracked) {\n previousTrackedUrl = currentUrl;\n }\n }\n }.bind(this)));\n};\n\nAutocapture.prototype.initScrollTracking = function() {\n win.removeEventListener(EV_SCROLLEND, this.listenerScroll);\n\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n logger.log('Initializing scroll tracking');\n\n this.listenerScroll = win.addEventListener(EV_SCROLLEND, safewrap(function() {\n if (!this.getConfig(CONFIG_TRACK_SCROLL)) {\n return;\n }\n if (this.currentUrlBlocked()) {\n return;\n }\n\n var scrollTop = win.scrollY;\n var props = _.extend({'$scroll_top': scrollTop}, DEFAULT_PROPS);\n try {\n var scrollHeight = document$1.body.scrollHeight;\n var scrollPercentage = Math.round((scrollTop / (scrollHeight - win.innerHeight)) * 100);\n props['$scroll_height'] = scrollHeight;\n props['$scroll_percentage'] = scrollPercentage;\n } catch (err) {\n logger.critical('Error while calculating scroll percentage', err);\n }\n this.mp.track(MP_EV_SCROLL, props);\n }.bind(this)));\n};\n\nAutocapture.prototype.initSubmitTracking = function() {\n win.removeEventListener(EV_SUBMIT, this.listenerSubmit);\n\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n logger.log('Initializing submit tracking');\n\n this.listenerSubmit = win.addEventListener(EV_SUBMIT, function(ev) {\n if (!this.getConfig(CONFIG_TRACK_SUBMIT)) {\n return;\n }\n this.trackDomEvent(ev, MP_EV_SUBMIT);\n }.bind(this));\n};\n\n// TODO integrate error_reporter from mixpanel instance\nsafewrapClass(Autocapture);\n\n/* eslint camelcase: \"off\" */\n\n/**\n * DomTracker Object\n * @constructor\n */\nvar DomTracker = function() {};\n\n\n// interface\nDomTracker.prototype.create_properties = function() {};\nDomTracker.prototype.event_handler = function() {};\nDomTracker.prototype.after_track_handler = function() {};\n\nDomTracker.prototype.init = function(mixpanel_instance) {\n this.mp = mixpanel_instance;\n return this;\n};\n\n/**\n * @param {Object|string} query\n * @param {string} event_name\n * @param {Object=} properties\n * @param {function=} user_callback\n */\nDomTracker.prototype.track = function(query, event_name, properties, user_callback) {\n var that = this;\n var elements = _.dom_query(query);\n\n if (elements.length === 0) {\n console$1.error('The DOM query (' + query + ') returned 0 elements');\n return;\n }\n\n _.each(elements, function(element) {\n _.register_event(element, this.override_event, function(e) {\n var options = {};\n var props = that.create_properties(properties, this);\n var timeout = that.mp.get_config('track_links_timeout');\n\n that.event_handler(e, this, options);\n\n // in case the mixpanel servers don't get back to us in time\n window.setTimeout(that.track_callback(user_callback, props, options, true), timeout);\n\n // fire the tracking event\n that.mp.track(event_name, props, that.track_callback(user_callback, props, options));\n });\n }, this);\n\n return true;\n};\n\n/**\n * @param {function} user_callback\n * @param {Object} props\n * @param {boolean=} timeout_occured\n */\nDomTracker.prototype.track_callback = function(user_callback, props, options, timeout_occured) {\n timeout_occured = timeout_occured || false;\n var that = this;\n\n return function() {\n // options is referenced from both callbacks, so we can have\n // a 'lock' of sorts to ensure only one fires\n if (options.callback_fired) { return; }\n options.callback_fired = true;\n\n if (user_callback && user_callback(timeout_occured, props) === false) {\n // user can prevent the default functionality by\n // returning false from their callback\n return;\n }\n\n that.after_track_handler(props, options, timeout_occured);\n };\n};\n\nDomTracker.prototype.create_properties = function(properties, element) {\n var props;\n\n if (typeof(properties) === 'function') {\n props = properties(element);\n } else {\n props = _.extend({}, properties);\n }\n\n return props;\n};\n\n/**\n * LinkTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar LinkTracker = function() {\n this.override_event = 'click';\n};\n_.inherit(LinkTracker, DomTracker);\n\nLinkTracker.prototype.create_properties = function(properties, element) {\n var props = LinkTracker.superclass.create_properties.apply(this, arguments);\n\n if (element.href) { props['url'] = element.href; }\n\n return props;\n};\n\nLinkTracker.prototype.event_handler = function(evt, element, options) {\n options.new_tab = (\n evt.which === 2 ||\n evt.metaKey ||\n evt.ctrlKey ||\n element.target === '_blank'\n );\n options.href = element.href;\n\n if (!options.new_tab) {\n evt.preventDefault();\n }\n};\n\nLinkTracker.prototype.after_track_handler = function(props, options) {\n if (options.new_tab) { return; }\n\n setTimeout(function() {\n window.location = options.href;\n }, 0);\n};\n\n/**\n * FormTracker Object\n * @constructor\n * @extends DomTracker\n */\nvar FormTracker = function() {\n this.override_event = 'submit';\n};\n_.inherit(FormTracker, DomTracker);\n\nFormTracker.prototype.event_handler = function(evt, element, options) {\n options.element = element;\n evt.preventDefault();\n};\n\nFormTracker.prototype.after_track_handler = function(props, options) {\n setTimeout(function() {\n options.element.submit();\n }, 0);\n};\n\n/* eslint camelcase: \"off\" */\n\n/** @const */ var SET_ACTION = '$set';\n/** @const */ var SET_ONCE_ACTION = '$set_once';\n/** @const */ var UNSET_ACTION = '$unset';\n/** @const */ var ADD_ACTION = '$add';\n/** @const */ var APPEND_ACTION = '$append';\n/** @const */ var UNION_ACTION = '$union';\n/** @const */ var REMOVE_ACTION = '$remove';\n/** @const */ var DELETE_ACTION = '$delete';\n\n// Common internal methods for mixpanel.people and mixpanel.group APIs.\n// These methods shouldn't involve network I/O.\nvar apiActions = {\n set_action: function(prop, to) {\n var data = {};\n var $set = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set[k] = v;\n }\n }, this);\n } else {\n $set[prop] = to;\n }\n\n data[SET_ACTION] = $set;\n return data;\n },\n\n unset_action: function(prop) {\n var data = {};\n var $unset = [];\n if (!_.isArray(prop)) {\n prop = [prop];\n }\n\n _.each(prop, function(k) {\n if (!this._is_reserved_property(k)) {\n $unset.push(k);\n }\n }, this);\n\n data[UNSET_ACTION] = $unset;\n return data;\n },\n\n set_once_action: function(prop, to) {\n var data = {};\n var $set_once = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $set_once[k] = v;\n }\n }, this);\n } else {\n $set_once[prop] = to;\n }\n data[SET_ONCE_ACTION] = $set_once;\n return data;\n },\n\n union_action: function(list_name, values) {\n var data = {};\n var $union = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $union[k] = _.isArray(v) ? v : [v];\n }\n }, this);\n } else {\n $union[list_name] = _.isArray(values) ? values : [values];\n }\n data[UNION_ACTION] = $union;\n return data;\n },\n\n append_action: function(list_name, value) {\n var data = {};\n var $append = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $append[k] = v;\n }\n }, this);\n } else {\n $append[list_name] = value;\n }\n data[APPEND_ACTION] = $append;\n return data;\n },\n\n remove_action: function(list_name, value) {\n var data = {};\n var $remove = {};\n if (_.isObject(list_name)) {\n _.each(list_name, function(v, k) {\n if (!this._is_reserved_property(k)) {\n $remove[k] = v;\n }\n }, this);\n } else {\n $remove[list_name] = value;\n }\n data[REMOVE_ACTION] = $remove;\n return data;\n },\n\n delete_action: function() {\n var data = {};\n data[DELETE_ACTION] = '';\n return data;\n }\n};\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel Group Object\n * @constructor\n */\nvar MixpanelGroup = function() {};\n\n_.extend(MixpanelGroup.prototype, apiActions);\n\nMixpanelGroup.prototype._init = function(mixpanel_instance, group_key, group_id) {\n this._mixpanel = mixpanel_instance;\n this._group_key = group_key;\n this._group_id = group_id;\n};\n\n/**\n * Set properties on a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, dates, or lists\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Set properties on a group, only if they do not yet exist.\n * This will not overwrite previous group property values, unlike\n * group.set().\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').set_once('Location', '405 Howard');\n *\n * // or set multiple properties at once\n * mixpanel.get_group('company', 'mixpanel').set_once({\n * 'Location': '405 Howard',\n * 'Founded' : 2009,\n * });\n * // properties can be strings, integers, lists or dates\n *\n * @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n * @param {*} [to] A value to set on the given property name\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.set_once = addOptOutCheckMixpanelGroup(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/**\n * Unset properties on a group permanently.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').unset('Founded');\n *\n * @param {String} prop The name of the property.\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.unset = addOptOutCheckMixpanelGroup(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/**\n * Merge a given list with a list-valued group property, excluding duplicate values.\n *\n * ### Usage:\n *\n * // merge a value to a list, creating it if needed\n * mixpanel.get_group('company', 'mixpanel').union('Location', ['San Francisco', 'London']);\n *\n * @param {String} list_name Name of the property.\n * @param {Array} values Values to merge with the given property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.union = addOptOutCheckMixpanelGroup(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/**\n * Permanently delete a group.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').delete();\n *\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype['delete'] = addOptOutCheckMixpanelGroup(function(callback) {\n // bracket notation above prevents a minification error related to reserved words\n var data = this.delete_action();\n return this._send_request(data, callback);\n});\n\n/**\n * Remove a property from a group. The value will be ignored if doesn't exist.\n *\n * ### Usage:\n *\n * mixpanel.get_group('company', 'mixpanel').remove('Location', 'London');\n *\n * @param {String} list_name Name of the property.\n * @param {Object} value Value to remove from the given group property\n * @param {Function} [callback] If provided, the callback will be called after the tracking event\n */\nMixpanelGroup.prototype.remove = addOptOutCheckMixpanelGroup(function(list_name, value, callback) {\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\nMixpanelGroup.prototype._send_request = function(data, callback) {\n data['$group_key'] = this._group_key;\n data['$group_id'] = this._group_id;\n data['$token'] = this._get_config('token');\n\n var date_encoded_data = _.encodeDates(data);\n return this._mixpanel._track_or_batch({\n type: 'groups',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['groups'],\n batcher: this._mixpanel.request_batchers.groups\n }, callback);\n};\n\nMixpanelGroup.prototype._is_reserved_property = function(prop) {\n return prop === '$group_key' || prop === '$group_id';\n};\n\nMixpanelGroup.prototype._get_config = function(conf) {\n return this._mixpanel.get_config(conf);\n};\n\nMixpanelGroup.prototype.toString = function() {\n return this._mixpanel.toString() + '.group.' + this._group_key + '.' + this._group_id;\n};\n\n// MixpanelGroup Exports\nMixpanelGroup.prototype['remove'] = MixpanelGroup.prototype.remove;\nMixpanelGroup.prototype['set'] = MixpanelGroup.prototype.set;\nMixpanelGroup.prototype['set_once'] = MixpanelGroup.prototype.set_once;\nMixpanelGroup.prototype['union'] = MixpanelGroup.prototype.union;\nMixpanelGroup.prototype['unset'] = MixpanelGroup.prototype.unset;\nMixpanelGroup.prototype['toString'] = MixpanelGroup.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/**\n * Mixpanel People Object\n * @constructor\n */\nvar MixpanelPeople = function() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function(mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n // make sure that the referrer info has been updated and saved\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n }\n\n // update $set object with default people properties\n data[SET_ACTION] = _.extend(\n {},\n _.info.people_properties(),\n data[SET_ACTION]\n );\n return this._send_request(data, callback);\n});\n\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function(prop, to, callback) {\n var data = this.set_once_action(prop, to);\n if (_.isObject(prop)) {\n callback = to;\n }\n return this._send_request(data, callback);\n});\n\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function(prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function(prop, by, callback) {\n var data = {};\n var $add = {};\n if (_.isObject(prop)) {\n _.each(prop, function(v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console$1.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n $add[prop] = by;\n }\n data[ADD_ACTION] = $add;\n\n return this._send_request(data, callback);\n});\n\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function(list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function(list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n\n/*\n * Record that you have charged the current user a certain amount\n * of money. Charges recorded with track_charge() will appear in the\n * Mixpanel revenue report.\n *\n * ### Usage:\n *\n * // charge a user $50\n * mixpanel.people.track_charge(50);\n *\n * // charge a user $30.50 on the 2nd of january\n * mixpanel.people.track_charge(30.50, {\n * '$time': new Date('jan 1 2012')\n * });\n *\n * @param {Number} amount The amount of money charged to the current user\n * @param {Object} [properties] An associative array of properties associated with the charge\n * @param {Function} [callback] If provided, the callback will be called when the server responds\n * @deprecated\n */\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function(amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n if (isNaN(amount)) {\n console$1.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n\n/*\n * Permanently clear all revenue report transactions from the\n * current user's people analytics profile.\n *\n * ### Usage:\n *\n * mixpanel.people.clear_charges();\n *\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n * @deprecated\n */\nMixpanelPeople.prototype.clear_charges = function(callback) {\n return this.set('$transactions', [], callback);\n};\n\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\nMixpanelPeople.prototype.delete_user = function() {\n if (!this._identify_called()) {\n console$1.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n var data = {'$delete': this._mixpanel.get_distinct_id()};\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function() {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function(data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n var device_id = this._mixpanel.get_property('$device_id');\n var user_id = this._mixpanel.get_property('$user_id');\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n if (device_id) {\n data['$device_id'] = device_id;\n }\n if (user_id) {\n data['$user_id'] = user_id;\n }\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({status: -1, error: null});\n } else {\n callback(-1);\n }\n }\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/' + this._get_config('api_routes')['engage'],\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function(conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function() {\n return this._mixpanel._flags.identify_called === true;\n};\n\n// Queue up engage operations if identify hasn't been called yet.\nMixpanelPeople.prototype._enqueue = function(data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console$1.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function(action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n var queued_data = _.extend({}, this._mixpanel['persistence'].load_queue(action));\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n _this._mixpanel['persistence'].save();\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n action_method.call(_this, action_params, function(response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n};\n\n// Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\nMixpanelPeople.prototype._flush = function(\n _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n var _this = this;\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function(queue) { return _.keys(queue); });\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback);\n\n // we have to fire off each $append individually since there is\n // no concat method server side\n var $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n var append_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_queue = this._mixpanel['persistence'].load_queue(APPEND_ACTION);\n $append_item = $append_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n }\n }\n\n // same for $remove\n var $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n var remove_callback = function(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_queue = this._mixpanel['persistence'].load_queue(REMOVE_ACTION);\n $remove_item = $remove_queue.pop();\n _this._mixpanel['persistence'].save();\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function(prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n};\n\n// MixpanelPeople Exports\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Constants\n */\n/** @const */ var SET_QUEUE_KEY = '__mps';\n/** @const */ var SET_ONCE_QUEUE_KEY = '__mpso';\n/** @const */ var UNSET_QUEUE_KEY = '__mpus';\n/** @const */ var ADD_QUEUE_KEY = '__mpa';\n/** @const */ var APPEND_QUEUE_KEY = '__mpap';\n/** @const */ var REMOVE_QUEUE_KEY = '__mpr';\n/** @const */ var UNION_QUEUE_KEY = '__mpu';\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\n/** @const */ var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';\n/** @const */ var ALIAS_ID_KEY = '__alias';\n/** @const */ var EVENT_TIMERS_KEY = '__timers';\n/** @const */ var RESERVED_PROPERTIES = [\n SET_QUEUE_KEY,\n SET_ONCE_QUEUE_KEY,\n UNSET_QUEUE_KEY,\n ADD_QUEUE_KEY,\n APPEND_QUEUE_KEY,\n REMOVE_QUEUE_KEY,\n UNION_QUEUE_KEY,\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n EVENT_TIMERS_KEY\n];\n\n/**\n * Mixpanel Persistence Object\n * @constructor\n */\nvar MixpanelPersistence = function(config) {\n this['props'] = {};\n this.campaign_params_saved = false;\n\n if (config['persistence_name']) {\n this.name = 'mp_' + config['persistence_name'];\n } else {\n this.name = 'mp_' + config['token'] + '_mixpanel';\n }\n\n var storage_type = config['persistence'];\n if (storage_type !== 'cookie' && storage_type !== 'localStorage') {\n console$1.critical('Unknown persistence type ' + storage_type + '; falling back to cookie');\n storage_type = config['persistence'] = 'cookie';\n }\n\n if (storage_type === 'localStorage' && _.localStorage.is_supported()) {\n this.storage = _.localStorage;\n } else {\n this.storage = _.cookie;\n }\n\n this.load();\n this.update_config(config);\n this.upgrade();\n this.save();\n};\n\nMixpanelPersistence.prototype.properties = function() {\n var p = {};\n\n this.load();\n\n // Filter out reserved properties\n _.each(this['props'], function(v, k) {\n if (!_.include(RESERVED_PROPERTIES, k)) {\n p[k] = v;\n }\n });\n return p;\n};\n\nMixpanelPersistence.prototype.load = function() {\n if (this.disabled) { return; }\n\n var entry = this.storage.parse(this.name);\n\n if (entry) {\n this['props'] = _.extend({}, entry);\n }\n};\n\nMixpanelPersistence.prototype.upgrade = function() {\n var old_cookie,\n old_localstorage;\n\n // if transferring from cookie to localStorage or vice-versa, copy existing\n // super properties over to new storage mode\n if (this.storage === _.localStorage) {\n old_cookie = _.cookie.parse(this.name);\n\n _.cookie.remove(this.name);\n _.cookie.remove(this.name, true);\n\n if (old_cookie) {\n this.register_once(old_cookie);\n }\n } else if (this.storage === _.cookie) {\n old_localstorage = _.localStorage.parse(this.name);\n\n _.localStorage.remove(this.name);\n\n if (old_localstorage) {\n this.register_once(old_localstorage);\n }\n }\n};\n\nMixpanelPersistence.prototype.save = function() {\n if (this.disabled) { return; }\n\n this.storage.set(\n this.name,\n _.JSONEncode(this['props']),\n this.expire_days,\n this.cross_subdomain,\n this.secure,\n this.cross_site,\n this.cookie_domain\n );\n};\n\nMixpanelPersistence.prototype.load_prop = function(key) {\n this.load();\n return this['props'][key];\n};\n\nMixpanelPersistence.prototype.remove = function() {\n // remove both domain and subdomain cookies\n this.storage.remove(this.name, false, this.cookie_domain);\n this.storage.remove(this.name, true, this.cookie_domain);\n};\n\n// removes the storage entry and deletes all loaded data\n// forced name for tests\nMixpanelPersistence.prototype.clear = function() {\n this.remove();\n this['props'] = {};\n};\n\n/**\n* @param {Object} props\n* @param {*=} default_value\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register_once = function(props, default_value, days) {\n if (_.isObject(props)) {\n if (typeof(default_value) === 'undefined') { default_value = 'None'; }\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n\n _.each(props, function(val, prop) {\n if (!this['props'].hasOwnProperty(prop) || this['props'][prop] === default_value) {\n this['props'][prop] = val;\n }\n }, this);\n\n this.save();\n\n return true;\n }\n return false;\n};\n\n/**\n* @param {Object} props\n* @param {number=} days\n*/\nMixpanelPersistence.prototype.register = function(props, days) {\n if (_.isObject(props)) {\n this.expire_days = (typeof(days) === 'undefined') ? this.default_expiry : days;\n\n this.load();\n _.extend(this['props'], props);\n this.save();\n\n return true;\n }\n return false;\n};\n\nMixpanelPersistence.prototype.unregister = function(prop) {\n this.load();\n if (prop in this['props']) {\n delete this['props'][prop];\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.update_search_keyword = function(referrer) {\n this.register(_.info.searchInfo(referrer));\n};\n\n// EXPORTED METHOD, we test this directly.\nMixpanelPersistence.prototype.update_referrer_info = function(referrer) {\n // If referrer doesn't exist, we want to note the fact that it was type-in traffic.\n this.register_once({\n '$initial_referrer': referrer || '$direct',\n '$initial_referring_domain': _.info.referringDomain(referrer) || '$direct'\n }, '');\n};\n\nMixpanelPersistence.prototype.get_referrer_info = function() {\n return _.strip_empty_properties({\n '$initial_referrer': this['props']['$initial_referrer'],\n '$initial_referring_domain': this['props']['$initial_referring_domain']\n });\n};\n\nMixpanelPersistence.prototype.update_config = function(config) {\n this.default_expiry = this.expire_days = config['cookie_expiration'];\n this.set_disabled(config['disable_persistence']);\n this.set_cookie_domain(config['cookie_domain']);\n this.set_cross_site(config['cross_site_cookie']);\n this.set_cross_subdomain(config['cross_subdomain_cookie']);\n this.set_secure(config['secure_cookie']);\n};\n\nMixpanelPersistence.prototype.set_disabled = function(disabled) {\n this.disabled = disabled;\n if (this.disabled) {\n this.remove();\n } else {\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cookie_domain = function(cookie_domain) {\n if (cookie_domain !== this.cookie_domain) {\n this.remove();\n this.cookie_domain = cookie_domain;\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_site = function(cross_site) {\n if (cross_site !== this.cross_site) {\n this.cross_site = cross_site;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.set_cross_subdomain = function(cross_subdomain) {\n if (cross_subdomain !== this.cross_subdomain) {\n this.cross_subdomain = cross_subdomain;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype.get_cross_subdomain = function() {\n return this.cross_subdomain;\n};\n\nMixpanelPersistence.prototype.set_secure = function(secure) {\n if (secure !== this.secure) {\n this.secure = secure ? true : false;\n this.remove();\n this.save();\n }\n};\n\nMixpanelPersistence.prototype._add_to_people_queue = function(queue, data) {\n var q_key = this._get_queue_key(queue),\n q_data = data[queue],\n set_q = this._get_or_create_queue(SET_ACTION),\n set_once_q = this._get_or_create_queue(SET_ONCE_ACTION),\n unset_q = this._get_or_create_queue(UNSET_ACTION),\n add_q = this._get_or_create_queue(ADD_ACTION),\n union_q = this._get_or_create_queue(UNION_ACTION),\n remove_q = this._get_or_create_queue(REMOVE_ACTION, []),\n append_q = this._get_or_create_queue(APPEND_ACTION, []);\n\n if (q_key === SET_QUEUE_KEY) {\n // Update the set queue - we can override any existing values\n _.extend(set_q, q_data);\n // if there was a pending increment, override it\n // with the set.\n this._pop_from_people_queue(ADD_ACTION, q_data);\n // if there was a pending union, override it\n // with the set.\n this._pop_from_people_queue(UNION_ACTION, q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === SET_ONCE_QUEUE_KEY) {\n // only queue the data if there is not already a set_once call for it.\n _.each(q_data, function(v, k) {\n if (!(k in set_once_q)) {\n set_once_q[k] = v;\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNSET_QUEUE_KEY) {\n _.each(q_data, function(prop) {\n\n // undo previously-queued actions on this key\n _.each([set_q, set_once_q, add_q, union_q], function(enqueued_obj) {\n if (prop in enqueued_obj) {\n delete enqueued_obj[prop];\n }\n });\n _.each(append_q, function(append_obj) {\n if (prop in append_obj) {\n delete append_obj[prop];\n }\n });\n\n unset_q[prop] = true;\n\n });\n } else if (q_key === ADD_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n // If it exists in the set queue, increment\n // the value\n if (k in set_q) {\n set_q[k] += v;\n } else {\n // If it doesn't exist, update the add\n // queue\n if (!(k in add_q)) {\n add_q[k] = 0;\n }\n add_q[k] += v;\n }\n }, this);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === UNION_QUEUE_KEY) {\n _.each(q_data, function(v, k) {\n if (_.isArray(v)) {\n if (!(k in union_q)) {\n union_q[k] = [];\n }\n // We may send duplicates, the server will dedup them.\n union_q[k] = union_q[k].concat(v);\n }\n });\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n } else if (q_key === REMOVE_QUEUE_KEY) {\n remove_q.push(q_data);\n this._pop_from_people_queue(APPEND_ACTION, q_data);\n } else if (q_key === APPEND_QUEUE_KEY) {\n append_q.push(q_data);\n this._pop_from_people_queue(UNSET_ACTION, q_data);\n }\n\n console$1.log('MIXPANEL PEOPLE REQUEST (QUEUED, PENDING IDENTIFY):');\n console$1.log(data);\n\n this.save();\n};\n\nMixpanelPersistence.prototype._pop_from_people_queue = function(queue, data) {\n var q = this['props'][this._get_queue_key(queue)];\n if (!_.isUndefined(q)) {\n _.each(data, function(v, k) {\n if (queue === APPEND_ACTION || queue === REMOVE_ACTION) {\n // list actions: only remove if both k+v match\n // e.g. remove should not override append in a case like\n // append({foo: 'bar'}); remove({foo: 'qux'})\n _.each(q, function(queued_action) {\n if (queued_action[k] === v) {\n delete queued_action[k];\n }\n });\n } else {\n delete q[k];\n }\n }, this);\n }\n};\n\nMixpanelPersistence.prototype.load_queue = function(queue) {\n return this.load_prop(this._get_queue_key(queue));\n};\n\nMixpanelPersistence.prototype._get_queue_key = function(queue) {\n if (queue === SET_ACTION) {\n return SET_QUEUE_KEY;\n } else if (queue === SET_ONCE_ACTION) {\n return SET_ONCE_QUEUE_KEY;\n } else if (queue === UNSET_ACTION) {\n return UNSET_QUEUE_KEY;\n } else if (queue === ADD_ACTION) {\n return ADD_QUEUE_KEY;\n } else if (queue === APPEND_ACTION) {\n return APPEND_QUEUE_KEY;\n } else if (queue === REMOVE_ACTION) {\n return REMOVE_QUEUE_KEY;\n } else if (queue === UNION_ACTION) {\n return UNION_QUEUE_KEY;\n } else {\n console$1.error('Invalid queue:', queue);\n }\n};\n\nMixpanelPersistence.prototype._get_or_create_queue = function(queue, default_val) {\n var key = this._get_queue_key(queue);\n default_val = _.isUndefined(default_val) ? {} : default_val;\n return this['props'][key] || (this['props'][key] = default_val);\n};\n\nMixpanelPersistence.prototype.set_event_timer = function(event_name, timestamp) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n timers[event_name] = timestamp;\n this['props'][EVENT_TIMERS_KEY] = timers;\n this.save();\n};\n\nMixpanelPersistence.prototype.remove_event_timer = function(event_name) {\n var timers = this.load_prop(EVENT_TIMERS_KEY) || {};\n var timestamp = timers[event_name];\n if (!_.isUndefined(timestamp)) {\n delete this['props'][EVENT_TIMERS_KEY][event_name];\n this.save();\n }\n return timestamp;\n};\n\n/* eslint camelcase: \"off\" */\n\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\n// allow bundlers to specify how extra code (recorder bundle) should be loaded\n// eslint-disable-next-line no-unused-vars\nvar load_extra_bundle = function(src, _onload) {\n throw new Error(src + ' not available in this build.');\n};\n\nvar mixpanel_master; // main mixpanel instance / object\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function(x) {return x;};\nvar NOOP_FUNC = function() {};\n\n/** @const */ var PRIMARY_INSTANCE_NAME = 'mixpanel';\n/** @const */ var PAYLOAD_TYPE_BASE64 = 'base64';\n/** @const */ var PAYLOAD_TYPE_JSON = 'json';\n/** @const */ var DEVICE_ID_PREFIX = '$device:';\n\n\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\nvar USE_XHR = (win.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());\n\n// IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\nvar ENQUEUE_REQUESTS = !USE_XHR && (userAgent.indexOf('MSIE') === -1) && (userAgent.indexOf('Mozilla') === -1);\n\n// save reference to navigator.sendBeacon so it can be minified\nvar sendBeacon = null;\nif (navigator['sendBeacon']) {\n sendBeacon = function() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator['sendBeacon'].apply(navigator, arguments);\n };\n}\n\nvar DEFAULT_API_ROUTES = {\n 'track': 'track/',\n 'engage': 'engage/',\n 'groups': 'groups/',\n 'record': 'record/'\n};\n\n/*\n * Module-level globals\n */\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_routes': DEFAULT_API_ROUTES,\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'api_payload_format': PAYLOAD_TYPE_BASE64,\n 'app_host': 'https://mixpanel.com',\n 'autocapture': false,\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'error_reporter': NOOP_FUNC,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'mp_loader': null,\n 'track_marketing': true,\n 'track_pageview': false,\n 'skip_first_touch_marketing': false,\n 'store_google': true,\n 'stop_utm_persistence': false,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {}, // { header: value, header2: value }\n 'ignore_dnt': false,\n 'batch_requests': true,\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {},\n 'record_block_class': new RegExp('^(mp-block|fs-exclude|amp-block|rr-block|ph-no-capture)$'),\n 'record_block_selector': 'img, video',\n 'record_canvas': false,\n 'record_collect_fonts': false,\n 'record_idle_timeout_ms': 30 * 60 * 1000, // 30 minutes\n 'record_mask_text_class': new RegExp('^(mp-mask|fs-mask|amp-mask|rr-mask|ph-mask)$'),\n 'record_mask_text_selector': '*',\n 'record_max_ms': MAX_RECORDING_MS,\n 'record_min_ms': 0,\n 'record_sessions_percent': 0,\n 'recorder_src': 'https://cdn.mxpnl.com/libs/mixpanel-recorder.min.js'\n};\n\nvar DOM_LOADED = false;\n\n/**\n * Mixpanel Library Object\n * @constructor\n */\nvar MixpanelLib = function() {};\n\n\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\nvar create_mplib = function(token, config, name) {\n var instance,\n target = (name === PRIMARY_INSTANCE_NAME) ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console$1.error('You have already initialized ' + name);\n return;\n }\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n instance['people']._init(instance);\n\n if (!instance.get_config('skip_first_touch_marketing')) {\n // We need null UTM params in the object because\n // UTM parameters act as a tuple. If any UTM param\n // is present, then we set all UTM params including\n // empty ones together\n var utm_params = _.info.campaignParams(null);\n var initial_utm_params = {};\n var has_utm = false;\n _.each(utm_params, function(utm_value, utm_key) {\n initial_utm_params['initial_' + utm_key] = utm_value;\n if (utm_value) {\n has_utm = true;\n }\n });\n if (has_utm) {\n instance['people'].set_once(initial_utm_params);\n }\n }\n\n // if any instance on the page has debug = true, we set the\n // global debug to be true\n Config.DEBUG = Config.DEBUG || instance.get_config('debug');\n\n // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n instance._execute_array(target);\n }\n\n return instance;\n};\n\n// Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n this.report_error('You must name your new library: init(token, config, name)');\n return;\n }\n if (name === PRIMARY_INSTANCE_NAME) {\n this.report_error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n instance._loaded();\n\n return instance;\n};\n\n// mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\nMixpanelLib.prototype._init = function(token, config, name) {\n config = config || {};\n\n this['__loaded'] = true;\n this['config'] = {};\n\n var variable_features = {};\n\n // default to JSON payload for standard mixpanel.com API hosts\n if (!('api_payload_format' in config)) {\n var api_host = config['api_host'] || DEFAULT_CONFIG['api_host'];\n if (api_host.match(/\\.mixpanel\\.com/)) {\n variable_features['api_payload_format'] = PAYLOAD_TYPE_JSON;\n }\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': ((name === PRIMARY_INSTANCE_NAME) ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n\n this['_jsc'] = NOOP_FUNC;\n\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n };\n\n // set up request queueing/batching\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console$1.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n _.each(this.get_batcher_configs(), function(batcher_config) {\n console$1.log('Clearing batch queue ' + batcher_config.queue_key);\n _.localStorage.remove(batcher_config.queue_key);\n });\n } else {\n this.init_batchers();\n if (sendBeacon && win.addEventListener) {\n // Before page closes or hides (user tabs away etc), attempt to flush any events\n // queued up via navigator.sendBeacon. Since sendBeacon doesn't report success/failure,\n // events will not be removed from the persistent store; if the site is loaded again,\n // the events will be flushed again on startup and deduplicated on the Mixpanel server\n // side.\n // There is no reliable way to capture only page close events, so we lean on the\n // visibilitychange and pagehide events as recommended at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/unload_event#usage_notes.\n // These events fire when the user clicks away from the current page/tab, so will occur\n // more frequently than page unload, but are the only mechanism currently for capturing\n // this scenario somewhat reliably.\n var flush_on_unload = _.bind(function() {\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({unloading: true});\n }\n }, this);\n win.addEventListener('pagehide', function(ev) {\n if (ev['persisted']) {\n flush_on_unload();\n }\n });\n win.addEventListener('visibilitychange', function() {\n if (document$1['visibilityState'] === 'hidden') {\n flush_on_unload();\n }\n });\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n this._gdpr_init();\n\n var uuid = _.UUID();\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n }\n\n this.autocapture = new Autocapture(this);\n this.autocapture.init();\n\n if (this.get_config('record_sessions_percent') > 0 && Math.random() * 100 <= this.get_config('record_sessions_percent')) {\n this.start_session_recording();\n }\n};\n\nMixpanelLib.prototype.start_session_recording = addOptOutCheckMixpanelLib(function () {\n if (!win['MutationObserver']) {\n console$1.critical('Browser does not support MutationObserver; skipping session recording');\n return;\n }\n\n var handleLoadedRecorder = _.bind(function() {\n this._recorder = this._recorder || new win['__mp_recorder'](this);\n this._recorder['startRecording']();\n }, this);\n\n if (_.isUndefined(win['__mp_recorder'])) {\n load_extra_bundle(this.get_config('recorder_src'), handleLoadedRecorder);\n } else {\n handleLoadedRecorder();\n }\n});\n\nMixpanelLib.prototype.stop_session_recording = function () {\n if (this._recorder) {\n this._recorder['stopRecording']();\n } else {\n console$1.critical('Session recorder module not loaded');\n }\n};\n\nMixpanelLib.prototype.get_session_recording_properties = function () {\n var props = {};\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n props['$mp_replay_id'] = replay_id;\n }\n return props;\n};\n\nMixpanelLib.prototype.get_session_replay_url = function () {\n var replay_url = null;\n var replay_id = this._get_session_replay_id();\n if (replay_id) {\n var query_params = _.HTTPBuildQuery({\n 'replay_id': replay_id,\n 'distinct_id': this.get_distinct_id(),\n 'token': this.get_config('token')\n });\n replay_url = 'https://mixpanel.com/projects/replay-redirect?' + query_params;\n }\n return replay_url;\n};\n\nMixpanelLib.prototype._get_session_replay_id = function () {\n var replay_id = null;\n if (this._recorder) {\n replay_id = this._recorder['replayId'];\n }\n return replay_id || null;\n};\n\n// Private methods\n\nMixpanelLib.prototype._loaded = function() {\n this.get_config('loaded')(this);\n this._set_default_superprops();\n this['people'].set_once(this['persistence'].get_referrer_info());\n\n // `store_google` is now deprecated and previously stored UTM parameters are cleared\n // from persistence by default.\n if (this.get_config('store_google') && this.get_config('stop_utm_persistence')) {\n var utm_params = _.info.campaignParams(null);\n _.each(utm_params, function(_utm_value, utm_key) {\n // We need to unregister persisted UTM parameters so old values\n // are not mixed with the new UTM parameters\n this.unregister(utm_key);\n }.bind(this));\n }\n};\n\n// update persistence with info on referrer, UTM params, etc\nMixpanelLib.prototype._set_default_superprops = function() {\n this['persistence'].update_search_keyword(document$1.referrer);\n // Registering super properties for UTM persistence by 'store_google' is deprecated.\n if (this.get_config('store_google') && !this.get_config('stop_utm_persistence')) {\n this.register(_.info.campaignParams());\n }\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function() {\n _.each(this.__dom_loaded_queue, function(item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function(item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function(DomClass, args) {\n if (this.get_config('img')) {\n this.report_error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\nMixpanelLib.prototype._prepare_callback = function(callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function(response) {\n callback(response, data);\n };\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n jsc[randomized_cb] = function(response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function(url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n options = _.extend(DEFAULT_OPTIONS, options || {});\n if (!USE_XHR) {\n options.method = 'GET';\n }\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon';\n\n // needed to correctly format responses\n var verbose_mode = options.verbose;\n if (data['verbose']) { verbose_mode = true; }\n\n if (this.get_config('test')) { data['test'] = 1; }\n if (verbose_mode) { data['verbose'] = 1; }\n if (this.get_config('img')) { data['img'] = 1; }\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip')?1:0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n var lib = this;\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n lib.report_error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n\n var headers = this.get_config('xhr_headers');\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n _.each(headers, function(headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n }\n\n // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true;\n req.onreadystatechange = function () {\n if (req.readyState === 4) { // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n lib.report_error(e);\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n if (\n req.timeout &&\n !req.status &&\n new Date().getTime() - start_time >= req.timeout\n ) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n lib.report_error(error);\n if (callback) {\n if (verbose_mode) {\n var response_headers = req['responseHeaders'] || {};\n callback({status: 0, httpStatusCode: req['status'], error: error, retryAfter: response_headers['Retry-After']});\n } else {\n callback(0);\n }\n }\n }\n }\n };\n req.send(body_data);\n } catch (e) {\n lib.report_error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\nMixpanelLib.prototype._execute_array = function(array) {\n var fn_name, alias_calls = [], other_calls = [], tracking_calls = [];\n _.each(array, function(item) {\n if (item) {\n fn_name = item[0];\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof(item) === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof(this[fn_name]) === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function(calls, context) {\n _.each(calls, function(item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n _.each(item, function(call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n};\n\n// request queueing utils\n\nMixpanelLib.prototype.are_batchers_initialized = function() {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.get_batcher_configs = function() {\n var queue_prefix = '__mpq_' + this.get_config('token');\n var api_routes = this.get_config('api_routes');\n this._batcher_configs = this._batcher_configs || {\n events: {type: 'events', endpoint: '/' + api_routes['track'], queue_key: queue_prefix + '_ev'},\n people: {type: 'people', endpoint: '/' + api_routes['engage'], queue_key: queue_prefix + '_pp'},\n groups: {type: 'groups', endpoint: '/' + api_routes['groups'], queue_key: queue_prefix + '_gr'}\n };\n return this._batcher_configs;\n};\n\nMixpanelLib.prototype.init_batchers = function() {\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function(attrs) {\n return new RequestBatcher(\n attrs.queue_key,\n {\n libConfig: this['config'],\n errorReporter: this.get_config('error_reporter'),\n sendRequestFunc: _.bind(function(data, options, cb) {\n this._send_request(\n this.get_config('api_host') + attrs.endpoint,\n this._encode_data_for_request(data),\n options,\n this._prepare_callback(cb, data)\n );\n }, this),\n beforeSendHook: _.bind(function(item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this),\n stopAllBatchingFunc: _.bind(this.stop_batch_senders, this),\n usePersistence: true\n }\n );\n }, this);\n var batcher_configs = this.get_batcher_configs();\n this.request_batchers = {\n events: batcher_for(batcher_configs.events),\n people: batcher_for(batcher_configs.people),\n groups: batcher_for(batcher_configs.groups)\n };\n }\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function() {\n this._batchers_were_started = true;\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n _.each(this.request_batchers, function(batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function() {\n this._batch_requests = false;\n _.each(this.request_batchers, function(batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\nMixpanelLib.prototype.push = function(item) {\n this._execute_array([item]);\n};\n\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\nMixpanelLib.prototype.disable = function(events) {\n if (typeof(events) === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n};\n\nMixpanelLib.prototype._encode_data_for_request = function(data) {\n var encoded_data = _.JSONEncode(data);\n if (this.get_config('api_payload_format') === PAYLOAD_TYPE_BASE64) {\n encoded_data = _.base64Encode(encoded_data);\n }\n return {'data': encoded_data};\n};\n\n// internal method for handling track vs batch-enqueue logic\nMixpanelLib.prototype._track_or_batch = function(options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n\n var request_enqueued_or_initiated = true;\n var send_request_immediately = _.bind(function() {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n if (truncated_data) {\n console$1.log('MIXPANEL REQUEST:');\n console$1.log(truncated_data);\n return this._send_request(\n endpoint,\n this._encode_data_for_request(truncated_data),\n send_request_options,\n this._prepare_callback(callback, truncated_data)\n );\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data).then(function(succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function(event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n var should_send_immediately = options['send_immediately'];\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n }\n\n // set defaults\n properties = _.extend({}, properties);\n properties['token'] = this.get_config('token');\n\n // set $duration if time_event was previously called for this event\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops();\n\n var marketing_properties = this.get_config('track_marketing')\n ? _.info.marketingParams()\n : {};\n\n // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n\n // update properties with pageview info and super-properties\n properties = _.extend(\n {},\n _.info.properties({'mp_loader': this.get_config('mp_loader')}),\n marketing_properties,\n this['persistence'].properties(),\n this.unpersisted_superprops,\n this.get_session_recording_properties(),\n properties\n );\n\n var property_blacklist = this.get_config('property_blacklist');\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function(blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n this.report_error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/' + this.get_config('api_routes')['track'],\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n return ret;\n});\n\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function(group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n var prop = {};\n if (old_values === undefined) {\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n prop[group_key] = old_values;\n this.register(prop);\n }\n }\n return this['people'].union(group_key, group_id, callback);\n});\n\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function(group_key, group_id, callback) {\n var old_value = this.get_property(group_key);\n // if the value doesn't exist, the persistent store is unchanged\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({group_key: old_value});\n }\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n return this['people'].remove(group_key, group_id, callback);\n});\n\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function(event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n _.each(groups, function(v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n var group = this._cached_groups[map_key];\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n group._init(this, group_key, group_id);\n this._cached_groups[map_key] = group;\n }\n return group;\n};\n\n/**\n * Track a default Mixpanel page view event, which includes extra default event properties to\n * improve page view data.\n *\n * ### Usage:\n *\n * // track a default $mp_web_page_view event\n * mixpanel.track_pageview();\n *\n * // track a page view event with additional event properties\n * mixpanel.track_pageview({'ab_test_variant': 'card-layout-b'});\n *\n * // example approach to track page views on different page types as event properties\n * mixpanel.track_pageview({'page': 'pricing'});\n * mixpanel.track_pageview({'page': 'homepage'});\n *\n * // UNCOMMON: Tracking a page view event with a custom event_name option. NOT expected to be used for\n * // individual pages on the same site or product. Use cases for custom event_name may be page\n * // views on different products or internal applications that are considered completely separate\n * mixpanel.track_pageview({'page': 'customer-search'}, {'event_name': '[internal] Admin Page View'});\n *\n * ### Notes:\n *\n * The `config.track_pageview` option for mixpanel.init()\n * may be turned on for tracking page loads automatically.\n *\n * // track only page loads\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: true});\n *\n * // track when the URL changes in any manner\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'full-url'});\n *\n * // track when the URL changes, ignoring any changes in the hash part\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path-and-query-string'});\n *\n * // track when the path changes, ignoring any query parameter or hash changes\n * mixpanel.init(PROJECT_TOKEN, {track_pageview: 'url-with-path'});\n *\n * @param {Object} [properties] An optional set of additional properties to send with the page view event\n * @param {Object} [options] Page view tracking options\n * @param {String} [options.event_name] - Alternate name for the tracking event\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\nMixpanelLib.prototype.track_pageview = addOptOutCheckMixpanelLib(function(properties, options) {\n if (typeof properties !== 'object') {\n properties = {};\n }\n options = options || {};\n var event_name = options['event_name'] || '$mp_web_page_view';\n\n var default_page_properties = _.extend(\n _.info.mpPageViewProperties(),\n _.info.campaignParams(),\n _.info.clickParams()\n );\n\n var event_properties = _.extend(\n {},\n default_page_properties,\n properties\n );\n\n return this.track(event_name, event_properties);\n});\n\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\nMixpanelLib.prototype.track_links = function() {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\nMixpanelLib.prototype.track_forms = function() {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\nMixpanelLib.prototype.time_event = function(event_name) {\n if (_.isUndefined(event_name)) {\n this.report_error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\nvar options_for_register = function(days_or_options) {\n var options;\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {'days': days_or_options};\n } else {\n options = {};\n }\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register = function(props, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.register_once = function(props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof(default_value) === 'undefined') {\n default_value = 'None';\n }\n _.each(props, function(val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\nMixpanelLib.prototype.unregister = function(property, options) {\n options = options_for_register(options);\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function(prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\nMixpanelLib.prototype.identify = function(\n new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback\n) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n\n var previous_distinct_id = this.get_distinct_id();\n if (new_distinct_id && previous_distinct_id !== new_distinct_id) {\n // we allow the following condition if previous distinct_id is same as new_distinct_id\n // so that you can force flush people updates for anonymous profiles.\n if (typeof new_distinct_id === 'string' && new_distinct_id.indexOf(DEVICE_ID_PREFIX) === 0) {\n this.report_error('distinct_id cannot have $device: prefix');\n return -1;\n }\n this.register({'$user_id': new_distinct_id});\n }\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n }\n\n // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({'distinct_id': new_distinct_id});\n }\n this._flags.identify_called = true;\n // Flush any queued up people requests\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback);\n\n // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {skip_hooks: true});\n }\n};\n\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\nMixpanelLib.prototype.reset = function() {\n this['persistence'].clear();\n this._flags.identify_called = false;\n var uuid = _.UUID();\n this.register_once({\n 'distinct_id': DEVICE_ID_PREFIX + uuid,\n '$device_id': uuid\n }, '');\n};\n\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\nMixpanelLib.prototype.get_distinct_id = function() {\n return this.get_property('distinct_id');\n};\n\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\nMixpanelLib.prototype.alias = function(alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n this.report_error('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function() {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n this.report_error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\nMixpanelLib.prototype.name_tag = function(name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // host for requests (customizable for e.g. a local proxy)\n * api_host: 'https://api-js.mixpanel.com',\n *\n * // endpoints for different types of requests\n * api_routes: {\n * track: 'track/',\n * engage: 'engage/',\n * groups: 'groups/',\n * }\n *\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // request-batching/queueing/retry\n * batch_requests: true,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // disables enriching user profiles with first touch marketing data\n * skip_first_touch_marketing: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // adds any UTM parameters and click IDs present on the page to any events fired\n * track_marketing: true\n *\n * // enables automatic page view tracking using default page view events through\n * // the track_pageview() method\n * track_pageview: false\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\nMixpanelLib.prototype.set_config = function(config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n if (new_batch_size) {\n _.each(this.request_batchers, function(batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n\n if ('autocapture' in config && this.autocapture) {\n this.autocapture.init();\n }\n }\n};\n\n/**\n * returns the current config object for the library.\n */\nMixpanelLib.prototype.get_config = function(prop_name) {\n return this['config'][prop_name];\n};\n\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\nMixpanelLib.prototype._run_hook = function(hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n if (typeof ret === 'undefined') {\n this.report_error(hook_name + ' hook did not return a value');\n ret = null;\n }\n return ret;\n};\n\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\nMixpanelLib.prototype.get_property = function(property_name) {\n return this['persistence'].load_prop([property_name]);\n};\n\nMixpanelLib.prototype.toString = function() {\n var name = this.get_config('name');\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function(event_name) {\n return _.isBlockedUA(userAgent) ||\n this._flags.disable_all_events ||\n _.include(this.__disabled_events, event_name);\n};\n\n// perform some housekeeping around GDPR opt-in/out state\nMixpanelLib.prototype._gdpr_init = function() {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage';\n\n // try to convert opt-in/out cookies to localStorage if possible\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({'persistence_type': 'cookie'})) {\n this.opt_in_tracking({'enable_persistence': false});\n }\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({'persistence_type': 'cookie'})) {\n this.opt_out_tracking({'clear_persistence': false});\n }\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n }\n\n // check whether the user has already opted out - if so, clear & disable persistence\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({'clear_persistence': true});\n\n // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n } else if (!this.has_opted_in_tracking() && (\n this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout')\n )) {\n _.cookie.remove('mp_optout');\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\nMixpanelLib.prototype._gdpr_update_persistence = function(options) {\n var disabled;\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n this.stop_batch_senders();\n } else {\n // only start batchers after opt-in if they have previously been started\n // in order to avoid unintentionally starting up batching for the first time\n if (this._batchers_were_started) {\n this.start_batch_senders();\n }\n }\n};\n\n// call a base gdpr function after constructing the appropriate token and options args\nMixpanelLib.prototype._gdpr_call_func = function(func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options);\n\n // check if localStorage can be used for recording opt out status, fall back to cookie if not\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_in_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.opt_out_tracking = function(options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options);\n\n // delete user and clear charges since these methods may be disabled by opt-out\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n this._gdpr_update_persistence(options);\n};\n\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\nMixpanelLib.prototype.has_opted_in_tracking = function(options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\nMixpanelLib.prototype.has_opted_out_tracking = function(options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage:\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\nMixpanelLib.prototype.clear_opt_in_out_tracking = function(options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n this._gdpr_update_persistence(options);\n};\n\nMixpanelLib.prototype.report_error = function(msg, err) {\n console$1.error.apply(console$1.error, arguments);\n try {\n if (!err && !(msg instanceof Error)) {\n msg = new Error(msg);\n }\n this.get_config('error_reporter')(msg, err);\n } catch(err) {\n console$1.error(err);\n }\n};\n\n// EXPORTS (for closure compiler)\n\n// MixpanelLib Exports\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders;\nMixpanelLib.prototype['start_session_recording'] = MixpanelLib.prototype.start_session_recording;\nMixpanelLib.prototype['stop_session_recording'] = MixpanelLib.prototype.stop_session_recording;\nMixpanelLib.prototype['get_session_recording_properties'] = MixpanelLib.prototype.get_session_recording_properties;\nMixpanelLib.prototype['get_session_replay_url'] = MixpanelLib.prototype.get_session_replay_url;\nMixpanelLib.prototype['DEFAULT_API_ROUTES'] = DEFAULT_API_ROUTES;\n\n// MixpanelPersistence Exports\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n\nvar instances = {};\nvar extend_mp = function() {\n // add all the sub mixpanel instances\n _.each(instances, function(instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) { mixpanel_master[name] = instance; }\n });\n\n // add private functions as _\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function(token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n mixpanel_master[name]._loaded();\n }\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n instance._loaded();\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n if (init_type === INIT_SNIPPET) {\n win[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) { return; }\n dom_loaded_handler.done = true;\n\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function(inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch(e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler);\n\n // check to make sure we arn't in a frame\n var toplevel = false;\n try {\n toplevel = win.frameElement === null;\n } catch(e) {\n // noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n }\n\n // fallback handler, always will work\n _.register_event(win, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module(bundle_loader) {\n load_extra_bundle = bundle_loader;\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n\n return mixpanel_master;\n}\n\n// For loading separate bundles asynchronously via script tag\n\n// For builds that have everything in one bundle, no extra work.\nfunction loadNoop (_src, onload) {\n onload();\n}\n\n/* eslint camelcase: \"off\" */\n\nvar mixpanel = init_as_module(loadNoop);\n\nexport { mixpanel as default };\n","import mixpanel from 'mixpanel-browser'\n\nimport { captureException } from 'shared/sentry'\nimport { isProductionBuild } from 'utils/isProductionBuild'\n\nconst mixpanelToken = process.env.NEXT_PUBLIC_MIXPANEL_TOKEN\nconst proxyRootUrl = process.env.NEXT_PUBLIC_PROXY_ROOT_URL\n\ntype GenericProperties = { [key: string]: any }\n\nif (!mixpanelToken) {\n throw new Error(`Analytics Client has not found mixpanel token.`)\n}\n\nconst getApiHostURL = () => {\n // Get staging or production proxy url\n if (proxyRootUrl) {\n return proxyRootUrl\n }\n // In case that prod environments do not find proxy, throw error to sentry\n if (process.env.NODE_ENV == 'production') {\n captureException(new Error('Analytics Client has not found proxy.'))\n }\n // Return undefined in case of dev environment, route events straight\n // to client.\n return undefined\n}\n\n/**\n * TODO Only need this for the experiment agency Journey Further to send events to Mixpanel\n * so we can properly track experiment results. We can remove this afterwards\n * I _think_ the main downside here is it means Mixpanel will be imported on every page.\n * I think we must be doing this everywhere anyway, because we at least track page views\n * if not other events. So hopefully as a temporary measure it's worth the upside\n */\nif (typeof window !== 'undefined') {\n // This will run the callback when the browser is idle\n const callback = () => {\n // @ts-ignore\n window.mixpanel = mixpanel\n }\n\n // Support older browsers\n if ('requestIdleCallback' in window) {\n // Requestidle callback will run at least within 2 seconds\n requestIdleCallback(callback, { timeout: 2000 })\n } else {\n setTimeout(callback, 500) // shorter delay as fallback since this is the minimum\n }\n}\n\nclass AnalyticsClient {\n /* All methods on this class which contact the API MUST be gated\n with a check on `hasAcceptedCookies`. Similarly all setup code can only\n be run in the `authorize` method which configures this property. */\n\n hasCalledInit = false\n hasAcceptedCookies = false\n\n /* This won't start sending events until `init` has also been called,\n when we're on the client (i.e. not SSR) *and* the user is logged in.\n This should not be called after a mixpanel cookie has been set. */\n authorize = () => {\n if (this.hasAcceptedCookies) return\n this.hasAcceptedCookies = true\n if (!this.hasCalledInit) return\n\n // replaces any existing cookies\n return mixpanel.set_config({ disable_persistence: false })\n }\n\n /* This will start sending events but the user is anonymous (no cookies are stored)\n until they log in, sign up or accept cookies */\n init = () => {\n if (this.hasCalledInit) return\n\n if (!mixpanelToken) {\n throw new Error(`Analytics Client has not found mixpanel token.`)\n }\n\n this.hasCalledInit = true\n\n return mixpanel.init(mixpanelToken, {\n disable_persistence: true, // this can be enabled when cookies are accepted\n api_host: getApiHostURL(),\n record_sessions_percent: 1,\n // debug: true, // uncomment to see more info about events in browser console (very useful for debugging)\n })\n }\n\n /* Makes sure we have initted before running any event,\n and also catch any errors without interupting use */\n _handleEvent = (trackingFn: Function) => {\n try {\n if (!isProductionBuild) {\n console.count('📫 Sending event to Mixpanel')\n }\n trackingFn()\n } catch (e) {\n captureException(e)\n }\n }\n\n // Get user agent for debugging\n userAgent = global.navigator?.userAgent\n\n mandatoryProps = {\n channel: 'web',\n 'User Agent': this.userAgent,\n }\n\n // Send and event name with no properties\n track = (eventName: string) => {\n const event = () => mixpanel.track(eventName, this.mandatoryProps)\n this._handleEvent(event)\n }\n\n // Track event with properties\n trackWithProperties = (eventName: string, props: GenericProperties) => {\n const event = () =>\n mixpanel.track(eventName, {\n ...props,\n ...this.mandatoryProps,\n })\n this._handleEvent(event)\n }\n\n // set people properties\n // You should pass in any props with spacing, e.g:\n // { 'Has Robo': true }\n // Note: this will not work for anonymous users unless they end up logging in / signing up\n // there is an option to make an additional identify call with the user's distinct_id, but\n // MP recommends against this due to identity merge issues.\n set = (props: GenericProperties) => {\n const event = () => mixpanel.people.set(props)\n this._handleEvent(event)\n }\n\n // Set to people properties - cannot be overwritten\n setOnce = (props: GenericProperties) => {\n const event = () => mixpanel.people.set_once(props)\n this._handleEvent(event)\n }\n\n increment = (eventName: string, value: number) => {\n const event = () => mixpanel.people.increment(eventName, value)\n this._handleEvent(event)\n }\n\n // identify on login\n identify = (identity: string) => {\n const event = () => mixpanel.identify(identity)\n this._handleEvent(event)\n }\n\n // Reset identify on log out\n reset = () => {\n const event = () => mixpanel.reset()\n this._handleEvent(event)\n }\n\n // alias on signup. Do not call alias multiple times with the same user.\n // TODO: this is now legacy, we should remove this and use identify instead\n alias = (identity: string) => {\n const event = () => mixpanel.alias(identity)\n this._handleEvent(event)\n }\n\n // Register super properties that fire on every event, optionally specify for how long to keep these properties, in days\n register = (props: GenericProperties, days?: number) => {\n const event = () => mixpanel.register(props, days)\n this._handleEvent(event)\n }\n}\n\nconst analyticsClient = new AnalyticsClient()\n\nexport default analyticsClient\n","import type { IncomingMessage } from 'http'\n\nimport cookie from 'cookie'\n\nimport { DAY_IN_SECONDS } from './useCookies'\n\nexport const TOKEN_KEY = '__finimize_laga_token__'\n\nexport function setAuthToken(token: string) {\n document.cookie = cookie.serialize(TOKEN_KEY, token, {\n maxAge: 30 * DAY_IN_SECONDS, // 30 days\n path: '/',\n })\n}\n\nexport function removeAuthToken() {\n document.cookie = cookie.serialize(TOKEN_KEY, '', {\n expires: new Date('Thu, 01 Jan 1970 00:00:01 GMT'),\n path: '/',\n })\n}\n\nexport function parseCookies(req?: IncomingMessage, options: any = {}) {\n const parsedCookie = cookie.parse(req ? req.headers.cookie || '' : document.cookie, options)\n return parsedCookie\n}\n\nexport function getLoginToken(req?: IncomingMessage) {\n return parseCookies(req)[TOKEN_KEY]\n}\n\nexport function getAuthHeaderFromCookie(req: IncomingMessage): string | undefined {\n const token = getLoginToken(req)\n\n return token ? `Token ${token}` : undefined\n}\n\nfunction getCookie(name: string) {\n let cookieValue = null\n if (document.cookie && document.cookie !== '') {\n const cookies = document.cookie.split(';')\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim()\n // Does this cookie string begin with the name we want?\n if (cookie.substring(0, name.length + 1) === name + '=') {\n cookieValue = decodeURIComponent(cookie.substring(name.length + 1))\n break\n }\n }\n }\n return cookieValue\n}\n\nexport function getCsrfToken() {\n return process && process['browser'] ? getCookie('csrftoken') : undefined\n}\n","import isFunction from 'lodash/isFunction'\nimport { commitMutation } from 'react-relay'\nimport type { PayloadError, MutationConfig, Environment } from 'relay-runtime'\n\nimport { wafCaptchaErrorMessage } from 'modules/Captcha/consts'\nimport { captureException } from 'shared/sentry'\n\n// Executes a mutation\n// and returns its results as a Promise.\nconst createMutationPromise =\n

(relayEnv: Environment) =>\n (mutationParams: MutationConfig) =>\n new Promise

((resolve, reject) => {\n //@ts-ignore\n commitMutation(relayEnv, {\n ...mutationParams,\n onCompleted: (response: any, errors: any) => {\n if (isFunction(mutationParams.onCompleted)) {\n mutationParams.onCompleted(response, errors)\n }\n\n if (errors) {\n const defaultError = {\n message: 'Oops, something went wrong. Please try again later.',\n }\n const fmzError =\n errors.find((e: any) => 'message' in e) ||\n errors.find((e: any) => 'debug' in e) ||\n defaultError\n\n reject(fmzError)\n } else {\n resolve(response)\n }\n },\n onError: (_err?: PayloadError) => {\n if (!_err) {\n captureException(\n new Error(\n 'Relay Mutation returned error case, but no error was passed to catch block',\n ),\n )\n } else if (_err.message === wafCaptchaErrorMessage) {\n reject({ message: wafCaptchaErrorMessage })\n } else {\n captureException(_err)\n }\n\n reject({\n message: 'We are experiencing network issues. Please try again later.',\n })\n },\n })\n })\n\nexport default createMutationPromise\n","/**\n * This header is used to identify requests made by cypress\n *\n * IMPORTANT: If this ever changes, we need to also change in Django settings &\n * AWS WAF to ensure requests in the cypress env are successfully whitelisted\n */\nexport const CYPRESS_ENV_HEADER = 'X-Cypress-Finimize'\n\nexport const headersToAddGlobally = [[CYPRESS_ENV_HEADER, 'true']]\n","import { ALLOWANCE_FINISHED_COOKIE_NAME } from 'lib/freeArticleAllowance/consts'\n\n//https://docs.aws.amazon.com/waf/latest/developerguide/waf-tokens-details.html\n// Should be moved alongside WAF module/logic if we create one at some point\nconst AWS_WAF_COOKIE_NAME = 'aws-waf-token'\n\n// Add any cookie names we want to pass onto\n// Django here. Seems sensible to whitelist rather\n// than blacklist here, but could change if we wanted\nexport const cookiesToProxyToBackend = [ALLOWANCE_FINISHED_COOKIE_NAME, AWS_WAF_COOKIE_NAME]\n","export const isServer = typeof window === 'undefined'\n","import { useMemo } from 'react'\n\nimport type { GetStaticPropsContext, NextPageContext } from 'next'\nimport type { GraphQLResponse, Record, Variables } from 'relay-runtime'\nimport { Environment, Network, RecordSource, Store } from 'relay-runtime'\nimport setCookieParser from 'set-cookie-parser'\nimport { v4 as uuid } from 'uuid'\n\nimport { getAuthHeaderFromCookie, getCsrfToken } from './cookieAuth'\n\nimport { EXPERIMENTS_PREFIX } from 'components/Experiments/useExperiments'\nimport { CYPRESS_ENV_HEADER } from 'consts/testing'\nimport { cookiesToProxyToBackend } from 'lib/cookiesToProxy'\nimport {\n maxWafChallengeRetries,\n wafCaptchaErrorMessage,\n wafChallengeStatusCode,\n wafChallengeRetryDelayMs,\n wafCaptchaStatusCode,\n} from 'modules/Captcha/consts'\nimport { isServer } from 'utils/isServer'\n\n// only happens on server. The csrf token is not passed\n// all the way to the client by default, so we have\n// to explicitly pass it over\nexport function proxySetCookieToBrowser(context: NextPageContext | null) {\n return (response: Response) => {\n if (!process.browser) {\n const setCookieHeader = response.headers.get('set-cookie')\n if (context && context.res && context.res.setHeader && setCookieHeader) {\n // Seemingly node fetch decides to concatenate all set cookie headers into one string: https://stackoverflow.com/questions/63204093/how-to-get-set-multiple-set-cookie-headers-using-fetch-api\n // The browser then cannot read this properly, and just sets the first cookie\n // To work round this, we have to parse the string. This isn't simple because you cannot just assume\n // comma separation due to dates having commas https://github.com/node-fetch/node-fetch/issues/771#issuecomment-660411881\n const cookiesToSet = setCookieParser.splitCookiesString(setCookieHeader)\n\n context.res.setHeader('Set-Cookie', cookiesToSet)\n }\n }\n }\n}\n\nexport const getRelayUri = (): string => {\n const proxyHost = process.env.PROXY_HOST\n\n if (isServer) {\n if (!proxyHost) {\n throw new Error('process.env.PROXY_HOST not set')\n }\n\n return proxyHost\n }\n\n return '/api/graphql-web'\n}\n\nexport function getCookiesToProxyToRequest(cookieHeader?: string): string {\n if (!cookieHeader) return ''\n\n const cookies = cookieHeader.split(';').map(cookie => cookie.trim())\n\n const cookieShouldBeProxied = (cookie: string): boolean => {\n // currently in format cookieName=cookieValue\n const cookieName = cookie.split('=')[0]\n\n if (cookieName.startsWith(EXPERIMENTS_PREFIX)) return true\n\n return cookiesToProxyToBackend.includes(cookieName)\n }\n\n return cookies.filter(cookieShouldBeProxied).join(';')\n}\n\nfunction getAuth(context: NextPageContext | null) {\n const req: any = (context && context.req) || undefined\n\n return getAuthHeaderFromCookie(req)\n}\n\nexport function getIpAddress(context: NextPageContext | null) {\n if (context && context.req) {\n const { req } = context\n const { connection, socket } = req\n\n const xForwardedForHeader =\n (req.headers && (req.headers['x-forwarded-for'] as string)) || ''\n\n // X-Forwarded-For format: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For\n const formattedIP = xForwardedForHeader\n const remoteAddress =\n (connection && connection.remoteAddress) || (socket && socket.remoteAddress)\n\n const ip = formattedIP || remoteAddress\n return ip || undefined\n }\n}\n\nexport const getCypressHeader = (context: NextPageContext | null): string | undefined => {\n // Have to lower-case the header name because that's what NextJS does\n const cypressHeader = context?.req?.headers[CYPRESS_ENV_HEADER.toLowerCase()]\n\n // Coerce the result into a string...otherwise TS complains that string [] is valid\n return !!cypressHeader && typeof cypressHeader === 'string' ? cypressHeader : undefined\n}\n\nconst sleep = (ms: number) => new Promise(r => setTimeout(r, ms))\n\nconst invokeFetch = async (\n context: Context,\n headers: HeadersInit,\n operation: { text: string | null | undefined },\n variables: Variables,\n callCount = 0,\n): Promise => {\n return fetch(getRelayUri(), {\n method: 'POST',\n credentials: 'include',\n headers,\n keepalive: false,\n body: JSON.stringify({\n query: operation.text, // GraphQL text from input\n variables,\n }),\n })\n .then(response => {\n if (isNextPageContext(context)) {\n proxySetCookieToBrowser(context)(response)\n }\n return response\n })\n .then(response => {\n // Handle the WAF captcha status code in a particular way so we can build specific\n // behaviour around it: https://docs.aws.amazon.com/waf/latest/developerguide/waf-js-captcha-api-conditional.html\n if (response.status === wafCaptchaStatusCode) {\n throw new Error(wafCaptchaErrorMessage)\n }\n return response\n })\n .then(async (response: Response) => {\n // Handle AWS WAF challenge responses that may occur before the AWS WAF script\n // has fully loaded. If this happens we retry the request after a delay, until\n // a maximum number of retries.\n if (response.status === wafChallengeStatusCode && callCount < maxWafChallengeRetries) {\n await sleep(wafChallengeRetryDelayMs)\n const newHeaders = getFetchHeaders(context, callCount + 1)\n return invokeFetch(context, newHeaders, operation, variables, callCount + 1)\n }\n return response.json()\n })\n}\n\nconst getFetchHeaders = (context: Context, retryCount: number): HeadersInit => {\n if (isNextPageContext(context) || (!isServer && context === null)) {\n // This is any request not from getStaticProps\n return getHeaders(context, retryCount)\n } else {\n // We don't have access to cookies etc. so can skip a lot of the header logic\n return [\n ...getSharedHeaders(),\n ['X-Static-Request', 'true'],\n ['X-Retry-Count', String(retryCount)],\n ]\n }\n}\n\n// Define a function that fetches the results of an operation (query/mutation/etc)\n// and returns its results as a Promise:\nexport const fetchQuery = (context: Context) => {\n return (operation: { text: string | null | undefined }, variables: Variables) => {\n const headers = getFetchHeaders(context, 0)\n return invokeFetch(context, headers, operation, variables)\n }\n}\n\n// Stole this from the types source code because it\n// wasn't exported. Might change.\nexport interface RecordMap {\n [dataID: string]: Record | null | undefined\n}\n\ntype Context = NextPageContext | GetStaticPropsContext | null\n\ntype EnvProps = {\n initialRecords?: RecordMap\n context: Context\n}\n\nconst getSharedHeaders = (): [string, string][] => {\n return [\n ['Accept', 'application/json'],\n ['Content-Type', 'application/json'],\n ['X-Correlation-ID', uuid()],\n ]\n}\n\nconst getHeaders = (context: NextPageContext | null, retryCount: number) => {\n const cookies = getCookiesToProxyToRequest(context?.req?.headers.cookie)\n const fullCookieHeader = cookies\n\n // Important: Used for AWS WAF firewall rules so don't remove this\n const envContextHeader: [string, string | undefined] = isServer\n ? ['X-Server-Request', 'true']\n : ['X-Client-Request', 'true']\n\n const headerKeys: [string, string | undefined][] = [\n ...getSharedHeaders(),\n ['X-Retry-Count', String(retryCount)],\n ['Cookie', fullCookieHeader],\n ['Authorization', getAuth(context)],\n ['X-Access-Token', getAuth(context)],\n ['X-CSRFToken', getCsrfToken() || undefined],\n ['X-Forwarded-For', getIpAddress(context)],\n ['User-Agent', context?.req?.headers['user-agent'] || undefined], // Means that client user agent can be assessed by WAF/server instead of a NodeJS one\n envContextHeader,\n [CYPRESS_ENV_HEADER, getCypressHeader(context)], // Used to whitelist requests from cypress env in test environments\n ]\n\n const headers: HeadersInit = {}\n\n for (const [key, value] of headerKeys) {\n if (value) {\n headers[key] = value\n }\n }\n\n return headers\n}\n\n// Type guard to determine if the context is NextPageContext (i.e. not GetStaticPropsContext)\nfunction isNextPageContext(context: Context): context is NextPageContext {\n return context !== null && 'req' in context && context.req !== undefined\n}\n\nfunction createRelayEnvironment({ initialRecords, context }: EnvProps) {\n const recordSource = new RecordSource(\n //@ts-ignore Seems to be a case of Relay getting its types mixed up. Hopefully resolved on a later release\n initialRecords,\n )\n const store = new Store(recordSource)\n\n return new Environment({\n network: Network.create(fetchQuery(context)),\n store: store,\n })\n}\n\nlet clientEnvironment: Environment\n\nexport default function initEnvironment({ initialRecords, context }: EnvProps): Environment {\n // Publish the initial records to the store if we are re-using (this makes sure statically rendered pages\n // have the correct data when being navigated to client-side)\n initialRecords &&\n clientEnvironment &&\n clientEnvironment.getStore().publish(\n new RecordSource(\n //@ts-ignore Seems to be a case of Relay getting its types mixed up. Hopefully resolved on a later release\n initialRecords,\n ),\n )\n\n // Make sure to create a new Relay environment for every server-side request so that data\n // isn't shared between connections (which would be bad)\n if (isServer) {\n return createRelayEnvironment({ initialRecords, context })\n }\n\n // reuse Relay environment on client-side\n if (!clientEnvironment) {\n clientEnvironment = createRelayEnvironment({ initialRecords, context })\n }\n\n return clientEnvironment\n}\n\nexport function useEnvironment({ initialRecords, context }: EnvProps) {\n const store = useMemo(() => initEnvironment({ initialRecords, context }), [initialRecords])\n return store\n}\n","/*\n\n Put the config in this file so we can share\n this between files/components w/o circular refs\n\n*/\n\n// cookie names\nexport const ARTICLE_IDS_COOKIE_NAME = '__laga__art_ids'\nexport const DATE_WINDOW_STARTED_COOKIE_NAME = '__laga__art_window_started'\nexport const ALLOWANCE_FINISHED_COOKIE_NAME = '__laga__art_elapsed'\n\n// How long the free window lasts:\nexport const ARTICLE_WINDOW_MONTHS = 3\n// How many free articles in that window:\nexport const FREE_ARTICLES_ALLOWED_EACH_WINDOW = 1\n// How many months to opt a user in for (in theory this could be forever,\n// but perhaps make it shorter to reduce impact of bugs/old experiments etc)\nexport const MONTHS_OPTED_IN = 4\n","import addDays from '../addDays/index.js';\nimport addMonths from '../addMonths/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * var result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\n\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = 'years' in duration ? toInteger(duration.years) : 0;\n var months = 'months' in duration ? toInteger(duration.months) : 0;\n var weeks = 'weeks' in duration ? toInteger(duration.weeks) : 0;\n var days = 'days' in duration ? toInteger(duration.days) : 0;\n var hours = 'hours' in duration ? toInteger(duration.hours) : 0;\n var minutes = 'minutes' in duration ? toInteger(duration.minutes) : 0;\n var seconds = 'seconds' in duration ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import add from 'date-fns/add'\n\nimport {\n ARTICLE_IDS_COOKIE_NAME,\n DATE_WINDOW_STARTED_COOKIE_NAME,\n ALLOWANCE_FINISHED_COOKIE_NAME,\n ARTICLE_WINDOW_MONTHS,\n} from 'lib/freeArticleAllowance/consts'\nimport type { Cookies, SetCookie } from 'lib/useCookies'\nimport { captureException } from 'shared/sentry'\n\n/*\n\n Just a simple wrapper around the cookies to \n encode/decode the cookie values we need consistently\n\n NOTE: It is the job of this controller to guarantee\n the return types for the functions, so that we can\n confidently work with them elsewhere\n\n*/\n\nconst getEndOfWindowTimestamp = (): Date => {\n // assuming the window has just started, what is the timestamp\n // for the end of the window in ms\n const now = new Date()\n return add(now, { months: ARTICLE_WINDOW_MONTHS })\n}\n\nclass ArticleAllowanceCookieClient {\n cookies: null | Cookies = null\n setCookie: null | SetCookie = null\n\n constructor(cookies: Cookies, setCookie: SetCookie) {\n this.cookies = cookies\n this.setCookie = setCookie\n }\n\n // internal helpers\n\n _getCookie = (cookieName: string): string | null => {\n const cookieValue = this.cookies && this.cookies[cookieName]\n return cookieValue || null\n }\n\n _checkIfMatchesType = (\n decodedValue: any,\n expectedType: string,\n cookieName: string,\n ): boolean => {\n // Simple function to check type and handle error\n // Won't be the best choice for every single type, so use your own logic if required\n if (typeof decodedValue !== expectedType) {\n captureException(new Error(`\"${cookieName}\" was not set to a \"${expectedType}\"`), {\n errorInfo: {\n decodedCookieValue: decodedValue,\n },\n })\n return false\n }\n\n return true\n }\n\n // getters\n\n getIdsCompleted = (): string[] | null => {\n const cookieName = ARTICLE_IDS_COOKIE_NAME\n const cookieValue = this._getCookie(cookieName)\n\n if (!cookieValue) return null\n\n const decodedValue = JSON.parse(cookieValue)\n\n if (!Array.isArray(decodedValue)) {\n // if not an array...hasn't been set properly somehow\n captureException(new Error(`\"${cookieName}\" was not set to an array`), {\n errorInfo: {\n decodedCookieValue: decodedValue,\n },\n })\n return null\n }\n\n return decodedValue\n }\n\n getDateWindowStartedCookie = (): Date | null => {\n const cookieName = DATE_WINDOW_STARTED_COOKIE_NAME\n const cookieValue = this._getCookie(cookieName)\n\n if (!cookieValue) return null\n\n const decodedValue = JSON.parse(cookieValue)\n\n const wasTimestampReturned = this._checkIfMatchesType(decodedValue, 'number', cookieName)\n\n return wasTimestampReturned ? new Date(decodedValue) : null\n }\n\n getAllowanceFinishedCookie = (): boolean | null => {\n const cookieName = ALLOWANCE_FINISHED_COOKIE_NAME\n const cookieValue = this._getCookie(cookieName)\n\n if (!cookieValue) return null\n\n const decodedValue = JSON.parse(cookieValue)\n\n return this._checkIfMatchesType(decodedValue, 'boolean', cookieName) ? decodedValue : null\n }\n\n // setters\n setIdsCompleted = (idsCompleted: string[]): void => {\n const cookieName = ARTICLE_IDS_COOKIE_NAME\n const encodedValue = JSON.stringify(idsCompleted)\n const expiry = getEndOfWindowTimestamp()\n\n this.setCookie &&\n this.setCookie(cookieName, encodedValue, {\n expires: expiry,\n path: '/',\n })\n }\n\n setDateWindowStartedCookie = (): void => {\n const cookieName = DATE_WINDOW_STARTED_COOKIE_NAME\n const expiry = getEndOfWindowTimestamp()\n\n const nowTimestampMs = new Date().getTime()\n\n const encodedValue = JSON.stringify(nowTimestampMs)\n\n this.setCookie &&\n this.setCookie(cookieName, encodedValue, {\n expires: expiry,\n path: '/',\n })\n }\n\n setAllowanceFinishedCookie = (expiry: Date): void => {\n const cookieName = ALLOWANCE_FINISHED_COOKIE_NAME\n const encodedValue = JSON.stringify(true)\n\n // Doesn't really matter what we set this to, since we rely on the expirys\n\n this.setCookie &&\n this.setCookie(cookieName, encodedValue, {\n expires: expiry,\n path: '/',\n })\n }\n}\n\nexport default ArticleAllowanceCookieClient\n","import { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport constate from 'constate'\nimport add from 'date-fns/add'\n\nimport _CookieClient from 'lib/freeArticleAllowance/articleAllowanceCookieClient'\nimport {\n ARTICLE_WINDOW_MONTHS,\n FREE_ARTICLES_ALLOWED_EACH_WINDOW,\n} from 'lib/freeArticleAllowance/consts'\nimport { useCookies } from 'lib/useCookies'\n/*\n\n Provides all the helper functions to set/handle the cookies\n that are used for the logic to offer x free articles / number of months (configured with ARTICLE_WINDOW_MONTHS)\n to browsing users\n\n Logic is: You have to be first opted in to receiving free content. This could be from\n perfoming an action, or just acccessing the home page.\n If you are opted in, then from the moment you first read an article, you get a number of months\n to read x articles. You then get another x in the next window\n\n To handle this, we set 4 types of cookies:\n 1. A long-lasting cookie that means you're opted in. This can be set wherever we want. [used server-side]\n 2. An ID array for the articles completed that window, with an expiry of a number of months.\n 3. A date for when your window started, with an expiry of a number of months.\n 4. A cookie that is set once your allowance is up, with an expiry of the end of the window. This\n tells the server to show you content. This is easy to hack, but is a simple way to let us \n experiment with something that works [used server-side] [Unfortunately we can't set a cookie when the allowance starts,\n because you can't set a cookie to \"start\" at the next window]\n\n From these we know:\n - You have content access if cookie 1 is set and 4 is not set\n - A count of how many articles you have left this window - using the length of ID array if 4 not set\n \n\n ...Also check below the hook for a fun hack we've had to do for one use-case\n */\n\ninterface ArticleCountState {\n // helper variables to display UI\n // values are set to null while the cookies init\n remainingFreeArticles: number | null\n totalArticleCountThisAllowanceWindow: number | null\n freeArticlesPerAllowanceWindow: number\n}\n\ntype ReturnValue = {\n cookiesInitialised: boolean\n decrementRemainingFreeArticles: (globalContentPieceId: string, isFreeContent: boolean) => void\n} & ArticleCountState\n\nconst useFreeArticleCookies = (): ReturnValue => {\n const { setCookie, cookies } = useCookies()\n const [cookiesInitialised, setCookiesInitialised] = useState(false)\n const freeArticlesAllowance = FREE_ARTICLES_ALLOWED_EACH_WINDOW\n const [articleCountState, setArticleCountState] = useState({\n remainingFreeArticles: null,\n totalArticleCountThisAllowanceWindow: null,\n freeArticlesPerAllowanceWindow: freeArticlesAllowance,\n })\n\n useEffect(() => {\n cookies && setCookiesInitialised(true)\n cookies && _updateArticleCountState()\n }, [cookies])\n\n const CookieClient = useMemo(\n () => (cookies ? new _CookieClient(cookies, setCookie) : null),\n [cookies],\n )\n\n const _updateArticleCountState = useCallback(() => {\n // Take the most recent cookie update and set the article\n // counts\n if (!CookieClient) return\n\n const idsCompleted = CookieClient.getIdsCompleted()\n\n const totalArticleCountThisAllowanceWindow = idsCompleted?.length || 0\n const remainingFreeArticles = Math.max(\n freeArticlesAllowance - totalArticleCountThisAllowanceWindow,\n 0,\n )\n\n const updatedArticleState = {\n remainingFreeArticles,\n totalArticleCountThisAllowanceWindow,\n freeArticlesPerAllowanceWindow: freeArticlesAllowance,\n }\n\n setArticleCountState(updatedArticleState)\n }, [CookieClient, setArticleCountState])\n\n const decrementRemainingFreeArticles = useCallback(\n (globalContentPieceId: string, isFreeContent: boolean) => {\n // NOTE: This needs a globalContentPieceId (i.e. an ID that doesn't change\n // depending on whether the user is on ContentPiece/PublicContentPiece). There\n // is a field we can use for this\n // To be used after completing a content piece\n // Needs cookies to be initialised to work\n if (!CookieClient) return\n\n // Some content is free (not paywalled) so this should not\n // count towards our allowance\n if (isFreeContent) return\n\n /*\n Outline structure is:\n First make sure we're eligible\n If the user hasn't got a date cookie set, then initialise (set date and ID cookies)\n If the user has completed their article allowance, set the allowance finished cookie\n If the user has articles left in their allowance, and the ID to the ID array cookie\n */\n\n const hasFinishedAllowance = CookieClient.getAllowanceFinishedCookie()\n const idsCompleted = CookieClient.getIdsCompleted() || []\n const dateWindowStarted = CookieClient.getDateWindowStartedCookie()\n\n // most likely the user has premium or has used their articles\n if (hasFinishedAllowance) return\n\n // We've already started the allowance if a date has been set\n if (!dateWindowStarted) {\n // Nothing has been initialised yet\n // We'll set the ID cookie as part of the logic below\n CookieClient.setDateWindowStartedCookie()\n }\n\n // Now we need to add the ID to the array...\n\n const idAlreadyCompleted = idsCompleted.includes(globalContentPieceId)\n if (idAlreadyCompleted) {\n // in this case, this could have been a duplicate event. Don't decrement\n return\n }\n\n const updatedArticlesArray = [...idsCompleted, globalContentPieceId]\n CookieClient.setIdsCompleted(updatedArticlesArray)\n\n // Now check if we've hit our article limit\n const numberOfArticlesCompleted = updatedArticlesArray.length\n if (numberOfArticlesCompleted >= freeArticlesAllowance) {\n const expiry = dateWindowStarted || new Date()\n // in this case, we've hit the limit and need to set the cookie to turn off access\n const endOfWindow = add(expiry, { months: ARTICLE_WINDOW_MONTHS })\n\n CookieClient.setAllowanceFinishedCookie(endOfWindow)\n }\n },\n [CookieClient],\n )\n\n return {\n cookiesInitialised,\n decrementRemainingFreeArticles,\n ...articleCountState,\n }\n}\n\nexport const [FreeArticleCookiesProvider, useFreeArticleCookiesContext] =\n constate(useFreeArticleCookies)\n","import { graphql } from 'react-relay'\n\nconst checkUser = graphql`\n query checkUserQuery {\n viewer {\n me {\n id\n hasPremiumSubscription\n }\n }\n }\n`\n\nexport default checkUser\n","import type { NextPageContext } from 'next'\nimport { fetchQuery } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport checkUser from './checkUser'\nimport { authRedirect } from './redirect'\n\nimport { routeMap } from 'shared/routes'\nimport { captureException } from 'shared/sentry'\n\ntype Options = {\n redirectKeyIfNoAuth?: string\n shouldRedirectIfLoggedIn?: boolean\n}\n\ntype GenericProps = {\n [key: string]: any\n}\n\ntype GenericRelayQuery = { response: GenericProps; variables: {} }\n\n// This is a bit complicated/tenuous now as there are multiple places auth logic\n// can live, and it relies on the relay query including that information.\n// Might be better to switch to a token-based approach\nexport const checkAuthenticationFromRelayProps = (props?: GenericProps) => {\n const authorization = props?.viewer?.authorization\n return !!props?.viewer?.me || authorization?.roles?.isAnonymous === false\n}\n\nasync function handleAuth(\n ctx: NextPageContext,\n environment: Environment,\n options: Options,\n): Promise {\n if (options.redirectKeyIfNoAuth || options.shouldRedirectIfLoggedIn) {\n try {\n const data: GenericProps = await fetchQuery(\n environment,\n checkUser,\n {},\n // @ts-ignore Note toPromise is not recommended by Relay and will break with future functionality\n ).toPromise()\n const isAuthenticated = checkAuthenticationFromRelayProps(data)\n // Should look at a better way of achieving this / making it more foolproof\n const hasPremium =\n isAuthenticated &&\n (data.viewer?.me?.hasPremiumSubscription ||\n data.viewer?.authorization?.roles?.hasPremiumSubscription ||\n data.viewer?.me?.authorization?.roles?.hasPremiumSubscription)\n\n // if we are not logged in,\n // and trying to access an auth-required page\n // redirect to given url\n if (options.redirectKeyIfNoAuth) {\n if (!isAuthenticated) {\n authRedirect(ctx, options.redirectKeyIfNoAuth)\n return true\n }\n // if we are logged in,\n // and trying to access a non-auth page:\n // if slug and not premium => redirect to checkout with slug\n // otherwise => redirect to home\n } else if (options.shouldRedirectIfLoggedIn) {\n if (isAuthenticated) {\n const {\n query: { slug },\n } = ctx\n\n if (!hasPremium && slug) {\n // redirecting with a routeMap with a slug with **/**/ subdomains such as plans/checkout/\n // does not work, thus opt to pass in coded string.\n authRedirect(ctx, routeMap.checkout(slug as string))\n } else {\n authRedirect(ctx, routeMap.home)\n }\n\n return true\n }\n }\n\n return false\n } catch (error) {\n captureException(error)\n }\n }\n\n return false\n}\n\nexport default handleAuth\n","import type { Stripe } from '@stripe/stripe-js'\n// must be /pure import so it does not load the stripe script until loadStripe() is called\n// https://www.npmjs.com/package/@stripe/stripe-js#:~:text=If%20you%20would%20like%20to%20use%20loadStripe%20in%20your%20application%2C%20but%20defer%20loading%20the%20Stripe.js%20script%20until%20loadStripe%20is%20first%20called%2C%20use%20the%20alternative%20%40stripe/stripe%2Djs/pure%20import%20module%3A\nimport { loadStripe } from '@stripe/stripe-js/pure'\n\nconst stripeToken = process.env.NEXT_PUBLIC_STRIPE_PUBLIC_TOKEN\nlet stripePromise: Promise\n\nconst initialiseStripe = () => {\n if (!stripeToken) {\n throw new Error('Missing Stripe token')\n }\n\n if (!stripePromise) {\n stripePromise = loadStripe(stripeToken)\n }\n return stripePromise\n}\n\nexport default initialiseStripe\n","import type { NextPageContext } from 'next'\n\nexport enum StatusCodeEnum {\n /**\n * The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs.\n */\n PERMANENTLY_MOVED = 301,\n /**\n * The requested resource resides at a different location, but the redirection MAY be altered on occasion when the client follows a link to the original resource.\n */\n OTHER = 303,\n NOT_FOUND = 404,\n}\n\ntype QueryStringType = Record\n\n// copy querystring variables from next context to the url redirect\n// copied from https://github.com/fridays/next-routes/blob/master/src/index.js#L172\nexport const toQuerystring = (obj: QueryStringType) =>\n Object.keys(obj)\n .filter(key => obj[key] !== null && obj[key] !== undefined)\n .map(key => {\n let value = obj[key] || ''\n\n if (Array.isArray(value)) {\n value = value.join('/')\n }\n return [encodeURIComponent(key), encodeURIComponent(value)].join('=')\n })\n .join('&')\n\nexport const authRedirect = (context: NextPageContext, target: string) => {\n const query: QueryStringType = context.query\n\n // don't know why we need to do this for Router.push, but not other router fns\n // res.writeHead seems to also need it to handle slugs\n const formattedTarget = !target.startsWith('/') && target !== '' ? '/' + target : target\n\n const location =\n typeof query === 'object'\n ? `${formattedTarget}?${toQuerystring(query || {})}`\n : formattedTarget\n\n redirect(context, location, StatusCodeEnum.OTHER)\n}\n\nexport const redirect = (context: NextPageContext, target: string, statusCode: StatusCodeEnum) => {\n // don't know why we need to do this for Router.push, but not other router fns\n // res.writeHead seems to also need it to handle slugs\n const formattedTarget = !target.startsWith('/') && target !== '' ? '/' + target : target\n\n if (context.res) {\n // server\n context.res.writeHead && context.res.writeHead(statusCode, { Location: formattedTarget })\n context.res.end && context.res.end()\n } else {\n window.location.href = formattedTarget\n }\n}\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type { trackAppsFlyerPBAEventMutationResponse } from '__generated__/trackAppsFlyerPBAEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\ntype InputObject = {\n customerUserId: string\n afUserId: string\n eventName: string\n afRevenue?: number\n afCurrency?: string\n}\n\nconst trackAppsFlyerPBAEventMutation = (relayEnv: Environment) => (input: InputObject) => {\n return createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation trackAppsFlyerPBAEventMutation($input: TrackAppsflyerPBAEventInput!) {\n trackAppsflyerPbaEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n}\n\nexport default trackAppsFlyerPBAEventMutation\n","\nimport type { Environment } from 'relay-runtime'\n\nimport { getCookie } from 'lib/useCookies'\nimport trackAppsFlyerPBAEventMutation from 'relay/mutations/trackAppsFlyerPBAEvent'\n\nexport const AF_COMPLETE_REGISTRATION = 'af_complete_registration'\nexport const AF_LOGIN = 'af_login'\nexport const AF_TRIAL = 'af_start_trial'\nexport const AF_MONTHLY_SUBSCRIPTION = 'af_subscribe_monthly'\nexport const AF_YEARLY_SUBSCRIPTION = 'af_subscribe_yearly'\n\ntype AFEventName = typeof AF_COMPLETE_REGISTRATION | typeof AF_LOGIN | typeof AF_TRIAL | typeof AF_MONTHLY_SUBSCRIPTION | typeof AF_YEARLY_SUBSCRIPTION\n\ntype AFData = {\n customerUserId: string\n afRevenue?: number\n afCurrency?: string\n}\n\nexport type AppsFlyerPBATrackingFn = (\n environment: Environment,\n eventName: AFEventName,\n data: AFData,\n) => Promise\n\nconst AF_USER_ID_COOKIE = 'afUserId'\n\n/**\n * This class is used to manage the AppsFlyer Web PBA (People-based Attribution) SDK.\n * The SDK works via a script added in _app.tsx, but events are only being sent after \n * the user has given consent in the cookie modal.\n * \n * Other than enabling measurement, the subsequent steps (i.e. setting the Customer User ID and sending events)\n * are handled in chivas via the TrackAppsFlyerPBAEvent mutation.\n */\nclass AppsFlyerPBAClient {\n isAuthorized = false\n afUserId = getCookie(AF_USER_ID_COOKIE)\n\n /**\n * This method is called when the user has given consent to tracking, which should only happen in CookieModal.\n */\n authorize = () => {\n if (this.isAuthorized) return\n this.isAuthorized = true\n // Enable measurement only after the user has given consent in the cookie modal\n // @ts-ignore\n if (window.AF_SDK) {\n // @ts-ignore\n window.AF_SDK.PLUGINS.PBA.enableMeasurement()\n }\n }\n\n /**\n * Sends a mutation to our backend with the event name and data. The backend then sends the event to AF.\n */\n track: AppsFlyerPBATrackingFn = async (environment, eventName, data) => {\n if (!this.isAuthorized) return\n // Do not send an event if the Customer User ID or AF User ID is missing\n if (!data.customerUserId || !this.afUserId) return\n\n await trackAppsFlyerPBAEventMutation(environment)({\n ...data,\n afUserId: this.afUserId,\n eventName,\n })\n }\n}\n\nconst appsFlyerPBAClient = new AppsFlyerPBAClient()\nexport default appsFlyerPBAClient","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type { trackFbConversionsAPIEventMutationResponse } from '__generated__/trackFbConversionsAPIEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\ntype InputObject = {\n eventName: string\n eventId?: string\n fbc?: string\n fbp?: string\n currency?: string\n value?: number\n productId?: string\n searchString?: string\n predictedLtv?: number\n actionSource: string\n}\n\nconst trackFbConversionsAPIEvent = (relayEnv: Environment) => (input: InputObject) => {\n return createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation trackFbConversionsAPIEventMutation($input: TrackFBConversionsAPIEventInput!) {\n trackFbConversionsApiEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n}\n\nexport default trackFbConversionsAPIEvent\n","import Pixel from 'react-facebook-pixel'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n ConversionsAPIUserProps,\n FBConversionsAPIData,\n FBConversionsAPIEventName,\n} from './types'\n\nimport trackFbConversionsAPIEvent from 'relay/mutations/trackFbConversionsAPIEvent'\nimport { captureException } from 'shared/sentry'\nimport { isProductionEnvironment } from 'utils/isProductionEnvironment'\n\nconst IS_BROWSER = typeof window !== 'undefined'\n\nconst facebookPixelId = process.env.NEXT_PUBLIC_FB_PIXEL_ID\nclass FBTrackingClient {\n // NOTE All methods on this class which contact the API MUST be gated\n // with a check on `isAuthorized`. Similarly all setup code can only\n // be run in the `authorize` method which configures this property.\n\n isAuthorized = false\n\n authorize = () => {\n // Comment out the following line to enable FB tracking in development / staging\n if (!isProductionEnvironment) return\n \n if (this.isAuthorized) return // noop\n this.isAuthorized = true\n\n // @ts-ignore\n if (IS_BROWSER && !window.FB_INITIALIZED) {\n if (!facebookPixelId) {\n throw new Error('process.env.NEXT_PUBLIC_FB_PIXEL_ID is not defined')\n }\n\n Pixel.init(facebookPixelId)\n }\n }\n\n _handleEvent = (trackingFn: Function) => {\n if (!this.isAuthorized) return\n try {\n trackingFn()\n } catch (e) {\n captureException(e)\n }\n }\n\n track = (eventName: string, data: { [key: string]: any }) => {\n if (!this.isAuthorized) return\n const event = () => Pixel.track(eventName, data)\n this._handleEvent(event)\n }\n\n trackCustom = (eventName: string, data: { [key: string]: any }) => {\n if (!this.isAuthorized) return\n const event = () => Pixel.trackCustom(eventName, data)\n this._handleEvent(event)\n }\n\n pageView = () => {\n if (!this.isAuthorized) return\n const event = () => Pixel.pageView()\n this._handleEvent(event)\n }\n\n trackConversionsAPIEvent = async (\n environment: Environment,\n eventName: FBConversionsAPIEventName,\n data: ConversionsAPIUserProps & FBConversionsAPIData,\n ) => {\n if (!this.isAuthorized) return\n\n try {\n await trackFbConversionsAPIEvent(environment)({\n eventName,\n eventId: data.eventId ?? undefined,\n fbc: data.fbc,\n fbp: data.fbp,\n currency: data.currency,\n value: data.value,\n productId: data.productId,\n searchString: data.searchString,\n predictedLtv: data.predictedLtv,\n actionSource: data.actionSource,\n })\n } catch (e) {\n captureException(e)\n }\n }\n}\n\nconst facebookTrackingClient = new FBTrackingClient()\nexport default facebookTrackingClient\n","export const FINANCEADS_SIGNUP = 'registration'\nexport const FINANCEADS_TRIAL = 'trial'\nexport const FINANCEADS_YEARLY_SUBSCRIPTION = 'subscription'\nexport const FINANCEADS_MONTHLY_SUBSCRIPTION = 'monthlysub'\n\nexport const FINANCEADS_ID_PARAM = 's_id'","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n TrackFinanceadsEventInput,\n trackFinanceadsEventMutationResponse,\n} from '__generated__/trackFinanceadsEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst trackFinanceadsEventMutation =\n (relayEnv: Environment) => (input: TrackFinanceadsEventInput) => {\n return createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation trackFinanceadsEventMutation($input: TrackFinanceadsEventInput!) {\n trackFinanceadsEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n }\n\nexport default trackFinanceadsEventMutation\n","import { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport constate from 'constate'\nimport { useRouter } from 'next/router'\n\nimport { FINANCEADS_ID_PARAM } from './consts'\nimport type { FinanceadsTrackingFn } from './types'\n\nimport { DAY_IN_SECONDS, useCookies } from 'lib/useCookies'\nimport trackFinanceadsEventMutation from 'relay/mutations/trackFinanceadsEvent'\n\n/**\n * This hook is used to be able to track events in financeAds.\n * It should be used in components where we want to track events, e.g. in the signup flow.\n *\n * Use it as follows:\n * - get the client: financeadsClient = useFinanceadsContext()\n * - call the track method (or pass it as a prop to child components), e.g. financeadsClient.track(environment, eventName, data)\n */\n\nconst useFinanceadsTracking = () => {\n // NOTE All methods which contact the API MUST be gated\n // with a check on `isAuthorized`.\n const router = useRouter()\n const { query: params = {} } = router\n const { cookies, setCookie } = useCookies()\n const [isAuthorized, setIsAuthorized] = useState(false)\n\n const financeadsId = useMemo(() => {\n if (cookies && cookies[FINANCEADS_ID_PARAM]) {\n return cookies[FINANCEADS_ID_PARAM]\n }\n return undefined\n }, [cookies])\n\n useEffect(() => {\n if (!isAuthorized) return\n\n // If the tracking client is authorised and we don't have an s_id in the\n // cookies already, check the query params for an s_id and set the cookie\n if (isAuthorized && !financeadsId) {\n Object.entries(params).forEach(([key, val]) => {\n if (key === FINANCEADS_ID_PARAM && typeof val === 'string') {\n const cookieKeyName = FINANCEADS_ID_PARAM\n\n const options = {\n maxAge: 30 * DAY_IN_SECONDS, // 30 days\n path: '/',\n }\n\n const decodedVal = decodeURIComponent(val)\n\n setCookie(cookieKeyName, decodedVal, options)\n }\n })\n }\n }, [isAuthorized, financeadsId])\n\n /**\n * This method is called when the user has given consent to tracking, which should only happen in CookieModal.\n * It sets the `isAuthorized` flag to true, which allows us to set a cookie and send events to financeAds.\n */\n const authorize = useCallback(() => {\n if (isAuthorized) return\n setIsAuthorized(true)\n }, [isAuthorized])\n\n /**\n * Sends a mutation to our backend with the event name and financeAds id. The backend then sends the event to financeAds.\n */\n const track = useCallback(\n async (environment, eventName, serverFinanceadsId) => {\n if (!isAuthorized) return\n // eventName is required\n if (!eventName) return\n\n // prefer the serverFinanceadsId over the client one.\n // serverFinanceadsId is saved in the backend when the user signs up,\n // i.e.this mutation is called for the first time for that user.\n const id = serverFinanceadsId || financeadsId\n if (!id) return\n\n await trackFinanceadsEventMutation(environment)({\n eventName,\n financeadsId: id,\n })\n },\n [isAuthorized, financeadsId],\n )\n\n return { authorize, track, financeadsId, isAuthorized }\n}\n\nexport const [FinanceadsProvider, useFinanceadsContext] = constate(useFinanceadsTracking)\n","export const SIGNUP = 'signup'\nexport const FREE_TRIAL = 'free_trial'\nexport const MONTHLY_SUBSCRIPTION = 'monthly_subscription'\nexport const YEARLY_SUBSCRIPTION = 'yearly_subscription'\n\nexport const IMPACT_CLICK_ID_PARAM = 'irclickid'\nexport const IMPACT_IRGWC_PARAM = 'irgwc'\n","import { graphql } from 'react-relay'\nimport type { Environment } from 'relay-runtime'\n\nimport type {\n TrackImpactEventInput,\n trackImpactEventMutationResponse,\n} from '__generated__/trackImpactEventMutation.graphql'\nimport createMutationPromise from 'lib/createMutationPromise'\n\nconst trackImpactEventMutation = (relayEnv: Environment) => (input: TrackImpactEventInput) => {\n return createMutationPromise(relayEnv)({\n mutation: graphql`\n mutation trackImpactEventMutation($input: TrackImpactEventInput!) {\n trackImpactEvent(input: $input) {\n clientMutationId\n }\n }\n `,\n variables: { input },\n })\n}\n\nexport default trackImpactEventMutation\n","import { useState, useCallback, useEffect, useMemo } from 'react'\n\nimport constate from 'constate'\nimport { useRouter } from 'next/router'\n\nimport { IMPACT_CLICK_ID_PARAM, SIGNUP } from './consts'\nimport type { ImpactTrackingFn } from './types'\n\nimport { useCookies, DAY_IN_SECONDS } from 'lib/useCookies'\nimport trackImpactEventMutation from 'relay/mutations/trackImpactEvent'\n\n/**\n * This hook is used to be able to track events in Impact.\n * It should be used in components where we want to track events, e.g. in the signup flow.\n *\n * Use it as follows:\n * - get the client: impactClient = useImpactContext()\n * - call the track method (or pass it as a prop to child components), e.g. impactClient.track(environment, eventName, data)\n */\nconst useImpactTracking = () => {\n // NOTE All methods which contact the API MUST be gated\n // with a check on `isAuthorized`.\n const router = useRouter()\n const { query: params = {} } = router\n const { cookies, setCookie } = useCookies()\n const [isAuthorized, setIsAuthorized] = useState(false)\n\n const impactClickId = useMemo(() => {\n if (cookies && cookies[IMPACT_CLICK_ID_PARAM]) {\n return cookies[IMPACT_CLICK_ID_PARAM]\n }\n return undefined\n }, [cookies])\n\n useEffect(() => {\n if (!isAuthorized) return\n\n // If the tracking client is authorised and we don't have a click ID in the\n // cookies already, check the query params for a click ID and set the cookie\n if (isAuthorized && !impactClickId) {\n Object.entries(params).forEach(([key, val]) => {\n if (key === IMPACT_CLICK_ID_PARAM && typeof val === 'string') {\n const cookieKeyName = IMPACT_CLICK_ID_PARAM\n\n const options = {\n maxAge: 30 * DAY_IN_SECONDS, // 30 days\n path: '/',\n }\n\n const decodedVal = decodeURIComponent(val)\n\n setCookie(cookieKeyName, decodedVal, options)\n }\n })\n }\n }, [isAuthorized, impactClickId])\n\n /**\n * This method is called when the user has given consent to tracking, which should only happen in CookieModal.\n * It sets the `isAuthorized` flag to true, which allows us to set a cookie and send events to Impact.\n */\n const authorize = useCallback(() => {\n if (isAuthorized) return\n setIsAuthorized(true)\n }, [isAuthorized])\n\n /**\n * Sends a mutation to our backend with the event name and data. The backend then sends the event to Impact.\n */\n const track = useCallback(\n async (environment, eventName, data) => {\n if (!isAuthorized) return\n // We need to provide a consistent user ID to Impact so that they can link events together\n if (!data.userId) return\n // Parent (i.e. signup) event has to have a click ID\n if (eventName === SIGNUP && !impactClickId) return\n\n await trackImpactEventMutation(environment)({\n ...data,\n userId: data.userId,\n clickId: impactClickId,\n eventName,\n })\n },\n [isAuthorized, impactClickId],\n )\n\n return { authorize, track, impactClickId, isAuthorized }\n}\n\nexport const [ImpactProvider, useImpactContext] = constate(useImpactTracking)\n","import { useCallback, useEffect, useState } from 'react'\n\nimport type { CookieSerializeOptions } from 'cookie';\nimport cookie from 'cookie'\n\nexport interface Cookies {\n [key: string]: string\n}\n\nexport type SetCookie = (name: string, value: string, options?: CookieSerializeOptions) => void\n\n// Can be used to set a cookie that expires in n days\nexport const DAY_IN_SECONDS = 24 * 60 * 60\n\n/*\n\n NOTE: If you're using these functions in a component,\n make sure you only trigger them onMount\n\n*/\n\nexport const getCookies = (): Cookies => {\n if (typeof document === 'undefined') return {}\n return cookie.parse(document.cookie)\n}\n\nexport const getCookie = (name: string): string => {\n if (typeof document === 'undefined') return ''\n return cookie.parse(document.cookie)[name]\n}\n\nexport const setCookie: SetCookie = (name, value, options) => {\n if (typeof document === 'undefined') {\n console.warn('Tried to set a cookie on the server. Use inside useEffects.')\n return\n }\n document.cookie = cookie.serialize(name, value, options)\n}\n\nexport const clearCookie = (name: string) => {\n if (typeof document === 'undefined') {\n console.warn('Tried to set a cookie on the server. Use inside useEffects.')\n return\n }\n setCookie(name, '', {\n expires: new Date('Thu, 01 Jan 1970 00:00:01 GMT'),\n path: '/',\n })\n}\n\n/*\n\n This hook can be used to get cookies + other fns in a component context\n\n (as opposed to adding your own useEffect to use the above fns)\n\n*/\n\nexport const useCookies = () => {\n const [cookies, setCookies] = useState(null)\n\n useEffect(() => {\n _updateCookies()\n }, [])\n\n const _updateCookies = useCallback(() => {\n const cookies = getCookies()\n setCookies(cookies)\n }, [setCookies, getCookies])\n\n const setCookieAndUpdateState: SetCookie = useCallback(\n (name, value, options) => {\n // set real cookie\n setCookie(name, value, options)\n\n // update state to keep in sync\n _updateCookies()\n },\n [setCookie, _updateCookies],\n )\n\n const clearCookieAndUpdateState = useCallback(\n (name: string) => {\n // clear real cookie\n clearCookie(name)\n\n // update state to keep in sync\n _updateCookies()\n },\n [clearCookie, _updateCookies],\n )\n\n return {\n cookies,\n setCookie: setCookieAndUpdateState,\n clearCookie: clearCookieAndUpdateState,\n }\n}\n","/**\n * WAF returns a 405, and warns that if you're using this status code\n * for other things the logic will clash\n * https://docs.aws.amazon.com/waf/latest/developerguide/waf-js-captcha-api-conditional.html\n * So for now can assume that if we get a 405 it's a WAF captcha\n */\nexport const wafCaptchaStatusCode = 405\n\nexport const wafCaptchaErrorMessage = 'WAF captcha requested'\n\nexport const wafChallengeStatusCode = 202;\n\nexport const maxWafChallengeRetries = 10;\n\nexport const wafChallengeRetryDelayMs = 250;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n PrefetchKind: null,\n ACTION_REFRESH: null,\n ACTION_NAVIGATE: null,\n ACTION_RESTORE: null,\n ACTION_SERVER_PATCH: null,\n ACTION_PREFETCH: null,\n ACTION_FAST_REFRESH: null,\n ACTION_SERVER_ACTION: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PrefetchKind: function() {\n return PrefetchKind;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_NAVIGATE: function() {\n return ACTION_NAVIGATE;\n },\n ACTION_RESTORE: function() {\n return ACTION_RESTORE;\n },\n ACTION_SERVER_PATCH: function() {\n return ACTION_SERVER_PATCH;\n },\n ACTION_PREFETCH: function() {\n return ACTION_PREFETCH;\n },\n ACTION_FAST_REFRESH: function() {\n return ACTION_FAST_REFRESH;\n },\n ACTION_SERVER_ACTION: function() {\n return ACTION_SERVER_ACTION;\n }\n});\nconst ACTION_REFRESH = \"refresh\";\nconst ACTION_NAVIGATE = \"navigate\";\nconst ACTION_RESTORE = \"restore\";\nconst ACTION_SERVER_PATCH = \"server-patch\";\nconst ACTION_PREFETCH = \"prefetch\";\nconst ACTION_FAST_REFRESH = \"fast-refresh\";\nconst ACTION_SERVER_ACTION = \"server-action\";\nvar PrefetchKind;\n(function(PrefetchKind) {\n PrefetchKind[\"AUTO\"] = \"auto\";\n PrefetchKind[\"FULL\"] = \"full\";\n PrefetchKind[\"TEMPORARY\"] = \"temporary\";\n})(PrefetchKind || (PrefetchKind = {}));\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=router-reducer-types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getDomainLocale\", {\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n});\nconst _normalizetrailingslash = require(\"./normalize-trailing-slash\");\nconst basePath = process.env.__NEXT_ROUTER_BASEPATH || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n const normalizeLocalePath = require(\"./normalize-locale-path\").normalizeLocalePath;\n const detectDomainLocale = require(\"./detect-domain-locale\").detectDomainLocale;\n const target = locale || normalizeLocalePath(path, locales).detectedLocale;\n const domain = detectDomainLocale(domainLocales, undefined, target);\n if (domain) {\n const proto = \"http\" + (domain.http ? \"\" : \"s\") + \"://\";\n const finalLocale = target === domain.defaultLocale ? \"\" : \"/\" + target;\n return \"\" + proto + domain.domain + (0, _normalizetrailingslash.normalizePathTrailingSlash)(\"\" + basePath + finalLocale + path);\n }\n return false;\n } else {\n return false;\n }\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=get-domain-locale.js.map","\"use client\";\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Image\", {\n enumerable: true,\n get: function() {\n return Image;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _interop_require_wildcard = require(\"@swc/helpers/_/_interop_require_wildcard\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(require(\"react\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(require(\"react-dom\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(require(\"../shared/lib/head\"));\nconst _getimgprops = require(\"../shared/lib/get-img-props\");\nconst _imageconfig = require(\"../shared/lib/image-config\");\nconst _imageconfigcontextsharedruntime = require(\"../shared/lib/image-config-context.shared-runtime\");\nconst _warnonce = require(\"../shared/lib/utils/warn-once\");\nconst _routercontextsharedruntime = require(\"../shared/lib/router-context.shared-runtime\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(require(\"next/dist/shared/lib/image-loader\"));\n// This is replaced by webpack define plugin\nconst configEnv = process.env.__NEXT_IMAGE_OPTS;\nif (typeof window === \"undefined\") {\n globalThis.__NEXT_IMAGE_IMPORTED = true;\n}\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized) {\n const src = img == null ? void 0 : img.src;\n if (!img || img[\"data-loaded-src\"] === src) {\n return;\n }\n img[\"data-loaded-src\"] = src;\n const p = \"decode\" in img ? img.decode() : Promise.resolve();\n p.catch(()=>{}).then(()=>{\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return;\n }\n if (placeholder !== \"empty\") {\n setBlurComplete(true);\n }\n if (onLoadRef == null ? void 0 : onLoadRef.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event(\"load\");\n Object.defineProperty(event, \"target\", {\n writable: false,\n value: img\n });\n let prevented = false;\n let stopped = false;\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: ()=>prevented,\n isPropagationStopped: ()=>stopped,\n persist: ()=>{},\n preventDefault: ()=>{\n prevented = true;\n event.preventDefault();\n },\n stopPropagation: ()=>{\n stopped = true;\n event.stopPropagation();\n }\n });\n }\n if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {\n onLoadingCompleteRef.current(img);\n }\n if (process.env.NODE_ENV !== \"production\") {\n const origSrc = new URL(src, \"http://n\").searchParams.get(\"url\") || src;\n if (img.getAttribute(\"data-nimg\") === \"fill\") {\n if (!unoptimized && (!img.getAttribute(\"sizes\") || img.getAttribute(\"sizes\") === \"100vw\")) {\n let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\n \"absolute\",\n \"fixed\",\n \"relative\"\n ];\n if (!valid.includes(position)) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and parent element with invalid \"position\". Provided \"' + position + '\" should be one of ' + valid.map(String).join(\",\") + \".\");\n }\n }\n if (img.height === 0) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');\n }\n }\n const heightModified = img.height.toString() !== img.getAttribute(\"height\");\n const widthModified = img.width.toString() !== img.getAttribute(\"width\");\n if (heightModified && !widthModified || !heightModified && widthModified) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles \\'width: \"auto\"\\' or \\'height: \"auto\"\\' to maintain the aspect ratio.');\n }\n }\n });\n}\nfunction getDynamicProps(fetchPriority) {\n const [majorStr, minorStr] = _react.version.split(\".\");\n const major = parseInt(majorStr, 10);\n const minor = parseInt(minorStr, 10);\n if (major > 18 || major === 18 && minor >= 3) {\n // In React 18.3.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return {\n fetchPriority\n };\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return {\n fetchpriority: fetchPriority\n };\n}\nconst ImageElement = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{\n let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, onLoad, onError, ...rest } = param;\n return /*#__PURE__*/ _react.default.createElement(\"img\", {\n ...rest,\n ...getDynamicProps(fetchPriority),\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading: loading,\n width: width,\n height: height,\n decoding: decoding,\n \"data-nimg\": fill ? \"fill\" : \"1\",\n className: className,\n style: style,\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes: sizes,\n srcSet: srcSet,\n src: src,\n ref: (0, _react.useCallback)((img)=>{\n if (forwardedRef) {\n if (typeof forwardedRef === \"function\") forwardedRef(img);\n else if (typeof forwardedRef === \"object\") {\n // @ts-ignore - .current is read only it's usually assigned by react internally\n forwardedRef.current = img;\n }\n }\n if (!img) {\n return;\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src;\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!src) {\n console.error('Image is missing required \"src\" property:', img);\n }\n if (img.getAttribute(\"alt\") === null) {\n console.error('Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.');\n }\n }\n if (img.complete) {\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n }\n }, [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n forwardedRef\n ]),\n onLoad: (event)=>{\n const img = event.currentTarget;\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized);\n },\n onError: (event)=>{\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true);\n if (placeholder !== \"empty\") {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true);\n }\n if (onError) {\n onError(event);\n }\n }\n });\n});\nfunction ImagePreload(param) {\n let { isAppRouter, imgAttributes } = param;\n const opts = {\n as: \"image\",\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority)\n };\n if (isAppRouter && _reactdom.default.preload) {\n // See https://github.com/facebook/react/pull/26940\n _reactdom.default.preload(imgAttributes.src, // @ts-expect-error TODO: upgrade to `@types/react-dom@18.3.x`\n opts);\n return null;\n }\n return /*#__PURE__*/ _react.default.createElement(_head.default, null, /*#__PURE__*/ _react.default.createElement(\"link\", {\n key: \"__nimg-\" + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes,\n rel: \"preload\",\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href: imgAttributes.srcSet ? undefined : imgAttributes.src,\n ...opts\n }));\n}\nconst Image = /*#__PURE__*/ (0, _react.forwardRef)((props, forwardedRef)=>{\n const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext);\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext);\n const config = (0, _react.useMemo)(()=>{\n const c = configEnv || configContext || _imageconfig.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n return {\n ...c,\n allSizes,\n deviceSizes\n };\n }, [\n configContext\n ]);\n const { onLoad, onLoadingComplete } = props;\n const onLoadRef = (0, _react.useRef)(onLoad);\n (0, _react.useEffect)(()=>{\n onLoadRef.current = onLoad;\n }, [\n onLoad\n ]);\n const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete);\n (0, _react.useEffect)(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n const [blurComplete, setBlurComplete] = (0, _react.useState)(false);\n const [showAltText, setShowAltText] = (0, _react.useState)(false);\n const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, {\n defaultLoader: _imageloader.default,\n imgConf: config,\n blurComplete,\n showAltText\n });\n return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(ImageElement, {\n ...imgAttributes,\n unoptimized: imgMeta.unoptimized,\n placeholder: imgMeta.placeholder,\n fill: imgMeta.fill,\n onLoadRef: onLoadRef,\n onLoadingCompleteRef: onLoadingCompleteRef,\n setBlurComplete: setBlurComplete,\n setShowAltText: setShowAltText,\n ref: forwardedRef\n }), imgMeta.priority ? /*#__PURE__*/ _react.default.createElement(ImagePreload, {\n isAppRouter: isAppRouter,\n imgAttributes: imgAttributes\n }) : null);\n});\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=image-component.js.map","\"use client\";\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _react = /*#__PURE__*/ _interop_require_default._(require(\"react\"));\nconst _resolvehref = require(\"./resolve-href\");\nconst _islocalurl = require(\"../shared/lib/router/utils/is-local-url\");\nconst _formaturl = require(\"../shared/lib/router/utils/format-url\");\nconst _utils = require(\"../shared/lib/utils\");\nconst _addlocale = require(\"./add-locale\");\nconst _routercontextsharedruntime = require(\"../shared/lib/router-context.shared-runtime\");\nconst _approutercontextsharedruntime = require(\"../shared/lib/app-router-context.shared-runtime\");\nconst _useintersection = require(\"./use-intersection\");\nconst _getdomainlocale = require(\"./get-domain-locale\");\nconst _addbasepath = require(\"./add-base-path\");\nconst _routerreducertypes = require(\"./components/router-reducer/router-reducer-types\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options, appOptions, isAppRouter) {\n if (typeof window === \"undefined\") {\n return;\n }\n // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n if (!isAppRouter && !(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = // Let the link's locale prop override the default router locale.\n typeof options.locale !== \"undefined\" ? options.locale : \"locale\" in router ? router.locale : undefined;\n const prefetchedKey = href + \"%\" + as + \"%\" + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n const prefetchPromise = isAppRouter ? router.prefetch(href, appOptions) : router.prefetch(href, as, options);\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(prefetchPromise).catch((err)=>{\n if (process.env.NODE_ENV !== \"production\") {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute(\"target\");\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n !isAppRouter && !(0, _islocalurl.isLocalURL)(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? \"replace\" : \"push\"](as || href, {\n forceOptimisticNavigation: !prefetchEnabled,\n scroll: routerScroll\n });\n }\n };\n if (isAppRouter) {\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === \"string\") {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * React Component that enables client-side transitions between routes.\n */ const Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) {\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ _react.default.createElement(\"a\", null, children);\n }\n const pagesRouter = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const appRouter = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const router = pagesRouter != null ? pagesRouter : appRouter;\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const prefetchEnabled = prefetchProp !== false;\n /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n */ const appPrefetchKind = prefetchProp === null ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (process.env.NODE_ENV !== \"production\") {\n function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in ``, but got `\" + args.actual + \"` instead.\" + (typeof window !== \"undefined\" ? \"\\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current && !isAppRouter) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (isAppRouter && !asProp) {\n let href;\n if (typeof hrefProp === \"string\") {\n href = hrefProp;\n } else if (typeof hrefProp === \"object\" && typeof hrefProp.pathname === \"string\") {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split(\"/\").some((segment)=>segment.startsWith(\"[\") && segment.endsWith(\"]\"));\n if (hasDynamicSegment) {\n throw new Error(\"Dynamic href `\" + href + \"` found in while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\");\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo(()=>{\n if (!pagesRouter) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(pagesRouter, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(pagesRouter, asProp) : resolvedAs || resolvedHref\n };\n }, [\n pagesRouter,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (process.env.NODE_ENV === \"development\") {\n if (onClick) {\n console.warn('\"onClick\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(\"No children were passed to with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\");\n }\n throw new Error(\"Multiple children were passed to with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + (typeof window !== \"undefined\" ? \" \\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n } else {\n child = _react.default.Children.only(children);\n }\n } else {\n if (process.env.NODE_ENV === \"development\") {\n if ((children == null ? void 0 : children.type) === \"a\") {\n throw new Error(\"Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor\");\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect(()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (process.env.NODE_ENV !== \"production\") {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }, [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n pagesRouter == null ? void 0 : pagesRouter.locale,\n router,\n isAppRouter,\n appPrefetchKind\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!e) {\n throw new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.');\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter, prefetchEnabled);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === \"function\") {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if ((!prefetchEnabled || process.env.NODE_ENV === \"development\") && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n },\n onTouchStart (e) {\n if (!legacyBehavior && typeof onTouchStartProp === \"function\") {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : pagesRouter == null ? void 0 : pagesRouter.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (pagesRouter == null ? void 0 : pagesRouter.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.locales, pagesRouter == null ? void 0 : pagesRouter.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ _react.default.createElement(\"a\", {\n ...restProps,\n ...childProps\n }, children);\n});\nconst _default = Link;\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=link.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"normalizeLocalePath\", {\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n});\nconst normalizeLocalePath = (pathname, locales)=>{\n if (process.env.__NEXT_I18N_SUPPORT) {\n return require(\"../shared/lib/i18n/normalize-locale-path\").normalizeLocalePath(pathname, locales);\n }\n return {\n pathname,\n detectedLocale: undefined\n };\n};\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=normalize-locale-path.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"useIntersection\", {\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n});\nconst _react = require(\"react\");\nconst _requestidlecallback = require(\"./request-idle-callback\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\n\nif ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', { value: true });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n}\n\n//# sourceMappingURL=use-intersection.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getImgProps\", {\n enumerable: true,\n get: function() {\n return getImgProps;\n }\n});\nconst _warnonce = require(\"./utils/warn-once\");\nconst _imageblursvg = require(\"./image-blur-svg\");\nconst _imageconfig = require(\"./image-config\");\nconst VALID_LOADING_VALUES = [\n \"lazy\",\n \"eager\",\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return typeof src === \"object\" && (isStaticRequire(src) || isStaticImageData(src));\n}\nconst allImgs = new Map();\nlet perfObserver;\nfunction getInt(x) {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes, allSizes } = param;\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio),\n kind: \"w\"\n };\n }\n return {\n widths: allSizes,\n kind: \"w\"\n };\n }\n if (typeof width !== \"number\") {\n return {\n widths: deviceSizes,\n kind: \"w\"\n };\n }\n const widths = [\n ...new Set(// > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: \"x\"\n };\n}\nfunction generateImgAttrs(param) {\n let { config, src, unoptimized, width, quality, sizes, loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === \"w\" ? w : i + 1) + kind).join(\", \"),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\nfunction getImgProps(param, _state) {\n let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, onLoad, onLoadingComplete, placeholder = \"empty\", blurDataURL, fetchPriority, layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state;\n let config;\n let c = imgConf || _imageconfig.imageConfigDefault;\n if (\"allSizes\" in c) {\n config = c;\n } else {\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n config = {\n ...c,\n allSizes,\n deviceSizes\n };\n }\n let loader = rest.loader || defaultLoader;\n // Remove property so it's not spread on element\n delete rest.loader;\n delete rest.srcSet;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = \"__next_img_default\" in loader;\n if (isDefaultLoader) {\n if (config.loader === \"custom\") {\n throw new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\");\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _, ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: \"100%\",\n height: \"auto\"\n },\n responsive: {\n width: \"100%\",\n height: \"auto\"\n }\n };\n const layoutToSizes = {\n responsive: \"100vw\",\n fill: \"100vw\"\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = \"\";\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received \" + JSON.stringify(staticImageData));\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received \" + JSON.stringify(staticImageData));\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === \"string\" ? src : staticSrc;\n let isLazy = !priority && (loading === \"lazy\" || typeof loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && src.endsWith(\".svg\") && !config.dangerouslyAllowSVG) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n if (priority) {\n fetchPriority = \"high\";\n }\n const qualityInt = getInt(quality);\n if (process.env.NODE_ENV !== \"production\") {\n if (config.output === \"export\" && isDefaultLoader && !unoptimized) {\n throw new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\");\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.');\n }\n if (height) {\n throw new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.');\n }\n if ((style == null ? void 0 : style.position) && style.position !== \"absolute\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.width) && style.width !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.');\n }\n if ((style == null ? void 0 : style.height) && style.height !== \"100%\") {\n throw new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.');\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"width\" property.');\n } else if (isNaN(widthInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".');\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error('Image with src \"' + src + '\" is missing required \"height\" property.');\n } else if (isNaN(heightInt)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".');\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(\",\") + \".\");\n }\n if (priority && loading === \"lazy\") {\n throw new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.');\n }\n if (placeholder !== \"empty\" && placeholder !== \"blur\" && !placeholder.startsWith(\"data:image/\")) {\n throw new Error('Image with src \"' + src + '\" has invalid \"placeholder\" property \"' + placeholder + '\".');\n }\n if (placeholder !== \"empty\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.');\n }\n }\n if (placeholder === \"blur\" && !blurDataURL) {\n const VALID_BLUR_EXT = [\n \"jpeg\",\n \"png\",\n \"webp\",\n \"avif\"\n ] // should match next-image-loader\n ;\n throw new Error('Image with src \"' + src + '\" has \"placeholder=\\'blur\\'\" property but is missing the \"blurDataURL\" property.\\n Possible solutions:\\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\\n - Change the \"src\" property to a static import with one of the supported file types: ' + VALID_BLUR_EXT.join(\",\") + ' (animated images not supported)\\n - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url');\n }\n if (\"ref\" in rest) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoadingComplete\" property instead.');\n }\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (typeof window !== \"undefined\" && !perfObserver && window.PerformanceObserver) {\n perfObserver = new PerformanceObserver((entryList)=>{\n for (const entry of entryList.getEntries()){\n var _entry_element;\n // @ts-ignore - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = (entry == null ? void 0 : (_entry_element = entry.element) == null ? void 0 : _entry_element.src) || \"\";\n const lcpImage = allImgs.get(imgSrc);\n if (lcpImage && !lcpImage.priority && lcpImage.placeholder === \"empty\" && !lcpImage.src.startsWith(\"data:\") && !lcpImage.src.startsWith(\"blob:\")) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n (0, _warnonce.warnOnce)('Image with src \"' + lcpImage.src + '\" was detected as the Largest Contentful Paint (LCP). Please add the \"priority\" property if this image is above the fold.' + \"\\nRead more: https://nextjs.org/docs/api-reference/next/image#priority\");\n }\n }\n });\n try {\n perfObserver.observe({\n type: \"largest-contentful-paint\",\n buffered: true\n });\n } catch (err) {\n // Log error but don't crash the app\n console.error(err);\n }\n }\n }\n const imgStyle = Object.assign(fill ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: \"transparent\"\n }, style);\n const backgroundImage = !blurComplete && placeholder !== \"empty\" ? placeholder === \"blur\" ? 'url(\"data:image/svg+xml;charset=utf-8,' + (0, _imageblursvg.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || \"\",\n objectFit: imgStyle.objectFit\n }) + '\")' : 'url(\"' + placeholder + '\")' // assume `data:image/`\n : null;\n let placeholderStyle = backgroundImage ? {\n backgroundSize: imgStyle.objectFit || \"cover\",\n backgroundPosition: imgStyle.objectPosition || \"50% 50%\",\n backgroundRepeat: \"no-repeat\",\n backgroundImage\n } : {};\n if (process.env.NODE_ENV === \"development\") {\n if (placeholderStyle.backgroundImage && placeholder === \"blur\" && (blurDataURL == null ? void 0 : blurDataURL.startsWith(\"/\"))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n let fullUrl;\n try {\n fullUrl = new URL(imgAttributes.src);\n } catch (e) {\n fullUrl = new URL(imgAttributes.src, window.location.href);\n }\n allImgs.set(fullUrl.href, {\n src,\n priority,\n placeholder\n });\n }\n }\n const props = {\n ...rest,\n loading: isLazy ? \"lazy\" : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding: \"async\",\n className,\n style: {\n ...imgStyle,\n ...placeholderStyle\n },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: imgAttributes.src\n };\n const meta = {\n unoptimized,\n priority,\n placeholder,\n fill\n };\n return {\n props,\n meta\n };\n}\n\n//# sourceMappingURL=get-img-props.js.map","/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getImageBlurSvg\", {\n enumerable: true,\n get: function() {\n return getImageBlurSvg;\n }\n});\nfunction getImageBlurSvg(param) {\n let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n const viewBox = svgWidth && svgHeight ? \"viewBox='0 0 \" + svgWidth + \" \" + svgHeight + \"'\" : \"\";\n const preserveAspectRatio = viewBox ? \"none\" : objectFit === \"contain\" ? \"xMidYMid\" : objectFit === \"cover\" ? \"xMidYMid slice\" : \"none\";\n return \"%3Csvg xmlns='http://www.w3.org/2000/svg' \" + viewBox + \"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='\" + preserveAspectRatio + \"' style='filter: url(%23b);' href='\" + blurDataURL + \"'/%3E%3C/svg%3E\";\n}\n\n//# sourceMappingURL=image-blur-svg.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n0 && (module.exports = {\n default: null,\n unstable_getImgProps: null\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n unstable_getImgProps: function() {\n return unstable_getImgProps;\n }\n});\nconst _interop_require_default = require(\"@swc/helpers/_/_interop_require_default\");\nconst _getimgprops = require(\"./get-img-props\");\nconst _warnonce = require(\"./utils/warn-once\");\nconst _imagecomponent = require(\"../../client/image-component\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(require(\"next/dist/shared/lib/image-loader\"));\nconst unstable_getImgProps = (imgProps)=>{\n (0, _warnonce.warnOnce)(\"Warning: unstable_getImgProps() is experimental and may change or be removed at any time. Use at your own risk.\");\n const { props } = (0, _getimgprops.getImgProps)(imgProps, {\n defaultLoader: _imageloader.default,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS\n });\n for (const [key, value] of Object.entries(props)){\n if (value === undefined) {\n delete props[key];\n }\n }\n return {\n props\n };\n};\nconst _default = _imagecomponent.Image;\n\n//# sourceMappingURL=image-external.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction defaultLoader(param) {\n let { config, src, width, quality } = param;\n if (process.env.NODE_ENV !== \"production\") {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push(\"src\");\n if (!width) missingValues.push(\"width\");\n if (missingValues.length > 0) {\n throw new Error(\"Next Image Optimization requires \" + missingValues.join(\", \") + \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \" + JSON.stringify({\n src,\n width,\n quality\n }));\n }\n if (src.startsWith(\"//\")) {\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)');\n }\n if (!src.startsWith(\"/\") && (config.domains || config.remotePatterns)) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw new Error('Failed to parse src \"' + src + '\" on `next/image`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)');\n }\n if (process.env.NODE_ENV !== \"test\" && // micromatch isn't compatible with edge runtime\n process.env.NEXT_RUNTIME !== \"edge\") {\n // We use dynamic require because this should only error in development\n const { hasMatch } = require(\"./match-remote-pattern\");\n if (!hasMatch(config.domains, config.remotePatterns, parsedSrc)) {\n throw new Error(\"Invalid src prop (\" + src + ') on `next/image`, hostname \"' + parsedSrc.hostname + '\" is not configured under images in your `next.config.js`\\n' + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host\");\n }\n }\n }\n }\n return config.path + \"?url=\" + encodeURIComponent(src) + \"&w=\" + width + \"&q=\" + (quality || 75) + (process.env.NEXT_DEPLOYMENT_ID ? \"&dpl=\" + process.env.NEXT_DEPLOYMENT_ID : \"\");\n}\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true;\nconst _default = defaultLoader;\n\n//# sourceMappingURL=image-loader.js.map","/*\n\n Global SEO config settings\n\n*/\n\nimport type { DefaultSeoProps } from 'next-seo/lib/types'\n\nimport { SEO_DOMAIN } from 'consts'\n\nconst title = 'Finimize: Invest smarter'\nconst description =\n 'Become a smarter investor with daily finance news, investing ideas, opportunities, and stock analysis.'\n\nconst SeoProps: DefaultSeoProps = {\n title,\n titleTemplate: '%s',\n description,\n\n openGraph: {\n title,\n description,\n type: 'website',\n locale: 'en_US',\n // we want to keep this static across all envs, as we don't want to populate SEO with any testing or dev urls\n url: SEO_DOMAIN,\n site_name: 'Finimize',\n images: [\n {\n url: `${SEO_DOMAIN}/images/og-image.png`,\n width: 1200,\n height: 627,\n alt: 'Finimize - Become a smarter investor.',\n },\n ],\n },\n twitter: {\n handle: '@finimize',\n site: '@finimize',\n cardType: 'summary_large_image',\n },\n}\nexport default SeoProps\n","import React from 'react'\n\nconst AppleTouch = '/images/AppIcons/apple-touch-icon.png'\nconst Favicon16 = '/images/AppIcons/favicon-16x16.png'\nconst Favicon32 = '/images/AppIcons/favicon-32x32.png'\n\nconst AppIcons = [\n ,\n ,\n ,\n ,\n]\n\nexport default AppIcons\n","/* eslint-disable local-rules/disallow-side-effects */\n/**\n * Keep references on console methods to avoid triggering patched behaviors\n *\n * NB: in some setup, console could already be patched by another SDK.\n * In this case, some display messages can be sent by the other SDK\n * but we should be safe from infinite loop nonetheless.\n */\nexport var ConsoleApiName = {\n log: 'log',\n debug: 'debug',\n info: 'info',\n warn: 'warn',\n error: 'error',\n};\n/**\n * When building JS bundles, some users might use a plugin[1] or configuration[2] to remove\n * \"console.*\" references. This causes some issue as we expect `console.*` to be defined.\n * As a workaround, let's use a variable alias, so those expressions won't be taken into account by\n * simple static analysis.\n *\n * [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/\n * [2]: https://github.com/terser/terser#compress-options (look for drop_console)\n */\nexport var globalConsole = console;\nexport var originalConsoleMethods = {};\nObject.keys(ConsoleApiName).forEach(function (name) {\n originalConsoleMethods[name] = globalConsole[name];\n});\nvar PREFIX = 'Datadog Browser SDK:';\nexport var display = {\n debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),\n log: originalConsoleMethods.log.bind(globalConsole, PREFIX),\n info: originalConsoleMethods.info.bind(globalConsole, PREFIX),\n warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),\n error: originalConsoleMethods.error.bind(globalConsole, PREFIX),\n};\n//# sourceMappingURL=display.js.map","import { display } from './display';\nexport function catchUserErrors(fn, errorMsg) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n try {\n return fn.apply(void 0, args);\n }\n catch (err) {\n display.error(errorMsg, err);\n }\n };\n}\n//# sourceMappingURL=catchUserErrors.js.map","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { display } from './display';\nvar onMonitorErrorCollected;\nvar debugMode = false;\nexport function startMonitorErrorCollection(newOnMonitorErrorCollected) {\n onMonitorErrorCollected = newOnMonitorErrorCollected;\n}\nexport function setDebugMode(newDebugMode) {\n debugMode = newDebugMode;\n}\nexport function resetMonitor() {\n onMonitorErrorCollected = undefined;\n debugMode = false;\n}\nexport function monitored(_, __, descriptor) {\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod;\n return decorated.apply(this, args);\n };\n}\nexport function monitor(fn) {\n return function () {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return callMonitored(fn, this, arguments);\n }; // consider output type has input type\n}\nexport function callMonitored(fn, context, args) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return fn.apply(context, args);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n if (onMonitorErrorCollected) {\n try {\n onMonitorErrorCollected(e);\n }\n catch (e) {\n displayIfDebugEnabled(e);\n }\n }\n }\n}\nexport function displayIfDebugEnabled() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (debugMode) {\n display.error.apply(display, __spreadArray(['[MONITOR]'], args, false));\n }\n}\n//# sourceMappingURL=monitor.js.map","export function includes(candidate, search) {\n return candidate.indexOf(search) !== -1;\n}\nexport function arrayFrom(arrayLike) {\n if (Array.from) {\n return Array.from(arrayLike);\n }\n var array = [];\n if (arrayLike instanceof Set) {\n arrayLike.forEach(function (item) { return array.push(item); });\n }\n else {\n for (var i = 0; i < arrayLike.length; i++) {\n array.push(arrayLike[i]);\n }\n }\n return array;\n}\nexport function find(array, predicate) {\n for (var i = 0; i < array.length; i += 1) {\n var item = array[i];\n if (predicate(item, i)) {\n return item;\n }\n }\n return undefined;\n}\nexport function findLast(array, predicate) {\n for (var i = array.length - 1; i >= 0; i -= 1) {\n var item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n return undefined;\n}\nexport function forEach(list, callback) {\n Array.prototype.forEach.call(list, callback);\n}\nexport function objectValues(object) {\n return Object.keys(object).map(function (key) { return object[key]; });\n}\nexport function objectEntries(object) {\n return Object.keys(object).map(function (key) { return [key, object[key]]; });\n}\nexport function startsWith(candidate, search) {\n return candidate.slice(0, search.length) === search;\n}\nexport function endsWith(candidate, search) {\n return candidate.slice(-search.length) === search;\n}\nexport function elementMatches(element, selector) {\n if (element.matches) {\n return element.matches(selector);\n }\n // IE11 support\n if (element.msMatchesSelector) {\n return element.msMatchesSelector(selector);\n }\n return false;\n}\n// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js\nexport function cssEscape(str) {\n if (window.CSS && window.CSS.escape) {\n return window.CSS.escape(str);\n }\n // eslint-disable-next-line no-control-regex\n return str.replace(/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g, function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === '\\0') {\n return '\\uFFFD';\n }\n // Control characters and (dependent upon position) numbers get escaped as code points\n return \"\".concat(ch.slice(0, -1), \"\\\\\").concat(ch.charCodeAt(ch.length - 1).toString(16), \" \");\n }\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\".concat(ch);\n });\n}\nexport function assign(target) {\n var toAssign = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n toAssign[_i - 1] = arguments[_i];\n }\n toAssign.forEach(function (source) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n//# sourceMappingURL=polyfills.js.map","import { catchUserErrors } from '../tools/catchUserErrors';\nimport { setDebugMode } from '../tools/monitor';\nimport { assign } from '../tools/utils/polyfills';\nexport function makePublicApi(stub) {\n var publicApi = assign({\n version: \"4.50.1\",\n // This API method is intentionally not monitored, since the only thing executed is the\n // user-provided 'callback'. All SDK usages executed in the callback should be monitored, and\n // we don't want to interfere with the user uncaught exceptions.\n onReady: function (callback) {\n callback();\n },\n }, stub);\n // Add a \"hidden\" property to set debug mode. We define it that way to hide it\n // as much as possible but of course it's not a real protection.\n Object.defineProperty(publicApi, '_setDebug', {\n get: function () {\n return setDebugMode;\n },\n enumerable: false,\n });\n return publicApi;\n}\nexport function defineGlobal(global, name, api) {\n var existingGlobalVariable = global[name];\n global[name] = api;\n if (existingGlobalVariable && existingGlobalVariable.q) {\n existingGlobalVariable.q.forEach(function (fn) { return catchUserErrors(fn, 'onReady callback threw an error:')(); });\n }\n}\n//# sourceMappingURL=init.js.map","/**\n * inspired by https://mathiasbynens.be/notes/globalthis\n */\nexport function getGlobalObject() {\n if (typeof globalThis === 'object') {\n return globalThis;\n }\n Object.defineProperty(Object.prototype, '_dd_temp_', {\n get: function () {\n return this;\n },\n configurable: true,\n });\n // @ts-ignore _dd_temp is defined using defineProperty\n var globalObject = _dd_temp_;\n // @ts-ignore _dd_temp is defined using defineProperty\n delete Object.prototype._dd_temp_;\n if (typeof globalObject !== 'object') {\n // on safari _dd_temp_ is available on window but not globally\n // fallback on other browser globals check\n if (typeof self === 'object') {\n globalObject = self;\n }\n else if (typeof window === 'object') {\n globalObject = window;\n }\n else {\n globalObject = {};\n }\n }\n return globalObject;\n}\n//# sourceMappingURL=getGlobalObject.js.map","export var ONE_KIBI_BYTE = 1024;\nexport var ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/;\nexport function computeBytesCount(candidate) {\n // Accurate bytes count computations can degrade performances when there is a lot of events to process\n if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {\n return candidate.length;\n }\n if (window.TextEncoder !== undefined) {\n return new TextEncoder().encode(candidate).length;\n }\n return new Blob([candidate]).size;\n}\nexport function concatBuffers(buffers) {\n var length = buffers.reduce(function (total, buffer) { return total + buffer.length; }, 0);\n var result = new Uint8Array(length);\n var offset = 0;\n for (var _i = 0, buffers_1 = buffers; _i < buffers_1.length; _i++) {\n var buffer = buffers_1[_i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n return result;\n}\n//# sourceMappingURL=byteUtils.js.map","import { getGlobalObject } from './getGlobalObject';\n/**\n * Gets the original value for a DOM API that was potentially patched by Zone.js.\n *\n * Zone.js[1] is a library that patches a bunch of JS and DOM APIs. It usually stores the original\n * value of the patched functions/constructors/methods in a hidden property prefixed by\n * __zone_symbol__.\n *\n * In multiple occasions, we observed that Zone.js is the culprit of important issues leading to\n * browser resource exhaustion (memory leak, high CPU usage). This method is used as a workaround to\n * use the original DOM API instead of the one patched by Zone.js.\n *\n * [1]: https://github.com/angular/angular/tree/main/packages/zone.js\n */\nexport function getZoneJsOriginalValue(target, name) {\n var browserWindow = getGlobalObject();\n var original;\n if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {\n original = target[browserWindow.Zone.__symbol__(name)];\n }\n if (!original) {\n original = target[name];\n }\n return original;\n}\n//# sourceMappingURL=getZoneJsOriginalValue.js.map","import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';\nimport { monitor } from './monitor';\nimport { getGlobalObject } from './getGlobalObject';\nexport function setTimeout(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);\n}\nexport function clearTimeout(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);\n}\nexport function setInterval(callback, delay) {\n return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);\n}\nexport function clearInterval(timeoutId) {\n getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);\n}\n//# sourceMappingURL=timer.js.map","import { setTimeout, clearTimeout } from '../timer';\n// use lodash API\nexport function throttle(fn, wait, options) {\n var needLeadingExecution = options && options.leading !== undefined ? options.leading : true;\n var needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;\n var inWaitPeriod = false;\n var pendingExecutionWithParameters;\n var pendingTimeoutId;\n return {\n throttled: function () {\n var parameters = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parameters[_i] = arguments[_i];\n }\n if (inWaitPeriod) {\n pendingExecutionWithParameters = parameters;\n return;\n }\n if (needLeadingExecution) {\n fn.apply(void 0, parameters);\n }\n else {\n pendingExecutionWithParameters = parameters;\n }\n inWaitPeriod = true;\n pendingTimeoutId = setTimeout(function () {\n if (needTrailingExecution && pendingExecutionWithParameters) {\n fn.apply(void 0, pendingExecutionWithParameters);\n }\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n }, wait);\n },\n cancel: function () {\n clearTimeout(pendingTimeoutId);\n inWaitPeriod = false;\n pendingExecutionWithParameters = undefined;\n },\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop() { }\n//# sourceMappingURL=functionUtils.js.map","/**\n * Similar to `typeof`, but distinguish plain objects from `null` and arrays\n */\nexport function getType(value) {\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return 'array';\n }\n return typeof value;\n}\n//# sourceMappingURL=typeUtils.js.map","import { getType } from './utils/typeUtils';\n/**\n * Iterate over source and affect its sub values into destination, recursively.\n * If the source and destination can't be merged, return source.\n */\nexport function mergeInto(destination, source, circularReferenceChecker) {\n if (circularReferenceChecker === void 0) { circularReferenceChecker = createCircularReferenceChecker(); }\n // ignore the source if it is undefined\n if (source === undefined) {\n return destination;\n }\n if (typeof source !== 'object' || source === null) {\n // primitive values - just return source\n return source;\n }\n else if (source instanceof Date) {\n return new Date(source.getTime());\n }\n else if (source instanceof RegExp) {\n var flags = source.flags ||\n // old browsers compatibility\n [\n source.global ? 'g' : '',\n source.ignoreCase ? 'i' : '',\n source.multiline ? 'm' : '',\n source.sticky ? 'y' : '',\n source.unicode ? 'u' : '',\n ].join('');\n return new RegExp(source.source, flags);\n }\n if (circularReferenceChecker.hasAlreadyBeenSeen(source)) {\n // remove circular references\n return undefined;\n }\n else if (Array.isArray(source)) {\n var merged_1 = Array.isArray(destination) ? destination : [];\n for (var i = 0; i < source.length; ++i) {\n merged_1[i] = mergeInto(merged_1[i], source[i], circularReferenceChecker);\n }\n return merged_1;\n }\n var merged = getType(destination) === 'object' ? destination : {};\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n merged[key] = mergeInto(merged[key], source[key], circularReferenceChecker);\n }\n }\n return merged;\n}\n/**\n * A simplistic implementation of a deep clone algorithm.\n * Caveats:\n * - It doesn't maintain prototype chains - don't use with instances of custom classes.\n * - It doesn't handle Map and Set\n */\nexport function deepClone(value) {\n return mergeInto(undefined, value);\n}\nexport function combine() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var destination;\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n // Ignore any undefined or null sources.\n if (source === undefined || source === null) {\n continue;\n }\n destination = mergeInto(destination, source);\n }\n return destination;\n}\nfunction createCircularReferenceChecker() {\n if (typeof WeakSet !== 'undefined') {\n var set_1 = new WeakSet();\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = set_1.has(value);\n if (!has) {\n set_1.add(value);\n }\n return has;\n },\n };\n }\n var array = [];\n return {\n hasAlreadyBeenSeen: function (value) {\n var has = array.indexOf(value) >= 0;\n if (!has) {\n array.push(value);\n }\n return has;\n },\n };\n}\n//# sourceMappingURL=mergeInto.js.map","import { noop } from '../utils/functionUtils';\n/**\n * Custom implementation of JSON.stringify that ignores some toJSON methods. We need to do that\n * because some sites badly override toJSON on certain objects. Removing all toJSON methods from\n * nested values would be too costly, so we just detach them from the root value, and native classes\n * used to build JSON values (Array and Object).\n *\n * Note: this still assumes that JSON.stringify is correct.\n */\nexport function jsonStringify(value, replacer, space) {\n if (typeof value !== 'object' || value === null) {\n return JSON.stringify(value);\n }\n // Note: The order matter here. We need to detach toJSON methods on parent classes before their\n // subclasses.\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n var restoreValuePrototypeToJson = detachToJsonMethod(Object.getPrototypeOf(value));\n var restoreValueToJson = detachToJsonMethod(value);\n try {\n return JSON.stringify(value, replacer, space);\n }\n catch (_a) {\n return '';\n }\n finally {\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n restoreValuePrototypeToJson();\n restoreValueToJson();\n }\n}\nexport function detachToJsonMethod(value) {\n var object = value;\n var objectToJson = object.toJSON;\n if (objectToJson) {\n delete object.toJSON;\n return function () {\n object.toJSON = objectToJson;\n };\n }\n return noop;\n}\n//# sourceMappingURL=jsonStringify.js.map","import { display } from '../display';\nimport { ONE_KIBI_BYTE } from '../utils/byteUtils';\nimport { detachToJsonMethod } from './jsonStringify';\n// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data\n// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...\nvar SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE;\n// Symbol for the root element of the JSONPath used for visited objects\nvar JSON_PATH_ROOT_ELEMENT = '$';\n// When serializing (using JSON.stringify) a key of an object, { key: 42 } gets wrapped in quotes as \"key\".\n// With the separator (:), we need to add 3 characters to the count.\nvar KEY_DECORATION_LENGTH = 3;\nexport function sanitize(source, maxCharacterCount) {\n var _a;\n if (maxCharacterCount === void 0) { maxCharacterCount = SANITIZE_DEFAULT_MAX_CHARACTER_COUNT; }\n // Unbind any toJSON function we may have on [] or {} prototypes\n var restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype);\n var restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype);\n // Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object\n var containerQueue = [];\n var visitedObjectsWithPath = new WeakMap();\n var sanitizedData = sanitizeProcessor(source, JSON_PATH_ROOT_ELEMENT, undefined, containerQueue, visitedObjectsWithPath);\n var accumulatedCharacterCount = ((_a = JSON.stringify(sanitizedData)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'discarded', source);\n return undefined;\n }\n while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {\n var containerToProcess = containerQueue.shift();\n var separatorLength = 0; // 0 for the first element, 1 for subsequent elements\n // Arrays and Objects have to be handled distinctly to ensure\n // we do not pick up non-numerical properties from Arrays\n if (Array.isArray(containerToProcess.source)) {\n for (var key = 0; key < containerToProcess.source.length; key++) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n if (targetData !== undefined) {\n accumulatedCharacterCount += JSON.stringify(targetData).length;\n }\n else {\n // When an element of an Array (targetData) is undefined, it is serialized as null:\n // JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters\n accumulatedCharacterCount += 4;\n }\n accumulatedCharacterCount += separatorLength;\n separatorLength = 1;\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n else {\n for (var key in containerToProcess.source) {\n if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {\n var targetData = sanitizeProcessor(containerToProcess.source[key], containerToProcess.path, key, containerQueue, visitedObjectsWithPath);\n // When a property of an object has an undefined value, it will be dropped during serialization:\n // JSON.stringify({a:undefined}) => '{}'\n if (targetData !== undefined) {\n accumulatedCharacterCount +=\n JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH;\n separatorLength = 1;\n }\n if (accumulatedCharacterCount > maxCharacterCount) {\n warnOverCharacterLimit(maxCharacterCount, 'truncated', source);\n break;\n }\n ;\n containerToProcess.target[key] = targetData;\n }\n }\n }\n }\n // Rebind detached toJSON functions\n restoreObjectPrototypeToJson();\n restoreArrayPrototypeToJson();\n return sanitizedData;\n}\n/**\n * Internal function to factorize the process common to the\n * initial call to sanitize, and iterations for Arrays and Objects\n *\n */\nfunction sanitizeProcessor(source, parentPath, key, queue, visitedObjectsWithPath) {\n // Start by handling toJSON, as we want to sanitize its output\n var sourceToSanitize = tryToApplyToJSON(source);\n if (!sourceToSanitize || typeof sourceToSanitize !== 'object') {\n return sanitizePrimitivesAndFunctions(sourceToSanitize);\n }\n var sanitizedSource = sanitizeObjects(sourceToSanitize);\n if (sanitizedSource !== '[Object]' && sanitizedSource !== '[Array]' && sanitizedSource !== '[Error]') {\n return sanitizedSource;\n }\n // Handle potential cyclic references\n // We need to use source as sourceToSanitize could be a reference to a new object\n // At this stage, we know the source is an object type\n var sourceAsObject = source;\n if (visitedObjectsWithPath.has(sourceAsObject)) {\n return \"[Reference seen at \".concat(visitedObjectsWithPath.get(sourceAsObject), \"]\");\n }\n // Add processed source to queue\n var currentPath = key !== undefined ? \"\".concat(parentPath, \".\").concat(key) : parentPath;\n var target = Array.isArray(sourceToSanitize) ? [] : {};\n visitedObjectsWithPath.set(sourceAsObject, currentPath);\n queue.push({ source: sourceToSanitize, target: target, path: currentPath });\n return target;\n}\n/**\n * Handles sanitization of simple, non-object types\n *\n */\nfunction sanitizePrimitivesAndFunctions(value) {\n // BigInt cannot be serialized by JSON.stringify(), convert it to a string representation\n if (typeof value === 'bigint') {\n return \"[BigInt] \".concat(value.toString());\n }\n // Functions cannot be serialized by JSON.stringify(). Moreover, if a faulty toJSON is present, it needs to be converted\n // so it won't prevent stringify from serializing later\n if (typeof value === 'function') {\n return \"[Function] \".concat(value.name || 'unknown');\n }\n // JSON.stringify() does not serialize symbols.\n if (typeof value === 'symbol') {\n return \"[Symbol] \".concat(value.description || value.toString());\n }\n return value;\n}\n/**\n * Handles sanitization of object types\n *\n * LIMITATIONS\n * - If a class defines a toStringTag Symbol, it will fall in the catch-all method and prevent enumeration of properties.\n * To avoid this, a toJSON method can be defined.\n * - IE11 does not return a distinct type for objects such as Map, WeakMap, ... These objects will pass through and their\n * properties enumerated if any.\n *\n */\nfunction sanitizeObjects(value) {\n try {\n // Handle events - Keep a simple implementation to avoid breaking changes\n if (value instanceof Event) {\n return {\n isTrusted: value.isTrusted,\n };\n }\n // Handle all remaining object types in a generic way\n var result = Object.prototype.toString.call(value);\n var match = result.match(/\\[object (.*)\\]/);\n if (match && match[1]) {\n return \"[\".concat(match[1], \"]\");\n }\n }\n catch (_a) {\n // If the previous serialization attempts failed, and we cannot convert using\n // Object.prototype.toString, declare the value unserializable\n }\n return '[Unserializable]';\n}\n/**\n * Checks if a toJSON function exists and tries to execute it\n *\n */\nfunction tryToApplyToJSON(value) {\n var object = value;\n if (object && typeof object.toJSON === 'function') {\n try {\n return object.toJSON();\n }\n catch (_a) {\n // If toJSON fails, we continue by trying to serialize the value manually\n }\n }\n return value;\n}\n/**\n * Helper function to display the warning when the accumulated character count is over the limit\n */\nfunction warnOverCharacterLimit(maxCharacterCount, changeType, source) {\n display.warn(\"The data provided has been \".concat(changeType, \" as it is over the limit of \").concat(maxCharacterCount, \" characters:\"), source);\n}\n//# sourceMappingURL=sanitize.js.map","var Observable = /** @class */ (function () {\n function Observable(onFirstSubscribe) {\n this.onFirstSubscribe = onFirstSubscribe;\n this.observers = [];\n }\n Observable.prototype.subscribe = function (f) {\n var _this = this;\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;\n }\n this.observers.push(f);\n return {\n unsubscribe: function () {\n _this.observers = _this.observers.filter(function (other) { return f !== other; });\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe();\n }\n },\n };\n };\n Observable.prototype.notify = function (data) {\n this.observers.forEach(function (observer) { return observer(data); });\n };\n return Observable;\n}());\nexport { Observable };\nexport function mergeObservables() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var globalObservable = new Observable(function () {\n var subscriptions = observables.map(function (observable) {\n return observable.subscribe(function (data) { return globalObservable.notify(data); });\n });\n return function () { return subscriptions.forEach(function (subscription) { return subscription.unsubscribe(); }); };\n });\n return globalObservable;\n}\n//# sourceMappingURL=observable.js.map","var _a;\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { display } from '../../tools/display';\n// RUM and logs batch bytes limit is 16KB\n// ensure that we leave room for other event attributes and maintain a decent amount of event per batch\n// (3KB (customer data) + 1KB (other attributes)) * 4 (events per batch) = 16KB\nexport var CUSTOMER_DATA_BYTES_LIMIT = 3 * ONE_KIBI_BYTE;\nvar CustomerDataLabel = (_a = {},\n _a[0 /* CustomerDataType.FeatureFlag */] = 'feature flag evaluation',\n _a[1 /* CustomerDataType.User */] = 'user',\n _a[2 /* CustomerDataType.GlobalContext */] = 'global context',\n _a[3 /* CustomerDataType.LoggerContext */] = 'logger context',\n _a);\nexport function warnIfCustomerDataLimitReached(bytesCount, customerDataType) {\n if (bytesCount > CUSTOMER_DATA_BYTES_LIMIT) {\n display.warn(\"The \".concat(CustomerDataLabel[customerDataType], \" data exceeds the recommended \").concat(CUSTOMER_DATA_BYTES_LIMIT / ONE_KIBI_BYTE, \"KiB threshold. More details: https://docs.datadoghq.com/real_user_monitoring/browser/troubleshooting/#customer-data-exceeds-the-recommended-3kib-warning\"));\n return true;\n }\n return false;\n}\n//# sourceMappingURL=heavyCustomerDataWarning.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { deepClone } from '../../tools/mergeInto';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { Observable } from '../../tools/observable';\nimport { warnIfCustomerDataLimitReached } from './heavyCustomerDataWarning';\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\nexport function createContextManager(customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var context = {};\n var bytesCountCache;\n var alreadyWarned = false;\n var changeObservable = new Observable();\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call context APIs synchronously multiple times in a row\n var computeBytesCountThrottled = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, customerDataType);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY).throttled;\n var contextManager = {\n getBytesCount: function () { return bytesCountCache; },\n /** @deprecated use getContext instead */\n get: function () { return context; },\n /** @deprecated use setContextProperty instead */\n add: function (key, value) {\n context[key] = value;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated renamed to removeContextProperty */\n remove: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n /** @deprecated use setContext instead */\n set: function (newContext) {\n context = newContext;\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n getContext: function () { return deepClone(context); },\n setContext: function (newContext) {\n if (getType(newContext) === 'object') {\n context = sanitize(newContext);\n computeBytesCountThrottled(context);\n }\n else {\n contextManager.clearContext();\n }\n changeObservable.notify();\n },\n setContextProperty: function (key, property) {\n context[key] = sanitize(property);\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n removeContextProperty: function (key) {\n delete context[key];\n computeBytesCountThrottled(context);\n changeObservable.notify();\n },\n clearContext: function () {\n context = {};\n bytesCountCache = 0;\n changeObservable.notify();\n },\n changeObservable: changeObservable,\n };\n return contextManager;\n}\n//# sourceMappingURL=contextManager.js.map","var BUFFER_LIMIT = 500;\nvar BoundedBuffer = /** @class */ (function () {\n function BoundedBuffer() {\n this.buffer = [];\n }\n BoundedBuffer.prototype.add = function (callback) {\n var length = this.buffer.push(callback);\n if (length > BUFFER_LIMIT) {\n this.buffer.splice(0, 1);\n }\n };\n BoundedBuffer.prototype.drain = function () {\n this.buffer.forEach(function (callback) { return callback(); });\n this.buffer.length = 0;\n };\n return BoundedBuffer;\n}());\nexport { BoundedBuffer };\n//# sourceMappingURL=boundedBuffer.js.map","/**\n * Return true if the draw is successful\n * @param threshold between 0 and 100\n */\nexport function performDraw(threshold) {\n return threshold !== 0 && Math.random() * 100 <= threshold;\n}\nexport function round(num, decimals) {\n return +num.toFixed(decimals);\n}\nexport function isPercentage(value) {\n return isNumber(value) && value >= 0 && value <= 100;\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\n//# sourceMappingURL=numberUtils.js.map","import { isNumber, round } from './numberUtils';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = 60 * ONE_SECOND;\nexport var ONE_HOUR = 60 * ONE_MINUTE;\nexport var ONE_DAY = 24 * ONE_HOUR;\nexport var ONE_YEAR = 365 * ONE_DAY;\nexport function relativeToClocks(relative) {\n return { relative: relative, timeStamp: getCorrectedTimeStamp(relative) };\n}\nfunction getCorrectedTimeStamp(relativeTime) {\n var correctedOrigin = (dateNow() - performance.now());\n // apply correction only for positive drift\n if (correctedOrigin > getNavigationStart()) {\n return Math.round(addDuration(correctedOrigin, relativeTime));\n }\n return getTimeStamp(relativeTime);\n}\nexport function currentDrift() {\n return Math.round(dateNow() - addDuration(getNavigationStart(), performance.now()));\n}\nexport function toServerDuration(duration) {\n if (!isNumber(duration)) {\n return duration;\n }\n return round(duration * 1e6, 0);\n}\nexport function dateNow() {\n // Do not use `Date.now` because sometimes websites are wrongly \"polyfilling\" it. For example, we\n // had some users using a very old version of `datejs`, which patched `Date.now` to return a Date\n // instance instead of a timestamp[1]. Those users are unlikely to fix this, so let's handle this\n // case ourselves.\n // [1]: https://github.com/datejs/Datejs/blob/97f5c7c58c5bc5accdab8aa7602b6ac56462d778/src/core-debug.js#L14-L16\n return new Date().getTime();\n}\nexport function timeStampNow() {\n return dateNow();\n}\nexport function relativeNow() {\n return performance.now();\n}\nexport function clocksNow() {\n return { relative: relativeNow(), timeStamp: timeStampNow() };\n}\nexport function clocksOrigin() {\n return { relative: 0, timeStamp: getNavigationStart() };\n}\nexport function elapsed(start, end) {\n return (end - start);\n}\nexport function addDuration(a, b) {\n return a + b;\n}\n/**\n * Get the time since the navigation was started.\n *\n * Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual\n * time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.\n * Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926\n */\nexport function getRelativeTime(timestamp) {\n return (timestamp - getNavigationStart());\n}\nexport function getTimeStamp(relativeTime) {\n return Math.round(addDuration(getNavigationStart(), relativeTime));\n}\nexport function looksLikeRelativeTime(time) {\n return time < ONE_YEAR;\n}\n/**\n * Navigation start slightly change on some rare cases\n */\nvar navigationStart;\nfunction getNavigationStart() {\n if (navigationStart === undefined) {\n navigationStart = performance.timing.navigationStart;\n }\n return navigationStart;\n}\nexport function resetNavigationStart() {\n navigationStart = undefined;\n}\n//# sourceMappingURL=timeUtils.js.map","/**\n * UUID v4\n * from https://gist.github.com/jed/982883\n */\nexport function generateUUID(placeholder) {\n return placeholder\n ? // eslint-disable-next-line no-bitwise\n (parseInt(placeholder, 10) ^ ((Math.random() * 16) >> (parseInt(placeholder, 10) / 4))).toString(16)\n : \"\".concat(1e7, \"-\").concat(1e3, \"-\").concat(4e3, \"-\").concat(8e3, \"-\").concat(1e11).replace(/[018]/g, generateUUID);\n}\nexport function findCommaSeparatedValue(rawString, name) {\n var regex = new RegExp(\"(?:^|;)\\\\s*\".concat(name, \"\\\\s*=\\\\s*([^;]+)\"));\n var matches = regex.exec(rawString);\n return matches ? matches[1] : undefined;\n}\nexport function safeTruncate(candidate, length, suffix) {\n if (suffix === void 0) { suffix = ''; }\n var lastChar = candidate.charCodeAt(length - 1);\n var isLastCharSurrogatePair = lastChar >= 0xd800 && lastChar <= 0xdbff;\n var correctedLength = isLastCharSurrogatePair ? length + 1 : length;\n if (candidate.length <= correctedLength) {\n return candidate;\n }\n return \"\".concat(candidate.slice(0, correctedLength)).concat(suffix);\n}\n//# sourceMappingURL=stringUtils.js.map","import { display } from '../tools/display';\nimport { ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { findCommaSeparatedValue, generateUUID } from '../tools/utils/stringUtils';\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date();\n date.setTime(date.getTime() + expireDelay);\n var expires = \"expires=\".concat(date.toUTCString());\n var sameSite = options && options.crossSite ? 'none' : 'strict';\n var domain = options && options.domain ? \";domain=\".concat(options.domain) : '';\n var secure = options && options.secure ? ';secure' : '';\n document.cookie = \"\".concat(name, \"=\").concat(value, \";\").concat(expires, \";path=/;samesite=\").concat(sameSite).concat(domain).concat(secure);\n}\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name);\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options);\n}\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false;\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_cookie_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n setCookie(testCookieName, testCookieValue, ONE_MINUTE, options);\n var isCookieCorrectlySet = getCookie(testCookieName) === testCookieValue;\n deleteCookie(testCookieName, options);\n return isCookieCorrectlySet;\n }\n catch (error) {\n display.error(error);\n return false;\n }\n}\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache;\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = \"dd_site_test_\".concat(generateUUID());\n var testCookieValue = 'test';\n var domainLevels = window.location.hostname.split('.');\n var candidateDomain = domainLevels.pop();\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = \"\".concat(domainLevels.pop(), \".\").concat(candidateDomain);\n setCookie(testCookieName, testCookieValue, ONE_SECOND, { domain: candidateDomain });\n }\n deleteCookie(testCookieName, { domain: candidateDomain });\n getCurrentSiteCache = candidateDomain;\n }\n return getCurrentSiteCache;\n}\n//# sourceMappingURL=cookie.js.map","import { getCookie } from '../../browser/cookie';\nexport var SYNTHETICS_TEST_ID_COOKIE_NAME = 'datadog-synthetics-public-id';\nexport var SYNTHETICS_RESULT_ID_COOKIE_NAME = 'datadog-synthetics-result-id';\nexport var SYNTHETICS_INJECTS_RUM_COOKIE_NAME = 'datadog-synthetics-injects-rum';\nexport function willSyntheticsInjectRum() {\n return Boolean(window._DATADOG_SYNTHETICS_INJECTS_RUM || getCookie(SYNTHETICS_INJECTS_RUM_COOKIE_NAME));\n}\nexport function getSyntheticsTestId() {\n var value = window._DATADOG_SYNTHETICS_PUBLIC_ID || getCookie(SYNTHETICS_TEST_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\nexport function getSyntheticsResultId() {\n var value = window._DATADOG_SYNTHETICS_RESULT_ID || getCookie(SYNTHETICS_RESULT_ID_COOKIE_NAME);\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=syntheticsWorkerValues.js.map","import { endsWith } from '../tools/utils/polyfills';\nimport { getGlobalObject } from '../tools/getGlobalObject';\nexport function getEventBridge() {\n var eventBridgeGlobal = getEventBridgeGlobal();\n if (!eventBridgeGlobal) {\n return;\n }\n return {\n getAllowedWebViewHosts: function () {\n return JSON.parse(eventBridgeGlobal.getAllowedWebViewHosts());\n },\n send: function (eventType, event) {\n eventBridgeGlobal.send(JSON.stringify({ eventType: eventType, event: event }));\n },\n };\n}\nexport function canUseEventBridge(currentHost) {\n var _a;\n if (currentHost === void 0) { currentHost = (_a = getGlobalObject().location) === null || _a === void 0 ? void 0 : _a.hostname; }\n var bridge = getEventBridge();\n return (!!bridge &&\n bridge\n .getAllowedWebViewHosts()\n .some(function (allowedHost) { return currentHost === allowedHost || endsWith(currentHost, \".\".concat(allowedHost)); }));\n}\nfunction getEventBridgeGlobal() {\n return getGlobalObject().DatadogEventBridge;\n}\n//# sourceMappingURL=eventBridge.js.map","import { monitor } from '../tools/monitor';\nimport { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue';\n/**\n * Add an event listener to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n */\nexport function addEventListener(configuration, eventTarget, eventName, listener, options) {\n return addEventListeners(configuration, eventTarget, [eventName], listener, options);\n}\n/**\n * Add event listeners to an event target object (Window, Element, mock object...). This provides\n * a few conveniences compared to using `element.addEventListener` directly:\n *\n * * supports IE11 by: using an option object only if needed and emulating the `once` option\n *\n * * wraps the listener with a `monitor` function\n *\n * * returns a `stop` function to remove the listener\n *\n * * with `once: true`, the listener will be called at most once, even if different events are listened\n */\nexport function addEventListeners(_, eventTarget, eventNames, listener, _a) {\n var _b = _a === void 0 ? {} : _a, once = _b.once, capture = _b.capture, passive = _b.passive;\n var listenerWithMonitor = monitor(once\n ? function (event) {\n stop();\n listener(event);\n }\n : listener);\n var options = passive ? { capture: capture, passive: passive } : capture;\n var add = getZoneJsOriginalValue(eventTarget, 'addEventListener');\n eventNames.forEach(function (eventName) { return add.call(eventTarget, eventName, listenerWithMonitor, options); });\n function stop() {\n var remove = getZoneJsOriginalValue(eventTarget, 'removeEventListener');\n eventNames.forEach(function (eventName) { return remove.call(eventTarget, eventName, listenerWithMonitor, options); });\n }\n return {\n stop: stop,\n };\n}\n//# sourceMappingURL=addEventListener.js.map","import { computeBytesCount } from '../../tools/utils/byteUtils';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { createContextManager } from './contextManager';\nvar CONTEXT_STORE_KEY_PREFIX = '_dd_c';\nvar storageListeners = [];\nexport function createStoredContextManager(configuration, productKey, customerDataType, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n var storageKey = buildStorageKey(productKey, customerDataType);\n var contextManager = createContextManager(customerDataType, computeBytesCountImpl);\n synchronizeWithStorage();\n storageListeners.push(addEventListener(configuration, window, \"storage\" /* DOM_EVENT.STORAGE */, function (_a) {\n var key = _a.key;\n if (storageKey === key) {\n synchronizeWithStorage();\n }\n }));\n contextManager.changeObservable.subscribe(dumpToStorage);\n return contextManager;\n function synchronizeWithStorage() {\n var rawContext = localStorage.getItem(storageKey);\n var context = rawContext !== null ? JSON.parse(rawContext) : {};\n contextManager.setContext(context);\n }\n function dumpToStorage() {\n localStorage.setItem(storageKey, JSON.stringify(contextManager.getContext()));\n }\n}\nexport function buildStorageKey(productKey, customerDataType) {\n return \"\".concat(CONTEXT_STORE_KEY_PREFIX, \"_\").concat(productKey, \"_\").concat(customerDataType);\n}\nexport function removeStorageListeners() {\n storageListeners.map(function (listener) { return listener.stop(); });\n}\n//# sourceMappingURL=storedContextManager.js.map","import { startsWith } from '../../tools/utils/polyfills';\nvar UNKNOWN_FUNCTION = '?';\n/**\n * Computes a stack trace for an exception.\n */\nexport function computeStackTrace(ex) {\n var stack = [];\n var stackProperty = tryToGetString(ex, 'stack');\n var exString = String(ex);\n if (stackProperty && startsWith(stackProperty, exString)) {\n stackProperty = stackProperty.slice(exString.length);\n }\n if (stackProperty) {\n stackProperty.split('\\n').forEach(function (line) {\n var stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);\n if (stackFrame) {\n if (!stackFrame.func && stackFrame.line) {\n stackFrame.func = UNKNOWN_FUNCTION;\n }\n stack.push(stackFrame);\n }\n });\n }\n return {\n message: tryToGetString(ex, 'message'),\n name: tryToGetString(ex, 'name'),\n stack: stack,\n };\n}\nvar fileUrl = '((?:file|https?|blob|chrome-extension|native|eval|webpack|snippet||\\\\w+\\\\.|\\\\/).*?)';\nvar filePosition = '(?::(\\\\d+))';\nvar CHROME_LINE_RE = new RegExp(\"^\\\\s*at (.*?) ?\\\\(\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"?\\\\)?\\\\s*$\"), 'i');\nvar CHROME_EVAL_RE = new RegExp(\"\\\\((\\\\S*)\".concat(filePosition).concat(filePosition, \"\\\\)\"));\nfunction parseChromeLine(line) {\n var parts = CHROME_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n var submatch = CHROME_EVAL_RE.exec(parts[2]);\n if (isEval && 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 return {\n args: isNative ? [parts[2]] : [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[3] ? +parts[3] : undefined,\n url: !isNative ? parts[2] : undefined,\n };\n}\nvar CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(\"^\\\\s*at ?\".concat(fileUrl).concat(filePosition, \"?\").concat(filePosition, \"??\\\\s*$\"), 'i');\nfunction parseChromeAnonymousLine(line) {\n var parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[3] ? +parts[3] : undefined,\n func: UNKNOWN_FUNCTION,\n line: parts[2] ? +parts[2] : undefined,\n url: parts[1],\n };\n}\nvar WINJS_LINE_RE = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nfunction parseWinLine(line) {\n var parts = WINJS_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n return {\n args: [],\n column: parts[4] ? +parts[4] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: +parts[3],\n url: parts[2],\n };\n}\nvar GECKO_LINE_RE = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar GECKO_EVAL_RE = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nfunction parseGeckoLine(line) {\n var parts = GECKO_LINE_RE.exec(line);\n if (!parts) {\n return;\n }\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n var submatch = GECKO_EVAL_RE.exec(parts[3]);\n if (isEval && submatch) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = undefined; // no column when eval\n }\n return {\n args: parts[2] ? parts[2].split(',') : [],\n column: parts[5] ? +parts[5] : undefined,\n func: parts[1] || UNKNOWN_FUNCTION,\n line: parts[4] ? +parts[4] : undefined,\n url: parts[3],\n };\n}\nfunction tryToGetString(candidate, property) {\n if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {\n return undefined;\n }\n var value = candidate[property];\n return typeof value === 'string' ? value : undefined;\n}\n//# sourceMappingURL=computeStackTrace.js.map","import { computeStackTrace } from '../tracekit';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { noop } from '../../tools/utils/functionUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nexport var NO_ERROR_STACK_PRESENT_MESSAGE = 'No stack, consider using an instance of Error';\nexport function computeRawError(_a) {\n var stackTrace = _a.stackTrace, originalError = _a.originalError, handlingStack = _a.handlingStack, startClocks = _a.startClocks, nonErrorPrefix = _a.nonErrorPrefix, source = _a.source, handling = _a.handling;\n var isErrorInstance = originalError instanceof Error;\n var message = computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError);\n var stack = hasUsableStack(isErrorInstance, stackTrace)\n ? toStackTraceString(stackTrace)\n : NO_ERROR_STACK_PRESENT_MESSAGE;\n var causes = isErrorInstance ? flattenErrorCauses(originalError, source) : undefined;\n var type = stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name;\n var fingerprint = tryToGetFingerprint(originalError);\n return {\n startClocks: startClocks,\n source: source,\n handling: handling,\n handlingStack: handlingStack,\n originalError: originalError,\n type: type,\n message: message,\n stack: stack,\n causes: causes,\n fingerprint: fingerprint,\n };\n}\nfunction computeMessage(stackTrace, isErrorInstance, nonErrorPrefix, originalError) {\n // Favor stackTrace message only if tracekit has really been able to extract something meaningful (message + name)\n // TODO rework tracekit integration to avoid scattering error building logic\n return (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.message) && (stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name)\n ? stackTrace.message\n : !isErrorInstance\n ? \"\".concat(nonErrorPrefix, \" \").concat(jsonStringify(sanitize(originalError)))\n : 'Empty message';\n}\nfunction hasUsableStack(isErrorInstance, stackTrace) {\n if (stackTrace === undefined) {\n return false;\n }\n if (isErrorInstance) {\n return true;\n }\n // handle cases where tracekit return stack = [] or stack = [{url: undefined, line: undefined, column: undefined}]\n // TODO rework tracekit integration to avoid generating those unusable stack\n return stackTrace.stack.length > 0 && (stackTrace.stack.length > 1 || stackTrace.stack[0].url !== undefined);\n}\nexport function tryToGetFingerprint(originalError) {\n return originalError instanceof Error && 'dd_fingerprint' in originalError\n ? String(originalError.dd_fingerprint)\n : undefined;\n}\nexport function toStackTraceString(stack) {\n var result = formatErrorMessage(stack);\n stack.stack.forEach(function (frame) {\n var func = frame.func === '?' ? '' : frame.func;\n var args = frame.args && frame.args.length > 0 ? \"(\".concat(frame.args.join(', '), \")\") : '';\n var line = frame.line ? \":\".concat(frame.line) : '';\n var column = frame.line && frame.column ? \":\".concat(frame.column) : '';\n result += \"\\n at \".concat(func).concat(args, \" @ \").concat(frame.url).concat(line).concat(column);\n });\n return result;\n}\nexport function getFileFromStackTraceString(stack) {\n var _a;\n return (_a = /@ (.+)/.exec(stack)) === null || _a === void 0 ? void 0 : _a[1];\n}\nexport function formatErrorMessage(stack) {\n return \"\".concat(stack.name || 'Error', \": \").concat(stack.message);\n}\n/**\n Creates a stacktrace without SDK internal frames.\n \n Constraints:\n - Has to be called at the utmost position of the call stack.\n - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.\n */\nexport function createHandlingStack() {\n /**\n * Skip the two internal frames:\n * - SDK API (console.error, ...)\n * - this function\n * in order to keep only the user calls\n */\n var internalFramesToSkip = 2;\n var error = new Error();\n var formattedStack;\n // IE needs to throw the error to fill in the stack trace\n if (!error.stack) {\n try {\n throw error;\n }\n catch (e) {\n noop();\n }\n }\n callMonitored(function () {\n var stackTrace = computeStackTrace(error);\n stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);\n formattedStack = toStackTraceString(stackTrace);\n });\n return formattedStack;\n}\nexport function flattenErrorCauses(error, parentSource) {\n var currentError = error;\n var causes = [];\n while ((currentError === null || currentError === void 0 ? void 0 : currentError.cause) instanceof Error && causes.length < 10) {\n var stackTrace = computeStackTrace(currentError.cause);\n causes.push({\n message: currentError.cause.message,\n source: parentSource,\n type: stackTrace === null || stackTrace === void 0 ? void 0 : stackTrace.name,\n stack: stackTrace && toStackTraceString(stackTrace),\n });\n currentError = currentError.cause;\n }\n return causes.length ? causes : undefined;\n}\n//# sourceMappingURL=error.js.map","import { display } from '../../tools/display';\nimport { getType } from '../../tools/utils/typeUtils';\nimport { assign } from '../../tools/utils/polyfills';\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n * https://docs.datadoghq.com/logs/log_configuration/attributes_naming_convention/#user-related-attributes\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser);\n var keys = ['id', 'name', 'email'];\n keys.forEach(function (key) {\n if (key in user) {\n user[key] = String(user[key]);\n }\n });\n return user;\n}\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object';\n if (!isValid) {\n display.error('Unsupported user:', newUser);\n }\n return isValid;\n}\n//# sourceMappingURL=user.js.map","/**\n * LIMITATION:\n * For NPM setup, this feature flag singleton is shared between RUM and Logs product.\n * This means that an experimental flag set on the RUM product will be set on the Logs product.\n * So keep in mind that in certain configurations, your experimental feature flag may affect other products.\n *\n * FORMAT:\n * All feature flags should be snake_cased\n */\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected feature flag\n// eslint-disable-next-line no-restricted-syntax\nexport var ExperimentalFeature;\n(function (ExperimentalFeature) {\n ExperimentalFeature[\"PAGEHIDE\"] = \"pagehide\";\n ExperimentalFeature[\"FEATURE_FLAGS\"] = \"feature_flags\";\n ExperimentalFeature[\"RESOURCE_PAGE_STATES\"] = \"resource_page_states\";\n ExperimentalFeature[\"PAGE_STATES\"] = \"page_states\";\n ExperimentalFeature[\"COLLECT_FLUSH_REASON\"] = \"collect_flush_reason\";\n ExperimentalFeature[\"NO_RESOURCE_DURATION_FROZEN_STATE\"] = \"no_resource_duration_frozen_state\";\n ExperimentalFeature[\"SCROLLMAP\"] = \"scrollmap\";\n ExperimentalFeature[\"INTERACTION_TO_NEXT_PAINT\"] = \"interaction_to_next_paint\";\n ExperimentalFeature[\"WEB_VITALS_ATTRIBUTION\"] = \"web_vitals_attribution\";\n ExperimentalFeature[\"DISABLE_REPLAY_INLINE_CSS\"] = \"disable_replay_inline_css\";\n})(ExperimentalFeature || (ExperimentalFeature = {}));\nvar enabledExperimentalFeatures = new Set();\nexport function addExperimentalFeatures(enabledFeatures) {\n enabledFeatures.forEach(function (flag) {\n enabledExperimentalFeatures.add(flag);\n });\n}\nexport function isExperimentalFeatureEnabled(featureName) {\n return enabledExperimentalFeatures.has(featureName);\n}\nexport function resetExperimentalFeatures() {\n enabledExperimentalFeatures.clear();\n}\nexport function getExperimentalFeatures() {\n return enabledExperimentalFeatures;\n}\n//# sourceMappingURL=experimentalFeatures.js.map","import { assign } from './polyfills';\nexport function shallowClone(object) {\n return assign({}, object);\n}\nexport function objectHasValue(object, value) {\n return Object.keys(object).some(function (key) { return object[key] === value; });\n}\nexport function isEmptyObject(object) {\n return Object.keys(object).length === 0;\n}\nexport function mapValues(object, fn) {\n var newObject = {};\n for (var _i = 0, _a = Object.keys(object); _i < _a.length; _i++) {\n var key = _a[_i];\n newObject[key] = fn(object[key]);\n }\n return newObject;\n}\n//# sourceMappingURL=objectUtils.js.map","import { ONE_HOUR, ONE_MINUTE } from '../../tools/utils/timeUtils';\nexport var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR;\nexport var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE;\n//# sourceMappingURL=sessionConstants.js.map","var browserIsIE;\nexport function isIE() {\n return browserIsIE !== null && browserIsIE !== void 0 ? browserIsIE : (browserIsIE = Boolean(document.documentMode));\n}\nvar browserIsChromium;\nexport function isChromium() {\n return (browserIsChromium !== null && browserIsChromium !== void 0 ? browserIsChromium : (browserIsChromium = !!window.chrome || /HeadlessChrome/.test(window.navigator.userAgent)));\n}\nvar browserIsSafari;\nexport function isSafari() {\n return browserIsSafari !== null && browserIsSafari !== void 0 ? browserIsSafari : (browserIsSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent));\n}\n//# sourceMappingURL=browserDetection.js.map","export var SESSION_STORE_KEY = '_dd_s';\n//# sourceMappingURL=sessionStoreStrategy.js.map","import { isEmptyObject } from '../../tools/utils/objectUtils';\nimport { objectEntries } from '../../tools/utils/polyfills';\nimport { dateNow } from '../../tools/utils/timeUtils';\nimport { SESSION_EXPIRATION_DELAY } from './sessionConstants';\nvar SESSION_ENTRY_REGEXP = /^([a-z]+)=([a-z0-9-]+)$/;\nvar SESSION_ENTRY_SEPARATOR = '&';\nexport function isSessionInExpiredState(session) {\n return isEmptyObject(session);\n}\nexport function expandSessionState(session) {\n session.expire = String(dateNow() + SESSION_EXPIRATION_DELAY);\n}\nexport function toSessionString(session) {\n return objectEntries(session)\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return \"\".concat(key, \"=\").concat(value);\n })\n .join(SESSION_ENTRY_SEPARATOR);\n}\nexport function toSessionState(sessionString) {\n var session = {};\n if (isValidSessionString(sessionString)) {\n sessionString.split(SESSION_ENTRY_SEPARATOR).forEach(function (entry) {\n var matches = SESSION_ENTRY_REGEXP.exec(entry);\n if (matches !== null) {\n var key = matches[1], value = matches[2];\n session[key] = value;\n }\n });\n }\n return session;\n}\nfunction isValidSessionString(sessionString) {\n return (!!sessionString &&\n (sessionString.indexOf(SESSION_ENTRY_SEPARATOR) !== -1 || SESSION_ENTRY_REGEXP.test(sessionString)));\n}\n//# sourceMappingURL=sessionState.js.map","import { getCookie } from '../../browser/cookie';\nimport { SESSION_STORE_KEY } from './storeStrategies/sessionStoreStrategy';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var OLD_SESSION_COOKIE_NAME = '_dd';\nexport var OLD_RUM_COOKIE_NAME = '_dd_r';\nexport var OLD_LOGS_COOKIE_NAME = '_dd_l';\n// duplicate values to avoid dependency issues\nexport var RUM_SESSION_KEY = 'rum';\nexport var LOGS_SESSION_KEY = 'logs';\n/**\n * This migration should remain in the codebase as long as older versions are available/live\n * to allow older sdk versions to be upgraded to newer versions without compatibility issues.\n */\nexport function tryOldCookiesMigration(cookieStoreStrategy) {\n var sessionString = getCookie(SESSION_STORE_KEY);\n if (!sessionString) {\n var oldSessionId = getCookie(OLD_SESSION_COOKIE_NAME);\n var oldRumType = getCookie(OLD_RUM_COOKIE_NAME);\n var oldLogsType = getCookie(OLD_LOGS_COOKIE_NAME);\n var session = {};\n if (oldSessionId) {\n session.id = oldSessionId;\n }\n if (oldLogsType && /^[01]$/.test(oldLogsType)) {\n session[LOGS_SESSION_KEY] = oldLogsType;\n }\n if (oldRumType && /^[012]$/.test(oldRumType)) {\n session[RUM_SESSION_KEY] = oldRumType;\n }\n if (!isSessionInExpiredState(session)) {\n expandSessionState(session);\n cookieStoreStrategy.persistSession(session);\n }\n }\n}\n//# sourceMappingURL=oldCookiesMigration.js.map","import { isChromium } from '../../../tools/utils/browserDetection';\nimport { getCurrentSite, areCookiesAuthorized, deleteCookie, getCookie, setCookie } from '../../../browser/cookie';\nimport { tryOldCookiesMigration } from '../oldCookiesMigration';\nimport { SESSION_EXPIRATION_DELAY } from '../sessionConstants';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nexport function selectCookieStrategy(initConfiguration) {\n var cookieOptions = buildCookieOptions(initConfiguration);\n return areCookiesAuthorized(cookieOptions) ? { type: 'Cookie', cookieOptions: cookieOptions } : undefined;\n}\nexport function initCookieStrategy(cookieOptions) {\n var cookieStore = {\n /**\n * Lock strategy allows mitigating issues due to concurrent access to cookie.\n * This issue concerns only chromium browsers and enabling this on firefox increases cookie write failures.\n */\n isLockEnabled: isChromium(),\n persistSession: persistSessionCookie(cookieOptions),\n retrieveSession: retrieveSessionCookie,\n clearSession: deleteSessionCookie(cookieOptions),\n };\n tryOldCookiesMigration(cookieStore);\n return cookieStore;\n}\nfunction persistSessionCookie(options) {\n return function (session) {\n setCookie(SESSION_STORE_KEY, toSessionString(session), SESSION_EXPIRATION_DELAY, options);\n };\n}\nfunction retrieveSessionCookie() {\n var sessionString = getCookie(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction deleteSessionCookie(options) {\n return function () {\n deleteCookie(SESSION_STORE_KEY, options);\n };\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {};\n cookieOptions.secure = !!initConfiguration.useSecureSessionCookie || !!initConfiguration.useCrossSiteSessionCookie;\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie;\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite();\n }\n return cookieOptions;\n}\n//# sourceMappingURL=sessionInCookie.js.map","import { generateUUID } from '../../../tools/utils/stringUtils';\nimport { toSessionString, toSessionState } from '../sessionState';\nimport { SESSION_STORE_KEY } from './sessionStoreStrategy';\nvar LOCAL_STORAGE_TEST_KEY = '_dd_test_';\nexport function selectLocalStorageStrategy() {\n try {\n var id = generateUUID();\n var testKey = \"\".concat(LOCAL_STORAGE_TEST_KEY).concat(id);\n localStorage.setItem(testKey, id);\n var retrievedId = localStorage.getItem(testKey);\n localStorage.removeItem(testKey);\n return id === retrievedId ? { type: 'LocalStorage' } : undefined;\n }\n catch (e) {\n return undefined;\n }\n}\nexport function initLocalStorageStrategy() {\n return {\n isLockEnabled: false,\n persistSession: persistInLocalStorage,\n retrieveSession: retrieveSessionFromLocalStorage,\n clearSession: clearSessionFromLocalStorage,\n };\n}\nfunction persistInLocalStorage(sessionState) {\n localStorage.setItem(SESSION_STORE_KEY, toSessionString(sessionState));\n}\nfunction retrieveSessionFromLocalStorage() {\n var sessionString = localStorage.getItem(SESSION_STORE_KEY);\n return toSessionState(sessionString);\n}\nfunction clearSessionFromLocalStorage() {\n localStorage.removeItem(SESSION_STORE_KEY);\n}\n//# sourceMappingURL=sessionInLocalStorage.js.map","import { setTimeout } from '../../tools/timer';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { expandSessionState, isSessionInExpiredState } from './sessionState';\nexport var LOCK_RETRY_DELAY = 10;\nexport var LOCK_MAX_TRIES = 100;\nvar bufferedOperations = [];\nvar ongoingOperations;\nexport function processSessionStoreOperations(operations, sessionStoreStrategy, numberOfRetries) {\n var _a;\n if (numberOfRetries === void 0) { numberOfRetries = 0; }\n var isLockEnabled = sessionStoreStrategy.isLockEnabled, retrieveSession = sessionStoreStrategy.retrieveSession, persistSession = sessionStoreStrategy.persistSession, clearSession = sessionStoreStrategy.clearSession;\n if (!ongoingOperations) {\n ongoingOperations = operations;\n }\n if (operations !== ongoingOperations) {\n bufferedOperations.push(operations);\n return;\n }\n if (isLockEnabled && numberOfRetries >= LOCK_MAX_TRIES) {\n next(sessionStoreStrategy);\n return;\n }\n var currentLock;\n var currentSession = retrieveSession();\n if (isLockEnabled) {\n // if someone has lock, retry later\n if (currentSession.lock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n // acquire lock\n currentLock = generateUUID();\n currentSession.lock = currentLock;\n persistSession(currentSession);\n // if lock is not acquired, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n var processedSession = operations.process(currentSession);\n if (isLockEnabled) {\n // if lock corrupted after process, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n }\n if (processedSession) {\n if (isSessionInExpiredState(processedSession)) {\n clearSession();\n }\n else {\n expandSessionState(processedSession);\n persistSession(processedSession);\n }\n }\n if (isLockEnabled) {\n // correctly handle lock around expiration would require to handle this case properly at several levels\n // since we don't have evidence of lock issues around expiration, let's just not do the corruption check for it\n if (!(processedSession && isSessionInExpiredState(processedSession))) {\n // if lock corrupted after persist, retry later\n currentSession = retrieveSession();\n if (currentSession.lock !== currentLock) {\n retryLater(operations, sessionStoreStrategy, numberOfRetries);\n return;\n }\n delete currentSession.lock;\n persistSession(currentSession);\n processedSession = currentSession;\n }\n }\n // call after even if session is not persisted in order to perform operations on\n // up-to-date session state value => the value could have been modified by another tab\n (_a = operations.after) === null || _a === void 0 ? void 0 : _a.call(operations, processedSession || currentSession);\n next(sessionStoreStrategy);\n}\nfunction retryLater(operations, sessionStore, currentNumberOfRetries) {\n setTimeout(function () {\n processSessionStoreOperations(operations, sessionStore, currentNumberOfRetries + 1);\n }, LOCK_RETRY_DELAY);\n}\nfunction next(sessionStore) {\n ongoingOperations = undefined;\n var nextOperations = bufferedOperations.shift();\n if (nextOperations) {\n processSessionStoreOperations(nextOperations, sessionStore);\n }\n}\n//# sourceMappingURL=sessionStoreOperations.js.map","import { clearInterval, setInterval } from '../../tools/timer';\nimport { Observable } from '../../tools/observable';\nimport { ONE_SECOND, dateNow } from '../../tools/utils/timeUtils';\nimport { throttle } from '../../tools/utils/functionUtils';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { selectCookieStrategy, initCookieStrategy } from './storeStrategies/sessionInCookie';\nimport { initLocalStorageStrategy, selectLocalStorageStrategy } from './storeStrategies/sessionInLocalStorage';\nimport { processSessionStoreOperations } from './sessionStoreOperations';\n/**\n * Every second, the storage will be polled to check for any change that can occur\n * to the session state in another browser tab, or another window.\n * This value has been determined from our previous cookie-only implementation.\n */\nexport var STORAGE_POLL_DELAY = ONE_SECOND;\n/**\n * Checks if cookies are available as the preferred storage\n * Else, checks if LocalStorage is allowed and available\n */\nexport function selectSessionStoreStrategyType(initConfiguration) {\n var sessionStoreStrategyType = selectCookieStrategy(initConfiguration);\n if (!sessionStoreStrategyType && initConfiguration.allowFallbackToLocalStorage) {\n sessionStoreStrategyType = selectLocalStorageStrategy();\n }\n return sessionStoreStrategyType;\n}\n/**\n * Different session concepts:\n * - tracked, the session has an id and is updated along the user navigation\n * - not tracked, the session does not have an id but it is updated along the user navigation\n * - inactive, no session in store or session expired, waiting for a renew session\n */\nexport function startSessionStore(sessionStoreStrategyType, productKey, computeSessionState) {\n var renewObservable = new Observable();\n var expireObservable = new Observable();\n var sessionStoreStrategy = sessionStoreStrategyType.type === 'Cookie'\n ? initCookieStrategy(sessionStoreStrategyType.cookieOptions)\n : initLocalStorageStrategy();\n var clearSession = sessionStoreStrategy.clearSession, retrieveSession = sessionStoreStrategy.retrieveSession;\n var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY);\n var sessionCache = retrieveActiveSession();\n function expandOrRenewSession() {\n var isTracked;\n processSessionStoreOperations({\n process: function (sessionState) {\n var synchronizedSession = synchronizeSession(sessionState);\n isTracked = expandOrRenewSessionState(synchronizedSession);\n return synchronizedSession;\n },\n after: function (sessionState) {\n if (isTracked && !hasSessionInCache()) {\n renewSessionInCache(sessionState);\n }\n sessionCache = sessionState;\n },\n }, sessionStoreStrategy);\n }\n function expandSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (hasSessionInCache() ? synchronizeSession(sessionState) : undefined); },\n }, sessionStoreStrategy);\n }\n /**\n * allows two behaviors:\n * - if the session is active, synchronize the session cache without updating the session store\n * - if the session is not active, clear the session store and expire the session cache\n */\n function watchSession() {\n processSessionStoreOperations({\n process: function (sessionState) { return (!isActiveSession(sessionState) ? {} : undefined); },\n after: synchronizeSession,\n }, sessionStoreStrategy);\n }\n function synchronizeSession(sessionState) {\n if (!isActiveSession(sessionState)) {\n sessionState = {};\n }\n if (hasSessionInCache()) {\n if (isSessionInCacheOutdated(sessionState)) {\n expireSessionInCache();\n }\n else {\n sessionCache = sessionState;\n }\n }\n return sessionState;\n }\n function expandOrRenewSessionState(sessionState) {\n var _a = computeSessionState(sessionState[productKey]), trackingType = _a.trackingType, isTracked = _a.isTracked;\n sessionState[productKey] = trackingType;\n if (isTracked && !sessionState.id) {\n sessionState.id = generateUUID();\n sessionState.created = String(dateNow());\n }\n return isTracked;\n }\n function hasSessionInCache() {\n return sessionCache[productKey] !== undefined;\n }\n function isSessionInCacheOutdated(sessionState) {\n return sessionCache.id !== sessionState.id || sessionCache[productKey] !== sessionState[productKey];\n }\n function expireSessionInCache() {\n sessionCache = {};\n expireObservable.notify();\n }\n function renewSessionInCache(sessionState) {\n sessionCache = sessionState;\n renewObservable.notify();\n }\n function retrieveActiveSession() {\n var session = retrieveSession();\n if (isActiveSession(session)) {\n return session;\n }\n return {};\n }\n function isActiveSession(sessionState) {\n // created and expire can be undefined for versions which was not storing them\n // these checks could be removed when older versions will not be available/live anymore\n return ((sessionState.created === undefined || dateNow() - Number(sessionState.created) < SESSION_TIME_OUT_DELAY) &&\n (sessionState.expire === undefined || dateNow() < Number(sessionState.expire)));\n }\n return {\n expandOrRenewSession: throttle(expandOrRenewSession, STORAGE_POLL_DELAY).throttled,\n expandSession: expandSession,\n getSession: function () { return sessionCache; },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: function () {\n clearSession();\n synchronizeSession({});\n },\n stop: function () {\n clearInterval(watchSessionTimeoutId);\n },\n };\n}\n//# sourceMappingURL=sessionStore.js.map","import { jsonStringify } from '../serialisation/jsonStringify';\nexport function normalizeUrl(url) {\n return buildUrl(url, getLocationOrigin()).href;\n}\nexport function isValidUrl(url) {\n try {\n return !!buildUrl(url);\n }\n catch (_a) {\n return false;\n }\n}\nexport function getOrigin(url) {\n return getLinkElementOrigin(buildUrl(url));\n}\nexport function getPathName(url) {\n var pathname = buildUrl(url).pathname;\n return pathname[0] === '/' ? pathname : \"/\".concat(pathname);\n}\nexport function getSearch(url) {\n return buildUrl(url).search;\n}\nexport function getHash(url) {\n return buildUrl(url).hash;\n}\nexport function buildUrl(url, base) {\n var supportedURL = getSupportedUrl();\n if (supportedURL) {\n try {\n return base !== undefined ? new supportedURL(url, base) : new supportedURL(url);\n }\n catch (error) {\n throw new Error(\"Failed to construct URL: \".concat(String(error), \" \").concat(jsonStringify({ url: url, base: base })));\n }\n }\n if (base === undefined && !/:/.test(url)) {\n throw new Error(\"Invalid URL: '\".concat(url, \"'\"));\n }\n var doc = document;\n var anchorElement = doc.createElement('a');\n if (base !== undefined) {\n doc = document.implementation.createHTMLDocument('');\n var baseElement = doc.createElement('base');\n baseElement.href = base;\n doc.head.appendChild(baseElement);\n doc.body.appendChild(anchorElement);\n }\n anchorElement.href = url;\n return anchorElement;\n}\nvar originalURL = URL;\nvar isURLSupported;\nfunction getSupportedUrl() {\n if (isURLSupported === undefined) {\n try {\n var url = new originalURL('http://test/path');\n isURLSupported = url.href === 'http://test/path';\n }\n catch (_a) {\n isURLSupported = false;\n }\n }\n return isURLSupported ? originalURL : undefined;\n}\nexport function getLocationOrigin() {\n return getLinkElementOrigin(window.location);\n}\n/**\n * Fallback\n * On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin\n * On Firefox window.location.origin is \"null\" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n */\nexport function getLinkElementOrigin(element) {\n if (element.origin && element.origin !== 'null') {\n return element.origin;\n }\n var sanitizedHost = element.host.replace(/(:80|:443)$/, '');\n return \"\".concat(element.protocol, \"//\").concat(sanitizedHost);\n}\n//# sourceMappingURL=urlPolyfill.js.map","export var INTAKE_SITE_STAGING = 'datad0g.com';\nexport var INTAKE_SITE_US1 = 'datadoghq.com';\nexport var INTAKE_SITE_EU1 = 'datadoghq.eu';\nexport var INTAKE_SITE_AP1 = 'ap1.datadoghq.com';\nexport var INTAKE_SITE_US1_FED = 'ddog-gov.com';\n//# sourceMappingURL=intakeSites.js.map","import { timeStampNow } from '../../tools/utils/timeUtils';\nimport { normalizeUrl } from '../../tools/utils/urlPolyfill';\nimport { ExperimentalFeature, isExperimentalFeatureEnabled } from '../../tools/experimentalFeatures';\nimport { generateUUID } from '../../tools/utils/stringUtils';\nimport { INTAKE_SITE_AP1, INTAKE_SITE_US1 } from './intakeSites';\nexport var ENDPOINTS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'session-replay',\n};\nvar INTAKE_TRACKS = {\n logs: 'logs',\n rum: 'rum',\n sessionReplay: 'replay',\n};\nexport function createEndpointBuilder(initConfiguration, endpointType, configurationTags) {\n var buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, endpointType);\n return {\n build: function (api, payload) {\n var parameters = buildEndpointParameters(initConfiguration, endpointType, configurationTags, api, payload);\n return buildUrlWithParameters(parameters);\n },\n urlPrefix: buildUrlWithParameters(''),\n endpointType: endpointType,\n };\n}\n/**\n * Create a function used to build a full endpoint url from provided parameters. The goal of this\n * function is to pre-compute some parts of the URL to avoid re-computing everything on every\n * request, as only parameters are changing.\n */\nfunction createEndpointUrlWithParametersBuilder(initConfiguration, endpointType) {\n var path = \"/api/v2/\".concat(INTAKE_TRACKS[endpointType]);\n var proxy = initConfiguration.proxy, proxyUrl = initConfiguration.proxyUrl;\n if (proxy) {\n var normalizedProxyUrl_1 = normalizeUrl(proxy);\n return function (parameters) { return \"\".concat(normalizedProxyUrl_1, \"?ddforward=\").concat(encodeURIComponent(\"\".concat(path, \"?\").concat(parameters))); };\n }\n var host = buildEndpointHost(initConfiguration, endpointType);\n if (proxy === undefined && proxyUrl) {\n // TODO: remove this in a future major.\n var normalizedProxyUrl_2 = normalizeUrl(proxyUrl);\n return function (parameters) {\n return \"\".concat(normalizedProxyUrl_2, \"?ddforward=\").concat(encodeURIComponent(\"https://\".concat(host).concat(path, \"?\").concat(parameters)));\n };\n }\n return function (parameters) { return \"https://\".concat(host).concat(path, \"?\").concat(parameters); };\n}\nfunction buildEndpointHost(initConfiguration, endpointType) {\n var _a = initConfiguration.site, site = _a === void 0 ? INTAKE_SITE_US1 : _a, internalAnalyticsSubdomain = initConfiguration.internalAnalyticsSubdomain;\n if (internalAnalyticsSubdomain && site === INTAKE_SITE_US1) {\n return \"\".concat(internalAnalyticsSubdomain, \".\").concat(INTAKE_SITE_US1);\n }\n var domainParts = site.split('.');\n var extension = domainParts.pop();\n var subdomain = site !== INTAKE_SITE_AP1 ? \"\".concat(ENDPOINTS[endpointType], \".\") : '';\n return \"\".concat(subdomain, \"browser-intake-\").concat(domainParts.join('-'), \".\").concat(extension);\n}\n/**\n * Build parameters to be used for an intake request. Parameters should be re-built for each\n * request, as they change randomly.\n */\nfunction buildEndpointParameters(_a, endpointType, configurationTags, api, _b) {\n var clientToken = _a.clientToken, internalAnalyticsSubdomain = _a.internalAnalyticsSubdomain;\n var retry = _b.retry, flushReason = _b.flushReason, encoding = _b.encoding;\n var tags = [\"sdk_version:\".concat(\"4.50.1\"), \"api:\".concat(api)].concat(configurationTags);\n if (flushReason && isExperimentalFeatureEnabled(ExperimentalFeature.COLLECT_FLUSH_REASON)) {\n tags.push(\"flush_reason:\".concat(flushReason));\n }\n if (retry) {\n tags.push(\"retry_count:\".concat(retry.count), \"retry_after:\".concat(retry.lastFailureStatus));\n }\n var parameters = [\n 'ddsource=browser',\n \"ddtags=\".concat(encodeURIComponent(tags.join(','))),\n \"dd-api-key=\".concat(clientToken),\n \"dd-evp-origin-version=\".concat(encodeURIComponent(\"4.50.1\")),\n 'dd-evp-origin=browser',\n \"dd-request-id=\".concat(generateUUID()),\n ];\n if (encoding) {\n parameters.push(\"dd-evp-encoding=\".concat(encoding));\n }\n if (endpointType === 'rum') {\n parameters.push(\"batch_time=\".concat(timeStampNow()));\n }\n if (internalAnalyticsSubdomain) {\n parameters.reverse();\n }\n return parameters.join('&');\n}\n//# sourceMappingURL=endpointBuilder.js.map","import { display } from '../../tools/display';\nexport var TAG_SIZE_LIMIT = 200;\nexport function buildTags(configuration) {\n var env = configuration.env, service = configuration.service, version = configuration.version, datacenter = configuration.datacenter;\n var tags = [];\n if (env) {\n tags.push(buildTag('env', env));\n }\n if (service) {\n tags.push(buildTag('service', service));\n }\n if (version) {\n tags.push(buildTag('version', version));\n }\n if (datacenter) {\n tags.push(buildTag('datacenter', datacenter));\n }\n return tags;\n}\nvar FORBIDDEN_CHARACTERS = /[^a-z0-9_:./-]/;\nexport function buildTag(key, rawValue) {\n // See https://docs.datadoghq.com/getting_started/tagging/#defining-tags for tags syntax. Note\n // that the backend may not follow the exact same rules, so we only want to display an informal\n // warning.\n var valueSizeLimit = TAG_SIZE_LIMIT - key.length - 1;\n if (rawValue.length > valueSizeLimit || FORBIDDEN_CHARACTERS.test(rawValue)) {\n display.warn(\"\".concat(key, \" value doesn't meet tag requirements and will be sanitized\"));\n }\n // Let the backend do most of the sanitization, but still make sure multiple tags can't be crafted\n // by forging a value containing commas.\n var sanitizedValue = rawValue.replace(/,/g, '_');\n return \"\".concat(key, \":\").concat(sanitizedValue);\n}\n//# sourceMappingURL=tags.js.map","import { objectValues, assign } from '../../tools/utils/polyfills';\nimport { createEndpointBuilder } from './endpointBuilder';\nimport { buildTags } from './tags';\nimport { INTAKE_SITE_US1 } from './intakeSites';\nexport function computeTransportConfiguration(initConfiguration) {\n var tags = buildTags(initConfiguration);\n var endpointBuilders = computeEndpointBuilders(initConfiguration, tags);\n var intakeUrlPrefixes = objectValues(endpointBuilders).map(function (builder) { return builder.urlPrefix; });\n var replicaConfiguration = computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags);\n return assign({\n isIntakeUrl: function (url) { return intakeUrlPrefixes.some(function (intakeEndpoint) { return url.indexOf(intakeEndpoint) === 0; }); },\n replica: replicaConfiguration,\n site: initConfiguration.site || INTAKE_SITE_US1,\n }, endpointBuilders);\n}\nfunction computeEndpointBuilders(initConfiguration, tags) {\n return {\n logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum', tags),\n sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'sessionReplay', tags),\n };\n}\nfunction computeReplicaConfiguration(initConfiguration, intakeUrlPrefixes, tags) {\n if (!initConfiguration.replica) {\n return;\n }\n var replicaConfiguration = assign({}, initConfiguration, {\n site: INTAKE_SITE_US1,\n clientToken: initConfiguration.replica.clientToken,\n });\n var replicaEndpointBuilders = {\n logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs', tags),\n rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', tags),\n };\n intakeUrlPrefixes.push.apply(intakeUrlPrefixes, objectValues(replicaEndpointBuilders).map(function (builder) { return builder.urlPrefix; }));\n return assign({ applicationId: initConfiguration.replica.applicationId }, replicaEndpointBuilders);\n}\n//# sourceMappingURL=transportConfiguration.js.map","import { catchUserErrors } from '../../tools/catchUserErrors';\nimport { display } from '../../tools/display';\nimport { ExperimentalFeature, addExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { ONE_SECOND } from '../../tools/utils/timeUtils';\nimport { isPercentage } from '../../tools/utils/numberUtils';\nimport { ONE_KIBI_BYTE } from '../../tools/utils/byteUtils';\nimport { objectHasValue } from '../../tools/utils/objectUtils';\nimport { assign } from '../../tools/utils/polyfills';\nimport { selectSessionStoreStrategyType } from '../session/sessionStore';\nimport { computeTransportConfiguration } from './transportConfiguration';\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input',\n};\nexport function validateAndBuildConfiguration(initConfiguration) {\n var _a, _b, _c;\n if (!initConfiguration || !initConfiguration.clientToken) {\n display.error('Client Token is not configured, we will not send any data.');\n return;\n }\n var sessionSampleRate = (_a = initConfiguration.sessionSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.sampleRate;\n if (sessionSampleRate !== undefined && !isPercentage(sessionSampleRate)) {\n display.error('Session Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetrySampleRate !== undefined && !isPercentage(initConfiguration.telemetrySampleRate)) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.telemetryConfigurationSampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetryConfigurationSampleRate)) {\n display.error('Telemetry Configuration Sample Rate should be a number between 0 and 100');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n if (Array.isArray(initConfiguration.enableExperimentalFeatures)) {\n addExperimentalFeatures(initConfiguration.enableExperimentalFeatures.filter(function (flag) {\n return objectHasValue(ExperimentalFeature, flag);\n }));\n }\n return assign({\n beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),\n sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),\n sessionSampleRate: sessionSampleRate !== null && sessionSampleRate !== void 0 ? sessionSampleRate : 100,\n telemetrySampleRate: (_b = initConfiguration.telemetrySampleRate) !== null && _b !== void 0 ? _b : 20,\n telemetryConfigurationSampleRate: (_c = initConfiguration.telemetryConfigurationSampleRate) !== null && _c !== void 0 ? _c : 5,\n service: initConfiguration.service,\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: (30 * ONE_SECOND),\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n }, computeTransportConfiguration(initConfiguration));\n}\nexport function serializeConfiguration(initConfiguration) {\n var _a, _b;\n var proxy = (_a = initConfiguration.proxy) !== null && _a !== void 0 ? _a : initConfiguration.proxyUrl;\n return {\n session_sample_rate: (_b = initConfiguration.sessionSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.sampleRate,\n telemetry_sample_rate: initConfiguration.telemetrySampleRate,\n telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,\n use_before_send: !!initConfiguration.beforeSend,\n use_cross_site_session_cookie: initConfiguration.useCrossSiteSessionCookie,\n use_secure_session_cookie: initConfiguration.useSecureSessionCookie,\n use_proxy: proxy !== undefined ? !!proxy : undefined,\n silent_multiple_init: initConfiguration.silentMultipleInit,\n track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,\n track_resources: initConfiguration.trackResources,\n track_long_task: initConfiguration.trackLongTasks,\n allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,\n store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,\n };\n}\n//# sourceMappingURL=configuration.js.map","import { startsWith } from './utils/polyfills';\nimport { display } from './display';\nimport { getType } from './utils/typeUtils';\nexport function isMatchOption(item) {\n var itemType = getType(item);\n return itemType === 'string' || itemType === 'function' || item instanceof RegExp;\n}\n/**\n * Returns true if value can be matched by at least one of the provided MatchOptions.\n * When comparing strings, setting useStartsWith to true will compare the value with the start of\n * the option, instead of requiring an exact match.\n */\nexport function matchList(list, value, useStartsWith) {\n if (useStartsWith === void 0) { useStartsWith = false; }\n return list.some(function (item) {\n try {\n if (typeof item === 'function') {\n return item(value);\n }\n else if (item instanceof RegExp) {\n return item.test(value);\n }\n else if (typeof item === 'string') {\n return useStartsWith ? startsWith(value, item) : item === value;\n }\n }\n catch (e) {\n display.error(e);\n }\n return false;\n });\n}\n//# sourceMappingURL=matchOption.js.map","import { objectEntries, shallowClone, performDraw, isNumber, assign, find, getType, isMatchOption, matchList, } from '@datadog/browser-core';\nexport function isTracingOption(item) {\n var expectedItem = item;\n return (getType(expectedItem) === 'object' &&\n isMatchOption(expectedItem.match) &&\n Array.isArray(expectedItem.propagatorTypes));\n}\n/**\n * Clear tracing information to avoid incomplete traces. Ideally, we should do it when the\n * request did not reach the server, but the browser does not expose this. So, we clear tracing\n * information if the request ended with status 0 without being aborted by the application.\n *\n * Reasoning:\n *\n * * Applications are usually aborting requests after a bit of time, for example when the user is\n * typing (autocompletion) or navigating away (in a SPA). With a performant device and good\n * network conditions, the request is likely to reach the server before being canceled.\n *\n * * Requests aborted otherwise (ex: lack of internet, CORS issue, blocked by a privacy extension)\n * are likely to finish quickly and without reaching the server.\n *\n * Of course, it might not be the case every time, but it should limit having incomplete traces a\n * bit.\n * */\nexport function clearTracingIfNeeded(context) {\n if (context.status === 0 && !context.isAborted) {\n context.traceId = undefined;\n context.spanId = undefined;\n context.traceSampled = undefined;\n }\n}\nexport function startTracer(configuration, sessionManager) {\n return {\n clearTracingIfNeeded: clearTracingIfNeeded,\n traceFetch: function (context) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n var _a;\n if (context.input instanceof Request && !((_a = context.init) === null || _a === void 0 ? void 0 : _a.headers)) {\n context.input = new Request(context.input);\n Object.keys(tracingHeaders).forEach(function (key) {\n ;\n context.input.headers.append(key, tracingHeaders[key]);\n });\n }\n else {\n context.init = shallowClone(context.init);\n var headers_1 = [];\n if (context.init.headers instanceof Headers) {\n context.init.headers.forEach(function (value, key) {\n headers_1.push([key, value]);\n });\n }\n else if (Array.isArray(context.init.headers)) {\n context.init.headers.forEach(function (header) {\n headers_1.push(header);\n });\n }\n else if (context.init.headers) {\n Object.keys(context.init.headers).forEach(function (key) {\n headers_1.push([key, context.init.headers[key]]);\n });\n }\n context.init.headers = headers_1.concat(objectEntries(tracingHeaders));\n }\n });\n },\n traceXhr: function (context, xhr) {\n return injectHeadersIfTracingAllowed(configuration, context, sessionManager, function (tracingHeaders) {\n Object.keys(tracingHeaders).forEach(function (name) {\n xhr.setRequestHeader(name, tracingHeaders[name]);\n });\n });\n },\n };\n}\nfunction injectHeadersIfTracingAllowed(configuration, context, sessionManager, inject) {\n if (!isTracingSupported() || !sessionManager.findTrackedSession()) {\n return;\n }\n var tracingOption = find(configuration.allowedTracingUrls, function (tracingOption) {\n return matchList([tracingOption.match], context.url, true);\n });\n if (!tracingOption) {\n return;\n }\n context.traceId = new TraceIdentifier();\n context.spanId = new TraceIdentifier();\n context.traceSampled = !isNumber(configuration.traceSampleRate) || performDraw(configuration.traceSampleRate);\n inject(makeTracingHeaders(context.traceId, context.spanId, context.traceSampled, tracingOption.propagatorTypes));\n}\nexport function isTracingSupported() {\n return getCrypto() !== undefined;\n}\nfunction getCrypto() {\n return window.crypto || window.msCrypto;\n}\n/**\n * When trace is not sampled, set priority to '0' instead of not adding the tracing headers\n * to prepare the implementation for sampling delegation.\n */\nfunction makeTracingHeaders(traceId, spanId, traceSampled, propagatorTypes) {\n var tracingHeaders = {};\n propagatorTypes.forEach(function (propagatorType) {\n switch (propagatorType) {\n case 'datadog': {\n assign(tracingHeaders, {\n 'x-datadog-origin': 'rum',\n 'x-datadog-parent-id': spanId.toDecimalString(),\n 'x-datadog-sampling-priority': traceSampled ? '1' : '0',\n 'x-datadog-trace-id': traceId.toDecimalString(),\n });\n break;\n }\n // https://www.w3.org/TR/trace-context/\n case 'tracecontext': {\n assign(tracingHeaders, {\n traceparent: \"00-0000000000000000\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-0\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n // https://github.com/openzipkin/b3-propagation\n case 'b3': {\n assign(tracingHeaders, {\n b3: \"\".concat(traceId.toPaddedHexadecimalString(), \"-\").concat(spanId.toPaddedHexadecimalString(), \"-\").concat(traceSampled ? '1' : '0'),\n });\n break;\n }\n case 'b3multi': {\n assign(tracingHeaders, {\n 'X-B3-TraceId': traceId.toPaddedHexadecimalString(),\n 'X-B3-SpanId': spanId.toPaddedHexadecimalString(),\n 'X-B3-Sampled': traceSampled ? '1' : '0',\n });\n break;\n }\n }\n });\n return tracingHeaders;\n}\n/* eslint-disable no-bitwise */\nvar TraceIdentifier = /** @class */ (function () {\n function TraceIdentifier() {\n this.buffer = new Uint8Array(8);\n getCrypto().getRandomValues(this.buffer);\n this.buffer[0] = this.buffer[0] & 0x7f; // force 63-bit\n }\n TraceIdentifier.prototype.toString = function (radix) {\n var high = this.readInt32(0);\n var low = this.readInt32(4);\n var str = '';\n do {\n var mod = (high % radix) * 4294967296 + low;\n high = Math.floor(high / radix);\n low = Math.floor(mod / radix);\n str = (mod % radix).toString(radix) + str;\n } while (high || low);\n return str;\n };\n /**\n * Format used everywhere except the trace intake\n */\n TraceIdentifier.prototype.toDecimalString = function () {\n return this.toString(10);\n };\n /**\n * Format used by OTel headers\n */\n TraceIdentifier.prototype.toPaddedHexadecimalString = function () {\n var traceId = this.toString(16);\n return Array(17 - traceId.length).join('0') + traceId;\n };\n TraceIdentifier.prototype.readInt32 = function (offset) {\n return (this.buffer[offset] * 16777216 +\n (this.buffer[offset + 1] << 16) +\n (this.buffer[offset + 2] << 8) +\n this.buffer[offset + 3]);\n };\n return TraceIdentifier;\n}());\nexport { TraceIdentifier };\n/* eslint-enable no-bitwise */\n//# sourceMappingURL=tracer.js.map","import { getType, arrayFrom, getOrigin, isMatchOption, serializeConfiguration, assign, DefaultPrivacyLevel, display, isPercentage, objectHasValue, validateAndBuildConfiguration, } from '@datadog/browser-core';\nimport { isTracingOption } from './tracing/tracer';\nexport function validateAndBuildRumConfiguration(initConfiguration) {\n var _a, _b, _c, _d, _e, _f;\n if (!initConfiguration.applicationId) {\n display.error('Application ID is not configured, no RUM data will be collected.');\n return;\n }\n if (initConfiguration.sessionReplaySampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionReplaySampleRate)) {\n display.error('Session Replay Sample Rate should be a number between 0 and 100');\n return;\n }\n // TODO remove fallback in next major\n var premiumSampleRate = (_a = initConfiguration.premiumSampleRate) !== null && _a !== void 0 ? _a : initConfiguration.replaySampleRate;\n if (premiumSampleRate !== undefined && initConfiguration.sessionReplaySampleRate !== undefined) {\n display.warn('Ignoring Premium Sample Rate because Session Replay Sample Rate is set');\n premiumSampleRate = undefined;\n }\n if (premiumSampleRate !== undefined && !isPercentage(premiumSampleRate)) {\n display.error('Premium Sample Rate should be a number between 0 and 100');\n return;\n }\n var traceSampleRate = (_b = initConfiguration.traceSampleRate) !== null && _b !== void 0 ? _b : initConfiguration.tracingSampleRate;\n if (traceSampleRate !== undefined && !isPercentage(traceSampleRate)) {\n display.error('Trace Sample Rate should be a number between 0 and 100');\n return;\n }\n if (initConfiguration.excludedActivityUrls !== undefined && !Array.isArray(initConfiguration.excludedActivityUrls)) {\n display.error('Excluded Activity Urls should be an array');\n return;\n }\n var allowedTracingUrls = validateAndBuildTracingOptions(initConfiguration);\n if (!allowedTracingUrls) {\n return;\n }\n var baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n if (!baseConfiguration) {\n return;\n }\n var trackUserInteractions = !!((_c = initConfiguration.trackUserInteractions) !== null && _c !== void 0 ? _c : initConfiguration.trackInteractions);\n var trackFrustrations = !!initConfiguration.trackFrustrations;\n return assign({\n applicationId: initConfiguration.applicationId,\n version: initConfiguration.version,\n actionNameAttribute: initConfiguration.actionNameAttribute,\n sessionReplaySampleRate: (_e = (_d = initConfiguration.sessionReplaySampleRate) !== null && _d !== void 0 ? _d : premiumSampleRate) !== null && _e !== void 0 ? _e : 100,\n oldPlansBehavior: initConfiguration.sessionReplaySampleRate === undefined,\n traceSampleRate: traceSampleRate,\n allowedTracingUrls: allowedTracingUrls,\n excludedActivityUrls: (_f = initConfiguration.excludedActivityUrls) !== null && _f !== void 0 ? _f : [],\n workerUrl: initConfiguration.workerUrl,\n trackUserInteractions: trackUserInteractions || trackFrustrations,\n trackFrustrations: trackFrustrations,\n trackViewsManually: !!initConfiguration.trackViewsManually,\n trackResources: initConfiguration.trackResources,\n trackLongTasks: initConfiguration.trackLongTasks,\n subdomain: initConfiguration.subdomain,\n defaultPrivacyLevel: objectHasValue(DefaultPrivacyLevel, initConfiguration.defaultPrivacyLevel)\n ? initConfiguration.defaultPrivacyLevel\n : DefaultPrivacyLevel.MASK_USER_INPUT,\n customerDataTelemetrySampleRate: 1,\n }, baseConfiguration);\n}\n/**\n * Handles allowedTracingUrls and processes legacy allowedTracingOrigins\n */\nfunction validateAndBuildTracingOptions(initConfiguration) {\n // Advise about parameters precedence.\n if (initConfiguration.allowedTracingUrls !== undefined && initConfiguration.allowedTracingOrigins !== undefined) {\n display.warn('Both allowedTracingUrls and allowedTracingOrigins (deprecated) have been defined. The parameter allowedTracingUrls will override allowedTracingOrigins.');\n }\n // Handle allowedTracingUrls first\n if (initConfiguration.allowedTracingUrls !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingUrls)) {\n display.error('Allowed Tracing URLs should be an array');\n return;\n }\n if (initConfiguration.allowedTracingUrls.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n // Convert from (MatchOption | TracingOption) to TracingOption, remove unknown properties\n var tracingOptions_1 = [];\n initConfiguration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n tracingOptions_1.push({ match: option, propagatorTypes: ['datadog'] });\n }\n else if (isTracingOption(option)) {\n tracingOptions_1.push(option);\n }\n else {\n display.warn('Allowed Tracing Urls parameters should be a string, RegExp, function, or an object. Ignoring parameter', option);\n }\n });\n return tracingOptions_1;\n }\n // Handle conversion of allowedTracingOrigins to allowedTracingUrls\n if (initConfiguration.allowedTracingOrigins !== undefined) {\n if (!Array.isArray(initConfiguration.allowedTracingOrigins)) {\n display.error('Allowed Tracing Origins should be an array');\n return;\n }\n if (initConfiguration.allowedTracingOrigins.length !== 0 && initConfiguration.service === undefined) {\n display.error('Service needs to be configured when tracing is enabled');\n return;\n }\n var tracingOptions_2 = [];\n initConfiguration.allowedTracingOrigins.forEach(function (legacyMatchOption) {\n var tracingOption = convertLegacyMatchOptionToTracingOption(legacyMatchOption);\n if (tracingOption) {\n tracingOptions_2.push(tracingOption);\n }\n });\n return tracingOptions_2;\n }\n return [];\n}\n/**\n * Converts parameters from the deprecated allowedTracingOrigins\n * to allowedTracingUrls. Handles the change from origin to full URLs.\n */\nfunction convertLegacyMatchOptionToTracingOption(item) {\n var match;\n if (typeof item === 'string') {\n match = item;\n }\n else if (item instanceof RegExp) {\n match = function (url) { return item.test(getOrigin(url)); };\n }\n else if (typeof item === 'function') {\n match = function (url) { return item(getOrigin(url)); };\n }\n if (match === undefined) {\n display.warn('Allowed Tracing Origins parameters should be a string, RegExp or function. Ignoring parameter', item);\n return undefined;\n }\n return { match: match, propagatorTypes: ['datadog'] };\n}\n/**\n * Combines the selected tracing propagators from the different options in allowedTracingUrls,\n * and assumes 'datadog' has been selected when using allowedTracingOrigins\n */\nfunction getSelectedTracingPropagators(configuration) {\n var usedTracingPropagators = new Set();\n if (Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0) {\n configuration.allowedTracingUrls.forEach(function (option) {\n if (isMatchOption(option)) {\n usedTracingPropagators.add('datadog');\n }\n else if (getType(option) === 'object' && Array.isArray(option.propagatorTypes)) {\n // Ensure we have an array, as we cannot rely on types yet (configuration is provided by users)\n option.propagatorTypes.forEach(function (propagatorType) { return usedTracingPropagators.add(propagatorType); });\n }\n });\n }\n if (Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0) {\n usedTracingPropagators.add('datadog');\n }\n return arrayFrom(usedTracingPropagators);\n}\nexport function serializeRumConfiguration(configuration) {\n var _a, _b;\n var baseSerializedConfiguration = serializeConfiguration(configuration);\n return assign({\n premium_sample_rate: configuration.premiumSampleRate,\n replay_sample_rate: configuration.replaySampleRate,\n session_replay_sample_rate: configuration.sessionReplaySampleRate,\n trace_sample_rate: (_a = configuration.traceSampleRate) !== null && _a !== void 0 ? _a : configuration.tracingSampleRate,\n action_name_attribute: configuration.actionNameAttribute,\n use_allowed_tracing_origins: Array.isArray(configuration.allowedTracingOrigins) && configuration.allowedTracingOrigins.length > 0,\n use_allowed_tracing_urls: Array.isArray(configuration.allowedTracingUrls) && configuration.allowedTracingUrls.length > 0,\n selected_tracing_propagators: getSelectedTracingPropagators(configuration),\n default_privacy_level: configuration.defaultPrivacyLevel,\n use_excluded_activity_urls: Array.isArray(configuration.excludedActivityUrls) && configuration.excludedActivityUrls.length > 0,\n use_worker_url: !!configuration.workerUrl,\n track_frustrations: configuration.trackFrustrations,\n track_views_manually: configuration.trackViewsManually,\n track_user_interactions: (_b = configuration.trackUserInteractions) !== null && _b !== void 0 ? _b : configuration.trackInteractions,\n }, baseSerializedConfiguration);\n}\n//# sourceMappingURL=configuration.js.map","export function buildCommonContext(globalContextManager, userContextManager, recorderApi) {\n return {\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n hasReplay: recorderApi.isRecording() ? true : undefined,\n };\n}\n//# sourceMappingURL=commonContext.js.map","import { noop, willSyntheticsInjectRum, assign, BoundedBuffer, createContextManager, deepClone, makePublicApi, monitor, clocksNow, timeStampNow, display, callMonitored, createHandlingStack, canUseEventBridge, checkUser, sanitizeUser, sanitize, createStoredContextManager, combine, } from '@datadog/browser-core';\nimport { validateAndBuildRumConfiguration } from '../domain/configuration';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nvar RUM_STORAGE_KEY = 'rum';\nexport function makeRumPublicApi(startRumImpl, recorderApi, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.ignoreInitIfSyntheticsWillInjectRum, ignoreInitIfSyntheticsWillInjectRum = _c === void 0 ? true : _c;\n var isAlreadyInitialized = false;\n var globalContextManager = createContextManager(2 /* CustomerDataType.GlobalContext */);\n var userContextManager = createContextManager(1 /* CustomerDataType.User */);\n var getInternalContextStrategy = function () { return undefined; };\n var getInitConfigurationStrategy = function () { return undefined; };\n var stopSessionStrategy = noop;\n var getSessionReplayLinkStrategy = function () { return undefined; };\n var bufferApiCalls = new BoundedBuffer();\n var addTimingStrategy = function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n bufferApiCalls.add(function () { return addTimingStrategy(name, time); });\n };\n var startViewStrategy = function (options, startClocks) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n bufferApiCalls.add(function () { return startViewStrategy(options, startClocks); });\n };\n var addActionStrategy = function (action, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addActionStrategy(action, commonContext); });\n };\n var addErrorStrategy = function (providedError, commonContext) {\n if (commonContext === void 0) { commonContext = buildCommonContext(globalContextManager, userContextManager, recorderApi); }\n bufferApiCalls.add(function () { return addErrorStrategy(providedError, commonContext); });\n };\n var addFeatureFlagEvaluationStrategy = function (key, value) {\n bufferApiCalls.add(function () { return addFeatureFlagEvaluationStrategy(key, value); });\n };\n function initRum(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // This function should be available, regardless of initialization success.\n getInitConfigurationStrategy = function () { return deepClone(initConfiguration); };\n // If we are in a Synthetics test configured to automatically inject a RUM instance, we want to\n // completely discard the customer application RUM instance by ignoring their init() call. But,\n // we should not ignore the init() call from the Synthetics-injected RUM instance, so the\n // internal `ignoreInitIfSyntheticsWillInjectRum` option is here to bypass this condition.\n if (ignoreInitIfSyntheticsWillInjectRum && willSyntheticsInjectRum()) {\n return;\n }\n var eventBridgeAvailable = canUseEventBridge();\n if (eventBridgeAvailable) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n if (!canInitRum(initConfiguration)) {\n return;\n }\n var configuration = validateAndBuildRumConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n if (!eventBridgeAvailable && !configuration.sessionStoreStrategyType) {\n display.warn('No storage available for session. We will not send any data.');\n return;\n }\n if (!configuration.trackViewsManually) {\n doStartRum(initConfiguration, configuration);\n }\n else {\n // drain beforeInitCalls by buffering them until we start RUM\n // if we get a startView, drain re-buffered calls before continuing to drain beforeInitCalls\n // in order to ensure that calls are processed in order\n var beforeInitCalls = bufferApiCalls;\n bufferApiCalls = new BoundedBuffer();\n startViewStrategy = function (options) {\n doStartRum(initConfiguration, configuration, options);\n };\n beforeInitCalls.drain();\n }\n isAlreadyInitialized = true;\n }\n function doStartRum(initConfiguration, configuration, initialViewOptions) {\n if (initConfiguration.storeContextsAcrossPages) {\n var beforeInitGlobalContext = globalContextManager.getContext();\n globalContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n globalContextManager.setContext(combine(globalContextManager.getContext(), beforeInitGlobalContext));\n var beforeInitUserContext = userContextManager.getContext();\n userContextManager = createStoredContextManager(configuration, RUM_STORAGE_KEY, 1 /* CustomerDataType.User */);\n userContextManager.setContext(combine(userContextManager.getContext(), beforeInitUserContext));\n }\n var startRumResults = startRumImpl(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions);\n getSessionReplayLinkStrategy = function () {\n return recorderApi.getSessionReplayLink(configuration, startRumResults.session, startRumResults.viewContexts);\n };\n (startViewStrategy = startRumResults.startView, addActionStrategy = startRumResults.addAction, addErrorStrategy = startRumResults.addError, addTimingStrategy = startRumResults.addTiming, addFeatureFlagEvaluationStrategy = startRumResults.addFeatureFlagEvaluation, getInternalContextStrategy = startRumResults.getInternalContext, stopSessionStrategy = startRumResults.stopSession);\n bufferApiCalls.drain();\n recorderApi.onRumStart(startRumResults.lifeCycle, configuration, startRumResults.session, startRumResults.viewContexts);\n }\n var startView = monitor(function (options) {\n var sanitizedOptions = typeof options === 'object' ? options : { name: options };\n startViewStrategy(sanitizedOptions);\n });\n var rumPublicApi = makePublicApi({\n init: monitor(initRum),\n /** @deprecated: use setGlobalContextProperty instead */\n addRumGlobalContext: monitor(function (key, value) { return globalContextManager.add(key, value); }),\n setGlobalContextProperty: monitor(function (key, value) { return globalContextManager.setContextProperty(key, value); }),\n /** @deprecated: use removeGlobalContextProperty instead */\n removeRumGlobalContext: monitor(function (key) { return globalContextManager.remove(key); }),\n removeGlobalContextProperty: monitor(function (key) { return globalContextManager.removeContextProperty(key); }),\n /** @deprecated: use getGlobalContext instead */\n getRumGlobalContext: monitor(function () { return globalContextManager.get(); }),\n getGlobalContext: monitor(function () { return globalContextManager.getContext(); }),\n /** @deprecated: use setGlobalContext instead */\n setRumGlobalContext: monitor(function (context) { return globalContextManager.set(context); }),\n setGlobalContext: monitor(function (context) { return globalContextManager.setContext(context); }),\n clearGlobalContext: monitor(function () { return globalContextManager.clearContext(); }),\n getInternalContext: monitor(function (startTime) { return getInternalContextStrategy(startTime); }),\n getInitConfiguration: monitor(function () { return getInitConfigurationStrategy(); }),\n addAction: monitor(function (name, context) {\n addActionStrategy({\n name: sanitize(name),\n context: sanitize(context),\n startClocks: clocksNow(),\n type: \"custom\" /* ActionType.CUSTOM */,\n });\n }),\n addError: function (error, context) {\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n addErrorStrategy({\n error: error,\n handlingStack: handlingStack,\n context: sanitize(context),\n startClocks: clocksNow(),\n });\n });\n },\n addTiming: monitor(function (name, time) {\n addTimingStrategy(sanitize(name), time);\n }),\n setUser: monitor(function (newUser) {\n if (checkUser(newUser)) {\n userContextManager.setContext(sanitizeUser(newUser));\n }\n }),\n getUser: monitor(function () { return userContextManager.getContext(); }),\n setUserProperty: monitor(function (key, property) {\n var _a;\n var sanitizedProperty = sanitizeUser((_a = {}, _a[key] = property, _a))[key];\n userContextManager.setContextProperty(key, sanitizedProperty);\n }),\n removeUserProperty: monitor(function (key) { return userContextManager.removeContextProperty(key); }),\n /** @deprecated: renamed to clearUser */\n removeUser: monitor(function () { return userContextManager.clearContext(); }),\n clearUser: monitor(function () { return userContextManager.clearContext(); }),\n startView: startView,\n stopSession: monitor(function () {\n stopSessionStrategy();\n }),\n startSessionReplayRecording: monitor(recorderApi.start),\n stopSessionReplayRecording: monitor(recorderApi.stop),\n /**\n * This feature is currently in beta. For more information see the full [feature flag tracking guide](https://docs.datadoghq.com/real_user_monitoring/feature_flag_tracking/).\n */\n addFeatureFlagEvaluation: monitor(function (key, value) {\n addFeatureFlagEvaluationStrategy(sanitize(key), sanitize(value));\n }),\n getSessionReplayLink: monitor(function () { return getSessionReplayLinkStrategy(); }),\n });\n return rumPublicApi;\n function canInitRum(initConfiguration) {\n if (isAlreadyInitialized) {\n if (!initConfiguration.silentMultipleInit) {\n display.error('DD_RUM is already initialized.');\n }\n return false;\n }\n return true;\n }\n function overrideInitConfigurationForBridge(initConfiguration) {\n return assign({}, initConfiguration, {\n applicationId: '00000000-aaaa-0000-aaaa-000000000000',\n clientToken: 'empty',\n sessionSampleRate: 100,\n });\n }\n}\n//# sourceMappingURL=rumPublicApi.js.map","export function sendToExtension(type, payload) {\n var callback = window.__ddBrowserSdkExtensionCallback;\n if (callback) {\n callback({ type: type, payload: payload });\n }\n}\n//# sourceMappingURL=sendToExtension.js.map","export var TelemetryType = {\n log: 'log',\n configuration: 'configuration',\n};\n//# sourceMappingURL=rawTelemetryEvent.types.js.map","import { ConsoleApiName } from '../../tools/display';\nimport { toStackTraceString, NO_ERROR_STACK_PRESENT_MESSAGE } from '../error/error';\nimport { getExperimentalFeatures } from '../../tools/experimentalFeatures';\nimport { INTAKE_SITE_STAGING, INTAKE_SITE_US1_FED } from '../configuration';\nimport { computeStackTrace } from '../tracekit';\nimport { Observable } from '../../tools/observable';\nimport { timeStampNow } from '../../tools/utils/timeUtils';\nimport { displayIfDebugEnabled, startMonitorErrorCollection } from '../../tools/monitor';\nimport { sendToExtension } from '../../tools/sendToExtension';\nimport { startsWith, arrayFrom, includes, assign } from '../../tools/utils/polyfills';\nimport { performDraw } from '../../tools/utils/numberUtils';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nimport { combine } from '../../tools/mergeInto';\nimport { TelemetryType } from './rawTelemetryEvent.types';\nvar ALLOWED_FRAME_URLS = [\n 'https://www.datadoghq-browser-agent.com',\n 'https://www.datad0g-browser-agent.com',\n 'https://d3uc069fcn7uxw.cloudfront.net',\n 'https://d20xtzwzcl0ceb.cloudfront.net',\n 'http://localhost',\n '',\n];\nvar TELEMETRY_EXCLUDED_SITES = [INTAKE_SITE_US1_FED];\nvar telemetryConfiguration = { maxEventsPerPage: 0, sentEventCount: 0, telemetryEnabled: false, telemetryConfigurationEnabled: false };\nvar onRawTelemetryEventCollected;\nexport function startTelemetry(telemetryService, configuration) {\n var contextProvider;\n var observable = new Observable();\n telemetryConfiguration.telemetryEnabled =\n !includes(TELEMETRY_EXCLUDED_SITES, configuration.site) && performDraw(configuration.telemetrySampleRate);\n telemetryConfiguration.telemetryConfigurationEnabled =\n telemetryConfiguration.telemetryEnabled && performDraw(configuration.telemetryConfigurationSampleRate);\n var runtimeEnvInfo = getRuntimeEnvInfo();\n onRawTelemetryEventCollected = function (rawEvent) {\n if (telemetryConfiguration.telemetryEnabled) {\n var event_1 = toTelemetryEvent(telemetryService, rawEvent, runtimeEnvInfo);\n observable.notify(event_1);\n sendToExtension('telemetry', event_1);\n }\n };\n startMonitorErrorCollection(addTelemetryError);\n assign(telemetryConfiguration, {\n maxEventsPerPage: configuration.maxTelemetryEventsPerPage,\n sentEventCount: 0,\n });\n function toTelemetryEvent(telemetryService, event, runtimeEnvInfo) {\n return combine({\n type: 'telemetry',\n date: timeStampNow(),\n service: telemetryService,\n version: \"4.50.1\",\n source: 'browser',\n _dd: {\n format_version: 2,\n },\n telemetry: combine(event, {\n runtime_env: runtimeEnvInfo,\n }),\n experimental_features: arrayFrom(getExperimentalFeatures()),\n }, contextProvider !== undefined ? contextProvider() : {});\n }\n return {\n setContextProvider: function (provider) {\n contextProvider = provider;\n },\n observable: observable,\n enabled: telemetryConfiguration.telemetryEnabled,\n };\n}\nfunction getRuntimeEnvInfo() {\n return {\n is_local_file: window.location.protocol === 'file:',\n is_worker: 'WorkerGlobalScope' in self,\n };\n}\nexport function startFakeTelemetry() {\n var events = [];\n assign(telemetryConfiguration, {\n maxEventsPerPage: Infinity,\n sentEventCount: 0,\n });\n onRawTelemetryEventCollected = function (event) {\n events.push(event);\n };\n return events;\n}\nexport function resetTelemetry() {\n onRawTelemetryEventCollected = undefined;\n}\n/**\n * Avoid mixing telemetry events from different data centers\n * but keep replicating staging events for reliability\n */\nexport function isTelemetryReplicationAllowed(configuration) {\n return configuration.site === INTAKE_SITE_STAGING;\n}\nexport function addTelemetryDebug(message, context) {\n displayIfDebugEnabled(ConsoleApiName.debug, message, context);\n addTelemetry(assign({\n type: TelemetryType.log,\n message: message,\n status: \"debug\" /* StatusType.debug */,\n }, context));\n}\nexport function addTelemetryError(e, context) {\n addTelemetry(assign({\n type: TelemetryType.log,\n status: \"error\" /* StatusType.error */,\n }, formatError(e), context));\n}\nexport function addTelemetryConfiguration(configuration) {\n if (telemetryConfiguration.telemetryConfigurationEnabled) {\n addTelemetry({\n type: TelemetryType.configuration,\n configuration: configuration,\n });\n }\n}\nfunction addTelemetry(event) {\n if (onRawTelemetryEventCollected && telemetryConfiguration.sentEventCount < telemetryConfiguration.maxEventsPerPage) {\n telemetryConfiguration.sentEventCount += 1;\n onRawTelemetryEventCollected(event);\n }\n}\nexport function formatError(e) {\n if (e instanceof Error) {\n var stackTrace = computeStackTrace(e);\n return {\n error: {\n kind: stackTrace.name,\n stack: toStackTraceString(scrubCustomerFrames(stackTrace)),\n },\n message: stackTrace.message,\n };\n }\n return {\n error: {\n stack: NO_ERROR_STACK_PRESENT_MESSAGE,\n },\n message: \"\".concat(\"Uncaught\" /* NonErrorPrefix.UNCAUGHT */, \" \").concat(jsonStringify(e)),\n };\n}\nexport function scrubCustomerFrames(stackTrace) {\n stackTrace.stack = stackTrace.stack.filter(function (frame) { return !frame.url || ALLOWED_FRAME_URLS.some(function (allowedFrameUrl) { return startsWith(frame.url, allowedFrameUrl); }); });\n return stackTrace;\n}\n//# sourceMappingURL=telemetry.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature } from '../tools/experimentalFeatures';\nimport { Observable } from '../tools/observable';\nimport { objectValues, includes } from '../tools/utils/polyfills';\nimport { noop } from '../tools/utils/functionUtils';\nimport { addEventListeners, addEventListener } from './addEventListener';\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n};\nexport function createPageExitObservable(configuration) {\n var observable = new Observable(function () {\n var pagehideEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGEHIDE);\n var stopListeners = addEventListeners(configuration, window, [\"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, \"freeze\" /* DOM_EVENT.FREEZE */, \"pagehide\" /* DOM_EVENT.PAGE_HIDE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ && pagehideEnabled) {\n /**\n * Only event that detect page unload events while being compatible with the back/forward cache (bfcache)\n */\n observable.notify({ reason: PageExitReason.PAGEHIDE });\n }\n else if (event.type === \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */ && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN });\n }\n else if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN });\n }\n }, { capture: true }).stop;\n var stopBeforeUnloadListener = noop;\n if (!pagehideEnabled) {\n stopBeforeUnloadListener = addEventListener(configuration, window, \"beforeunload\" /* DOM_EVENT.BEFORE_UNLOAD */, function () {\n observable.notify({ reason: PageExitReason.UNLOADING });\n }).stop;\n }\n return function () {\n stopListeners();\n stopBeforeUnloadListener();\n };\n });\n return observable;\n}\nexport function isPageExitReason(reason) {\n return includes(objectValues(PageExitReason), reason);\n}\n//# sourceMappingURL=pageExitObservable.js.map","import { monitor, noop, Observable, getZoneJsOriginalValue } from '@datadog/browser-core';\nexport function createDOMMutationObservable() {\n var MutationObserver = getMutationObserverConstructor();\n var observable = new Observable(function () {\n if (!MutationObserver) {\n return;\n }\n var observer = new MutationObserver(monitor(function () { return observable.notify(); }));\n observer.observe(document, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n return function () { return observer.disconnect(); };\n });\n return observable;\n}\nexport function getMutationObserverConstructor() {\n var constructor;\n var browserWindow = window;\n // Angular uses Zone.js to provide a context persisting across async tasks. Zone.js replaces the\n // global MutationObserver constructor with a patched version to support the context propagation.\n // There is an ongoing issue[1][2] with this setup when using a MutationObserver within a Angular\n // component: on some occasions, the callback is being called in an infinite loop, causing the\n // page to freeze (even if the callback is completely empty).\n //\n // To work around this issue, we try to get the original MutationObserver constructor stored by\n // Zone.js.\n //\n // [1] https://github.com/angular/angular/issues/26948\n // [2] https://github.com/angular/angular/issues/31712\n if (browserWindow.Zone) {\n // Zone.js 0.8.6+ is storing original class constructors into the browser 'window' object[3].\n //\n // [3] https://github.com/angular/angular/blob/6375fa79875c0fe7b815efc45940a6e6f5c9c9eb/packages/zone.js/lib/common/utils.ts#L288\n constructor = getZoneJsOriginalValue(browserWindow, 'MutationObserver');\n if (browserWindow.MutationObserver && constructor === browserWindow.MutationObserver) {\n // Anterior Zone.js versions (used in Angular 2) does not expose the original MutationObserver\n // in the 'window' object. Luckily, the patched MutationObserver class is storing an original\n // instance in its properties[4]. Let's get the original MutationObserver constructor from\n // there.\n //\n // [4] https://github.com/angular/zone.js/blob/v0.8.5/lib/common/utils.ts#L412\n var patchedInstance = new browserWindow.MutationObserver(noop);\n var originalInstance = getZoneJsOriginalValue(patchedInstance, 'originalInstance');\n constructor = originalInstance && originalInstance.constructor;\n }\n }\n if (!constructor) {\n constructor = browserWindow.MutationObserver;\n }\n return constructor;\n}\n//# sourceMappingURL=domMutationObservable.js.map","import { addEventListener } from './addEventListener';\nexport function runOnReadyState(configuration, expectedReadyState, callback) {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback();\n }\n else {\n var eventName = expectedReadyState === 'complete' ? \"load\" /* DOM_EVENT.LOAD */ : \"DOMContentLoaded\" /* DOM_EVENT.DOM_CONTENT_LOADED */;\n addEventListener(configuration, window, eventName, callback, { once: true });\n }\n}\n//# sourceMappingURL=runOnReadyState.js.map","import { assign, addTelemetryDebug, elapsed, getPathName, includes, isValidUrl, toServerDuration, } from '@datadog/browser-core';\nexport var FAKE_INITIAL_DOCUMENT = 'initial_document';\nvar RESOURCE_TYPES = [\n [\"document\" /* ResourceType.DOCUMENT */, function (initiatorType) { return FAKE_INITIAL_DOCUMENT === initiatorType; }],\n [\"xhr\" /* ResourceType.XHR */, function (initiatorType) { return 'xmlhttprequest' === initiatorType; }],\n [\"fetch\" /* ResourceType.FETCH */, function (initiatorType) { return 'fetch' === initiatorType; }],\n [\"beacon\" /* ResourceType.BEACON */, function (initiatorType) { return 'beacon' === initiatorType; }],\n [\"css\" /* ResourceType.CSS */, function (_, path) { return /\\.css$/i.test(path); }],\n [\"js\" /* ResourceType.JS */, function (_, path) { return /\\.js$/i.test(path); }],\n [\n \"image\" /* ResourceType.IMAGE */,\n function (initiatorType, path) {\n return includes(['image', 'img', 'icon'], initiatorType) || /\\.(gif|jpg|jpeg|tiff|png|svg|ico)$/i.exec(path) !== null;\n },\n ],\n [\"font\" /* ResourceType.FONT */, function (_, path) { return /\\.(woff|eot|woff2|ttf)$/i.exec(path) !== null; }],\n [\n \"media\" /* ResourceType.MEDIA */,\n function (initiatorType, path) {\n return includes(['audio', 'video'], initiatorType) || /\\.(mp3|mp4)$/i.exec(path) !== null;\n },\n ],\n];\nexport function computeResourceKind(timing) {\n var url = timing.name;\n if (!isValidUrl(url)) {\n addTelemetryDebug(\"Failed to construct URL for \\\"\".concat(timing.name, \"\\\"\"));\n return \"other\" /* ResourceType.OTHER */;\n }\n var path = getPathName(url);\n for (var _i = 0, RESOURCE_TYPES_1 = RESOURCE_TYPES; _i < RESOURCE_TYPES_1.length; _i++) {\n var _a = RESOURCE_TYPES_1[_i], type = _a[0], isType = _a[1];\n if (isType(timing.initiatorType, path)) {\n return type;\n }\n }\n return \"other\" /* ResourceType.OTHER */;\n}\nfunction areInOrder() {\n var numbers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n numbers[_i] = arguments[_i];\n }\n for (var i = 1; i < numbers.length; i += 1) {\n if (numbers[i - 1] > numbers[i]) {\n return false;\n }\n }\n return true;\n}\nexport function isRequestKind(timing) {\n return timing.initiatorType === 'xmlhttprequest' || timing.initiatorType === 'fetch';\n}\nexport function computePerformanceResourceDuration(entry) {\n var duration = entry.duration, startTime = entry.startTime, responseEnd = entry.responseEnd;\n // Safari duration is always 0 on timings blocked by cross origin policies.\n if (duration === 0 && startTime < responseEnd) {\n return toServerDuration(elapsed(startTime, responseEnd));\n }\n return toServerDuration(duration);\n}\nexport function computePerformanceResourceDetails(entry) {\n var validEntry = toValidEntry(entry);\n if (!validEntry) {\n return undefined;\n }\n var startTime = validEntry.startTime, fetchStart = validEntry.fetchStart, redirectStart = validEntry.redirectStart, redirectEnd = validEntry.redirectEnd, domainLookupStart = validEntry.domainLookupStart, domainLookupEnd = validEntry.domainLookupEnd, connectStart = validEntry.connectStart, secureConnectionStart = validEntry.secureConnectionStart, connectEnd = validEntry.connectEnd, requestStart = validEntry.requestStart, responseStart = validEntry.responseStart, responseEnd = validEntry.responseEnd;\n var details = {\n download: formatTiming(startTime, responseStart, responseEnd),\n first_byte: formatTiming(startTime, requestStart, responseStart),\n };\n // Make sure a connection occurred\n if (connectEnd !== fetchStart) {\n details.connect = formatTiming(startTime, connectStart, connectEnd);\n // Make sure a secure connection occurred\n if (areInOrder(connectStart, secureConnectionStart, connectEnd)) {\n details.ssl = formatTiming(startTime, secureConnectionStart, connectEnd);\n }\n }\n // Make sure a domain lookup occurred\n if (domainLookupEnd !== fetchStart) {\n details.dns = formatTiming(startTime, domainLookupStart, domainLookupEnd);\n }\n if (hasRedirection(entry)) {\n details.redirect = formatTiming(startTime, redirectStart, redirectEnd);\n }\n return details;\n}\nexport function toValidEntry(entry) {\n // Ensure timings are in the right order. On top of filtering out potential invalid\n // RumPerformanceResourceTiming, it will ignore entries from requests where timings cannot be\n // collected, for example cross origin requests without a \"Timing-Allow-Origin\" header allowing\n // it.\n if (!areInOrder(entry.startTime, entry.fetchStart, entry.domainLookupStart, entry.domainLookupEnd, entry.connectStart, entry.connectEnd, entry.requestStart, entry.responseStart, entry.responseEnd)) {\n return undefined;\n }\n if (!hasRedirection(entry)) {\n return entry;\n }\n var redirectStart = entry.redirectStart, redirectEnd = entry.redirectEnd;\n // Firefox doesn't provide redirect timings on cross origin requests.\n // Provide a default for those.\n if (redirectStart < entry.startTime) {\n redirectStart = entry.startTime;\n }\n if (redirectEnd < entry.startTime) {\n redirectEnd = entry.fetchStart;\n }\n // Make sure redirect timings are in order\n if (!areInOrder(entry.startTime, redirectStart, redirectEnd, entry.fetchStart)) {\n return undefined;\n }\n return assign({}, entry, {\n redirectEnd: redirectEnd,\n redirectStart: redirectStart,\n });\n}\nfunction hasRedirection(entry) {\n // The only time fetchStart is different than startTime is if a redirection occurred.\n return entry.fetchStart !== entry.startTime;\n}\nfunction formatTiming(origin, start, end) {\n return {\n duration: toServerDuration(elapsed(start, end)),\n start: toServerDuration(elapsed(origin, start)),\n };\n}\nexport function computeSize(entry) {\n // Make sure a request actually occurred\n if (entry.startTime < entry.responseStart) {\n return entry.decodedBodySize;\n }\n return undefined;\n}\nexport function isAllowedRequestUrl(configuration, url) {\n return url && !configuration.isIntakeUrl(url);\n}\n//# sourceMappingURL=resourceUtils.js.map","export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE;\n}\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE;\n}\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n}\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot);\n}\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node;\n return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node);\n}\nexport function forEachChildNodes(node, callback) {\n node.childNodes.forEach(callback);\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot);\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode;\n}\n//# sourceMappingURL=htmlDomUtils.js.map","import { dateNow, findCommaSeparatedValue, ONE_MINUTE } from '@datadog/browser-core';\nimport { isCommentNode, isTextNode } from '../../browser/htmlDomUtils';\nexport var INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD = 2 * ONE_MINUTE;\nexport function getDocumentTraceId(document) {\n var data = getDocumentTraceDataFromMeta(document) || getDocumentTraceDataFromComment(document);\n if (!data || data.traceTime <= dateNow() - INITIAL_DOCUMENT_OUTDATED_TRACE_ID_THRESHOLD) {\n return undefined;\n }\n return data.traceId;\n}\nexport function getDocumentTraceDataFromMeta(document) {\n var traceIdMeta = document.querySelector('meta[name=dd-trace-id]');\n var traceTimeMeta = document.querySelector('meta[name=dd-trace-time]');\n return createDocumentTraceData(traceIdMeta && traceIdMeta.content, traceTimeMeta && traceTimeMeta.content);\n}\nexport function getDocumentTraceDataFromComment(document) {\n var comment = findTraceComment(document);\n if (!comment) {\n return undefined;\n }\n return createDocumentTraceData(findCommaSeparatedValue(comment, 'trace-id'), findCommaSeparatedValue(comment, 'trace-time'));\n}\nexport function createDocumentTraceData(traceId, rawTraceTime) {\n var traceTime = rawTraceTime && Number(rawTraceTime);\n if (!traceId || !traceTime) {\n return undefined;\n }\n return {\n traceId: traceId,\n traceTime: traceTime,\n };\n}\nexport function findTraceComment(document) {\n // 1. Try to find the comment as a direct child of the document\n // Note: TSLint advises to use a 'for of', but TS doesn't allow to use 'for of' if the iterated\n // value is not an array or string (here, a NodeList).\n for (var i = 0; i < document.childNodes.length; i += 1) {\n var comment = getTraceCommentFromNode(document.childNodes[i]);\n if (comment) {\n return comment;\n }\n }\n // 2. If the comment is placed after the tag, but have some space or new lines before or\n // after, the DOM parser will lift it (and the surrounding text) at the end of the tag.\n // Try to look for the comment at the end of the by by iterating over its child nodes in\n // reverse order, stopping if we come across a non-text node.\n if (document.body) {\n for (var i = document.body.childNodes.length - 1; i >= 0; i -= 1) {\n var node = document.body.childNodes[i];\n var comment = getTraceCommentFromNode(node);\n if (comment) {\n return comment;\n }\n if (!isTextNode(node)) {\n break;\n }\n }\n }\n}\nfunction getTraceCommentFromNode(node) {\n if (node && isCommentNode(node)) {\n var match = /^\\s*DATADOG;(.*?)\\s*$/.exec(node.data);\n if (match) {\n return match[1];\n }\n }\n}\n//# sourceMappingURL=getDocumentTraceId.js.map","import { dateNow, assign, addEventListeners, getRelativeTime, isNumber, monitor, setTimeout, relativeNow, runOnReadyState, addEventListener, objectHasValue, } from '@datadog/browser-core';\nimport { FAKE_INITIAL_DOCUMENT, isAllowedRequestUrl } from '../domain/resource/resourceUtils';\nimport { getDocumentTraceId } from '../domain/tracing/getDocumentTraceId';\n// We want to use a real enum (i.e. not a const enum) here, to be able to check whether an arbitrary\n// string is an expected performance entry\n// eslint-disable-next-line no-restricted-syntax\nexport var RumPerformanceEntryType;\n(function (RumPerformanceEntryType) {\n RumPerformanceEntryType[\"EVENT\"] = \"event\";\n RumPerformanceEntryType[\"FIRST_INPUT\"] = \"first-input\";\n RumPerformanceEntryType[\"LARGEST_CONTENTFUL_PAINT\"] = \"largest-contentful-paint\";\n RumPerformanceEntryType[\"LAYOUT_SHIFT\"] = \"layout-shift\";\n RumPerformanceEntryType[\"LONG_TASK\"] = \"longtask\";\n RumPerformanceEntryType[\"NAVIGATION\"] = \"navigation\";\n RumPerformanceEntryType[\"PAINT\"] = \"paint\";\n RumPerformanceEntryType[\"RESOURCE\"] = \"resource\";\n})(RumPerformanceEntryType || (RumPerformanceEntryType = {}));\nfunction supportPerformanceObject() {\n return window.performance !== undefined && 'getEntries' in performance;\n}\nexport function supportPerformanceTimingEvent(entryType) {\n return (window.PerformanceObserver &&\n PerformanceObserver.supportedEntryTypes !== undefined &&\n PerformanceObserver.supportedEntryTypes.includes(entryType));\n}\nexport function startPerformanceCollection(lifeCycle, configuration) {\n retrieveInitialDocumentResourceTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n if (supportPerformanceObject()) {\n var performanceEntries_1 = performance.getEntries();\n // Because the performance entry list can be quite large\n // delay the computation to prevent the SDK from blocking the main thread on init\n setTimeout(function () { return handleRumPerformanceEntries(lifeCycle, configuration, performanceEntries_1); });\n }\n if (window.PerformanceObserver) {\n var handlePerformanceEntryList_1 = monitor(function (entries) {\n return handleRumPerformanceEntries(lifeCycle, configuration, entries.getEntries());\n });\n var mainEntries = [\n RumPerformanceEntryType.RESOURCE,\n RumPerformanceEntryType.NAVIGATION,\n RumPerformanceEntryType.LONG_TASK,\n RumPerformanceEntryType.PAINT,\n ];\n var experimentalEntries = [\n RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT,\n RumPerformanceEntryType.FIRST_INPUT,\n RumPerformanceEntryType.LAYOUT_SHIFT,\n RumPerformanceEntryType.EVENT,\n ];\n try {\n // Experimental entries are not retrieved by performance.getEntries()\n // use a single PerformanceObserver with buffered flag by type\n // to get values that could happen before SDK init\n experimentalEntries.forEach(function (type) {\n var observer = new window.PerformanceObserver(handlePerformanceEntryList_1);\n observer.observe({\n type: type,\n buffered: true,\n // durationThreshold only impact PerformanceEventTiming entries used for INP computation which requires a threshold at 40 (default is 104ms)\n // cf: https://github.com/GoogleChrome/web-vitals/blob/3806160ffbc93c3c4abf210a167b81228172b31c/src/onINP.ts#L209\n durationThreshold: 40,\n });\n });\n }\n catch (e) {\n // Some old browser versions (ex: chrome 67) don't support the PerformanceObserver type and buffered options\n // In these cases, fallback to PerformanceObserver with entryTypes\n mainEntries.push.apply(mainEntries, experimentalEntries);\n }\n var mainObserver = new PerformanceObserver(handlePerformanceEntryList_1);\n mainObserver.observe({ entryTypes: mainEntries });\n if (supportPerformanceObject() && 'addEventListener' in performance) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1559377\n addEventListener(configuration, performance, 'resourcetimingbufferfull', function () {\n performance.clearResourceTimings();\n });\n }\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION)) {\n retrieveNavigationTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n if (!supportPerformanceTimingEvent(RumPerformanceEntryType.FIRST_INPUT)) {\n retrieveFirstInputTiming(configuration, function (timing) {\n handleRumPerformanceEntries(lifeCycle, configuration, [timing]);\n });\n }\n}\nexport function retrieveInitialDocumentResourceTiming(configuration, callback) {\n runOnReadyState(configuration, 'interactive', function () {\n var timing;\n var forcedAttributes = {\n entryType: RumPerformanceEntryType.RESOURCE,\n initiatorType: FAKE_INITIAL_DOCUMENT,\n traceId: getDocumentTraceId(document),\n toJSON: function () { return assign({}, timing, { toJSON: undefined }); },\n };\n if (supportPerformanceTimingEvent(RumPerformanceEntryType.NAVIGATION) &&\n performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION).length > 0) {\n var navigationEntry = performance.getEntriesByType(RumPerformanceEntryType.NAVIGATION)[0];\n timing = assign(navigationEntry.toJSON(), forcedAttributes);\n }\n else {\n var relativePerformanceTiming = computeRelativePerformanceTiming();\n timing = assign(relativePerformanceTiming, {\n decodedBodySize: 0,\n duration: relativePerformanceTiming.responseEnd,\n name: window.location.href,\n startTime: 0,\n }, forcedAttributes);\n }\n callback(timing);\n });\n}\nfunction retrieveNavigationTiming(configuration, callback) {\n function sendFakeTiming() {\n callback(assign(computeRelativePerformanceTiming(), {\n entryType: RumPerformanceEntryType.NAVIGATION,\n }));\n }\n runOnReadyState(configuration, 'complete', function () {\n // Send it a bit after the actual load event, so the \"loadEventEnd\" timing is accurate\n setTimeout(sendFakeTiming);\n });\n}\n/**\n * first-input timing entry polyfill based on\n * https://github.com/GoogleChrome/web-vitals/blob/master/src/lib/polyfills/firstInputPolyfill.ts\n */\nfunction retrieveFirstInputTiming(configuration, callback) {\n var startTimeStamp = dateNow();\n var timingSent = false;\n var removeEventListeners = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"mousedown\" /* DOM_EVENT.MOUSE_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */], function (evt) {\n // Only count cancelable events, which should trigger behavior important to the user.\n if (!evt.cancelable) {\n return;\n }\n // This timing will be used to compute the \"first Input delay\", which is the delta between\n // when the system received the event (e.g. evt.timeStamp) and when it could run the callback\n // (e.g. performance.now()).\n var timing = {\n entryType: RumPerformanceEntryType.FIRST_INPUT,\n processingStart: relativeNow(),\n processingEnd: relativeNow(),\n startTime: evt.timeStamp,\n duration: 0,\n name: '',\n };\n if (evt.type === \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */) {\n sendTimingIfPointerIsNotCancelled(configuration, timing);\n }\n else {\n sendTiming(timing);\n }\n }, { passive: true, capture: true }).stop;\n /**\n * Pointer events are a special case, because they can trigger main or compositor thread behavior.\n * We differentiate these cases based on whether or not we see a pointercancel event, which are\n * fired when we scroll. If we're scrolling we don't need to report input delay since FID excludes\n * scrolling and pinch/zooming.\n */\n function sendTimingIfPointerIsNotCancelled(configuration, timing) {\n addEventListeners(configuration, window, [\"pointerup\" /* DOM_EVENT.POINTER_UP */, \"pointercancel\" /* DOM_EVENT.POINTER_CANCEL */], function (event) {\n if (event.type === \"pointerup\" /* DOM_EVENT.POINTER_UP */) {\n sendTiming(timing);\n }\n }, { once: true });\n }\n function sendTiming(timing) {\n if (!timingSent) {\n timingSent = true;\n removeEventListeners();\n // In some cases the recorded delay is clearly wrong, e.g. it's negative or it's larger than\n // the time between now and when the page was loaded.\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/4\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/6\n // - https://github.com/GoogleChromeLabs/first-input-delay/issues/7\n var delay = timing.processingStart - timing.startTime;\n if (delay >= 0 && delay < dateNow() - startTimeStamp) {\n callback(timing);\n }\n }\n }\n}\nfunction computeRelativePerformanceTiming() {\n var result = {};\n var timing = performance.timing;\n for (var key in timing) {\n if (isNumber(timing[key])) {\n var numberKey = key;\n var timingElement = timing[numberKey];\n result[numberKey] = timingElement === 0 ? 0 : getRelativeTime(timingElement);\n }\n }\n return result;\n}\nfunction handleRumPerformanceEntries(lifeCycle, configuration, entries) {\n var rumPerformanceEntries = entries.filter(function (entry) {\n return objectHasValue(RumPerformanceEntryType, entry.entryType);\n });\n var rumAllowedPerformanceEntries = rumPerformanceEntries.filter(function (entry) { return !isIncompleteNavigation(entry) && !isForbiddenResource(configuration, entry); });\n if (rumAllowedPerformanceEntries.length) {\n lifeCycle.notify(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, rumAllowedPerformanceEntries);\n }\n}\nfunction isIncompleteNavigation(entry) {\n return entry.entryType === RumPerformanceEntryType.NAVIGATION && entry.loadEventEnd <= 0;\n}\nfunction isForbiddenResource(configuration, entry) {\n return entry.entryType === RumPerformanceEntryType.RESOURCE && !isAllowedRequestUrl(configuration, entry.name);\n}\n//# sourceMappingURL=performanceCollection.js.map","export var ErrorSource = {\n AGENT: 'agent',\n CONSOLE: 'console',\n CUSTOM: 'custom',\n LOGGER: 'logger',\n NETWORK: 'network',\n SOURCE: 'source',\n REPORT: 'report',\n};\n//# sourceMappingURL=error.types.js.map","import { setTimeout } from '../../tools/timer';\nimport { clocksNow, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { ErrorSource } from '../error/error.types';\nexport function createEventRateLimiter(eventType, limit, onLimitReached) {\n var eventCount = 0;\n var allowNextEvent = false;\n return {\n isLimitReached: function () {\n if (eventCount === 0) {\n setTimeout(function () {\n eventCount = 0;\n }, ONE_MINUTE);\n }\n eventCount += 1;\n if (eventCount <= limit || allowNextEvent) {\n allowNextEvent = false;\n return false;\n }\n if (eventCount === limit + 1) {\n allowNextEvent = true;\n try {\n onLimitReached({\n message: \"Reached max number of \".concat(eventType, \"s by minute: \").concat(limit),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n }\n finally {\n allowNextEvent = false;\n }\n }\n return true;\n },\n };\n}\n//# sourceMappingURL=createEventRateLimiter.js.map","import { getSyntheticsResultId, getSyntheticsTestId, willSyntheticsInjectRum } from '@datadog/browser-core';\nexport function getSyntheticsContext() {\n var testId = getSyntheticsTestId();\n var resultId = getSyntheticsResultId();\n if (testId && resultId) {\n return {\n test_id: testId,\n result_id: resultId,\n injected: willSyntheticsInjectRum(),\n };\n }\n}\n//# sourceMappingURL=syntheticsContext.js.map","export function getCiTestContext() {\n var _a;\n var testExecutionId = (_a = window.Cypress) === null || _a === void 0 ? void 0 : _a.env('traceId');\n if (typeof testExecutionId === 'string') {\n return {\n test_execution_id: testExecutionId,\n };\n }\n}\n//# sourceMappingURL=ciTestContext.js.map","import { sanitize, deepClone, getType, objectEntries } from '@datadog/browser-core';\n/**\n * Current limitation:\n * - field path do not support array, 'a.b.c' only\n */\nexport function limitModification(object, modifiableFieldPaths, modifier) {\n var clone = deepClone(object);\n var result = modifier(clone);\n objectEntries(modifiableFieldPaths).forEach(function (_a) {\n var fieldPath = _a[0], fieldType = _a[1];\n var newValue = get(clone, fieldPath);\n var newType = getType(newValue);\n if (newType === fieldType) {\n set(object, fieldPath, sanitize(newValue));\n }\n else if (fieldType === 'object' && (newType === 'undefined' || newType === 'null')) {\n set(object, fieldPath, {});\n }\n });\n return result;\n}\nfunction get(object, path) {\n var current = object;\n for (var _i = 0, _a = path.split('.'); _i < _a.length; _i++) {\n var field = _a[_i];\n if (!isValidObjectContaining(current, field)) {\n return;\n }\n current = current[field];\n }\n return current;\n}\nfunction set(object, path, value) {\n var current = object;\n var fields = path.split('.');\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i];\n if (!isValidObject(current)) {\n return;\n }\n if (i !== fields.length - 1) {\n current = current[field];\n }\n else {\n current[field] = value;\n }\n }\n}\nfunction isValidObject(object) {\n return getType(object) === 'object';\n}\nfunction isValidObjectContaining(object, field) {\n return isValidObject(object) && Object.prototype.hasOwnProperty.call(object, field);\n}\n//# sourceMappingURL=limitModification.js.map","import { combine, isEmptyObject, timeStampNow, currentDrift, display, createEventRateLimiter, canUseEventBridge, assign, round, } from '@datadog/browser-core';\nimport { getSyntheticsContext } from './contexts/syntheticsContext';\nimport { getCiTestContext } from './contexts/ciTestContext';\nimport { limitModification } from './limitModification';\nvar VIEW_MODIFIABLE_FIELD_PATHS = {\n 'view.name': 'string',\n 'view.url': 'string',\n 'view.referrer': 'string',\n};\nvar USER_CUSTOMIZABLE_FIELD_PATHS = {\n context: 'object',\n};\nvar modifiableFieldPathsByEvent;\nexport function startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError) {\n var _a, _b;\n modifiableFieldPathsByEvent = (_a = {},\n _a[\"view\" /* RumEventType.VIEW */] = VIEW_MODIFIABLE_FIELD_PATHS,\n _a[\"error\" /* RumEventType.ERROR */] = assign({\n 'error.message': 'string',\n 'error.stack': 'string',\n 'error.resource.url': 'string',\n 'error.fingerprint': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"resource\" /* RumEventType.RESOURCE */] = assign({\n 'resource.url': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"action\" /* RumEventType.ACTION */] = assign({\n 'action.target.name': 'string',\n }, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a[\"long_task\" /* RumEventType.LONG_TASK */] = assign({}, USER_CUSTOMIZABLE_FIELD_PATHS, VIEW_MODIFIABLE_FIELD_PATHS),\n _a);\n var eventRateLimiters = (_b = {},\n _b[\"error\" /* RumEventType.ERROR */] = createEventRateLimiter(\"error\" /* RumEventType.ERROR */, configuration.eventRateLimiterThreshold, reportError),\n _b[\"action\" /* RumEventType.ACTION */] = createEventRateLimiter(\"action\" /* RumEventType.ACTION */, configuration.eventRateLimiterThreshold, reportError),\n _b);\n var syntheticsContext = getSyntheticsContext();\n var ciTestContext = getCiTestContext();\n lifeCycle.subscribe(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, function (_a) {\n var startTime = _a.startTime, rawRumEvent = _a.rawRumEvent, domainContext = _a.domainContext, savedCommonContext = _a.savedCommonContext, customerContext = _a.customerContext;\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var commonContext = savedCommonContext || buildCommonContext();\n var actionId = actionContexts.findActionId(startTime);\n var rumContext = {\n _dd: {\n format_version: 2,\n drift: currentDrift(),\n session: {\n plan: session.plan,\n },\n configuration: {\n session_sample_rate: round(configuration.sessionSampleRate, 3),\n session_replay_sample_rate: round(configuration.sessionReplaySampleRate, 3),\n },\n browser_sdk_version: canUseEventBridge() ? \"4.50.1\" : undefined,\n },\n application: {\n id: configuration.applicationId,\n },\n date: timeStampNow(),\n service: viewContext.service || configuration.service,\n version: viewContext.version || configuration.version,\n source: 'browser',\n session: {\n id: session.id,\n type: syntheticsContext ? \"synthetics\" /* SessionType.SYNTHETICS */ : ciTestContext ? \"ci_test\" /* SessionType.CI_TEST */ : \"user\" /* SessionType.USER */,\n },\n view: {\n id: viewContext.id,\n name: viewContext.name,\n url: urlContext.url,\n referrer: urlContext.referrer,\n },\n action: needToAssembleWithAction(rawRumEvent) && actionId ? { id: actionId } : undefined,\n synthetics: syntheticsContext,\n ci_test: ciTestContext,\n display: displayContext.get(),\n };\n var serverRumEvent = combine(rumContext, rawRumEvent);\n serverRumEvent.context = combine(commonContext.context, customerContext);\n if (!('has_replay' in serverRumEvent.session)) {\n ;\n serverRumEvent.session.has_replay = commonContext.hasReplay;\n }\n if (!isEmptyObject(commonContext.user)) {\n ;\n serverRumEvent.usr = commonContext.user;\n }\n if (shouldSend(serverRumEvent, configuration.beforeSend, domainContext, eventRateLimiters)) {\n if (isEmptyObject(serverRumEvent.context)) {\n delete serverRumEvent.context;\n }\n lifeCycle.notify(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, serverRumEvent);\n }\n }\n });\n}\nfunction shouldSend(event, beforeSend, domainContext, eventRateLimiters) {\n var _a;\n if (beforeSend) {\n var result = limitModification(event, modifiableFieldPathsByEvent[event.type], function (event) {\n return beforeSend(event, domainContext);\n });\n if (result === false && event.type !== \"view\" /* RumEventType.VIEW */) {\n return false;\n }\n if (result === false) {\n display.warn(\"Can't dismiss view events using beforeSend!\");\n }\n }\n var rateLimitReached = (_a = eventRateLimiters[event.type]) === null || _a === void 0 ? void 0 : _a.isLimitReached();\n return !rateLimitReached;\n}\nfunction needToAssembleWithAction(event) {\n return [\"error\" /* RumEventType.ERROR */, \"resource\" /* RumEventType.RESOURCE */, \"long_task\" /* RumEventType.LONG_TASK */].indexOf(event.type) !== -1;\n}\n//# sourceMappingURL=assembly.js.map","/**\n * Internal context keep returning v1 format\n * to not break compatibility with logs data format\n */\nexport function startInternalContext(applicationId, sessionManager, viewContexts, actionContexts, urlContexts) {\n return {\n get: function (startTime) {\n var viewContext = viewContexts.findView(startTime);\n var urlContext = urlContexts.findUrl(startTime);\n var session = sessionManager.findTrackedSession(startTime);\n if (session && viewContext && urlContext) {\n var actionId = actionContexts.findActionId(startTime);\n return {\n application_id: applicationId,\n session_id: session.id,\n user_action: actionId ? { id: actionId } : undefined,\n view: { id: viewContext.id, name: viewContext.name, referrer: urlContext.referrer, url: urlContext.url },\n };\n }\n },\n };\n}\n//# sourceMappingURL=internalContext.js.map","var AbstractLifeCycle = /** @class */ (function () {\n function AbstractLifeCycle() {\n this.callbacks = {};\n }\n AbstractLifeCycle.prototype.notify = function (eventType, data) {\n var eventCallbacks = this.callbacks[eventType];\n if (eventCallbacks) {\n eventCallbacks.forEach(function (callback) { return callback(data); });\n }\n };\n AbstractLifeCycle.prototype.subscribe = function (eventType, callback) {\n var _this = this;\n if (!this.callbacks[eventType]) {\n this.callbacks[eventType] = [];\n }\n this.callbacks[eventType].push(callback);\n return {\n unsubscribe: function () {\n _this.callbacks[eventType] = _this.callbacks[eventType].filter(function (other) { return callback !== other; });\n },\n };\n };\n return AbstractLifeCycle;\n}());\nexport { AbstractLifeCycle };\n//# sourceMappingURL=abstractLifeCycle.js.map","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport var LifeCycle = (AbstractLifeCycle);\n//# sourceMappingURL=lifeCycle.js.map","import { setInterval, clearInterval } from './timer';\nimport { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils';\nvar END_OF_TIMES = Infinity;\nexport var CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE;\n/**\n * Store and keep track of values spans. This whole class assumes that values are added in\n * chronological order (i.e. all entries have an increasing start time).\n */\nvar ValueHistory = /** @class */ (function () {\n function ValueHistory(expireDelay, maxEntries) {\n var _this = this;\n this.expireDelay = expireDelay;\n this.maxEntries = maxEntries;\n this.entries = [];\n this.clearOldValuesInterval = setInterval(function () { return _this.clearOldValues(); }, CLEAR_OLD_VALUES_INTERVAL);\n }\n /**\n * Add a value to the history associated with a start time. Returns a reference to this newly\n * added entry that can be removed or closed.\n */\n ValueHistory.prototype.add = function (value, startTime) {\n var _this = this;\n var entry = {\n value: value,\n startTime: startTime,\n endTime: END_OF_TIMES,\n remove: function () {\n var index = _this.entries.indexOf(entry);\n if (index >= 0) {\n _this.entries.splice(index, 1);\n }\n },\n close: function (endTime) {\n entry.endTime = endTime;\n },\n };\n if (this.maxEntries && this.entries.length >= this.maxEntries) {\n this.entries.pop();\n }\n this.entries.unshift(entry);\n return entry;\n };\n /**\n * Return the latest value that was active during `startTime`, or the currently active value\n * if no `startTime` is provided. This method assumes that entries are not overlapping.\n */\n ValueHistory.prototype.find = function (startTime) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n for (var _i = 0, _a = this.entries; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.startTime <= startTime) {\n if (startTime <= entry.endTime) {\n return entry.value;\n }\n break;\n }\n }\n };\n /**\n * Helper function to close the currently active value, if any. This method assumes that entries\n * are not overlapping.\n */\n ValueHistory.prototype.closeActive = function (endTime) {\n var latestEntry = this.entries[0];\n if (latestEntry && latestEntry.endTime === END_OF_TIMES) {\n latestEntry.close(endTime);\n }\n };\n /**\n * Return all values with an active period overlapping with the duration,\n * or all values that were active during `startTime` if no duration is provided,\n * or all currently active values if no `startTime` is provided.\n */\n ValueHistory.prototype.findAll = function (startTime, duration) {\n if (startTime === void 0) { startTime = END_OF_TIMES; }\n if (duration === void 0) { duration = 0; }\n var endTime = addDuration(startTime, duration);\n return this.entries\n .filter(function (entry) { return entry.startTime <= endTime && startTime <= entry.endTime; })\n .map(function (entry) { return entry.value; });\n };\n /**\n * Remove all entries from this collection.\n */\n ValueHistory.prototype.reset = function () {\n this.entries = [];\n };\n /**\n * Stop internal garbage collection of past entries.\n */\n ValueHistory.prototype.stop = function () {\n clearInterval(this.clearOldValuesInterval);\n };\n ValueHistory.prototype.clearOldValues = function () {\n var oldTimeThreshold = relativeNow() - this.expireDelay;\n while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {\n this.entries.pop();\n }\n };\n return ValueHistory;\n}());\nexport { ValueHistory };\n//# sourceMappingURL=valueHistory.js.map","import { SESSION_TIME_OUT_DELAY, ValueHistory } from '@datadog/browser-core';\nexport var VIEW_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startViewContexts(lifeCycle) {\n var viewContextHistory = new ValueHistory(VIEW_CONTEXT_TIME_OUT_DELAY);\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (view) {\n viewContextHistory.add(buildViewContext(view), view.startClocks.relative);\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n viewContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n viewContextHistory.reset();\n });\n function buildViewContext(view) {\n return {\n service: view.service,\n version: view.version,\n id: view.id,\n name: view.name,\n startClocks: view.startClocks,\n };\n }\n return {\n findView: function (startTime) { return viewContextHistory.find(startTime); },\n stop: function () {\n viewContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=viewContexts.js.map","import { setTimeout } from './timer';\nimport { callMonitored } from './monitor';\nimport { noop } from './utils/functionUtils';\nexport function instrumentMethod(object, method, instrumentationFactory) {\n var original = object[method];\n var instrumentation = instrumentationFactory(original);\n var instrumentationWrapper = function () {\n if (typeof instrumentation !== 'function') {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return instrumentation.apply(this, arguments);\n };\n object[method] = instrumentationWrapper;\n return {\n stop: function () {\n if (object[method] === instrumentationWrapper) {\n object[method] = original;\n }\n else {\n instrumentation = original;\n }\n },\n };\n}\nexport function instrumentMethodAndCallOriginal(object, method, _a) {\n var before = _a.before, after = _a.after;\n return instrumentMethod(object, method, function (original) {\n return function () {\n var args = arguments;\n var result;\n if (before) {\n callMonitored(before, this, args);\n }\n if (typeof original === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n result = original.apply(this, args);\n }\n if (after) {\n callMonitored(after, this, args);\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return result;\n };\n });\n}\nexport function instrumentSetter(object, property, after) {\n var originalDescriptor = Object.getOwnPropertyDescriptor(object, property);\n if (!originalDescriptor || !originalDescriptor.set || !originalDescriptor.configurable) {\n return { stop: noop };\n }\n var instrumentation = function (thisObject, value) {\n // put hooked setter into event loop to avoid of set latency\n setTimeout(function () {\n after(thisObject, value);\n }, 0);\n };\n var instrumentationWrapper = function (value) {\n originalDescriptor.set.call(this, value);\n instrumentation(this, value);\n };\n Object.defineProperty(object, property, {\n set: instrumentationWrapper,\n });\n return {\n stop: function () {\n var _a;\n if (((_a = Object.getOwnPropertyDescriptor(object, property)) === null || _a === void 0 ? void 0 : _a.set) === instrumentationWrapper) {\n Object.defineProperty(object, property, originalDescriptor);\n }\n else {\n instrumentation = noop;\n }\n },\n };\n}\n//# sourceMappingURL=instrumentMethod.js.map","import { instrumentMethodAndCallOriginal } from '../tools/instrumentMethod';\nimport { Observable } from '../tools/observable';\nimport { elapsed, relativeNow, clocksNow, timeStampNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nimport { shallowClone } from '../tools/utils/objectUtils';\nimport { addEventListener } from './addEventListener';\nvar xhrObservable;\nvar xhrContexts = new WeakMap();\nexport function initXhrObservable(configuration) {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable(configuration);\n }\n return xhrObservable;\n}\nfunction createXhrObservable(configuration) {\n var observable = new Observable(function () {\n var stopInstrumentingStart = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {\n before: openXhr,\n }).stop;\n var stopInstrumentingSend = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'send', {\n before: function () {\n sendXhr.call(this, configuration, observable);\n },\n }).stop;\n var stopInstrumentingAbort = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'abort', {\n before: abortXhr,\n }).stop;\n return function () {\n stopInstrumentingStart();\n stopInstrumentingSend();\n stopInstrumentingAbort();\n };\n });\n return observable;\n}\nfunction openXhr(method, url) {\n xhrContexts.set(this, {\n state: 'open',\n method: method,\n url: normalizeUrl(String(url)),\n });\n}\nfunction sendXhr(configuration, observable) {\n var _this = this;\n var context = xhrContexts.get(this);\n if (!context) {\n return;\n }\n var startContext = context;\n startContext.state = 'start';\n startContext.startTime = relativeNow();\n startContext.startClocks = clocksNow();\n startContext.isAborted = false;\n startContext.xhr = this;\n var hasBeenReported = false;\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(this, 'onreadystatechange', {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd();\n }\n },\n }).stop;\n var onEnd = function () {\n unsubscribeLoadEndListener();\n stopInstrumentingOnReadyStateChange();\n if (hasBeenReported) {\n return;\n }\n hasBeenReported = true;\n var completeContext = context;\n completeContext.state = 'complete';\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());\n completeContext.status = _this.status;\n observable.notify(shallowClone(completeContext));\n };\n var unsubscribeLoadEndListener = addEventListener(configuration, this, 'loadend', onEnd).stop;\n observable.notify(startContext);\n}\nfunction abortXhr() {\n var context = xhrContexts.get(this);\n if (context) {\n context.isAborted = true;\n }\n}\n//# sourceMappingURL=xhrObservable.js.map","import { instrumentMethod } from '../tools/instrumentMethod';\nimport { callMonitored, monitor } from '../tools/monitor';\nimport { Observable } from '../tools/observable';\nimport { clocksNow } from '../tools/utils/timeUtils';\nimport { normalizeUrl } from '../tools/utils/urlPolyfill';\nvar fetchObservable;\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable();\n }\n return fetchObservable;\n}\nfunction createFetchObservable() {\n var observable = new Observable(function () {\n if (!window.fetch) {\n return;\n }\n var stop = instrumentMethod(window, 'fetch', function (originalFetch) {\n return function (input, init) {\n var responsePromise;\n var context = callMonitored(beforeSend, null, [observable, input, init]);\n if (context) {\n responsePromise = originalFetch.call(this, context.input, context.init);\n callMonitored(afterSend, null, [observable, responsePromise, context]);\n }\n else {\n responsePromise = originalFetch.call(this, input, init);\n }\n return responsePromise;\n };\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction beforeSend(observable, input, init) {\n var method = (init && init.method) || (input instanceof Request && input.method) || 'GET';\n var url = input instanceof Request ? input.url : normalizeUrl(String(input));\n var startClocks = clocksNow();\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url,\n };\n observable.notify(context);\n return context;\n}\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext;\n context.state = 'resolve';\n if ('stack' in response || response instanceof Error) {\n context.status = 0;\n context.isAborted = response instanceof DOMException && response.code === DOMException.ABORT_ERR;\n context.error = response;\n }\n else if ('status' in response) {\n context.response = response;\n context.responseType = response.type;\n context.status = response.status;\n context.isAborted = false;\n }\n observable.notify(context);\n };\n responsePromise.then(monitor(reportFetch), monitor(reportFetch));\n}\n//# sourceMappingURL=fetchObservable.js.map","export function isServerError(status) {\n return status >= 500;\n}\nexport function tryToClone(response) {\n try {\n return response.clone();\n }\n catch (e) {\n // clone can throw if the response has already been used by another instrumentation or is disturbed\n return;\n }\n}\n//# sourceMappingURL=responseUtils.js.map","import { monitor } from './monitor';\nimport { noop } from './utils/functionUtils';\n/**\n * Read bytes from a ReadableStream until at least `limit` bytes have been read (or until the end of\n * the stream). The callback is invoked with the at most `limit` bytes, and indicates that the limit\n * has been exceeded if more bytes were available.\n */\nexport function readBytesFromStream(stream, callback, options) {\n var reader = stream.getReader();\n var chunks = [];\n var readBytesCount = 0;\n readMore();\n function readMore() {\n reader.read().then(monitor(function (result) {\n if (result.done) {\n onDone();\n return;\n }\n if (options.collectStreamBody) {\n chunks.push(result.value);\n }\n readBytesCount += result.value.length;\n if (readBytesCount > options.bytesLimit) {\n onDone();\n }\n else {\n readMore();\n }\n }), monitor(function (error) { return callback(error); }));\n }\n function onDone() {\n reader.cancel().catch(\n // we don't care if cancel fails, but we still need to catch the error to avoid reporting it\n // as an unhandled rejection\n noop);\n var bytes;\n var limitExceeded;\n if (options.collectStreamBody) {\n var completeBuffer_1;\n if (chunks.length === 1) {\n // optimization: if the response is small enough to fit in a single buffer (provided by the browser), just\n // use it directly.\n completeBuffer_1 = chunks[0];\n }\n else {\n // else, we need to copy buffers into a larger buffer to concatenate them.\n completeBuffer_1 = new Uint8Array(readBytesCount);\n var offset_1 = 0;\n chunks.forEach(function (chunk) {\n completeBuffer_1.set(chunk, offset_1);\n offset_1 += chunk.length;\n });\n }\n bytes = completeBuffer_1.slice(0, options.bytesLimit);\n limitExceeded = completeBuffer_1.length > options.bytesLimit;\n }\n callback(undefined, bytes, limitExceeded);\n }\n}\n//# sourceMappingURL=readBytesFromStream.js.map","import { initFetchObservable, initXhrObservable, readBytesFromStream, elapsed, timeStampNow, tryToClone, } from '@datadog/browser-core';\nimport { isAllowedRequestUrl } from './resource/resourceUtils';\nimport { startTracer } from './tracing/tracer';\nvar nextRequestIndex = 1;\nexport function startRequestCollection(lifeCycle, configuration, sessionManager) {\n var tracer = startTracer(configuration, sessionManager);\n trackXhr(lifeCycle, configuration, tracer);\n trackFetch(lifeCycle, configuration, tracer);\n}\nexport function trackXhr(lifeCycle, configuration, tracer) {\n var subscription = initXhrObservable(configuration).subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceXhr(context, context.xhr);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'complete':\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: context.duration,\n method: context.method,\n requestIndex: context.requestIndex,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"xhr\" /* RequestType.XHR */,\n url: context.url,\n xhr: context.xhr,\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nexport function trackFetch(lifeCycle, configuration, tracer) {\n var subscription = initFetchObservable().subscribe(function (rawContext) {\n var context = rawContext;\n if (!isAllowedRequestUrl(configuration, context.url)) {\n return;\n }\n switch (context.state) {\n case 'start':\n tracer.traceFetch(context);\n context.requestIndex = getNextRequestIndex();\n lifeCycle.notify(5 /* LifeCycleEventType.REQUEST_STARTED */, {\n requestIndex: context.requestIndex,\n url: context.url,\n });\n break;\n case 'resolve':\n waitForResponseToComplete(context, function (duration) {\n tracer.clearTracingIfNeeded(context);\n lifeCycle.notify(6 /* LifeCycleEventType.REQUEST_COMPLETED */, {\n duration: duration,\n method: context.method,\n requestIndex: context.requestIndex,\n responseType: context.responseType,\n spanId: context.spanId,\n startClocks: context.startClocks,\n status: context.status,\n traceId: context.traceId,\n traceSampled: context.traceSampled,\n type: \"fetch\" /* RequestType.FETCH */,\n url: context.url,\n response: context.response,\n init: context.init,\n input: context.input,\n });\n });\n break;\n }\n });\n return { stop: function () { return subscription.unsubscribe(); } };\n}\nfunction getNextRequestIndex() {\n var result = nextRequestIndex;\n nextRequestIndex += 1;\n return result;\n}\nfunction waitForResponseToComplete(context, callback) {\n var clonedResponse = context.response && tryToClone(context.response);\n if (!clonedResponse || !clonedResponse.body) {\n // do not try to wait for the response if the clone failed, fetch error or null body\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }\n else {\n readBytesFromStream(clonedResponse.body, function () {\n callback(elapsed(context.startClocks.timeStamp, timeStampNow()));\n }, {\n bytesLimit: Number.POSITIVE_INFINITY,\n collectStreamBody: false,\n });\n }\n}\n//# sourceMappingURL=requestCollection.js.map","import { noop } from '@datadog/browser-core';\nexport function trackEventCounts(_a) {\n var lifeCycle = _a.lifeCycle, isChildEvent = _a.isChildEvent, _b = _a.onChange, callback = _b === void 0 ? noop : _b;\n var eventCounts = {\n errorCount: 0,\n longTaskCount: 0,\n resourceCount: 0,\n actionCount: 0,\n frustrationCount: 0,\n };\n var subscription = lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n var _a;\n if (event.type === 'view' || !isChildEvent(event)) {\n return;\n }\n switch (event.type) {\n case \"error\" /* RumEventType.ERROR */:\n eventCounts.errorCount += 1;\n callback();\n break;\n case \"action\" /* RumEventType.ACTION */:\n eventCounts.actionCount += 1;\n if (event.action.frustration) {\n eventCounts.frustrationCount += event.action.frustration.type.length;\n }\n callback();\n break;\n case \"long_task\" /* RumEventType.LONG_TASK */:\n eventCounts.longTaskCount += 1;\n callback();\n break;\n case \"resource\" /* RumEventType.RESOURCE */:\n if (!((_a = event._dd) === null || _a === void 0 ? void 0 : _a.discarded)) {\n eventCounts.resourceCount += 1;\n callback();\n }\n break;\n }\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackEventCounts.js.map","import { instrumentMethodAndCallOriginal, matchList, monitor, Observable, timeStampNow, setTimeout, clearTimeout, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../browser/performanceCollection';\n// Delay to wait for a page activity to validate the tracking process\nexport var PAGE_ACTIVITY_VALIDATION_DELAY = 100;\n// Delay to wait after a page activity to end the tracking process\nexport var PAGE_ACTIVITY_END_DELAY = 100;\n/**\n * Wait for the page activity end\n *\n * Detection lifecycle:\n * ```\n * Wait page activity end\n * .-------------------'--------------------.\n * v v\n * [Wait for a page activity ] [Wait for a maximum duration]\n * [timeout: VALIDATION_DELAY] [ timeout: maxDuration ]\n * / \\ |\n * v v |\n * [No page activity] [Page activity] |\n * | |,----------------------. |\n * v v | |\n * (Discard) [Wait for a page activity] | |\n * [ timeout: END_DELAY ] | |\n * / \\ | |\n * v v | |\n * [No page activity] [Page activity] | |\n * | | | |\n * | '------------' |\n * '-----------. ,--------------------'\n * v\n * (End)\n * ```\n *\n * Note: by assuming that maxDuration is greater than VALIDATION_DELAY, we are sure that if the\n * process is still alive after maxDuration, it has been validated.\n */\nexport function waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, pageActivityEndCallback, maxDuration) {\n var pageActivityObservable = createPageActivityObservable(lifeCycle, domMutationObservable, configuration);\n return doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration);\n}\nexport function doWaitPageActivityEnd(pageActivityObservable, pageActivityEndCallback, maxDuration) {\n var pageActivityEndTimeoutId;\n var hasCompleted = false;\n var validationTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: false }); }), PAGE_ACTIVITY_VALIDATION_DELAY);\n var maxDurationTimeoutId = maxDuration !== undefined\n ? setTimeout(monitor(function () { return complete({ hadActivity: true, end: timeStampNow() }); }), maxDuration)\n : undefined;\n var pageActivitySubscription = pageActivityObservable.subscribe(function (_a) {\n var isBusy = _a.isBusy;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n var lastChangeTime = timeStampNow();\n if (!isBusy) {\n pageActivityEndTimeoutId = setTimeout(monitor(function () { return complete({ hadActivity: true, end: lastChangeTime }); }), PAGE_ACTIVITY_END_DELAY);\n }\n });\n var stop = function () {\n hasCompleted = true;\n clearTimeout(validationTimeoutId);\n clearTimeout(pageActivityEndTimeoutId);\n clearTimeout(maxDurationTimeoutId);\n pageActivitySubscription.unsubscribe();\n };\n function complete(event) {\n if (hasCompleted) {\n return;\n }\n stop();\n pageActivityEndCallback(event);\n }\n return { stop: stop };\n}\nexport function createPageActivityObservable(lifeCycle, domMutationObservable, configuration) {\n var observable = new Observable(function () {\n var subscriptions = [];\n var firstRequestIndex;\n var pendingRequestsCount = 0;\n subscriptions.push(domMutationObservable.subscribe(notifyPageActivity), lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n if (entries.some(function (entry) { return entry.entryType === RumPerformanceEntryType.RESOURCE && !isExcludedUrl(configuration, entry.name); })) {\n notifyPageActivity();\n }\n }), lifeCycle.subscribe(5 /* LifeCycleEventType.REQUEST_STARTED */, function (startEvent) {\n if (isExcludedUrl(configuration, startEvent.url)) {\n return;\n }\n if (firstRequestIndex === undefined) {\n firstRequestIndex = startEvent.requestIndex;\n }\n pendingRequestsCount += 1;\n notifyPageActivity();\n }), lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n if (isExcludedUrl(configuration, request.url) ||\n firstRequestIndex === undefined ||\n // If the request started before the tracking start, ignore it\n request.requestIndex < firstRequestIndex) {\n return;\n }\n pendingRequestsCount -= 1;\n notifyPageActivity();\n }));\n var stopTrackingWindowOpen = trackWindowOpen(notifyPageActivity).stop;\n return function () {\n stopTrackingWindowOpen();\n subscriptions.forEach(function (s) { return s.unsubscribe(); });\n };\n function notifyPageActivity() {\n observable.notify({ isBusy: pendingRequestsCount > 0 });\n }\n });\n return observable;\n}\nfunction isExcludedUrl(configuration, requestUrl) {\n return matchList(configuration.excludedActivityUrls, requestUrl);\n}\nfunction trackWindowOpen(callback) {\n return instrumentMethodAndCallOriginal(window, 'open', { before: callback });\n}\n//# sourceMappingURL=waitPageActivityEnd.js.map","import { safeTruncate, isIE, find } from '@datadog/browser-core';\n/**\n * Get the action name from the attribute 'data-dd-action-name' on the element or any of its parent.\n * It can also be retrieved from a user defined attribute.\n */\nexport var DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE = 'data-dd-action-name';\nexport function getActionNameFromElement(element, userProgrammaticAttribute) {\n // Proceed to get the action name in two steps:\n // * first, get the name programmatically, explicitly defined by the user.\n // * then, use strategies that are known to return good results. Those strategies will be used on\n // the element and a few parents, but it's likely that they won't succeed at all.\n // * if no name is found this way, use strategies returning less accurate names as a fallback.\n // Those are much likely to succeed.\n return (getActionNameFromElementProgrammatically(element, DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE) ||\n (userProgrammaticAttribute && getActionNameFromElementProgrammatically(element, userProgrammaticAttribute)) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, priorityStrategies) ||\n getActionNameFromElementForStrategies(element, userProgrammaticAttribute, fallbackStrategies) ||\n '');\n}\nfunction getActionNameFromElementProgrammatically(targetElement, programmaticAttribute) {\n var elementWithAttribute;\n // We don't use getActionNameFromElementForStrategies here, because we want to consider all parents,\n // without limit. It is up to the user to declare a relevant naming strategy.\n // If available, use element.closest() to match get the attribute from the element or any of its\n // parent. Else fallback to a more traditional implementation.\n if (supportsElementClosest()) {\n elementWithAttribute = targetElement.closest(\"[\".concat(programmaticAttribute, \"]\"));\n }\n else {\n var element = targetElement;\n while (element) {\n if (element.hasAttribute(programmaticAttribute)) {\n elementWithAttribute = element;\n break;\n }\n element = element.parentElement;\n }\n }\n if (!elementWithAttribute) {\n return;\n }\n var name = elementWithAttribute.getAttribute(programmaticAttribute);\n return truncate(normalizeWhitespace(name.trim()));\n}\nvar priorityStrategies = [\n // associated LABEL text\n function (element, userProgrammaticAttribute) {\n // IE does not support element.labels, so we fallback to a CSS selector based on the element id\n // instead\n if (supportsLabelProperty()) {\n if ('labels' in element && element.labels && element.labels.length > 0) {\n return getTextualContent(element.labels[0], userProgrammaticAttribute);\n }\n }\n else if (element.id) {\n var label = element.ownerDocument &&\n find(element.ownerDocument.querySelectorAll('label'), function (label) { return label.htmlFor === element.id; });\n return label && getTextualContent(label, userProgrammaticAttribute);\n }\n },\n // INPUT button (and associated) value\n function (element) {\n if (element.nodeName === 'INPUT') {\n var input = element;\n var type = input.getAttribute('type');\n if (type === 'button' || type === 'submit' || type === 'reset') {\n return input.value;\n }\n }\n },\n // BUTTON, LABEL or button-like element text\n function (element, userProgrammaticAttribute) {\n if (element.nodeName === 'BUTTON' || element.nodeName === 'LABEL' || element.getAttribute('role') === 'button') {\n return getTextualContent(element, userProgrammaticAttribute);\n }\n },\n function (element) { return element.getAttribute('aria-label'); },\n // associated element text designated by the aria-labelledby attribute\n function (element, userProgrammaticAttribute) {\n var labelledByAttribute = element.getAttribute('aria-labelledby');\n if (labelledByAttribute) {\n return labelledByAttribute\n .split(/\\s+/)\n .map(function (id) { return getElementById(element, id); })\n .filter(function (label) { return Boolean(label); })\n .map(function (element) { return getTextualContent(element, userProgrammaticAttribute); })\n .join(' ');\n }\n },\n function (element) { return element.getAttribute('alt'); },\n function (element) { return element.getAttribute('name'); },\n function (element) { return element.getAttribute('title'); },\n function (element) { return element.getAttribute('placeholder'); },\n // SELECT first OPTION text\n function (element, userProgrammaticAttribute) {\n if ('options' in element && element.options.length > 0) {\n return getTextualContent(element.options[0], userProgrammaticAttribute);\n }\n },\n];\nvar fallbackStrategies = [\n function (element, userProgrammaticAttribute) { return getTextualContent(element, userProgrammaticAttribute); },\n];\n/**\n * Iterates over the target element and its parent, using the strategies list to get an action name.\n * Each strategies are applied on each element, stopping as soon as a non-empty value is returned.\n */\nvar MAX_PARENTS_TO_CONSIDER = 10;\nfunction getActionNameFromElementForStrategies(targetElement, userProgrammaticAttribute, strategies) {\n var element = targetElement;\n var recursionCounter = 0;\n while (recursionCounter <= MAX_PARENTS_TO_CONSIDER &&\n element &&\n element.nodeName !== 'BODY' &&\n element.nodeName !== 'HTML' &&\n element.nodeName !== 'HEAD') {\n for (var _i = 0, strategies_1 = strategies; _i < strategies_1.length; _i++) {\n var strategy = strategies_1[_i];\n var name_1 = strategy(element, userProgrammaticAttribute);\n if (typeof name_1 === 'string') {\n var trimmedName = name_1.trim();\n if (trimmedName) {\n return truncate(normalizeWhitespace(trimmedName));\n }\n }\n }\n // Consider a FORM as a contextual limit to get the action name. This is experimental and may\n // be reconsidered in the future.\n if (element.nodeName === 'FORM') {\n break;\n }\n element = element.parentElement;\n recursionCounter += 1;\n }\n}\nfunction normalizeWhitespace(s) {\n return s.replace(/\\s+/g, ' ');\n}\nfunction truncate(s) {\n return s.length > 100 ? \"\".concat(safeTruncate(s, 100), \" [...]\") : s;\n}\nfunction getElementById(refElement, id) {\n // Use the element ownerDocument here, because tests are executed in an iframe, so\n // document.getElementById won't work.\n return refElement.ownerDocument ? refElement.ownerDocument.getElementById(id) : null;\n}\nfunction getTextualContent(element, userProgrammaticAttribute) {\n if (element.isContentEditable) {\n return;\n }\n if ('innerText' in element) {\n var text_1 = element.innerText;\n var removeTextFromElements = function (query) {\n var list = element.querySelectorAll(query);\n for (var index = 0; index < list.length; index += 1) {\n var element_1 = list[index];\n if ('innerText' in element_1) {\n var textToReplace = element_1.innerText;\n if (textToReplace && textToReplace.trim().length > 0) {\n text_1 = text_1.replace(textToReplace, '');\n }\n }\n }\n };\n if (!supportsInnerTextScriptAndStyleRemoval()) {\n // remove the inner text of SCRIPT and STYLES from the result. This is a bit dirty, but should\n // be relatively fast and work in most cases.\n removeTextFromElements('script, style');\n }\n // remove the text of elements with programmatic attribute value\n removeTextFromElements(\"[\".concat(DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE, \"]\"));\n if (userProgrammaticAttribute) {\n removeTextFromElements(\"[\".concat(userProgrammaticAttribute, \"]\"));\n }\n return text_1;\n }\n return element.textContent;\n}\n/**\n * Returns true if element.innerText excludes the text from inline SCRIPT and STYLE element. This\n * should be the case everywhere except on Internet Explorer 10 and 11 (see [1])\n *\n * The innerText property relies on what is actually rendered to compute its output, so to check if\n * it actually excludes SCRIPT and STYLE content, a solution would be to create a style element, set\n * its content to '*', inject it in the document body, and check if the style element innerText\n * property returns '*'. Using a new `document` instance won't work as it is not rendered.\n *\n * This solution requires specific CSP rules (see [2]) to be set by the customer. We want to avoid\n * this, so instead we rely on browser detection. In case of false negative, the impact should be\n * low, since we rely on this result to remove the SCRIPT and STYLE innerText (which will be empty)\n * from a parent element innerText.\n *\n * [1]: https://web.archive.org/web/20210602165716/http://perfectionkills.com/the-poor-misunderstood-innerText/#diff-with-textContent\n * [2]: https://github.com/DataDog/browser-sdk/issues/1084\n */\nfunction supportsInnerTextScriptAndStyleRemoval() {\n return !isIE();\n}\n/**\n * Returns true if the browser supports the element.labels property. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsLabelPropertyResult;\nfunction supportsLabelProperty() {\n if (supportsLabelPropertyResult === undefined) {\n supportsLabelPropertyResult = 'labels' in HTMLInputElement.prototype;\n }\n return supportsLabelPropertyResult;\n}\n/**\n * Returns true if the browser supports the element.closest method. This should be the case\n * everywhere except on Internet Explorer.\n * Note: The result is computed lazily, because we don't want any DOM access when the SDK is\n * evaluated.\n */\nvar supportsElementClosestResult;\nfunction supportsElementClosest() {\n if (supportsElementClosestResult === undefined) {\n supportsElementClosestResult = 'closest' in HTMLElement.prototype;\n }\n return supportsElementClosestResult;\n}\n//# sourceMappingURL=getActionNameFromElement.js.map","import { cssEscape } from '@datadog/browser-core';\nimport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './action/getActionNameFromElement';\n/**\n * Stable attributes are attributes that are commonly used to identify parts of a UI (ex:\n * component). Those attribute values should not be generated randomly (hardcoded most of the time)\n * and stay the same across deploys. They are not necessarily unique across the document.\n */\nexport var STABLE_ATTRIBUTES = [\n DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE,\n // Common test attributes (list provided by google recorder)\n 'data-testid',\n 'data-test',\n 'data-qa',\n 'data-cy',\n 'data-test-id',\n 'data-qa-id',\n 'data-testing',\n // FullStory decorator attributes:\n 'data-component',\n 'data-element',\n 'data-source-file',\n];\n// Selectors to use if they target a single element on the whole document. Those selectors are\n// considered as \"stable\" and uniquely identify an element regardless of the page state. If we find\n// one, we should consider the selector \"complete\" and stop iterating over ancestors.\nvar GLOBALLY_UNIQUE_SELECTOR_GETTERS = [getStableAttributeSelector, getIDSelector];\n// Selectors to use if they target a single element among an element descendants. Those selectors\n// are more brittle than \"globally unique\" selectors and should be combined with ancestor selectors\n// to improve specificity.\nvar UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS = [\n getStableAttributeSelector,\n getClassSelector,\n getTagNameSelector,\n];\nexport function getSelectorFromElement(targetElement, actionNameAttribute) {\n var targetElementSelector = '';\n var element = targetElement;\n while (element && element.nodeName !== 'HTML') {\n var globallyUniqueSelector = findSelector(element, GLOBALLY_UNIQUE_SELECTOR_GETTERS, isSelectorUniqueGlobally, actionNameAttribute, targetElementSelector);\n if (globallyUniqueSelector) {\n return globallyUniqueSelector;\n }\n var uniqueSelectorAmongChildren = findSelector(element, UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS, isSelectorUniqueAmongSiblings, actionNameAttribute, targetElementSelector);\n targetElementSelector =\n uniqueSelectorAmongChildren || combineSelector(getPositionSelector(element), targetElementSelector);\n element = element.parentElement;\n }\n return targetElementSelector;\n}\nfunction isGeneratedValue(value) {\n // To compute the \"URL path group\", the backend replaces every URL path parts as a question mark\n // if it thinks the part is an identifier. The condition it uses is to checks whether a digit is\n // present.\n //\n // Here, we use the same strategy: if a the value contains a digit, we consider it generated. This\n // strategy might be a bit naive and fail in some cases, but there are many fallbacks to generate\n // CSS selectors so it should be fine most of the time. We might want to allow customers to\n // provide their own `isGeneratedValue` at some point.\n return /[0-9]/.test(value);\n}\nfunction getIDSelector(element) {\n if (element.id && !isGeneratedValue(element.id)) {\n return \"#\".concat(cssEscape(element.id));\n }\n}\nfunction getClassSelector(element) {\n if (element.tagName === 'BODY') {\n return;\n }\n if (element.classList.length > 0) {\n for (var i = 0; i < element.classList.length; i += 1) {\n var className = element.classList[i];\n if (isGeneratedValue(className)) {\n continue;\n }\n return \"\".concat(cssEscape(element.tagName), \".\").concat(cssEscape(className));\n }\n }\n}\nfunction getTagNameSelector(element) {\n return cssEscape(element.tagName);\n}\nfunction getStableAttributeSelector(element, actionNameAttribute) {\n if (actionNameAttribute) {\n var selector = getAttributeSelector(actionNameAttribute);\n if (selector) {\n return selector;\n }\n }\n for (var _i = 0, STABLE_ATTRIBUTES_1 = STABLE_ATTRIBUTES; _i < STABLE_ATTRIBUTES_1.length; _i++) {\n var attributeName = STABLE_ATTRIBUTES_1[_i];\n var selector = getAttributeSelector(attributeName);\n if (selector) {\n return selector;\n }\n }\n function getAttributeSelector(attributeName) {\n if (element.hasAttribute(attributeName)) {\n return \"\".concat(cssEscape(element.tagName), \"[\").concat(attributeName, \"=\\\"\").concat(cssEscape(element.getAttribute(attributeName)), \"\\\"]\");\n }\n }\n}\nfunction getPositionSelector(element) {\n var sibling = element.parentElement.firstElementChild;\n var elementIndex = 1;\n while (sibling && sibling !== element) {\n if (sibling.tagName === element.tagName) {\n elementIndex += 1;\n }\n sibling = sibling.nextElementSibling;\n }\n return \"\".concat(cssEscape(element.tagName), \":nth-of-type(\").concat(elementIndex, \")\");\n}\nfunction findSelector(element, selectorGetters, predicate, actionNameAttribute, childSelector) {\n for (var _i = 0, selectorGetters_1 = selectorGetters; _i < selectorGetters_1.length; _i++) {\n var selectorGetter = selectorGetters_1[_i];\n var elementSelector = selectorGetter(element, actionNameAttribute);\n if (!elementSelector) {\n continue;\n }\n var fullSelector = combineSelector(elementSelector, childSelector);\n if (predicate(element, fullSelector)) {\n return fullSelector;\n }\n }\n}\n/**\n * Check whether the selector is unique among the whole document.\n */\nfunction isSelectorUniqueGlobally(element, selector) {\n return element.ownerDocument.querySelectorAll(selector).length === 1;\n}\n/**\n * Check whether the selector is unique among the element siblings. In other words, it returns true\n * if \"ELEMENT_PARENT > SELECTOR\" returns a single element.\n *\n * The result will be less accurate on browsers that don't support :scope (i. e. IE): it will check\n * for any element matching the selector contained in the parent (in other words,\n * \"ELEMENT_PARENT SELECTOR\" returns a single element), regardless of whether the selector is a\n * direct descendent of the element parent. This should not impact results too much: if it\n * inaccurately returns false, we'll just fall back to another strategy.\n */\nfunction isSelectorUniqueAmongSiblings(element, selector) {\n return (element.parentElement.querySelectorAll(supportScopeSelector() ? combineSelector(':scope', selector) : selector)\n .length === 1);\n}\nfunction combineSelector(parent, child) {\n return child ? \"\".concat(parent, \">\").concat(child) : parent;\n}\nvar supportScopeSelectorCache;\nexport function supportScopeSelector() {\n if (supportScopeSelectorCache === undefined) {\n try {\n document.querySelector(':scope');\n supportScopeSelectorCache = true;\n }\n catch (_a) {\n supportScopeSelectorCache = false;\n }\n }\n return supportScopeSelectorCache;\n}\n//# sourceMappingURL=getSelectorFromElement.js.map","import { ONE_SECOND, clearTimeout, setTimeout } from '@datadog/browser-core';\nexport var MAX_DURATION_BETWEEN_CLICKS = ONE_SECOND;\nexport var MAX_DISTANCE_BETWEEN_CLICKS = 100;\nexport function createClickChain(firstClick, onFinalize) {\n var bufferedClicks = [];\n var status = 0 /* ClickChainStatus.WaitingForMoreClicks */;\n var maxDurationBetweenClicksTimeoutId;\n appendClick(firstClick);\n function appendClick(click) {\n click.stopObservable.subscribe(tryFinalize);\n bufferedClicks.push(click);\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n maxDurationBetweenClicksTimeoutId = setTimeout(dontAcceptMoreClick, MAX_DURATION_BETWEEN_CLICKS);\n }\n function tryFinalize() {\n if (status === 1 /* ClickChainStatus.WaitingForClicksToStop */ && bufferedClicks.every(function (click) { return click.isStopped(); })) {\n status = 2 /* ClickChainStatus.Finalized */;\n onFinalize(bufferedClicks);\n }\n }\n function dontAcceptMoreClick() {\n clearTimeout(maxDurationBetweenClicksTimeoutId);\n if (status === 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n status = 1 /* ClickChainStatus.WaitingForClicksToStop */;\n tryFinalize();\n }\n }\n return {\n tryAppend: function (click) {\n if (status !== 0 /* ClickChainStatus.WaitingForMoreClicks */) {\n return false;\n }\n if (bufferedClicks.length > 0 &&\n !areEventsSimilar(bufferedClicks[bufferedClicks.length - 1].event, click.event)) {\n dontAcceptMoreClick();\n return false;\n }\n appendClick(click);\n return true;\n },\n stop: function () {\n dontAcceptMoreClick();\n },\n };\n}\n/**\n * Checks whether two events are similar by comparing their target, position and timestamp\n */\nfunction areEventsSimilar(first, second) {\n return (first.target === second.target &&\n mouseEventDistance(first, second) <= MAX_DISTANCE_BETWEEN_CLICKS &&\n first.timeStamp - second.timeStamp <= MAX_DURATION_BETWEEN_CLICKS);\n}\nfunction mouseEventDistance(origin, other) {\n return Math.sqrt(Math.pow(origin.clientX - other.clientX, 2) + Math.pow(origin.clientY - other.clientY, 2));\n}\n//# sourceMappingURL=clickChain.js.map","import { addEventListener } from '@datadog/browser-core';\nexport function listenActionEvents(configuration, _a) {\n var onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp;\n var selectionEmptyAtPointerDown;\n var userActivity = {\n selection: false,\n input: false,\n };\n var clickContext;\n var listeners = [\n addEventListener(configuration, window, \"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, function (event) {\n if (isValidPointerEvent(event)) {\n selectionEmptyAtPointerDown = isSelectionEmpty();\n userActivity = {\n selection: false,\n input: false,\n };\n clickContext = onPointerDown(event);\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"selectionchange\" /* DOM_EVENT.SELECTION_CHANGE */, function () {\n if (!selectionEmptyAtPointerDown || !isSelectionEmpty()) {\n userActivity.selection = true;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"pointerup\" /* DOM_EVENT.POINTER_UP */, function (event) {\n if (isValidPointerEvent(event) && clickContext) {\n // Use a scoped variable to make sure the value is not changed by other clicks\n var localUserActivity_1 = userActivity;\n onPointerUp(clickContext, event, function () { return localUserActivity_1; });\n clickContext = undefined;\n }\n }, { capture: true }),\n addEventListener(configuration, window, \"input\" /* DOM_EVENT.INPUT */, function () {\n userActivity.input = true;\n }, { capture: true }),\n ];\n return {\n stop: function () {\n listeners.forEach(function (listener) { return listener.stop(); });\n },\n };\n}\nfunction isSelectionEmpty() {\n var selection = window.getSelection();\n return !selection || selection.isCollapsed;\n}\nfunction isValidPointerEvent(event) {\n return (event.target instanceof Element &&\n // Only consider 'primary' pointer events for now. Multi-touch support could be implemented in\n // the future.\n event.isPrimary !== false);\n}\n//# sourceMappingURL=listenActionEvents.js.map","import { elementMatches, ONE_SECOND } from '@datadog/browser-core';\nvar MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE = 3;\nexport function computeFrustration(clicks, rageClick) {\n if (isRage(clicks)) {\n rageClick.addFrustration(\"rage_click\" /* FrustrationType.RAGE_CLICK */);\n if (clicks.some(isDead)) {\n rageClick.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n if (rageClick.hasError) {\n rageClick.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n return { isRage: true };\n }\n var hasSelectionChanged = clicks.some(function (click) { return click.getUserActivity().selection; });\n clicks.forEach(function (click) {\n if (click.hasError) {\n click.addFrustration(\"error_click\" /* FrustrationType.ERROR_CLICK */);\n }\n if (isDead(click) &&\n // Avoid considering clicks part of a double-click or triple-click selections as dead clicks\n !hasSelectionChanged) {\n click.addFrustration(\"dead_click\" /* FrustrationType.DEAD_CLICK */);\n }\n });\n return { isRage: false };\n}\nexport function isRage(clicks) {\n if (clicks.some(function (click) { return click.getUserActivity().selection; })) {\n return false;\n }\n for (var i = 0; i < clicks.length - (MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1); i += 1) {\n if (clicks[i + MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE - 1].event.timeStamp - clicks[i].event.timeStamp <=\n ONE_SECOND) {\n return true;\n }\n }\n return false;\n}\nvar DEAD_CLICK_EXCLUDE_SELECTOR = \n// inputs that don't trigger a meaningful event like \"input\" when clicked, including textual\n// inputs (using a negative selector is shorter here)\n'input:not([type=\"checkbox\"]):not([type=\"radio\"]):not([type=\"button\"]):not([type=\"submit\"]):not([type=\"reset\"]):not([type=\"range\"]),' +\n 'textarea,' +\n 'select,' +\n // contenteditable and their descendants don't always trigger meaningful changes when manipulated\n '[contenteditable],' +\n '[contenteditable] *,' +\n // canvas, as there is no good way to detect activity occurring on them\n 'canvas,' +\n // links that are interactive (have an href attribute) or any of their descendants, as they can\n // open a new tab or navigate to a hash without triggering a meaningful event\n 'a[href],' +\n 'a[href] *';\nexport function isDead(click) {\n if (click.hasPageActivity || click.getUserActivity().input) {\n return false;\n }\n return !elementMatches(click.event.target, DEAD_CLICK_EXCLUDE_SELECTOR);\n}\n//# sourceMappingURL=computeFrustration.js.map","import { includes, timeStampNow, Observable, assign, getRelativeTime, ONE_MINUTE, ValueHistory, generateUUID, clocksNow, ONE_SECOND, elapsed, } from '@datadog/browser-core';\nimport { trackEventCounts } from '../trackEventCounts';\nimport { PAGE_ACTIVITY_VALIDATION_DELAY, waitPageActivityEnd } from '../waitPageActivityEnd';\nimport { getSelectorFromElement } from '../getSelectorFromElement';\nimport { createClickChain } from './clickChain';\nimport { getActionNameFromElement } from './getActionNameFromElement';\nimport { listenActionEvents } from './listenActionEvents';\nimport { computeFrustration } from './computeFrustration';\n// Maximum duration for click actions\nexport var CLICK_ACTION_MAX_DURATION = 10 * ONE_SECOND;\nexport var ACTION_CONTEXT_TIME_OUT_DELAY = 5 * ONE_MINUTE; // arbitrary\nexport function trackClickActions(lifeCycle, domMutationObservable, configuration) {\n var history = new ValueHistory(ACTION_CONTEXT_TIME_OUT_DELAY);\n var stopObservable = new Observable();\n var currentClickChain;\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n history.reset();\n });\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, stopClickChain);\n var stopActionEventsListener = listenActionEvents(configuration, {\n onPointerDown: function (pointerDownEvent) {\n return processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent);\n },\n onPointerUp: function (_a, startEvent, getUserActivity) {\n var clickActionBase = _a.clickActionBase, hadActivityOnPointerDown = _a.hadActivityOnPointerDown;\n return startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown);\n },\n }).stop;\n var actionContexts = {\n findActionId: function (startTime) {\n return configuration.trackFrustrations ? history.findAll(startTime) : history.find(startTime);\n },\n };\n return {\n stop: function () {\n stopClickChain();\n stopObservable.notify();\n stopActionEventsListener();\n },\n actionContexts: actionContexts,\n };\n function appendClickToClickChain(click) {\n if (!currentClickChain || !currentClickChain.tryAppend(click)) {\n var rageClick_1 = click.clone();\n currentClickChain = createClickChain(click, function (clicks) {\n finalizeClicks(clicks, rageClick_1);\n });\n }\n }\n function stopClickChain() {\n if (currentClickChain) {\n currentClickChain.stop();\n }\n }\n}\nfunction processPointerDown(configuration, lifeCycle, domMutationObservable, history, pointerDownEvent) {\n if (!configuration.trackFrustrations && history.find()) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any new\n // action if another one is already occurring.\n return;\n }\n var clickActionBase = computeClickActionBase(pointerDownEvent, configuration.actionNameAttribute);\n if (!configuration.trackFrustrations && !clickActionBase.name) {\n // TODO: remove this in a future major version. To keep retrocompatibility, ignore any action\n // with a blank name\n return;\n }\n var hadActivityOnPointerDown = false;\n waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n hadActivityOnPointerDown = pageActivityEndEvent.hadActivity;\n }, \n // We don't care about the activity duration, we just want to know whether an activity did happen\n // within the \"validation delay\" or not. Limit the duration so the callback is called sooner.\n PAGE_ACTIVITY_VALIDATION_DELAY);\n return { clickActionBase: clickActionBase, hadActivityOnPointerDown: function () { return hadActivityOnPointerDown; } };\n}\nfunction startClickAction(configuration, lifeCycle, domMutationObservable, history, stopObservable, appendClickToClickChain, clickActionBase, startEvent, getUserActivity, hadActivityOnPointerDown) {\n var click = newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent);\n if (configuration.trackFrustrations) {\n appendClickToClickChain(click);\n }\n var stopWaitPageActivityEnd = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (pageActivityEndEvent) {\n if (pageActivityEndEvent.hadActivity && pageActivityEndEvent.end < click.startClocks.timeStamp) {\n // If the clock is looking weird, just discard the click\n click.discard();\n }\n else {\n if (pageActivityEndEvent.hadActivity) {\n click.stop(pageActivityEndEvent.end);\n }\n else if (hadActivityOnPointerDown()) {\n click.stop(\n // using the click start as activity end, so the click will have some activity but its\n // duration will be 0 (as the activity started before the click start)\n click.startClocks.timeStamp);\n }\n else {\n click.stop();\n }\n // Validate or discard the click only if we don't track frustrations. It'll be done when\n // the click chain is finalized.\n if (!configuration.trackFrustrations) {\n if (!pageActivityEndEvent.hadActivity) {\n // If we are not tracking frustrations, we should discard the click to keep backward\n // compatibility.\n click.discard();\n }\n else {\n click.validate();\n }\n }\n }\n }, CLICK_ACTION_MAX_DURATION).stop;\n var viewEndedSubscription = lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n click.stop(endClocks.timeStamp);\n });\n var stopSubscription = stopObservable.subscribe(function () {\n click.stop();\n });\n click.stopObservable.subscribe(function () {\n viewEndedSubscription.unsubscribe();\n stopWaitPageActivityEnd();\n stopSubscription.unsubscribe();\n });\n}\nfunction computeClickActionBase(event, actionNameAttribute) {\n var rect = event.target.getBoundingClientRect();\n return {\n type: \"click\" /* ActionType.CLICK */,\n target: {\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n selector: getSelectorFromElement(event.target, actionNameAttribute),\n },\n position: {\n // Use clientX and Y because for SVG element offsetX and Y are relatives to the element\n x: Math.round(event.clientX - rect.left),\n y: Math.round(event.clientY - rect.top),\n },\n name: getActionNameFromElement(event.target, actionNameAttribute),\n };\n}\nfunction newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent) {\n var id = generateUUID();\n var startClocks = clocksNow();\n var historyEntry = history.add(id, startClocks.relative);\n var eventCountsSubscription = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) {\n return event.action !== undefined &&\n (Array.isArray(event.action.id) ? includes(event.action.id, id) : event.action.id === id);\n },\n });\n var status = 0 /* ClickStatus.ONGOING */;\n var activityEndTime;\n var frustrationTypes = [];\n var stopObservable = new Observable();\n function stop(newActivityEndTime) {\n if (status !== 0 /* ClickStatus.ONGOING */) {\n return;\n }\n activityEndTime = newActivityEndTime;\n status = 1 /* ClickStatus.STOPPED */;\n if (activityEndTime) {\n historyEntry.close(getRelativeTime(activityEndTime));\n }\n else {\n historyEntry.remove();\n }\n eventCountsSubscription.stop();\n stopObservable.notify();\n }\n return {\n event: startEvent,\n stop: stop,\n stopObservable: stopObservable,\n get hasError() {\n return eventCountsSubscription.eventCounts.errorCount > 0;\n },\n get hasPageActivity() {\n return activityEndTime !== undefined;\n },\n getUserActivity: getUserActivity,\n addFrustration: function (frustrationType) {\n frustrationTypes.push(frustrationType);\n },\n startClocks: startClocks,\n isStopped: function () { return status === 1 /* ClickStatus.STOPPED */ || status === 2 /* ClickStatus.FINALIZED */; },\n clone: function () { return newClick(lifeCycle, history, getUserActivity, clickActionBase, startEvent); },\n validate: function (domEvents) {\n stop();\n if (status !== 1 /* ClickStatus.STOPPED */) {\n return;\n }\n var _a = eventCountsSubscription.eventCounts, resourceCount = _a.resourceCount, errorCount = _a.errorCount, longTaskCount = _a.longTaskCount;\n var clickAction = assign({\n type: \"click\" /* ActionType.CLICK */,\n duration: activityEndTime && elapsed(startClocks.timeStamp, activityEndTime),\n startClocks: startClocks,\n id: id,\n frustrationTypes: frustrationTypes,\n counts: {\n resourceCount: resourceCount,\n errorCount: errorCount,\n longTaskCount: longTaskCount,\n },\n events: domEvents !== null && domEvents !== void 0 ? domEvents : [startEvent],\n event: startEvent,\n }, clickActionBase);\n lifeCycle.notify(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, clickAction);\n status = 2 /* ClickStatus.FINALIZED */;\n },\n discard: function () {\n stop();\n status = 2 /* ClickStatus.FINALIZED */;\n },\n };\n}\nexport function finalizeClicks(clicks, rageClick) {\n var isRage = computeFrustration(clicks, rageClick).isRage;\n if (isRage) {\n clicks.forEach(function (click) { return click.discard(); });\n rageClick.stop(timeStampNow());\n rageClick.validate(clicks.map(function (click) { return click.event; }));\n }\n else {\n rageClick.discard();\n clicks.forEach(function (click) { return click.validate(); });\n }\n}\n//# sourceMappingURL=trackClickActions.js.map","import { noop, assign, combine, toServerDuration, generateUUID } from '@datadog/browser-core';\nimport { trackClickActions } from './trackClickActions';\nexport function startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory) {\n lifeCycle.subscribe(1 /* LifeCycleEventType.AUTO_ACTION_COMPLETED */, function (action) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processAction(action, pageStateHistory));\n });\n var actionContexts = { findActionId: noop };\n if (configuration.trackUserInteractions) {\n actionContexts = trackClickActions(lifeCycle, domMutationObservable, configuration).actionContexts;\n }\n return {\n addAction: function (action, savedCommonContext) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n savedCommonContext: savedCommonContext,\n }, processAction(action, pageStateHistory)));\n },\n actionContexts: actionContexts,\n };\n}\nfunction processAction(action, pageStateHistory) {\n var autoActionProperties = isAutoAction(action)\n ? {\n action: {\n id: action.id,\n loading_time: toServerDuration(action.duration),\n frustration: {\n type: action.frustrationTypes,\n },\n error: {\n count: action.counts.errorCount,\n },\n long_task: {\n count: action.counts.longTaskCount,\n },\n resource: {\n count: action.counts.resourceCount,\n },\n },\n _dd: {\n action: {\n target: action.target,\n position: action.position,\n },\n },\n }\n : undefined;\n var customerContext = !isAutoAction(action) ? action.context : undefined;\n var actionEvent = combine({\n action: {\n id: generateUUID(),\n target: {\n name: action.name,\n },\n type: action.type,\n },\n date: action.startClocks.timeStamp,\n type: \"action\" /* RumEventType.ACTION */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(action.startClocks.relative) },\n }, autoActionProperties);\n return {\n customerContext: customerContext,\n rawRumEvent: actionEvent,\n startTime: action.startClocks.relative,\n domainContext: isAutoAction(action) ? { event: action.event, events: action.events } : {},\n };\n}\nfunction isAutoAction(action) {\n return action.type !== \"custom\" /* ActionType.CUSTOM */;\n}\n//# sourceMappingURL=actionCollection.js.map","import { instrumentMethodAndCallOriginal } from '../../tools/instrumentMethod';\nimport { computeStackTrace } from './computeStackTrace';\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\\s\\S]*)$/;\n/**\n * Cross-browser collection of unhandled errors\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Tries to catch all unhandled errors and report them to the\n * callback.\n *\n * Callbacks receive a StackTrace object as described in the\n * computeStackTrace docs.\n *\n * @memberof TraceKit\n * @namespace\n */\nexport function startUnhandledErrorCollection(callback) {\n var stopInstrumentingOnError = instrumentOnError(callback).stop;\n var stopInstrumentingOnUnhandledRejection = instrumentUnhandledRejection(callback).stop;\n return {\n stop: function () {\n stopInstrumentingOnError();\n stopInstrumentingOnUnhandledRejection();\n },\n };\n}\n/**\n * Install a global onerror handler\n */\nfunction instrumentOnError(callback) {\n return instrumentMethodAndCallOriginal(window, 'onerror', {\n before: function (messageObj, url, line, column, errorObj) {\n var stackTrace;\n if (errorObj instanceof Error) {\n stackTrace = computeStackTrace(errorObj);\n }\n else {\n var stack = [{ url: url, column: column, line: line }];\n var _a = tryToParseMessage(messageObj), name_1 = _a.name, message = _a.message;\n stackTrace = {\n name: name_1,\n message: message,\n stack: stack,\n };\n }\n callback(stackTrace, errorObj !== null && errorObj !== void 0 ? errorObj : messageObj);\n },\n });\n}\nfunction tryToParseMessage(messageObj) {\n var _a;\n var name;\n var message;\n if ({}.toString.call(messageObj) === '[object String]') {\n ;\n _a = ERROR_TYPES_RE.exec(messageObj), name = _a[1], message = _a[2];\n }\n return { name: name, message: message };\n}\n/**\n * Install a global onunhandledrejection handler\n */\nfunction instrumentUnhandledRejection(callback) {\n return instrumentMethodAndCallOriginal(window, 'onunhandledrejection', {\n before: function (e) {\n var reason = e.reason || 'Empty reason';\n var stack = computeStackTrace(reason);\n callback(stack, reason);\n },\n });\n}\n//# sourceMappingURL=tracekit.js.map","import { clocksNow } from '../../tools/utils/timeUtils';\nimport { startUnhandledErrorCollection } from '../tracekit';\nimport { computeRawError } from './error';\nimport { ErrorSource } from './error.types';\nexport function trackRuntimeError(errorObservable) {\n return startUnhandledErrorCollection(function (stackTrace, originalError) {\n errorObservable.notify(computeRawError({\n stackTrace: stackTrace,\n originalError: originalError,\n startClocks: clocksNow(),\n nonErrorPrefix: \"Uncaught\" /* NonErrorPrefix.UNCAUGHT */,\n source: ErrorSource.SOURCE,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n }));\n });\n}\n//# sourceMappingURL=trackRuntimeError.js.map","import { computeStackTrace } from '../tracekit';\nimport { createHandlingStack, formatErrorMessage, toStackTraceString, tryToGetFingerprint } from '../error/error';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { ConsoleApiName, globalConsole } from '../../tools/display';\nimport { callMonitored } from '../../tools/monitor';\nimport { sanitize } from '../../tools/serialisation/sanitize';\nimport { find } from '../../tools/utils/polyfills';\nimport { jsonStringify } from '../../tools/serialisation/jsonStringify';\nvar consoleObservablesByApi = {};\nexport function initConsoleObservable(apis) {\n var consoleObservables = apis.map(function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api);\n }\n return consoleObservablesByApi[api];\n });\n return mergeObservables.apply(void 0, consoleObservables);\n}\nexport function resetConsoleObservable() {\n consoleObservablesByApi = {};\n}\nfunction createConsoleObservable(api) {\n var observable = new Observable(function () {\n var originalConsoleApi = globalConsole[api];\n globalConsole[api] = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n originalConsoleApi.apply(console, params);\n var handlingStack = createHandlingStack();\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack));\n });\n };\n return function () {\n globalConsole[api] = originalConsoleApi;\n };\n });\n return observable;\n}\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = params.map(function (param) { return formatConsoleParameters(param); }).join(' ');\n var stack;\n var fingerprint;\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) { return param instanceof Error; });\n stack = firstErrorParam ? toStackTraceString(computeStackTrace(firstErrorParam)) : undefined;\n fingerprint = tryToGetFingerprint(firstErrorParam);\n message = \"console error: \".concat(message);\n }\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack,\n fingerprint: fingerprint,\n };\n}\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return sanitize(param);\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param));\n }\n return jsonStringify(sanitize(param), undefined, 2);\n}\n//# sourceMappingURL=consoleObservable.js.map","import { clocksNow, initConsoleObservable, ErrorSource, ConsoleApiName } from '@datadog/browser-core';\nexport function trackConsoleError(errorObservable) {\n var subscription = initConsoleObservable([ConsoleApiName.error]).subscribe(function (consoleError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: consoleError.message,\n stack: consoleError.stack,\n fingerprint: consoleError.fingerprint,\n source: ErrorSource.CONSOLE,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n handlingStack: consoleError.handlingStack,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackConsoleError.js.map","import { toStackTraceString } from '../error/error';\nimport { monitor } from '../../tools/monitor';\nimport { mergeObservables, Observable } from '../../tools/observable';\nimport { addEventListener } from '../../browser/addEventListener';\nimport { includes } from '../../tools/utils/polyfills';\nimport { safeTruncate } from '../../tools/utils/stringUtils';\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation',\n};\nexport function initReportObservable(configuration, apis) {\n var observables = [];\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration));\n }\n var reportTypes = apis.filter(function (api) { return api !== RawReportType.cspViolation; });\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes));\n }\n return mergeObservables.apply(void 0, observables);\n}\nfunction createReportObservable(reportTypes) {\n var observable = new Observable(function () {\n if (!window.ReportingObserver) {\n return;\n }\n var handleReports = monitor(function (reports, _) {\n return reports.forEach(function (report) {\n observable.notify(buildRawReportFromReport(report));\n });\n });\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true,\n });\n observer.observe();\n return function () {\n observer.disconnect();\n };\n });\n return observable;\n}\nfunction createCspViolationReportObservable(configuration) {\n var observable = new Observable(function () {\n var stop = addEventListener(configuration, document, \"securitypolicyviolation\" /* DOM_EVENT.SECURITY_POLICY_VIOLATION */, function (event) {\n observable.notify(buildRawReportFromCspViolation(event));\n }).stop;\n return stop;\n });\n return observable;\n}\nfunction buildRawReportFromReport(_a) {\n var type = _a.type, body = _a.body;\n return {\n type: type,\n subtype: body.id,\n message: \"\".concat(type, \": \").concat(body.message),\n stack: buildStack(body.id, body.message, body.sourceFile, body.lineNumber, body.columnNumber),\n };\n}\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation;\n var message = \"'\".concat(event.blockedURI, \"' blocked by '\").concat(event.effectiveDirective, \"' directive\");\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: \"\".concat(type, \": \").concat(message),\n stack: buildStack(event.effectiveDirective, event.originalPolicy\n ? \"\".concat(message, \" of the policy \\\"\").concat(safeTruncate(event.originalPolicy, 100, '...'), \"\\\"\")\n : 'no policy', event.sourceFile, event.lineNumber, event.columnNumber),\n };\n}\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return sourceFile\n ? toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber !== null && lineNumber !== void 0 ? lineNumber : undefined,\n column: columnNumber !== null && columnNumber !== void 0 ? columnNumber : undefined,\n },\n ],\n })\n : undefined;\n}\n//# sourceMappingURL=reportObservable.js.map","import { clocksNow, ErrorSource, initReportObservable, RawReportType } from '@datadog/browser-core';\nexport function trackReportError(configuration, errorObservable) {\n var subscription = initReportObservable(configuration, [\n RawReportType.cspViolation,\n RawReportType.intervention,\n ]).subscribe(function (reportError) {\n return errorObservable.notify({\n startClocks: clocksNow(),\n message: reportError.message,\n stack: reportError.stack,\n type: reportError.subtype,\n source: ErrorSource.REPORT,\n handling: \"unhandled\" /* ErrorHandling.UNHANDLED */,\n });\n });\n return {\n stop: function () {\n subscription.unsubscribe();\n },\n };\n}\n//# sourceMappingURL=trackReportError.js.map","import { isEmptyObject, assign, ErrorSource, generateUUID, computeRawError, computeStackTrace, Observable, trackRuntimeError, } from '@datadog/browser-core';\nimport { trackConsoleError } from './trackConsoleError';\nimport { trackReportError } from './trackReportError';\nexport function startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts) {\n var errorObservable = new Observable();\n trackConsoleError(errorObservable);\n trackRuntimeError(errorObservable);\n trackReportError(configuration, errorObservable);\n errorObservable.subscribe(function (error) { return lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error }); });\n return doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts);\n}\nexport function doStartErrorCollection(lifeCycle, pageStateHistory, featureFlagContexts) {\n lifeCycle.subscribe(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, function (_a) {\n var error = _a.error, customerContext = _a.customerContext, savedCommonContext = _a.savedCommonContext;\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, assign({\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n }, processError(error, pageStateHistory, featureFlagContexts)));\n });\n return {\n addError: function (_a, savedCommonContext) {\n var error = _a.error, handlingStack = _a.handlingStack, startClocks = _a.startClocks, customerContext = _a.context;\n var stackTrace = error instanceof Error ? computeStackTrace(error) : undefined;\n var rawError = computeRawError({\n stackTrace: stackTrace,\n originalError: error,\n handlingStack: handlingStack,\n startClocks: startClocks,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.CUSTOM,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n });\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, {\n customerContext: customerContext,\n savedCommonContext: savedCommonContext,\n error: rawError,\n });\n },\n };\n}\nfunction processError(error, pageStateHistory, featureFlagContexts) {\n var rawRumEvent = {\n date: error.startClocks.timeStamp,\n error: {\n id: generateUUID(),\n message: error.message,\n source: error.source,\n stack: error.stack,\n handling_stack: error.handlingStack,\n type: error.type,\n handling: error.handling,\n causes: error.causes,\n source_type: 'browser',\n fingerprint: error.fingerprint,\n },\n type: \"error\" /* RumEventType.ERROR */,\n view: { in_foreground: pageStateHistory.isInActivePageStateAt(error.startClocks.relative) },\n };\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(error.startClocks.relative);\n if (featureFlagContext && !isEmptyObject(featureFlagContext)) {\n rawRumEvent.feature_flags = featureFlagContext;\n }\n return {\n rawRumEvent: rawRumEvent,\n startTime: error.startClocks.relative,\n domainContext: {\n error: error.originalError,\n },\n };\n}\n//# sourceMappingURL=errorCollection.js.map","import { toServerDuration, relativeToClocks, generateUUID } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nexport function startLongTaskCollection(lifeCycle, sessionManager) {\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType !== RumPerformanceEntryType.LONG_TASK) {\n break;\n }\n var session = sessionManager.findTrackedSession(entry.startTime);\n if (!session || !session.longTaskAllowed) {\n break;\n }\n var startClocks = relativeToClocks(entry.startTime);\n var rawRumEvent = {\n date: startClocks.timeStamp,\n long_task: {\n id: generateUUID(),\n duration: toServerDuration(entry.duration),\n },\n type: \"long_task\" /* RumEventType.LONG_TASK */,\n _dd: {\n discarded: false,\n },\n };\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, {\n rawRumEvent: rawRumEvent,\n startTime: startClocks.relative,\n domainContext: { performanceEntry: entry.toJSON() },\n });\n }\n });\n}\n//# sourceMappingURL=longTaskCollection.js.map","import { addDuration } from '@datadog/browser-core';\nimport { toValidEntry } from './resourceUtils';\n/**\n * Look for corresponding timing in resource timing buffer\n *\n * Observations:\n * - Timing (start, end) are nested inside the request (start, end)\n * - Some timing can be not exactly nested, being off by < 1 ms\n *\n * Strategy:\n * - from valid nested entries (with 1 ms error margin)\n * - if a single timing match, return the timing\n * - otherwise we can't decide, return undefined\n */\nexport function matchRequestTiming(request) {\n if (!performance || !('getEntriesByName' in performance)) {\n return;\n }\n var sameNameEntries = performance.getEntriesByName(request.url, 'resource');\n if (!sameNameEntries.length || !('toJSON' in sameNameEntries[0])) {\n return;\n }\n var candidates = sameNameEntries\n .map(function (entry) { return entry.toJSON(); })\n .filter(toValidEntry)\n .filter(function (entry) {\n return isBetween(entry, request.startClocks.relative, endTime({ startTime: request.startClocks.relative, duration: request.duration }));\n });\n if (candidates.length === 1) {\n return candidates[0];\n }\n return;\n}\nfunction endTime(timing) {\n return addDuration(timing.startTime, timing.duration);\n}\nfunction isBetween(timing, start, end) {\n var errorMargin = 1;\n return timing.startTime >= start - errorMargin && endTime(timing) <= addDuration(end, errorMargin);\n}\n//# sourceMappingURL=matchRequestTiming.js.map","import { combine, generateUUID, toServerDuration, relativeToClocks, assign, isNumber, isExperimentalFeatureEnabled, ExperimentalFeature, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../browser/performanceCollection';\nimport { matchRequestTiming } from './matchRequestTiming';\nimport { computePerformanceResourceDetails, computePerformanceResourceDuration, computeResourceKind, computeSize, isRequestKind, } from './resourceUtils';\nexport function startResourceCollection(lifeCycle, configuration, sessionManager, pageStateHistory) {\n lifeCycle.subscribe(6 /* LifeCycleEventType.REQUEST_COMPLETED */, function (request) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processRequest(request, configuration, sessionManager, pageStateHistory));\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.RESOURCE && !isRequestKind(entry)) {\n lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processResourceEntry(entry, configuration, sessionManager, pageStateHistory));\n }\n }\n });\n}\nfunction processRequest(request, configuration, sessionManager, pageStateHistory) {\n var _a;\n var type = request.type === \"xhr\" /* RequestType.XHR */ ? \"xhr\" /* ResourceType.XHR */ : \"fetch\" /* ResourceType.FETCH */;\n var matchingTiming = matchRequestTiming(request);\n var startClocks = matchingTiming ? relativeToClocks(matchingTiming.startTime) : request.startClocks;\n var correspondingTimingOverrides = matchingTiming ? computePerformanceEntryMetrics(matchingTiming) : undefined;\n var tracingInfo = computeRequestTracingInfo(request, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var duration = computeRequestDuration(pageStateHistory, startClocks, request.duration);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, (_a = matchingTiming === null || matchingTiming === void 0 ? void 0 : matchingTiming.duration) !== null && _a !== void 0 ? _a : request.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n duration: duration,\n method: request.method,\n status_code: request.status,\n url: request.url,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, correspondingTimingOverrides, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: matchingTiming && toPerformanceEntryRepresentation(matchingTiming),\n xhr: request.xhr,\n response: request.response,\n requestInput: request.input,\n requestInit: request.init,\n error: request.error,\n },\n };\n}\nfunction processResourceEntry(entry, configuration, sessionManager, pageStateHistory) {\n var type = computeResourceKind(entry);\n var entryMetrics = computePerformanceEntryMetrics(entry);\n var startClocks = relativeToClocks(entry.startTime);\n var tracingInfo = computeEntryTracingInfo(entry, configuration);\n var indexingInfo = computeIndexingInfo(sessionManager, startClocks);\n var pageStateInfo = computePageStateInfo(pageStateHistory, startClocks, entry.duration);\n var resourceEvent = combine({\n date: startClocks.timeStamp,\n resource: {\n id: generateUUID(),\n type: type,\n url: entry.name,\n },\n type: \"resource\" /* RumEventType.RESOURCE */,\n }, tracingInfo, entryMetrics, indexingInfo, pageStateInfo);\n return {\n startTime: startClocks.relative,\n rawRumEvent: resourceEvent,\n domainContext: {\n performanceEntry: toPerformanceEntryRepresentation(entry),\n },\n };\n}\nfunction computePerformanceEntryMetrics(timing) {\n return {\n resource: assign({\n duration: computePerformanceResourceDuration(timing),\n size: computeSize(timing),\n }, computePerformanceResourceDetails(timing)),\n };\n}\nfunction computeRequestTracingInfo(request, configuration) {\n var hasBeenTraced = request.traceSampled && request.traceId && request.spanId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n span_id: request.spanId.toDecimalString(),\n trace_id: request.traceId.toDecimalString(),\n rule_psr: getRulePsr(configuration),\n },\n };\n}\nfunction computeEntryTracingInfo(entry, configuration) {\n var hasBeenTraced = entry.traceId;\n if (!hasBeenTraced) {\n return undefined;\n }\n return {\n _dd: {\n trace_id: entry.traceId,\n rule_psr: getRulePsr(configuration),\n },\n };\n}\n// TODO next major: use directly PerformanceEntry type in domain context\nfunction toPerformanceEntryRepresentation(entry) {\n return entry;\n}\n/**\n * @returns number between 0 and 1 which represents trace sample rate\n */\nfunction getRulePsr(configuration) {\n return isNumber(configuration.traceSampleRate) ? configuration.traceSampleRate / 100 : undefined;\n}\nfunction computeIndexingInfo(sessionManager, resourceStart) {\n var session = sessionManager.findTrackedSession(resourceStart.relative);\n return {\n _dd: {\n discarded: !session || !session.resourceAllowed,\n },\n };\n}\nfunction computePageStateInfo(pageStateHistory, startClocks, duration) {\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.RESOURCE_PAGE_STATES)) {\n return;\n }\n return {\n _dd: {\n page_states: pageStateHistory.findAll(startClocks.relative, duration),\n page_was_discarded: String(document.wasDiscarded),\n },\n };\n}\nfunction computeRequestDuration(pageStateHistory, startClocks, duration) {\n var _a;\n // TODO remove FF in next major\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.NO_RESOURCE_DURATION_FROZEN_STATE)) {\n return toServerDuration(duration);\n }\n var requestCrossedFrozenState = (_a = pageStateHistory\n .findAll(startClocks.relative, duration)) === null || _a === void 0 ? void 0 : _a.some(function (pageState) { return pageState.state === \"frozen\" /* PageState.FROZEN */; });\n return !requestCrossedFrozenState ? toServerDuration(duration) : undefined;\n}\n//# sourceMappingURL=resourceCollection.js.map","import { toServerDuration } from '@datadog/browser-core';\n// Todo: Remove in the next major release\nexport function mapToForegroundPeriods(pageStateServerEntries, duration) {\n var foregroundPeriods = [];\n for (var i = 0; i < pageStateServerEntries.length; i++) {\n var current = pageStateServerEntries[i];\n var next = pageStateServerEntries[i + 1];\n if (current.state === \"active\" /* PageState.ACTIVE */) {\n var start = current.start >= 0 ? current.start : 0;\n var end = next ? next.start : toServerDuration(duration);\n foregroundPeriods.push({\n start: start,\n duration: (end - start),\n });\n }\n }\n return foregroundPeriods;\n}\n//# sourceMappingURL=foregroundContexts.js.map","import { trackEventCounts } from '../trackEventCounts';\nexport function trackViewEventCounts(lifeCycle, viewId, onChange) {\n var _a = trackEventCounts({\n lifeCycle: lifeCycle,\n isChildEvent: function (event) { return event.view.id === viewId; },\n onChange: onChange,\n }), stop = _a.stop, eventCounts = _a.eventCounts;\n return {\n stop: stop,\n eventCounts: eventCounts,\n };\n}\n//# sourceMappingURL=trackViewEventCounts.js.map","import { ONE_MINUTE, find } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\n// Discard FCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var FCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\nexport function trackFirstContentfulPaint(lifeCycle, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var fcpEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.PAINT &&\n entry.name === 'first-contentful-paint' &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < FCP_MAXIMUM_DELAY;\n });\n if (fcpEntry) {\n callback(fcpEntry.startTime);\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstContentfulPaint.js.map","import { elapsed, find, ExperimentalFeature, isExperimentalFeatureEnabled } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the first input occurring during the initial View to return:\n * - First Input Delay\n * - First Input Time\n * Callback is called at most one time.\n * Documentation: https://web.dev/fid/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getFID.ts\n */\nexport function trackFirstInput(lifeCycle, configuration, firstHidden, callback) {\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var firstInputEntry = find(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.FIRST_INPUT && entry.startTime < firstHidden.timeStamp;\n });\n if (firstInputEntry) {\n var firstInputDelay = elapsed(firstInputEntry.startTime, firstInputEntry.processingStart);\n var firstInputTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n firstInputEntry.target &&\n isElementNode(firstInputEntry.target)) {\n firstInputTargetSelector = getSelectorFromElement(firstInputEntry.target, configuration.actionNameAttribute);\n }\n callback({\n // Ensure firstInputDelay to be positive, see\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1185815\n delay: firstInputDelay >= 0 ? firstInputDelay : 0,\n time: firstInputEntry.startTime,\n targetSelector: firstInputTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: unsubscribeLifeCycle,\n };\n}\n//# sourceMappingURL=trackFirstInput.js.map","import { relativeNow } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nexport function trackNavigationTimings(lifeCycle, callback) {\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.NAVIGATION) {\n callback({\n domComplete: entry.domComplete,\n domContentLoaded: entry.domContentLoadedEventEnd,\n domInteractive: entry.domInteractive,\n loadEvent: entry.loadEventEnd,\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 firstByte: entry.responseStart >= 0 && entry.responseStart <= relativeNow() ? entry.responseStart : undefined,\n });\n }\n }\n }).unsubscribe;\n return { stop: stop };\n}\n//# sourceMappingURL=trackNavigationTimings.js.map","import { ExperimentalFeature, ONE_MINUTE, addEventListeners, findLast, isExperimentalFeatureEnabled, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n// Discard LCP timings above a certain delay to avoid incorrect data\n// It happens in some cases like sleep mode or some browser implementations\nexport var LCP_MAXIMUM_DELAY = 10 * ONE_MINUTE;\n/**\n * Track the largest contentful paint (LCP) occurring during the initial View. This can yield\n * multiple values, only the most recent one should be used.\n * Documentation: https://web.dev/lcp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/onLCP.ts\n */\nexport function trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, eventTarget, callback) {\n // Ignore entries that come after the first user interaction. According to the documentation, the\n // browser should not send largest-contentful-paint entries after a user interact with the page,\n // but the web-vitals reference implementation uses this as a safeguard.\n var firstInteractionTimestamp = Infinity;\n var stopEventListener = addEventListeners(configuration, eventTarget, [\"pointerdown\" /* DOM_EVENT.POINTER_DOWN */, \"keydown\" /* DOM_EVENT.KEY_DOWN */], function (event) {\n firstInteractionTimestamp = event.timeStamp;\n }, { capture: true, once: true }).stop;\n var unsubscribeLifeCycle = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var lcpEntry = findLast(entries, function (entry) {\n return entry.entryType === RumPerformanceEntryType.LARGEST_CONTENTFUL_PAINT &&\n entry.startTime < firstInteractionTimestamp &&\n entry.startTime < firstHidden.timeStamp &&\n entry.startTime < LCP_MAXIMUM_DELAY;\n });\n if (lcpEntry) {\n var lcpTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && lcpEntry.element) {\n lcpTargetSelector = getSelectorFromElement(lcpEntry.element, configuration.actionNameAttribute);\n }\n callback({\n value: lcpEntry.startTime,\n targetSelector: lcpTargetSelector,\n });\n }\n }).unsubscribe;\n return {\n stop: function () {\n stopEventListener();\n unsubscribeLifeCycle();\n },\n };\n}\n//# sourceMappingURL=trackLargestContentfulPaint.js.map","import { addEventListeners } from '@datadog/browser-core';\nexport function trackFirstHidden(configuration, eventTarget) {\n if (eventTarget === void 0) { eventTarget = window; }\n var timeStamp;\n var stopListeners;\n if (document.visibilityState === 'hidden') {\n timeStamp = 0;\n }\n else {\n timeStamp = Infinity;\n (stopListeners = addEventListeners(configuration, eventTarget, [\"pagehide\" /* DOM_EVENT.PAGE_HIDE */, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */], function (event) {\n if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */ || document.visibilityState === 'hidden') {\n timeStamp = event.timeStamp;\n stopListeners();\n }\n }, { capture: true }).stop);\n }\n return {\n get timeStamp() {\n return timeStamp;\n },\n stop: function () {\n stopListeners === null || stopListeners === void 0 ? void 0 : stopListeners();\n },\n };\n}\n//# sourceMappingURL=trackFirstHidden.js.map","import { trackFirstContentfulPaint } from './trackFirstContentfulPaint';\nimport { trackFirstInput } from './trackFirstInput';\nimport { trackNavigationTimings } from './trackNavigationTimings';\nimport { trackLargestContentfulPaint } from './trackLargestContentfulPaint';\nimport { trackFirstHidden } from './trackFirstHidden';\nexport function trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate) {\n var initialViewMetrics = {};\n var stopNavigationTracking = trackNavigationTimings(lifeCycle, function (navigationTimings) {\n setLoadEvent(navigationTimings.loadEvent);\n initialViewMetrics.navigationTimings = navigationTimings;\n scheduleViewUpdate();\n }).stop;\n var firstHidden = trackFirstHidden(configuration);\n var stopFCPTracking = trackFirstContentfulPaint(lifeCycle, firstHidden, function (firstContentfulPaint) {\n initialViewMetrics.firstContentfulPaint = firstContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopLCPTracking = trackLargestContentfulPaint(lifeCycle, configuration, firstHidden, window, function (largestContentfulPaint) {\n initialViewMetrics.largestContentfulPaint = largestContentfulPaint;\n scheduleViewUpdate();\n }).stop;\n var stopFIDTracking = trackFirstInput(lifeCycle, configuration, firstHidden, function (firstInput) {\n initialViewMetrics.firstInput = firstInput;\n scheduleViewUpdate();\n }).stop;\n function stop() {\n stopNavigationTracking();\n stopFCPTracking();\n stopLCPTracking();\n stopFIDTracking();\n firstHidden.stop();\n }\n return {\n stop: stop,\n initialViewMetrics: initialViewMetrics,\n };\n}\n//# sourceMappingURL=trackInitialViewMetrics.js.map","import { round, find, ONE_SECOND, isExperimentalFeatureEnabled, ExperimentalFeature, noop, } from '@datadog/browser-core';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { supportPerformanceTimingEvent, RumPerformanceEntryType } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\n/**\n * Track the cumulative layout shifts (CLS).\n * Layout shifts are grouped into session windows.\n * The minimum gap between session windows is 1 second.\n * The maximum duration of a session window is 5 second.\n * The session window layout shift value is the sum of layout shifts inside it.\n * The CLS value is the max of session windows values.\n *\n * This yields a new value whenever the CLS value is updated (a higher session window value is computed).\n *\n * See isLayoutShiftSupported to check for browser support.\n *\n * Documentation:\n * https://web.dev/cls/\n * https://web.dev/evolving-cls/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/master/src/getCLS.ts\n */\nexport function trackCumulativeLayoutShift(configuration, lifeCycle, callback) {\n if (!isLayoutShiftSupported()) {\n return {\n stop: noop,\n };\n }\n var maxClsValue = 0;\n // if no layout shift happen the value should be reported as 0\n callback({\n value: 0,\n });\n var window = slidingSessionWindow();\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if (entry.entryType === RumPerformanceEntryType.LAYOUT_SHIFT && !entry.hadRecentInput) {\n window.update(entry);\n if (window.value() > maxClsValue) {\n maxClsValue = window.value();\n var cls = round(maxClsValue, 4);\n var clsTarget = window.largestLayoutShiftTarget();\n var cslTargetSelector = void 0;\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) && clsTarget) {\n cslTargetSelector = getSelectorFromElement(clsTarget, configuration.actionNameAttribute);\n }\n callback({\n value: cls,\n targetSelector: cslTargetSelector,\n });\n }\n }\n }\n }).unsubscribe;\n return {\n stop: stop,\n };\n}\nfunction slidingSessionWindow() {\n var value = 0;\n var startTime;\n var endTime;\n var largestLayoutShift = 0;\n var largestLayoutShiftTarget;\n var largestLayoutShiftTime;\n return {\n update: function (entry) {\n var _a, _b;\n var shouldCreateNewWindow = startTime === undefined ||\n entry.startTime - endTime >= ONE_SECOND ||\n entry.startTime - startTime >= 5 * ONE_SECOND;\n if (shouldCreateNewWindow) {\n startTime = endTime = entry.startTime;\n value = entry.value;\n largestLayoutShift = 0;\n largestLayoutShiftTarget = undefined;\n }\n else {\n value += entry.value;\n endTime = entry.startTime;\n }\n if (entry.value > largestLayoutShift) {\n largestLayoutShift = entry.value;\n largestLayoutShiftTime = entry.startTime;\n if ((_a = entry.sources) === null || _a === void 0 ? void 0 : _a.length) {\n largestLayoutShiftTarget = (_b = find(entry.sources, function (s) { return !!s.node && isElementNode(s.node); })) === null || _b === void 0 ? void 0 : _b.node;\n }\n else {\n largestLayoutShiftTarget = undefined;\n }\n }\n },\n value: function () { return value; },\n largestLayoutShiftTarget: function () { return largestLayoutShiftTarget; },\n largestLayoutShiftTime: function () { return largestLayoutShiftTime; },\n };\n}\n/**\n * Check whether `layout-shift` is supported by the browser.\n */\nexport function isLayoutShiftSupported() {\n return supportPerformanceTimingEvent(RumPerformanceEntryType.LAYOUT_SHIFT);\n}\n//# sourceMappingURL=trackCumulativeLayoutShift.js.map","/**\n * performance.interactionCount polyfill\n *\n * The interactionCount is an integer which counts the total number of distinct user interactions,\n * for which there was a unique interactionId.\n *\n * The interactionCount polyfill is an estimate based on a convention specific to Chrome. Cf: https://github.com/GoogleChrome/web-vitals/pull/213\n * This is currently not an issue as the polyfill is only used for INP which is currently only supported on Chrome.\n * Hopefully when/if other browsers will support INP, they will also implement performance.interactionCount at the same time, so we won't need that polyfill.\n *\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/lib/polyfills/interactionCountPolyfill.ts\n */\nimport { monitor } from '@datadog/browser-core';\nvar observer;\nvar interactionCountEstimate = 0;\nvar minKnownInteractionId = Infinity;\nvar maxKnownInteractionId = 0;\nexport function initInteractionCountPolyfill() {\n if ('interactionCount' in performance || observer) {\n return;\n }\n observer = new window.PerformanceObserver(monitor(function (entries) {\n entries.getEntries().forEach(function (e) {\n var entry = e;\n if (entry.interactionId) {\n minKnownInteractionId = Math.min(minKnownInteractionId, entry.interactionId);\n maxKnownInteractionId = Math.max(maxKnownInteractionId, entry.interactionId);\n interactionCountEstimate = (maxKnownInteractionId - minKnownInteractionId) / 7 + 1;\n }\n });\n }));\n observer.observe({ type: 'event', buffered: true, durationThreshold: 0 });\n}\n/**\n * Returns the `interactionCount` value using the native API (if available)\n * or the polyfill estimate in this module.\n */\nexport var getInteractionCount = function () {\n return observer ? interactionCountEstimate : window.performance.interactionCount || 0;\n};\n//# sourceMappingURL=interactionCountPolyfill.js.map","import { noop, isExperimentalFeatureEnabled, ExperimentalFeature, ONE_MINUTE, addTelemetryDebug, elapsed, } from '@datadog/browser-core';\nimport { RumPerformanceEntryType, supportPerformanceTimingEvent } from '../../../browser/performanceCollection';\nimport { getSelectorFromElement } from '../../getSelectorFromElement';\nimport { isElementNode } from '../../../browser/htmlDomUtils';\nimport { getInteractionCount, initInteractionCountPolyfill } from './interactionCountPolyfill';\n// Arbitrary value to prevent unnecessary memory usage on views with lots of interactions.\nvar MAX_INTERACTION_ENTRIES = 10;\n/**\n * Track the interaction to next paint (INP).\n * To avoid outliers, return the p98 worst interaction of the view.\n * Documentation: https://web.dev/inp/\n * Reference implementation: https://github.com/GoogleChrome/web-vitals/blob/main/src/onINP.ts\n */\nexport function trackInteractionToNextPaint(configuration, viewStart, viewLoadingType, lifeCycle) {\n if (!isInteractionToNextPaintSupported() ||\n !isExperimentalFeatureEnabled(ExperimentalFeature.INTERACTION_TO_NEXT_PAINT)) {\n return {\n getInteractionToNextPaint: function () { return undefined; },\n stop: noop,\n };\n }\n var getViewInteractionCount = trackViewInteractionCount(viewLoadingType).getViewInteractionCount;\n var longestInteractions = trackLongestInteractions(getViewInteractionCount);\n var interactionToNextPaint = -1;\n var interactionToNextPaintTargetSelector;\n var telemetryCollected = false;\n var stop = lifeCycle.subscribe(0 /* LifeCycleEventType.PERFORMANCE_ENTRIES_COLLECTED */, function (entries) {\n var _a;\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n if ((entry.entryType === RumPerformanceEntryType.EVENT ||\n entry.entryType === RumPerformanceEntryType.FIRST_INPUT) &&\n entry.interactionId) {\n longestInteractions.process(entry);\n }\n }\n var newInteraction = longestInteractions.estimateP98Interaction();\n if (newInteraction) {\n interactionToNextPaint = newInteraction.duration;\n if (interactionToNextPaint > 10 * ONE_MINUTE && !telemetryCollected) {\n telemetryCollected = true;\n addTelemetryDebug('INP outlier', {\n inp: interactionToNextPaint,\n interaction: {\n timeFromViewStart: elapsed(viewStart.relative, newInteraction.startTime),\n duration: newInteraction.duration,\n startTime: newInteraction.startTime,\n processingStart: newInteraction.processingStart,\n processingEnd: newInteraction.processingEnd,\n interactionId: newInteraction.interactionId,\n name: newInteraction.name,\n targetNodeName: (_a = newInteraction.target) === null || _a === void 0 ? void 0 : _a.nodeName,\n },\n });\n }\n if (isExperimentalFeatureEnabled(ExperimentalFeature.WEB_VITALS_ATTRIBUTION) &&\n newInteraction.target &&\n isElementNode(newInteraction.target)) {\n interactionToNextPaintTargetSelector = getSelectorFromElement(newInteraction.target, configuration.actionNameAttribute);\n }\n else {\n interactionToNextPaintTargetSelector = undefined;\n }\n }\n }).unsubscribe;\n return {\n getInteractionToNextPaint: function () {\n // If no INP duration where captured because of the performanceObserver 40ms threshold\n // but the view interaction count > 0 then report 0\n if (interactionToNextPaint >= 0) {\n return {\n value: interactionToNextPaint,\n targetSelector: interactionToNextPaintTargetSelector,\n };\n }\n else if (getViewInteractionCount()) {\n return {\n value: 0,\n };\n }\n },\n stop: stop,\n };\n}\nfunction trackLongestInteractions(getViewInteractionCount) {\n var longestInteractions = [];\n function sortAndTrimLongestInteractions() {\n longestInteractions.sort(function (a, b) { return b.duration - a.duration; }).splice(MAX_INTERACTION_ENTRIES);\n }\n return {\n /**\n * Process the performance entry:\n * - if its duration is long enough, add the performance entry to the list of worst interactions\n * - if an entry with the same interaction id exists and its duration is lower than the new one, then replace it in the list of worst interactions\n */\n process: function (entry) {\n var interactionIndex = longestInteractions.findIndex(function (interaction) { return entry.interactionId === interaction.interactionId; });\n var minLongestInteraction = longestInteractions[longestInteractions.length - 1];\n if (interactionIndex !== -1) {\n if (entry.duration > longestInteractions[interactionIndex].duration) {\n longestInteractions[interactionIndex] = entry;\n sortAndTrimLongestInteractions();\n }\n }\n else if (longestInteractions.length < MAX_INTERACTION_ENTRIES ||\n entry.duration > minLongestInteraction.duration) {\n longestInteractions.push(entry);\n sortAndTrimLongestInteractions();\n }\n },\n /**\n * Compute the p98 longest interaction.\n * For better performance the computation is based on 10 longest interactions and the interaction count of the current view.\n */\n estimateP98Interaction: function () {\n var interactionIndex = Math.min(longestInteractions.length - 1, Math.floor(getViewInteractionCount() / 50));\n return longestInteractions[interactionIndex];\n },\n };\n}\nexport function trackViewInteractionCount(viewLoadingType) {\n initInteractionCountPolyfill();\n var previousInteractionCount = viewLoadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */ ? 0 : getInteractionCount();\n return {\n getViewInteractionCount: function () { return getInteractionCount() - previousInteractionCount; },\n };\n}\nexport function isInteractionToNextPaintSupported() {\n return (supportPerformanceTimingEvent(RumPerformanceEntryType.EVENT) &&\n window.PerformanceEventTiming &&\n 'interactionId' in PerformanceEventTiming.prototype);\n}\n//# sourceMappingURL=trackInteractionToNextPaint.js.map","import { elapsed } from '@datadog/browser-core';\nimport { waitPageActivityEnd } from '../../waitPageActivityEnd';\nexport function trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadType, viewStart, callback) {\n var isWaitingForLoadEvent = loadType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */;\n var isWaitingForActivityLoadingTime = true;\n var loadingTimeCandidates = [];\n function invokeCallbackIfAllCandidatesAreReceived() {\n if (!isWaitingForActivityLoadingTime && !isWaitingForLoadEvent && loadingTimeCandidates.length > 0) {\n callback(Math.max.apply(Math, loadingTimeCandidates));\n }\n }\n var stop = waitPageActivityEnd(lifeCycle, domMutationObservable, configuration, function (event) {\n if (isWaitingForActivityLoadingTime) {\n isWaitingForActivityLoadingTime = false;\n if (event.hadActivity) {\n loadingTimeCandidates.push(elapsed(viewStart.timeStamp, event.end));\n }\n invokeCallbackIfAllCandidatesAreReceived();\n }\n }).stop;\n return {\n stop: stop,\n setLoadEvent: function (loadEvent) {\n if (isWaitingForLoadEvent) {\n isWaitingForLoadEvent = false;\n loadingTimeCandidates.push(loadEvent);\n invokeCallbackIfAllCandidatesAreReceived();\n }\n },\n };\n}\n//# sourceMappingURL=trackLoadingTime.js.map","export function getScrollX() {\n var scrollX;\n var visual = window.visualViewport;\n if (visual) {\n scrollX = visual.pageLeft - visual.offsetLeft;\n }\n else if (window.scrollX !== undefined) {\n scrollX = window.scrollX;\n }\n else {\n scrollX = window.pageXOffset || 0;\n }\n return Math.round(scrollX);\n}\nexport function getScrollY() {\n var scrollY;\n var visual = window.visualViewport;\n if (visual) {\n scrollY = visual.pageTop - visual.offsetTop;\n }\n else if (window.scrollY !== undefined) {\n scrollY = window.scrollY;\n }\n else {\n scrollY = window.pageYOffset || 0;\n }\n return Math.round(scrollY);\n}\n//# sourceMappingURL=scroll.js.map","import { Observable, throttle, addEventListener } from '@datadog/browser-core';\nvar viewportObservable;\nexport function initViewportObservable(configuration) {\n if (!viewportObservable) {\n viewportObservable = createViewportObservable(configuration);\n }\n return viewportObservable;\n}\nexport function createViewportObservable(configuration) {\n var observable = new Observable(function () {\n var updateDimension = throttle(function () {\n observable.notify(getViewportDimension());\n }, 200).throttled;\n return addEventListener(configuration, window, \"resize\" /* DOM_EVENT.RESIZE */, updateDimension, { capture: true, passive: true })\n .stop;\n });\n return observable;\n}\n// excludes the width and height of any rendered classic scrollbar that is fixed to the visual viewport\nexport function getViewportDimension() {\n var visual = window.visualViewport;\n if (visual) {\n return {\n width: Number(visual.width * visual.scale),\n height: Number(visual.height * visual.scale),\n };\n }\n return {\n width: Number(window.innerWidth || 0),\n height: Number(window.innerHeight || 0),\n };\n}\n//# sourceMappingURL=viewportObservable.js.map","import { Observable, ONE_SECOND, elapsed, relativeNow, throttle, addEventListener, monitor, } from '@datadog/browser-core';\nimport { getScrollY } from '../../../browser/scroll';\nimport { getViewportDimension } from '../../../browser/viewportObservable';\n/** Arbitrary scroll throttle duration */\nexport var THROTTLE_SCROLL_DURATION = ONE_SECOND;\nexport function trackScrollMetrics(configuration, viewStart, callback, scrollValues) {\n if (scrollValues === void 0) { scrollValues = createScrollValuesObservable(configuration); }\n var maxScrollDepth = 0;\n var maxScrollHeight = 0;\n var maxScrollHeightTime = 0;\n var subscription = scrollValues.subscribe(function (_a) {\n var scrollDepth = _a.scrollDepth, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight;\n var shouldUpdate = false;\n if (scrollDepth > maxScrollDepth) {\n maxScrollDepth = scrollDepth;\n shouldUpdate = true;\n }\n if (scrollHeight > maxScrollHeight) {\n maxScrollHeight = scrollHeight;\n var now = relativeNow();\n maxScrollHeightTime = elapsed(viewStart.relative, now);\n shouldUpdate = true;\n }\n if (shouldUpdate) {\n callback({\n maxDepth: Math.min(maxScrollDepth, maxScrollHeight),\n maxDepthScrollTop: scrollTop,\n maxScrollHeight: maxScrollHeight,\n maxScrollHeightTime: maxScrollHeightTime,\n });\n }\n });\n return {\n stop: function () { return subscription.unsubscribe(); },\n };\n}\nexport function computeScrollValues() {\n var scrollTop = getScrollY();\n var height = getViewportDimension().height;\n var scrollHeight = Math.round((document.scrollingElement || document.documentElement).scrollHeight);\n var scrollDepth = Math.round(height + scrollTop);\n return {\n scrollHeight: scrollHeight,\n scrollDepth: scrollDepth,\n scrollTop: scrollTop,\n };\n}\nexport function createScrollValuesObservable(configuration, throttleDuration) {\n if (throttleDuration === void 0) { throttleDuration = THROTTLE_SCROLL_DURATION; }\n var observable = new Observable(function () {\n function notify() {\n observable.notify(computeScrollValues());\n }\n if (window.ResizeObserver) {\n var throttledNotify_1 = throttle(notify, throttleDuration, {\n leading: false,\n trailing: true,\n });\n var observerTarget_1 = document.scrollingElement || document.documentElement;\n var resizeObserver_1 = new ResizeObserver(monitor(throttledNotify_1.throttled));\n resizeObserver_1.observe(observerTarget_1);\n var eventListener_1 = addEventListener(configuration, window, \"scroll\" /* DOM_EVENT.SCROLL */, throttledNotify_1.throttled, {\n passive: true,\n });\n return function () {\n throttledNotify_1.cancel();\n resizeObserver_1.unobserve(observerTarget_1);\n eventListener_1.stop();\n };\n }\n });\n return observable;\n}\n//# sourceMappingURL=trackScrollMetrics.js.map","import { trackCumulativeLayoutShift } from './trackCumulativeLayoutShift';\nimport { trackInteractionToNextPaint } from './trackInteractionToNextPaint';\nimport { trackLoadingTime } from './trackLoadingTime';\nimport { trackScrollMetrics } from './trackScrollMetrics';\nexport function trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, viewStart) {\n var commonViewMetrics = {};\n var _a = trackLoadingTime(lifeCycle, domMutationObservable, configuration, loadingType, viewStart, function (newLoadingTime) {\n commonViewMetrics.loadingTime = newLoadingTime;\n scheduleViewUpdate();\n }), stopLoadingTimeTracking = _a.stop, setLoadEvent = _a.setLoadEvent;\n var stopScrollMetricsTracking = trackScrollMetrics(configuration, viewStart, function (newScrollMetrics) {\n commonViewMetrics.scroll = newScrollMetrics;\n }).stop;\n var stopCLSTracking = trackCumulativeLayoutShift(configuration, lifeCycle, function (cumulativeLayoutShift) {\n commonViewMetrics.cumulativeLayoutShift = cumulativeLayoutShift;\n scheduleViewUpdate();\n }).stop;\n var _b = trackInteractionToNextPaint(configuration, viewStart, loadingType, lifeCycle), stopINPTracking = _b.stop, getInteractionToNextPaint = _b.getInteractionToNextPaint;\n return {\n stop: function () {\n stopLoadingTimeTracking();\n stopCLSTracking();\n stopScrollMetricsTracking();\n stopINPTracking();\n },\n setLoadEvent: setLoadEvent,\n getCommonViewMetrics: function () {\n commonViewMetrics.interactionToNextPaint = getInteractionToNextPaint();\n return commonViewMetrics;\n },\n };\n}\n//# sourceMappingURL=trackCommonViewMetrics.js.map","import { noop, PageExitReason, shallowClone, elapsed, generateUUID, ONE_MINUTE, throttle, clocksNow, clocksOrigin, timeStampNow, display, looksLikeRelativeTime, setInterval, clearInterval, setTimeout, Observable, } from '@datadog/browser-core';\nimport { trackViewEventCounts } from './trackViewEventCounts';\nimport { trackInitialViewMetrics } from './viewMetrics/trackInitialViewMetrics';\nimport { trackCommonViewMetrics } from './viewMetrics/trackCommonViewMetrics';\nexport var THROTTLE_VIEW_UPDATE_PERIOD = 3000;\nexport var SESSION_KEEP_ALIVE_INTERVAL = 5 * ONE_MINUTE;\n// Some events or metrics can be captured after the end of the view. To avoid missing those;\n// an arbitrary delay is added for stopping their tracking after the view ends.\n//\n// Ideally, we would not stop and keep tracking events or metrics until the end of the session.\n// But this might have a small performance impact if there are many many views.\n// So let's have a fairly short delay improving the situation in most cases and avoid impacting performances too much.\nexport var KEEP_TRACKING_AFTER_VIEW_DELAY = 5 * ONE_MINUTE;\nexport function trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, areViewsTrackedAutomatically, initialViewOptions) {\n var activeViews = new Set();\n var currentView = startNewView(\"initial_load\" /* ViewLoadingType.INITIAL_LOAD */, clocksOrigin(), initialViewOptions);\n startViewLifeCycle();\n var locationChangeSubscription;\n if (areViewsTrackedAutomatically) {\n locationChangeSubscription = renewViewOnLocationChange(locationChangeObservable);\n }\n function startNewView(loadingType, startClocks, viewOptions) {\n var newlyCreatedView = newView(lifeCycle, domMutationObservable, configuration, location, loadingType, startClocks, viewOptions);\n activeViews.add(newlyCreatedView);\n newlyCreatedView.stopObservable.subscribe(function () {\n activeViews.delete(newlyCreatedView);\n });\n return newlyCreatedView;\n }\n function startViewLifeCycle() {\n lifeCycle.subscribe(8 /* LifeCycleEventType.SESSION_RENEWED */, function () {\n // Renew view on session renewal\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, undefined, {\n name: currentView.name,\n service: currentView.service,\n version: currentView.version,\n });\n });\n lifeCycle.subscribe(7 /* LifeCycleEventType.SESSION_EXPIRED */, function () {\n currentView.end({ sessionIsActive: false });\n });\n // End the current view on page unload\n lifeCycle.subscribe(9 /* LifeCycleEventType.PAGE_EXITED */, function (pageExitEvent) {\n if (pageExitEvent.reason === PageExitReason.UNLOADING || pageExitEvent.reason === PageExitReason.PAGEHIDE) {\n currentView.end();\n }\n });\n }\n function renewViewOnLocationChange(locationChangeObservable) {\n return locationChangeObservable.subscribe(function (_a) {\n var oldLocation = _a.oldLocation, newLocation = _a.newLocation;\n if (areDifferentLocation(oldLocation, newLocation)) {\n currentView.end();\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */);\n }\n });\n }\n return {\n addTiming: function (name, time) {\n if (time === void 0) { time = timeStampNow(); }\n currentView.addTiming(name, time);\n },\n startView: function (options, startClocks) {\n currentView.end({ endClocks: startClocks });\n currentView = startNewView(\"route_change\" /* ViewLoadingType.ROUTE_CHANGE */, startClocks, options);\n },\n stop: function () {\n locationChangeSubscription === null || locationChangeSubscription === void 0 ? void 0 : locationChangeSubscription.unsubscribe();\n currentView.end();\n activeViews.forEach(function (view) { return view.stop(); });\n },\n };\n}\nfunction newView(lifeCycle, domMutationObservable, configuration, initialLocation, loadingType, startClocks, viewOptions) {\n if (startClocks === void 0) { startClocks = clocksNow(); }\n // Setup initial values\n var id = generateUUID();\n var stopObservable = new Observable();\n var customTimings = {};\n var documentVersion = 0;\n var endClocks;\n var location = shallowClone(initialLocation);\n var sessionIsActive = true;\n var name;\n var service;\n var version;\n if (viewOptions) {\n name = viewOptions.name;\n service = viewOptions.service;\n version = viewOptions.version;\n }\n lifeCycle.notify(2 /* LifeCycleEventType.VIEW_CREATED */, {\n id: id,\n name: name,\n startClocks: startClocks,\n service: service,\n version: version,\n });\n // Update the view every time the measures are changing\n var _a = throttle(triggerViewUpdate, THROTTLE_VIEW_UPDATE_PERIOD, {\n leading: false,\n }), scheduleViewUpdate = _a.throttled, cancelScheduleViewUpdate = _a.cancel;\n var _b = trackCommonViewMetrics(lifeCycle, domMutationObservable, configuration, scheduleViewUpdate, loadingType, startClocks), setLoadEvent = _b.setLoadEvent, stopCommonViewMetricsTracking = _b.stop, getCommonViewMetrics = _b.getCommonViewMetrics;\n var _c = loadingType === \"initial_load\" /* ViewLoadingType.INITIAL_LOAD */\n ? trackInitialViewMetrics(lifeCycle, configuration, setLoadEvent, scheduleViewUpdate)\n : { stop: noop, initialViewMetrics: {} }, stopInitialViewMetricsTracking = _c.stop, initialViewMetrics = _c.initialViewMetrics;\n var _d = trackViewEventCounts(lifeCycle, id, scheduleViewUpdate), stopEventCountsTracking = _d.stop, eventCounts = _d.eventCounts;\n // Session keep alive\n var keepAliveIntervalId = setInterval(triggerViewUpdate, SESSION_KEEP_ALIVE_INTERVAL);\n // Initial view update\n triggerViewUpdate();\n function triggerViewUpdate() {\n cancelScheduleViewUpdate();\n documentVersion += 1;\n var currentEnd = endClocks === undefined ? timeStampNow() : endClocks.timeStamp;\n lifeCycle.notify(3 /* LifeCycleEventType.VIEW_UPDATED */, {\n customTimings: customTimings,\n documentVersion: documentVersion,\n id: id,\n name: name,\n service: service,\n version: version,\n loadingType: loadingType,\n location: location,\n startClocks: startClocks,\n commonViewMetrics: getCommonViewMetrics(),\n initialViewMetrics: initialViewMetrics,\n duration: elapsed(startClocks.timeStamp, currentEnd),\n isActive: endClocks === undefined,\n sessionIsActive: sessionIsActive,\n eventCounts: eventCounts,\n });\n }\n return {\n name: name,\n service: service,\n version: version,\n stopObservable: stopObservable,\n end: function (options) {\n var _this = this;\n var _a, _b;\n if (options === void 0) { options = {}; }\n if (endClocks) {\n // view already ended\n return;\n }\n endClocks = (_a = options.endClocks) !== null && _a !== void 0 ? _a : clocksNow();\n sessionIsActive = (_b = options.sessionIsActive) !== null && _b !== void 0 ? _b : true;\n lifeCycle.notify(4 /* LifeCycleEventType.VIEW_ENDED */, { endClocks: endClocks });\n clearInterval(keepAliveIntervalId);\n stopCommonViewMetricsTracking();\n triggerViewUpdate();\n setTimeout(function () {\n _this.stop();\n }, KEEP_TRACKING_AFTER_VIEW_DELAY);\n },\n stop: function () {\n stopInitialViewMetricsTracking();\n stopEventCountsTracking();\n stopObservable.notify();\n },\n addTiming: function (name, time) {\n if (endClocks) {\n return;\n }\n var relativeTime = looksLikeRelativeTime(time) ? time : elapsed(startClocks.timeStamp, time);\n customTimings[sanitizeTiming(name)] = relativeTime;\n scheduleViewUpdate();\n },\n };\n}\n/**\n * Timing name is used as facet path that must contain only letters, digits, or the characters - _ . @ $\n */\nfunction sanitizeTiming(name) {\n var sanitized = name.replace(/[^a-zA-Z0-9-_.@$]/g, '_');\n if (sanitized !== name) {\n display.warn(\"Invalid timing name: \".concat(name, \", sanitized to: \").concat(sanitized));\n }\n return sanitized;\n}\nfunction areDifferentLocation(currentLocation, otherLocation) {\n return (currentLocation.pathname !== otherLocation.pathname ||\n (!isHashAnAnchor(otherLocation.hash) &&\n getPathFromHash(otherLocation.hash) !== getPathFromHash(currentLocation.hash)));\n}\nfunction isHashAnAnchor(hash) {\n var correspondingId = hash.substr(1);\n return !!document.getElementById(correspondingId);\n}\nfunction getPathFromHash(hash) {\n var index = hash.indexOf('?');\n return index < 0 ? hash : hash.slice(0, index);\n}\n//# sourceMappingURL=trackViews.js.map","import { isExperimentalFeatureEnabled, ExperimentalFeature, isEmptyObject, mapValues, toServerDuration, isNumber, } from '@datadog/browser-core';\nimport { mapToForegroundPeriods } from '../contexts/foregroundContexts';\nimport { trackViews } from './trackViews';\nexport function startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions) {\n lifeCycle.subscribe(3 /* LifeCycleEventType.VIEW_UPDATED */, function (view) {\n return lifeCycle.notify(10 /* LifeCycleEventType.RAW_RUM_EVENT_COLLECTED */, processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory));\n });\n return trackViews(location, lifeCycle, domMutationObservable, configuration, locationChangeObservable, !configuration.trackViewsManually, initialViewOptions);\n}\nfunction processViewUpdate(view, configuration, featureFlagContexts, recorderApi, pageStateHistory) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;\n var replayStats = recorderApi.getReplayStats(view.id);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations(view.startClocks.relative);\n var pageStatesEnabled = isExperimentalFeatureEnabled(ExperimentalFeature.PAGE_STATES);\n var pageStates = pageStateHistory.findAll(view.startClocks.relative, view.duration);\n var viewEvent = {\n _dd: {\n document_version: view.documentVersion,\n replay_stats: replayStats,\n page_states: pageStatesEnabled ? pageStates : undefined,\n },\n date: view.startClocks.timeStamp,\n type: \"view\" /* RumEventType.VIEW */,\n view: {\n action: {\n count: view.eventCounts.actionCount,\n },\n frustration: {\n count: view.eventCounts.frustrationCount,\n },\n cumulative_layout_shift: (_a = view.commonViewMetrics.cumulativeLayoutShift) === null || _a === void 0 ? void 0 : _a.value,\n cumulative_layout_shift_target_selector: (_b = view.commonViewMetrics.cumulativeLayoutShift) === null || _b === void 0 ? void 0 : _b.targetSelector,\n first_byte: toServerDuration((_c = view.initialViewMetrics.navigationTimings) === null || _c === void 0 ? void 0 : _c.firstByte),\n dom_complete: toServerDuration((_d = view.initialViewMetrics.navigationTimings) === null || _d === void 0 ? void 0 : _d.domComplete),\n dom_content_loaded: toServerDuration((_e = view.initialViewMetrics.navigationTimings) === null || _e === void 0 ? void 0 : _e.domContentLoaded),\n dom_interactive: toServerDuration((_f = view.initialViewMetrics.navigationTimings) === null || _f === void 0 ? void 0 : _f.domInteractive),\n error: {\n count: view.eventCounts.errorCount,\n },\n first_contentful_paint: toServerDuration(view.initialViewMetrics.firstContentfulPaint),\n first_input_delay: toServerDuration((_g = view.initialViewMetrics.firstInput) === null || _g === void 0 ? void 0 : _g.delay),\n first_input_time: toServerDuration((_h = view.initialViewMetrics.firstInput) === null || _h === void 0 ? void 0 : _h.time),\n first_input_target_selector: (_j = view.initialViewMetrics.firstInput) === null || _j === void 0 ? void 0 : _j.targetSelector,\n interaction_to_next_paint: toServerDuration((_k = view.commonViewMetrics.interactionToNextPaint) === null || _k === void 0 ? void 0 : _k.value),\n interaction_to_next_paint_target_selector: (_l = view.commonViewMetrics.interactionToNextPaint) === null || _l === void 0 ? void 0 : _l.targetSelector,\n is_active: view.isActive,\n name: view.name,\n largest_contentful_paint: toServerDuration((_m = view.initialViewMetrics.largestContentfulPaint) === null || _m === void 0 ? void 0 : _m.value),\n largest_contentful_paint_target_selector: (_o = view.initialViewMetrics.largestContentfulPaint) === null || _o === void 0 ? void 0 : _o.targetSelector,\n load_event: toServerDuration((_p = view.initialViewMetrics.navigationTimings) === null || _p === void 0 ? void 0 : _p.loadEvent),\n loading_time: discardNegativeDuration(toServerDuration(view.commonViewMetrics.loadingTime)),\n loading_type: view.loadingType,\n long_task: {\n count: view.eventCounts.longTaskCount,\n },\n resource: {\n count: view.eventCounts.resourceCount,\n },\n time_spent: toServerDuration(view.duration),\n in_foreground_periods: !pageStatesEnabled && pageStates ? mapToForegroundPeriods(pageStates, view.duration) : undefined, // Todo: Remove in the next major release\n },\n feature_flags: featureFlagContext && !isEmptyObject(featureFlagContext) ? featureFlagContext : undefined,\n display: view.commonViewMetrics.scroll\n ? {\n scroll: {\n max_depth: view.commonViewMetrics.scroll.maxDepth,\n max_depth_scroll_top: view.commonViewMetrics.scroll.maxDepthScrollTop,\n max_scroll_height: view.commonViewMetrics.scroll.maxScrollHeight,\n max_scroll_height_time: toServerDuration(view.commonViewMetrics.scroll.maxScrollHeightTime),\n },\n }\n : undefined,\n session: {\n has_replay: replayStats ? true : undefined,\n is_active: view.sessionIsActive ? undefined : false,\n },\n privacy: {\n replay_level: configuration.defaultPrivacyLevel,\n },\n };\n if (!isEmptyObject(view.customTimings)) {\n viewEvent.view.custom_timings = mapValues(view.customTimings, toServerDuration);\n }\n return {\n rawRumEvent: viewEvent,\n startTime: view.startClocks.relative,\n domainContext: {\n location: view.location,\n },\n };\n}\nfunction discardNegativeDuration(duration) {\n return isNumber(duration) && duration < 0 ? undefined : duration;\n}\n//# sourceMappingURL=viewCollection.js.map","import { ValueHistory } from '../../tools/valueHistory';\nimport { relativeNow, clocksOrigin, ONE_MINUTE } from '../../tools/utils/timeUtils';\nimport { addEventListener, addEventListeners } from '../../browser/addEventListener';\nimport { clearInterval, setInterval } from '../../tools/timer';\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants';\nimport { startSessionStore } from './sessionStore';\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE;\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY;\nvar stopCallbacks = [];\nexport function startSessionManager(configuration, productKey, computeSessionState) {\n // TODO - Improve configuration type and remove assertion\n var sessionStore = startSessionStore(configuration.sessionStoreStrategyType, productKey, computeSessionState);\n stopCallbacks.push(function () { return sessionStore.stop(); });\n var sessionContextHistory = new ValueHistory(SESSION_CONTEXT_TIMEOUT_DELAY);\n stopCallbacks.push(function () { return sessionContextHistory.stop(); });\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow());\n });\n sessionStore.expireObservable.subscribe(function () {\n sessionContextHistory.closeActive(relativeNow());\n });\n sessionStore.expandOrRenewSession();\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative);\n trackActivity(configuration, function () { return sessionStore.expandOrRenewSession(); });\n trackVisibility(configuration, function () { return sessionStore.expandSession(); });\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey],\n };\n }\n return {\n findActiveSession: function (startTime) { return sessionContextHistory.find(startTime); },\n renewObservable: sessionStore.renewObservable,\n expireObservable: sessionStore.expireObservable,\n expire: sessionStore.expire,\n };\n}\nexport function stopSessionManager() {\n stopCallbacks.forEach(function (e) { return e(); });\n stopCallbacks = [];\n}\nfunction trackActivity(configuration, expandOrRenewSession) {\n var stop = addEventListeners(configuration, window, [\"click\" /* DOM_EVENT.CLICK */, \"touchstart\" /* DOM_EVENT.TOUCH_START */, \"keydown\" /* DOM_EVENT.KEY_DOWN */, \"scroll\" /* DOM_EVENT.SCROLL */], expandOrRenewSession, { capture: true, passive: true }).stop;\n stopCallbacks.push(stop);\n}\nfunction trackVisibility(configuration, expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession();\n }\n };\n var stop = addEventListener(configuration, document, \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */, expandSessionWhenVisible).stop;\n stopCallbacks.push(stop);\n var visibilityCheckInterval = setInterval(expandSessionWhenVisible, VISIBILITY_CHECK_DELAY);\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval);\n });\n}\n//# sourceMappingURL=sessionManager.js.map","import { Observable, noop, performDraw, startSessionManager } from '@datadog/browser-core';\nexport var RUM_SESSION_KEY = 'rum';\nexport function startRumSessionManager(configuration, lifeCycle) {\n var sessionManager = startSessionManager(configuration, RUM_SESSION_KEY, function (rawTrackingType) {\n return computeSessionState(configuration, rawTrackingType);\n });\n sessionManager.expireObservable.subscribe(function () {\n lifeCycle.notify(7 /* LifeCycleEventType.SESSION_EXPIRED */);\n });\n sessionManager.renewObservable.subscribe(function () {\n lifeCycle.notify(8 /* LifeCycleEventType.SESSION_RENEWED */);\n });\n return {\n findTrackedSession: function (startTime) {\n var session = sessionManager.findActiveSession(startTime);\n if (!session || !isTypeTracked(session.trackingType)) {\n return;\n }\n var plan = session.trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */\n ? 2 /* RumSessionPlan.WITH_SESSION_REPLAY */\n : 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */;\n return {\n id: session.id,\n plan: plan,\n sessionReplayAllowed: plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n longTaskAllowed: configuration.trackLongTasks !== undefined\n ? configuration.trackLongTasks\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n resourceAllowed: configuration.trackResources !== undefined\n ? configuration.trackResources\n : configuration.oldPlansBehavior && plan === 2 /* RumSessionPlan.WITH_SESSION_REPLAY */,\n };\n },\n expire: sessionManager.expire,\n expireObservable: sessionManager.expireObservable,\n };\n}\n/**\n * Start a tracked replay session stub\n */\nexport function startRumSessionManagerStub() {\n var session = {\n id: '00000000-aaaa-0000-aaaa-000000000000',\n plan: 1 /* RumSessionPlan.WITHOUT_SESSION_REPLAY */,\n sessionReplayAllowed: false,\n longTaskAllowed: true,\n resourceAllowed: true,\n };\n return {\n findTrackedSession: function () { return session; },\n expire: noop,\n expireObservable: new Observable(),\n };\n}\nfunction computeSessionState(configuration, rawTrackingType) {\n var trackingType;\n if (hasValidRumSession(rawTrackingType)) {\n trackingType = rawTrackingType;\n }\n else if (!performDraw(configuration.sessionSampleRate)) {\n trackingType = \"0\" /* RumTrackingType.NOT_TRACKED */;\n }\n else if (!performDraw(configuration.sessionReplaySampleRate)) {\n trackingType = \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */;\n }\n else {\n trackingType = \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */;\n }\n return {\n trackingType: trackingType,\n isTracked: isTypeTracked(trackingType),\n };\n}\nfunction hasValidRumSession(trackingType) {\n return (trackingType === \"0\" /* RumTrackingType.NOT_TRACKED */ ||\n trackingType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */ ||\n trackingType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */);\n}\nfunction isTypeTracked(rumSessionType) {\n return (rumSessionType === \"2\" /* RumTrackingType.TRACKED_WITHOUT_SESSION_REPLAY */ ||\n rumSessionType === \"1\" /* RumTrackingType.TRACKED_WITH_SESSION_REPLAY */);\n}\n//# sourceMappingURL=rumSessionManager.js.map","import { display } from '../tools/display';\nimport { objectValues } from '../tools/utils/polyfills';\nimport { isPageExitReason } from '../browser/pageExitObservable';\nimport { computeBytesCount } from '../tools/utils/byteUtils';\nimport { jsonStringify } from '../tools/serialisation/jsonStringify';\nvar Batch = /** @class */ (function () {\n function Batch(request, flushController, messageBytesLimit) {\n var _this = this;\n this.request = request;\n this.flushController = flushController;\n this.messageBytesLimit = messageBytesLimit;\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n this.flushSubscription = this.flushController.flushObservable.subscribe(function (event) { return _this.flush(event); });\n }\n Batch.prototype.add = function (message) {\n this.addOrUpdate(message);\n };\n Batch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key);\n };\n Batch.prototype.stop = function () {\n this.flushSubscription.unsubscribe();\n };\n Batch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(objectValues(this.upsertBuffer));\n this.pushOnlyBuffer = [];\n this.upsertBuffer = {};\n var payload = { data: messages.join('\\n'), bytesCount: event.bytesCount, flushReason: event.reason };\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload);\n }\n else {\n this.request.send(payload);\n }\n };\n Batch.prototype.addOrUpdate = function (message, key) {\n var _a = this.process(message), processedMessage = _a.processedMessage, messageBytesCount = _a.messageBytesCount;\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\"Discarded a message whose size was bigger than the maximum allowed size \".concat(this.messageBytesLimit, \"KB.\"));\n return;\n }\n if (this.hasMessageFor(key)) {\n this.remove(key);\n }\n this.push(processedMessage, messageBytesCount, key);\n };\n Batch.prototype.process = function (message) {\n var processedMessage = jsonStringify(message);\n var messageBytesCount = computeBytesCount(processedMessage);\n return { processedMessage: processedMessage, messageBytesCount: messageBytesCount };\n };\n Batch.prototype.push = function (processedMessage, messageBytesCount, key) {\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 0 ? 1 : 0;\n this.flushController.notifyBeforeAddMessage(messageBytesCount + separatorBytesCount);\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage;\n }\n else {\n this.pushOnlyBuffer.push(processedMessage);\n }\n this.flushController.notifyAfterAddMessage();\n };\n Batch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key];\n delete this.upsertBuffer[key];\n var messageBytesCount = computeBytesCount(removedMessage);\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.messagesCount > 1 ? 1 : 0;\n this.flushController.notifyAfterRemoveMessage(messageBytesCount + separatorBytesCount);\n };\n Batch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined;\n };\n return Batch;\n}());\nexport { Batch };\n//# sourceMappingURL=batch.js.map","import { setTimeout } from '../tools/timer';\nimport { clocksNow, ONE_MINUTE, ONE_SECOND } from '../tools/utils/timeUtils';\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../tools/utils/byteUtils';\nimport { isServerError } from '../tools/utils/responseUtils';\nimport { ErrorSource } from '../domain/error/error.types';\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE;\nexport var MAX_ONGOING_REQUESTS = 32;\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE;\nexport var MAX_BACKOFF_TIME = ONE_MINUTE;\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND;\nexport function sendWithRetryStrategy(payload, state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus === 0 /* TransportStatus.UP */ &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)) {\n send(payload, state, sendStrategy, {\n onSuccess: function () { return retryQueuedPayloads(0 /* RetryReason.AFTER_SUCCESS */, state, sendStrategy, endpointType, reportError); },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }\n else {\n state.queuedPayloads.enqueue(payload);\n }\n}\nfunction scheduleRetry(state, sendStrategy, endpointType, reportError) {\n if (state.transportStatus !== 2 /* TransportStatus.DOWN */) {\n return;\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first();\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue();\n state.currentBackoffTime = INITIAL_BACKOFF_TIME;\n retryQueuedPayloads(1 /* RetryReason.AFTER_RESUME */, state, sendStrategy, endpointType, reportError);\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(MAX_BACKOFF_TIME, state.currentBackoffTime * 2);\n scheduleRetry(state, sendStrategy, endpointType, reportError);\n },\n });\n }, state.currentBackoffTime);\n}\nfunction send(payload, state, sendStrategy, _a) {\n var onSuccess = _a.onSuccess, onFailure = _a.onFailure;\n state.bandwidthMonitor.add(payload);\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload);\n if (!shouldRetryRequest(response)) {\n state.transportStatus = 0 /* TransportStatus.UP */;\n onSuccess();\n }\n else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0 ? 1 /* TransportStatus.FAILURE_DETECTED */ : 2 /* TransportStatus.DOWN */;\n payload.retry = {\n count: payload.retry ? payload.retry.count + 1 : 1,\n lastFailureStatus: response.status,\n };\n onFailure();\n }\n });\n}\nfunction retryQueuedPayloads(reason, state, sendStrategy, endpointType, reportError) {\n if (reason === 0 /* RetryReason.AFTER_SUCCESS */ && state.queuedPayloads.isFull() && !state.queueFullReported) {\n reportError({\n message: \"Reached max \".concat(endpointType, \" events size queued for upload: \").concat(MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE, \"MiB\"),\n source: ErrorSource.AGENT,\n startClocks: clocksNow(),\n });\n state.queueFullReported = true;\n }\n var previousQueue = state.queuedPayloads;\n state.queuedPayloads = newPayloadQueue();\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(previousQueue.dequeue(), state, sendStrategy, endpointType, reportError);\n }\n}\nfunction shouldRetryRequest(response) {\n return (response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n isServerError(response.status)));\n}\nexport function newRetryState() {\n return {\n transportStatus: 0 /* TransportStatus.UP */,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false,\n };\n}\nfunction newPayloadQueue() {\n var queue = [];\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return;\n }\n queue.push(payload);\n this.bytesCount += payload.bytesCount;\n },\n first: function () {\n return queue[0];\n },\n dequeue: function () {\n var payload = queue.shift();\n if (payload) {\n this.bytesCount -= payload.bytesCount;\n }\n return payload;\n },\n size: function () {\n return queue.length;\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT;\n },\n };\n}\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <= MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS));\n },\n add: function (payload) {\n this.ongoingRequestCount += 1;\n this.ongoingByteCount += payload.bytesCount;\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1;\n this.ongoingByteCount -= payload.bytesCount;\n },\n };\n}\n//# sourceMappingURL=sendWithRetryStrategy.js.map","import { addTelemetryError } from '../domain/telemetry';\nimport { monitor } from '../tools/monitor';\nimport { addEventListener } from '../browser/addEventListener';\nimport { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy';\nexport function createHttpRequest(configuration, endpointBuilder, bytesLimit, reportError) {\n var retryState = newRetryState();\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse);\n };\n return {\n send: function (payload) {\n sendWithRetryStrategy(payload, retryState, sendStrategyForRetry, endpointBuilder.endpointType, reportError);\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload);\n },\n };\n}\nfunction sendBeaconStrategy(configuration, endpointBuilder, bytesLimit, payload) {\n var canUseBeacon = !!navigator.sendBeacon && payload.bytesCount < bytesLimit;\n if (canUseBeacon) {\n try {\n var beaconUrl = endpointBuilder.build('beacon', payload);\n var isQueued = navigator.sendBeacon(beaconUrl, payload.data);\n if (isQueued) {\n return;\n }\n }\n catch (e) {\n reportBeaconError(e);\n }\n }\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data);\n}\nvar hasReportedBeaconError = false;\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true;\n addTelemetryError(e);\n }\n}\nexport function fetchKeepAliveStrategy(configuration, endpointBuilder, bytesLimit, payload, onResponse) {\n var canUseKeepAlive = isKeepAliveSupported() && payload.bytesCount < bytesLimit;\n if (canUseKeepAlive) {\n var fetchUrl = endpointBuilder.build('fetch', payload);\n fetch(fetchUrl, { method: 'POST', body: payload.data, keepalive: true, mode: 'cors' }).then(monitor(function (response) { return onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: response.status, type: response.type }); }), monitor(function () {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n // failed to queue the request\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }));\n }\n else {\n var xhrUrl = endpointBuilder.build('xhr', payload);\n sendXHR(configuration, xhrUrl, payload.data, onResponse);\n }\n}\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a');\n }\n catch (_a) {\n return false;\n }\n}\nexport function sendXHR(configuration, url, data, onResponse) {\n var request = new XMLHttpRequest();\n request.open('POST', url, true);\n addEventListener(configuration, request, 'loadend', function () {\n onResponse === null || onResponse === void 0 ? void 0 : onResponse({ status: request.status });\n }, {\n // prevent multiple onResponse callbacks\n // if the xhr instance is reused by a third party\n once: true,\n });\n request.send(data);\n}\n//# sourceMappingURL=httpRequest.js.map","import { Observable } from '../tools/observable';\nimport { clearTimeout, setTimeout } from '../tools/timer';\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController(_a) {\n var messagesLimit = _a.messagesLimit, bytesLimit = _a.bytesLimit, durationLimit = _a.durationLimit, pageExitObservable = _a.pageExitObservable, sessionExpireObservable = _a.sessionExpireObservable;\n var pageExitSubscription = pageExitObservable.subscribe(function (event) { return flush(event.reason); });\n var sessionExpireSubscription = sessionExpireObservable.subscribe(function () { return flush('session_expire'); });\n var flushObservable = new Observable(function () { return function () {\n pageExitSubscription.unsubscribe();\n sessionExpireSubscription.unsubscribe();\n }; });\n var currentBytesCount = 0;\n var currentMessagesCount = 0;\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return;\n }\n var messagesCount = currentMessagesCount;\n var bytesCount = currentBytesCount;\n currentMessagesCount = 0;\n currentBytesCount = 0;\n cancelDurationLimitTimeout();\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount,\n });\n }\n var durationLimitTimeoutId;\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit');\n }, durationLimit);\n }\n }\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId);\n durationLimitTimeoutId = undefined;\n }\n return {\n flushObservable: flushObservable,\n get messagesCount() {\n return currentMessagesCount;\n },\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1;\n currentBytesCount += messageBytesCount;\n scheduleDurationLimitTimeout();\n },\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit');\n }\n else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit');\n }\n },\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount;\n currentMessagesCount -= 1;\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout();\n }\n },\n };\n}\n//# sourceMappingURL=flushController.js.map","import { Batch } from './batch';\nimport { createHttpRequest } from './httpRequest';\nimport { createFlushController } from './flushController';\nexport function startBatchWithReplica(configuration, primary, replica, reportError, pageExitObservable, sessionExpireObservable) {\n var primaryBatch = createBatch(configuration, primary.endpoint);\n var replicaBatch = replica && createBatch(configuration, replica.endpoint);\n function createBatch(configuration, endpointBuilder) {\n return new Batch(createHttpRequest(configuration, endpointBuilder, configuration.batchBytesLimit, reportError), createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable,\n }), configuration.messageBytesLimit);\n }\n return {\n flushObservable: primaryBatch.flushController.flushObservable,\n add: function (message, replicated) {\n if (replicated === void 0) { replicated = true; }\n primaryBatch.add(message);\n if (replicaBatch && replicated) {\n replicaBatch.add(replica.transformMessage ? replica.transformMessage(message) : message);\n }\n },\n upsert: function (message, key) {\n primaryBatch.upsert(message, key);\n if (replicaBatch) {\n replicaBatch.upsert(replica.transformMessage ? replica.transformMessage(message) : message, key);\n }\n },\n stop: function () {\n primaryBatch.stop();\n replicaBatch === null || replicaBatch === void 0 ? void 0 : replicaBatch.stop();\n },\n };\n}\n//# sourceMappingURL=startBatchWithReplica.js.map","import { combine, isTelemetryReplicationAllowed, startBatchWithReplica } from '@datadog/browser-core';\nexport function startRumBatch(configuration, lifeCycle, telemetryEventObservable, reportError, pageExitObservable, sessionExpireObservable) {\n var replica = configuration.replica;\n var batch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n }, replica && {\n endpoint: replica.rumEndpointBuilder,\n transformMessage: function (message) { return combine(message, { application: { id: replica.applicationId } }); },\n }, reportError, pageExitObservable, sessionExpireObservable);\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n if (serverRumEvent.type === \"view\" /* RumEventType.VIEW */) {\n batch.upsert(serverRumEvent, serverRumEvent.view.id);\n }\n else {\n batch.add(serverRumEvent);\n }\n });\n telemetryEventObservable.subscribe(function (event) { return batch.add(event, isTelemetryReplicationAllowed(configuration)); });\n return batch;\n}\n//# sourceMappingURL=startRumBatch.js.map","import { getEventBridge } from '@datadog/browser-core';\nexport function startRumEventBridge(lifeCycle) {\n var bridge = getEventBridge();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (serverRumEvent) {\n bridge.send('rum', serverRumEvent);\n });\n}\n//# sourceMappingURL=startRumEventBridge.js.map","import { SESSION_TIME_OUT_DELAY, relativeNow, ValueHistory } from '@datadog/browser-core';\n/**\n * We want to attach to an event:\n * - the url corresponding to its start\n * - the referrer corresponding to the previous view url (or document referrer for initial view)\n */\nexport var URL_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startUrlContexts(lifeCycle, locationChangeObservable, location) {\n var urlContextHistory = new ValueHistory(URL_CONTEXT_TIME_OUT_DELAY);\n var previousViewUrl;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n urlContextHistory.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n var viewUrl = location.href;\n urlContextHistory.add(buildUrlContext({\n url: viewUrl,\n referrer: !previousViewUrl ? document.referrer : previousViewUrl,\n }), startClocks.relative);\n previousViewUrl = viewUrl;\n });\n var locationChangeSubscription = locationChangeObservable.subscribe(function (_a) {\n var newLocation = _a.newLocation;\n var current = urlContextHistory.find();\n if (current) {\n var changeTime = relativeNow();\n urlContextHistory.closeActive(changeTime);\n urlContextHistory.add(buildUrlContext({\n url: newLocation.href,\n referrer: current.referrer,\n }), changeTime);\n }\n });\n function buildUrlContext(_a) {\n var url = _a.url, referrer = _a.referrer;\n return {\n url: url,\n referrer: referrer,\n };\n }\n return {\n findUrl: function (startTime) { return urlContextHistory.find(startTime); },\n stop: function () {\n locationChangeSubscription.unsubscribe();\n urlContextHistory.stop();\n },\n };\n}\n//# sourceMappingURL=urlContexts.js.map","import { addEventListener, instrumentMethodAndCallOriginal, Observable, shallowClone, } from '@datadog/browser-core';\nexport function createLocationChangeObservable(configuration, location) {\n var currentLocation = shallowClone(location);\n var observable = new Observable(function () {\n var stopHistoryTracking = trackHistory(configuration, onLocationChange).stop;\n var stopHashTracking = trackHash(configuration, onLocationChange).stop;\n return function () {\n stopHistoryTracking();\n stopHashTracking();\n };\n });\n function onLocationChange() {\n if (currentLocation.href === location.href) {\n return;\n }\n var newLocation = shallowClone(location);\n observable.notify({\n newLocation: newLocation,\n oldLocation: currentLocation,\n });\n currentLocation = newLocation;\n }\n return observable;\n}\nfunction trackHistory(configuration, onHistoryChange) {\n var stopInstrumentingPushState = instrumentMethodAndCallOriginal(history, 'pushState', {\n after: onHistoryChange,\n }).stop;\n var stopInstrumentingReplaceState = instrumentMethodAndCallOriginal(history, 'replaceState', {\n after: onHistoryChange,\n }).stop;\n var removeListener = addEventListener(configuration, window, \"popstate\" /* DOM_EVENT.POP_STATE */, onHistoryChange).stop;\n return {\n stop: function () {\n stopInstrumentingPushState();\n stopInstrumentingReplaceState();\n removeListener();\n },\n };\n}\nfunction trackHash(configuration, onHashChange) {\n return addEventListener(configuration, window, \"hashchange\" /* DOM_EVENT.HASH_CHANGE */, onHashChange);\n}\n//# sourceMappingURL=locationChangeObservable.js.map","import { warnIfCustomerDataLimitReached, throttle, jsonStringify, computeBytesCount, noop, isExperimentalFeatureEnabled, SESSION_TIME_OUT_DELAY, ValueHistory, ExperimentalFeature, } from '@datadog/browser-core';\nexport var FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport var BYTES_COMPUTATION_THROTTLING_DELAY = 200;\n/**\n * Start feature flag contexts\n *\n * Feature flag contexts follow the life of views.\n * A new context is added when a view is created and ended when the view is ended\n *\n * Note: we choose not to add a new context at each evaluation to save memory\n */\nexport function startFeatureFlagContexts(lifeCycle, computeBytesCountImpl) {\n if (computeBytesCountImpl === void 0) { computeBytesCountImpl = computeBytesCount; }\n if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_FLAGS)) {\n return {\n findFeatureFlagEvaluations: function () { return undefined; },\n getFeatureFlagBytesCount: function () { return 0; },\n addFeatureFlagEvaluation: noop,\n stop: noop,\n };\n }\n var featureFlagContexts = new ValueHistory(FEATURE_FLAG_CONTEXT_TIME_OUT_DELAY);\n var bytesCountCache = 0;\n var alreadyWarned = false;\n lifeCycle.subscribe(4 /* LifeCycleEventType.VIEW_ENDED */, function (_a) {\n var endClocks = _a.endClocks;\n featureFlagContexts.closeActive(endClocks.relative);\n });\n lifeCycle.subscribe(2 /* LifeCycleEventType.VIEW_CREATED */, function (_a) {\n var startClocks = _a.startClocks;\n featureFlagContexts.add({}, startClocks.relative);\n bytesCountCache = 0;\n });\n // Throttle the bytes computation to minimize the impact on performance.\n // Especially useful if the user call addFeatureFlagEvaluation API synchronously multiple times in a row\n var _a = throttle(function (context) {\n bytesCountCache = computeBytesCountImpl(jsonStringify(context));\n if (!alreadyWarned) {\n alreadyWarned = warnIfCustomerDataLimitReached(bytesCountCache, 0 /* CustomerDataType.FeatureFlag */);\n }\n }, BYTES_COMPUTATION_THROTTLING_DELAY), computeBytesCountThrottled = _a.throttled, cancelPendingComputation = _a.cancel;\n return {\n findFeatureFlagEvaluations: function (startTime) { return featureFlagContexts.find(startTime); },\n getFeatureFlagBytesCount: function () {\n var currentContext = featureFlagContexts.find();\n if (!currentContext) {\n return 0;\n }\n return bytesCountCache;\n },\n addFeatureFlagEvaluation: function (key, value) {\n var currentContext = featureFlagContexts.find();\n if (currentContext) {\n currentContext[key] = value;\n computeBytesCountThrottled(currentContext);\n }\n },\n stop: cancelPendingComputation,\n };\n}\n//# sourceMappingURL=featureFlagContext.js.map","import { isEmptyObject, includes, performDraw, ONE_SECOND, addTelemetryDebug, setInterval } from '@datadog/browser-core';\nexport var MEASURES_PERIOD_DURATION = 10 * ONE_SECOND;\nvar currentPeriodMeasures;\nvar currentBatchMeasures;\nvar batchHasRumEvent;\nexport function startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batchFlushObservable) {\n var customerDataTelemetryEnabled = telemetry.enabled && performDraw(configuration.customerDataTelemetrySampleRate);\n if (!customerDataTelemetryEnabled) {\n return;\n }\n initCurrentPeriodMeasures();\n initCurrentBatchMeasures();\n // We measure the data of every view updates even if there could only be one per batch due to the upsert\n // It means that contexts bytes count sums can be higher than it really is\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) {\n batchHasRumEvent = true;\n updateMeasure(currentBatchMeasures.globalContextBytes, !isEmptyObject(globalContextManager.get()) ? globalContextManager.getBytesCount() : 0);\n updateMeasure(currentBatchMeasures.userContextBytes, !isEmptyObject(userContextManager.get()) ? userContextManager.getBytesCount() : 0);\n var featureFlagContext = featureFlagContexts.findFeatureFlagEvaluations();\n var hasFeatureFlagContext = includes([\"view\" /* RumEventType.VIEW */, \"error\" /* RumEventType.ERROR */], event.type) &&\n featureFlagContext &&\n !isEmptyObject(featureFlagContext);\n updateMeasure(currentBatchMeasures.featureFlagBytes, hasFeatureFlagContext ? featureFlagContexts.getFeatureFlagBytesCount() : 0);\n });\n batchFlushObservable.subscribe(function (_a) {\n var bytesCount = _a.bytesCount, messagesCount = _a.messagesCount;\n // Don't measure batch that only contains telemetry events to avoid batch sending loop\n // It could happen because after each batch we are adding a customer data measures telemetry event to the next one\n if (!batchHasRumEvent) {\n return;\n }\n currentPeriodMeasures.batchCount += 1;\n updateMeasure(currentPeriodMeasures.batchBytesCount, bytesCount);\n updateMeasure(currentPeriodMeasures.batchMessagesCount, messagesCount);\n mergeMeasure(currentPeriodMeasures.globalContextBytes, currentBatchMeasures.globalContextBytes);\n mergeMeasure(currentPeriodMeasures.userContextBytes, currentBatchMeasures.userContextBytes);\n mergeMeasure(currentPeriodMeasures.featureFlagBytes, currentBatchMeasures.featureFlagBytes);\n initCurrentBatchMeasures();\n });\n setInterval(sendCurrentPeriodMeasures, MEASURES_PERIOD_DURATION);\n}\nfunction sendCurrentPeriodMeasures() {\n if (currentPeriodMeasures.batchCount === 0) {\n return;\n }\n addTelemetryDebug('Customer data measures', currentPeriodMeasures);\n initCurrentPeriodMeasures();\n}\nfunction createMeasure() {\n return { min: Infinity, max: 0, sum: 0 };\n}\nfunction updateMeasure(measure, value) {\n measure.sum += value;\n measure.min = Math.min(measure.min, value);\n measure.max = Math.max(measure.max, value);\n}\nfunction mergeMeasure(target, source) {\n target.sum += source.sum;\n target.min = Math.min(target.min, source.min);\n target.max = Math.max(target.max, source.max);\n}\nfunction initCurrentPeriodMeasures() {\n currentPeriodMeasures = {\n batchCount: 0,\n batchBytesCount: createMeasure(),\n batchMessagesCount: createMeasure(),\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\nfunction initCurrentBatchMeasures() {\n batchHasRumEvent = false;\n currentBatchMeasures = {\n globalContextBytes: createMeasure(),\n userContextBytes: createMeasure(),\n featureFlagBytes: createMeasure(),\n };\n}\n//# sourceMappingURL=startCustomerDataTelemetry.js.map","import { elapsed, ValueHistory, SESSION_TIME_OUT_DELAY, toServerDuration, addEventListeners, relativeNow, } from '@datadog/browser-core';\n// Arbitrary value to cap number of element for memory consumption in the browser\nexport var MAX_PAGE_STATE_ENTRIES = 4000;\n// Arbitrary value to cap number of element for backend & to save bandwidth\nexport var MAX_PAGE_STATE_ENTRIES_SELECTABLE = 500;\nexport var PAGE_STATE_CONTEXT_TIME_OUT_DELAY = SESSION_TIME_OUT_DELAY;\nexport function startPageStateHistory(configuration, maxPageStateEntriesSelectable) {\n if (maxPageStateEntriesSelectable === void 0) { maxPageStateEntriesSelectable = MAX_PAGE_STATE_ENTRIES_SELECTABLE; }\n var pageStateHistory = new ValueHistory(PAGE_STATE_CONTEXT_TIME_OUT_DELAY, MAX_PAGE_STATE_ENTRIES);\n var currentPageState;\n addPageState(getPageState(), relativeNow());\n var stopEventListeners = addEventListeners(configuration, window, [\n \"pageshow\" /* DOM_EVENT.PAGE_SHOW */,\n \"focus\" /* DOM_EVENT.FOCUS */,\n \"blur\" /* DOM_EVENT.BLUR */,\n \"visibilitychange\" /* DOM_EVENT.VISIBILITY_CHANGE */,\n \"resume\" /* DOM_EVENT.RESUME */,\n \"freeze\" /* DOM_EVENT.FREEZE */,\n \"pagehide\" /* DOM_EVENT.PAGE_HIDE */,\n ], function (event) {\n // Only get events fired by the browser to avoid false currentPageState changes done with custom events\n // cf: developer extension auto flush: https://github.com/DataDog/browser-sdk/blob/2f72bf05a672794c9e33965351964382a94c72ba/developer-extension/src/panel/flushEvents.ts#L11-L12\n if (event.isTrusted) {\n addPageState(computePageState(event), event.timeStamp);\n }\n }, { capture: true }).stop;\n function addPageState(nextPageState, startTime) {\n if (startTime === void 0) { startTime = relativeNow(); }\n if (nextPageState === currentPageState) {\n return;\n }\n currentPageState = nextPageState;\n pageStateHistory.closeActive(startTime);\n pageStateHistory.add({ state: currentPageState, startTime: startTime }, startTime);\n }\n return {\n findAll: function (eventStartTime, duration) {\n var pageStateEntries = pageStateHistory.findAll(eventStartTime, duration);\n if (pageStateEntries.length === 0) {\n return;\n }\n var pageStateServerEntries = [];\n // limit the number of entries to return\n var limit = Math.max(0, pageStateEntries.length - maxPageStateEntriesSelectable);\n // loop page state entries backward to return the selected ones in desc order\n for (var index = pageStateEntries.length - 1; index >= limit; index--) {\n var pageState = pageStateEntries[index];\n // compute the start time relative to the event start time (ex: to be relative to the view start time)\n var relativeStartTime = elapsed(eventStartTime, pageState.startTime);\n pageStateServerEntries.push({\n state: pageState.state,\n start: toServerDuration(relativeStartTime),\n });\n }\n return pageStateServerEntries;\n },\n isInActivePageStateAt: function (startTime) {\n var pageStateEntry = pageStateHistory.find(startTime);\n return pageStateEntry !== undefined && pageStateEntry.state === \"active\" /* PageState.ACTIVE */;\n },\n addPageState: addPageState,\n stop: function () {\n stopEventListeners();\n pageStateHistory.stop();\n },\n };\n}\nfunction computePageState(event) {\n if (event.type === \"freeze\" /* DOM_EVENT.FREEZE */) {\n return \"frozen\" /* PageState.FROZEN */;\n }\n else if (event.type === \"pagehide\" /* DOM_EVENT.PAGE_HIDE */) {\n return event.persisted ? \"frozen\" /* PageState.FROZEN */ : \"terminated\" /* PageState.TERMINATED */;\n }\n return getPageState();\n}\nfunction getPageState() {\n if (document.visibilityState === 'hidden') {\n return \"hidden\" /* PageState.HIDDEN */;\n }\n if (document.hasFocus()) {\n return \"active\" /* PageState.ACTIVE */;\n }\n return \"passive\" /* PageState.PASSIVE */;\n}\n//# sourceMappingURL=pageStateHistory.js.map","import { getViewportDimension, initViewportObservable } from '../../browser/viewportObservable';\nexport function startDisplayContext(configuration) {\n var viewport = getViewportDimension();\n var unsubscribeViewport = initViewportObservable(configuration).subscribe(function (viewportDimension) {\n viewport = viewportDimension;\n }).unsubscribe;\n return {\n get: function () { return ({ viewport: viewport }); },\n stop: unsubscribeViewport,\n };\n}\n//# sourceMappingURL=displayContext.js.map","import { sendToExtension, createPageExitObservable, addTelemetryConfiguration, startTelemetry, canUseEventBridge, getEventBridge, addTelemetryDebug, } from '@datadog/browser-core';\nimport { createDOMMutationObservable } from '../browser/domMutationObservable';\nimport { startPerformanceCollection } from '../browser/performanceCollection';\nimport { startRumAssembly } from '../domain/assembly';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startViewContexts } from '../domain/contexts/viewContexts';\nimport { startRequestCollection } from '../domain/requestCollection';\nimport { startActionCollection } from '../domain/action/actionCollection';\nimport { startErrorCollection } from '../domain/error/errorCollection';\nimport { startLongTaskCollection } from '../domain/longTask/longTaskCollection';\nimport { startResourceCollection } from '../domain/resource/resourceCollection';\nimport { startViewCollection } from '../domain/view/viewCollection';\nimport { startRumSessionManager, startRumSessionManagerStub } from '../domain/rumSessionManager';\nimport { startRumBatch } from '../transport/startRumBatch';\nimport { startRumEventBridge } from '../transport/startRumEventBridge';\nimport { startUrlContexts } from '../domain/contexts/urlContexts';\nimport { createLocationChangeObservable } from '../browser/locationChangeObservable';\nimport { serializeRumConfiguration } from '../domain/configuration';\nimport { startFeatureFlagContexts } from '../domain/contexts/featureFlagContext';\nimport { startCustomerDataTelemetry } from '../domain/startCustomerDataTelemetry';\nimport { startPageStateHistory } from '../domain/contexts/pageStateHistory';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { startDisplayContext } from '../domain/contexts/displayContext';\nexport function startRum(initConfiguration, configuration, recorderApi, globalContextManager, userContextManager, initialViewOptions) {\n var cleanupTasks = [];\n var lifeCycle = new LifeCycle();\n lifeCycle.subscribe(11 /* LifeCycleEventType.RUM_EVENT_COLLECTED */, function (event) { return sendToExtension('rum', event); });\n var telemetry = startRumTelemetry(configuration);\n telemetry.setContextProvider(function () {\n var _a, _b;\n return ({\n application: {\n id: configuration.applicationId,\n },\n session: {\n id: (_a = session.findTrackedSession()) === null || _a === void 0 ? void 0 : _a.id,\n },\n view: {\n id: (_b = viewContexts.findView()) === null || _b === void 0 ? void 0 : _b.id,\n },\n action: {\n id: actionContexts.findActionId(),\n },\n });\n });\n var reportError = function (error) {\n lifeCycle.notify(12 /* LifeCycleEventType.RAW_ERROR_COLLECTED */, { error: error });\n addTelemetryDebug('Error reported to customer', { 'error.message': error.message });\n };\n var featureFlagContexts = startFeatureFlagContexts(lifeCycle);\n var pageExitObservable = createPageExitObservable(configuration);\n var pageExitSubscription = pageExitObservable.subscribe(function (event) {\n lifeCycle.notify(9 /* LifeCycleEventType.PAGE_EXITED */, event);\n });\n cleanupTasks.push(function () { return pageExitSubscription.unsubscribe(); });\n var session = !canUseEventBridge() ? startRumSessionManager(configuration, lifeCycle) : startRumSessionManagerStub();\n if (!canUseEventBridge()) {\n var batch_1 = startRumBatch(configuration, lifeCycle, telemetry.observable, reportError, pageExitObservable, session.expireObservable);\n cleanupTasks.push(function () { return batch_1.stop(); });\n startCustomerDataTelemetry(configuration, telemetry, lifeCycle, globalContextManager, userContextManager, featureFlagContexts, batch_1.flushObservable);\n }\n else {\n startRumEventBridge(lifeCycle);\n }\n var domMutationObservable = createDOMMutationObservable();\n var locationChangeObservable = createLocationChangeObservable(configuration, location);\n var _a = startRumEventCollection(lifeCycle, configuration, location, session, locationChangeObservable, domMutationObservable, function () { return buildCommonContext(globalContextManager, userContextManager, recorderApi); }, reportError), viewContexts = _a.viewContexts, pageStateHistory = _a.pageStateHistory, urlContexts = _a.urlContexts, actionContexts = _a.actionContexts, addAction = _a.addAction, stopRumEventCollection = _a.stop;\n cleanupTasks.push(stopRumEventCollection);\n addTelemetryConfiguration(serializeRumConfiguration(initConfiguration));\n startLongTaskCollection(lifeCycle, session);\n startResourceCollection(lifeCycle, configuration, session, pageStateHistory);\n var _b = startViewCollection(lifeCycle, configuration, location, domMutationObservable, locationChangeObservable, featureFlagContexts, pageStateHistory, recorderApi, initialViewOptions), addTiming = _b.addTiming, startView = _b.startView, stopViewCollection = _b.stop;\n cleanupTasks.push(stopViewCollection);\n var addError = startErrorCollection(lifeCycle, configuration, pageStateHistory, featureFlagContexts).addError;\n startRequestCollection(lifeCycle, configuration, session);\n startPerformanceCollection(lifeCycle, configuration);\n var internalContext = startInternalContext(configuration.applicationId, session, viewContexts, actionContexts, urlContexts);\n return {\n addAction: addAction,\n addError: addError,\n addTiming: addTiming,\n addFeatureFlagEvaluation: featureFlagContexts.addFeatureFlagEvaluation,\n startView: startView,\n lifeCycle: lifeCycle,\n viewContexts: viewContexts,\n session: session,\n stopSession: function () { return session.expire(); },\n getInternalContext: internalContext.get,\n stop: function () {\n cleanupTasks.forEach(function (task) { return task(); });\n },\n };\n}\nfunction startRumTelemetry(configuration) {\n var telemetry = startTelemetry(\"browser-rum-sdk\" /* TelemetryService.RUM */, configuration);\n if (canUseEventBridge()) {\n var bridge_1 = getEventBridge();\n telemetry.observable.subscribe(function (event) { return bridge_1.send('internal_telemetry', event); });\n }\n return telemetry;\n}\nexport function startRumEventCollection(lifeCycle, configuration, location, sessionManager, locationChangeObservable, domMutationObservable, buildCommonContext, reportError) {\n var viewContexts = startViewContexts(lifeCycle);\n var urlContexts = startUrlContexts(lifeCycle, locationChangeObservable, location);\n var pageStateHistory = startPageStateHistory(configuration);\n var _a = startActionCollection(lifeCycle, domMutationObservable, configuration, pageStateHistory), addAction = _a.addAction, actionContexts = _a.actionContexts;\n var displayContext = startDisplayContext(configuration);\n startRumAssembly(configuration, lifeCycle, sessionManager, viewContexts, urlContexts, actionContexts, displayContext, buildCommonContext, reportError);\n return {\n viewContexts: viewContexts,\n pageStateHistory: pageStateHistory,\n urlContexts: urlContexts,\n addAction: addAction,\n actionContexts: actionContexts,\n stop: function () {\n displayContext.stop();\n pageStateHistory.stop();\n urlContexts.stop();\n viewContexts.stop();\n pageStateHistory.stop();\n },\n };\n}\n//# sourceMappingURL=startRum.js.map","import { INTAKE_SITE_STAGING, INTAKE_SITE_US1, INTAKE_SITE_EU1 } from '@datadog/browser-core';\nexport function getSessionReplayUrl(configuration, _a) {\n var session = _a.session, viewContext = _a.viewContext, errorType = _a.errorType;\n var sessionId = session ? session.id : 'no-session-id';\n var parameters = [];\n if (errorType !== undefined) {\n parameters.push(\"error-type=\".concat(errorType));\n }\n if (viewContext) {\n parameters.push(\"seed=\".concat(viewContext.id));\n parameters.push(\"from=\".concat(viewContext.startClocks.timeStamp));\n }\n var origin = getDatadogSiteUrl(configuration);\n var path = \"/rum/replay/sessions/\".concat(sessionId);\n return \"\".concat(origin).concat(path, \"?\").concat(parameters.join('&'));\n}\nexport function getDatadogSiteUrl(rumConfiguration) {\n var site = rumConfiguration.site;\n var subdomain = rumConfiguration.subdomain || getSiteDefaultSubdomain(rumConfiguration);\n return \"https://\".concat(subdomain ? \"\".concat(subdomain, \".\") : '').concat(site);\n}\nfunction getSiteDefaultSubdomain(configuration) {\n switch (configuration.site) {\n case INTAKE_SITE_US1:\n case INTAKE_SITE_EU1:\n return 'app';\n case INTAKE_SITE_STAGING:\n return 'dd';\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=getSessionReplayUrl.js.map","export { makeRumPublicApi } from './boot/rumPublicApi';\nexport { startRum } from './boot/startRum';\nexport { LifeCycle } from './domain/lifeCycle';\nexport { getMutationObserverConstructor } from './browser/domMutationObservable';\nexport { initViewportObservable, getViewportDimension } from './browser/viewportObservable';\nexport { getScrollX, getScrollY } from './browser/scroll';\nexport { DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE } from './domain/action/getActionNameFromElement';\nexport { STABLE_ATTRIBUTES } from './domain/getSelectorFromElement';\nexport * from './browser/htmlDomUtils';\nexport { getSessionReplayUrl } from './domain/getSessionReplayUrl';\n//# sourceMappingURL=index.js.map","export var RecordType = {\n FullSnapshot: 2,\n IncrementalSnapshot: 3,\n Meta: 4,\n Focus: 6,\n ViewEnd: 7,\n VisualViewport: 8,\n FrustrationRecord: 9,\n};\nexport var NodeType = {\n Document: 0,\n DocumentType: 1,\n Element: 2,\n Text: 3,\n CDATA: 4,\n DocumentFragment: 11,\n};\nexport var IncrementalSource = {\n Mutation: 0,\n MouseMove: 1,\n MouseInteraction: 2,\n Scroll: 3,\n ViewportResize: 4,\n Input: 5,\n TouchMove: 6,\n MediaInteraction: 7,\n StyleSheetRule: 8,\n // CanvasMutation : 9,\n // Font : 10,\n};\nexport var MouseInteractionType = {\n MouseUp: 0,\n MouseDown: 1,\n Click: 2,\n ContextMenu: 3,\n DblClick: 4,\n Focus: 5,\n Blur: 6,\n TouchStart: 7,\n TouchEnd: 9,\n};\nexport var MediaInteractionType = {\n Play: 0,\n Pause: 1,\n};\n//# sourceMappingURL=sessionReplayConstants.js.map","export * from './sessionReplay';\nexport * from './sessionReplayConstants';\n//# sourceMappingURL=index.js.map","import { assign, timeStampNow } from '@datadog/browser-core';\nimport { RecordType } from '../../types';\nexport function assembleIncrementalSnapshot(source, data) {\n return {\n data: assign({\n source: source,\n }, data),\n type: RecordType.IncrementalSnapshot,\n timestamp: timeStampNow(),\n };\n}\n//# sourceMappingURL=assembly.js.map","import { DefaultPrivacyLevel } from '@datadog/browser-core';\nexport var NodePrivacyLevel = {\n IGNORE: 'ignore',\n HIDDEN: 'hidden',\n ALLOW: DefaultPrivacyLevel.ALLOW,\n MASK: DefaultPrivacyLevel.MASK,\n MASK_USER_INPUT: DefaultPrivacyLevel.MASK_USER_INPUT,\n};\nexport var PRIVACY_ATTR_NAME = 'data-dd-privacy';\n// Privacy Attrs\nexport var PRIVACY_ATTR_VALUE_ALLOW = 'allow';\nexport var PRIVACY_ATTR_VALUE_MASK = 'mask';\nexport var PRIVACY_ATTR_VALUE_MASK_USER_INPUT = 'mask-user-input';\nexport var PRIVACY_ATTR_VALUE_HIDDEN = 'hidden';\n// Privacy Classes - not all customers can set plain HTML attributes, so support classes too\nexport var PRIVACY_CLASS_ALLOW = 'dd-privacy-allow';\nexport var PRIVACY_CLASS_MASK = 'dd-privacy-mask';\nexport var PRIVACY_CLASS_MASK_USER_INPUT = 'dd-privacy-mask-user-input';\nexport var PRIVACY_CLASS_HIDDEN = 'dd-privacy-hidden';\n// Private Replacement Templates\nexport var CENSORED_STRING_MARK = '***';\nexport var CENSORED_IMG_MARK = 'data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==';\nexport var FORM_PRIVATE_TAG_NAMES = {\n INPUT: true,\n OUTPUT: true,\n TEXTAREA: true,\n SELECT: true,\n OPTION: true,\n DATALIST: true,\n OPTGROUP: true,\n};\n//# sourceMappingURL=constants.js.map","import { isElementNode, getParentNode, isTextNode } from '@datadog/browser-rum-core';\nimport { NodePrivacyLevel, PRIVACY_ATTR_NAME, PRIVACY_ATTR_VALUE_ALLOW, PRIVACY_ATTR_VALUE_MASK, PRIVACY_ATTR_VALUE_MASK_USER_INPUT, PRIVACY_ATTR_VALUE_HIDDEN, PRIVACY_CLASS_ALLOW, PRIVACY_CLASS_MASK, PRIVACY_CLASS_MASK_USER_INPUT, PRIVACY_CLASS_HIDDEN, FORM_PRIVATE_TAG_NAMES, CENSORED_STRING_MARK, } from '../../constants';\nexport var MAX_ATTRIBUTE_VALUE_CHAR_LENGTH = 100000;\nvar TEXT_MASKING_CHAR = 'x';\n/**\n * Get node privacy level by iterating over its ancestors. When the direct parent privacy level is\n * know, it is best to use something like:\n *\n * derivePrivacyLevelGivenParent(getNodeSelfPrivacyLevel(node), parentNodePrivacyLevel)\n */\nexport function getNodePrivacyLevel(node, defaultPrivacyLevel) {\n var parentNode = getParentNode(node);\n var parentNodePrivacyLevel = parentNode ? getNodePrivacyLevel(parentNode, defaultPrivacyLevel) : defaultPrivacyLevel;\n var selfNodePrivacyLevel = getNodeSelfPrivacyLevel(node);\n return reducePrivacyLevel(selfNodePrivacyLevel, parentNodePrivacyLevel);\n}\n/**\n * Reduces the next privacy level based on self + parent privacy levels\n */\nexport function reducePrivacyLevel(childPrivacyLevel, parentNodePrivacyLevel) {\n switch (parentNodePrivacyLevel) {\n // These values cannot be overridden\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return parentNodePrivacyLevel;\n }\n switch (childPrivacyLevel) {\n case NodePrivacyLevel.ALLOW:\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.MASK_USER_INPUT:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return childPrivacyLevel;\n default:\n return parentNodePrivacyLevel;\n }\n}\n/**\n * Determines the node's own privacy level without checking for ancestors.\n */\nexport function getNodeSelfPrivacyLevel(node) {\n // Only Element types can have a privacy level set\n if (!isElementNode(node)) {\n return;\n }\n var privAttr = node.getAttribute(PRIVACY_ATTR_NAME);\n // Overrules for replay purpose\n if (node.tagName === 'BASE') {\n return NodePrivacyLevel.ALLOW;\n }\n // Overrules to enforce end-user protection\n if (node.tagName === 'INPUT') {\n var inputElement = node;\n if (inputElement.type === 'password' || inputElement.type === 'email' || inputElement.type === 'tel') {\n return NodePrivacyLevel.MASK;\n }\n if (inputElement.type === 'hidden') {\n return NodePrivacyLevel.MASK;\n }\n var autocomplete = inputElement.getAttribute('autocomplete');\n // Handle input[autocomplete=cc-number/cc-csc/cc-exp/cc-exp-month/cc-exp-year]\n if (autocomplete && autocomplete.indexOf('cc-') === 0) {\n return NodePrivacyLevel.MASK;\n }\n }\n // Check HTML privacy attributes and classes\n if (privAttr === PRIVACY_ATTR_VALUE_HIDDEN || node.classList.contains(PRIVACY_CLASS_HIDDEN)) {\n return NodePrivacyLevel.HIDDEN;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK || node.classList.contains(PRIVACY_CLASS_MASK)) {\n return NodePrivacyLevel.MASK;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_MASK_USER_INPUT || node.classList.contains(PRIVACY_CLASS_MASK_USER_INPUT)) {\n return NodePrivacyLevel.MASK_USER_INPUT;\n }\n if (privAttr === PRIVACY_ATTR_VALUE_ALLOW || node.classList.contains(PRIVACY_CLASS_ALLOW)) {\n return NodePrivacyLevel.ALLOW;\n }\n if (shouldIgnoreElement(node)) {\n return NodePrivacyLevel.IGNORE;\n }\n}\n/**\n * Helper aiming to unify `mask` and `mask-user-input` privacy levels:\n *\n * In the `mask` case, it is trivial: we should mask the element.\n *\n * In the `mask-user-input` case, we should mask the element only if it is a \"form\" element or the\n * direct parent is a form element for text nodes).\n *\n * Other `shouldMaskNode` cases are edge cases that should not matter too much (ex: should we mask a\n * node if it is ignored or hidden? it doesn't matter since it won't be serialized).\n */\nexport function shouldMaskNode(node, privacyLevel) {\n switch (privacyLevel) {\n case NodePrivacyLevel.MASK:\n case NodePrivacyLevel.HIDDEN:\n case NodePrivacyLevel.IGNORE:\n return true;\n case NodePrivacyLevel.MASK_USER_INPUT:\n return isTextNode(node) ? isFormElement(node.parentNode) : isFormElement(node);\n default:\n return false;\n }\n}\nfunction isFormElement(node) {\n if (!node || node.nodeType !== node.ELEMENT_NODE) {\n return false;\n }\n var element = node;\n if (element.tagName === 'INPUT') {\n switch (element.type) {\n case 'button':\n case 'color':\n case 'reset':\n case 'submit':\n return false;\n }\n }\n return !!FORM_PRIVATE_TAG_NAMES[element.tagName];\n}\n/**\n * Text censoring non-destructively maintains whitespace characters in order to preserve text shape\n * during replay.\n */\nexport var censorText = function (text) { return text.replace(/\\S/g, TEXT_MASKING_CHAR); };\nexport function getTextContent(textNode, ignoreWhiteSpace, parentNodePrivacyLevel) {\n var _a;\n // The parent node may not be a html element which has a tagName attribute.\n // So just let it be undefined which is ok in this use case.\n var parentTagName = (_a = textNode.parentElement) === null || _a === void 0 ? void 0 : _a.tagName;\n var textContent = textNode.textContent || '';\n if (ignoreWhiteSpace && !textContent.trim()) {\n return;\n }\n var nodePrivacyLevel = parentNodePrivacyLevel;\n var isScript = parentTagName === 'SCRIPT';\n if (isScript) {\n // For perf reasons, we don't record script (heuristic)\n textContent = CENSORED_STRING_MARK;\n }\n else if (nodePrivacyLevel === NodePrivacyLevel.HIDDEN) {\n // Should never occur, but just in case, we set to CENSORED_MARK.\n textContent = CENSORED_STRING_MARK;\n }\n else if (shouldMaskNode(textNode, nodePrivacyLevel)) {\n if (\n // Scrambling the child list breaks text nodes for DATALIST/SELECT/OPTGROUP\n parentTagName === 'DATALIST' ||\n parentTagName === 'SELECT' ||\n parentTagName === 'OPTGROUP') {\n if (!textContent.trim()) {\n return;\n }\n }\n else if (parentTagName === 'OPTION') {\n // \n {AppIcons}\n {/* GSC (Google Search Console) profile as given by Reddico */}\n \n\n {/* Existing GSC profile */}\n \n {/* TODO: Put keys in publicRuntimeConfig */}\n \n \n\n \n\n \n \n \n {/** AppsFlyer Web SDK script (with Smart Banner) */}\n \n {`!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){\n (t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},\n t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,\n o.src=\"https://websdk.appsflyer.com?\"+(c.length>0?\"st=\"+c.split(\",\").sort().join(\",\")+\"&\":\"\")+\n (i.length>0?\"af_id=\"+i:\"\"),p.parentNode.insertBefore(o,p)}(window,document,\"script\",0,\"AF\",\n \"pba,banners\",{pba: {webAppId: \"${APPSFLYER_WEB_DEV_KEY}\", measurementStatus:false}, banners: {key: \"${APPSFLYER_SMART_BANNER_KEY}\"}})\n ;AF('banners', 'showBanner');`}\n \n {/**\n * This script adds Google Tag Manager\n */}\n \n {/** AWS WAF script used to provide challenges or captchas to specific traffic\n * https://docs.aws.amazon.com/waf/latest/developerguide/waf-js-challenge-api.html\n * For now I've added globally since eventually it might be good to ensure all\n * traffic is from a browser\n *\n * Uses afterInteractive since this is the closest match to the recommended \"defer\"\n */}\n \n {/**\n * This script is used to add a class to the body to indicate that JS is enabled\n */}\n \n\n {/* Global seo settings */}\n \n\n \n \n \n \n \n\n {/* Current fix for hiding builder preview pages due to re-render issue for modals */}\n {/* If the CookieModal hasn't been loaded (because the user has already accepted/declined)\n then it shouldn't be rendered. */}\n {!router.asPath.includes('builder.preview') && CookieModal && (\n \n )}\n \n \n \n \n \n \n \n )\n}\n\nexport default MyApp\n","var SDK_VERSION = '7.7.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { logger, getEventDescription, isMatchingPattern } from '@sentry/utils';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n\n/** Options for the InboundFilters integration */\n\n/** Inbound filters configurable by the user */\nclass InboundFilters {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'InboundFilters';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = InboundFilters.id;}\n\n constructor( _options = {}) {;this._options = _options;InboundFilters.prototype.__init.call(this);}\n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcess = (event) => {\n var hub = getCurrentHub();\n if (hub) {\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n };\n\n eventProcess.id = this.name;\n addGlobalEventProcessor(eventProcess);\n }\n} InboundFilters.__initStatic();\n\n/** JSDoc */\nfunction _mergeOptions(\n internalOptions = {},\n clientOptions = {},\n) {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...DEFAULT_IGNORE_ERRORS,\n ],\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n\n/** JSDoc */\nfunction _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`Event dropped due to being internal Sentry Error.\\nEvent: ${getEventDescription(event)}`);\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n return false;\n}\n\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n\n return _getPossibleEventMessages(event).some(message =>\n ignoreErrors.some(pattern => isMatchingPattern(message, pattern)),\n );\n}\n\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(pattern => isMatchingPattern(url, pattern));\n}\n\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n const { type = '', value = '' } = (event.exception.values && event.exception.values[0]) || {};\n return [`${value}`, `${type}: ${value}`];\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract message for event ${getEventDescription(event)}`);\n return [];\n }\n }\n return [];\n}\n\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n return event.exception.values[0].type === 'SentryError';\n } catch (e) {\n // ignore\n }\n return false;\n}\n\nfunction _getLastValidUrl(frames = []) {\n for (let i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event) {\n try {\n let frames;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames = event.exception.values[0].stacktrace.frames;\n } catch (e) {\n // ignore\n }\n return frames ? _getLastValidUrl(frames) : null;\n } catch (oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nexport { InboundFilters, _mergeOptions, _shouldDropEvent };\n//# sourceMappingURL=inboundfilters.js.map\n","import { getOriginalFunction } from '@sentry/utils';\n\nlet originalFunctionToString;\n\n/** Patch toString calls to return proper name for wrapped functions */\nclass FunctionToString {constructor() { FunctionToString.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'FunctionToString';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = FunctionToString.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n originalFunctionToString = Function.prototype.toString;\n\n Function.prototype.toString = function ( ...args) {\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n }\n} FunctionToString.__initStatic();\n\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\nvar installedIntegrations = [];\n\n/** Map of integrations assigned to a client */\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] );\n}\n\n/** Gets integration to install */\nfunction getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n var userIntegrations = options.integrations;\n\n let integrations = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(i => i.name);\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nfunction setupIntegrations(integrations) {\n var integrationIndex = {};\n\n integrations.forEach(integration => {\n integrationIndex[integration.name] = integration;\n\n if (installedIntegrations.indexOf(integration.name) === -1) {\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Integration installed: ${integration.name}`);\n }\n });\n\n return integrationIndex;\n}\n\nexport { getIntegrationsToSetup, installedIntegrations, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n\n/** A class object that can instantiate Client objects. */\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nfunction initAndBind(\n clientClass,\n options,\n) {\n if (options.debug === true) {\n if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n\nexport { initAndBind };\n//# sourceMappingURL=sdk.js.map\n","/** An error emitted by Sentry SDKs and related utilities. */\nclass SentryError extends Error {\n /** Display name of this error instance. */\n \n\n constructor( message) {\n super(message);this.message = message;;\n\n this.name = new.target.prototype.constructor.name;\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport { SentryError };\n//# sourceMappingURL=error.js.map\n","import { SentryError } from './error.js';\n\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nfunction dsnToString(dsn, withPassword = false) {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents\n */\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n\n if (!match) {\n throw new SentryError(`Invalid Sentry Dsn: ${str}`);\n }\n\n const [protocol, publicKey, pass = '', host, port = '', lastPath] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() ;\n }\n\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol , publicKey });\n}\n\nfunction dsnFromComponents(components) {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn) {\n if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {\n return;\n }\n\n const { port, projectId, protocol } = dsn;\n\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(component => {\n if (!dsn[component]) {\n throw new SentryError(`Invalid Sentry Dsn: ${component} missing`);\n }\n });\n\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n }\n\n if (!isValidProtocol(protocol)) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(`Invalid Sentry Dsn: Invalid port ${port}`);\n }\n\n return true;\n}\n\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nfunction makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n\nexport { dsnFromString, dsnToString, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","import { dropUndefinedKeys } from './object.js';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction createEnvelope(headers, items = []) {\n return [headers, items] ;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nfunction addItemToEnvelope(envelope, newItem) {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] ;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n */\nfunction forEachEnvelopeItem(\n envelope,\n callback,\n) {\n var envelopeItems = envelope[1];\n envelopeItems.forEach((envelopeItem) => {\n var envelopeItemType = envelopeItem[0].type;\n callback(envelopeItem, envelopeItemType);\n });\n}\n\nfunction encodeUTF8(input, textEncoder) {\n var utf8 = textEncoder || new TextEncoder();\n return utf8.encode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nfunction serializeEnvelope(envelope, textEncoder) {\n const [envHeaders, items] = envelope;\n\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts = JSON.stringify(envHeaders);\n\n function append(next) {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts, textEncoder), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next, textEncoder) : next);\n }\n }\n\n for (var item of items) {\n const [itemHeaders, payload] = item ;\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n append(typeof payload === 'string' || payload instanceof Uint8Array ? payload : JSON.stringify(payload));\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers) {\n var totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n var merged = new Uint8Array(totalLength);\n let offset = 0;\n for (var buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Creates attachment envelope items\n */\nfunction createAttachmentEnvelopeItem(\n attachment,\n textEncoder,\n) {\n var buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data, textEncoder) : attachment.data;\n\n return [\n dropUndefinedKeys({\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n }),\n buffer,\n ];\n}\n\nvar ITEM_TYPE_TO_DATA_CATEGORY_MAP = {\n session: 'session',\n sessions: 'session',\n attachment: 'attachment',\n transaction: 'transaction',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n};\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nfunction envelopeItemTypeToDataCategory(type) {\n return ITEM_TYPE_TO_DATA_CATEGORY_MAP[type];\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, envelopeItemTypeToDataCategory, forEachEnvelopeItem, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","/**\n * Helper to decycle json objects\n */\nfunction memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n for (let i = 0; i < inner.length; i++) {\n var value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n } else {\n for (let i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n\nexport { memoBuilder };\n//# sourceMappingURL=memo.js.map\n","import { isNaN, isSyntheticEvent } from './is.js';\nimport { memoBuilder } from './memo.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nfunction normalize(input, depth = +Infinity, maxProperties = +Infinity) {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nfunction normalizeToSize(\n object,\n // Default Node.js REPL depth\n depth = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize = 100 * 1024,\n) {\n var normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized ;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key,\n value,\n depth = +Infinity,\n maxProperties = +Infinity,\n memo = memoBuilder(),\n) {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value ;\n }\n\n var stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value )['__sentry_skip_normalization__']) {\n return value ;\n }\n\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n var valueWithToJSON = value ;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n var jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, depth - 1, maxProperties, memo);\n } catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {}) ;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = convertToPlainObject(value );\n\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n\n numAdded += 1;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value,\n) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value )._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return `[object ${(Object.getPrototypeOf(value) ).constructor.name}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nexport { normalize, normalizeToSize, visit as walk };\n//# sourceMappingURL=normalize.js.map\n","import { urlEncode, makeDsn, dsnToString } from '@sentry/utils';\n\nvar SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n var port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn) {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn, sdkInfo) {\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 */\nfunction getEnvelopeEndpointWithUrlEncodedAuth(\n dsn,\n // TODO (v8): Remove `tunnelOrOptions` in favor of `options`, and use the substitute code below\n // options: ClientOptions = {} as ClientOptions,\n tunnelOrOptions = {} ,\n) {\n // TODO (v8): Use this code instead\n // const { tunnel, _metadata = {} } = options;\n // return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, _metadata.sdk)}`;\n\n var tunnel = typeof tunnelOrOptions === 'string' ? tunnelOrOptions : tunnelOrOptions.tunnel;\n var 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. */\nfunction getReportDialogEndpoint(\n dsnLike,\n dialogOptions\n\n,\n) {\n var dsn = makeDsn(dsnLike);\n var endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'user') {\n var user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] )}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n\nexport { getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { dsnToString, createEnvelope, dropUndefinedKeys, getSentryBaggageItems } from '@sentry/utils';\n\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(metadata) {\n if (!metadata || !metadata.sdk) {\n return;\n }\n const { name, version } = metadata.sdk;\n return { name, version };\n}\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = [...(event.sdk.integrations || []), ...(sdkInfo.integrations || [])];\n event.sdk.packages = [...(event.sdk.packages || []), ...(sdkInfo.packages || [])];\n return event;\n}\n\n/** Creates an envelope from a Session */\nfunction createSessionEnvelope(\n session,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n };\n\n var envelopeItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nfunction createEventEnvelope(\n event,\n dsn,\n metadata,\n tunnel,\n) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n var eventType = event.type || 'event';\n\n const { transactionSampling } = event.sdkProcessingMetadata || {};\n const { method: samplingMethod, rate: sampleRate } = transactionSampling || {};\n\n enhanceEventWithSdkInfo(event, metadata && metadata.sdk);\n\n var envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nfunction createEventEnvelopeHeaders(\n event,\n sdkInfo,\n tunnel,\n dsn,\n) {\n var baggage = event.sdkProcessingMetadata && event.sdkProcessingMetadata.baggage;\n var dynamicSamplingContext = baggage && getSentryBaggageItems(baggage);\n\n return {\n event_id: event.event_id ,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && { dsn: dsnToString(dsn) }),\n ...(event.type === 'transaction' &&\n dynamicSamplingContext && {\n trace: dropUndefinedKeys({ ...dynamicSamplingContext }) ,\n }),\n };\n}\n\nexport { createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { updateSession, Scope } from '@sentry/hub';\nimport { makeDsn, logger, checkOrSetAlreadyCaught, isPrimitive, resolvedSyncPromise, addItemToEnvelope, createAttachmentEnvelopeItem, SyncPromise, uuid4, dateTimestampInSeconds, normalize, truncate, rejectedSyncPromise, SentryError, isThenable, isPlainObject } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegrations } from './integration.js';\n\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nclass BaseClient {\n /** Options passed to the SDK. */\n \n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n \n\n /** Array of set up integrations. */\n __init() {this._integrations = {};}\n\n /** Indicates whether this client's integrations have been set up. */\n __init2() {this._integrationsInitialized = false;}\n\n /** Number of calls being processed */\n __init3() {this._numProcessing = 0;}\n\n /** Holds flushable */\n __init4() {this._outcomes = {};}\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n constructor(options) {;BaseClient.prototype.__init.call(this);BaseClient.prototype.__init2.call(this);BaseClient.prototype.__init3.call(this);BaseClient.prototype.__init4.call(this);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, options);\n this._transport = options.transport({\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('No DSN provided, client will not do anything.');\n }\n }\n\n /**\n * @inheritDoc\n */\n captureException(exception, hint, scope) {\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this.eventFromException(exception, hint)\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureMessage(\n message,\n level,\n hint,\n scope,\n ) {\n let eventId = hint && hint.event_id;\n\n var promisedEvent = isPrimitive(message)\n ? this.eventFromMessage(String(message), level, hint)\n : this.eventFromException(message, hint);\n\n this._process(\n promisedEvent\n .then(event => this._captureEvent(event, hint, scope))\n .then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureEvent(event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n\n let eventId = hint && hint.event_id;\n\n this._process(\n this._captureEvent(event, hint, scope).then(result => {\n eventId = result;\n }),\n );\n\n return eventId;\n }\n\n /**\n * @inheritDoc\n */\n captureSession(session) {\n if (!this._isEnabled()) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n\n if (!(typeof session.release === 'string')) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Discarded session because of missing or non-string release');\n } else {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n }\n\n /**\n * @inheritDoc\n */\n getDsn() {\n return this._dsn;\n }\n\n /**\n * @inheritDoc\n */\n getOptions() {\n return this._options;\n }\n\n /**\n * @inheritDoc\n */\n getTransport() {\n return this._transport;\n }\n\n /**\n * @inheritDoc\n */\n flush(timeout) {\n var transport = this._transport;\n if (transport) {\n return this._isClientDoneProcessing(timeout).then(clientFinished => {\n return transport.flush(timeout).then(transportFlushed => clientFinished && transportFlushed);\n });\n } else {\n return resolvedSyncPromise(true);\n }\n }\n\n /**\n * @inheritDoc\n */\n close(timeout) {\n return this.flush(timeout).then(result => {\n this.getOptions().enabled = false;\n return result;\n });\n }\n\n /**\n * Sets up the integrations\n */\n setupIntegrations() {\n if (this._isEnabled() && !this._integrationsInitialized) {\n this._integrations = setupIntegrations(this._options.integrations);\n this._integrationsInitialized = true;\n }\n }\n\n /**\n * Gets an installed integration by its `id`.\n *\n * @returns The installed integration or `undefined` if no integration with that `id` was installed.\n */\n getIntegrationById(integrationId) {\n return this._integrations[integrationId];\n }\n\n /**\n * @inheritDoc\n */\n getIntegration(integration) {\n try {\n return (this._integrations[integration.id] ) || null;\n } catch (_oO) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Cannot retrieve integration ${integration.id} from the current Client`);\n return null;\n }\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint = {}) {\n if (this._dsn) {\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (var attachment of hint.attachments || []) {\n env = addItemToEnvelope(\n env,\n createAttachmentEnvelopeItem(\n attachment,\n this._options.transportOptions && this._options.transportOptions.textEncoder,\n ),\n );\n }\n\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n sendSession(session) {\n if (this._dsn) {\n var env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n this._sendEnvelope(env);\n }\n }\n\n /**\n * @inheritDoc\n */\n recordDroppedEvent(reason, category) {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n var key = `${reason}:${category}`;\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Adding outcome: \"${key}\"`);\n\n // The following works because undefined + 1 === NaN and NaN is falsy\n this._outcomes[key] = this._outcomes[key] + 1 || 1;\n }\n }\n\n /** Updates existing session based on the provided event */\n _updateSessionFromEvent(session, event) {\n let crashed = false;\n let errored = false;\n var exceptions = event.exception && event.exception.values;\n\n if (exceptions) {\n errored = true;\n\n for (var ex of exceptions) {\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n _isClientDoneProcessing(timeout) {\n return new SyncPromise(resolve => {\n let ticked = 0;\n var tick = 1;\n\n var interval = setInterval(() => {\n if (this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n } else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n }\n\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n _isEnabled() {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n _prepareEvent(event, hint, scope) {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1000 } = this.getOptions();\n var prepared = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n let finalScope = scope;\n if (hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n\n // We prepare the result here with a resolved Event.\n let result = resolvedSyncPromise(prepared);\n\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // Collect attachments from the hint and scope\n var attachments = [...(hint.attachments || []), ...finalScope.getAttachments()];\n\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n\n return result.then(evt => {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n }\n\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n _normalizeEvent(event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n\n var normalized = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n // We cannot use the spread operator here because `toJSON` on `span` is non-enumerable\n if (span.data) {\n span.data = normalize(span.data, depth, maxBreadth);\n }\n return span;\n });\n }\n\n return normalized;\n }\n\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n _applyClientOptions(event) {\n var options = this.getOptions();\n const { environment, release, dist, maxValueLength = 250 } = options;\n\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n }\n\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n _applyIntegrationsMetadata(event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationsArray];\n }\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n _captureEvent(event, hint = {}, scope) {\n return this._processEvent(event, hint, scope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(reason);\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n _processEvent(event, hint, scope) {\n const { beforeSend, sampleRate } = this.getOptions();\n\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n new SentryError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n return this._prepareEvent(event, hint, scope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', event.type || 'error');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n\n var isInternalException = hint.data && (hint.data ).__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', event.type || 'error');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n\n var session = scope && scope.getSession();\n if (!isTransaction && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (reason instanceof SentryError) {\n throw reason;\n }\n\n this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason ,\n });\n throw new SentryError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n _process(promise) {\n this._numProcessing += 1;\n void promise.then(\n value => {\n this._numProcessing -= 1;\n return value;\n },\n reason => {\n this._numProcessing -= 1;\n return reason;\n },\n );\n }\n\n /**\n * @inheritdoc\n */\n _sendEnvelope(envelope) {\n if (this._transport && this._dsn) {\n this._transport.send(envelope).then(null, reason => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Error while sending event:', reason);\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Transport disabled');\n }\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n _clearOutcomes() {\n var outcomes = this._outcomes;\n this._outcomes = {};\n return Object.keys(outcomes).map(key => {\n const [reason, category] = key.split(':') ;\n return {\n reason,\n category,\n quantity: outcomes[key],\n };\n });\n }\n\n /**\n * @inheritDoc\n */\n \n\n}\n\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(\n event => {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n },\n e => {\n throw new SentryError(`beforeSend rejected with ${e}`);\n },\n );\n } else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nfunction createClientReportEnvelope(\n discarded_events,\n dsn,\n timestamp,\n) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { isEvent, extractExceptionKeysForMessage, normalizeToSize, addExceptionMechanism, resolvedSyncPromise, isErrorEvent, isDOMError, isDOMException, addExceptionTypeValue, isError, isPlainObject } from '@sentry/utils';\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nfunction exceptionFromError(stackParser, ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(stackParser, ex);\n\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n\n return exception;\n}\n\n/**\n * @hidden\n */\nfunction eventFromPlainObject(\n stackParser,\n exception,\n syntheticException,\n isUnhandledRejection,\n) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: `Non-Error ${\n isUnhandledRejection ? 'promise rejection' : 'exception'\n } captured with keys: ${extractExceptionKeysForMessage(exception)}`,\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n\n if (syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n // event.exception.values[0] has been set above\n (event.exception ).values[0].stacktrace = { frames };\n }\n }\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromError(stackParser, ex) {\n return {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n stackParser,\n ex,\n) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n\n var popSize = getPopSize(ex);\n\n try {\n return stackParser(stacktrace, popSize);\n } catch (e) {\n // no-empty\n }\n\n return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n\n return 0;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nfunction eventFromException(\n stackParser,\n exception,\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = 'error';\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nfunction eventFromMessage(\n stackParser,\n message,\n level = 'info',\n hint,\n attachStacktrace,\n) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nfunction eventFromUnknownInput(\n stackParser,\n exception,\n syntheticException,\n attachStacktrace,\n isUnhandledRejection,\n) {\n let event;\n\n if (isErrorEvent(exception ) && (exception ).error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception ;\n return eventFromError(stackParser, errorEvent.error );\n }\n\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception ) || isDOMException(exception )) {\n var domException = exception ;\n\n if ('stack' in (exception )) {\n event = eventFromError(stackParser, exception );\n } else {\n var name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? `${name}: ${domException.message}` : name;\n event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = { ...event.tags, 'DOMException.code': `${domException.code}` };\n }\n\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(stackParser, exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception ;\n event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(stackParser, exception , syntheticException, attachStacktrace);\n addExceptionTypeValue(event, `${exception}`, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n\n return event;\n}\n\n/**\n * @hidden\n */\nfunction eventFromString(\n stackParser,\n input,\n syntheticException,\n attachStacktrace,\n) {\n var event = {\n message: input,\n };\n\n if (attachStacktrace && syntheticException) {\n var frames = parseStackFrames(stackParser, syntheticException);\n if (frames.length) {\n event.exception = {\n values: [{ value: input, stacktrace: { frames } }],\n };\n }\n }\n\n return event;\n}\n\nexport { eventFromError, eventFromException, eventFromMessage, eventFromPlainObject, eventFromString, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","// Note: Ideally the `SeverityLevel` type would be derived from `validSeverityLevels`, but that would mean either\n//\n// a) moving `validSeverityLevels` to `@sentry/types`,\n// b) moving the`SeverityLevel` type here, or\n// c) importing `validSeverityLevels` from here into `@sentry/types`.\n//\n// Option A would make `@sentry/types` a runtime dependency of `@sentry/utils` (not good), and options B and C would\n// create a circular dependency between `@sentry/types` and `@sentry/utils` (also not good). So a TODO accompanying the\n// type, reminding anyone who changes it to change this list also, will have to do.\n\nvar validSeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug'];\n\n/**\n * Converts a string-based level into a member of the deprecated {@link Severity} enum.\n *\n * @deprecated `severityFromString` is deprecated. Please use `severityLevelFromString` instead.\n *\n * @param level String representation of Severity\n * @returns Severity\n */\nfunction severityFromString(level) {\n return severityLevelFromString(level) ;\n}\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nfunction severityLevelFromString(level) {\n return (level === 'warn' ? 'warning' : validSeverityLevels.includes(level) ? level : 'log') ;\n}\n\nexport { severityFromString, severityLevelFromString, validSeverityLevels };\n//# sourceMappingURL=severity.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, htmlTreeAsString, severityLevelFromString, safeJoin, getGlobalObject, parseUrl } from '@sentry/utils';\n\n/** JSDoc */\n\nvar BREADCRUMB_INTEGRATION_ID = 'Breadcrumbs';\n\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nclass Breadcrumbs {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = BREADCRUMB_INTEGRATION_ID;}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Breadcrumbs.id;}\n\n /**\n * Options of the breadcrumbs integration.\n */\n // This field is public, because we use it in the browser client to check if the `sentry` option is enabled.\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;Breadcrumbs.prototype.__init.call(this);\n this.options = {\n console: true,\n dom: true,\n fetch: true,\n history: true,\n sentry: true,\n xhr: true,\n ...options,\n };\n }\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n setupOnce() {\n if (this.options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this.options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this.options.dom));\n }\n if (this.options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this.options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this.options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n }\n} Breadcrumbs.__initStatic();\n\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _domBreadcrumb(dom) {\n function _innerDomBreadcrumb(handlerData) {\n let target;\n let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target , keyAttrs)\n : htmlTreeAsString(handlerData.event , keyAttrs);\n } catch (e) {\n target = '';\n }\n\n if (target.length === 0) {\n return;\n }\n\n getCurrentHub().addBreadcrumb(\n {\n category: `ui.${handlerData.name}`,\n message: target,\n },\n {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n },\n );\n }\n\n return _innerDomBreadcrumb;\n}\n\n/**\n * Creates breadcrumbs from console API calls\n */\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityLevelFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = `Assertion failed: ${safeJoin(handlerData.args.slice(1), ' ') || 'console.assert'}`;\n breadcrumb.data.arguments = handlerData.args.slice(1);\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n\n const { method, url, status_code, body } = handlerData.xhr.__sentry_xhr__ || {};\n\n getCurrentHub().addBreadcrumb(\n {\n category: 'xhr',\n data: {\n method,\n url,\n status_code,\n },\n type: 'http',\n },\n {\n xhr: handlerData.xhr,\n input: body,\n },\n );\n\n return;\n }\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: handlerData.fetchData,\n level: 'error',\n type: 'http',\n },\n {\n data: handlerData.error,\n input: handlerData.args,\n },\n );\n } else {\n getCurrentHub().addBreadcrumb(\n {\n category: 'fetch',\n data: {\n ...handlerData.fetchData,\n status_code: handlerData.response.status,\n },\n type: 'http',\n },\n {\n input: handlerData.args,\n response: handlerData.response,\n },\n );\n }\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n let from = handlerData.from;\n let to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n let parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from,\n to,\n },\n });\n}\n\nexport { BREADCRUMB_INTEGRATION_ID, Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\n\nvar global = getGlobalObject();\nlet cachedFetchImpl;\n\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * var f = window.fetch;\n * window.fetch = function () {\n * var p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nfunction getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n\n var document = global.document;\n let fetchImpl = global.fetch;\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n\n return (cachedFetchImpl = fetchImpl.bind(global));\n }\n\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nfunction sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n sendBeacon(url, body);\n } else if (supportsFetch()) {\n var fetch = getNativeFetchImplementation();\n fetch(url, {\n body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }).then(null, error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(error);\n });\n }\n}\n\nexport { getNativeFetchImplementation, sendReport };\n//# sourceMappingURL=utils.js.map\n","import { BaseClient, SDK_VERSION, getCurrentHub, getEnvelopeEndpointWithUrlEncodedAuth } from '@sentry/core';\nimport { getGlobalObject, getEventDescription, logger, createClientReportEnvelope, dsnToString, serializeEnvelope } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder.js';\nimport { BREADCRUMB_INTEGRATION_ID } from './integrations/breadcrumbs.js';\nimport { sendReport } from './transports/utils.js';\n\nvar globalObject = getGlobalObject();\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nclass BrowserClient extends BaseClient {\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n constructor(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n\n super(options);\n\n if (options.sendClientReports && globalObject.document) {\n globalObject.document.addEventListener('visibilitychange', () => {\n if (globalObject.document.visibilityState === 'hidden') {\n this._flushOutcomes();\n }\n });\n }\n }\n\n /**\n * @inheritDoc\n */\n eventFromException(exception, hint) {\n return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n eventFromMessage(\n message,\n level = 'info',\n hint,\n ) {\n return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n }\n\n /**\n * @inheritDoc\n */\n sendEvent(event, hint) {\n // We only want to add the sentry event breadcrumb when the user has the breadcrumb integration installed and\n // activated its `sentry` option.\n // We also do not want to use the `Breadcrumbs` class here directly, because we do not want it to be included in\n // bundles, if it is not used by the SDK.\n // This all sadly is a bit ugly, but we currently don't have a \"pre-send\" hook on the integrations so we do it this\n // way for now.\n var breadcrumbIntegration = this.getIntegrationById(BREADCRUMB_INTEGRATION_ID) ;\n if (\n breadcrumbIntegration &&\n // We check for definedness of `options`, even though it is not strictly necessary, because that access to\n // `.sentry` below does not throw, in case users provided their own integration with id \"Breadcrumbs\" that does\n // not have an`options` field\n breadcrumbIntegration.options &&\n breadcrumbIntegration.options.sentry\n ) {\n getCurrentHub().addBreadcrumb(\n {\n category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n },\n {\n event,\n },\n );\n }\n\n super.sendEvent(event, hint);\n }\n\n /**\n * @inheritDoc\n */\n _prepareEvent(event, hint, scope) {\n event.platform = event.platform || 'javascript';\n return super._prepareEvent(event, hint, scope);\n }\n\n /**\n * Sends client reports as an envelope.\n */\n _flushOutcomes() {\n var outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No outcomes to send');\n return;\n }\n\n if (!this._dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('No dsn provided, will not send outcomes');\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('Sending outcomes:', outcomes);\n\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._dsn, this._options);\n var envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n try {\n sendReport(url, serializeEnvelope(envelope));\n } catch (e) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(e);\n }\n }\n}\n\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map\n","import { createStackParser } from '@sentry/utils';\n\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\n\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n\n if (colno !== undefined) {\n frame.colno = colno;\n }\n\n return frame;\n}\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex =\n /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nvar chrome = line => {\n var parts = chromeRegex.exec(line);\n\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n\n return;\n};\n\nvar chromeStackLineParser = [CHROME_PRIORITY, chrome];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex =\n /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nvar gecko = line => {\n var parts = geckoREgex.exec(line);\n\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n\n let filename = parts[3];\n let func = parts[1] || UNKNOWN_FUNCTION;\n [func, filename] = extractSafariExtensionDetails(func, filename);\n\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n\n return;\n};\n\nvar geckoStackLineParser = [GECKO_PRIORITY, gecko];\n\nvar winjsRegex =\n /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nvar winjs = line => {\n var parts = winjsRegex.exec(line);\n\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\n\nvar winjsStackLineParser = [WINJS_PRIORITY, winjs];\n\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nvar opera10 = line => {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nvar opera10StackLineParser = [OPERA10_PRIORITY, opera10];\n\nvar opera11Regex =\n / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nvar opera11 = line => {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nvar opera11StackLineParser = [OPERA11_PRIORITY, opera11];\n\nvar defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser, winjsStackLineParser];\n\nvar defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = (func, filename) => {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n ]\n : [func, filename];\n};\n\nexport { chromeStackLineParser, defaultStackLineParsers, defaultStackParser, geckoStackLineParser, opera10StackLineParser, opera11StackLineParser, winjsStackLineParser };\n//# sourceMappingURL=stack-parsers.js.map\n","import { withScope, captureException } from '@sentry/core';\nimport { getOriginalFunction, addExceptionTypeValue, addExceptionMechanism, markFunctionWrapped, addNonEnumerableProperty } from '@sentry/utils';\n\nlet ignoreOnError = 0;\n\n/**\n * @hidden\n */\nfunction shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n\n/**\n * @hidden\n */\nfunction ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(() => {\n ignoreOnError -= 1;\n });\n}\n\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nfunction wrap(\n fn,\n options\n\n = {},\n before,\n ) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n\n if (typeof fn !== 'function') {\n return fn;\n }\n\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n\n // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n\n var wrappedArguments = args.map((arg) => wrap(arg, options));\n\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n } catch (ex) {\n ignoreNextOnError();\n\n withScope((scope) => {\n scope.addEventProcessor((event) => {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n\n event.extra = {\n ...event.extra,\n arguments: args,\n };\n\n return event;\n });\n\n captureException(ex);\n });\n\n throw ex;\n }\n };\n \n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n } catch (_oO) {} \n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name') ;\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get() {\n return fn.name;\n },\n });\n }\n } catch (_oO) {}\n\n return sentryWrapped;\n}\n\n/**\n * All properties the report dialog supports\n */\n\nexport { ignoreNextOnError, shouldIgnoreOnError, wrap };\n//# sourceMappingURL=helpers.js.map\n","import { getGlobalObject, fill, getFunctionName, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers.js';\n\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nclass TryCatch {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'TryCatch';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = TryCatch.id;}\n\n /** JSDoc */\n \n\n /**\n * @inheritDoc\n */\n constructor(options) {;TryCatch.prototype.__init.call(this);\n this._options = {\n XMLHttpRequest: true,\n eventTarget: true,\n requestAnimationFrame: true,\n setInterval: true,\n setTimeout: true,\n ...options,\n };\n }\n\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n setupOnce() {\n var global = getGlobalObject();\n\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n }\n} TryCatch.__initStatic();\n\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n return function ( ...args) {\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapRAF(original) {\n return function ( callback) {\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n return function ( ...args) {\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n xmlHttpRequestProps.forEach(prop => {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n\n return originalSend.apply(this, args);\n };\n}\n\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n var global = getGlobalObject() ;\n var proto = global[target] && global[target].prototype;\n\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n\n fill(proto, 'addEventListener', function (original)\n\n {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n try {\n if (typeof fn.handleEvent === 'function') {\n // ESlint disable explanation:\n // First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n // introduce a bug here, because bind returns a new function that doesn't have our\n // flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n // Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n fn.handleEvent = wrap(fn.handleEvent, {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n return original.apply(this, [\n eventName,\n wrap(fn , {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n\n fill(\n proto,\n 'removeEventListener',\n function (\n originalRemoveEventListener,\n ) {\n return function (\n \n eventName,\n fn,\n options,\n ) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn ;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n } catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n },\n );\n}\n\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map\n","import { getCurrentHub } from '@sentry/core';\nimport { addInstrumentationHandler, isString, isPrimitive, isErrorEvent, getLocationHref, logger, addExceptionMechanism } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder.js';\nimport { shouldIgnoreOnError } from '../helpers.js';\n\n/** Global handlers */\nclass GlobalHandlers {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'GlobalHandlers';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = GlobalHandlers.id;}\n\n /** JSDoc */\n \n\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n __init2() {this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };}\n\n /** JSDoc */\n constructor(options) {;GlobalHandlers.prototype.__init.call(this);GlobalHandlers.prototype.__init2.call(this);\n this._options = {\n onerror: true,\n onunhandledrejection: true,\n ...options,\n };\n }\n /**\n * @inheritDoc\n */\n setupOnce() {\n Error.stackTraceLimit = 50;\n var options = this._options;\n\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n for (var key in options) {\n var installFunc = this._installFunc[key ];\n if (installFunc && options[key ]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key ] = undefined;\n }\n }\n }\n} GlobalHandlers.__initStatic();\n\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler(\n 'error',\n (data) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n const { msg, url, line, column, error } = data;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n\n var event =\n error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(\n eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n url,\n line,\n column,\n );\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onerror');\n },\n );\n}\n\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler(\n 'unhandledrejection',\n (e) => {\n const [hub, stackParser, attachStacktrace] = getHubAndOptions();\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n let error = e;\n\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n } catch (_oO) {\n // no-empty\n }\n\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n event.level = 'error';\n\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n },\n );\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n },\n ],\n },\n };\n}\n\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE =\n /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n\n // If 'message' is ErrorEvent, get real message from inside\n let message = isErrorEvent(msg) ? msg.message : msg;\n let name = 'Error';\n\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n\n/** JSDoc */\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno,\n filename,\n function: '?',\n in_app: true,\n lineno,\n });\n }\n\n return event;\n}\n\nfunction globalHandlerLog(type) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`Global Handler attached: ${type}`);\n}\n\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\n\nfunction getHubAndOptions() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {\n stackParser: () => [],\n attachStacktrace: false,\n };\n return [hub, options.stackParser, options.attachStacktrace];\n}\n\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map\n","import { getCurrentHub, addGlobalEventProcessor } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder.js';\n\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n\n/** Adds SDK info to an event. */\nclass LinkedErrors {\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'LinkedErrors';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = LinkedErrors.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n constructor(options = {}) {;LinkedErrors.prototype.__init.call(this);\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n var client = getCurrentHub().getClient();\n if (!client) {\n return;\n }\n addGlobalEventProcessor((event, hint) => {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(client.getOptions().stackParser, self._key, self._limit, event, hint) : event;\n });\n }\n} LinkedErrors.__initStatic();\n\n/**\n * @inheritDoc\n */\nfunction _handler(\n parser,\n key,\n limit,\n event,\n hint,\n) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(parser, limit, hint.originalException , key);\n event.exception.values = [...linkedErrors, ...event.exception.values];\n return event;\n}\n\n/**\n * JSDOC\n */\nfunction _walkErrorTree(\n parser,\n limit,\n error,\n key,\n stack = [],\n) {\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(parser, error[key]);\n return _walkErrorTree(parser, limit, error[key], key, [exception, ...stack]);\n}\n\nexport { LinkedErrors, _handler, _walkErrorTree };\n//# sourceMappingURL=linkederrors.js.map\n","import { logger } from '@sentry/utils';\n\n/** Deduplication filter */\nclass Dedupe {constructor() { Dedupe.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'Dedupe';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = Dedupe.id;}\n\n /**\n * @inheritDoc\n */\n \n\n /**\n * @inheritDoc\n */\n setupOnce(addGlobalEventProcessor, getCurrentHub) {\n var eventProcessor = currentEvent => {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n };\n\n eventProcessor.id = this.name;\n addGlobalEventProcessor(eventProcessor);\n }\n} Dedupe.__initStatic();\n\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n let currentFrames = _getFramesFromEvent(currentEvent);\n let previousFrames = _getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames ;\n previousFrames = previousFrames ;\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint ;\n previousFingerprint = previousFingerprint ;\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch (_oO) {\n return false;\n }\n}\n\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n } catch (_oO) {\n return undefined;\n }\n }\n return undefined;\n}\n\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map\n","import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/** HttpContext integration collects information about HTTP request headers */\nclass HttpContext {constructor() { HttpContext.prototype.__init.call(this); }\n /**\n * @inheritDoc\n */\n static __initStatic() {this.id = 'HttpContext';}\n\n /**\n * @inheritDoc\n */\n __init() {this.name = HttpContext.id;}\n\n /**\n * @inheritDoc\n */\n setupOnce() {\n addGlobalEventProcessor((event) => {\n if (getCurrentHub().getIntegration(HttpContext)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n const { referrer } = global.document || {};\n const { userAgent } = global.navigator || {};\n\n var headers = {\n ...(event.request && event.request.headers),\n ...(referrer && { Referer: referrer }),\n ...(userAgent && { 'User-Agent': userAgent }),\n };\n var request = { ...(url && { url }), headers };\n\n return { ...event, request };\n }\n return event;\n });\n }\n} HttpContext.__initStatic();\n\nexport { HttpContext };\n//# sourceMappingURL=httpcontext.js.map\n","import { SentryError } from './error.js';\nimport { rejectedSyncPromise, SyncPromise, resolvedSyncPromise } from './syncpromise.js';\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nfunction makePromiseBuffer(limit) {\n var buffer = [];\n\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; 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) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(() => remove(task))\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, () =>\n remove(task).then(null, () => {\n // We have to add another catch here because `remove()` starts a new promise chain.\n }),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise((resolve, reject) => {\n let counter = buffer.length;\n\n if (!counter) {\n return resolve(true);\n }\n\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(() => {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(item => {\n void resolvedSyncPromise(item).then(() => {\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n\n return {\n $: buffer,\n add,\n drain,\n };\n}\n\nexport { makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\n\nvar DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nfunction parseRetryAfterHeader(header, now = Date.now()) {\n var headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n var headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nfunction disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nfunction isRateLimited(limits, category, now = Date.now()) {\n return disabledUntil(limits, category) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nfunction updateRateLimits(\n limits,\n { statusCode, headers },\n now = Date.now(),\n) {\n var updatedRateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers && headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers && headers['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *

,
,..\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 */\n for (var limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories] = limit.split(':', 2);\n var headerDelay = parseInt(retryAfter, 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (var category of categories.split(';')) {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { makePromiseBuffer, forEachEnvelopeItem, envelopeItemTypeToDataCategory, isRateLimited, resolvedSyncPromise, createEnvelope, serializeEnvelope, logger, updateRateLimits, SentryError } from '@sentry/utils';\n\nvar DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nfunction createTransport(\n options,\n makeRequest,\n buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE),\n) {\n let rateLimits = {};\n\n var flush = (timeout) => buffer.drain(timeout);\n\n function send(envelope) {\n var filteredEnvelopeItems = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n var envelopeItemDataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, envelopeItemDataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', envelopeItemDataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return resolvedSyncPromise();\n }\n\n var filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems );\n\n // Creates client report for each item in an envelope\n var recordEnvelopeLoss = (reason) => {\n forEachEnvelopeItem(filteredEnvelope, (_, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n var requestTask = () =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope, options.textEncoder) }).then(\n response => {\n // We don't want to throw on NOK responses, but we want to at least log them\n if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode >= 300)) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n },\n error => {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Failed while sending event:', error);\n recordEnvelopeLoss('network_error');\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error instanceof SentryError) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Skipped sending event due to full buffer');\n recordEnvelopeLoss('queue_overflow');\n return resolvedSyncPromise();\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","import { createTransport } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils.js';\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nfunction makeFetchTransport(\n options,\n nativeFetch = getNativeFetchImplementation(),\n) {\n function makeRequest(request) {\n var requestOptions = {\n body: request.body,\n method: 'POST',\n referrerPolicy: 'origin',\n headers: options.headers,\n ...options.fetchOptions,\n };\n\n return nativeFetch(options.url, requestOptions).then(response => ({\n statusCode: response.status,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n }));\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeFetchTransport };\n//# sourceMappingURL=fetch.js.map\n","import { createTransport } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nfunction makeXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n\n xhr.onerror = reject;\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n resolve({\n statusCode: xhr.status,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n });\n }\n };\n\n xhr.open('POST', options.url);\n\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n\n xhr.send(request.body);\n });\n }\n\n return createTransport(options, makeRequest);\n}\n\nexport { makeXHRTransport };\n//# sourceMappingURL=xhr.js.map\n","import { Integrations, getIntegrationsToSetup, initAndBind, getCurrentHub, getReportDialogEndpoint } from '@sentry/core';\nimport { getGlobalObject, stackParserFromStackParserOptions, supportsFetch, logger, resolvedSyncPromise, addInstrumentationHandler } from '@sentry/utils';\nimport { BrowserClient } from './client.js';\nimport { wrap as wrap$1 } from './helpers.js';\nimport './integrations/index.js';\nimport { defaultStackParser } from './stack-parsers.js';\nimport './transports/index.js';\nimport { TryCatch } from './integrations/trycatch.js';\nimport { Breadcrumbs } from './integrations/breadcrumbs.js';\nimport { GlobalHandlers } from './integrations/globalhandlers.js';\nimport { LinkedErrors } from './integrations/linkederrors.js';\nimport { Dedupe } from './integrations/dedupe.js';\nimport { HttpContext } from './integrations/httpcontext.js';\nimport { makeFetchTransport } from './transports/fetch.js';\nimport { makeXHRTransport } from './transports/xhr.js';\n\nvar defaultIntegrations = [\n new Integrations.InboundFilters(),\n new Integrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new HttpContext(),\n];\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nfunction init(options = {}) {\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window.SENTRY_RELEASE && window.SENTRY_RELEASE.id) {\n options.release = window.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n\n var clientOptions = {\n ...options,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n integrations: getIntegrationsToSetup(options),\n transport: options.transport || (supportsFetch() ? makeFetchTransport : makeXHRTransport),\n };\n\n initAndBind(BrowserClient, clientOptions);\n\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nfunction showReportDialog(options = {}, hub = getCurrentHub()) {\n // doesn't work without a document (React Native)\n var global = getGlobalObject();\n if (!global.document) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Global document not defined in showReportDialog call');\n return;\n }\n\n const { client, scope } = hub.getStackTop();\n var dsn = options.dsn || (client && client.getDsn());\n if (!dsn) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('DSN not configured for showReportDialog call');\n return;\n }\n\n if (scope) {\n options.user = {\n ...scope.getUser(),\n ...options.user,\n };\n }\n\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(dsn, options);\n\n if (options.onLoad) {\n script.onload = options.onLoad;\n }\n\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('Not injecting report dialog. No injection point found in HTML');\n }\n}\n\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nfunction lastEventId() {\n return getCurrentHub().lastEventId();\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction forceLoad() {\n // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nfunction onLoad(callback) {\n callback();\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nfunction close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\nfunction wrap(fn) {\n return wrap$1(fn)();\n}\n\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n\n if (typeof document === 'undefined') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n\n var hub = getCurrentHub();\n\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', ({ from, to }) => {\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n\nexport { close, defaultIntegrations, flush, forceLoad, init, lastEventId, onLoad, showReportDialog, wrap };\n//# sourceMappingURL=sdk.js.map\n","import { SDK_VERSION, init as init$1 } from '@sentry/browser';\n\n/**\n * Inits the React SDK\n */\nfunction init(options) {\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.react',\n packages: [\n {\n name: 'npm:@sentry/react',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n init$1(options);\n}\n\nexport { init };\n//# sourceMappingURL=sdk.js.map\n","var 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 */\nfunction extractTraceparentData(traceparent) {\n var matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n let parentSampled;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData };\n//# sourceMappingURL=tracing.js.map\n","import { getGlobalObject, logger } from '@sentry/utils';\nimport { getActiveTransaction } from '../utils.js';\n\nvar global = getGlobalObject();\n\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nfunction registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', () => {\n var activeTransaction = getActiveTransaction() ;\n if (global.document.hidden && activeTransaction) {\n var statusType = 'cancelled';\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(\n `[Tracing] Transaction: ${statusType} -> since tab moved to the background, op: ${activeTransaction.op}`,\n );\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(statusType);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.finish();\n }\n });\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n\nexport { registerBackgroundTabDetection };\n//# sourceMappingURL=backgroundtab.js.map\n","var bindReporter = (\n callback,\n metric,\n reportAllChanges,\n) => {\n let prevValue;\n return (forceReport) => {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.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 (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n\nexport { bindReporter };\n//# sourceMappingURL=bindReporter.js.map\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 */\nvar generateUniqueID = () => {\n return `v2-${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`;\n};\n\nexport { generateUniqueID };\n//# sourceMappingURL=generateUniqueID.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { generateUniqueID } from './generateUniqueID.js';\n\nvar initMetric = (name, value) => {\n return {\n name,\n value: _nullishCoalesce(value, () => ( -1)),\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n\nexport { initMetric };\n//# sourceMappingURL=initMetric.js.map\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 * 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 */\nvar observe = (type, callback) => {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n\n var po = new PerformanceObserver(l => l.getEntries().map(callback));\n\n po.observe({ type, buffered: true });\n return po;\n }\n } catch (e) {\n // Do nothing.\n }\n return;\n};\n\nexport { observe };\n//# sourceMappingURL=observe.js.map\n","import { getGlobalObject } from '@sentry/utils';\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\nvar onHidden = (cb, once) => {\n var onHiddenOrPageHide = (event) => {\n if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\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\nexport { onHidden };\n//# sourceMappingURL=onHidden.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\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// https://wicg.github.io/layout-instability/#sec-layout-shift\n\nvar getCLS = (onReport, reportAllChanges) => {\n var metric = initMetric('CLS', 0);\n let report;\n\n let sessionValue = 0;\n let sessionEntries = [];\n\n var entryHandler = (entry) => {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n var firstSessionEntry = sessionEntries[0];\n var 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 var po = observe('layout-shift', entryHandler );\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n onHidden(() => {\n po.takeRecords().map(entryHandler );\n report(true);\n });\n }\n};\n\nexport { getCLS };\n//# sourceMappingURL=getCLS.js.map\n","import { getGlobalObject } from '@sentry/utils';\nimport { onHidden } from './onHidden.js';\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\nlet firstHiddenTime = -1;\n\nvar initHiddenTime = () => {\n return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\n\nvar trackChanges = () => {\n // Update the time if/when the document becomes hidden.\n onHidden(({ timeStamp }) => {\n firstHiddenTime = timeStamp;\n }, true);\n};\n\nvar getVisibilityWatcher = (\n\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 firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n\nexport { getVisibilityWatcher };\n//# sourceMappingURL=getVisibilityWatcher.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\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\nvar getFID = (onReport, reportAllChanges) => {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('FID');\n let report;\n\n var entryHandler = (entry) => {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n\n var po = observe('first-input', entryHandler );\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(() => {\n po.takeRecords().map(entryHandler );\n po.disconnect();\n }, true);\n }\n};\n\nexport { getFID };\n//# sourceMappingURL=getFID.js.map\n","import { bindReporter } from './lib/bindReporter.js';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher.js';\nimport { initMetric } from './lib/initMetric.js';\nimport { observe } from './lib/observe.js';\nimport { onHidden } from './lib/onHidden.js';\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// https://wicg.github.io/largest-contentful-paint/#sec-largest-contentful-paint-interface\n\nvar reportedMetricIDs = {};\n\nvar getLCP = (onReport, reportAllChanges) => {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('LCP');\n let report;\n\n var entryHandler = (entry) => {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n var value = entry.startTime;\n\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n\n if (report) {\n report();\n }\n };\n\n var po = observe('largest-contentful-paint', entryHandler);\n\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n\n var stopListening = () => {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler );\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 addEventListener(type, stopListening, { once: true, capture: true });\n });\n\n onHidden(stopListening, true);\n }\n};\n\nexport { getLCP };\n//# sourceMappingURL=getLCP.js.map\n","/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\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 */\nfunction _startChild(transaction, { startTimestamp, ...ctx }) {\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n\n return transaction.startChild({\n startTimestamp,\n ...ctx,\n });\n}\n\nexport { _startChild, isMeasurementValue };\n//# sourceMappingURL=utils.js.map\n","import { _nullishCoalesce } from '@sentry/utils/esm/buildPolyfills';\nimport { getGlobalObject, browserPerformanceTimeOrigin, logger, htmlTreeAsString } from '@sentry/utils';\nimport { msToSec } from '../../utils.js';\nimport { getCLS } from '../web-vitals/getCLS.js';\nimport { getFID } from '../web-vitals/getFID.js';\nimport { getLCP } from '../web-vitals/getLCP.js';\nimport { getVisibilityWatcher } from '../web-vitals/lib/getVisibilityWatcher.js';\nimport { _startChild, isMeasurementValue } from './utils.js';\n\nvar global = getGlobalObject();\n\nfunction getBrowserPerformanceAPI() {\n return global && global.addEventListener && global.performance;\n}\n\nlet _performanceCursor = 0;\n\nlet _measurements = {};\nlet _lcpEntry;\nlet _clsEntry;\n\n/**\n * Start tracking web vitals\n */\nfunction startTrackingWebVitals(reportAllChanges = false) {\n var performance = getBrowserPerformanceAPI();\n if (performance && browserPerformanceTimeOrigin) {\n if (performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n _trackCLS();\n _trackLCP(reportAllChanges);\n _trackFID();\n }\n}\n\n/** Starts tracking the Cumulative Layout Shift on the current page. */\nfunction _trackCLS() {\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS');\n _measurements['cls'] = { value: metric.value, unit: '' };\n _clsEntry = entry ;\n });\n}\n\n/** Starts tracking the Largest Contentful Paint on the current page. */\nfunction _trackLCP(reportAllChanges) {\n getLCP(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n var timeOrigin = msToSec(browserPerformanceTimeOrigin );\n var startTime = msToSec(entry.startTime);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding LCP');\n _measurements['lcp'] = { value: metric.value, unit: 'millisecond' };\n _measurements['mark.lcp'] = { value: timeOrigin + startTime, unit: 'second' };\n _lcpEntry = entry ;\n }, reportAllChanges);\n}\n\n/** Starts tracking the First Input Delay on the current page. */\nfunction _trackFID() {\n getFID(metric => {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n\n var timeOrigin = msToSec(browserPerformanceTimeOrigin );\n var startTime = msToSec(entry.startTime);\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && 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\n/** Add performance related spans to a transaction */\nfunction addPerformanceEntries(transaction) {\n var performance = getBrowserPerformanceAPI();\n if (!performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n\n var performanceEntries = performance.getEntries();\n\n let responseStartTimestamp;\n let requestStartTimestamp;\n\n performanceEntries.slice(_performanceCursor).forEach((entry) => {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n\n switch (entry.entryType) {\n case 'navigation': {\n _addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n var startTimestamp = _addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n\n if (entry.name === 'first-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FP');\n _measurements['fp'] = { value: entry.startTime, unit: 'millisecond' };\n _measurements['mark.fp'] = { value: startTimestamp, unit: 'second' };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding FCP');\n _measurements['fcp'] = { value: entry.startTime, unit: 'millisecond' };\n _measurements['mark.fcp'] = { value: startTimestamp, unit: 'second' };\n }\n break;\n }\n case 'resource': {\n var resourceName = (entry.name ).replace(global.location.origin, '');\n _addResourceSpans(transaction, entry, resourceName, 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 (transaction.op === 'pageload') {\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding TTFB');\n _measurements['ttfb'] = {\n value: (responseStartTimestamp - transaction.startTimestamp) * 1000,\n unit: 'millisecond',\n };\n\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n _measurements['ttfb.requestTime'] = {\n value: (responseStartTimestamp - requestStartTimestamp) * 1000,\n unit: 'millisecond',\n };\n }\n }\n\n ['fcp', 'fp', 'lcp'].forEach(name => {\n if (!_measurements[name] || timeOrigin >= transaction.startTimestamp) {\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 var oldValue = _measurements[name].value;\n var measurementTimestamp = timeOrigin + msToSec(oldValue);\n\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(`[Measurements] Normalized ${name} from ${oldValue} to ${normalizedValue} (${delta})`);\n _measurements[name].value = normalizedValue;\n });\n\n if (_measurements['mark.fid'] && _measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: _measurements['mark.fid'].value + msToSec(_measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: _measurements['mark.fid'].value,\n });\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 transaction.setMeasurement(\n measurementName,\n _measurements[measurementName].value,\n _measurements[measurementName].unit,\n );\n });\n\n _tagMetricInfo(transaction);\n }\n\n _lcpEntry = undefined;\n _clsEntry = undefined;\n _measurements = {};\n}\n\n/** Create measure related spans */\nfunction _addMeasureSpans(\n transaction,\n entry,\n startTime,\n duration,\n timeOrigin,\n) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n\n _startChild(transaction, {\n description: entry.name ,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType ,\n startTimestamp: measureStartTimestamp,\n });\n\n return measureStartTimestamp;\n}\n\n/** Instrument navigation entries */\nfunction _addNavigationSpans(transaction, entry, timeOrigin) {\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,\n entry,\n event,\n timeOrigin,\n description,\n eventEnd,\n) {\n var end = eventEnd ? (entry[eventEnd] ) : (entry[`${event}End`] );\n var start = entry[`${event}Start`] ;\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: _nullishCoalesce(description, () => ( event)),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n\n/** Create request and response related spans */\nfunction _addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart ),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd ),\n });\n}\n\n/** Create resource-related spans */\nfunction _addResourceSpans(\n transaction,\n entry,\n resourceName,\n startTime,\n duration,\n timeOrigin,\n) {\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 var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n\n _startChild(transaction, {\n description: resourceName,\n endTimestamp,\n op: entry.initiatorType ? `resource.${entry.initiatorType}` : 'resource',\n startTimestamp,\n data,\n });\n}\n\n/**\n * Capture the information of the user agent.\n */\nfunction _trackNavigator(transaction) {\n var navigator = global.navigator ;\n if (!navigator) {\n return;\n }\n\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n\n if (connection.type) {\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 if (isMeasurementValue(connection.downlink)) {\n _measurements['connection.downlink'] = { value: connection.downlink, unit: '' }; // unit is empty string for now, while relay doesn't support download speed units\n }\n }\n\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', `${navigator.deviceMemory} GB`);\n }\n\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n}\n\n/** Add LCP / CLS data to transaction to allow debugging */\nfunction _tagMetricInfo(transaction) {\n if (_lcpEntry) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && 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 transaction.setTag('lcp.element', htmlTreeAsString(_lcpEntry.element));\n }\n\n if (_lcpEntry.id) {\n transaction.setTag('lcp.id', _lcpEntry.id);\n }\n\n if (_lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', _lcpEntry.url.trim().slice(0, 200));\n }\n\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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Measurements] Adding CLS Data');\n _clsEntry.sources.forEach((source, index) =>\n transaction.setTag(`cls.source.${index + 1}`, htmlTreeAsString(source.node)),\n );\n }\n}\n\nexport { _addMeasureSpans, _addResourceSpans, addPerformanceEntries, startTrackingWebVitals };\n//# sourceMappingURL=index.js.map\n","import { isMatchingPattern, addInstrumentationHandler, isInstanceOf, BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage } from '@sentry/utils';\nimport { hasTracingEnabled, getActiveTransaction } from '../utils.js';\n\nvar DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\n\n/** Options for Request Instrumentation */\n\nvar defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n\n/** Registers span creators for xhr and fetch requests */\nfunction instrumentOutgoingRequests(_options) {\n const { traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest } = {\n ...defaultRequestInstrumentationOptions,\n ..._options,\n };\n\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n var urlMap = {};\n\n var defaultShouldCreateSpan = (url) => {\n if (urlMap[url]) {\n return urlMap[url];\n }\n var origins = tracingOrigins;\n urlMap[url] =\n origins.some((origin) => isMatchingPattern(url, origin)) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n let shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = (url) => {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n\n var spans = {};\n\n if (traceFetch) {\n addInstrumentationHandler('fetch', (handlerData) => {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n\n if (traceXHR) {\n addInstrumentationHandler('xhr', (handlerData) => {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n });\n }\n}\n\n/**\n * Create and track fetch request spans\n */\nfunction fetchCallback(\n handlerData,\n shouldCreateSpan,\n spans,\n) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n\n if (handlerData.endTimestamp) {\n var spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n var span = spans[spanId];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n span.setHttpStatus(handlerData.response.status);\n } else if (handlerData.error) {\n span.setStatus('internal_error');\n }\n span.finish();\n\n delete spans[spanId];\n }\n return;\n }\n\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: {\n ...handlerData.fetchData,\n type: 'fetch',\n },\n description: `${handlerData.fetchData.method} ${handlerData.fetchData.url}`,\n op: 'http.client',\n });\n\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n\n var request = (handlerData.args[0] = handlerData.args[0] );\n var options = (handlerData.args[1] = (handlerData.args[1] ) || {});\n options.headers = addTracingHeaders(request, activeTransaction.getBaggage(), span, options);\n }\n}\n\nfunction addTracingHeaders(\n request,\n incomingBaggage,\n span,\n options,\n) {\n let headers = options.headers;\n\n if (isInstanceOf(request, Request)) {\n headers = (request ).headers;\n }\n\n if (headers) {\n if (typeof headers.append === 'function') {\n headers.append('sentry-trace', span.toTraceparent());\n headers.append(BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage(incomingBaggage, headers.get(BAGGAGE_HEADER_NAME)));\n } else if (Array.isArray(headers)) {\n const [, headerBaggageString] = headers.find(([key, _]) => key === BAGGAGE_HEADER_NAME);\n headers = [\n ...headers,\n ['sentry-trace', span.toTraceparent()],\n [BAGGAGE_HEADER_NAME, mergeAndSerializeBaggage(incomingBaggage, headerBaggageString)],\n ];\n } else {\n headers = {\n ...headers,\n 'sentry-trace': span.toTraceparent(),\n baggage: mergeAndSerializeBaggage(incomingBaggage, headers.baggage),\n };\n }\n } else {\n headers = { 'sentry-trace': span.toTraceparent(), baggage: mergeAndSerializeBaggage(incomingBaggage) };\n }\n return headers;\n}\n\n/**\n * Create and track xhr request spans\n */\nfunction xhrCallback(\n handlerData,\n shouldCreateSpan,\n spans,\n) {\n if (\n !hasTracingEnabled() ||\n (handlerData.xhr && handlerData.xhr.__sentry_own_request__) ||\n !(handlerData.xhr && handlerData.xhr.__sentry_xhr__ && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))\n ) {\n return;\n }\n\n var xhr = handlerData.xhr.__sentry_xhr__;\n\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp) {\n var spanId = handlerData.xhr.__sentry_xhr_span_id__;\n if (!spanId) return;\n\n var span = spans[spanId];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n\n delete spans[spanId];\n }\n return;\n }\n\n // if not, create a new span to track it\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: {\n ...xhr.data,\n type: 'xhr',\n method: xhr.method,\n url: xhr.url,\n },\n description: `${xhr.method} ${xhr.url}`,\n op: 'http.client',\n });\n\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n\n var headerBaggageString =\n handlerData.xhr.getRequestHeader && handlerData.xhr.getRequestHeader(BAGGAGE_HEADER_NAME);\n\n handlerData.xhr.setRequestHeader(\n BAGGAGE_HEADER_NAME,\n mergeAndSerializeBaggage(activeTransaction.getBaggage(), headerBaggageString),\n );\n } catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n\nexport { DEFAULT_TRACING_ORIGINS, defaultRequestInstrumentationOptions, fetchCallback, instrumentOutgoingRequests, xhrCallback };\n//# sourceMappingURL=request.js.map\n","import { getGlobalObject, logger, addInstrumentationHandler } from '@sentry/utils';\n\nvar global = getGlobalObject();\n\n/**\n * Default function implementing pageload and navigation transactions\n */\nfunction instrumentRoutingWithDefaults(\n customStartTransaction,\n startTransactionOnPageLoad = true,\n startTransactionOnLocationChange = true,\n) {\n if (!global || !global.location) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n\n let startingUrl = global.location.href;\n\n let activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({\n name: global.location.pathname,\n op: 'pageload',\n metadata: { source: 'url' },\n });\n }\n\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler('history', ({ 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 (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && 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.finish();\n }\n activeTransaction = customStartTransaction({\n name: global.location.pathname,\n op: 'navigation',\n metadata: { source: 'url' },\n });\n }\n });\n }\n}\n\nexport { instrumentRoutingWithDefaults };\n//# sourceMappingURL=router.js.map\n","import { logger, getGlobalObject, extractTraceparentData, parseBaggageSetMutability } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions.js';\nimport { DEFAULT_IDLE_TIMEOUT, DEFAULT_FINAL_TIMEOUT } from '../idletransaction.js';\nimport '../utils.js';\nimport { registerBackgroundTabDetection } from './backgroundtab.js';\nimport { startTrackingWebVitals, addPerformanceEntries } from './metrics/index.js';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './request.js';\nimport { instrumentRoutingWithDefaults } from './router.js';\n\nvar BROWSER_TRACING_INTEGRATION_ID = 'BrowserTracing';\n\n/** Options for Browser Tracing integration */\n\nvar DEFAULT_BROWSER_TRACING_OPTIONS = {\n idleTimeout: DEFAULT_IDLE_TIMEOUT,\n finalTimeout: DEFAULT_FINAL_TIMEOUT,\n markBackgroundTransactions: true,\n routingInstrumentation: instrumentRoutingWithDefaults,\n startTransactionOnLocationChange: true,\n startTransactionOnPageLoad: true,\n ...defaultRequestInstrumentationOptions,\n};\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 */\nclass BrowserTracing {\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 \n\n /**\n * @inheritDoc\n */\n __init() {this.name = BROWSER_TRACING_INTEGRATION_ID;}\n\n constructor(_options) {;BrowserTracing.prototype.__init.call(this);\n let tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n } else {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && (this._emitOptionsWarning = true);\n }\n }\n\n this.options = {\n ...DEFAULT_BROWSER_TRACING_OPTIONS,\n ..._options,\n tracingOrigins,\n };\n\n const { _metricOptions } = this.options;\n startTrackingWebVitals(_metricOptions && _metricOptions._reportAllChanges);\n }\n\n /**\n * @inheritDoc\n */\n setupOnce(_, getCurrentHub) {\n this._getCurrentHub = getCurrentHub;\n\n if (this._emitOptionsWarning) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n '[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.',\n );\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(\n `[Tracing] We added a reasonable default for you: ${defaultRequestInstrumentationOptions.tracingOrigins}`,\n );\n }\n\n const {\n routingInstrumentation: instrumentRouting,\n startTransactionOnLocationChange,\n startTransactionOnPageLoad,\n markBackgroundTransactions,\n traceFetch,\n traceXHR,\n tracingOrigins,\n shouldCreateSpanForRequest,\n } = this.options;\n\n instrumentRouting(\n (context) => this._createRouteTransaction(context),\n startTransactionOnPageLoad,\n startTransactionOnLocationChange,\n );\n\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n\n instrumentOutgoingRequests({ traceFetch, traceXHR, tracingOrigins, shouldCreateSpanForRequest });\n }\n\n /** Create routing idle transaction. */\n _createRouteTransaction(context) {\n if (!this._getCurrentHub) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.warn(`[Tracing] Did not create ${context.op} transaction because _getCurrentHub is invalid.`);\n return undefined;\n }\n\n const { beforeNavigate, idleTimeout, finalTimeout } = this.options;\n\n var parentContextFromHeader = context.op === 'pageload' ? extractTraceDataFromMetaTags() : undefined;\n\n var expandedContext = {\n ...context,\n ...parentContextFromHeader,\n ...(parentContextFromHeader && {\n metadata: {\n ...context.metadata,\n ...parentContextFromHeader.metadata,\n },\n }),\n trimEnd: true,\n };\n var 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 var finalContext = modifiedContext === undefined ? { ...expandedContext, sampled: false } : modifiedContext;\n\n // If `beforeNavigate` set a custom name, record that fact\n finalContext.metadata =\n finalContext.name !== expandedContext.name\n ? { ...finalContext.metadata, source: 'custom' }\n : finalContext.metadata;\n\n if (finalContext.sampled === false) {\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&\n logger.log(`[Tracing] Will not send ${finalContext.op} transaction because of beforeNavigate.`);\n }\n\n (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log(`[Tracing] Starting ${finalContext.op} transaction on scope`);\n\n var hub = this._getCurrentHub();\n const { location } = getGlobalObject() ;\n\n var idleTransaction = startIdleTransaction(\n hub,\n finalContext,\n idleTimeout,\n finalTimeout,\n true,\n { location }, // for use in the tracesSampler\n );\n idleTransaction.registerBeforeFinishCallback(transaction => {\n addPerformanceEntries(transaction);\n transaction.setTag(\n 'sentry_reportAllChanges',\n Boolean(this.options._metricOptions && this.options._metricOptions._reportAllChanges),\n );\n });\n\n return idleTransaction ;\n }\n}\n\n/**\n * Gets transaction context data from `sentry-trace` and `baggage` tags.\n * @returns Transaction context data or undefined neither tag exists or has valid data\n */\nfunction extractTraceDataFromMetaTags() {\n var sentrytraceValue = getMetaContent('sentry-trace');\n var baggageValue = getMetaContent('baggage');\n\n var sentrytraceData = sentrytraceValue ? extractTraceparentData(sentrytraceValue) : undefined;\n var baggage = parseBaggageSetMutability(baggageValue, sentrytraceValue);\n\n // TODO more extensive checks for baggage validity/emptyness?\n if (sentrytraceData || baggage) {\n return {\n ...(sentrytraceData && sentrytraceData),\n ...(baggage && { metadata: { baggage } }),\n };\n }\n\n return undefined;\n}\n\n/** Returns the value of a meta tag */\nfunction getMetaContent(metaName) {\n var globalObject = getGlobalObject();\n\n // DOM/querySelector is not available in all environments\n if (globalObject.document && globalObject.document.querySelector) {\n var el = globalObject.document.querySelector(`meta[name=${metaName}]`);\n return el ? el.getAttribute('content') : null;\n } else {\n return null;\n }\n}\n\nexport { BROWSER_TRACING_INTEGRATION_ID, BrowserTracing, extractTraceDataFromMetaTags, getMetaContent };\n//# sourceMappingURL=browsertracing.js.map\n","import { addExtensionMethods } from './hubextensions.js';\nexport { addExtensionMethods, startIdleTransaction } from './hubextensions.js';\nimport * as index from './integrations/index.js';\nexport { index as Integrations };\nimport './browser/index.js';\nexport { Span, spanStatusfromHttpCode } from './span.js';\nexport { SpanStatus } from './spanstatus.js';\nexport { Transaction } from './transaction.js';\nexport { IdleTransaction } from './idletransaction.js';\nexport { getActiveTransaction, hasTracingEnabled } from './utils.js';\nexport { BROWSER_TRACING_INTEGRATION_ID, BrowserTracing } from './browser/browsertracing.js';\nexport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests } from './browser/request.js';\nexport { TRACEPARENT_REGEXP, extractTraceparentData, stripUrlQueryAndFragment } from '@sentry/utils';\n\n;\n;\n\n// Treeshakable guard to remove all code related to tracing\n\n// Guard for tree\nif (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {\n // We are patching the global object with our hub extension methods\n addExtensionMethods();\n}\n//# sourceMappingURL=index.js.map\n","import { getGlobalObject, stripUrlQueryAndFragment, fill } from '@sentry/utils';\nimport Router from 'next/router';\n\nvar global = getGlobalObject();\n\nvar DEFAULT_TAGS = {\n 'routing.instrumentation': 'next-router',\n} ;\n\nlet activeTransaction = undefined;\nlet prevTransactionName = undefined;\nlet startTransaction = undefined;\n\n/**\n * Creates routing instrumention for Next Router. Only supported for\n * client side routing. Works for Next >= 10.\n *\n * Leverages the SingletonRouter from the `next/router` to\n * generate pageload/navigation transactions and parameterize\n * transaction names.\n */\nfunction nextRouterInstrumentation(\n startTransactionCb,\n startTransactionOnPageLoad = true,\n startTransactionOnLocationChange = true,\n) {\n startTransaction = startTransactionCb;\n Router.ready(() => {\n // We can only start the pageload transaction when we have access to the parameterized\n // route name. Setting the transaction name after the transaction is started could lead\n // to possible race conditions with the router, so this approach was taken.\n if (startTransactionOnPageLoad) {\n var pathIsRoute = Router.route !== null;\n\n prevTransactionName = pathIsRoute ? stripUrlQueryAndFragment(Router.route) : global.location.pathname;\n activeTransaction = startTransactionCb({\n name: prevTransactionName,\n op: 'pageload',\n tags: DEFAULT_TAGS,\n metadata: {\n source: pathIsRoute ? 'route' : 'url',\n },\n });\n }\n\n // Spans that aren't attached to any transaction are lost; so if transactions aren't\n // created (besides potentially the onpageload transaction), no need to wrap the router.\n if (!startTransactionOnLocationChange) return;\n\n // `withRouter` uses `useRouter` underneath:\n // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/with-router.tsx#L21\n // Router events also use the router:\n // https://github.com/vercel/next.js/blob/de42719619ae69fbd88e445100f15701f6e1e100/packages/next/client/router.ts#L92\n // `Router.changeState` handles the router state changes, so it may be enough to only wrap it\n // (instead of wrapping all of the Router's functions).\n var routerPrototype = Object.getPrototypeOf(Router.router);\n fill(routerPrototype, 'changeState', changeStateWrapper);\n });\n}\n\n/**\n * Wraps Router.changeState()\n * https://github.com/vercel/next.js/blob/da97a18dafc7799e63aa7985adc95f213c2bf5f3/packages/next/next-server/lib/router/router.ts#L1204\n * Start a navigation transaction every time the router changes state.\n */\nfunction changeStateWrapper(originalChangeStateWrapper) {\n var wrapper = function (\n \n method,\n // The parameterized url, ex. posts/[id]/[comment]\n url,\n // The actual url, ex. posts/85/my-comment\n as,\n options,\n // At the moment there are no additional arguments (meaning the rest parameter is empty).\n // This is meant to protect from future additions to Next.js API, especially since this is an\n // internal API.\n ...args\n ) {\n var newTransactionName = stripUrlQueryAndFragment(url);\n // do not start a transaction if it's from the same page\n if (startTransaction !== undefined && prevTransactionName !== newTransactionName) {\n if (activeTransaction) {\n activeTransaction.finish();\n }\n var tags = {\n ...DEFAULT_TAGS,\n method,\n ...options,\n };\n if (prevTransactionName) {\n tags.from = prevTransactionName;\n }\n prevTransactionName = newTransactionName;\n activeTransaction = startTransaction({\n name: prevTransactionName,\n op: 'navigation',\n tags,\n metadata: { source: 'route' },\n });\n }\n return originalChangeStateWrapper.call(this, method, url, as, options, ...args);\n };\n return wrapper;\n}\n\nexport { nextRouterInstrumentation };\n//# sourceMappingURL=client.js.map\n","var SDK_VERSION = '7.7.0';\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from '@sentry/core';\n\nvar PACKAGE_NAME_PREFIX = 'npm:@sentry/';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n * @param options sdk options object that gets mutated\n * @param names list of package names\n */\nfunction buildMetadata(options, names) {\n options._metadata = options._metadata || {};\n options._metadata.sdk =\n options._metadata.sdk ||\n ({\n name: 'sentry.javascript.nextjs',\n packages: names.map(name => ({\n name: `${PACKAGE_NAME_PREFIX}${name}`,\n version: SDK_VERSION,\n })),\n version: SDK_VERSION,\n } );\n}\n\nexport { buildMetadata };\n//# sourceMappingURL=metadata.js.map\n","/**\n * Recursively traverses an object to update an existing nested key.\n * Note: The provided key path must include existing properties,\n * the function will not create objects while traversing.\n *\n * @param obj An object to update\n * @param value The value to update the nested key with\n * @param keyPath The path to the key to update ex. fizz.buzz.foo\n */\nfunction setNestedKey(obj, keyPath, value) {\n // Ex. foo.bar.zoop will extract foo and bar.zoop\n var match = keyPath.match(/([a-z]+)\\.(.*)/i);\n if (match === null) {\n obj[keyPath] = value;\n } else {\n setNestedKey(obj[match[1]], match[2], value);\n }\n}\n\n/**\n * Retrieves the patched integrations with the provided integration.\n *\n * The integration must be present in the final user integrations, and they are compared\n * by integration name. If the user has defined one, there's nothing to patch; if not,\n * the provided integration is added.\n *\n * @param integration The integration to patch, if necessary.\n * @param userIntegrations Integrations defined by the user.\n * @param options options to update for a particular integration\n * @returns Final integrations, patched if necessary.\n */\nfunction addIntegration(\n integration,\n userIntegrations,\n options = {},\n) {\n if (Array.isArray(userIntegrations)) {\n return addIntegrationToArray(integration, userIntegrations, options);\n } else {\n return addIntegrationToFunction(integration, userIntegrations, options);\n }\n}\n\nfunction addIntegrationToArray(\n integration,\n userIntegrations,\n options,\n) {\n let includesName = false;\n for (let x = 0; x < userIntegrations.length; x++) {\n if (userIntegrations[x].name === integration.name) {\n includesName = true;\n }\n\n var op = options[userIntegrations[x].name];\n if (op) {\n setNestedKey(userIntegrations[x], op.keyPath, op.value);\n }\n }\n\n if (includesName) {\n return userIntegrations;\n }\n return [...userIntegrations, integration];\n}\n\nfunction addIntegrationToFunction(\n integration,\n userIntegrationsFunc,\n options,\n) {\n var wrapper = defaultIntegrations => {\n var userFinalIntegrations = userIntegrationsFunc(defaultIntegrations);\n return addIntegrationToArray(integration, userFinalIntegrations, options);\n };\n return wrapper;\n}\n\nexport { addIntegration };\n//# sourceMappingURL=userIntegrations.js.map\n","import { init as init$1, configureScope } from '@sentry/react';\nexport * from '@sentry/react';\nexport { Integrations } from '@sentry/react';\nimport { BrowserTracing, defaultRequestInstrumentationOptions } from '@sentry/tracing';\nexport { BrowserTracing } from '@sentry/tracing';\nimport { nextRouterInstrumentation } from './performance/client.js';\nexport { nextRouterInstrumentation } from './performance/client.js';\nimport { buildMetadata } from './utils/metadata.js';\nimport { addIntegration } from './utils/userIntegrations.js';\nexport { captureUnderscoreErrorException } from './utils/_error.js';\n\n// Treeshakable guard to remove all code related to tracing\n\n/** Inits the Sentry NextJS SDK on the browser with the React SDK. */\nfunction init(options) {\n buildMetadata(options, ['nextjs', 'react']);\n options.environment = options.environment || process.env.NODE_ENV;\n\n let integrations = options.integrations;\n\n // Guard below evaluates to true unless __SENTRY_TRACING__ is text-replaced with \"false\"\n if (typeof __SENTRY_TRACING__ === 'undefined' || __SENTRY_TRACING__) {\n // Only add BrowserTracing if a tracesSampleRate or tracesSampler is set\n if (options.tracesSampleRate !== undefined || options.tracesSampler !== undefined) {\n integrations = createClientIntegrations(options.integrations);\n }\n }\n\n init$1({\n ...options,\n integrations,\n });\n\n configureScope(scope => {\n scope.setTag('runtime', 'browser');\n var filterTransactions = event =>\n event.type === 'transaction' && event.transaction === '/404' ? null : event;\n filterTransactions.id = 'NextClient404Filter';\n scope.addEventProcessor(filterTransactions);\n });\n}\n\nfunction createClientIntegrations(integrations) {\n var defaultBrowserTracingIntegration = new BrowserTracing({\n tracingOrigins: [...defaultRequestInstrumentationOptions.tracingOrigins, /^(api\\/)/],\n routingInstrumentation: nextRouterInstrumentation,\n });\n\n if (integrations) {\n return addIntegration(defaultBrowserTracingIntegration, integrations, {\n BrowserTracing: { keyPath: 'options.routingInstrumentation', value: nextRouterInstrumentation },\n });\n } else {\n return [defaultBrowserTracingIntegration];\n }\n}\n\nexport { init };\n//# sourceMappingURL=index.client.js.map\n","import { isProductionEnvironment } from 'utils/isProductionEnvironment'\n\nexport const SENTRY_DSN = process.env.NEXT_PUBLIC_SENTRY_DSN\nexport const SENTRY_ENVIRONMENT = process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT\n// In staging, set release as preview url to allow filtering by PR\nexport const SENTRY_RELEASE = isProductionEnvironment\n ? process.env.NEXT_PUBLIC_SENTRY_RELEASE\n : process.env.NEXT_PUBLIC_BASE_DOMAIN\n\nexport const ignoreErrors = [\n // Random plugins/extensions\n 'top.GLOBALS',\n // See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html\n 'originalCreateNotification',\n 'canvas.contentDocument',\n 'MyApp_RemoveAllHighlights',\n 'http://tt.epicplay.com',\n \"Can't find variable: ZiteReader\",\n 'jigsaw is not defined',\n 'ComboSearch is not defined',\n 'http://loading.retry.widdit.com/',\n 'atomicFindClose',\n // Facebook borked\n 'fb_xd_fragment',\n // ISP \"optimizing\" proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)\n // See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy\n 'bmi_SafeAddOnload',\n 'EBCallBackMessageReceived',\n // See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx\n 'conduitPage',\n // Generic error code from errors outside the security sandbox\n // You can delete this if using raven.js > 1.0, which ignores these automatically.\n 'Script error.',\n // We are getting UnhandledRejection errors when Outlook users click on links in newsletters, due to the\n // Safe Links feature in Outlook. See https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/atp-safe-links?view=o365-worldwide\n // It is recommended to filter out this string rather than the more broad `Non-Error promise rejection captured`\n // here: https://github.com/getsentry/sentry-javascript/issues/3440#issuecomment-1233146122\n // because this exact string is used in CefSharp, which is used by the Outlook desktop app.\n // https://github.com/cefsharp/CefSharp/blob/445fb9ab2d178b55e3ca6561722d151ce3d9337e/CefSharp/Internals/JavascriptObjectRepository.cs#L293\n 'Object Not Found Matching Id',\n]\n\nexport const denyUrls = [\n // Facebook flakiness\n /graph\\.facebook\\.com/i,\n // Facebook blocked\n /connect\\.facebook\\.net\\/en_US\\/all\\.js/i,\n // Woopra flakiness\n /eatdifferent\\.com\\.woopra-ns\\.com/i,\n /static\\.woopra\\.com\\/js\\/woopra\\.js/i,\n // Chrome extensions\n /extensions\\//i,\n /^chrome:\\/\\//i,\n // Other plugins\n /127\\.0\\.0\\.1:4001\\/isrunning/i, // Cacaoweb\n /webappstoolbarba\\.texthelp\\.com\\//i,\n /metrics\\.itunes\\.apple\\.com\\.edgesuite\\.net\\//i,\n]\n","/* eslint-disable import/no-namespace */\n// This file configures the initialization of Sentry on the client.\n// The config you add here will be used whenever a users loads a page in their browser.\n// https://docs.sentry.io/platforms/javascript/guides/nextjs/\n\nimport * as Sentry from '@sentry/nextjs'\n\nimport {\n SENTRY_DSN,\n SENTRY_ENVIRONMENT,\n SENTRY_RELEASE,\n denyUrls,\n ignoreErrors,\n} from 'sentry.shared.config'\n\nSentry.init({\n dsn: SENTRY_DSN,\n environment: SENTRY_ENVIRONMENT,\n release: SENTRY_RELEASE,\n tracesSampleRate: 1.0,\n maxBreadcrumbs: 50,\n attachStacktrace: true,\n denyUrls,\n ignoreErrors,\n})\n","export const routeMap = {\n /**\n * We maintain an object of logical page names to their\n * URL pathnames\n */\n forgotPassword: '/forgot-password',\n home: '/',\n login: '/login',\n manageSubscriptions: '/manage-subscriptions',\n news: '/news',\n analysis: '/analysis',\n bookmarks: '/bookmarks',\n business: '/business',\n offerCodeEntry: '/offer-code',\n corporateCode: (slug: string) => `/corporate/code/${slug}`,\n onboardingForm: '/onboarding',\n onboardDownload: '/onboard/download',\n openSourceLicenceInfo: '/open-source-licence-info',\n profile: '/profile', \n checkout: (slug?: string) => slug ? `/checkout/${slug}` : '/checkout',\n signup: '/sign-up',\n join: '/join', \n topics: (slugs: string[]) => `/topics/${slugs.join('/')}`,\n search: `/search`,\n experts: (slug: string) => `/experts/${slug}`,\n notFound: '/404',\n hubs: (slug: string) => `/hubs/${slug}`,\n // Advisors and Education are permanent hubs, so we can hardcode their slugs\n hubshub: '/hubs/directory',\n education: '/hubs/education',\n\n markets: '/markets',\n assets: (slug: string) => `/markets/assets/${slug}`,\n sectors: (slug: string) => `/markets/sectors/${slug}`,\n industries: (slug: string, sectorSlug:string) => `/markets/sectors/${sectorSlug}/industries/${slug}`,\n\n /**\n * Rewrite routes to the webflow business site\n */\n privacy: '/privacy',\n faq: '/faq',\n glossary: '/glossary',\n glossaryDefinition: (slug: string) => `/glossary/${slug}`,\n terms: '/terms',\n careers: '/careers',\n about: '/about-us', \n events: '/events', //Path is mapped to business site in next config\n\n /**\n * The following routeMap properties don't seem to be used, but are kept for backwards compatibility\n */\n /** @deprecated use topics instead */\n tags: (slug: string) => `/tags/${slug}`,\n newsletterSignup: '/newsletter/signup', // still used via facebook links, redirects to /newsletter\n newsletterPreferences: '/newsletter/preferences', // still used via facebook links\n newsletterThankyou: 'newsletter/thank-you', // still used via facebook links\n newsletterPremiumSuccess: '/newsletter/premium/success', // still used via facebook links\n newsletterPremium: '/newsletter/premium', // still used via facebook links, redirects to /newsletter\n plansCheckoutSuccess: '/plans/checkout/success', // no longer used in the checkout\n plansCheckout: (slug?: string) => slug ? `/plans/checkout/${slug}` : '/plans/checkout' ,// no longer used in the checkout,\n plansSignUp: (slug?: string) => slug ? `/plans/sign-up/${slug}` : '/plans/sign-up', // no longer used in the checkout,\n plansLogin: (slug?: string) => slug ? `/plans/login/${slug}` : '/plans/login', // no longer used in the checkout,\n}","import type { IncomingMessage, ServerResponse } from 'http'\n\nimport {configureScope as sentryConfigureScope, captureException as sentryCaptureException} from '@sentry/nextjs'\nimport Cookie from 'js-cookie';\nimport type { NextPageContext } from 'next';\n\ninterface RequestContext {\n params: Record;\n cookies: Record;\n}\n\ntype ErrorContext = {\n req?: IncomingMessage & NextPageContext & RequestContext,\n res?: ServerResponse,\n errorInfo?: {[k: string]: any}\n query?: string //? I think \n pathname?: string //? I think \n}\n\nexport const captureException = (err: any, ctx?: ErrorContext) => {\n sentryConfigureScope((scope:any) => {\n if (err.message) {\n // De-duplication currently doesn't work correctly for SSR / browser errors\n // so we force deduplication by error message if it is present\n scope.setFingerprint([err.message])\n }\n\n if (err['statusCode']) {\n scope.setExtra('statusCode', err['statusCode'])\n }\n\n if (ctx) {\n const { req, res, errorInfo, query, pathname } = ctx\n\n if (res && res.statusCode) {\n scope.setExtra('statusCode', res.statusCode)\n }\n\n if (process['browser']) {\n scope.setTag('ssr', false)\n scope.setExtra('query', query)\n scope.setExtra('pathname', pathname)\n\n // On client-side we use js-cookie package to fetch it\n const sessionId = Cookie.get('sid')\n if (sessionId) {\n scope.setUser({ id: sessionId })\n }\n } else {\n scope.setTag('ssr', true)\n scope.setExtra('url', req?.url)\n scope.setExtra('method', req?.method)\n scope.setExtra('headers', req?.headers)\n scope.setExtra('params', req && req['params'])\n scope.setExtra('query', req && req['query'])\n\n // On server-side we take session cookie directly from request\n if (req && req['cookies'] && req['cookies']['sid']) {\n scope.setUser({ id: req['cookies']['sid']})\n }\n }\n\n if (errorInfo) {\n Object.keys(errorInfo).forEach(key => scope.setExtra(key, errorInfo[key]))\n }\n }\n })\n\n return sentryCaptureException(err)\n}","/**\n * @deprecated The colors should not be used moving forward\n */\nexport type LegacyColors = keyof typeof legacyColors\n\n/**\n * @deprecated The colors should not be used moving forward\n */\nexport const legacyColors = {\n white: '#fff',\n black: '#171923',\n blackInverted: '#fff',\n black800: '#102440',\n black900: '#091525',\n text: '#3C4857',\n primary: '#0087ff',\n primaryInverted: '#fff',\n primaryDark: '#2F80ED',\n primaryMid: '#83C9FF',\n primaryDarkInverted: '#fff',\n primaryLight: '#C8E7FF',\n danger: '#FD2F60',\n dangerInverted: '#fff',\n warning: '#ffbb2d',\n warningInverted: '#171e27',\n navy: '#4669F6',\n navyInverted: '#fff',\n yellow: '#ffdb2d',\n yellowInverted: '#171e27',\n yellow500: '#FFBC31',\n success: '#0FD165',\n successInverted: '#fff',\n grey1: '#F9FAFC',\n grey2: '#F0F2F7',\n grey3: '#E5E9F2',\n grey4: '#C0CCDA',\n grey5: '#8392A6',\n inputBorder: 'rgba(60, 72, 87, 0.04)',\n transparent: 'transparent',\n modalBackground: 'rgba(0, 0, 0, 0.5)',\n blue100: '#F6FBFF',\n blue200: '#EBF6FF',\n blue300: '#D8EEFE',\n blue400: '#9DD4FD',\n blue500: '#3BA9FC',\n blue600: '#2B7BB8',\n blue700: '#275789',\n blue800: '#102440',\n blue900: '#040D14',\n blueHeader: '#1A3458',\n blueFooter: '#CCE6FE',\n\n // cross platform colors\n\n grey200: '#F7FAFC',\n grey300: '#EDF2F7',\n grey400: '#E2E8F0',\n grey600: '#CBD5E0',\n grey700: '#A0AEC0',\n grey800: '#718096',\n grey900: '#4A5568',\n\n black300: '#2D3748',\n black400: '#1A202C',\n black500: '#171923',\n\n // generateColorVar\n}\n","export type Colors = typeof colors\n\nexport const colors = {\n day: {\n 900: '#000E1A',\n 800: '#002C53',\n 700: '#004B8D',\n 600: '#0069C6',\n 500: '#0087FF',\n 400: '#40A5FF',\n 300: '#80C3FF',\n 200: '#BFE1FF',\n 100: '#DFF0FF',\n 50: '#F7FBFF',\n },\n night: {\n 900: '#02050B',\n 800: '#061023',\n 700: '#0A1B3C',\n 600: '#0E2554',\n 500: '#12306C',\n 400: '#4D6491',\n 300: '#8998B6',\n 200: '#C4CBDA',\n 100: '#E2E5ED',\n 50: '#F8F9FB',\n },\n azure: {\n 900: '#13192B',\n 800: '#0A194C',\n 700: '#122A80',\n 600: '#193BB5',\n 500: '#204CE9',\n 400: '#5879EF',\n 300: '#90A6FA',\n 200: '#C7D2FA',\n 100: '#E3E9FD',\n 50: '#F8FAFF',\n },\n concrete: {\n 999: '#030303',\n 900: '#181c25',\n 800: '#262a37',\n 700: '#383F4F',\n 600: '#4C5469',\n 500: '#5E6984',\n 400: '#7F879C',\n 300: '#CBCFDA',\n 200: '#E4E8F3',\n 100: '#eef1f8',\n 50: '#f8f9ff',\n 0: '#FFFFFF',\n },\n lavender: {\n 900: '#02010C',\n 800: '#070227',\n 700: '#0C0342',\n 600: '#10045D',\n 500: '#150578',\n 400: '#50449A',\n 300: '#8A82BC',\n 200: '#C5C1DD',\n 100: '#E2E0EE',\n 50: '#F8F7FB',\n },\n green: {\n 900: '#062C1A',\n 800: '#0B5833',\n 700: '#11854D',\n 600: '#149b5a',\n 500: '#16B166',\n 400: '#55E6A0',\n 300: '#8EEEC0',\n 200: '#C6F7DF',\n 100: '#E3FBEF',\n 50: '#FAFDFB',\n },\n yellow: {\n 900: '#171106',\n 800: '#4B3713',\n 700: '#7E5D20',\n 600: '#B2822C',\n 500: '#E5A839',\n 400: '#ECBE6B',\n 300: '#F2D49C',\n 200: '#F9E9CE',\n 100: '#FCF4E7',\n 50: '#FEFCF9',\n },\n starship: {\n 900: '#2D2E06',\n 800: '#3B3C1A',\n 700: '#747933',\n 600: '#AEB54F',\n 500: '#E6F14A',\n 400: '#F0F964',\n 300: '#ECF482',\n 200: '#F1F79E',\n 100: '#F6FABE',\n 50: '#FBFCDF',\n },\n red: {\n 900: '#170509',\n 800: '#4C111D',\n 700: '#811D31',\n 600: '#B52845',\n 500: '#EA3459',\n 400: '#EF6783',\n 300: '#F59AAC',\n 200: '#FACCD6',\n 100: '#FDE6EB',\n 50: '#FFF9FA',\n },\n}\n","import { colors } from '../Colors'\n\nexport type DefaultPalette = typeof defaultPalette\n\nexport const defaultPalette = {\n primary: {\n 900: colors.day[900],\n 800: colors.day[800],\n 700: colors.day[700],\n 600: colors.day[600],\n 500: colors.day[500],\n 400: colors.day[400],\n 300: colors.day[300],\n 200: colors.day[200],\n 100: colors.day[100],\n 50: colors.day[50],\n },\n secondary: {\n 900: colors.night[900],\n 800: colors.night[800],\n 700: colors.night[700],\n 600: colors.night[600],\n 500: colors.night[500],\n 400: colors.night[400],\n 300: colors.night[300],\n 200: colors.night[200],\n 100: colors.night[100],\n 50: colors.night[50],\n },\n accent: {\n 900: colors.azure[900],\n 800: colors.azure[800],\n 700: colors.azure[700],\n 600: colors.azure[600],\n 500: colors.azure[500],\n 400: colors.azure[400],\n 300: colors.azure[300],\n 200: colors.azure[200],\n 100: colors.azure[100],\n 50: colors.azure[50],\n },\n highlight: {\n 900: colors.starship[900],\n 800: colors.starship[800],\n 700: colors.starship[700],\n 600: colors.starship[600],\n 500: colors.starship[500],\n 400: colors.starship[400],\n 300: colors.starship[300],\n 200: colors.starship[200],\n 100: colors.starship[100],\n 50: colors.starship[50],\n },\n neutral: {\n 999: colors.concrete[999],\n 900: colors.concrete[900],\n 800: colors.concrete[800],\n 700: colors.concrete[700],\n 600: colors.concrete[600],\n 500: colors.concrete[500],\n 400: colors.concrete[400],\n 300: colors.concrete[300],\n 200: colors.concrete[200],\n 100: colors.concrete[100],\n 50: colors.concrete[50],\n 0: colors.concrete[0],\n },\n info: {\n 900: colors.lavender[900],\n 800: colors.lavender[800],\n 700: colors.lavender[700],\n 600: colors.lavender[600],\n 500: colors.lavender[500],\n 400: colors.lavender[400],\n 300: colors.lavender[300],\n 200: colors.lavender[200],\n 100: colors.lavender[100],\n 50: colors.lavender[50],\n },\n success: {\n 900: colors.green[900],\n 800: colors.green[800],\n 700: colors.green[700],\n 600: colors.green[600],\n 500: colors.green[500],\n 400: colors.green[400],\n 300: colors.green[300],\n 200: colors.green[200],\n 100: colors.green[100],\n 50: colors.green[50],\n },\n warning: {\n 900: colors.yellow[900],\n 800: colors.yellow[800],\n 700: colors.yellow[700],\n 600: colors.yellow[600],\n 500: colors.yellow[500],\n 400: colors.yellow[400],\n 300: colors.yellow[300],\n 200: colors.yellow[200],\n 100: colors.yellow[100],\n 50: colors.yellow[50],\n },\n destructive: {\n 900: colors.red[900],\n 800: colors.red[800],\n 700: colors.red[700],\n 600: colors.red[600],\n 500: colors.red[500],\n 400: colors.red[400],\n 300: colors.red[300],\n 200: colors.red[200],\n 100: colors.red[100],\n 50: colors.red[50],\n },\n}\n","import type { LegacyColors } from '../Colors/legacyColors'\nimport { legacyColors } from '../Colors/legacyColors'\nimport { defaultPalette } from '../Palettes/default'\nimport type { ColorName, PaletteColorKey } from '../Types'\n\ntype RGB = `rgb(${number}, ${number}, ${number})`\ntype RGBA = `rgba(${number}, ${number}, ${number}, ${number})`\ntype HEX = `#${string}`\n\n/**\n * @deprecated This is purely for backwards compatibility, don't use.\n */\ntype ColorCode = RGB | RGBA | HEX\n\ntype ColorType = ColorName | ColorCode\n\nfunction isPaletteColor(colorName: ColorType): colorName is PaletteColorKey {\n return colorName.includes('.')\n}\n\nexport const getColor = (colorName?: ColorType): string | null => {\n // some guarding - allows us to cleanly pass undefined colorNames into the function\n if (colorName == null) return null\n if (isPaletteColor(colorName)) {\n // split the string to get the colour and shade.\n const [color, shade] = colorName.split('.')\n\n // Safe to force the typing in this way due to the safety around from the other typing.\n // Without this typescript can't infer the type properly.\n // More verbose, but more explicit than an \"ignore typing\" comment\n const _colors = defaultPalette as { [color: string]: { [shade: string]: string } }\n\n return _colors[color][shade]\n }\n\n return legacyColors[colorName as LegacyColors] ?? colorName\n}\n","import { Poppins, Nova_Mono, Inter, Trispace } from 'next/font/google'\n\nimport { legacyColors } from 'theme/Colors/legacyColors'\nimport { defaultPalette } from 'theme/Palettes/default'\nimport type { ColorName, ThemeProp, ThemedComponent } from 'theme/Types'\nimport { getColor } from 'theme/Utils/getColor'\n\ntype Theme = typeof Theme\n\nexport type { ColorName, ThemeProp, Theme, ThemedComponent }\nexport { getColor }\n\nexport const palette = defaultPalette\nexport const colors = legacyColors\n\nexport type FontSizes = typeof fontSizes[keyof typeof fontSizes]\n\nconst inter = Inter({\n weight: ['300', '400', '500', '600', '700', '800', '900'],\n subsets: ['latin'],\n display: 'swap',\n})\n\nconst poppins = Poppins({\n weight: ['400', '500', '600', '700'],\n subsets: ['latin'],\n display: 'swap',\n})\n\nexport const novaMono = Nova_Mono({\n weight: ['400'],\n subsets: ['latin'],\n display: 'swap',\n})\n\nexport const trispace = Trispace({\n weight: ['400'],\n subsets: ['latin'],\n display: 'swap',\n})\n\nconst fontSizes = {\n XXXXXL: '3.5rem',\n XXXXL: '2.8rem',\n XXXL: '2rem',\n XXL: '1.75rem',\n XL: '1.5rem',\n L: '1.25rem',\n M: '1.1875rem',\n S: '1rem',\n XS: '0.875rem',\n XXS: '0.6875rem',\n} as const\n\nexport const fonts = {\n size: fontSizes,\n weight: {\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n black: 800,\n extraBold: 900,\n },\n family: {\n body: `${inter.style.fontFamily}, ${poppins.style.fontFamily}, Helvetica, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif, ${novaMono.style.fontFamily};`,\n title: `${inter.style.fontFamily}, ${poppins.style.fontFamily}, Helvetica, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif, ${novaMono.style.fontFamily};`,\n paragraph: `${inter.style.fontFamily}, ${poppins.style.fontFamily}, Helvetica, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif, ${novaMono.style.fontFamily};`,\n },\n lineHeight: {\n heading: 1.25,\n paragraph: 1.4,\n },\n} as const\n\nexport const elevation = [\n 'unset',\n '0px 1px 2px 0px rgba(0, 0, 0, 0.12)',\n '0px -1px 4px rgba(0, 0, 0, 0.08), 0px 2px 4px rgba(0, 0, 0, 0.08)',\n '0px -1px 8px rgba(0, 0, 0, 0.08), 0px 2px 8px rgba(0, 0, 0, 0.08)',\n '0px -1px 16px rgba(0, 0, 0, 0.08), 0px 2px 16px rgba(0, 0, 0, 0.08)',\n]\n\nexport const space = [\n 0,\n '1rem',\n '2rem',\n '3rem',\n '4rem',\n '5rem',\n '6rem',\n '7rem',\n '8rem',\n '9rem',\n '10rem',\n]\nexport const layout = {\n space: {\n major: 8,\n minor: 4,\n gap: '1rem',\n },\n breakpoints: {\n xSmall: '320px',\n small: '480px',\n medium: '768px',\n large: '1024px',\n xLarge: '1200px',\n xxLarge: '1400px',\n xxxLarge: '1600px',\n },\n}\nexport const radii: { [index: string]: any } = {\n small: '0.25rem',\n default: '0.5rem',\n medium: '0.75rem',\n large: '1rem',\n rounded: '1000rem',\n}\n\nconst searchFilterZIndex = 9999 //see SearchFilter/Dropdown - to do with use of react select\n\nexport const zIndex = {\n layerBase: 0,\n layer01: 10,\n layer02: 20,\n layer03: 30,\n layer04: 40, // ScrollCarousel, Search Results, NavMobile and FreeArticleCountBanner\n layer05: 50, // ShareContentDropdown\n layer06: searchFilterZIndex,\n layer07: searchFilterZIndex + 10, // NavBarTop\n layer08: searchFilterZIndex + 20, // NavBarSide\n layer09: searchFilterZIndex + 30, // Modal Dialog Backdrop\n layerTop: 9999999, // Modals\n}\n\nexport const borders = {}\nexport const global = `\n html,\n body {\n box-sizing: border-box;\n font-family: ${fonts.family.body};\n font-size: ${fonts.size.S};\n font-weight: ${fonts.weight.normal};\n line-height: 1.5;\n margin: 0;\n padding: 0;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n color: ${palette.neutral[700]};\n fill: ${palette.neutral[700]};\n }\n\n html, body, #__next {\n height: 100%;\n }\n\n \n body,\n p,\n ol,\n ul,\n li,\n dl,\n dt,\n dd,\n blockquote,\n figure,\n fieldset,\n legend,\n textarea,\n pre,\n iframe,\n hr,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 0;\n padding: 0;\n hyphens:none;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: 100%;\n font-weight: ${fonts.weight.normal};\n }\n\n img,\n video {\n height: auto;\n max-width: 100%;\n }\n\n html.wf-active,\n html.wf-active > body {\n font-family: ${fonts.family.body};\n }\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n *:focus {\n outline: none;\n outline-offset: 2px;\n }\n input, select {\n font-family: ${fonts.family.body};\n font-size: ${fonts.size.S};\n font-weight: ${fonts.weight.normal};\n line-height: 1.5;\n }\n .clear-space {\n margin-left: 0;\n margin-right: 0;\n margin-top: 0;\n margin-bottom: 0;\n }\n`\n\nexport const gradients = {\n light: 'linear-gradient(117deg, rgba(219,243,47,1) -75%, rgba(238,241,248,1) 50%, rgba(32,76,233,1) 175%)',\n strong: 'linear-gradient(149deg, rgba(18,48,108,1) 0%, rgba(89,126,255,1) 75%)',\n}\n\nconst Theme = {\n colors: legacyColors,\n palette: defaultPalette,\n fonts: fonts.family,\n fontWeights: fonts.weight,\n fontSize: fonts.size,\n lineHeight: fonts.lineHeight,\n space,\n elevation,\n zIndex,\n layout,\n radii,\n borders,\n breakpoints: [\n layout.breakpoints.small,\n layout.breakpoints.medium,\n layout.breakpoints.large,\n layout.breakpoints.xLarge,\n layout.breakpoints.xxLarge,\n layout.breakpoints.xxxLarge,\n ],\n gradients: gradients,\n}\n\nexport default Theme\n","/* \nThis returns whether the node env is in production mode\nThis might be the case in staging or other environments\n*/\nexport const isProductionBuild = process.env.NODE_ENV === 'production'\n","export const isProductionEnvironment = process.env.NEXT_PUBLIC_IS_PROD_ENV === 'true'\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Inter_9d3317', '__Inter_Fallback_9d3317'\",\"fontStyle\":\"normal\"},\"className\":\"__className_9d3317\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Nova_Mono_ed0423', '__Nova_Mono_Fallback_ed0423'\",\"fontWeight\":400,\"fontStyle\":\"normal\"},\"className\":\"__className_ed0423\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Poppins_1fa6f9', '__Poppins_Fallback_1fa6f9'\",\"fontStyle\":\"normal\"},\"className\":\"__className_1fa6f9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"style\":{\"fontFamily\":\"'__Trispace_e276a3', '__Trispace_Fallback_e276a3'\",\"fontWeight\":400,\"fontStyle\":\"normal\"},\"className\":\"__className_e276a3\"};","module.exports = require('./dist/shared/lib/head')\n","module.exports = require('./dist/shared/lib/image-external')\n","module.exports = require('./dist/client/link')\n","module.exports = require('./dist/client/router')\n","module.exports = require('./dist/client/script')\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction factorial(a) {\n if (a % 1 || !(+a >= 0)) return NaN;\n if (a > 170) return Infinity;else if (a === 0) return 1;else {\n return a * factorial(a - 1);\n }\n}\n\nfunction power(a, b) {\n return Math.pow(a, b);\n}\n\nfunction sqrt(a) {\n return Math.sqrt(a);\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultMathSymbols = {\n symbols: {\n '!': {\n postfix: {\n symbol: '!',\n f: factorial,\n notation: 'postfix',\n precedence: 6,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '!',\n regSymbol: '!'\n },\n '^': {\n infix: {\n symbol: '^',\n f: power,\n notation: 'infix',\n precedence: 5,\n rightToLeft: 1,\n argCount: 2\n },\n symbol: '^',\n regSymbol: '\\\\^'\n },\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n },\n sqrt: {\n func: {\n symbol: 'sqrt',\n f: sqrt,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'sqrt',\n regSymbol: 'sqrt\\\\b'\n }\n }\n};\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError =\n/*#__PURE__*/\nfunction (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/master/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}(\n/*#__PURE__*/\n_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultMathSymbols.symbols, {}, additionalSymbols.symbols) : _extends({}, defaultMathSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith (string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit (or the original value if an invalid string is passed). Optionally returns an array containing the stripped value and the original unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px'),\n * '--unit': stripUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * --unit: ${stripUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction stripUnit(value, unitReturn) {\n if (typeof value !== 'string') return unitReturn ? [value, undefined] : value;\n var matchedValue = value.match(cssRegex);\n\n if (unitReturn) {\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n }\n\n if (matchedValue) return parseFloat(value);\n return value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em =\n/*#__PURE__*/\npxtoFactory('em');\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @deprecated - getValueAndUnit has been marked for deprecation in polished 3.0 and will be fully deprecated in 4.0. It's functionality has been been moved to stripUnit as an optional return.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n // eslint-disable-next-line no-console\n console.warn(\"getValueAndUnit has been marked for deprecation in polished 3.0 and will be fully deprecated in 4.0. It's functionality has been been moved to stripUnit as an optional return.\");\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex$1);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? stripUnit(base, true) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + unit;\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\nvar rem =\n/*#__PURE__*/\npxtoFactory('rem');\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _stripUnit = stripUnit(fromSize, true),\n unitlessFromSize = _stripUnit[0],\n fromSizeUnit = _stripUnit[1];\n\n var _stripUnit2 = stripUnit(toSize, true),\n unitlessToSize = _stripUnit2[0],\n toSizeUnit = _stripUnit2[1];\n\n var _stripUnit3 = stripUnit(minScreen, true),\n unitlessMinScreen = _stripUnit3[0],\n minScreenUnit = _stripUnit3[1];\n\n var _stripUnit4 = stripUnit(maxScreen, true),\n unitlessMaxScreen = _stripUnit4[0],\n maxScreenUnit = _stripUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\nfunction ellipsis(width) {\n if (width === void 0) {\n width = '100%';\n }\n\n return {\n display: 'inline-block',\n maxWidth: width,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n}\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = cssProp, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _extends2, _extends3;\n\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var obj = _ref;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, {}, mediaQueries);\n } else {\n var _ref2, _ref3, _ref4;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref4 = {}, _ref4[cssProp.prop] = cssProp.fromSize, _ref4[\"@media (min-width: \" + minScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref2), _ref4[\"@media (min-width: \" + maxScreen + \")\"] = (_ref3 = {}, _ref3[cssProp.prop] = cssProp.toSize, _ref3), _ref4;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n localFonts = _ref.localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject(), toDirection, colorStops.join(', '))\n };\n}\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject$1(), position, shape, extent, colorStops.join(', '))\n };\n}\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor, backgroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return backgroundColor + \" \" + backgroundColor + \" \" + foregroundColor + \" \" + backgroundColor;\n\n case 'right':\n case 'bottomLeft':\n return backgroundColor + \" \" + backgroundColor + \" \" + backgroundColor + \" \" + foregroundColor;\n\n case 'bottom':\n case 'topLeft':\n return foregroundColor + \" \" + backgroundColor + \" \" + backgroundColor + \" \" + backgroundColor;\n\n case 'left':\n case 'topRight':\n return backgroundColor + \" \" + foregroundColor + \" \" + backgroundColor + \" \" + backgroundColor;\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = stripUnit(width, true);\n var heightAndUnit = stripUnit(height, true);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return {\n width: '0',\n height: '0',\n borderColor: getBorderColor(pointingDirection, foregroundColor, backgroundColor),\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n };\n}\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor);\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue =\n/*#__PURE__*/\ncurry\n/* :: */\n(adjustHue);\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken =\n/*#__PURE__*/\ncurry\n/* :: */\n(darken);\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate =\n/*#__PURE__*/\ncurry\n/* :: */\n(desaturate);\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten =\n/*#__PURE__*/\ncurry\n/* :: */\n(lighten);\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formular is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha + (color2.alpha - color1.alpha) * (parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix =\n/*#__PURE__*/\ncurry\n/* :: */\n(mix);\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify =\n/*#__PURE__*/\ncurry\n/* :: */\n(opacify);\n\n/**\n * Returns black or white (or optional light and dark return colors) for best contrast depending on the luminosity of the given color.\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * }\n */\n\nfunction readableColor(color, lightReturnColor, darkReturnColor) {\n if (lightReturnColor === void 0) {\n lightReturnColor = '#000';\n }\n\n if (darkReturnColor === void 0) {\n darkReturnColor = '#fff';\n }\n\n return getLuminance(color) > 0.179 ? lightReturnColor : darkReturnColor;\n}\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate =\n/*#__PURE__*/\ncurry\n/* :: */\n(saturate);\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue =\n/*#__PURE__*/\ncurry\n/* :: */\n(setHue);\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness =\n/*#__PURE__*/\ncurry\n/* :: */\n(setLightness);\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation =\n/*#__PURE__*/\ncurry\n/* :: */\n(setSaturation);\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade =\n/*#__PURE__*/\ncurry\n/* :: */\n(shade);\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint =\n/*#__PURE__*/\ncurry\n/* :: */\n(tint);\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 - parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize =\n/*#__PURE__*/\ncurry\n/* :: */\n(transparentize);\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap$1 = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(positionKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap$1.indexOf(positionKeyword) >= 0) {\n return _extends({\n position: positionKeyword\n }, directionalProperty.apply(void 0, [''].concat(values)));\n } else {\n var firstValue = positionKeyword; // in this case position is actually the first value\n\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, ellipsis, em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, invert, curriedLighten as lighten, linearGradient, margin, math, meetsContrastGuidelines, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.ReactPixel=t():e.ReactPixel=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"\",t(t.s=1)}([function(e,t,n){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;!function(e,t,n,r,o,i,a){e.fbq||(o=e.fbq=function(){o.callMethod?o.callMethod.apply(o,arguments):o.queue.push(arguments)},e._fbq||(e._fbq=o),o.push=o,o.loaded=!0,o.version=\"2.0\",o.queue=[],i=t.createElement(n),i.async=!0,i.src=r,a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(i,a))}(window,document,\"script\",\"https://connect.facebook.net/en_US/fbevents.js\"),e?(!1===n.autoConfig&&fbq(\"set\",\"autoConfig\",!1,e),fbq(\"init\",e,t),o=!0,i=n.debug):console.warn(\"Please insert pixel id for initializing\")},pageView:function(){a()&&(fbq(\"track\",\"PageView\"),i&&c(\"called fbq('track', 'PageView');\"))},track:function(e,t){a()&&(fbq(\"track\",e,t),i&&(c(\"called fbq('track', '\"+e+\"');\"),t&&c(\"with data\",t)))},trackCustom:function(e,t){a()&&(fbq(\"trackCustom\",e,t),i&&(c(\"called fbq('trackCustom', '\"+e+\"');\"),t&&c(\"with data\",t)))},fbq:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){if(a()){for(var e=arguments.length,t=Array(e),n=0;n 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n} // See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\n\n\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\n\nvar redacted = \"REDACTED (Potential Email Address)\";\n\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n\n return string;\n}\n\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n var _str = s || \"\";\n\n if (titleCase) {\n _str = toTitleCase(s);\n }\n\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\n\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\n\nvar _format = _interopRequireDefault(require(\"./format\"));\n\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"],\n _excluded4 = [\"action\", \"category\", \"label\", \"value\", \"nonInteraction\", \"transport\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\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 _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\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 _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 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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure 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 _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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 _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/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n\n _classCallCheck(this, GA4);\n\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"https://www.googletagmanager.com/gtag/js?id=\".concat(GA_MEASUREMENT_ID);\n\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n\n _this._hasLoadedGA = true;\n }\n });\n\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n\n return prev;\n }, {});\n return gtagOptions;\n });\n\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n _options$legacyDimens = options.legacyDimensionMetric,\n legacyDimensionMetric = _options$legacyDimens === void 0 ? true : _options$legacyDimens,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode;\n _this._testMode = testMode;\n\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce);\n }\n\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _this._appendCustomMap(_objectSpread(_objectSpread(_objectSpread({\n // https://developers.google.com/analytics/devguides/collection/gtagjs/pages#disable_pageview_measurement\n send_page_view: false\n }, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions), legacyDimensionMetric);\n\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n });\n }\n\n _this.isInitialized = true;\n\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n\n _this._queueGtag = [];\n _this._isQueuing = false;\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n\n _this._gaCommand(\"set\", fieldsObject);\n });\n\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n\n _this._gaCommandSendPageview(page, rest);\n }\n });\n\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n\n break;\n\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n\n break;\n\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n\n break;\n\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n\n break;\n\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n\n break;\n\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n\n while (queues.length) {\n var queue = queues.shift();\n\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n\n _this._isQueuing = true;\n }\n\n return _this.ga;\n });\n\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport,\n rest = _objectWithoutProperties(optionsOrName, _excluded4);\n\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n }; // Optional Fields\n\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n\n fieldObject.transport = transport;\n }\n }\n\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"dimension\".length) === \"dimension\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n Object.keys(rest).filter(function (key) {\n return key.substr(0, \"metric\".length) === \"metric\";\n }).forEach(function (key) {\n fieldObject[key] = rest[key];\n });\n\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n\n _defineProperty(this, \"pageview\", function (path, _, title) {\n var pathTrim = path === null || path === void 0 ? void 0 : path.trim();\n\n if (pathTrim === \"\") {\n console.warn(\"path cannot be an empty string in .pageview()\");\n return;\n }\n\n _this._gaCommand(\"send\", \"pageview\", pathTrim, {\n title: title\n });\n });\n\n this.reset();\n }\n\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }, {\n key: \"_appendCustomMap\",\n value: function _appendCustomMap(options) {\n var legacyDimensionMetric = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!legacyDimensionMetric) {\n return options;\n }\n\n if (!options.custom_map) {\n options.custom_map = {};\n }\n\n for (var i = 1; i <= 200; i++) {\n if (!options.custom_map[\"dimension\".concat(i)]) {\n options.custom_map[\"dimension\".concat(i)] = \"dimension\".concat(i);\n }\n\n if (!options.custom_map[\"metric\".concat(i)]) {\n options.custom_map[\"metric\".concat(i)] = \"metric\".concat(i);\n }\n }\n\n return options;\n }\n /**\n * @since v1.0.2\n * @param {string} [path=\"location.href\"]\n * @param {string[]} [_] unsupported\n * @param {string} [title=\"location.pathname\"]\n * @deprecated Use `.send(\"pageview\")` instead\n */\n\n }, {\n key: \"outboundLink\",\n value:\n /**\n * @since v1.0.6\n * @param {Object} options\n * @param {string} options.label\n * @param {function} hitCallback\n * @deprecated Use `enhanced measurement` feature in Google Analytics.\n */\n function outboundLink(_ref3, hitCallback) {\n var label = _ref3.label;\n\n if (typeof hitCallback !== \"function\") {\n console.warn(\"hitCallback function is required\");\n return;\n }\n\n if (!label) {\n console.warn(\"args.label is required in outboundLink()\");\n return;\n } // Required Fields\n\n\n var fieldObject = {\n hitType: \"event\",\n eventCategory: \"Outbound\",\n eventAction: \"Click\",\n eventLabel: (0, _format[\"default\"])(label)\n };\n var safetyCallbackCalled = false;\n\n var safetyCallback = function safetyCallback() {\n // This prevents a delayed response from GA\n // causing hitCallback from being fired twice\n safetyCallbackCalled = true;\n hitCallback();\n }; // Using a timeout to ensure the execution of critical application code\n // in the case when the GA server might be down\n // or an ad blocker prevents sending the data\n // register safety net timeout:\n\n\n var t = setTimeout(safetyCallback, 250);\n\n var clearableCallbackForGA = function clearableCallbackForGA() {\n clearTimeout(t);\n\n if (!safetyCallbackCalled) {\n hitCallback();\n }\n };\n\n fieldObject.hitCallback = clearableCallbackForGA;\n\n this._gaCommand(\"send\", fieldObject);\n }\n }]);\n\n return GA4;\n}();\n\nexports.GA4 = GA4;\n\nvar _default = new GA4();\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof window !== \"undefined\") {\n var _window;\n\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n\n (_window = window).gtag.apply(_window, args);\n }\n};\n\nvar _default = gtag;\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.ReactGAImplementation = void 0;\n\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\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\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","/**\n * Relay v12.0.0\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\nmodule.exports = require('./lib/ReactRelayContext.js');\n","/**\n * Relay v12.0.0\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\nmodule.exports = require('./lib/index.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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nfunction getComponentName(component) {\n return component.displayName || component.name || 'Component';\n}\n\nfunction getContainerName(Component) {\n return 'Relay(' + getComponentName(Component) + ')';\n}\n\nmodule.exports = {\n getComponentName: getComponentName,\n getContainerName: getContainerName\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar _require = require('relay-runtime'),\n createRelayContext = _require.__internal.createRelayContext;\n\nmodule.exports = createRelayContext(React);","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = require('react');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\n\nvar _require = require('./ReactRelayContainerUtils'),\n getContainerName = _require.getContainerName;\n\nvar _require2 = require('./RelayContext'),\n assertRelayContext = _require2.assertRelayContext;\n\nvar _require3 = require('relay-runtime'),\n createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n getDataIDsFromObject = _require3.getDataIDsFromObject,\n isScalarAndEqual = _require3.isScalarAndEqual;\n\n/**\n * Composes a React component class, returning a new class that intercepts\n * props, resolving them with the provided fragments and subscribing for\n * updates.\n */\nfunction createContainerWithFragments(Component, fragments) {\n var _class, _temp;\n\n var containerName = getContainerName(Component);\n return _temp = _class = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n\n function _class(props) {\n var _props$__rootIsQueryR, _this;\n\n _this = _React$Component.call(this, props) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n var resolverFromThisUpdate = _this.state.resolver;\n\n _this.setState(function (updatedState) {\n return (// If this event belongs to the current data source, update.\n // Otherwise we should ignore it.\n resolverFromThisUpdate === updatedState.resolver ? {\n data: updatedState.resolver.resolve(),\n relayProp: getRelayProp(updatedState.relayProp.environment)\n } : null\n );\n });\n });\n var relayContext = assertRelayContext(props.__relayContext);\n var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false; // Do not provide a subscription/callback here.\n // It is possible for this render to be interrupted or aborted,\n // In which case the subscription would cause a leak.\n // We will add the subscription in componentDidMount().\n\n var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n _this.state = {\n data: resolver.resolve(),\n prevProps: props,\n prevPropsContext: relayContext,\n relayProp: getRelayProp(relayContext.environment),\n resolver: resolver\n };\n return _this;\n }\n /**\n * When new props are received, read data for the new props and subscribe\n * for updates. Props may be the same in which case previous data and\n * subscriptions can be reused.\n */\n\n\n _class.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var _nextProps$__rootIsQu;\n\n // Any props change could impact the query, so we mirror props in state.\n // This is an unusual pattern, but necessary for this container usecase.\n var prevProps = prevState.prevProps;\n var relayContext = assertRelayContext(nextProps.__relayContext);\n var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n var prevIDs = getDataIDsFromObject(fragments, prevProps);\n var nextIDs = getDataIDsFromObject(fragments, nextProps);\n var resolver = prevState.resolver; // If the environment has changed or props point to new records then\n // previously fetched data and any pending fetches no longer apply:\n // - Existing references are on the old environment.\n // - Existing references are based on old variables.\n // - Pending fetches are for the previous records.\n\n if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevIDs, nextIDs)) {\n // Do not provide a subscription/callback here.\n // It is possible for this render to be interrupted or aborted,\n // In which case the subscription would cause a leak.\n // We will add the subscription in componentDidUpdate().\n resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n return {\n data: resolver.resolve(),\n prevPropsContext: relayContext,\n prevProps: nextProps,\n relayProp: getRelayProp(relayContext.environment),\n resolver: resolver\n };\n } else {\n resolver.setProps(nextProps);\n var data = resolver.resolve();\n\n if (data !== prevState.data) {\n return {\n data: data,\n prevProps: nextProps,\n prevPropsContext: relayContext,\n relayProp: getRelayProp(relayContext.environment)\n };\n }\n }\n\n return null;\n };\n\n var _proto = _class.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.state.resolver !== prevState.resolver) {\n prevState.resolver.dispose();\n\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n } else {\n this._rerenderIfStoreHasChanged();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.state.resolver.dispose();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n // Short-circuit if any Relay-related data has changed\n if (nextState.data !== this.state.data) {\n return true;\n } // Otherwise, for convenience short-circuit if all non-Relay props\n // are scalar and equal\n\n\n var keys = Object.keys(nextProps);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var _key = keys[ii];\n\n if (_key === '__relayContext') {\n if (nextState.prevPropsContext.environment !== this.state.prevPropsContext.environment) {\n return true;\n }\n } else {\n if (!fragments.hasOwnProperty(_key) && !isScalarAndEqual(nextProps[_key], this.props[_key])) {\n return true;\n }\n }\n }\n\n return false;\n }\n /**\n * Render new data for the existing props/context.\n */\n ;\n\n _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n var _this$state = this.state,\n data = _this$state.data,\n resolver = _this$state.resolver; // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n var maybeNewData = resolver.resolve();\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n };\n\n _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n var _this$state2 = this.state,\n data = _this$state2.data,\n resolver = _this$state2.resolver;\n var maybeNewData = resolver.resolve(); // Event listeners are only safe to add during the commit phase,\n // So they won't leak if render is interrupted or errors.\n\n resolver.setCallback(this.props, this._handleFragmentDataUpdate); // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n componentRef = _this$props.componentRef,\n __relayContext = _this$props.__relayContext,\n __rootIsQueryRenderer = _this$props.__rootIsQueryRenderer,\n props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"]);\n return React.createElement(Component, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, props), this.state.data), {}, {\n ref: componentRef,\n relay: this.state.relayProp\n }));\n };\n\n return _class;\n }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _temp;\n}\n\nfunction getRelayProp(environment) {\n return {\n environment: environment\n };\n}\n/**\n * Wrap the basic `createContainer()` function with logic to adapt to the\n * `context.relay.environment` in which it is rendered. Specifically, the\n * extraction of the environment-specific version of fragments in the\n * `fragmentSpec` is memoized once per environment, rather than once per\n * instance of the container constructed/rendered.\n */\n\n\nfunction createContainer(Component, fragmentSpec) {\n // $FlowFixMe[incompatible-return]\n return buildReactRelayContainer(Component, fragmentSpec, createContainerWithFragments);\n}\n\nmodule.exports = {\n createContainer: createContainer\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\n\nvar useLayoutEffect = React.useLayoutEffect,\n useState = React.useState,\n useRef = React.useRef,\n useMemo = React.useMemo;\n\nvar _require = require('relay-runtime'),\n createOperationDescriptor = _require.createOperationDescriptor,\n deepFreeze = _require.deepFreeze,\n getRequest = _require.getRequest;\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar queryRendererContext = {\n rootIsQueryRenderer: true\n};\n\nfunction useDeepCompare(value) {\n var latestValue = React.useRef(value);\n\n if (!areEqual(latestValue.current, value)) {\n if (process.env.NODE_ENV !== \"production\") {\n deepFreeze(value);\n }\n\n latestValue.current = value;\n }\n\n return latestValue.current;\n}\n\nfunction ReactRelayLocalQueryRenderer(props) {\n var environment = props.environment,\n query = props.query,\n variables = props.variables,\n render = props.render;\n var latestVariables = useDeepCompare(variables);\n var operation = useMemo(function () {\n var request = getRequest(query);\n return createOperationDescriptor(request, latestVariables);\n }, [query, latestVariables]);\n var relayContext = useMemo(function () {\n return {\n environment: environment\n };\n }, [environment]); // Use a ref to prevent rendering twice when data changes\n // because of props change\n\n var dataRef = useRef(null);\n\n var _useState = useState(null),\n forceUpdate = _useState[1];\n\n var cleanupFnRef = useRef(null);\n var snapshot = useMemo(function () {\n environment.check(operation);\n var res = environment.lookup(operation.fragment);\n dataRef.current = res.data; // Run effects here so that the data can be retained\n // and subscribed before the component commits\n\n var retainDisposable = environment.retain(operation);\n var subscribeDisposable = environment.subscribe(res, function (newSnapshot) {\n dataRef.current = newSnapshot.data;\n forceUpdate(dataRef.current);\n });\n var disposed = false;\n\n function nextCleanupFn() {\n if (!disposed) {\n disposed = true;\n cleanupFnRef.current = null;\n retainDisposable.dispose();\n subscribeDisposable.dispose();\n }\n }\n\n if (cleanupFnRef.current) {\n cleanupFnRef.current();\n }\n\n cleanupFnRef.current = nextCleanupFn;\n return res;\n }, [environment, operation]);\n useLayoutEffect(function () {\n var cleanupFn = cleanupFnRef.current;\n return function () {\n cleanupFn && cleanupFn();\n };\n }, [snapshot]);\n return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n value: relayContext\n }, /*#__PURE__*/React.createElement(ReactRelayQueryRendererContext.Provider, {\n value: queryRendererContext\n }, render({\n props: dataRef.current\n })));\n}\n\nmodule.exports = ReactRelayLocalQueryRenderer;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectSpread3 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar React = require('react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\n\nvar getRootVariablesForFragments = require('./getRootVariablesForFragments');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./ReactRelayContainerUtils'),\n getComponentName = _require.getComponentName,\n getContainerName = _require.getContainerName;\n\nvar _require2 = require('./RelayContext'),\n assertRelayContext = _require2.assertRelayContext;\n\nvar _require3 = require('relay-runtime'),\n ConnectionInterface = _require3.ConnectionInterface,\n Observable = _require3.Observable,\n createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n createOperationDescriptor = _require3.createOperationDescriptor,\n getDataIDsFromObject = _require3.getDataIDsFromObject,\n getRequest = _require3.getRequest,\n getVariablesFromObject = _require3.getVariablesFromObject,\n isScalarAndEqual = _require3.isScalarAndEqual,\n RelayFeatureFlags = _require3.RelayFeatureFlags;\n\nvar FORWARD = 'forward';\n\n/**\n * Extends the functionality of RelayFragmentContainer by providing a mechanism\n * to load more data from a connection.\n *\n * # Configuring a PaginationContainer\n *\n * PaginationContainer accepts the standard FragmentContainer arguments and an\n * additional `connectionConfig` argument:\n *\n * - `Component`: the component to be wrapped/rendered.\n * - `fragments`: an object whose values are `graphql` fragments. The object\n * keys determine the prop names by which fragment data is available.\n * - `connectionConfig`: an object that determines how to load more connection\n * data. Details below.\n *\n * # Loading More Data\n *\n * Use `props.relay.hasMore()` to determine if there are more items to load.\n *\n * ```\n * hasMore(): boolean\n * ```\n *\n * Use `props.relay.isLoading()` to determine if a previous call to `loadMore()`\n * is still pending. This is convenient for avoiding duplicate load calls.\n *\n * ```\n * isLoading(): boolean\n * ```\n *\n * Use `props.relay.loadMore()` to load more items. This will return null if\n * there are no more items to fetch, otherwise it will fetch more items and\n * return a Disposable that can be used to cancel the fetch.\n *\n * `pageSize` should be the number of *additional* items to fetch (not the\n * total).\n *\n * ```\n * loadMore(pageSize: number, callback: ?(error: ?Error) => void): ?Disposable\n * ```\n *\n * A complete example:\n *\n * ```\n * class Foo extends React.Component {\n * ...\n * _onEndReached() {\n * if (!this.props.relay.hasMore() || this.props.relay.isLoading()) {\n * return;\n * }\n * this.props.relay.loadMore(10);\n * }\n * ...\n * }\n * ```\n *\n * # Connection Config\n *\n * Here's an example, followed by details of each config property:\n *\n * ```\n * ReactRelayPaginationContainer.createContainer(\n * Component,\n * {\n * user: graphql`fragment FriendsFragment on User {\n * friends(after: $afterCursor first: $count) @connection {\n * edges { ... }\n * pageInfo {\n * startCursor\n * endCursor\n * hasNextPage\n * hasPreviousPage\n * }\n * }\n * }`,\n * },\n * {\n * direction: 'forward',\n * getConnectionFromProps(props) {\n * return props.user && props.user.friends;\n * },\n * getFragmentVariables(vars, totalCount) {\n * // The component presumably wants *all* edges, not just those after\n * // the cursor, so notice that we don't set $afterCursor here.\n * return {\n * ...vars,\n * count: totalCount,\n * };\n * },\n * getVariables(props, {count, cursor}, fragmentVariables) {\n * return {\n * id: props.user.id,\n * afterCursor: cursor,\n * count,\n * },\n * },\n * query: graphql`\n * query FriendsQuery($id: ID!, $afterCursor: ID, $count: Int!) {\n * node(id: $id) {\n * ...FriendsFragment\n * }\n * }\n * `,\n * }\n * );\n * ```\n *\n * ## Config Properties\n *\n * - `direction`: Either \"forward\" to indicate forward pagination using\n * after/first, or \"backward\" to indicate backward pagination using\n * before/last.\n * - `getConnectionFromProps(props)`: PaginationContainer doesn't magically know\n * which connection data you mean to fetch more of (a container might fetch\n * multiple connections, but can only paginate one of them). This function is\n * given the fragment props only (not full props), and should return the\n * connection data. See the above example that returns the friends data via\n * `props.user.friends`.\n * - `getFragmentVariables(previousVars, totalCount)`: Given the previous variables\n * and the new total number of items, get the variables to use when reading\n * your fragments. Typically this means setting whatever your local \"count\"\n * variable is to the value of `totalCount`. See the example.\n * - `getVariables(props, {count, cursor})`: Get the variables to use when\n * fetching the pagination `query`. You may determine the root object id from\n * props (see the example that uses `props.user.id`) and may also set whatever\n * variables you use for the after/first/before/last calls based on the count\n * and cursor.\n * - `query`: A query to use when fetching more connection data. This should\n * typically reference one of the container's fragment (as in the example)\n * to ensure that all the necessary fields for sub-components are fetched.\n */\nfunction createGetConnectionFromProps(metadata) {\n var path = metadata.path;\n !path ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getConnectionFromProps function.') : invariant(false) : void 0;\n return function (props) {\n var data = props[metadata.fragmentName];\n\n for (var i = 0; i < path.length; i++) {\n if (!data || typeof data !== 'object') {\n return null;\n }\n\n data = data[path[i]];\n }\n\n return data;\n };\n}\n\nfunction createGetFragmentVariables(metadata) {\n var countVariable = metadata.count;\n !countVariable ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getFragmentVariables function.') : invariant(false) : void 0; // $FlowFixMe[cannot-spread-interface]\n\n return function (prevVars, totalCount) {\n return (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, prevVars), {}, (0, _defineProperty2[\"default\"])({}, countVariable, totalCount));\n };\n}\n\nfunction findConnectionMetadata(fragments) {\n var foundConnectionMetadata = null;\n var isRelayModern = false;\n\n for (var fragmentName in fragments) {\n var fragment = fragments[fragmentName];\n var connectionMetadata = fragment.metadata && fragment.metadata.connection; // HACK: metadata is always set to `undefined` in classic. In modern, even\n // if empty, it is set to null (never undefined). We use that knowlege to\n // check if we're dealing with classic or modern\n\n if (fragment.metadata !== undefined) {\n isRelayModern = true;\n }\n\n if (connectionMetadata) {\n !(connectionMetadata.length === 1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Only a single @connection is ' + 'supported, `%s` has %s.', fragmentName, connectionMetadata.length) : invariant(false) : void 0;\n !!foundConnectionMetadata ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Only a single fragment with ' + '@connection is supported.') : invariant(false) : void 0;\n foundConnectionMetadata = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, connectionMetadata[0]), {}, {\n fragmentName: fragmentName\n });\n }\n }\n\n !(!isRelayModern || foundConnectionMetadata !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: A @connection directive must be present.') : invariant(false) : void 0;\n return foundConnectionMetadata || {};\n}\n\nfunction toObserver(observerOrCallback) {\n return typeof observerOrCallback === 'function' ? {\n error: observerOrCallback,\n complete: observerOrCallback,\n unsubscribe: function unsubscribe(subscription) {\n typeof observerOrCallback === 'function' && observerOrCallback();\n }\n } : observerOrCallback || {};\n}\n\nfunction createContainerWithFragments(Component, fragments, connectionConfig) {\n var _class, _temp;\n\n var componentName = getComponentName(Component);\n var containerName = getContainerName(Component);\n var metadata = findConnectionMetadata(fragments);\n var getConnectionFromProps = connectionConfig.getConnectionFromProps || createGetConnectionFromProps(metadata);\n var direction = connectionConfig.direction || metadata.direction;\n !direction ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Unable to infer direction of the ' + 'connection, possibly because both first and last are provided.') : invariant(false) : void 0;\n var getFragmentVariables = connectionConfig.getFragmentVariables || createGetFragmentVariables(metadata);\n return _temp = _class = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n\n function _class(props) {\n var _props$__rootIsQueryR, _this;\n\n _this = _React$Component.call(this, props) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n _this.setState({\n data: _this._resolver.resolve()\n });\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_hasMore\", function () {\n var connectionData = _this._getConnectionData();\n\n return !!(connectionData && connectionData.hasMore && connectionData.cursor);\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_isLoading\", function () {\n return !!_this._refetchSubscription;\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_refetchConnection\", function (totalCount, observerOrCallback, refetchVariables) {\n if (!_this._canFetchPage('refetchConnection')) {\n return {\n dispose: function dispose() {}\n };\n }\n\n _this._refetchVariables = refetchVariables;\n var paginatingVariables = {\n count: totalCount,\n cursor: null,\n totalCount: totalCount\n };\n\n var fetch = _this._fetchPage(paginatingVariables, toObserver(observerOrCallback), {\n force: true\n });\n\n return {\n dispose: fetch.unsubscribe\n };\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_loadMore\", function (pageSize, observerOrCallback, options) {\n if (!_this._canFetchPage('loadMore')) {\n return {\n dispose: function dispose() {}\n };\n }\n\n var observer = toObserver(observerOrCallback);\n\n var connectionData = _this._getConnectionData();\n\n if (!connectionData) {\n Observable.create(function (sink) {\n return sink.complete();\n }).subscribe(observer);\n return null;\n }\n\n var totalCount = connectionData.edgeCount + pageSize;\n\n if (options && options.force) {\n return _this._refetchConnection(totalCount, observerOrCallback);\n }\n\n var _ConnectionInterface$ = ConnectionInterface.get(),\n END_CURSOR = _ConnectionInterface$.END_CURSOR,\n START_CURSOR = _ConnectionInterface$.START_CURSOR;\n\n var cursor = connectionData.cursor;\n process.env.NODE_ENV !== \"production\" ? warning(cursor != null && cursor !== '', 'ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)', direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;\n var paginatingVariables = {\n count: pageSize,\n cursor: cursor,\n totalCount: totalCount\n };\n\n var fetch = _this._fetchPage(paginatingVariables, observer, options);\n\n return {\n dispose: fetch.unsubscribe\n };\n });\n var relayContext = assertRelayContext(props.__relayContext);\n var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;\n _this._isARequestInFlight = false;\n _this._refetchSubscription = null;\n _this._refetchVariables = null;\n\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n _this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n } else {\n _this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer, _this._handleFragmentDataUpdate);\n }\n\n _this.state = {\n data: _this._resolver.resolve(),\n prevContext: relayContext,\n contextForChildren: relayContext,\n relayProp: _this._buildRelayProp(relayContext),\n resolverGeneration: 0\n };\n _this._isUnmounted = false;\n _this._hasFetched = false;\n return _this;\n }\n\n var _proto = _class.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isUnmounted = false;\n\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n if (prevState.resolverGeneration !== this.state.resolverGeneration) {\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n } else {\n this._rerenderIfStoreHasChanged();\n }\n }\n }\n /**\n * When new props are received, read data for the new props and subscribe\n * for updates. Props may be the same in which case previous data and\n * subscriptions can be reused.\n */\n ;\n\n _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _nextProps$__rootIsQu;\n\n var relayContext = assertRelayContext(nextProps.__relayContext);\n var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n var prevIDs = getDataIDsFromObject(fragments, this.props);\n var nextIDs = getDataIDsFromObject(fragments, nextProps);\n var prevRootVariables = getRootVariablesForFragments(fragments, this.props);\n var nextRootVariables = getRootVariablesForFragments(fragments, nextProps); // If the environment has changed or props point to new records then\n // previously fetched data and any pending fetches no longer apply:\n // - Existing references are on the old environment.\n // - Existing references are based on old variables.\n // - Pending fetches are for the previous records.\n\n if (relayContext.environment !== this.state.prevContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {\n this._cleanup(); // Child containers rely on context.relay being mutated (for gDSFP).\n\n\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n } else {\n this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer, this._handleFragmentDataUpdate);\n }\n\n this.setState(function (prevState) {\n return {\n prevContext: relayContext,\n contextForChildren: relayContext,\n relayProp: _this2._buildRelayProp(relayContext),\n resolverGeneration: prevState.resolverGeneration + 1\n };\n });\n } else if (!this._hasFetched) {\n this._resolver.setProps(nextProps);\n }\n\n var data = this._resolver.resolve();\n\n if (data !== this.state.data) {\n this.setState({\n data: data\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isUnmounted = true;\n\n this._cleanup();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n // Short-circuit if any Relay-related data has changed\n if (nextState.data !== this.state.data || nextState.relayProp !== this.state.relayProp || nextState.resolverGeneration !== this.state.resolverGeneration) {\n return true;\n } // Otherwise, for convenience short-circuit if all non-Relay props\n // are scalar and equal\n\n\n var keys = Object.keys(nextProps);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var _key = keys[ii];\n\n if (_key === '__relayContext') {\n if (nextState.prevContext.environment !== this.state.prevContext.environment) {\n return true;\n }\n } else {\n if (!fragments.hasOwnProperty(_key) && !isScalarAndEqual(nextProps[_key], this.props[_key])) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n _proto._buildRelayProp = function _buildRelayProp(relayContext) {\n return {\n hasMore: this._hasMore,\n isLoading: this._isLoading,\n loadMore: this._loadMore,\n refetchConnection: this._refetchConnection,\n environment: relayContext.environment\n };\n };\n\n _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n var data = this.state.data; // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n var maybeNewData = this._resolver.resolve();\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n };\n\n _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n var data = this.state.data;\n\n var maybeNewData = this._resolver.resolve(); // Event listeners are only safe to add during the commit phase,\n // So they won't leak if render is interrupted or errors.\n\n\n this._resolver.setCallback(this.props, this._handleFragmentDataUpdate); // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n }\n /**\n * Render new data for the existing props/context.\n */\n ;\n\n _proto._getConnectionData = function _getConnectionData() {\n // Extract connection data and verify there are more edges to fetch\n var _this$props = this.props,\n _ = _this$props.componentRef,\n restProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, [\"componentRef\"]);\n var props = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, restProps), this.state.data);\n var connectionData = getConnectionFromProps(props);\n\n if (connectionData == null) {\n return null;\n }\n\n var _ConnectionInterface$2 = ConnectionInterface.get(),\n EDGES = _ConnectionInterface$2.EDGES,\n PAGE_INFO = _ConnectionInterface$2.PAGE_INFO,\n HAS_NEXT_PAGE = _ConnectionInterface$2.HAS_NEXT_PAGE,\n HAS_PREV_PAGE = _ConnectionInterface$2.HAS_PREV_PAGE,\n END_CURSOR = _ConnectionInterface$2.END_CURSOR,\n START_CURSOR = _ConnectionInterface$2.START_CURSOR;\n\n !(typeof connectionData === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return `null` or a plain object with %s and %s properties, got `%s`.', componentName, EDGES, PAGE_INFO, connectionData) : invariant(false) : void 0;\n var edges = connectionData[EDGES];\n var pageInfo = connectionData[PAGE_INFO];\n\n if (edges == null || pageInfo == null) {\n return null;\n }\n\n !Array.isArray(edges) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Array, got `%s`.', componentName, EDGES, edges) : invariant(false) : void 0;\n !(typeof pageInfo === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Object, got `%s`.', componentName, PAGE_INFO, pageInfo) : invariant(false) : void 0;\n var hasMore = direction === FORWARD ? pageInfo[HAS_NEXT_PAGE] : pageInfo[HAS_PREV_PAGE];\n var cursor = direction === FORWARD ? pageInfo[END_CURSOR] : pageInfo[START_CURSOR];\n\n if (typeof hasMore !== 'boolean' || edges.length !== 0 && typeof cursor === 'undefined') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayPaginationContainer: Cannot paginate without %s fields in `%s`. ' + 'Be sure to fetch %s (got `%s`) and %s (got `%s`).', PAGE_INFO, componentName, direction === FORWARD ? HAS_NEXT_PAGE : HAS_PREV_PAGE, hasMore, direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;\n return null;\n }\n\n return {\n cursor: cursor,\n edgeCount: edges.length,\n hasMore: hasMore\n };\n };\n\n _proto._getQueryFetcher = function _getQueryFetcher() {\n if (!this._queryFetcher) {\n this._queryFetcher = new ReactRelayQueryFetcher();\n }\n\n return this._queryFetcher;\n };\n\n _proto._canFetchPage = function _canFetchPage(method) {\n if (this._isUnmounted) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayPaginationContainer: Unexpected call of `%s` ' + 'on unmounted container `%s`. It looks like some instances ' + 'of your container still trying to fetch data but they already ' + 'unmounted. Please make sure you clear all timers, intervals, async ' + 'calls, etc that may trigger `%s` call.', method, containerName, method) : void 0;\n return false;\n }\n\n return true;\n };\n\n _proto._fetchPage = function _fetchPage(paginatingVariables, observer, options) {\n var _this3 = this;\n\n var _assertRelayContext = assertRelayContext(this.props.__relayContext),\n environment = _assertRelayContext.environment;\n\n var _this$props2 = this.props,\n _ = _this$props2.componentRef,\n __relayContext = _this$props2.__relayContext,\n __rootIsQueryRenderer = _this$props2.__rootIsQueryRenderer,\n restProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props2, [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"]);\n var props = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, restProps), this.state.data);\n var fragmentVariables;\n var rootVariables = getRootVariablesForFragments(fragments, restProps); // $FlowFixMe[cannot-spread-interface]\n\n fragmentVariables = getVariablesFromObject(fragments, restProps); // $FlowFixMe[cannot-spread-interface]\n\n fragmentVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, rootVariables), fragmentVariables), this._refetchVariables);\n var fetchVariables = connectionConfig.getVariables(props, {\n count: paginatingVariables.count,\n cursor: paginatingVariables.cursor\n }, fragmentVariables);\n !(typeof fetchVariables === 'object' && fetchVariables !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getVariables()` to ' + 'return an object, got `%s` in `%s`.', fetchVariables, componentName) : invariant(false) : void 0; // $FlowFixMe[cannot-spread-interface]\n\n fetchVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, fetchVariables), this._refetchVariables);\n fragmentVariables = (0, _objectSpread3[\"default\"])((0, _objectSpread3[\"default\"])({}, fetchVariables), fragmentVariables);\n var cacheConfig = options ? {\n force: !!options.force\n } : undefined;\n\n if (cacheConfig != null && (options === null || options === void 0 ? void 0 : options.metadata) != null) {\n cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;\n }\n\n var request = getRequest(connectionConfig.query);\n var operation = createOperationDescriptor(request, fetchVariables, cacheConfig);\n var refetchSubscription = null;\n\n if (this._refetchSubscription) {\n this._refetchSubscription.unsubscribe();\n }\n\n this._hasFetched = true;\n\n var onNext = function onNext(payload, complete) {\n var prevData = _this3._resolver.resolve();\n\n _this3._resolver.setVariables(getFragmentVariables(fragmentVariables, paginatingVariables.totalCount), operation.request.node);\n\n var nextData = _this3._resolver.resolve(); // Workaround slightly different handling for connection in different\n // core implementations:\n // - Classic core requires the count to be explicitly incremented\n // - Modern core automatically appends new items, updating the count\n // isn't required to see new data.\n //\n // `setState` is only required if changing the variables would change the\n // resolved data.\n // TODO #14894725: remove PaginationContainer equal check\n\n\n if (!areEqual(prevData, nextData)) {\n _this3.setState({\n data: nextData,\n contextForChildren: {\n environment: _this3.props.__relayContext.environment\n }\n }, complete);\n } else {\n complete();\n }\n };\n\n var cleanup = function cleanup() {\n if (_this3._refetchSubscription === refetchSubscription) {\n _this3._refetchSubscription = null;\n _this3._isARequestInFlight = false;\n }\n };\n\n this._isARequestInFlight = true;\n refetchSubscription = this._getQueryFetcher().execute({\n environment: environment,\n operation: operation,\n preservePreviousReferences: true\n }).mergeMap(function (payload) {\n return Observable.create(function (sink) {\n onNext(payload, function () {\n sink.next(); // pass void to public observer's `next`\n\n sink.complete();\n });\n });\n }) // use do instead of finally so that observer's `complete` fires after cleanup\n [\"do\"]({\n error: cleanup,\n complete: cleanup,\n unsubscribe: cleanup\n }).subscribe(observer || {});\n this._refetchSubscription = this._isARequestInFlight ? refetchSubscription : null;\n return refetchSubscription;\n };\n\n _proto._cleanup = function _cleanup() {\n this._resolver.dispose();\n\n this._refetchVariables = null;\n this._hasFetched = false;\n\n if (this._refetchSubscription) {\n this._refetchSubscription.unsubscribe();\n\n this._refetchSubscription = null;\n this._isARequestInFlight = false;\n }\n\n if (this._queryFetcher) {\n this._queryFetcher.dispose();\n }\n };\n\n _proto.render = function render() {\n var _this$props3 = this.props,\n componentRef = _this$props3.componentRef,\n __relayContext = _this$props3.__relayContext,\n __rootIsQueryRenderer = _this$props3.__rootIsQueryRenderer,\n props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props3, [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"]);\n return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n value: this.state.contextForChildren\n }, /*#__PURE__*/React.createElement(Component, (0, _extends2[\"default\"])({}, props, this.state.data, {\n ref: componentRef,\n relay: this.state.relayProp\n })));\n };\n\n return _class;\n }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _temp;\n}\n/**\n * Wrap the basic `createContainer()` function with logic to adapt to the\n * `context.relay.environment` in which it is rendered. Specifically, the\n * extraction of the environment-specific version of fragments in the\n * `fragmentSpec` is memoized once per environment, rather than once per\n * instance of the container constructed/rendered.\n */\n\n\nfunction createContainer(Component, fragmentSpec, connectionConfig) {\n // $FlowFixMe[incompatible-return]\n return buildReactRelayContainer(Component, fragmentSpec, function (ComponentClass, fragments) {\n return createContainerWithFragments(ComponentClass, fragments, connectionConfig);\n });\n}\n\nmodule.exports = {\n createContainer: createContainer\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar invariant = require('invariant');\n\nvar _require = require('relay-runtime'),\n createOperationDescriptor = _require.createOperationDescriptor,\n isRelayModernEnvironment = _require.isRelayModernEnvironment,\n fetchQuery = _require.__internal.fetchQuery;\n\nvar ReactRelayQueryFetcher = /*#__PURE__*/function () {\n function ReactRelayQueryFetcher(args) {\n (0, _defineProperty2[\"default\"])(this, \"_selectionReferences\", []);\n (0, _defineProperty2[\"default\"])(this, \"_callOnDataChangeWhenSet\", false);\n\n if (args != null) {\n this._cacheSelectionReference = args.cacheSelectionReference;\n this._selectionReferences = args.selectionReferences;\n }\n }\n\n var _proto = ReactRelayQueryFetcher.prototype;\n\n _proto.getSelectionReferences = function getSelectionReferences() {\n return {\n cacheSelectionReference: this._cacheSelectionReference,\n selectionReferences: this._selectionReferences\n };\n };\n\n _proto.lookupInStore = function lookupInStore(environment, operation, fetchPolicy) {\n if (fetchPolicy === 'store-and-network' || fetchPolicy === 'store-or-network') {\n if (environment.check(operation).status === 'available') {\n this._retainCachedOperation(environment, operation);\n\n return environment.lookup(operation.fragment);\n }\n }\n\n return null;\n };\n\n _proto.execute = function execute(_ref) {\n var _this = this;\n\n var environment = _ref.environment,\n operation = _ref.operation,\n _ref$preservePrevious = _ref.preservePreviousReferences,\n preservePreviousReferences = _ref$preservePrevious === void 0 ? false : _ref$preservePrevious;\n var reference = environment.retain(operation);\n\n var error = function error() {\n // We may have partially fulfilled the request, so let the next request\n // or the unmount dispose of the references.\n _this._selectionReferences = _this._selectionReferences.concat(reference);\n };\n\n var complete = function complete() {\n if (!preservePreviousReferences) {\n _this.disposeSelectionReferences();\n }\n\n _this._selectionReferences = _this._selectionReferences.concat(reference);\n };\n\n var unsubscribe = function unsubscribe() {\n // Let the next request or the unmount code dispose of the references.\n // We may have partially fulfilled the request.\n _this._selectionReferences = _this._selectionReferences.concat(reference);\n };\n\n if (!isRelayModernEnvironment(environment)) {\n return environment.execute({\n operation: operation\n })[\"do\"]({\n error: error,\n complete: complete,\n unsubscribe: unsubscribe\n });\n }\n\n return fetchQuery(environment, operation)[\"do\"]({\n error: error,\n complete: complete,\n unsubscribe: unsubscribe\n });\n };\n\n _proto.setOnDataChange = function setOnDataChange(onDataChange) {\n !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `setOnDataChange` should have been called after having called `fetch`') : invariant(false) : void 0;\n\n if (typeof onDataChange === 'function') {\n // Mutate the most recent fetchOptions in place,\n // So that in-progress requests can access the updated callback.\n this._fetchOptions.onDataChangeCallbacks = this._fetchOptions.onDataChangeCallbacks || [];\n\n this._fetchOptions.onDataChangeCallbacks.push(onDataChange);\n\n if (this._callOnDataChangeWhenSet) {\n // We don't reset '_callOnDataChangeWhenSet' because another callback may be set\n if (this._error != null) {\n onDataChange({\n error: this._error\n });\n } else if (this._snapshot != null) {\n onDataChange({\n snapshot: this._snapshot\n });\n }\n }\n }\n }\n /**\n * `fetch` fetches the data for the given operation.\n * If a result is immediately available synchronously, it will be synchronously\n * returned by this function.\n *\n * Otherwise, the fetched result will be communicated via the `onDataChange` callback.\n * `onDataChange` will be called with the first result (**if it wasn't returned synchronously**),\n * and then subsequently whenever the data changes.\n */\n ;\n\n _proto.fetch = function fetch(fetchOptions, cacheConfigOverride) {\n var _this2 = this;\n\n var environment = fetchOptions.environment,\n operation = fetchOptions.operation,\n onDataChange = fetchOptions.onDataChange;\n var fetchHasReturned = false;\n\n var _error;\n\n this.disposeRequest();\n var oldOnDataChangeCallbacks = this._fetchOptions && this._fetchOptions.onDataChangeCallbacks;\n this._fetchOptions = {\n environment: environment,\n onDataChangeCallbacks: oldOnDataChangeCallbacks || [],\n operation: operation\n };\n\n if (onDataChange && this._fetchOptions.onDataChangeCallbacks.indexOf(onDataChange) === -1) {\n this._fetchOptions.onDataChangeCallbacks.push(onDataChange);\n }\n\n var operationOverride = cacheConfigOverride ? createOperationDescriptor(operation.request.node, operation.request.variables, cacheConfigOverride) : operation;\n var request = this.execute({\n environment: environment,\n operation: operationOverride\n })[\"finally\"](function () {\n _this2._pendingRequest = null;\n }).subscribe({\n next: function next() {\n // If we received a response,\n // Make a note that to notify the callback when it's later added.\n _this2._callOnDataChangeWhenSet = true;\n _this2._error = null; // Only notify of the first result if `next` is being called **asynchronously**\n // (i.e. after `fetch` has returned).\n\n _this2._onQueryDataAvailable({\n notifyFirstResult: fetchHasReturned\n });\n },\n error: function error(err) {\n // If we received a response when we didn't have a change callback,\n // Make a note that to notify the callback when it's later added.\n _this2._callOnDataChangeWhenSet = true;\n _this2._error = err;\n _this2._snapshot = null;\n var onDataChangeCallbacks = _this2._fetchOptions && _this2._fetchOptions.onDataChangeCallbacks; // Only notify of error if `error` is being called **asynchronously**\n // (i.e. after `fetch` has returned).\n\n if (fetchHasReturned) {\n if (onDataChangeCallbacks) {\n onDataChangeCallbacks.forEach(function (onDataChange) {\n onDataChange({\n error: err\n });\n });\n }\n } else {\n _error = err;\n }\n }\n });\n this._pendingRequest = {\n dispose: function dispose() {\n request.unsubscribe();\n }\n };\n fetchHasReturned = true;\n\n if (_error) {\n throw _error;\n }\n\n return this._snapshot;\n };\n\n _proto.retry = function retry(cacheConfigOverride) {\n !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `retry` should be called after having called `fetch`') : invariant(false) : void 0;\n return this.fetch({\n environment: this._fetchOptions.environment,\n operation: this._fetchOptions.operation,\n onDataChange: null // If there are onDataChangeCallbacks they will be reused\n\n }, cacheConfigOverride);\n };\n\n _proto.dispose = function dispose() {\n this.disposeRequest();\n this.disposeSelectionReferences();\n };\n\n _proto.disposeRequest = function disposeRequest() {\n this._error = null;\n this._snapshot = null; // order is important, dispose of pendingFetch before selectionReferences\n\n if (this._pendingRequest) {\n this._pendingRequest.dispose();\n }\n\n if (this._rootSubscription) {\n this._rootSubscription.dispose();\n\n this._rootSubscription = null;\n }\n };\n\n _proto._retainCachedOperation = function _retainCachedOperation(environment, operation) {\n this._disposeCacheSelectionReference();\n\n this._cacheSelectionReference = environment.retain(operation);\n };\n\n _proto._disposeCacheSelectionReference = function _disposeCacheSelectionReference() {\n this._cacheSelectionReference && this._cacheSelectionReference.dispose();\n this._cacheSelectionReference = null;\n };\n\n _proto.disposeSelectionReferences = function disposeSelectionReferences() {\n this._disposeCacheSelectionReference();\n\n this._selectionReferences.forEach(function (r) {\n return r.dispose();\n });\n\n this._selectionReferences = [];\n };\n\n _proto._onQueryDataAvailable = function _onQueryDataAvailable(_ref2) {\n var _this3 = this;\n\n var notifyFirstResult = _ref2.notifyFirstResult;\n !this._fetchOptions ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ReactRelayQueryFetcher: `_onQueryDataAvailable` should have been called after having called `fetch`') : invariant(false) : void 0;\n var _this$_fetchOptions = this._fetchOptions,\n environment = _this$_fetchOptions.environment,\n onDataChangeCallbacks = _this$_fetchOptions.onDataChangeCallbacks,\n operation = _this$_fetchOptions.operation; // `_onQueryDataAvailable` can be called synchronously the first time and can be called\n // multiple times by network layers that support data subscriptions.\n // Wait until the first payload to call `onDataChange` and subscribe for data updates.\n\n if (this._snapshot) {\n return;\n }\n\n this._snapshot = environment.lookup(operation.fragment); // Subscribe to changes in the data of the root fragment\n\n this._rootSubscription = environment.subscribe(this._snapshot, function (snapshot) {\n // Read from this._fetchOptions in case onDataChange() was lazily added.\n if (_this3._fetchOptions != null) {\n var maybeNewOnDataChangeCallbacks = _this3._fetchOptions.onDataChangeCallbacks;\n\n if (Array.isArray(maybeNewOnDataChangeCallbacks)) {\n maybeNewOnDataChangeCallbacks.forEach(function (onDataChange) {\n return onDataChange({\n snapshot: snapshot\n });\n });\n }\n }\n });\n\n if (this._snapshot && notifyFirstResult && Array.isArray(onDataChangeCallbacks)) {\n var snapshot = this._snapshot;\n onDataChangeCallbacks.forEach(function (onDataChange) {\n return onDataChange({\n snapshot: snapshot\n });\n });\n }\n };\n\n return ReactRelayQueryFetcher;\n}();\n\nmodule.exports = ReactRelayQueryFetcher;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = require('react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\n\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar _require = require('relay-runtime'),\n createOperationDescriptor = _require.createOperationDescriptor,\n deepFreeze = _require.deepFreeze,\n getRequest = _require.getRequest,\n RelayFeatureFlags = _require.RelayFeatureFlags;\n\n/**\n * React may double-fire the constructor, and we call 'fetch' in the\n * constructor. If a request is already in flight from a previous call to the\n * constructor, just reuse the query fetcher and wait for the response.\n */\nvar requestCache = {};\nvar queryRendererContext = {\n rootIsQueryRenderer: true\n};\n\n/**\n * @public\n *\n * Orchestrates fetching and rendering data for a single view or view hierarchy:\n * - Fetches the query/variables using the given network implementation.\n * - Normalizes the response(s) to that query, publishing them to the given\n * store.\n * - Renders the pending/fail/success states with the provided render function.\n * - Subscribes for updates to the root data and re-renders with any changes.\n */\nvar ReactRelayQueryRenderer = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(ReactRelayQueryRenderer, _React$Component);\n\n function ReactRelayQueryRenderer(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Callbacks are attached to the current instance and shared with static\n // lifecyles by bundling with state. This is okay to do because the\n // callbacks don't change in reaction to props. However we should not\n // \"leak\" them before mounting (since we would be unable to clean up). For\n // that reason, we define them as null initially and fill them in after\n // mounting to avoid leaking memory.\n\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleDataChange\", function (params) {\n var error = params.error == null ? null : params.error;\n var snapshot = params.snapshot == null ? null : params.snapshot;\n\n _this.setState(function (prevState) {\n var prevRequestCacheKey = prevState.requestCacheKey;\n\n if (prevRequestCacheKey) {\n delete requestCache[prevRequestCacheKey];\n } // Don't update state if nothing has changed.\n\n\n if (snapshot === prevState.snapshot && error === prevState.error) {\n return null;\n }\n\n return {\n renderProps: getRenderProps(error, snapshot, prevState.queryFetcher, prevState.retryCallbacks),\n snapshot: snapshot,\n requestCacheKey: null\n };\n });\n });\n var retryCallbacks = {\n handleDataChange: null,\n handleRetryAfterError: null\n };\n var queryFetcher;\n var requestCacheKey;\n\n if (props.query) {\n var query = props.query;\n var request = getRequest(query);\n requestCacheKey = getRequestCacheKey(request.params, props.variables);\n queryFetcher = requestCache[requestCacheKey] ? requestCache[requestCacheKey].queryFetcher : new ReactRelayQueryFetcher();\n } else {\n queryFetcher = new ReactRelayQueryFetcher();\n }\n\n _this._maybeHiddenOrFastRefresh = false;\n _this.state = (0, _objectSpread2[\"default\"])({\n prevPropsEnvironment: props.environment,\n prevPropsVariables: props.variables,\n prevQuery: props.query,\n queryFetcher: queryFetcher,\n retryCallbacks: retryCallbacks\n }, fetchQueryAndComputeStateFromProps(props, queryFetcher, retryCallbacks, requestCacheKey));\n return _this;\n }\n\n ReactRelayQueryRenderer.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.prevQuery !== nextProps.query || prevState.prevPropsEnvironment !== nextProps.environment || !areEqual(prevState.prevPropsVariables, nextProps.variables)) {\n return resetQueryStateForUpdate(nextProps, prevState);\n }\n\n return null;\n };\n\n var _proto = ReactRelayQueryRenderer.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n if (RelayFeatureFlags.ENABLE_QUERY_RENDERER_OFFSCREEN_SUPPORT === true && this._maybeHiddenOrFastRefresh === true) {\n // This block only runs if the component has previously \"unmounted\"\n // due to it being hidden by the Offscreen API, or during fast refresh.\n // At this point, the current cached resource will have been disposed\n // by the previous cleanup, so instead of attempting to\n // do our regular commit setup, so that the query is re-evaluated\n // (and potentially cause a refetch).\n this._maybeHiddenOrFastRefresh = false; // eslint-disable-next-line react/no-did-mount-set-state\n\n this.setState(function (prevState) {\n return resetQueryStateForUpdate(_this2.props, prevState);\n });\n return;\n }\n\n var _this$state = this.state,\n retryCallbacks = _this$state.retryCallbacks,\n queryFetcher = _this$state.queryFetcher,\n requestCacheKey = _this$state.requestCacheKey; // We don't need to cache the request after the component commits\n\n if (requestCacheKey) {\n delete requestCache[requestCacheKey];\n }\n\n retryCallbacks.handleDataChange = this._handleDataChange;\n\n retryCallbacks.handleRetryAfterError = function (error) {\n return _this2.setState(function (prevState) {\n var prevRequestCacheKey = prevState.requestCacheKey;\n\n if (prevRequestCacheKey) {\n delete requestCache[prevRequestCacheKey];\n }\n\n return {\n renderProps: getLoadingRenderProps(),\n requestCacheKey: null\n };\n });\n }; // Re-initialize the ReactRelayQueryFetcher with callbacks.\n // If data has changed since constructions, this will re-render.\n\n\n if (this.props.query) {\n queryFetcher.setOnDataChange(this._handleDataChange);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(_prevProps, prevState) {\n // We don't need to cache the request after the component commits\n var _this$state2 = this.state,\n queryFetcher = _this$state2.queryFetcher,\n requestCacheKey = _this$state2.requestCacheKey;\n\n if (requestCacheKey) {\n delete requestCache[requestCacheKey]; // HACK\n\n delete this.state.requestCacheKey;\n }\n\n if (this.props.query && queryFetcher !== prevState.queryFetcher) {\n queryFetcher.setOnDataChange(this._handleDataChange);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.state.queryFetcher.dispose();\n this._maybeHiddenOrFastRefresh = true;\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n return nextProps.render !== this.props.render || nextState.renderProps !== this.state.renderProps;\n };\n\n _proto.render = function render() {\n var _this$state3 = this.state,\n renderProps = _this$state3.renderProps,\n relayContext = _this$state3.relayContext; // Note that the root fragment results in `renderProps.props` is already\n // frozen by the store; this call is to freeze the renderProps object and\n // error property if set.\n\n if (process.env.NODE_ENV !== \"production\") {\n deepFreeze(renderProps);\n }\n\n return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n value: relayContext\n }, /*#__PURE__*/React.createElement(ReactRelayQueryRendererContext.Provider, {\n value: queryRendererContext\n }, this.props.render(renderProps)));\n };\n\n return ReactRelayQueryRenderer;\n}(React.Component);\n\nfunction getLoadingRenderProps() {\n return {\n error: null,\n props: null,\n // `props: null` indicates that the data is being fetched (i.e. loading)\n retry: null\n };\n}\n\nfunction getEmptyRenderProps() {\n return {\n error: null,\n props: {},\n // `props: {}` indicates no data available\n retry: null\n };\n}\n\nfunction getRenderProps(error, snapshot, queryFetcher, retryCallbacks) {\n return {\n error: error ? error : null,\n props: snapshot ? snapshot.data : null,\n retry: function retry(cacheConfigOverride) {\n var syncSnapshot = queryFetcher.retry(cacheConfigOverride);\n\n if (syncSnapshot && typeof retryCallbacks.handleDataChange === 'function') {\n retryCallbacks.handleDataChange({\n snapshot: syncSnapshot\n });\n } else if (error && typeof retryCallbacks.handleRetryAfterError === 'function') {\n // If retrying after an error and no synchronous result available,\n // reset the render props\n retryCallbacks.handleRetryAfterError(error);\n }\n }\n };\n}\n\nfunction getRequestCacheKey(request, variables) {\n return JSON.stringify({\n id: request.cacheID ? request.cacheID : request.id,\n variables: variables\n });\n}\n\nfunction resetQueryStateForUpdate(props, prevState) {\n var query = props.query;\n var prevSelectionReferences = prevState.queryFetcher.getSelectionReferences();\n prevState.queryFetcher.disposeRequest();\n var queryFetcher;\n\n if (query) {\n var request = getRequest(query);\n var requestCacheKey = getRequestCacheKey(request.params, props.variables);\n queryFetcher = requestCache[requestCacheKey] ? requestCache[requestCacheKey].queryFetcher : new ReactRelayQueryFetcher(prevSelectionReferences);\n } else {\n queryFetcher = new ReactRelayQueryFetcher(prevSelectionReferences);\n }\n\n return (0, _objectSpread2[\"default\"])({\n prevQuery: props.query,\n prevPropsEnvironment: props.environment,\n prevPropsVariables: props.variables,\n queryFetcher: queryFetcher\n }, fetchQueryAndComputeStateFromProps(props, queryFetcher, prevState.retryCallbacks // passing no requestCacheKey will cause it to be recalculated internally\n // and we want the updated requestCacheKey, since variables may have changed\n ));\n}\n\nfunction fetchQueryAndComputeStateFromProps(props, queryFetcher, retryCallbacks, requestCacheKey) {\n var environment = props.environment,\n query = props.query,\n variables = props.variables,\n cacheConfig = props.cacheConfig;\n var genericEnvironment = environment;\n\n if (query) {\n var request = getRequest(query);\n var operation = createOperationDescriptor(request, variables, cacheConfig);\n var relayContext = {\n environment: genericEnvironment\n };\n\n if (typeof requestCacheKey === 'string' && requestCache[requestCacheKey]) {\n // This same request is already in flight.\n var snapshot = requestCache[requestCacheKey].snapshot;\n\n if (snapshot) {\n // Use the cached response\n return {\n error: null,\n relayContext: relayContext,\n renderProps: getRenderProps(null, snapshot, queryFetcher, retryCallbacks),\n snapshot: snapshot,\n requestCacheKey: requestCacheKey\n };\n } else {\n // Render loading state\n return {\n error: null,\n relayContext: relayContext,\n renderProps: getLoadingRenderProps(),\n snapshot: null,\n requestCacheKey: requestCacheKey\n };\n }\n }\n\n try {\n var storeSnapshot = queryFetcher.lookupInStore(genericEnvironment, operation, props.fetchPolicy);\n var querySnapshot = queryFetcher.fetch({\n environment: genericEnvironment,\n onDataChange: null,\n operation: operation\n }); // Use network data first, since it may be fresher\n\n var _snapshot = querySnapshot || storeSnapshot; // cache the request to avoid duplicate requests\n\n\n requestCacheKey = requestCacheKey || getRequestCacheKey(request.params, props.variables);\n requestCache[requestCacheKey] = {\n queryFetcher: queryFetcher,\n snapshot: _snapshot\n };\n\n if (!_snapshot) {\n return {\n error: null,\n relayContext: relayContext,\n renderProps: getLoadingRenderProps(),\n snapshot: null,\n requestCacheKey: requestCacheKey\n };\n }\n\n return {\n error: null,\n relayContext: relayContext,\n renderProps: getRenderProps(null, _snapshot, queryFetcher, retryCallbacks),\n snapshot: _snapshot,\n requestCacheKey: requestCacheKey\n };\n } catch (error) {\n return {\n error: error,\n relayContext: relayContext,\n renderProps: getRenderProps(error, null, queryFetcher, retryCallbacks),\n snapshot: null,\n requestCacheKey: requestCacheKey\n };\n }\n } else {\n queryFetcher.dispose();\n var _relayContext = {\n environment: genericEnvironment\n };\n return {\n error: null,\n relayContext: _relayContext,\n renderProps: getEmptyRenderProps(),\n requestCacheKey: null // if there is an error, don't cache request\n\n };\n }\n}\n\nmodule.exports = ReactRelayQueryRenderer;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nmodule.exports = React.createContext({\n rootIsQueryRenderer: false\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar React = require('react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar buildReactRelayContainer = require('./buildReactRelayContainer');\n\nvar getRootVariablesForFragments = require('./getRootVariablesForFragments');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./ReactRelayContainerUtils'),\n getContainerName = _require.getContainerName;\n\nvar _require2 = require('./RelayContext'),\n assertRelayContext = _require2.assertRelayContext;\n\nvar _require3 = require('relay-runtime'),\n Observable = _require3.Observable,\n createFragmentSpecResolver = _require3.createFragmentSpecResolver,\n createOperationDescriptor = _require3.createOperationDescriptor,\n getDataIDsFromObject = _require3.getDataIDsFromObject,\n getRequest = _require3.getRequest,\n getVariablesFromObject = _require3.getVariablesFromObject,\n isScalarAndEqual = _require3.isScalarAndEqual;\n\n/**\n * Composes a React component class, returning a new class that intercepts\n * props, resolving them with the provided fragments and subscribing for\n * updates.\n */\nfunction createContainerWithFragments(Component, fragments, taggedNode) {\n var _class, _temp;\n\n var containerName = getContainerName(Component);\n return _temp = _class = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(_class, _React$Component);\n\n function _class(props) {\n var _props$__rootIsQueryR, _this;\n\n _this = _React$Component.call(this, props) || this;\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_handleFragmentDataUpdate\", function () {\n var resolverFromThisUpdate = _this.state.resolver;\n\n _this.setState(function (updatedState) {\n return (// If this event belongs to the current data source, update.\n // Otherwise we should ignore it.\n resolverFromThisUpdate === updatedState.resolver ? {\n data: updatedState.resolver.resolve()\n } : null\n );\n });\n });\n (0, _defineProperty2[\"default\"])((0, _assertThisInitialized2[\"default\"])(_this), \"_refetch\", function (refetchVariables, renderVariables, observerOrCallback, options) {\n if (_this._isUnmounted) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ReactRelayRefetchContainer: Unexpected call of `refetch` ' + 'on unmounted container `%s`. It looks like some instances ' + 'of your container still trying to refetch the data but they already ' + 'unmounted. Please make sure you clear all timers, intervals, async ' + 'calls, etc that may trigger `refetch`.', containerName) : void 0;\n return {\n dispose: function dispose() {}\n };\n }\n\n var _assertRelayContext = assertRelayContext(_this.props.__relayContext),\n environment = _assertRelayContext.environment;\n\n var rootVariables = getRootVariablesForFragments(fragments, _this.props);\n var fetchVariables = typeof refetchVariables === 'function' ? refetchVariables(_this._getFragmentVariables()) : refetchVariables; // $FlowFixMe[cannot-spread-interface]\n\n fetchVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, rootVariables), fetchVariables);\n var fragmentVariables = renderVariables ? // $FlowFixMe[cannot-spread-interface]\n (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, fetchVariables), renderVariables) : fetchVariables;\n var cacheConfig = options ? {\n force: !!options.force\n } : undefined;\n\n if (cacheConfig != null && (options === null || options === void 0 ? void 0 : options.metadata) != null) {\n cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;\n }\n\n var observer = typeof observerOrCallback === 'function' ? {\n // callback is not exectued on complete or unsubscribe\n // for backward compatibility\n next: observerOrCallback,\n error: observerOrCallback\n } : observerOrCallback || {};\n var query = getRequest(taggedNode);\n var operation = createOperationDescriptor(query, fetchVariables, cacheConfig); // TODO: T26288752 find a better way\n\n /* eslint-disable lint/react-state-props-mutation */\n\n _this.state.localVariables = fetchVariables;\n /* eslint-enable lint/react-state-props-mutation */\n // Cancel any previously running refetch.\n\n _this._refetchSubscription && _this._refetchSubscription.unsubscribe(); // Declare refetchSubscription before assigning it in .start(), since\n // synchronous completion may call callbacks .subscribe() returns.\n\n var refetchSubscription;\n\n var storeSnapshot = _this._getQueryFetcher().lookupInStore(environment, operation, options === null || options === void 0 ? void 0 : options.fetchPolicy);\n\n if (storeSnapshot != null) {\n _this.state.resolver.setVariables(fragmentVariables, operation.request.node);\n\n _this.setState(function (latestState) {\n return {\n data: latestState.resolver.resolve(),\n contextForChildren: {\n environment: _this.props.__relayContext.environment\n }\n };\n }, function () {\n observer.next && observer.next();\n observer.complete && observer.complete();\n });\n\n return {\n dispose: function dispose() {}\n };\n }\n\n _this._getQueryFetcher().execute({\n environment: environment,\n operation: operation,\n // TODO (T26430099): Cleanup old references\n preservePreviousReferences: true\n }).mergeMap(function (response) {\n _this.state.resolver.setVariables(fragmentVariables, operation.request.node);\n\n return Observable.create(function (sink) {\n return _this.setState(function (latestState) {\n return {\n data: latestState.resolver.resolve(),\n contextForChildren: {\n environment: _this.props.__relayContext.environment\n }\n };\n }, function () {\n sink.next();\n sink.complete();\n });\n });\n })[\"finally\"](function () {\n // Finalizing a refetch should only clear this._refetchSubscription\n // if the finizing subscription is the most recent call.\n if (_this._refetchSubscription === refetchSubscription) {\n _this._refetchSubscription = null;\n }\n }).subscribe((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n start: function start(subscription) {\n _this._refetchSubscription = refetchSubscription = subscription;\n observer.start && observer.start(subscription);\n }\n }));\n\n return {\n dispose: function dispose() {\n refetchSubscription && refetchSubscription.unsubscribe();\n }\n };\n });\n var relayContext = assertRelayContext(props.__relayContext);\n var rootIsQueryRenderer = (_props$__rootIsQueryR = props.__rootIsQueryRenderer) !== null && _props$__rootIsQueryR !== void 0 ? _props$__rootIsQueryR : false;\n _this._refetchSubscription = null; // Do not provide a subscription/callback here.\n // It is possible for this render to be interrupted or aborted,\n // In which case the subscription would cause a leak.\n // We will add the subscription in componentDidMount().\n\n var resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);\n _this.state = {\n data: resolver.resolve(),\n localVariables: null,\n prevProps: props,\n prevPropsContext: relayContext,\n contextForChildren: relayContext,\n relayProp: getRelayProp(relayContext.environment, _this._refetch),\n resolver: resolver\n };\n _this._isUnmounted = false;\n return _this;\n }\n\n var _proto = _class.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isUnmounted = false;\n\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the environment has changed or props point to new records then\n // previously fetched data and any pending fetches no longer apply:\n // - Existing references are on the old environment.\n // - Existing references are based on old variables.\n // - Pending fetches are for the previous records.\n if (this.state.resolver !== prevState.resolver) {\n prevState.resolver.dispose();\n this._queryFetcher && this._queryFetcher.dispose();\n this._refetchSubscription && this._refetchSubscription.unsubscribe();\n\n this._subscribeToNewResolverAndRerenderIfStoreHasChanged();\n } else {\n this._rerenderIfStoreHasChanged();\n }\n }\n /**\n * When new props are received, read data for the new props and add it to\n * state. Props may be the same in which case previous data can be reused.\n */\n ;\n\n _class.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var _nextProps$__rootIsQu;\n\n // Any props change could impact the query, so we mirror props in state.\n // This is an unusual pattern, but necessary for this container usecase.\n var prevProps = prevState.prevProps;\n var relayContext = assertRelayContext(nextProps.__relayContext);\n var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;\n var prevIDs = getDataIDsFromObject(fragments, prevProps);\n var nextIDs = getDataIDsFromObject(fragments, nextProps);\n var prevRootVariables = getRootVariablesForFragments(fragments, prevProps);\n var nextRootVariables = getRootVariablesForFragments(fragments, nextProps);\n var resolver = prevState.resolver; // If the environment has changed or props point to new records then\n // previously fetched data and any pending fetches no longer apply:\n // - Existing references are on the old environment.\n // - Existing references are based on old variables.\n // - Pending fetches are for the previous records.\n\n if (prevState.prevPropsContext.environment !== relayContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {\n // Do not provide a subscription/callback here.\n // It is possible for this render to be interrupted or aborted,\n // In which case the subscription would cause a leak.\n // We will add the subscription in componentDidUpdate().\n resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);\n return {\n data: resolver.resolve(),\n localVariables: null,\n prevProps: nextProps,\n prevPropsContext: relayContext,\n contextForChildren: relayContext,\n relayProp: getRelayProp(relayContext.environment, prevState.relayProp.refetch),\n resolver: resolver\n };\n } else if (!prevState.localVariables) {\n resolver.setProps(nextProps);\n }\n\n var data = resolver.resolve();\n\n if (data !== prevState.data) {\n return {\n data: data,\n prevProps: nextProps\n };\n }\n\n return null;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isUnmounted = true;\n this.state.resolver.dispose();\n this._queryFetcher && this._queryFetcher.dispose();\n this._refetchSubscription && this._refetchSubscription.unsubscribe();\n };\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n // Short-circuit if any Relay-related data has changed\n if (nextState.data !== this.state.data || nextState.relayProp !== this.state.relayProp) {\n return true;\n } // Otherwise, for convenience short-circuit if all non-Relay props\n // are scalar and equal\n\n\n var keys = Object.keys(nextProps);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var _key = keys[ii];\n\n if (_key === '__relayContext') {\n if (this.state.prevPropsContext.environment !== nextState.prevPropsContext.environment) {\n return true;\n }\n } else {\n if (!fragments.hasOwnProperty(_key) && !isScalarAndEqual(nextProps[_key], this.props[_key])) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n _proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {\n var _this$state = this.state,\n data = _this$state.data,\n resolver = _this$state.resolver; // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n var maybeNewData = resolver.resolve();\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n };\n\n _proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {\n var _this$state2 = this.state,\n data = _this$state2.data,\n resolver = _this$state2.resolver;\n var maybeNewData = resolver.resolve(); // Event listeners are only safe to add during the commit phase,\n // So they won't leak if render is interrupted or errors.\n\n resolver.setCallback(this.props, this._handleFragmentDataUpdate); // External values could change between render and commit.\n // Check for this case, even though it requires an extra store read.\n\n if (data !== maybeNewData) {\n this.setState({\n data: maybeNewData\n });\n }\n }\n /**\n * Render new data for the existing props/context.\n */\n ;\n\n _proto._getFragmentVariables = function _getFragmentVariables() {\n return getVariablesFromObject(fragments, this.props);\n };\n\n _proto._getQueryFetcher = function _getQueryFetcher() {\n if (!this._queryFetcher) {\n this._queryFetcher = new ReactRelayQueryFetcher();\n }\n\n return this._queryFetcher;\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n componentRef = _this$props.componentRef,\n __relayContext = _this$props.__relayContext,\n __rootIsQueryRenderer = _this$props.__rootIsQueryRenderer,\n props = (0, _objectWithoutPropertiesLoose2[\"default\"])(_this$props, [\"componentRef\", \"__relayContext\", \"__rootIsQueryRenderer\"]);\n var _this$state3 = this.state,\n relayProp = _this$state3.relayProp,\n contextForChildren = _this$state3.contextForChildren;\n return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n value: contextForChildren\n }, /*#__PURE__*/React.createElement(Component, (0, _extends2[\"default\"])({}, props, this.state.data, {\n ref: componentRef,\n relay: relayProp\n })));\n };\n\n return _class;\n }(React.Component), (0, _defineProperty2[\"default\"])(_class, \"displayName\", containerName), _temp;\n}\n\nfunction getRelayProp(environment, refetch) {\n return {\n environment: environment,\n refetch: refetch\n };\n}\n/**\n * Wrap the basic `createContainer()` function with logic to adapt to the\n * `context.relay.environment` in which it is rendered. Specifically, the\n * extraction of the environment-specific version of fragments in the\n * `fragmentSpec` is memoized once per environment, rather than once per\n * instance of the container constructed/rendered.\n */\n\n\nfunction createContainer(Component, fragmentSpec, taggedNode) {\n // $FlowFixMe[incompatible-return]\n return buildReactRelayContainer(Component, fragmentSpec, function (ComponentClass, fragments) {\n return createContainerWithFragments(ComponentClass, fragments, taggedNode);\n });\n}\n\nmodule.exports = {\n createContainer: createContainer\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar isRelayEnvironment = require('./isRelayEnvironment');\n\n/**\n * Asserts that the input is a matches the `RelayContext` type defined in\n * `RelayEnvironmentTypes` and returns it as that type.\n */\nfunction assertRelayContext(relay) {\n !isRelayContext(relay) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayContext: Expected `context.relay` to be an object conforming to ' + 'the `RelayContext` interface, got `%s`.', relay) : invariant(false) : void 0;\n return relay;\n}\n/**\n * Determine if the input is a plain object that matches the `RelayContext`\n * type defined in `RelayEnvironmentTypes`.\n */\n\n\nfunction isRelayContext(context) {\n return typeof context === 'object' && context !== null && !Array.isArray(context) && isRelayEnvironment(context.environment);\n}\n\nmodule.exports = {\n assertRelayContext: assertRelayContext,\n isRelayContext: isRelayContext\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\n/**\n * Fail fast if the user supplies invalid fragments as input.\n */\nfunction assertFragmentMap(componentName, fragmentSpec) {\n !(fragmentSpec && typeof fragmentSpec === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not create Relay Container for `%s`. ' + 'Expected a set of GraphQL fragments, got `%s` instead.', componentName, fragmentSpec) : invariant(false) : void 0;\n\n for (var key in fragmentSpec) {\n if (fragmentSpec.hasOwnProperty(key)) {\n var fragment = fragmentSpec[key];\n !(fragment && (typeof fragment === 'object' || typeof fragment === 'function')) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not create Relay Container for `%s`. ' + 'The value of fragment `%s` was expected to be a fragment, got `%s` instead.', componentName, key, fragment) : invariant(false) : void 0;\n }\n }\n}\n\nmodule.exports = assertFragmentMap;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar React = require('react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayQueryRendererContext = require('./ReactRelayQueryRendererContext');\n\nvar assertFragmentMap = require('./assertFragmentMap');\n\nvar invariant = require('invariant');\n\nvar readContext = require('./readContext');\n\nvar _require = require('./ReactRelayContainerUtils'),\n getComponentName = _require.getComponentName,\n getContainerName = _require.getContainerName;\n\nvar _require2 = require('relay-runtime'),\n getFragment = _require2.getFragment;\n\n/**\n * Helper to create the Relay HOCs with ref forwarding, setting the displayName\n * and reading the React context.\n */\nfunction buildReactRelayContainer(ComponentClass, fragmentSpec, createContainerWithFragments) {\n // Sanity-check user-defined fragment input\n var containerName = getContainerName(ComponentClass);\n assertFragmentMap(getComponentName(ComponentClass), fragmentSpec);\n var fragments = {};\n\n for (var key in fragmentSpec) {\n fragments[key] = getFragment(fragmentSpec[key]);\n }\n\n var Container = createContainerWithFragments(ComponentClass, fragments);\n Container.displayName = containerName;\n\n function forwardRef(props, ref) {\n var _queryRendererContext;\n\n var context = readContext(ReactRelayContext);\n !(context != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '`%s` tried to render a context that was not valid this means that ' + '`%s` was rendered outside of a query renderer.', containerName, containerName) : invariant(false) : void 0;\n var queryRendererContext = readContext(ReactRelayQueryRendererContext);\n return /*#__PURE__*/React.createElement(Container, (0, _extends2[\"default\"])({}, props, {\n __relayContext: context,\n __rootIsQueryRenderer: (_queryRendererContext = queryRendererContext === null || queryRendererContext === void 0 ? void 0 : queryRendererContext.rootIsQueryRenderer) !== null && _queryRendererContext !== void 0 ? _queryRendererContext : false,\n componentRef: props.componentRef || ref\n }));\n }\n\n forwardRef.displayName = containerName;\n var ForwardContainer = React.forwardRef(forwardRef);\n\n if (process.env.NODE_ENV !== \"production\") {\n // Used by RelayModernTestUtils\n ForwardContainer.__ComponentClass = ComponentClass;\n ForwardContainer.displayName = containerName;\n } // $FlowFixMe[incompatible-return]\n\n\n return ForwardContainer;\n}\n\nmodule.exports = buildReactRelayContainer;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _require = require('relay-runtime'),\n getSelector = _require.getSelector;\n\nfunction getRootVariablesForFragments(fragments, props) {\n var rootVariables = {}; // NOTE: For extra safety, we make sure the rootVariables include the\n // variables from all owners in this fragmentSpec, even though they\n // should all point to the same owner\n\n Object.keys(fragments).forEach(function (key) {\n var _selector$selectors$, _selector$selectors$2, _selector$owner$varia;\n\n var fragmentNode = fragments[key];\n var fragmentRef = props[key];\n var selector = getSelector(fragmentNode, fragmentRef);\n var fragmentOwnerVariables = selector != null && selector.kind === 'PluralReaderSelector' ? (_selector$selectors$ = (_selector$selectors$2 = selector.selectors[0]) === null || _selector$selectors$2 === void 0 ? void 0 : _selector$selectors$2.owner.variables) !== null && _selector$selectors$ !== void 0 ? _selector$selectors$ : {} : (_selector$owner$varia = selector === null || selector === void 0 ? void 0 : selector.owner.variables) !== null && _selector$owner$varia !== void 0 ? _selector$owner$varia : {}; // $FlowFixMe[cannot-spread-interface]\n\n rootVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, rootVariables), fragmentOwnerVariables);\n });\n return rootVariables;\n}\n\nmodule.exports = getRootVariablesForFragments;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar EntryPointContainer = require('./relay-hooks/EntryPointContainer.react');\n\nvar ReactRelayContext = require('./ReactRelayContext');\n\nvar ReactRelayFragmentContainer = require('./ReactRelayFragmentContainer');\n\nvar ReactRelayLocalQueryRenderer = require('./ReactRelayLocalQueryRenderer');\n\nvar ReactRelayPaginationContainer = require('./ReactRelayPaginationContainer');\n\nvar ReactRelayQueryRenderer = require('./ReactRelayQueryRenderer');\n\nvar ReactRelayRefetchContainer = require('./ReactRelayRefetchContainer');\n\nvar RelayEnvironmentProvider = require('./relay-hooks/RelayEnvironmentProvider');\n\nvar RelayRuntime = require('relay-runtime');\n\nvar loadEntryPoint = require('./relay-hooks/loadEntryPoint');\n\nvar useEntryPointLoader = require('./relay-hooks/useEntryPointLoader');\n\nvar useFragment = require('./relay-hooks/useFragment');\n\nvar useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');\n\nvar useMutation = require('./relay-hooks/useMutation');\n\nvar usePaginationFragment = require('./relay-hooks/usePaginationFragment');\n\nvar usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');\n\nvar useQueryLoader = require('./relay-hooks/useQueryLoader');\n\nvar useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');\n\nvar useRelayEnvironment = require('./relay-hooks/useRelayEnvironment');\n\nvar useSubscribeToInvalidationState = require('./relay-hooks/useSubscribeToInvalidationState');\n\nvar useSubscription = require('./relay-hooks/useSubscription');\n\nvar _require = require('./relay-hooks/loadQuery'),\n loadQuery = _require.loadQuery;\n\n/**\n * The public interface to react-relay.\n * Currently contains both Relay Hooks and legacy Container APIs.\n * Will eventually only export the interface from ./hooks.js.\n */\nmodule.exports = {\n ConnectionHandler: RelayRuntime.ConnectionHandler,\n QueryRenderer: ReactRelayQueryRenderer,\n LocalQueryRenderer: ReactRelayLocalQueryRenderer,\n MutationTypes: RelayRuntime.MutationTypes,\n RangeOperations: RelayRuntime.RangeOperations,\n ReactRelayContext: ReactRelayContext,\n applyOptimisticMutation: RelayRuntime.applyOptimisticMutation,\n commitLocalUpdate: RelayRuntime.commitLocalUpdate,\n commitMutation: RelayRuntime.commitMutation,\n createFragmentContainer: ReactRelayFragmentContainer.createContainer,\n createPaginationContainer: ReactRelayPaginationContainer.createContainer,\n createRefetchContainer: ReactRelayRefetchContainer.createContainer,\n fetchQuery_DEPRECATED: RelayRuntime.fetchQuery_DEPRECATED,\n graphql: RelayRuntime.graphql,\n readInlineData: RelayRuntime.readInlineData,\n requestSubscription: RelayRuntime.requestSubscription,\n // Relay Hooks\n EntryPointContainer: EntryPointContainer,\n RelayEnvironmentProvider: RelayEnvironmentProvider,\n fetchQuery: RelayRuntime.fetchQuery,\n loadQuery: loadQuery,\n loadEntryPoint: loadEntryPoint,\n useFragment: useFragment,\n useLazyLoadQuery: useLazyLoadQuery,\n useEntryPointLoader: useEntryPointLoader,\n useQueryLoader: useQueryLoader,\n useMutation: useMutation,\n usePaginationFragment: usePaginationFragment,\n usePreloadedQuery: usePreloadedQuery,\n useRefetchableFragment: useRefetchableFragment,\n useRelayEnvironment: useRelayEnvironment,\n useSubscribeToInvalidationState: useSubscribeToInvalidationState,\n useSubscription: useSubscription\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * Determine if a given value is an object that implements the `Environment`\n * interface defined in `RelayEnvironmentTypes`.\n */\n\nfunction isRelayEnvironment(environment) {\n return typeof environment === 'object' && environment !== null && // TODO: add applyMutation/sendMutation once ready in both cores\n typeof environment.check === 'function' && typeof environment.lookup === 'function' && typeof environment.retain === 'function' && typeof environment.execute === 'function' && typeof environment.subscribe === 'function';\n}\n\nmodule.exports = isRelayEnvironment;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar _React$__SECRET_INTER =\n/* $FlowFixMe[prop-missing] Flow doesn't know about React's internals for\n * good reason, but for now, Relay needs the dispatcher to read context. */\nReact.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,\n ReactCurrentDispatcher = _React$__SECRET_INTER.ReactCurrentDispatcher,\n ReactCurrentOwner = _React$__SECRET_INTER.ReactCurrentOwner;\n\nfunction readContext(Context) {\n var dispatcher = ReactCurrentDispatcher != null ? ReactCurrentDispatcher.current : ReactCurrentOwner.currentDispatcher;\n return dispatcher.readContext(Context);\n}\n\nmodule.exports = readContext;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ProfilerContext = require('./ProfilerContext');\n\nvar React = require('react');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('react'),\n useContext = _require.useContext,\n useEffect = _require.useEffect;\n\nfunction EntryPointContainer(_ref) {\n var entryPointReference = _ref.entryPointReference,\n props = _ref.props;\n process.env.NODE_ENV !== \"production\" ? warning(entryPointReference.isDisposed === false, ': Expected entryPointReference to not be disposed ' + 'yet. This is because disposing the entrypoint marks it for future garbage ' + 'collection, and as such may no longer be present in the Relay store. ' + 'In the future, this will become a hard error.') : void 0;\n var getComponent = entryPointReference.getComponent,\n queries = entryPointReference.queries,\n entryPoints = entryPointReference.entryPoints,\n extraProps = entryPointReference.extraProps,\n rootModuleID = entryPointReference.rootModuleID;\n var Component = getComponent();\n var profilerContext = useContext(ProfilerContext);\n var environment = useRelayEnvironment();\n useEffect(function () {\n environment.__log({\n name: 'entrypoint.root.consume',\n profilerContext: profilerContext,\n rootModuleID: rootModuleID\n });\n }, [environment, profilerContext, rootModuleID]);\n return /*#__PURE__*/React.createElement(Component, {\n entryPoints: entryPoints,\n extraProps: extraProps,\n props: props,\n queries: queries\n });\n}\n\nmodule.exports = EntryPointContainer;","/**\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 * @emails oncall+relay\n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar LRUCache = require('./LRUCache');\n\nvar invariant = require('invariant');\n\nvar _require = require('relay-runtime'),\n getFragmentIdentifier = _require.getFragmentIdentifier,\n getPendingOperationsForFragment = _require.getPendingOperationsForFragment,\n getSelector = _require.getSelector,\n isPromise = _require.isPromise,\n recycleNodesInto = _require.recycleNodesInto,\n reportMissingRequiredFields = _require.reportMissingRequiredFields;\n\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\n// TODO: Fix to not rely on LRU. If the number of active fragments exceeds this\n// capacity, readSpec() will fail to find cached entries and break object\n// identity even if data hasn't changed.\nvar CACHE_CAPACITY = 1000000; // this is frozen so that users don't accidentally push data into the array\n\nvar CONSTANT_READONLY_EMPTY_ARRAY = Object.freeze([]);\n\nfunction isMissingData(snapshot) {\n if (Array.isArray(snapshot)) {\n return snapshot.some(function (s) {\n return s.isMissingData;\n });\n }\n\n return snapshot.isMissingData;\n}\n\nfunction getFragmentResult(cacheKey, snapshot, storeEpoch) {\n if (Array.isArray(snapshot)) {\n return {\n cacheKey: cacheKey,\n snapshot: snapshot,\n data: snapshot.map(function (s) {\n return s.data;\n }),\n isMissingData: isMissingData(snapshot),\n storeEpoch: storeEpoch\n };\n }\n\n return {\n cacheKey: cacheKey,\n snapshot: snapshot,\n data: snapshot.data,\n isMissingData: isMissingData(snapshot),\n storeEpoch: storeEpoch\n };\n}\n\nvar FragmentResourceImpl = /*#__PURE__*/function () {\n function FragmentResourceImpl(environment) {\n this._environment = environment;\n this._cache = LRUCache.create(CACHE_CAPACITY);\n }\n /**\n * This function should be called during a Component's render function,\n * to read the data for a fragment, or suspend if the fragment is being\n * fetched.\n */\n\n\n var _proto = FragmentResourceImpl.prototype;\n\n _proto.read = function read(fragmentNode, fragmentRef, componentDisplayName, fragmentKey) {\n return this.readWithIdentifier(fragmentNode, fragmentRef, getFragmentIdentifier(fragmentNode, fragmentRef), componentDisplayName, fragmentKey);\n }\n /**\n * Like `read`, but with a pre-computed fragmentIdentifier that should be\n * equal to `getFragmentIdentifier(fragmentNode, fragmentRef)` from the\n * arguments.\n */\n ;\n\n _proto.readWithIdentifier = function readWithIdentifier(fragmentNode, fragmentRef, fragmentIdentifier, componentDisplayName, fragmentKey) {\n var _fragmentNode$metadat;\n\n var environment = this._environment; // If fragmentRef is null or undefined, pass it directly through.\n // This is a convenience when consuming fragments via a HOC API, when the\n // prop corresponding to the fragment ref might be passed as null.\n\n if (fragmentRef == null) {\n return {\n cacheKey: fragmentIdentifier,\n data: null,\n isMissingData: false,\n snapshot: null,\n storeEpoch: 0\n };\n }\n\n var storeEpoch = environment.getStore().getEpoch(); // If fragmentRef is plural, ensure that it is an array.\n // If it's empty, return the empty array directly before doing any more work.\n\n if ((fragmentNode === null || fragmentNode === void 0 ? void 0 : (_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) === true) {\n !Array.isArray(fragmentRef) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected fragment pointer%s for fragment `%s` to be ' + 'an array, instead got `%s`. Remove `@relay(plural: true)` ' + 'from fragment `%s` to allow the prop to be an object.', fragmentKey != null ? \" for key `\".concat(fragmentKey, \"`\") : '', fragmentNode.name, typeof fragmentRef, fragmentNode.name) : invariant(false) : void 0;\n\n if (fragmentRef.length === 0) {\n return {\n cacheKey: fragmentIdentifier,\n data: CONSTANT_READONLY_EMPTY_ARRAY,\n isMissingData: false,\n snapshot: CONSTANT_READONLY_EMPTY_ARRAY,\n storeEpoch: storeEpoch\n };\n }\n } // Now we actually attempt to read the fragment:\n // 1. Check if there's a cached value for this fragment\n\n\n var cachedValue = this._cache.get(fragmentIdentifier);\n\n if (cachedValue != null) {\n if (cachedValue.kind === 'pending' && isPromise(cachedValue.promise)) {\n environment.__log({\n name: 'suspense.fragment',\n data: cachedValue.result.data,\n fragment: fragmentNode,\n isRelayHooks: true,\n isMissingData: cachedValue.result.isMissingData,\n isPromiseCached: true,\n pendingOperations: cachedValue.pendingOperations\n });\n\n throw cachedValue.promise;\n }\n\n if (cachedValue.kind === 'done' && cachedValue.result.snapshot) {\n this._reportMissingRequiredFieldsInSnapshot(cachedValue.result.snapshot);\n\n return cachedValue.result;\n }\n } // 2. If not, try reading the fragment from the Relay store.\n // If the snapshot has data, return it and save it in cache\n\n\n var fragmentSelector = getSelector(fragmentNode, fragmentRef);\n !(fragmentSelector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\\n' + \"- Forgetting to spread `%s` in `%s`'s parent's fragment.\\n\" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, componentDisplayName, fragmentNode.name, fragmentKey == null ? 'a fragment reference' : \"the `\".concat(fragmentKey, \"`\"), componentDisplayName) : invariant(false) : void 0;\n var snapshot = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors.map(function (s) {\n return environment.lookup(s);\n }) : environment.lookup(fragmentSelector);\n var fragmentResult = getFragmentResult(fragmentIdentifier, snapshot, storeEpoch);\n\n if (!fragmentResult.isMissingData) {\n this._reportMissingRequiredFieldsInSnapshot(snapshot);\n\n this._cache.set(fragmentIdentifier, {\n kind: 'done',\n result: fragmentResult\n });\n\n return fragmentResult;\n } // 3. If we don't have data in the store, check if a request is in\n // flight for the fragment's parent query, or for another operation\n // that may affect the parent's query data, such as a mutation\n // or subscription. If a promise exists, cache the promise and use it\n // to suspend.\n\n\n var fragmentOwner = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors[0].owner : fragmentSelector.owner;\n\n var networkPromiseResult = this._getAndSavePromiseForFragmentRequestInFlight(fragmentIdentifier, fragmentNode, fragmentOwner, fragmentResult);\n\n if (networkPromiseResult != null && isPromise(networkPromiseResult.promise)) {\n environment.__log({\n name: 'suspense.fragment',\n data: fragmentResult.data,\n fragment: fragmentNode,\n isRelayHooks: true,\n isPromiseCached: false,\n isMissingData: fragmentResult.isMissingData,\n pendingOperations: networkPromiseResult.pendingOperations\n });\n\n throw networkPromiseResult.promise;\n }\n\n this._reportMissingRequiredFieldsInSnapshot(snapshot);\n\n return getFragmentResult(fragmentIdentifier, snapshot, storeEpoch);\n };\n\n _proto._reportMissingRequiredFieldsInSnapshot = function _reportMissingRequiredFieldsInSnapshot(snapshot) {\n var _this = this;\n\n if (Array.isArray(snapshot)) {\n snapshot.forEach(function (s) {\n if (s.missingRequiredFields != null) {\n reportMissingRequiredFields(_this._environment, s.missingRequiredFields);\n }\n });\n } else {\n if (snapshot.missingRequiredFields != null) {\n reportMissingRequiredFields(this._environment, snapshot.missingRequiredFields);\n }\n }\n };\n\n _proto.readSpec = function readSpec(fragmentNodes, fragmentRefs, componentDisplayName) {\n var result = {};\n\n for (var _key in fragmentNodes) {\n result[_key] = this.read(fragmentNodes[_key], fragmentRefs[_key], componentDisplayName, _key);\n }\n\n return result;\n };\n\n _proto.subscribe = function subscribe(fragmentResult, callback) {\n var _this2 = this;\n\n var environment = this._environment;\n var cacheKey = fragmentResult.cacheKey;\n var renderedSnapshot = fragmentResult.snapshot;\n\n if (!renderedSnapshot) {\n return {\n dispose: function dispose() {}\n };\n } // 1. Check for any updates missed during render phase\n // TODO(T44066760): More efficiently detect if we missed an update\n\n\n var _this$checkMissedUpda = this.checkMissedUpdates(fragmentResult),\n didMissUpdates = _this$checkMissedUpda[0],\n currentSnapshot = _this$checkMissedUpda[1]; // 2. If an update was missed, notify the component so it updates with\n // the latest data.\n\n\n if (didMissUpdates) {\n callback();\n } // 3. Establish subscriptions on the snapshot(s)\n\n\n var dataSubscriptions = [];\n\n if (Array.isArray(renderedSnapshot)) {\n !Array.isArray(currentSnapshot) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected snapshots to be plural. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n currentSnapshot.forEach(function (snapshot, idx) {\n dataSubscriptions.push(environment.subscribe(snapshot, function (latestSnapshot) {\n var storeEpoch = environment.getStore().getEpoch();\n\n _this2._updatePluralSnapshot(cacheKey, currentSnapshot, latestSnapshot, idx, storeEpoch);\n\n callback();\n }));\n });\n } else {\n !(currentSnapshot != null && !Array.isArray(currentSnapshot)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected snapshot to be singular. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n dataSubscriptions.push(environment.subscribe(currentSnapshot, function (latestSnapshot) {\n var storeEpoch = environment.getStore().getEpoch();\n\n _this2._cache.set(cacheKey, {\n kind: 'done',\n result: getFragmentResult(cacheKey, latestSnapshot, storeEpoch)\n });\n\n callback();\n }));\n }\n\n return {\n dispose: function dispose() {\n dataSubscriptions.map(function (s) {\n return s.dispose();\n });\n\n _this2._cache[\"delete\"](cacheKey);\n }\n };\n };\n\n _proto.subscribeSpec = function subscribeSpec(fragmentResults, callback) {\n var _this3 = this;\n\n var disposables = Object.keys(fragmentResults).map(function (key) {\n return _this3.subscribe(fragmentResults[key], callback);\n });\n return {\n dispose: function dispose() {\n disposables.forEach(function (disposable) {\n disposable.dispose();\n });\n }\n };\n };\n\n _proto.checkMissedUpdates = function checkMissedUpdates(fragmentResult) {\n var environment = this._environment;\n var renderedSnapshot = fragmentResult.snapshot;\n\n if (!renderedSnapshot) {\n return [false, null];\n }\n\n var storeEpoch = null; // Bail out if the store hasn't been written since last read\n\n storeEpoch = environment.getStore().getEpoch();\n\n if (fragmentResult.storeEpoch === storeEpoch) {\n return [false, fragmentResult.snapshot];\n }\n\n var cacheKey = fragmentResult.cacheKey;\n\n if (Array.isArray(renderedSnapshot)) {\n var didMissUpdates = false;\n var currentSnapshots = [];\n renderedSnapshot.forEach(function (snapshot, idx) {\n var currentSnapshot = environment.lookup(snapshot.selector);\n var renderData = snapshot.data;\n var currentData = currentSnapshot.data;\n var updatedData = recycleNodesInto(renderData, currentData);\n\n if (updatedData !== renderData) {\n currentSnapshot = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, currentSnapshot), {}, {\n data: updatedData\n });\n didMissUpdates = true;\n }\n\n currentSnapshots[idx] = currentSnapshot;\n }); // Only update the cache when the data is changed to avoid\n // returning different `data` instances\n\n if (didMissUpdates) {\n this._cache.set(cacheKey, {\n kind: 'done',\n result: getFragmentResult(cacheKey, currentSnapshots, storeEpoch)\n });\n }\n\n return [didMissUpdates, currentSnapshots];\n }\n\n var currentSnapshot = environment.lookup(renderedSnapshot.selector);\n var renderData = renderedSnapshot.data;\n var currentData = currentSnapshot.data;\n var updatedData = recycleNodesInto(renderData, currentData);\n var updatedCurrentSnapshot = {\n data: updatedData,\n isMissingData: currentSnapshot.isMissingData,\n seenRecords: currentSnapshot.seenRecords,\n selector: currentSnapshot.selector,\n missingRequiredFields: currentSnapshot.missingRequiredFields\n };\n\n if (updatedData !== renderData) {\n this._cache.set(cacheKey, {\n kind: 'done',\n result: getFragmentResult(cacheKey, updatedCurrentSnapshot, storeEpoch)\n });\n }\n\n return [updatedData !== renderData, updatedCurrentSnapshot];\n };\n\n _proto.checkMissedUpdatesSpec = function checkMissedUpdatesSpec(fragmentResults) {\n var _this4 = this;\n\n return Object.keys(fragmentResults).some(function (key) {\n return _this4.checkMissedUpdates(fragmentResults[key])[0];\n });\n };\n\n _proto._getAndSavePromiseForFragmentRequestInFlight = function _getAndSavePromiseForFragmentRequestInFlight(cacheKey, fragmentNode, fragmentOwner, fragmentResult) {\n var _this5 = this;\n\n var pendingOperationsResult = getPendingOperationsForFragment(this._environment, fragmentNode, fragmentOwner);\n\n if (pendingOperationsResult == null) {\n return null;\n } // When the Promise for the request resolves, we need to make sure to\n // update the cache with the latest data available in the store before\n // resolving the Promise\n\n\n var networkPromise = pendingOperationsResult.promise;\n var pendingOperations = pendingOperationsResult.pendingOperations;\n var promise = networkPromise.then(function () {\n _this5._cache[\"delete\"](cacheKey);\n })[\"catch\"](function (error) {\n _this5._cache[\"delete\"](cacheKey);\n }); // $FlowExpectedError[prop-missing] Expando to annotate Promises.\n\n promise.displayName = networkPromise.displayName;\n\n this._cache.set(cacheKey, {\n kind: 'pending',\n pendingOperations: pendingOperations,\n promise: promise,\n result: fragmentResult\n });\n\n return {\n promise: promise,\n pendingOperations: pendingOperations\n };\n };\n\n _proto._updatePluralSnapshot = function _updatePluralSnapshot(cacheKey, baseSnapshots, latestSnapshot, idx, storeEpoch) {\n var _currentFragmentResul;\n\n var currentFragmentResult = this._cache.get(cacheKey);\n\n if (isPromise(currentFragmentResult)) {\n reportInvalidCachedData(latestSnapshot.selector.node.name);\n return;\n }\n\n var currentSnapshot = currentFragmentResult === null || currentFragmentResult === void 0 ? void 0 : (_currentFragmentResul = currentFragmentResult.result) === null || _currentFragmentResul === void 0 ? void 0 : _currentFragmentResul.snapshot;\n\n if (currentSnapshot && !Array.isArray(currentSnapshot)) {\n reportInvalidCachedData(latestSnapshot.selector.node.name);\n return;\n }\n\n var nextSnapshots = currentSnapshot ? (0, _toConsumableArray2[\"default\"])(currentSnapshot) : (0, _toConsumableArray2[\"default\"])(baseSnapshots);\n nextSnapshots[idx] = latestSnapshot;\n\n this._cache.set(cacheKey, {\n kind: 'done',\n result: getFragmentResult(cacheKey, nextSnapshots, storeEpoch)\n });\n };\n\n return FragmentResourceImpl;\n}();\n\nfunction reportInvalidCachedData(nodeName) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to find cached data for plural fragment `%s` when ' + 'receiving a subscription. ' + \"If you're seeing this, this is likely a bug in Relay.\", nodeName) : invariant(false) : void 0;\n}\n\nfunction createFragmentResource(environment) {\n return new FragmentResourceImpl(environment);\n}\n\nvar dataResources = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\n\nfunction getFragmentResourceForEnvironment(environment) {\n var cached = dataResources.get(environment);\n\n if (cached) {\n return cached;\n }\n\n var newDataResource = createFragmentResource(environment);\n dataResources.set(environment, newDataResource);\n return newDataResource;\n}\n\nmodule.exports = {\n createFragmentResource: createFragmentResource,\n getFragmentResourceForEnvironment: getFragmentResourceForEnvironment\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 * @emails oncall+relay\n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\n/**\n * JS maps (both plain objects and Map) maintain key insertion\n * order, which means there is an easy way to simulate LRU behavior\n * that should also perform quite well:\n *\n * To insert a new value, first delete the key from the inner _map,\n * then _map.set(k, v). By deleting and reinserting, you ensure that the\n * map sees the key as the last inserted key.\n *\n * Get does the same: if the key is present, delete and reinsert it.\n */\nvar LRUCache = /*#__PURE__*/function () {\n function LRUCache(capacity) {\n this._capacity = capacity;\n !(this._capacity > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'LRUCache: Unable to create instance of cache with zero or negative capacity.') : invariant(false) : void 0;\n this._map = new Map();\n }\n\n var _proto = LRUCache.prototype;\n\n _proto.set = function set(key, value) {\n this._map[\"delete\"](key);\n\n this._map.set(key, value);\n\n if (this._map.size > this._capacity) {\n var firstKey = this._map.keys().next();\n\n if (!firstKey.done) {\n this._map[\"delete\"](firstKey.value);\n }\n }\n };\n\n _proto.get = function get(key) {\n var value = this._map.get(key);\n\n if (value != null) {\n this._map[\"delete\"](key);\n\n this._map.set(key, value);\n }\n\n return value;\n };\n\n _proto.has = function has(key) {\n return this._map.has(key);\n };\n\n _proto[\"delete\"] = function _delete(key) {\n this._map[\"delete\"](key);\n };\n\n _proto.size = function size() {\n return this._map.size;\n };\n\n _proto.capacity = function capacity() {\n return this._capacity - this._map.size;\n };\n\n _proto.clear = function clear() {\n this._map.clear();\n };\n\n return LRUCache;\n}();\n\nfunction create(capacity) {\n return new LRUCache(capacity);\n}\n\nmodule.exports = {\n create: create\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n// This contextual profiler can be used to wrap a react sub-tree. It will bind\n// the RelayProfiler during the render phase of these components. Allows\n// collecting metrics for a specific part of your application.\n'use strict';\n\nvar React = require('react');\n\nvar ProfilerContext = React.createContext({\n wrapPrepareQueryResource: function wrapPrepareQueryResource(cb) {\n return cb();\n }\n});\nmodule.exports = ProfilerContext;","/**\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 * @emails oncall+relay\n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar LRUCache = require('./LRUCache');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('relay-runtime'),\n isPromise = _require.isPromise;\n\nvar CACHE_CAPACITY = 1000;\nvar DEFAULT_FETCH_POLICY = 'store-or-network';\nvar DATA_RETENTION_TIMEOUT = 5 * 60 * 1000;\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\n\nfunction operationIsLiveQuery(operation) {\n return operation.request.node.params.metadata.live !== undefined;\n}\n\nfunction getQueryCacheIdentifier(environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker) {\n var fetchPolicy = maybeFetchPolicy !== null && maybeFetchPolicy !== void 0 ? maybeFetchPolicy : DEFAULT_FETCH_POLICY;\n var renderPolicy = maybeRenderPolicy !== null && maybeRenderPolicy !== void 0 ? maybeRenderPolicy : environment.UNSTABLE_getDefaultRenderPolicy();\n var cacheIdentifier = \"\".concat(fetchPolicy, \"-\").concat(renderPolicy, \"-\").concat(operation.request.identifier);\n\n if (cacheBreaker != null) {\n return \"\".concat(cacheIdentifier, \"-\").concat(cacheBreaker);\n }\n\n return cacheIdentifier;\n}\n\nfunction getQueryResult(operation, cacheIdentifier) {\n var rootFragmentRef = {\n __id: operation.fragment.dataID,\n __fragments: (0, _defineProperty2[\"default\"])({}, operation.fragment.node.name, operation.request.variables),\n __fragmentOwner: operation.request\n };\n return {\n cacheIdentifier: cacheIdentifier,\n fragmentNode: operation.request.node.fragment,\n fragmentRef: rootFragmentRef,\n operation: operation\n };\n}\n\nvar nextID = 200000;\n\nfunction createCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription, onDispose) {\n var isLiveQuery = operationIsLiveQuery(operation);\n var currentValue = value;\n var retainCount = 0;\n var retainDisposable = null;\n var _releaseTemporaryRetain = null;\n var currentNetworkSubscription = networkSubscription;\n\n var retain = function retain(environment) {\n retainCount++;\n\n if (retainCount === 1) {\n retainDisposable = environment.retain(operation);\n }\n\n return {\n dispose: function dispose() {\n retainCount = Math.max(0, retainCount - 1);\n\n if (retainCount === 0) {\n !(retainDisposable != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected disposable to release query to be defined.' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n retainDisposable.dispose();\n retainDisposable = null;\n }\n\n onDispose(cacheEntry);\n }\n };\n };\n\n var cacheEntry = {\n cacheIdentifier: cacheIdentifier,\n id: nextID++,\n processedPayloadsCount: 0,\n operationAvailability: operationAvailability,\n getValue: function getValue() {\n return currentValue;\n },\n setValue: function setValue(val) {\n currentValue = val;\n },\n getRetainCount: function getRetainCount() {\n return retainCount;\n },\n getNetworkSubscription: function getNetworkSubscription() {\n return currentNetworkSubscription;\n },\n setNetworkSubscription: function setNetworkSubscription(subscription) {\n if (isLiveQuery && currentNetworkSubscription != null) {\n currentNetworkSubscription.unsubscribe();\n }\n\n currentNetworkSubscription = subscription;\n },\n temporaryRetain: function temporaryRetain(environment) {\n // NOTE: If we're executing in a server environment, there's no need\n // to create temporary retains, since the component will never commit.\n if (environment.isServer()) {\n return {\n dispose: function dispose() {}\n };\n } // NOTE: temporaryRetain is called during the render phase. However,\n // given that we can't tell if this render will eventually commit or not,\n // we create a timer to autodispose of this retain in case the associated\n // component never commits.\n // If the component /does/ commit, permanentRetain will clear this timeout\n // and permanently retain the data.\n\n\n var disposable = retain(environment);\n var releaseQueryTimeout = null;\n\n var localReleaseTemporaryRetain = function localReleaseTemporaryRetain() {\n clearTimeout(releaseQueryTimeout);\n releaseQueryTimeout = null;\n _releaseTemporaryRetain = null;\n disposable.dispose(); // Normally if this entry never commits, the request would've ended by the\n // time this timeout expires and the temporary retain is released. However,\n // we need to do this for live queries which remain open indefinitely.\n\n if (isLiveQuery && retainCount <= 0 && currentNetworkSubscription != null) {\n currentNetworkSubscription.unsubscribe();\n }\n };\n\n releaseQueryTimeout = setTimeout(localReleaseTemporaryRetain, DATA_RETENTION_TIMEOUT); // NOTE: Since temporaryRetain can be called multiple times, we release\n // the previous temporary retain after we re-establish a new one, since\n // we only ever need a single temporary retain until the permanent retain is\n // established.\n // temporaryRetain may be called multiple times by React during the render\n // phase, as well as multiple times by other query components that are\n // rendering the same query/variables.\n\n if (_releaseTemporaryRetain != null) {\n _releaseTemporaryRetain();\n }\n\n _releaseTemporaryRetain = localReleaseTemporaryRetain;\n return {\n dispose: function dispose() {\n _releaseTemporaryRetain && _releaseTemporaryRetain();\n }\n };\n },\n permanentRetain: function permanentRetain(environment) {\n var disposable = retain(environment);\n\n if (_releaseTemporaryRetain != null) {\n _releaseTemporaryRetain();\n\n _releaseTemporaryRetain = null;\n }\n\n return {\n dispose: function dispose() {\n disposable.dispose();\n\n if (isLiveQuery && retainCount <= 0 && currentNetworkSubscription != null) {\n currentNetworkSubscription.unsubscribe();\n }\n }\n };\n },\n releaseTemporaryRetain: function releaseTemporaryRetain() {\n if (_releaseTemporaryRetain != null) {\n _releaseTemporaryRetain();\n\n _releaseTemporaryRetain = null;\n }\n }\n };\n return cacheEntry;\n}\n\nvar QueryResourceImpl = /*#__PURE__*/function () {\n function QueryResourceImpl(environment) {\n var _this = this;\n\n (0, _defineProperty2[\"default\"])(this, \"_clearCacheEntry\", function (cacheEntry) {\n if (cacheEntry.getRetainCount() <= 0) {\n _this._cache[\"delete\"](cacheEntry.cacheIdentifier);\n }\n });\n this._environment = environment;\n this._cache = LRUCache.create(CACHE_CAPACITY);\n }\n\n var _proto = QueryResourceImpl.prototype;\n\n _proto.prepare = function prepare(operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, cacheBreaker, profilerContext) {\n var cacheIdentifier = getQueryCacheIdentifier(this._environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker);\n return this.prepareWithIdentifier(cacheIdentifier, operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, profilerContext);\n }\n /**\n * This function should be called during a Component's render function,\n * to either read an existing cached value for the query, or fetch the query\n * and suspend.\n */\n ;\n\n _proto.prepareWithIdentifier = function prepareWithIdentifier(cacheIdentifier, operation, fetchObservable, maybeFetchPolicy, maybeRenderPolicy, observer, profilerContext) {\n var environment = this._environment;\n var fetchPolicy = maybeFetchPolicy !== null && maybeFetchPolicy !== void 0 ? maybeFetchPolicy : DEFAULT_FETCH_POLICY;\n var renderPolicy = maybeRenderPolicy !== null && maybeRenderPolicy !== void 0 ? maybeRenderPolicy : environment.UNSTABLE_getDefaultRenderPolicy(); // 1. Check if there's a cached value for this operation, and reuse it if\n // it's available\n\n var cacheEntry = this._cache.get(cacheIdentifier);\n\n var temporaryRetainDisposable = null;\n var entryWasCached = cacheEntry != null;\n\n if (cacheEntry == null) {\n // 2. If a cached value isn't available, try fetching the operation.\n // _fetchAndSaveQuery will update the cache with either a Promise or\n // an Error to throw, or a QueryResult to return.\n cacheEntry = this._fetchAndSaveQuery(cacheIdentifier, operation, fetchObservable, fetchPolicy, renderPolicy, profilerContext, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n unsubscribe: function unsubscribe(subscription) {\n // 4. If the request is cancelled, make sure to dispose\n // of the temporary retain; this will ensure that a promise\n // doesn't remain unnecessarily cached until the temporary retain\n // expires. Not clearing the temporary retain might cause the\n // query to incorrectly re-suspend.\n if (temporaryRetainDisposable != null) {\n temporaryRetainDisposable.dispose();\n }\n\n var observerUnsubscribe = observer === null || observer === void 0 ? void 0 : observer.unsubscribe;\n observerUnsubscribe && observerUnsubscribe(subscription);\n }\n }));\n } // 3. Temporarily retain here in render phase. When the component reading\n // the operation is committed, we will transfer ownership of data retention\n // to the component.\n // In case the component never commits (mounts or updates) from this render,\n // this data retention hold will auto-release itself after a timeout.\n\n\n temporaryRetainDisposable = cacheEntry.temporaryRetain(environment);\n var cachedValue = cacheEntry.getValue();\n\n if (isPromise(cachedValue)) {\n environment.__log({\n name: 'suspense.query',\n fetchPolicy: fetchPolicy,\n isPromiseCached: entryWasCached,\n operation: operation,\n queryAvailability: cacheEntry.operationAvailability,\n renderPolicy: renderPolicy\n });\n\n throw cachedValue;\n }\n\n if (cachedValue instanceof Error) {\n throw cachedValue;\n }\n\n return cachedValue;\n }\n /**\n * This function should be called during a component's commit phase\n * (e.g. inside useEffect), in order to retain the operation in the Relay store\n * and transfer ownership of the operation to the component lifecycle.\n */\n ;\n\n _proto.retain = function retain(queryResult, profilerContext) {\n var environment = this._environment;\n var cacheIdentifier = queryResult.cacheIdentifier,\n operation = queryResult.operation;\n\n var cacheEntry = this._getOrCreateCacheEntry(cacheIdentifier, operation, null, queryResult, null);\n\n var disposable = cacheEntry.permanentRetain(environment);\n\n environment.__log({\n name: 'queryresource.retain',\n profilerContext: profilerContext,\n resourceID: cacheEntry.id\n });\n\n return {\n dispose: function dispose() {\n disposable.dispose();\n }\n };\n };\n\n _proto.releaseTemporaryRetain = function releaseTemporaryRetain(queryResult) {\n var cacheEntry = this._cache.get(queryResult.cacheIdentifier);\n\n if (cacheEntry != null) {\n cacheEntry.releaseTemporaryRetain();\n }\n };\n\n _proto.TESTS_ONLY__getCacheEntry = function TESTS_ONLY__getCacheEntry(operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker) {\n var environment = this._environment;\n var cacheIdentifier = getQueryCacheIdentifier(environment, operation, maybeFetchPolicy, maybeRenderPolicy, cacheBreaker);\n return this._cache.get(cacheIdentifier);\n };\n\n _proto._getOrCreateCacheEntry = function _getOrCreateCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription) {\n var cacheEntry = this._cache.get(cacheIdentifier);\n\n if (cacheEntry == null) {\n cacheEntry = createCacheEntry(cacheIdentifier, operation, operationAvailability, value, networkSubscription, this._clearCacheEntry);\n\n this._cache.set(cacheIdentifier, cacheEntry);\n }\n\n return cacheEntry;\n };\n\n _proto._fetchAndSaveQuery = function _fetchAndSaveQuery(cacheIdentifier, operation, fetchObservable, fetchPolicy, renderPolicy, profilerContext, observer) {\n var _this2 = this;\n\n var environment = this._environment; // NOTE: Running `check` will write missing data to the store using any\n // missing data handlers specified on the environment;\n // We run it here first to make the handlers get a chance to populate\n // missing data.\n\n var queryAvailability = environment.check(operation);\n var queryStatus = queryAvailability.status;\n var hasFullQuery = queryStatus === 'available';\n var canPartialRender = hasFullQuery || renderPolicy === 'partial' && queryStatus !== 'stale';\n var shouldFetch;\n var shouldAllowRender;\n\n var resolveNetworkPromise = function resolveNetworkPromise() {};\n\n switch (fetchPolicy) {\n case 'store-only':\n {\n shouldFetch = false;\n shouldAllowRender = true;\n break;\n }\n\n case 'store-or-network':\n {\n shouldFetch = !hasFullQuery;\n shouldAllowRender = canPartialRender;\n break;\n }\n\n case 'store-and-network':\n {\n shouldFetch = true;\n shouldAllowRender = canPartialRender;\n break;\n }\n\n case 'network-only':\n default:\n {\n shouldFetch = true;\n shouldAllowRender = false;\n break;\n }\n } // NOTE: If this value is false, we will cache a promise for this\n // query, which means we will suspend here at this query root.\n // If it's true, we will cache the query resource and allow rendering to\n // continue.\n\n\n if (shouldAllowRender) {\n var queryResult = getQueryResult(operation, cacheIdentifier);\n\n var _cacheEntry = createCacheEntry(cacheIdentifier, operation, queryAvailability, queryResult, null, this._clearCacheEntry);\n\n this._cache.set(cacheIdentifier, _cacheEntry);\n }\n\n if (shouldFetch) {\n var _queryResult = getQueryResult(operation, cacheIdentifier);\n\n var networkSubscription;\n fetchObservable.subscribe({\n start: function start(subscription) {\n networkSubscription = subscription;\n\n var cacheEntry = _this2._cache.get(cacheIdentifier);\n\n if (cacheEntry) {\n cacheEntry.setNetworkSubscription(networkSubscription);\n }\n\n var observerStart = observer === null || observer === void 0 ? void 0 : observer.start;\n\n if (observerStart) {\n var subscriptionWithConditionalCancelation = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, subscription), {}, {\n unsubscribe: function unsubscribe() {\n // Only live queries should have their network requests canceled.\n if (operationIsLiveQuery(operation)) {\n subscription.unsubscribe();\n }\n }\n });\n observerStart(subscriptionWithConditionalCancelation);\n }\n },\n next: function next() {\n var cacheEntry = _this2._getOrCreateCacheEntry(cacheIdentifier, operation, queryAvailability, _queryResult, networkSubscription);\n\n cacheEntry.processedPayloadsCount += 1;\n cacheEntry.setValue(_queryResult);\n resolveNetworkPromise();\n var observerNext = observer === null || observer === void 0 ? void 0 : observer.next;\n\n if (observerNext != null) {\n var snapshot = environment.lookup(operation.fragment);\n observerNext(snapshot);\n }\n },\n error: function error(_error) {\n var cacheEntry = _this2._getOrCreateCacheEntry(cacheIdentifier, operation, queryAvailability, _error, networkSubscription); // If, this is the first thing we receive for the query,\n // before any other payload handled is error, we will cache and\n // re-throw that error later.\n // We will ignore errors for any incremental payloads we receive.\n\n\n if (cacheEntry.processedPayloadsCount === 0) {\n cacheEntry.setValue(_error);\n } else {\n // TODO:T92030819 Remove this warning and actually throw the network error\n // To complete this task we need to have a way of precisely tracking suspendable points\n process.env.NODE_ENV !== \"production\" ? warning(false, 'QueryResource: An incremental payload for query `%` returned an error: `%`:`%`.', operation.fragment.node.name, _error.message, _error.stack) : void 0;\n }\n\n resolveNetworkPromise();\n networkSubscription = null;\n cacheEntry.setNetworkSubscription(null);\n var observerError = observer === null || observer === void 0 ? void 0 : observer.error;\n observerError && observerError(_error);\n },\n complete: function complete() {\n resolveNetworkPromise();\n networkSubscription = null;\n\n var cacheEntry = _this2._cache.get(cacheIdentifier);\n\n if (cacheEntry) {\n cacheEntry.setNetworkSubscription(null);\n }\n\n var observerComplete = observer === null || observer === void 0 ? void 0 : observer.complete;\n observerComplete && observerComplete();\n },\n unsubscribe: observer === null || observer === void 0 ? void 0 : observer.unsubscribe\n });\n\n var _cacheEntry2 = this._cache.get(cacheIdentifier);\n\n if (!_cacheEntry2) {\n var networkPromise = new Promise(function (resolve) {\n resolveNetworkPromise = resolve;\n }); // $FlowExpectedError[prop-missing] Expando to annotate Promises.\n\n networkPromise.displayName = 'Relay(' + operation.fragment.node.name + ')';\n _cacheEntry2 = createCacheEntry(cacheIdentifier, operation, queryAvailability, networkPromise, networkSubscription, this._clearCacheEntry);\n\n this._cache.set(cacheIdentifier, _cacheEntry2);\n }\n } else {\n var observerComplete = observer === null || observer === void 0 ? void 0 : observer.complete;\n observerComplete && observerComplete();\n }\n\n var cacheEntry = this._cache.get(cacheIdentifier);\n\n !(cacheEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to have cached a result when attempting to fetch query.' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n\n environment.__log({\n name: 'queryresource.fetch',\n resourceID: cacheEntry.id,\n operation: operation,\n profilerContext: profilerContext,\n fetchPolicy: fetchPolicy,\n renderPolicy: renderPolicy,\n queryAvailability: queryAvailability,\n shouldFetch: shouldFetch\n });\n\n return cacheEntry;\n };\n\n return QueryResourceImpl;\n}();\n\nfunction createQueryResource(environment) {\n return new QueryResourceImpl(environment);\n}\n\nvar dataResources = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\n\nfunction getQueryResourceForEnvironment(environment) {\n var cached = dataResources.get(environment);\n\n if (cached) {\n return cached;\n }\n\n var newDataResource = createQueryResource(environment);\n dataResources.set(environment, newDataResource);\n return newDataResource;\n}\n\nmodule.exports = {\n createQueryResource: createQueryResource,\n getQueryResourceForEnvironment: getQueryResourceForEnvironment,\n getQueryCacheIdentifier: getQueryCacheIdentifier\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar ReactRelayContext = require('react-relay/ReactRelayContext');\n\nvar useMemo = React.useMemo;\n\nfunction RelayEnvironmentProvider(props) {\n var children = props.children,\n environment = props.environment,\n getEnvironmentForActor = props.getEnvironmentForActor;\n var context = useMemo(function () {\n return {\n environment: environment,\n getEnvironmentForActor: getEnvironmentForActor\n };\n }, [environment, getEnvironmentForActor]);\n return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {\n value: context\n }, children);\n}\n\nmodule.exports = RelayEnvironmentProvider;","/**\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 * @format\n * @emails oncall+relay\n */\n'use strict';\n\nvar _require = require('./loadQuery'),\n loadQuery = _require.loadQuery;\n\nfunction loadEntryPoint(environmentProvider, entryPoint, entryPointParams) {\n // Start loading the code for the entrypoint\n var loadingPromise = null;\n\n if (entryPoint.root.getModuleIfRequired() == null) {\n loadingPromise = entryPoint.root.load();\n }\n\n var preloadProps = entryPoint.getPreloadProps(entryPointParams);\n var queries = preloadProps.queries,\n entryPoints = preloadProps.entryPoints,\n extraProps = preloadProps.extraProps;\n var preloadedQueries = {};\n var preloadedEntryPoints = {};\n\n if (queries != null) {\n var queriesPropNames = Object.keys(queries);\n queriesPropNames.forEach(function (queryPropName) {\n var _queries$queryPropNam = queries[queryPropName],\n environmentProviderOptions = _queries$queryPropNam.environmentProviderOptions,\n options = _queries$queryPropNam.options,\n parameters = _queries$queryPropNam.parameters,\n variables = _queries$queryPropNam.variables;\n var environment = environmentProvider.getEnvironment(environmentProviderOptions);\n preloadedQueries[queryPropName] = loadQuery(environment, parameters, variables, {\n fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,\n networkCacheConfig: options === null || options === void 0 ? void 0 : options.networkCacheConfig,\n __nameForWarning: 'loadEntryPoint'\n }, environmentProviderOptions);\n });\n }\n\n if (entryPoints != null) {\n var entryPointPropNames = Object.keys(entryPoints);\n entryPointPropNames.forEach(function (entryPointPropName) {\n var entryPointDescription = entryPoints[entryPointPropName];\n\n if (entryPointDescription == null) {\n return;\n }\n\n var nestedEntryPoint = entryPointDescription.entryPoint,\n nestedParams = entryPointDescription.entryPointParams;\n preloadedEntryPoints[entryPointPropName] = loadEntryPoint(environmentProvider, nestedEntryPoint, nestedParams);\n });\n }\n\n var isDisposed = false;\n return {\n dispose: function dispose() {\n if (isDisposed) {\n return;\n }\n\n if (preloadedQueries != null) {\n Object.values(preloadedQueries).forEach(function (_ref) {\n var innerDispose = _ref.dispose;\n innerDispose();\n });\n }\n\n if (preloadedEntryPoints != null) {\n Object.values(preloadedEntryPoints).forEach(function (_ref2) {\n var innerDispose = _ref2.dispose;\n innerDispose();\n });\n }\n\n isDisposed = true;\n },\n entryPoints: preloadedEntryPoints,\n extraProps: extraProps !== null && extraProps !== void 0 ? extraProps : null,\n getComponent: function getComponent() {\n var component = entryPoint.root.getModuleIfRequired();\n\n if (component == null) {\n var _loadingPromise;\n\n loadingPromise = (_loadingPromise = loadingPromise) !== null && _loadingPromise !== void 0 ? _loadingPromise : entryPoint.root.load();\n throw loadingPromise;\n } // $FlowFixMe[incompatible-cast] - trust me Flow, its entryPoint component\n\n\n return component;\n },\n\n // $FlowFixMe[unsafe-getters-setters] - this has no side effects\n get isDisposed() {\n return isDisposed;\n },\n\n queries: preloadedQueries,\n rootModuleID: entryPoint.root.getModuleId()\n };\n}\n\nmodule.exports = loadEntryPoint;","/**\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 * @format\n * @emails oncall+relay\n */\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar React = require('react');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('relay-runtime'),\n PreloadableQueryRegistry = _require.PreloadableQueryRegistry,\n ReplaySubject = _require.ReplaySubject,\n createOperationDescriptor = _require.createOperationDescriptor,\n getRequest = _require.getRequest,\n getRequestIdentifier = _require.getRequestIdentifier,\n Observable = _require.Observable,\n RelayFeatureFlags = _require.RelayFeatureFlags,\n fetchQueryDeduped = _require.__internal.fetchQueryDeduped;\n\nvar RenderDispatcher = null;\nvar fetchKey = 100001;\n\nfunction useTrackLoadQueryInRender() {\n if (RenderDispatcher === null) {\n var _React$__SECRET_INTER, _React$__SECRET_INTER2;\n\n // Flow does not know of React internals (rightly so), but we need to\n // ensure here that this function isn't called inside render.\n RenderDispatcher = // $FlowFixMe[prop-missing]\n (_React$__SECRET_INTER = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React$__SECRET_INTER === void 0 ? void 0 : (_React$__SECRET_INTER2 = _React$__SECRET_INTER.ReactCurrentDispatcher) === null || _React$__SECRET_INTER2 === void 0 ? void 0 : _React$__SECRET_INTER2.current;\n }\n}\n\nfunction loadQuery(environment, preloadableRequest, variables, options, environmentProviderOptions) {\n var _React$__SECRET_INTER3, _React$__SECRET_INTER4, _options$__nameForWar, _options$fetchPolicy;\n\n // This code ensures that we don't call loadQuery during render.\n var CurrentDispatcher = // $FlowFixMe[prop-missing]\n (_React$__SECRET_INTER3 = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === null || _React$__SECRET_INTER3 === void 0 ? void 0 : (_React$__SECRET_INTER4 = _React$__SECRET_INTER3.ReactCurrentDispatcher) === null || _React$__SECRET_INTER4 === void 0 ? void 0 : _React$__SECRET_INTER4.current;\n process.env.NODE_ENV !== \"production\" ? warning(RenderDispatcher == null || CurrentDispatcher !== RenderDispatcher, 'Relay: `%s` should not be called inside a React render function.', (_options$__nameForWar = options === null || options === void 0 ? void 0 : options.__nameForWarning) !== null && _options$__nameForWar !== void 0 ? _options$__nameForWar : 'loadQuery') : void 0; // Every time you call loadQuery, we will generate a new fetchKey.\n // This will ensure that every query reference that is created and\n // passed to usePreloadedQuery is independently evaluated,\n // even if they are for the same query/variables.\n // Specifically, we want to avoid a case where we try to refetch a\n // query by calling loadQuery a second time, and have the Suspense\n // cache in usePreloadedQuery reuse the cached result instead of\n // re-evaluating the new query ref and triggering a refetch if\n // necessary.\n\n fetchKey++;\n var fetchPolicy = (_options$fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy) !== null && _options$fetchPolicy !== void 0 ? _options$fetchPolicy : 'store-or-network';\n var networkCacheConfig = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, options === null || options === void 0 ? void 0 : options.networkCacheConfig), {}, {\n force: true\n }); // executeWithNetworkSource will retain and execute an operation\n // against the Relay store, given an Observable that would provide\n // the network events for the operation.\n\n var retainReference;\n var didExecuteNetworkSource = false;\n\n var executeWithNetworkSource = function executeWithNetworkSource(operation, networkObservable) {\n didExecuteNetworkSource = true;\n return environment.executeWithSource({\n operation: operation,\n source: networkObservable\n });\n }; // N.B. For loadQuery, we unconventionally want to return an Observable\n // that isn't lazily executed, meaning that we don't want to wait\n // until the returned Observable is subscribed to to actually start\n // fetching and executing an operation; i.e. we want to execute the\n // operation eagerly, when loadQuery is called.\n // For this reason, we use an intermediate executionSubject which\n // allows us to capture the events that occur during the eager execution\n // of the operation, and then replay them to the Observable we\n // ultimately return.\n\n\n var executionSubject = new ReplaySubject();\n var returnedObservable = Observable.create(function (sink) {\n return executionSubject.subscribe(sink);\n });\n var unsubscribeFromNetworkRequest;\n var networkError = null; // makeNetworkRequest will immediately start a raw network request if\n // one isn't already in flight and return an Observable that when\n // subscribed to will replay the network events that have occured so far,\n // as well as subsequent events.\n\n var didMakeNetworkRequest = false;\n\n var makeNetworkRequest = function makeNetworkRequest(params) {\n // N.B. this function is called synchronously or not at all\n // didMakeNetworkRequest is safe to rely on in the returned value\n // Even if the request gets deduped below, we still wan't to return an\n // observable that provides the replayed network events for the query,\n // so we set this to true before deduping, to guarantee that the\n // `source` observable is returned.\n didMakeNetworkRequest = true;\n var observable;\n var subject = new ReplaySubject();\n\n if (RelayFeatureFlags.ENABLE_LOAD_QUERY_REQUEST_DEDUPING === true) {\n // Here, we are calling fetchQueryDeduped at the network layer level,\n // which ensures that only a single network request is active for a given\n // (environment, identifier) pair.\n // Since network requests can be started /before/ we have the query ast\n // necessary to process the results, we need to dedupe the raw requests\n // separately from deduping the operation execution; specifically,\n // if `loadQuery` is called multiple times before the query ast is available,\n // we still want the network request to be deduped.\n // - If a duplicate active network request is found, it will return an\n // Observable that replays the events of the already active request.\n // - If no duplicate active network request is found, it will call the fetchFn\n // to start the request, and return an Observable that will replay\n // the events from the network request.\n // We provide an extra key to the identifier to distinguish deduping\n // of raw network requests vs deduping of operation executions.\n var identifier = 'raw-network-request-' + getRequestIdentifier(params, variables);\n observable = fetchQueryDeduped(environment, identifier, function () {\n var network = environment.getNetwork();\n return network.execute(params, variables, networkCacheConfig);\n });\n } else {\n var network = environment.getNetwork();\n observable = network.execute(params, variables, networkCacheConfig);\n }\n\n var _observable$subscribe = observable.subscribe({\n error: function error(err) {\n networkError = err;\n subject.error(err);\n },\n next: function next(data) {\n subject.next(data);\n },\n complete: function complete() {\n subject.complete();\n }\n }),\n unsubscribe = _observable$subscribe.unsubscribe;\n\n unsubscribeFromNetworkRequest = unsubscribe;\n return Observable.create(function (sink) {\n var subjectSubscription = subject.subscribe(sink);\n return function () {\n subjectSubscription.unsubscribe();\n unsubscribeFromNetworkRequest();\n };\n });\n };\n\n var unsubscribeFromExecution;\n\n var executeDeduped = function executeDeduped(operation, fetchFn) {\n if (RelayFeatureFlags.ENABLE_LOAD_QUERY_REQUEST_DEDUPING === true) {\n // N.B. at this point, if we're calling execute with a query ast (OperationDescriptor),\n // we are guaranteed to have started a network request. We set this to\n // true here as well since `makeNetworkRequest` might get skipped in the case\n // where the query ast is already available and the query executions get deduped.\n // Even if the execution gets deduped below, we still wan't to return\n // an observable that provides the replayed network events for the query,\n // so we set this to true before deduping, to guarantee that the `source`\n // observable is returned.\n didMakeNetworkRequest = true;\n } // Here, we are calling fetchQueryDeduped, which ensures that only\n // a single operation is active for a given (environment, identifier) pair,\n // and also tracks the active state of the operation, which is necessary\n // for our Suspense infra to later be able to suspend (or not) on\n // active operations. Even though we already dedupe raw network requests,\n // we also need to dedupe and keep track operation execution for our Suspense\n // infra, and we also want to avoid processing responses more than once, for\n // the cases where `loadQuery` might be called multiple times after the query ast\n // is available.\n // - If a duplicate active operation is found, it will return an\n // Observable that replays the events of the already active operation.\n // - If no duplicate active operation is found, it will call the fetchFn\n // to execute the operation, and return an Observable that will provide\n // the events for executing the operation.\n\n\n var _fetchQueryDeduped$su = fetchQueryDeduped(environment, operation.request.identifier, fetchFn).subscribe({\n error: function error(err) {\n executionSubject.error(err);\n },\n next: function next(data) {\n executionSubject.next(data);\n },\n complete: function complete() {\n executionSubject.complete();\n }\n });\n\n unsubscribeFromExecution = _fetchQueryDeduped$su.unsubscribe;\n };\n\n var checkAvailabilityAndExecute = function checkAvailabilityAndExecute(concreteRequest) {\n var operation = createOperationDescriptor(concreteRequest, variables, networkCacheConfig);\n retainReference = environment.retain(operation);\n\n if (fetchPolicy === 'store-only') {\n return;\n } // N.B. If the fetch policy allows fulfillment from the store but the\n // environment already has the data for that operation cached in the store,\n // then we do nothing.\n\n\n var shouldFetch = fetchPolicy !== 'store-or-network' || environment.check(operation).status !== 'available';\n\n if (shouldFetch) {\n executeDeduped(operation, function () {\n // N.B. Since we have the operation synchronously available here,\n // we can immediately fetch and execute the operation.\n var networkObservable = makeNetworkRequest(concreteRequest.params);\n var executeObservable = executeWithNetworkSource(operation, networkObservable);\n return executeObservable;\n });\n }\n };\n\n var params;\n var cancelOnLoadCallback;\n var queryId;\n\n if (preloadableRequest.kind === 'PreloadableConcreteRequest') {\n var preloadableConcreteRequest = preloadableRequest;\n params = preloadableConcreteRequest.params;\n var _params = params;\n queryId = _params.id;\n !(queryId !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: `loadQuery` requires that preloadable query `%s` has a persisted query id', params.name) : invariant(false) : void 0;\n\n var _module = PreloadableQueryRegistry.get(queryId);\n\n if (_module != null) {\n checkAvailabilityAndExecute(_module);\n } else {\n // If the module isn't synchronously available, we launch the\n // network request immediately if the fetchPolicy might produce\n // a network fetch, regardless of the state of the store cache. We\n // do this because we can't check if a query is cached without the\n // ast, and we know that if we don't have the query ast\n // available, then this query could've never been written to the\n // store in the first place, so it couldn't have been cached.\n var networkObservable = fetchPolicy === 'store-only' ? null : makeNetworkRequest(params); // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n\n var _PreloadableQueryRegi = PreloadableQueryRegistry.onLoad( // $FlowFixMe[incompatible-call]\n queryId, function (preloadedModule) {\n cancelOnLoadCallback();\n var operation = createOperationDescriptor(preloadedModule, variables, networkCacheConfig);\n retainReference = environment.retain(operation);\n\n if (networkObservable != null) {\n executeDeduped(operation, function () {\n return executeWithNetworkSource(operation, networkObservable);\n });\n }\n });\n\n cancelOnLoadCallback = _PreloadableQueryRegi.dispose;\n }\n } else {\n var graphQlTaggedNode = preloadableRequest;\n var request = getRequest(graphQlTaggedNode);\n params = request.params;\n queryId = params.cacheID != null ? params.cacheID : params.id;\n checkAvailabilityAndExecute(request);\n }\n\n var isDisposed = false;\n var isReleased = false;\n var isNetworkRequestCancelled = false;\n\n var releaseQuery = function releaseQuery() {\n if (isReleased) {\n return;\n }\n\n retainReference && retainReference.dispose();\n isReleased = true;\n };\n\n var cancelNetworkRequest = function cancelNetworkRequest() {\n if (isNetworkRequestCancelled) {\n return;\n }\n\n if (didExecuteNetworkSource) {\n unsubscribeFromExecution && unsubscribeFromExecution();\n } else {\n unsubscribeFromNetworkRequest && unsubscribeFromNetworkRequest();\n }\n\n cancelOnLoadCallback && cancelOnLoadCallback();\n isNetworkRequestCancelled = true;\n };\n\n return {\n kind: 'PreloadedQuery',\n environment: environment,\n environmentProviderOptions: environmentProviderOptions,\n dispose: function dispose() {\n if (isDisposed) {\n return;\n }\n\n releaseQuery();\n cancelNetworkRequest();\n isDisposed = true;\n },\n releaseQuery: releaseQuery,\n cancelNetworkRequest: cancelNetworkRequest,\n fetchKey: fetchKey,\n id: queryId,\n\n // $FlowFixMe[unsafe-getters-setters] - this has no side effects\n get isDisposed() {\n return isDisposed || isReleased;\n },\n\n // $FlowFixMe[unsafe-getters-setters] - this has no side effects\n get networkError() {\n return networkError;\n },\n\n name: params.name,\n networkCacheConfig: networkCacheConfig,\n fetchPolicy: fetchPolicy,\n source: didMakeNetworkRequest ? returnedObservable : undefined,\n variables: variables\n };\n}\n\nmodule.exports = {\n loadQuery: loadQuery,\n useTrackLoadQueryInRender: useTrackLoadQueryInRender\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar loadEntryPoint = require('./loadEntryPoint');\n\nvar useIsMountedRef = require('./useIsMountedRef');\n\nvar _require = require('./loadQuery'),\n useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\n\nvar _require2 = require('react'),\n useCallback = _require2.useCallback,\n useEffect = _require2.useEffect,\n useRef = _require2.useRef,\n useState = _require2.useState;\n\nvar initialNullEntryPointReferenceState = {\n kind: 'NullEntryPointReference'\n};\n\nfunction useLoadEntryPoint(environmentProvider, entryPoint, options) {\n var _options$TEST_ONLY__i, _options$TEST_ONLY__i2, _options$TEST_ONLY__i3, _options$TEST_ONLY__i4;\n\n /**\n * We want to always call `entryPointReference.dispose()` for every call to\n * `setEntryPointReference(loadEntryPoint(...))` so that no leaks of data in Relay\n * stores will occur.\n *\n * However, a call to `setState(newState)` is not always followed by a commit where\n * this value is reflected in the state. Thus, we cannot reliably clean up each ref\n * with `useEffect(() => () => entryPointReference.dispose(), [entryPointReference])`.\n *\n * Instead, we keep track of each call to `loadEntryPoint` in a ref.\n * Relying on the fact that if a state change commits, no state changes that were\n * initiated prior to the currently committing state change will ever subsequently\n * commit, we can safely dispose of all preloaded entry point references\n * associated with state changes initiated prior to the currently committing state\n * change.\n *\n * Finally, when the hook unmounts, we also dispose of all remaining uncommitted\n * entry point references.\n */\n useTrackLoadQueryInRender();\n var initialEntryPointReferenceInternal = (_options$TEST_ONLY__i = options === null || options === void 0 ? void 0 : (_options$TEST_ONLY__i2 = options.TEST_ONLY__initialEntryPointData) === null || _options$TEST_ONLY__i2 === void 0 ? void 0 : _options$TEST_ONLY__i2.entryPointReference) !== null && _options$TEST_ONLY__i !== void 0 ? _options$TEST_ONLY__i : initialNullEntryPointReferenceState;\n var initialEntryPointParamsInternal = (_options$TEST_ONLY__i3 = options === null || options === void 0 ? void 0 : (_options$TEST_ONLY__i4 = options.TEST_ONLY__initialEntryPointData) === null || _options$TEST_ONLY__i4 === void 0 ? void 0 : _options$TEST_ONLY__i4.entryPointParams) !== null && _options$TEST_ONLY__i3 !== void 0 ? _options$TEST_ONLY__i3 : null;\n var isMountedRef = useIsMountedRef();\n var undisposedEntryPointReferencesRef = useRef(new Set([initialEntryPointReferenceInternal]));\n\n var _useState = useState(initialEntryPointReferenceInternal),\n entryPointReference = _useState[0],\n setEntryPointReference = _useState[1];\n\n var _useState2 = useState(initialEntryPointParamsInternal),\n entryPointParams = _useState2[0],\n setEntryPointParams = _useState2[1];\n\n var disposeEntryPoint = useCallback(function () {\n if (isMountedRef.current) {\n var nullEntryPointReference = {\n kind: 'NullEntryPointReference'\n };\n undisposedEntryPointReferencesRef.current.add(nullEntryPointReference);\n setEntryPointReference(nullEntryPointReference);\n }\n }, [setEntryPointReference, isMountedRef]);\n var entryPointLoaderCallback = useCallback(function (params) {\n if (isMountedRef.current) {\n var updatedEntryPointReference = loadEntryPoint(environmentProvider, entryPoint, params);\n undisposedEntryPointReferencesRef.current.add(updatedEntryPointReference);\n setEntryPointReference(updatedEntryPointReference);\n setEntryPointParams(params);\n }\n }, [environmentProvider, entryPoint, setEntryPointReference, isMountedRef]);\n var maybeHiddenOrFastRefresh = useRef(false);\n useEffect(function () {\n return function () {\n // Attempt to detect if the component was\n // hidden (by Offscreen API), or fast refresh occured;\n // Only in these situations would the effect cleanup\n // for \"unmounting\" run multiple times, so if\n // we are ever able to read this ref with a value\n // of true, it means that one of these cases\n // has happened.\n maybeHiddenOrFastRefresh.current = true;\n };\n }, []);\n useEffect(function () {\n if (maybeHiddenOrFastRefresh.current === true) {\n // This block only runs if the component has previously \"unmounted\"\n // due to it being hidden by the Offscreen API, or during fast refresh.\n // At this point, the current entryPointReference will have been disposed\n // by the previous cleanup, so instead of attempting to\n // do our regular commit setup, which would incorrectly leave our\n // current entryPointReference disposed, we need to load the entryPoint again\n // and force a re-render by calling entryPointLoaderCallback again,\n // so that the entryPointReference's queries are correctly re-retained, and\n // potentially refetched if necessary.\n maybeHiddenOrFastRefresh.current = false;\n\n if (entryPointReference.kind !== 'NullEntryPointReference' && entryPointParams != null) {\n entryPointLoaderCallback(entryPointParams);\n }\n\n return;\n } // When a new entryPointReference is committed, we iterate over all\n // entrypoint refs in undisposedEntryPointReferences and dispose all of\n // the refs that aren't the currently committed one. This ensures\n // that we don't leave any dangling entrypoint references for the\n // case that loadEntryPoint is called multiple times before commit; when\n // this happens, multiple state updates will be scheduled, but only one\n // will commit, meaning that we need to keep track of and dispose any\n // query references that don't end up committing.\n // - We are relying on the fact that sets iterate in insertion order, and we\n // can remove items from a set as we iterate over it (i.e. no iterator\n // invalidation issues.) Thus, it is safe to loop through\n // undisposedEntryPointReferences until we find entryPointReference, and\n // remove and dispose all previous references.\n // - We are guaranteed to find entryPointReference in the set, because if a\n // state change results in a commit, no state changes initiated prior to that\n // one will be committed, and we are disposing and removing references\n // associated with commits that were initiated prior to the currently\n // committing state change. (A useEffect callback is called during the commit\n // phase.)\n\n\n var undisposedEntryPointReferences = undisposedEntryPointReferencesRef.current;\n\n if (isMountedRef.current) {\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(undisposedEntryPointReferences),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var undisposedEntryPointReference = _step.value;\n\n if (undisposedEntryPointReference === entryPointReference) {\n break;\n }\n\n undisposedEntryPointReferences[\"delete\"](undisposedEntryPointReference);\n\n if (undisposedEntryPointReference.kind !== 'NullEntryPointReference') {\n undisposedEntryPointReference.dispose();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, [entryPointReference, entryPointParams, entryPointLoaderCallback, isMountedRef]);\n useEffect(function () {\n return function disposeAllRemainingEntryPointReferences() {\n // undisposedEntryPointReferences.current is never reassigned\n // eslint-disable-next-line react-hooks/exhaustive-deps\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(undisposedEntryPointReferencesRef.current),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var unhandledStateChange = _step2.value;\n\n if (unhandledStateChange.kind !== 'NullEntryPointReference') {\n unhandledStateChange.dispose();\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n };\n }, []);\n return [entryPointReference.kind === 'NullEntryPointReference' ? null : entryPointReference, entryPointLoaderCallback, disposeEntryPoint];\n}\n\nmodule.exports = useLoadEntryPoint;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('react'),\n useCallback = _require.useCallback,\n useEffect = _require.useEffect,\n useRef = _require.useRef;\n\n/**\n * This hook returns a mutable React ref that holds the value of whether a\n * fetch request is in flight. The reason this is a mutable ref instead of\n * state is because we don't actually want to trigger an update when this\n * changes, but instead synchronously keep track of whether the network request\n * is in flight, for example in order to bail out of a request if one is\n * already in flight. If this was state, due to the nature of concurrent\n * updates, this value wouldn't be in sync with when the request is actually\n * in flight.\n * The additional functions returned by this Hook can be used to mutate\n * the ref.\n */\nfunction useFetchTrackingRef() {\n var subscriptionRef = useRef(null);\n var isFetchingRef = useRef(false);\n var disposeFetch = useCallback(function () {\n if (subscriptionRef.current != null) {\n subscriptionRef.current.unsubscribe();\n subscriptionRef.current = null;\n }\n\n isFetchingRef.current = false;\n }, []);\n var startFetch = useCallback(function (subscription) {\n subscriptionRef.current = subscription;\n isFetchingRef.current = true;\n }, []);\n var completeFetch = useCallback(function () {\n subscriptionRef.current = null;\n isFetchingRef.current = false;\n }, []); // Dipose of ongoing fetch on unmount\n\n useEffect(function () {\n return disposeFetch;\n }, [disposeFetch]);\n return {\n isFetchingRef: isFetchingRef,\n startFetch: startFetch,\n disposeFetch: disposeFetch,\n completeFetch: completeFetch\n };\n}\n\nmodule.exports = useFetchTrackingRef;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useFragmentNode = require('./useFragmentNode');\n\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\n\nvar _require = require('./loadQuery'),\n useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\n\nvar _require2 = require('react'),\n useDebugValue = _require2.useDebugValue;\n\nvar _require3 = require('relay-runtime'),\n getFragment = _require3.getFragment;\n\nfunction useFragment(fragmentInput, fragmentRef) {\n // We need to use this hook in order to be able to track if\n // loadQuery was called during render\n useTrackLoadQueryInRender();\n var fragmentNode = getFragment(fragmentInput);\n useStaticFragmentNodeWarning(fragmentNode, 'first argument of useFragment()');\n\n var _useFragmentNode = useFragmentNode(fragmentNode, fragmentRef, 'useFragment()'),\n data = _useFragmentNode.data;\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDebugValue({\n fragment: fragmentNode.name,\n data: data\n });\n }\n\n return data;\n}\n\nmodule.exports = useFragment;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./FragmentResource'),\n getFragmentResourceForEnvironment = _require.getFragmentResourceForEnvironment;\n\nvar _require2 = require('react'),\n useEffect = _require2.useEffect,\n useRef = _require2.useRef,\n useState = _require2.useState;\n\nvar _require3 = require('relay-runtime'),\n getFragmentIdentifier = _require3.getFragmentIdentifier;\n\nfunction useFragmentNode(fragmentNode, fragmentRef, componentDisplayName) {\n var environment = useRelayEnvironment();\n var FragmentResource = getFragmentResourceForEnvironment(environment);\n var isMountedRef = useRef(false);\n\n var _useState = useState(0),\n forceUpdate = _useState[1];\n\n var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef); // Read fragment data; this might suspend.\n\n var fragmentResult = FragmentResource.readWithIdentifier(fragmentNode, fragmentRef, fragmentIdentifier, componentDisplayName);\n var isListeningForUpdatesRef = useRef(true);\n\n function enableStoreUpdates() {\n isListeningForUpdatesRef.current = true;\n var didMissUpdates = FragmentResource.checkMissedUpdates(fragmentResult)[0];\n\n if (didMissUpdates) {\n handleDataUpdate();\n }\n }\n\n function disableStoreUpdates() {\n isListeningForUpdatesRef.current = false;\n }\n\n function handleDataUpdate() {\n if (isMountedRef.current === false || isListeningForUpdatesRef.current === false) {\n return;\n } // React bails out on noop state updates as an optimization.\n // If we want to force an update via setState, we need to pass an value.\n // The actual value can be arbitrary though, e.g. an incremented number.\n\n\n forceUpdate(function (count) {\n return count + 1;\n });\n } // Establish Relay store subscriptions in the commit phase, only if\n // rendering for the first time, or if we need to subscribe to new data\n // If the fragment identifier changes, it means that the variables on the\n // fragment owner changed, or the fragment ref points to different records.\n // In this case, we need to resubscribe to the Relay store.\n\n\n useEffect(function () {\n isMountedRef.current = true;\n var disposable = FragmentResource.subscribe(fragmentResult, handleDataUpdate);\n return function () {\n // When unmounting or resubscribing to new data, clean up current\n // subscription. This will also make sure fragment data is no longer\n // cached so that next time it its read, it will be freshly read from\n // the Relay store\n isMountedRef.current = false;\n disposable.dispose();\n }; // NOTE: We disable react-hooks-deps warning because environment and fragmentIdentifier\n // is capturing all information about whether the effect should be re-ran.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [environment, fragmentIdentifier]);\n\n if (process.env.NODE_ENV !== \"production\") {\n if (fragmentRef != null && (fragmentResult.data === undefined || Array.isArray(fragmentResult.data) && fragmentResult.data.length > 0 && fragmentResult.data.every(function (data) {\n return data === undefined;\n }))) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected to have been able to read non-null data for ' + 'fragment `%s` declared in ' + '`%s`, since fragment reference was non-null. ' + \"Make sure that that `%s`'s parent isn't \" + 'holding on to and/or passing a fragment reference for data that ' + 'has been deleted.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n }\n }\n\n return {\n // $FlowFixMe[incompatible-return]\n data: fragmentResult.data,\n disableStoreUpdates: disableStoreUpdates,\n enableStoreUpdates: enableStoreUpdates\n };\n}\n\nmodule.exports = useFragmentNode;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('react'),\n useEffect = _require.useEffect,\n useRef = _require.useRef;\n\nfunction useIsMountedRef() {\n var isMountedRef = useRef(true);\n useEffect(function () {\n isMountedRef.current = true;\n return function () {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef;\n}\n\nmodule.exports = useIsMountedRef;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n'use strict';\n\nvar React = require('react');\n\nvar invariant = require('invariant');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('relay-runtime'),\n getObservableForActiveRequest = _require.__internal.getObservableForActiveRequest,\n getSelector = _require.getSelector;\n\nvar useEffect = React.useEffect,\n useState = React.useState,\n useMemo = React.useMemo;\n\nfunction useIsOperationNodeActive(fragmentNode, fragmentRef) {\n var environment = useRelayEnvironment();\n var observable = useMemo(function () {\n var selector = getSelector(fragmentNode, fragmentRef);\n\n if (selector == null) {\n return null;\n }\n\n !(selector.kind === 'SingularReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'useIsOperationNodeActive: Plural fragments are not supported.') : invariant(false) : void 0;\n return getObservableForActiveRequest(environment, selector.owner);\n }, [environment, fragmentNode, fragmentRef]);\n\n var _useState = useState(observable != null),\n isActive = _useState[0],\n setIsActive = _useState[1];\n\n useEffect(function () {\n var subscription;\n setIsActive(observable != null);\n\n if (observable != null) {\n var onCompleteOrError = function onCompleteOrError() {\n setIsActive(false);\n };\n\n subscription = observable.subscribe({\n complete: onCompleteOrError,\n error: onCompleteOrError\n });\n }\n\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n }\n };\n }, [observable]);\n return isActive;\n}\n\nmodule.exports = useIsOperationNodeActive;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useLazyLoadQueryNode = require('./useLazyLoadQueryNode');\n\nvar useMemoOperationDescriptor = require('./useMemoOperationDescriptor');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('./loadQuery'),\n useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\n\nvar _require2 = require('relay-runtime'),\n fetchQuery = _require2.__internal.fetchQuery;\n\nfunction useLazyLoadQuery(gqlQuery, variables, options) {\n // We need to use this hook in order to be able to track if\n // loadQuery was called during render\n useTrackLoadQueryInRender();\n var environment = useRelayEnvironment();\n var query = useMemoOperationDescriptor(gqlQuery, variables, options && options.networkCacheConfig ? options.networkCacheConfig : {\n force: true\n });\n var data = useLazyLoadQueryNode({\n componentDisplayName: 'useLazyLoadQuery()',\n fetchKey: options === null || options === void 0 ? void 0 : options.fetchKey,\n fetchObservable: fetchQuery(environment, query),\n fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,\n query: query,\n renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n });\n return data;\n}\n\nmodule.exports = useLazyLoadQuery;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ProfilerContext = require('./ProfilerContext');\n\nvar React = require('react');\n\nvar useFetchTrackingRef = require('./useFetchTrackingRef');\n\nvar useFragmentNode = require('./useFragmentNode');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('./QueryResource'),\n getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment,\n getQueryCacheIdentifier = _require.getQueryCacheIdentifier;\n\nvar useContext = React.useContext,\n useEffect = React.useEffect,\n useState = React.useState,\n useRef = React.useRef;\n\nfunction useLazyLoadQueryNode(_ref) {\n var query = _ref.query,\n componentDisplayName = _ref.componentDisplayName,\n fetchObservable = _ref.fetchObservable,\n fetchPolicy = _ref.fetchPolicy,\n fetchKey = _ref.fetchKey,\n renderPolicy = _ref.renderPolicy;\n var environment = useRelayEnvironment();\n var profilerContext = useContext(ProfilerContext);\n var QueryResource = getQueryResourceForEnvironment(environment);\n\n var _useState = useState(0),\n forceUpdateKey = _useState[0],\n forceUpdate = _useState[1];\n\n var _useFetchTrackingRef = useFetchTrackingRef(),\n startFetch = _useFetchTrackingRef.startFetch,\n completeFetch = _useFetchTrackingRef.completeFetch;\n\n var cacheBreaker = \"\".concat(forceUpdateKey, \"-\").concat(fetchKey !== null && fetchKey !== void 0 ? fetchKey : '');\n var cacheIdentifier = getQueryCacheIdentifier(environment, query, fetchPolicy, renderPolicy, cacheBreaker);\n var preparedQueryResult = profilerContext.wrapPrepareQueryResource(function () {\n return QueryResource.prepareWithIdentifier(cacheIdentifier, query, fetchObservable, fetchPolicy, renderPolicy, {\n start: startFetch,\n complete: completeFetch,\n error: completeFetch\n }, profilerContext);\n });\n var maybeHiddenOrFastRefresh = useRef(false);\n useEffect(function () {\n return function () {\n // Attempt to detect if the component was\n // hidden (by Offscreen API), or fast refresh occured;\n // Only in these situations would the effect cleanup\n // for \"unmounting\" run multiple times, so if\n // we are ever able to read this ref with a value\n // of true, it means that one of these cases\n // has happened.\n maybeHiddenOrFastRefresh.current = true;\n };\n }, []);\n useEffect(function () {\n if (maybeHiddenOrFastRefresh.current === true) {\n // This block only runs if the component has previously \"unmounted\"\n // due to it being hidden by the Offscreen API, or during fast refresh.\n // At this point, the current cached resource will have been disposed\n // by the previous cleanup, so instead of attempting to\n // do our regular commit setup, which would incorrectly attempt to\n // retain a cached query resource that was disposed, we need to force\n // a re-render so that the cache entry for this query is re-intiliazed and\n // and re-evaluated (and potentially cause a refetch).\n maybeHiddenOrFastRefresh.current = false;\n forceUpdate(function (n) {\n return n + 1;\n });\n return;\n }\n\n var disposable = QueryResource.retain(preparedQueryResult, profilerContext);\n return function () {\n disposable.dispose();\n }; // NOTE: We disable react-hooks-deps warning because the `environment`\n // and `cacheIdentifier` identities are capturing all information about whether\n // the effect should be re-executed and the query re-retained.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [environment, cacheIdentifier]);\n useEffect(function () {\n // Release any temporary retain that's not released. At this point, if the\n // cacheIdentifier doesn't change, the query is still permanently retained,\n // and the temporary retain is redundant.\n QueryResource.releaseTemporaryRetain(preparedQueryResult); // This effect is intended to run on every commit, thus no dependency\n });\n var fragmentNode = preparedQueryResult.fragmentNode,\n fragmentRef = preparedQueryResult.fragmentRef;\n\n var _useFragmentNode = useFragmentNode(fragmentNode, fragmentRef, componentDisplayName),\n data = _useFragmentNode.data;\n\n return data;\n}\n\nmodule.exports = useLazyLoadQueryNode;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar invariant = require('invariant');\n\nvar useFetchTrackingRef = require('./useFetchTrackingRef');\n\nvar useIsMountedRef = require('./useIsMountedRef');\n\nvar useIsOperationNodeActive = require('./useIsOperationNodeActive');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('react'),\n useCallback = _require.useCallback,\n useEffect = _require.useEffect,\n useState = _require.useState;\n\nvar _require2 = require('relay-runtime'),\n ConnectionInterface = _require2.ConnectionInterface,\n fetchQuery = _require2.__internal.fetchQuery,\n createOperationDescriptor = _require2.createOperationDescriptor,\n getPaginationVariables = _require2.getPaginationVariables,\n getValueAtPath = _require2.getValueAtPath,\n getSelector = _require2.getSelector;\n\nfunction useLoadMoreFunction(args) {\n var direction = args.direction,\n fragmentNode = args.fragmentNode,\n fragmentRef = args.fragmentRef,\n fragmentIdentifier = args.fragmentIdentifier,\n fragmentData = args.fragmentData,\n connectionPathInFragmentData = args.connectionPathInFragmentData,\n paginationRequest = args.paginationRequest,\n paginationMetadata = args.paginationMetadata,\n componentDisplayName = args.componentDisplayName,\n observer = args.observer,\n onReset = args.onReset,\n identifierField = args.identifierField;\n var environment = useRelayEnvironment();\n\n var _useFetchTrackingRef = useFetchTrackingRef(),\n isFetchingRef = _useFetchTrackingRef.isFetchingRef,\n startFetch = _useFetchTrackingRef.startFetch,\n disposeFetch = _useFetchTrackingRef.disposeFetch,\n completeFetch = _useFetchTrackingRef.completeFetch;\n\n var identifierValue = identifierField != null && fragmentData != null && typeof fragmentData === 'object' ? fragmentData[identifierField] : null;\n var isMountedRef = useIsMountedRef();\n\n var _useState = useState(environment),\n mirroredEnvironment = _useState[0],\n setMirroredEnvironment = _useState[1];\n\n var _useState2 = useState(fragmentIdentifier),\n mirroredFragmentIdentifier = _useState2[0],\n setMirroredFragmentIdentifier = _useState2[1];\n\n var isParentQueryActive = useIsOperationNodeActive(fragmentNode, fragmentRef);\n var shouldReset = environment !== mirroredEnvironment || fragmentIdentifier !== mirroredFragmentIdentifier;\n\n if (shouldReset) {\n disposeFetch();\n onReset();\n setMirroredEnvironment(environment);\n setMirroredFragmentIdentifier(fragmentIdentifier);\n }\n\n var _getConnectionState = getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData),\n cursor = _getConnectionState.cursor,\n hasMore = _getConnectionState.hasMore; // Dispose of pagination requests in flight when unmounting\n\n\n useEffect(function () {\n return function () {\n disposeFetch();\n };\n }, [disposeFetch]);\n var loadMore = useCallback(function (count, options) {\n // TODO(T41131846): Fetch/Caching policies for loadMore\n var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;\n\n if (isMountedRef.current !== true) {\n // Bail out and warn if we're trying to paginate after the component\n // has unmounted\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected fetch on unmounted component for fragment ' + '`%s` in `%s`. It looks like some instances of your component are ' + 'still trying to fetch data but they already unmounted. ' + 'Please make sure you clear all timers, intervals, ' + 'async calls, etc that may trigger a fetch.', fragmentNode.name, componentDisplayName) : void 0;\n return {\n dispose: function dispose() {}\n };\n }\n\n var fragmentSelector = getSelector(fragmentNode, fragmentRef);\n\n if (isFetchingRef.current === true || fragmentData == null || isParentQueryActive) {\n if (fragmentSelector == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected fetch while using a null fragment ref ' + 'for fragment `%s` in `%s`. When fetching more items, we expect ' + \"initial fragment data to be non-null. Please make sure you're \" + 'passing a valid fragment ref to `%s` before paginating.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n }\n\n if (onComplete) {\n onComplete(null);\n }\n\n return {\n dispose: function dispose() {}\n };\n }\n\n !(fragmentSelector != null && fragmentSelector.kind !== 'PluralReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to be able to find a non-plural fragment owner for ' + \"fragment `%s` when using `%s`. If you're seeing this, \" + 'this is likely a bug in Relay.', fragmentNode.name, componentDisplayName) : invariant(false) : void 0;\n var parentVariables = fragmentSelector.owner.variables;\n var fragmentVariables = fragmentSelector.variables;\n var extraVariables = options === null || options === void 0 ? void 0 : options.UNSTABLE_extraVariables; // $FlowFixMe[cannot-spread-interface]\n\n var baseVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, parentVariables), fragmentVariables);\n var paginationVariables = getPaginationVariables(direction, count, cursor, baseVariables, // $FlowFixMe[cannot-spread-interface]\n (0, _objectSpread2[\"default\"])({}, extraVariables), paginationMetadata); // If the query needs an identifier value ('id' or similar) and one\n // was not explicitly provided, read it from the fragment data.\n\n if (identifierField != null) {\n // @refetchable fragments are guaranteed to have an `id` selection\n // if the type is Node, implements Node, or is @fetchable. Double-check\n // that there actually is a value at runtime.\n if (typeof identifierValue !== 'string') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected result to have a string ' + '`%s` in order to refetch, got `%s`.', identifierField, identifierValue) : void 0;\n }\n\n paginationVariables.id = identifierValue;\n }\n\n var paginationQuery = createOperationDescriptor(paginationRequest, paginationVariables, {\n force: true\n });\n fetchQuery(environment, paginationQuery).subscribe((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, observer), {}, {\n start: function start(subscription) {\n startFetch(subscription);\n observer.start && observer.start(subscription);\n },\n complete: function complete() {\n completeFetch();\n observer.complete && observer.complete();\n onComplete && onComplete(null);\n },\n error: function error(_error) {\n completeFetch();\n observer.error && observer.error(_error);\n onComplete && onComplete(_error);\n }\n }));\n return {\n dispose: disposeFetch\n };\n }, // NOTE: We disable react-hooks-deps warning because all values\n // inside paginationMetadata are static\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [environment, identifierValue, direction, cursor, startFetch, disposeFetch, completeFetch, isFetchingRef, isParentQueryActive, fragmentData, fragmentNode.name, fragmentRef, componentDisplayName]);\n return [loadMore, hasMore, disposeFetch];\n}\n\nfunction getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData) {\n var _pageInfo$END_CURSOR, _pageInfo$START_CURSO;\n\n var _ConnectionInterface$ = ConnectionInterface.get(),\n EDGES = _ConnectionInterface$.EDGES,\n PAGE_INFO = _ConnectionInterface$.PAGE_INFO,\n HAS_NEXT_PAGE = _ConnectionInterface$.HAS_NEXT_PAGE,\n HAS_PREV_PAGE = _ConnectionInterface$.HAS_PREV_PAGE,\n END_CURSOR = _ConnectionInterface$.END_CURSOR,\n START_CURSOR = _ConnectionInterface$.START_CURSOR;\n\n var connection = getValueAtPath(fragmentData, connectionPathInFragmentData);\n\n if (connection == null) {\n return {\n cursor: null,\n hasMore: false\n };\n }\n\n !(typeof connection === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have been `null`, or ' + 'a plain object with %s and %s properties. Instead got `%s`.', fragmentNode.name, EDGES, PAGE_INFO, connection) : invariant(false) : void 0;\n var edges = connection[EDGES];\n var pageInfo = connection[PAGE_INFO];\n\n if (edges == null || pageInfo == null) {\n return {\n cursor: null,\n hasMore: false\n };\n }\n\n !Array.isArray(edges) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have a plural `%s` field. ' + 'Instead got `%s`.', fragmentNode.name, EDGES, edges) : invariant(false) : void 0;\n !(typeof pageInfo === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected connection in fragment `%s` to have a `%s` field. ' + 'Instead got `%s`.', fragmentNode.name, PAGE_INFO, pageInfo) : invariant(false) : void 0;\n var cursor = direction === 'forward' ? (_pageInfo$END_CURSOR = pageInfo[END_CURSOR]) !== null && _pageInfo$END_CURSOR !== void 0 ? _pageInfo$END_CURSOR : null : (_pageInfo$START_CURSO = pageInfo[START_CURSOR]) !== null && _pageInfo$START_CURSO !== void 0 ? _pageInfo$START_CURSO : null;\n !(cursor === null || typeof cursor === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected page info for connection in fragment `%s` to have a ' + 'valid `%s`. Instead got `%s`.', fragmentNode.name, START_CURSOR, cursor) : invariant(false) : void 0;\n var hasMore;\n\n if (direction === 'forward') {\n hasMore = cursor != null && pageInfo[HAS_NEXT_PAGE] === true;\n } else {\n hasMore = cursor != null && pageInfo[HAS_PREV_PAGE] === true;\n }\n\n return {\n cursor: cursor,\n hasMore: hasMore\n };\n}\n\nmodule.exports = useLoadMoreFunction;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar useMemoVariables = require('./useMemoVariables');\n\nvar _require = require('relay-runtime'),\n createOperationDescriptor = _require.createOperationDescriptor,\n getRequest = _require.getRequest;\n\nvar useMemo = React.useMemo;\n\nfunction useMemoOperationDescriptor(gqlQuery, variables, cacheConfig) {\n var _useMemoVariables = useMemoVariables(variables),\n memoVariables = _useMemoVariables[0];\n\n var _useMemoVariables2 = useMemoVariables(cacheConfig || {}),\n memoCacheConfig = _useMemoVariables2[0];\n\n return useMemo(function () {\n return createOperationDescriptor(getRequest(gqlQuery), memoVariables, memoCacheConfig);\n }, [gqlQuery, memoVariables, memoCacheConfig]);\n}\n\nmodule.exports = useMemoOperationDescriptor;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar React = require('react');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar useMemo = React.useMemo,\n useRef = React.useRef,\n useState = React.useState;\n\nfunction useMemoVariables(variables) {\n var _variablesChangedGene2;\n\n // The value of this ref is a counter that should be incremented when\n // variables change. This allows us to use the counter as a\n // memoization value to indicate if the computation for useMemo\n // should be re-executed.\n var variablesChangedGenerationRef = useRef(0); // We mirror the variables to check if they have changed between renders\n\n var _useState = useState(variables),\n mirroredVariables = _useState[0],\n setMirroredVariables = _useState[1];\n\n var variablesChanged = !areEqual(variables, mirroredVariables);\n\n if (variablesChanged) {\n var _variablesChangedGene;\n\n variablesChangedGenerationRef.current = ((_variablesChangedGene = variablesChangedGenerationRef.current) !== null && _variablesChangedGene !== void 0 ? _variablesChangedGene : 0) + 1;\n setMirroredVariables(variables);\n } // NOTE: We disable react-hooks-deps warning because we explicitly\n // don't want to memoize on object identity\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n var memoVariables = useMemo(function () {\n return variables;\n }, [variablesChangedGenerationRef.current]);\n return [memoVariables, (_variablesChangedGene2 = variablesChangedGenerationRef.current) !== null && _variablesChangedGene2 !== void 0 ? _variablesChangedGene2 : 0];\n}\n\nmodule.exports = useMemoVariables;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar React = require('react');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('relay-runtime'),\n defaultCommitMutation = _require.commitMutation;\n\nvar useState = React.useState,\n useEffect = React.useEffect,\n useRef = React.useRef,\n useCallback = React.useCallback;\n\nvar useIsMountedRef = require('./useIsMountedRef');\n\nfunction useMutation(mutation) {\n var commitMutationFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCommitMutation;\n var environment = useRelayEnvironment();\n var isMountedRef = useIsMountedRef();\n var environmentRef = useRef(environment);\n var mutationRef = useRef(mutation);\n var inFlightMutationsRef = useRef(new Set());\n\n var _useState = useState(false),\n isMutationInFlight = _useState[0],\n setMutationInFlight = _useState[1];\n\n var cleanup = useCallback(function (disposable) {\n if (environmentRef.current === environment && mutationRef.current === mutation) {\n inFlightMutationsRef.current[\"delete\"](disposable);\n\n if (isMountedRef.current) {\n setMutationInFlight(inFlightMutationsRef.current.size > 0);\n }\n }\n }, [environment, isMountedRef, mutation]);\n useEffect(function () {\n if (environmentRef.current !== environment || mutationRef.current !== mutation) {\n inFlightMutationsRef.current = new Set();\n\n if (isMountedRef.current) {\n setMutationInFlight(false);\n }\n\n environmentRef.current = environment;\n mutationRef.current = mutation;\n }\n }, [environment, isMountedRef, mutation]);\n var commit = useCallback(function (config) {\n var disposable = commitMutationFn(environment, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, config), {}, {\n mutation: mutation,\n onCompleted: function onCompleted(response, errors) {\n cleanup(disposable);\n config.onCompleted && config.onCompleted(response, errors);\n },\n onError: function onError(error) {\n cleanup(disposable);\n config.onError && config.onError(error);\n },\n onUnsubscribe: function onUnsubscribe() {\n cleanup(disposable);\n config.onUnsubscribe && config.onUnsubscribe();\n }\n }));\n inFlightMutationsRef.current.add(disposable);\n\n if (isMountedRef.current) {\n setMutationInFlight(true);\n }\n\n return disposable;\n }, [cleanup, commitMutationFn, environment, isMountedRef, mutation]);\n return [commit, isMutationInFlight];\n}\n\nmodule.exports = useMutation;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar useLoadMoreFunction = require('./useLoadMoreFunction');\n\nvar useRefetchableFragmentNode = require('./useRefetchableFragmentNode');\n\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\n\nvar _require = require('react'),\n useCallback = _require.useCallback,\n useDebugValue = _require.useDebugValue,\n useState = _require.useState;\n\nvar _require2 = require('relay-runtime'),\n getFragment = _require2.getFragment,\n getFragmentIdentifier = _require2.getFragmentIdentifier,\n getPaginationMetadata = _require2.getPaginationMetadata;\n\nfunction usePaginationFragment(fragmentInput, parentFragmentRef) {\n var fragmentNode = getFragment(fragmentInput);\n useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePaginationFragment()');\n var componentDisplayName = 'usePaginationFragment()';\n\n var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),\n connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,\n paginationRequest = _getPaginationMetadat.paginationRequest,\n paginationMetadata = _getPaginationMetadat.paginationMetadata,\n identifierField = _getPaginationMetadat.identifierField;\n\n var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName),\n fragmentData = _useRefetchableFragme.fragmentData,\n fragmentRef = _useRefetchableFragme.fragmentRef,\n refetch = _useRefetchableFragme.refetch;\n\n var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef); // Backward pagination\n\n var _useLoadMore = useLoadMore({\n componentDisplayName: componentDisplayName,\n connectionPathInFragmentData: connectionPathInFragmentData,\n direction: 'backward',\n fragmentData: fragmentData,\n fragmentIdentifier: fragmentIdentifier,\n fragmentNode: fragmentNode,\n fragmentRef: fragmentRef,\n identifierField: identifierField,\n paginationMetadata: paginationMetadata,\n paginationRequest: paginationRequest\n }),\n loadPrevious = _useLoadMore[0],\n hasPrevious = _useLoadMore[1],\n isLoadingPrevious = _useLoadMore[2],\n disposeFetchPrevious = _useLoadMore[3]; // Forward pagination\n\n\n var _useLoadMore2 = useLoadMore({\n componentDisplayName: componentDisplayName,\n connectionPathInFragmentData: connectionPathInFragmentData,\n direction: 'forward',\n fragmentData: fragmentData,\n fragmentIdentifier: fragmentIdentifier,\n fragmentNode: fragmentNode,\n fragmentRef: fragmentRef,\n identifierField: identifierField,\n paginationMetadata: paginationMetadata,\n paginationRequest: paginationRequest\n }),\n loadNext = _useLoadMore2[0],\n hasNext = _useLoadMore2[1],\n isLoadingNext = _useLoadMore2[2],\n disposeFetchNext = _useLoadMore2[3];\n\n var refetchPagination = useCallback(function (variables, options) {\n disposeFetchNext();\n disposeFetchPrevious();\n return refetch(variables, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, options), {}, {\n __environment: undefined\n }));\n }, [disposeFetchNext, disposeFetchPrevious, refetch]);\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDebugValue({\n fragment: fragmentNode.name,\n data: fragmentData,\n hasNext: hasNext,\n isLoadingNext: isLoadingNext,\n hasPrevious: hasPrevious,\n isLoadingPrevious: isLoadingPrevious\n });\n }\n\n return {\n data: fragmentData,\n loadNext: loadNext,\n loadPrevious: loadPrevious,\n hasNext: hasNext,\n hasPrevious: hasPrevious,\n isLoadingNext: isLoadingNext,\n isLoadingPrevious: isLoadingPrevious,\n refetch: refetchPagination\n };\n}\n\nfunction useLoadMore(args) {\n var _useState = useState(false),\n isLoadingMore = _useState[0],\n setIsLoadingMore = _useState[1];\n\n var observer = {\n start: function start() {\n return setIsLoadingMore(true);\n },\n complete: function complete() {\n return setIsLoadingMore(false);\n },\n error: function error() {\n return setIsLoadingMore(false);\n }\n };\n\n var handleReset = function handleReset() {\n return setIsLoadingMore(false);\n };\n\n var _useLoadMoreFunction = useLoadMoreFunction((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, args), {}, {\n observer: observer,\n onReset: handleReset\n })),\n loadMore = _useLoadMoreFunction[0],\n hasMore = _useLoadMoreFunction[1],\n disposeFetch = _useLoadMoreFunction[2];\n\n return [loadMore, hasMore, isLoadingMore, disposeFetch];\n}\n\nmodule.exports = usePaginationFragment;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar useLazyLoadQueryNode = require('./useLazyLoadQueryNode');\n\nvar useMemoOperationDescriptor = require('./useMemoOperationDescriptor');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./loadQuery'),\n useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\n\nvar _require2 = require('react'),\n useDebugValue = _require2.useDebugValue;\n\nvar _require3 = require('relay-runtime'),\n _require3$__internal = _require3.__internal,\n fetchQueryDeduped = _require3$__internal.fetchQueryDeduped,\n fetchQuery = _require3$__internal.fetchQuery;\n\nfunction usePreloadedQuery(gqlQuery, preloadedQuery, options) {\n // We need to use this hook in order to be able to track if\n // loadQuery was called during render\n useTrackLoadQueryInRender();\n var environment = useRelayEnvironment();\n var fetchKey = preloadedQuery.fetchKey,\n fetchPolicy = preloadedQuery.fetchPolicy,\n source = preloadedQuery.source,\n variables = preloadedQuery.variables,\n networkCacheConfig = preloadedQuery.networkCacheConfig;\n var operation = useMemoOperationDescriptor(gqlQuery, variables, networkCacheConfig);\n var useLazyLoadQueryNodeParams;\n\n if (preloadedQuery.kind === 'PreloadedQuery_DEPRECATED') {\n !(operation.request.node.params.name === preloadedQuery.name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'usePreloadedQuery(): Expected data to be prefetched for query `%s`, ' + 'got prefetch results for query `%s`.', operation.request.node.params.name, preloadedQuery.name) : invariant(false) : void 0;\n useLazyLoadQueryNodeParams = {\n componentDisplayName: 'usePreloadedQuery()',\n fetchKey: fetchKey,\n fetchObservable: fetchQueryDeduped(environment, operation.request.identifier, function () {\n if (environment === preloadedQuery.environment && source != null) {\n return environment.executeWithSource({\n operation: operation,\n source: source\n });\n } else {\n return environment.execute({\n operation: operation\n });\n }\n }),\n fetchPolicy: fetchPolicy,\n query: operation,\n renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n };\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(preloadedQuery.isDisposed === false, 'usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. ' + 'This is because disposing the query marks it for future garbage ' + 'collection, and as such query results may no longer be present in the Relay ' + 'store. In the future, this will become a hard error.') : void 0;\n var fallbackFetchObservable = fetchQuery(environment, operation);\n var fetchObservable;\n\n if (source != null && environment === preloadedQuery.environment) {\n // If the source observable exists and the environments match, reuse\n // the source observable.\n // If the source observable happens to be empty, we need to fall back\n // and re-execute and de-dupe the query (at render time).\n fetchObservable = source.ifEmpty(fallbackFetchObservable);\n } else if (environment !== preloadedQuery.environment) {\n // If a call to loadQuery is made with a particular environment, and that\n // preloaded query is passed to usePreloadedQuery in a different environment\n // context, we cannot re-use the existing preloaded query.\n // Instead, we need to fall back and re-execute and de-dupe the query with\n // the new environment (at render time).\n // TODO T68036756 track occurences of this warning and turn it into a hard error\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usePreloadedQuery(): usePreloadedQuery was passed a preloaded query ' + 'that was created with a different environment than the one that is currently ' + 'in context. In the future, this will become a hard error.') : void 0;\n fetchObservable = fallbackFetchObservable;\n } else {\n // if (source == null)\n // If the source observable does not exist, we need to\n // fall back and re-execute and de-dupe the query (at render time).\n fetchObservable = fallbackFetchObservable;\n }\n\n useLazyLoadQueryNodeParams = {\n componentDisplayName: 'usePreloadedQuery()',\n fetchObservable: fetchObservable,\n fetchKey: fetchKey,\n fetchPolicy: fetchPolicy,\n query: operation,\n renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n };\n }\n\n var data = useLazyLoadQueryNode(useLazyLoadQueryNodeParams);\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDebugValue({\n query: preloadedQuery.name,\n variables: preloadedQuery.variables,\n data: data,\n fetchKey: fetchKey,\n fetchPolicy: fetchPolicy,\n renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy\n });\n }\n\n return data;\n}\n\nmodule.exports = usePreloadedQuery;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar useIsMountedRef = require('./useIsMountedRef');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('./loadQuery'),\n loadQuery = _require.loadQuery,\n useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;\n\nvar _require2 = require('react'),\n useCallback = _require2.useCallback,\n useEffect = _require2.useEffect,\n useRef = _require2.useRef,\n useState = _require2.useState;\n\nvar _require3 = require('relay-runtime'),\n getRequest = _require3.getRequest;\n\nvar initialNullQueryReferenceState = {\n kind: 'NullQueryReference'\n};\n\nfunction requestIsLiveQuery(preloadableRequest) {\n if (preloadableRequest.kind === 'PreloadableConcreteRequest') {\n return preloadableRequest.params.metadata.live !== undefined;\n }\n\n var request = getRequest(preloadableRequest);\n return request.params.metadata.live !== undefined;\n}\n\nfunction useQueryLoader(preloadableRequest, initialQueryReference) {\n /**\n * We want to always call `queryReference.dispose()` for every call to\n * `setQueryReference(loadQuery(...))` so that no leaks of data in Relay stores\n * will occur.\n *\n * However, a call to `setState(newState)` is not always followed by a commit where\n * this value is reflected in the state. Thus, we cannot reliably clean up each\n * ref with `useEffect(() => () => queryReference.dispose(), [queryReference])`.\n *\n * Instead, we keep track of each call to `loadQuery` in a ref.\n * Relying on the fact that if a state change commits, no state changes that were\n * initiated prior to the currently committing state change will ever subsequently\n * commit, we can safely dispose of all preloaded query references\n * associated with state changes initiated prior to the currently committing state\n * change.\n *\n * Finally, when the hook unmounts, we also dispose of all remaining uncommitted\n * query references.\n */\n var initialQueryReferenceInternal = initialQueryReference !== null && initialQueryReference !== void 0 ? initialQueryReference : initialNullQueryReferenceState;\n var environment = useRelayEnvironment();\n useTrackLoadQueryInRender();\n var isMountedRef = useIsMountedRef();\n var undisposedQueryReferencesRef = useRef(new Set([initialQueryReferenceInternal]));\n\n var _useState = useState(function () {\n return initialQueryReferenceInternal;\n }),\n queryReference = _useState[0],\n setQueryReference = _useState[1];\n\n var _useState2 = useState(function () {\n return initialQueryReferenceInternal;\n }),\n previousInitialQueryReference = _useState2[0],\n setPreviousInitialQueryReference = _useState2[1];\n\n if (initialQueryReferenceInternal !== previousInitialQueryReference) {\n // Rendering the query reference makes it \"managed\" by this hook, so\n // we start keeping track of it so we can dispose it when it is no longer\n // necessary here\n // TODO(T78446637): Handle disposal of managed query references in\n // components that were never mounted after rendering\n undisposedQueryReferencesRef.current.add(initialQueryReferenceInternal);\n setPreviousInitialQueryReference(initialQueryReferenceInternal);\n setQueryReference(initialQueryReferenceInternal);\n }\n\n var disposeQuery = useCallback(function () {\n if (isMountedRef.current) {\n undisposedQueryReferencesRef.current.add(initialNullQueryReferenceState);\n setQueryReference(initialNullQueryReferenceState);\n }\n }, [isMountedRef]);\n var queryLoaderCallback = useCallback(function (variables, options) {\n var mergedOptions = options != null && options.hasOwnProperty('__environment') ? {\n fetchPolicy: options.fetchPolicy,\n networkCacheConfig: options.networkCacheConfig,\n __nameForWarning: options.__nameForWarning\n } : options;\n\n if (isMountedRef.current) {\n var _options$__environmen;\n\n var updatedQueryReference = loadQuery((_options$__environmen = options === null || options === void 0 ? void 0 : options.__environment) !== null && _options$__environmen !== void 0 ? _options$__environmen : environment, preloadableRequest, variables, mergedOptions);\n undisposedQueryReferencesRef.current.add(updatedQueryReference);\n setQueryReference(updatedQueryReference);\n }\n }, [environment, preloadableRequest, setQueryReference, isMountedRef]);\n var maybeHiddenOrFastRefresh = useRef(false);\n useEffect(function () {\n return function () {\n // Attempt to detect if the component was\n // hidden (by Offscreen API), or fast refresh occured;\n // Only in these situations would the effect cleanup\n // for \"unmounting\" run multiple times, so if\n // we are ever able to read this ref with a value\n // of true, it means that one of these cases\n // has happened.\n maybeHiddenOrFastRefresh.current = true;\n };\n }, []);\n useEffect(function () {\n if (maybeHiddenOrFastRefresh.current === true) {\n // This block only runs if the component has previously \"unmounted\"\n // due to it being hidden by the Offscreen API, or during fast refresh.\n // At this point, the current queryReference will have been disposed\n // by the previous cleanup, so instead of attempting to\n // do our regular commit setup, which would incorrectly leave our\n // current queryReference disposed, we need to load the query again\n // and force a re-render by calling queryLoaderCallback again,\n // so that the queryReference is correctly re-retained, and\n // potentially refetched if necessary.\n maybeHiddenOrFastRefresh.current = false;\n\n if (queryReference.kind !== 'NullQueryReference') {\n queryLoaderCallback(queryReference.variables, {\n fetchPolicy: queryReference.fetchPolicy,\n networkCacheConfig: queryReference.networkCacheConfig\n });\n }\n\n return;\n } // When a new queryReference is committed, we iterate over all\n // query references in undisposedQueryReferences and dispose all of\n // the refs that aren't the currently committed one. This ensures\n // that we don't leave any dangling query references for the\n // case that loadQuery is called multiple times before commit; when\n // this happens, multiple state updates will be scheduled, but only one\n // will commit, meaning that we need to keep track of and dispose any\n // query references that don't end up committing.\n // - We are relying on the fact that sets iterate in insertion order, and we\n // can remove items from a set as we iterate over it (i.e. no iterator\n // invalidation issues.) Thus, it is safe to loop through\n // undisposedQueryReferences until we find queryReference, and\n // remove and dispose all previous references.\n // - We are guaranteed to find queryReference in the set, because if a\n // state update results in a commit, no state updates initiated prior to that\n // one will be committed, and we are disposing and removing references\n // associated with updates that were scheduled prior to the currently\n // committing state change. (A useEffect callback is called during the commit\n // phase.)\n\n\n var undisposedQueryReferences = undisposedQueryReferencesRef.current;\n\n if (isMountedRef.current) {\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(undisposedQueryReferences),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var undisposedQueryReference = _step.value;\n\n if (undisposedQueryReference === queryReference) {\n break;\n }\n\n undisposedQueryReferences[\"delete\"](undisposedQueryReference);\n\n if (undisposedQueryReference.kind !== 'NullQueryReference') {\n if (requestIsLiveQuery(preloadableRequest)) {\n undisposedQueryReference.dispose && undisposedQueryReference.dispose();\n } else {\n undisposedQueryReference.releaseQuery && undisposedQueryReference.releaseQuery();\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, [queryReference, isMountedRef, queryLoaderCallback, preloadableRequest]);\n useEffect(function () {\n return function disposeAllRemainingQueryReferences() {\n // undisposedQueryReferences.current is never reassigned\n // eslint-disable-next-line react-hooks/exhaustive-deps\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(undisposedQueryReferencesRef.current),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var undisposedQueryReference = _step2.value;\n\n if (undisposedQueryReference.kind !== 'NullQueryReference') {\n if (requestIsLiveQuery(preloadableRequest)) {\n undisposedQueryReference.dispose && undisposedQueryReference.dispose();\n } else {\n undisposedQueryReference.releaseQuery && undisposedQueryReference.releaseQuery();\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n };\n }, [preloadableRequest]);\n return [queryReference.kind === 'NullQueryReference' ? null : queryReference, queryLoaderCallback, disposeQuery];\n}\n\nmodule.exports = useQueryLoader;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useRefetchableFragmentNode = require('./useRefetchableFragmentNode');\n\nvar useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');\n\nvar _require = require('react'),\n useDebugValue = _require.useDebugValue;\n\nvar _require2 = require('relay-runtime'),\n getFragment = _require2.getFragment;\n\nfunction useRefetchableFragment(fragmentInput, fragmentRef) {\n var fragmentNode = getFragment(fragmentInput);\n useStaticFragmentNodeWarning(fragmentNode, 'first argument of useRefetchableFragment()');\n\n var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, fragmentRef, 'useRefetchableFragment()'),\n fragmentData = _useRefetchableFragme.fragmentData,\n refetch = _useRefetchableFragme.refetch;\n\n if (process.env.NODE_ENV !== \"production\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useDebugValue({\n fragment: fragmentNode.name,\n data: fragmentData\n });\n }\n /* $FlowExpectedError[prop-missing] : Exposed options is a subset of internal\n * options */\n\n\n return [fragmentData, refetch];\n}\n\nmodule.exports = useRefetchableFragment;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar ProfilerContext = require('./ProfilerContext');\n\nvar invariant = require('invariant');\n\nvar useFragmentNode = require('./useFragmentNode');\n\nvar useIsMountedRef = require('./useIsMountedRef');\n\nvar useQueryLoader = require('./useQueryLoader');\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./FragmentResource'),\n getFragmentResourceForEnvironment = _require.getFragmentResourceForEnvironment;\n\nvar _require2 = require('./QueryResource'),\n getQueryResourceForEnvironment = _require2.getQueryResourceForEnvironment;\n\nvar _require3 = require('react'),\n useCallback = _require3.useCallback,\n useContext = _require3.useContext,\n useReducer = _require3.useReducer;\n\nvar _require4 = require('relay-runtime'),\n fetchQuery = _require4.__internal.fetchQuery,\n createOperationDescriptor = _require4.createOperationDescriptor,\n getFragmentIdentifier = _require4.getFragmentIdentifier,\n getRefetchMetadata = _require4.getRefetchMetadata,\n getSelector = _require4.getSelector,\n getValueAtPath = _require4.getValueAtPath;\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'refetch':\n {\n var _action$refetchEnviro;\n\n return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, state), {}, {\n fetchPolicy: action.fetchPolicy,\n mirroredEnvironment: (_action$refetchEnviro = action.refetchEnvironment) !== null && _action$refetchEnviro !== void 0 ? _action$refetchEnviro : state.mirroredEnvironment,\n onComplete: action.onComplete,\n refetchEnvironment: action.refetchEnvironment,\n refetchQuery: action.refetchQuery,\n renderPolicy: action.renderPolicy\n });\n }\n\n case 'reset':\n {\n return {\n fetchPolicy: undefined,\n mirroredEnvironment: action.environment,\n mirroredFragmentIdentifier: action.fragmentIdentifier,\n onComplete: undefined,\n refetchQuery: null,\n renderPolicy: undefined\n };\n }\n\n default:\n {\n action.type;\n throw new Error('useRefetchableFragmentNode: Unexpected action type');\n }\n }\n}\n\nfunction useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName) {\n var parentEnvironment = useRelayEnvironment();\n\n var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),\n refetchableRequest = _getRefetchMetadata.refetchableRequest,\n fragmentRefPathInResponse = _getRefetchMetadata.fragmentRefPathInResponse,\n identifierField = _getRefetchMetadata.identifierField;\n\n var fragmentIdentifier = getFragmentIdentifier(fragmentNode, parentFragmentRef);\n\n var _useReducer = useReducer(reducer, {\n fetchPolicy: undefined,\n mirroredEnvironment: parentEnvironment,\n mirroredFragmentIdentifier: fragmentIdentifier,\n onComplete: undefined,\n refetchEnvironment: null,\n refetchQuery: null,\n renderPolicy: undefined\n }),\n refetchState = _useReducer[0],\n dispatch = _useReducer[1];\n\n var fetchPolicy = refetchState.fetchPolicy,\n mirroredEnvironment = refetchState.mirroredEnvironment,\n mirroredFragmentIdentifier = refetchState.mirroredFragmentIdentifier,\n onComplete = refetchState.onComplete,\n refetchEnvironment = refetchState.refetchEnvironment,\n refetchQuery = refetchState.refetchQuery,\n renderPolicy = refetchState.renderPolicy;\n var environment = refetchEnvironment !== null && refetchEnvironment !== void 0 ? refetchEnvironment : parentEnvironment;\n var QueryResource = getQueryResourceForEnvironment(environment);\n var FragmentResource = getFragmentResourceForEnvironment(environment);\n var profilerContext = useContext(ProfilerContext);\n var shouldReset = environment !== mirroredEnvironment || fragmentIdentifier !== mirroredFragmentIdentifier;\n\n var _useQueryLoader = useQueryLoader(refetchableRequest),\n queryRef = _useQueryLoader[0],\n loadQuery = _useQueryLoader[1],\n disposeQuery = _useQueryLoader[2];\n\n var fragmentRef = parentFragmentRef;\n\n if (shouldReset) {\n dispatch({\n type: 'reset',\n environment: environment,\n fragmentIdentifier: fragmentIdentifier\n });\n disposeQuery();\n } else if (refetchQuery != null && queryRef != null) {\n // If refetch was called, we expect to have a refetchQuery and queryRef\n // in state, since both state updates to set the refetchQuery and the\n // queryRef occur simultaneously.\n // In this case, we need to read the refetched query data (potentially\n // suspending if it's in flight), and extract the new fragment ref\n // from the query in order read the current @refetchable fragment\n // with the updated fragment owner as the new refetchQuery.\n // Before observing the refetch, record the current ID and typename\n // so that, if we are refetching existing data on\n // a field that implements Node, after refetching we\n // can validate that the received data is consistent\n var debugPreviousIDAndTypename;\n\n if (process.env.NODE_ENV !== \"production\") {\n debugPreviousIDAndTypename = debugFunctions.getInitialIDAndType(refetchQuery.request.variables, fragmentRefPathInResponse, environment);\n }\n\n var handleQueryCompleted = function handleQueryCompleted(maybeError) {\n onComplete && onComplete(maybeError !== null && maybeError !== void 0 ? maybeError : null);\n }; // The queryRef.source obtained from useQueryLoader will be\n // an observable we can consume /if/ a network request was\n // started. Otherwise, given that QueryResource.prepare\n // always expects an observable we fall back to a new network\n // observable. Note however that if loadQuery did not make a network\n // request, we don't expect to make one here, unless the state of\n // the cache has changed between the call to refetch and this\n // render.\n\n\n var fetchObservable = queryRef.source != null ? queryRef.source : fetchQuery(environment, refetchQuery); // Now wwe can we read the refetch query here using the\n // queryRef provided from useQueryLoader. Note that the\n // network request is started during the call to refetch,\n // but if the refetch query is still in flight, we will suspend\n // at this point:\n\n var queryResult = profilerContext.wrapPrepareQueryResource(function () {\n return QueryResource.prepare(refetchQuery, fetchObservable, fetchPolicy, renderPolicy, {\n error: handleQueryCompleted,\n complete: function complete() {\n // Validate that the type of the object we got back matches the type\n // of the object already in the store\n if (process.env.NODE_ENV !== \"production\") {\n debugFunctions.checkSameTypeAfterRefetch(debugPreviousIDAndTypename, environment, fragmentNode, componentDisplayName);\n }\n\n handleQueryCompleted();\n }\n }, queryRef.fetchKey, profilerContext);\n });\n var queryData = FragmentResource.read(queryResult.fragmentNode, queryResult.fragmentRef, componentDisplayName).data;\n !(queryData != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected to be able to read refetch query response. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0; // After reading/fetching the refetch query, we extract from the\n // refetch query response the new fragment ref we need to use to read\n // the fragment. The new fragment ref will point to the refetch query\n // as its fragment owner.\n\n var refetchedFragmentRef = getValueAtPath(queryData, fragmentRefPathInResponse);\n fragmentRef = refetchedFragmentRef;\n\n if (process.env.NODE_ENV !== \"production\") {\n // Validate that the id of the object we got back matches the id\n // we queried for in the variables.\n // We do this during render instead of onComplete to make sure we are\n // only validating the most recent refetch.\n debugFunctions.checkSameIDAfterRefetch(debugPreviousIDAndTypename, fragmentRef, fragmentNode, componentDisplayName);\n }\n } // We read and subscribe to the fragment using useFragmentNode.\n // If refetch was called, we read the fragment using the new computed\n // fragment ref from the refetch query response; otherwise, we use the\n // fragment ref passed by the caller as normal.\n\n\n var _useFragmentNode = useFragmentNode(fragmentNode, fragmentRef, componentDisplayName),\n fragmentData = _useFragmentNode.data,\n disableStoreUpdates = _useFragmentNode.disableStoreUpdates,\n enableStoreUpdates = _useFragmentNode.enableStoreUpdates;\n\n var refetch = useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragmentData, fragmentIdentifier, fragmentNode, fragmentRefPathInResponse, identifierField, loadQuery, parentFragmentRef, refetchableRequest);\n return {\n fragmentData: fragmentData,\n fragmentRef: fragmentRef,\n refetch: refetch,\n disableStoreUpdates: disableStoreUpdates,\n enableStoreUpdates: enableStoreUpdates\n };\n}\n\nfunction useRefetchFunction(componentDisplayName, dispatch, disposeQuery, fragmentData, fragmentIdentifier, fragmentNode, fragmentRefPathInResponse, identifierField, loadQuery, parentFragmentRef, refetchableRequest) {\n var isMountedRef = useIsMountedRef();\n var identifierValue = identifierField != null && fragmentData != null && typeof fragmentData === 'object' ? fragmentData[identifierField] : null;\n return useCallback(function (providedRefetchVariables, options) {\n // Bail out and warn if we're trying to refetch after the component\n // has unmounted\n if (isMountedRef.current !== true) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected call to `refetch` on unmounted component for fragment ' + '`%s` in `%s`. It looks like some instances of your component are ' + 'still trying to fetch data but they already unmounted. ' + 'Please make sure you clear all timers, intervals, ' + 'async calls, etc that may trigger a fetch.', fragmentNode.name, componentDisplayName) : void 0;\n return {\n dispose: function dispose() {}\n };\n }\n\n if (parentFragmentRef == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected call to `refetch` while using a null fragment ref ' + 'for fragment `%s` in `%s`. When calling `refetch`, we expect ' + \"initial fragment data to be non-null. Please make sure you're \" + 'passing a valid fragment ref to `%s` before calling ' + '`refetch`, or make sure you pass all required variables to `refetch`.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;\n }\n\n var refetchEnvironment = options === null || options === void 0 ? void 0 : options.__environment;\n var fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy;\n var renderPolicy = options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy;\n var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;\n var fragmentSelector = getSelector(fragmentNode, parentFragmentRef);\n var parentVariables;\n var fragmentVariables;\n\n if (fragmentSelector == null) {\n parentVariables = {};\n fragmentVariables = {};\n } else if (fragmentSelector.kind === 'PluralReaderSelector') {\n var _fragmentSelector$sel, _fragmentSelector$sel2, _fragmentSelector$sel3, _fragmentSelector$sel4;\n\n parentVariables = (_fragmentSelector$sel = (_fragmentSelector$sel2 = fragmentSelector.selectors[0]) === null || _fragmentSelector$sel2 === void 0 ? void 0 : _fragmentSelector$sel2.owner.variables) !== null && _fragmentSelector$sel !== void 0 ? _fragmentSelector$sel : {};\n fragmentVariables = (_fragmentSelector$sel3 = (_fragmentSelector$sel4 = fragmentSelector.selectors[0]) === null || _fragmentSelector$sel4 === void 0 ? void 0 : _fragmentSelector$sel4.variables) !== null && _fragmentSelector$sel3 !== void 0 ? _fragmentSelector$sel3 : {};\n } else {\n parentVariables = fragmentSelector.owner.variables;\n fragmentVariables = fragmentSelector.variables;\n } // A user of `useRefetchableFragment()` may pass a subset of\n // all variables required by the fragment when calling `refetch()`.\n // We fill in any variables not passed by the call to `refetch()` with the\n // variables from the original parent fragment owner.\n // $FlowFixMe[cannot-spread-interface]\n\n\n var refetchVariables = (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, parentVariables), fragmentVariables), providedRefetchVariables); // If the query needs an identifier value ('id' or similar) and one\n // was not explicitly provided, read it from the fragment data.\n\n if (identifierField != null && !providedRefetchVariables.hasOwnProperty('id')) {\n // @refetchable fragments are guaranteed to have an `id` selection\n // if the type is Node, implements Node, or is @fetchable. Double-check\n // that there actually is a value at runtime.\n if (typeof identifierValue !== 'string') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Expected result to have a string ' + '`%s` in order to refetch, got `%s`.', identifierField, identifierValue) : void 0;\n }\n\n refetchVariables.id = identifierValue;\n }\n\n var refetchQuery = createOperationDescriptor(refetchableRequest, refetchVariables, {\n force: true\n }); // We call loadQuery which will start a network request if necessary\n // and update the querRef from useQueryLoader.\n // Note the following:\n // - loadQuery will dispose of any previously refetched queries.\n // - We use the variables extracted off the OperationDescriptor\n // so that they have been filtered out to include only the\n // variables actually declared in the query.\n\n loadQuery(refetchQuery.request.variables, {\n fetchPolicy: fetchPolicy,\n __environment: refetchEnvironment,\n __nameForWarning: 'refetch'\n });\n dispatch({\n type: 'refetch',\n fetchPolicy: fetchPolicy,\n onComplete: onComplete,\n refetchEnvironment: refetchEnvironment,\n refetchQuery: refetchQuery,\n renderPolicy: renderPolicy\n });\n return {\n dispose: disposeQuery\n };\n }, // NOTE: We disable react-hooks-deps warning because:\n // - We know fragmentRefPathInResponse is static, so it can be omitted from\n // deps\n // - We know fragmentNode is static, so it can be omitted from deps.\n // - fragmentNode and parentFragmentRef are also captured by including\n // fragmentIdentifier\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [fragmentIdentifier, dispatch, disposeQuery, identifierValue]);\n}\n\nvar debugFunctions;\n\nif (process.env.NODE_ENV !== \"production\") {\n debugFunctions = {\n getInitialIDAndType: function getInitialIDAndType(memoRefetchVariables, fragmentRefPathInResponse, environment) {\n var _require5 = require('relay-runtime'),\n Record = _require5.Record; // $FlowFixMe[prop-missing]\n\n\n var id = memoRefetchVariables === null || memoRefetchVariables === void 0 ? void 0 : memoRefetchVariables.id;\n\n if (fragmentRefPathInResponse.length !== 1 || fragmentRefPathInResponse[0] !== 'node' || id == null) {\n return null;\n }\n\n var recordSource = environment.getStore().getSource();\n var record = recordSource.get(id);\n var typename = record && Record.getType(record);\n\n if (typename == null) {\n return null;\n }\n\n return {\n id: id,\n typename: typename\n };\n },\n checkSameTypeAfterRefetch: function checkSameTypeAfterRefetch(previousIDAndType, environment, fragmentNode, componentDisplayName) {\n var _require6 = require('relay-runtime'),\n Record = _require6.Record;\n\n if (!previousIDAndType) {\n return;\n }\n\n var recordSource = environment.getStore().getSource();\n var record = recordSource.get(previousIDAndType.id);\n var typename = record && Record.getType(record);\n\n if (typename !== previousIDAndType.typename) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Call to `refetch` returned data with a different ' + '__typename: was `%s`, now `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements' + 'unique id requirement.', previousIDAndType.typename, typename, fragmentNode.name, componentDisplayName) : void 0;\n }\n },\n checkSameIDAfterRefetch: function checkSameIDAfterRefetch(previousIDAndTypename, refetchedFragmentRef, fragmentNode, componentDisplayName) {\n if (previousIDAndTypename == null) {\n return;\n }\n\n var _require7 = require('relay-runtime'),\n ID_KEY = _require7.ID_KEY; // $FlowExpectedError[incompatible-use]\n\n\n var resultID = refetchedFragmentRef[ID_KEY];\n\n if (resultID != null && resultID !== previousIDAndTypename.id) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Call to `refetch` returned a different id, expected ' + '`%s`, got `%s`, on `%s` in `%s`. ' + 'Please make sure the server correctly implements ' + 'unique id requirement.', resultID, previousIDAndTypename.id, fragmentNode.name, componentDisplayName) : void 0;\n }\n }\n };\n}\n\nmodule.exports = useRefetchableFragmentNode;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ReactRelayContext = require('react-relay/ReactRelayContext');\n\nvar invariant = require('invariant');\n\nvar _require = require('react'),\n useContext = _require.useContext;\n\nfunction useRelayEnvironment() {\n var context = useContext(ReactRelayContext);\n !(context != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'useRelayEnvironment: Expected to have found a Relay environment provided by ' + 'a `RelayEnvironmentProvider` component. ' + 'This usually means that useRelayEnvironment was used in a ' + 'component that is not a descendant of a `RelayEnvironmentProvider`. ' + 'Please make sure a `RelayEnvironmentProvider` has been rendered somewhere ' + 'as a parent or ancestor of your component.') : invariant(false) : void 0;\n return context.environment;\n}\n\nmodule.exports = useRelayEnvironment;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('react'),\n useRef = _require.useRef;\n\nfunction useStaticFragmentNodeWarning(fragmentNode, warningContext) {\n if (process.env.NODE_ENV !== \"production\") {\n // This is calling `useRef` conditionally, but based on the environment\n // __DEV__ setting which shouldn't change. This allows us to only pay the\n // cost of `useRef` in development mode to produce the warning.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var initialPropRef = useRef(fragmentNode.name);\n process.env.NODE_ENV !== \"production\" ? warning(initialPropRef.current === fragmentNode.name, 'Relay: The %s has to remain the same over the lifetime of a component. ' + 'Changing it is not supported and will result in unexpected behavior.', warningContext) : void 0;\n }\n}\n\nmodule.exports = useStaticFragmentNodeWarning;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('react'),\n useEffect = _require.useEffect,\n useRef = _require.useRef;\n\n/**\n * This hook subscribes a callback to the invalidation state of the given data\n * ids.\n * Any time the invalidation state of the given data ids changes, the provided\n * callback will be called.\n * If new ids or a new callback are provided, the subscription will be\n * re-established and the previous one will be disposed.\n * The subscription will automatically be disposed on unmount\n */\nfunction useSubscribeToInvalidationState(dataIDs, callback) {\n var environment = useRelayEnvironment();\n var disposableRef = useRef(null);\n var stableDataIDs = Array.from(dataIDs).sort().join('');\n useEffect(function () {\n var store = environment.getStore();\n var invalidationState = store.lookupInvalidationState(dataIDs);\n var disposable = store.subscribeToInvalidationState(invalidationState, callback);\n disposableRef.current = disposable;\n return function () {\n return disposable.dispose();\n }; // Intentionally excluding dataIDs, since we're using stableDataIDs\n // instead\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stableDataIDs, callback, environment]);\n return {\n dispose: function dispose() {\n if (disposableRef.current != null) {\n disposableRef.current.dispose();\n }\n }\n };\n}\n\nmodule.exports = useSubscribeToInvalidationState;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar useRelayEnvironment = require('./useRelayEnvironment');\n\nvar _require = require('react'),\n useEffect = _require.useEffect;\n\nvar _require2 = require('relay-runtime'),\n requestSubscription = _require2.requestSubscription;\n\nfunction useSubscription(config, requestSubscriptionFn) {\n // N.B. this will re-subscribe every render if config or requestSubscriptionFn\n // are not memoized.\n // Please do not pass an object defined in-line.\n var actualRequestSubscription = requestSubscriptionFn !== null && requestSubscriptionFn !== void 0 ? requestSubscriptionFn : requestSubscription;\n var environment = useRelayEnvironment();\n useEffect(function () {\n // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n var _actualRequestSubscri = actualRequestSubscription(environment, config),\n dispose = _actualRequestSubscri.dispose; // $FlowFixMe[incompatible-call]\n\n\n return dispose;\n }, [environment, config, actualRequestSubscription]);\n}\n\nmodule.exports = useSubscription;","import { createContext } from 'react';\n\nvar SystemContext = /*#__PURE__*/createContext({});\n\nexport { SystemContext };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\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\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nexport { _objectSpread2 as _, _objectWithoutPropertiesLoose as a, _createForOfIteratorHelperLoose as b };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\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\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nexport { _objectWithoutPropertiesLoose as _, _objectSpread2 as a, _createForOfIteratorHelperLoose as b };\n","import { isObject } from './isObject.js';\n\n/**\n * Checks whether `arg` is a plain object or not.\n *\n * @returns {boolean}\n */\n\nfunction isPlainObject(arg) {\n var _proto$constructor;\n\n if (!isObject(arg)) return false;\n var proto = Object.getPrototypeOf(arg);\n if (proto == null) return true;\n return ((_proto$constructor = proto.constructor) === null || _proto$constructor === void 0 ? void 0 : _proto$constructor.toString()) === Object.toString();\n}\n\nexport { isPlainObject };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from './_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport './isObject.js';\nimport { isPlainObject } from './isPlainObject.js';\n\n/**\n * Splits an object (`props`) into a tuple where the first item is an object\n * with the passed `keys`, and the second item is an object with these keys\n * omitted.\n *\n * @deprecated will be removed in version 2\n *\n * @example\n * import { splitProps } from \"reakit-utils\";\n *\n * splitProps({ a: \"a\", b: \"b\" }, [\"a\"]); // [{ a: \"a\" }, { b: \"b\" }]\n */\n\nfunction __deprecatedSplitProps(props, keys) {\n var propsKeys = Object.keys(props);\n var picked = {};\n var omitted = {};\n\n for (var _i = 0, _propsKeys = propsKeys; _i < _propsKeys.length; _i++) {\n var key = _propsKeys[_i];\n\n if (keys.indexOf(key) >= 0) {\n picked[key] = props[key];\n } else {\n omitted[key] = props[key];\n }\n }\n\n return [picked, omitted];\n}\n/**\n * Splits an object (`props`) into a tuple where the first item\n * is the `state` property, and the second item is the rest of the properties.\n *\n * It is also backward compatible with version 1. If `keys` are passed then\n * splits an object (`props`) into a tuple where the first item is an object\n * with the passed `keys`, and the second item is an object with these keys\n * omitted.\n *\n * @example\n * import { splitProps } from \"reakit-utils\";\n *\n * splitProps({ a: \"a\", b: \"b\" }, [\"a\"]); // [{ a: \"a\" }, { b: \"b\" }]\n *\n * @example\n * import { splitProps } from \"reakit-utils\";\n *\n * splitProps({ state: { a: \"a\" }, b: \"b\" }); // [{ a: \"a\" }, { b: \"b\" }]\n */\n\n\nfunction splitProps(props, keys) {\n if (keys === void 0) {\n keys = [];\n }\n\n if (!isPlainObject(props.state)) {\n return __deprecatedSplitProps(props, keys);\n }\n\n var _deprecatedSplitProp = __deprecatedSplitProps(props, [].concat(keys, [\"state\"])),\n picked = _deprecatedSplitProp[0],\n omitted = _deprecatedSplitProp[1];\n\n var state = picked.state,\n restPicked = _objectWithoutPropertiesLoose(picked, [\"state\"]);\n\n return [_objectSpread2(_objectSpread2({}, state), restPicked), omitted];\n}\n\nexport { splitProps };\n","import { a as _objectSpread2 } from './_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport './isObject.js';\nimport { isPlainObject } from './isPlainObject.js';\n\n/**\n * This higher order functions take `propsAreEqual` function and\n * returns a new function which normalizes the props.\n *\n * Normalizing in our case is making sure the `propsAreEqual` works with\n * both version 1 (object spreading) and version 2 (state object) state passing.\n *\n * To achieve this, the returned function in case of a state object\n * will spread the state object in both `prev` and `next props.\n *\n * Other case it just returns the function as is which makes sure\n * that we are still backward compatible\n */\nfunction normalizePropsAreEqual(propsAreEqual) {\n if (propsAreEqual.name === \"normalizePropsAreEqualInner\") {\n return propsAreEqual;\n }\n\n return function normalizePropsAreEqualInner(prev, next) {\n if (!isPlainObject(prev.state) || !isPlainObject(next.state)) {\n return propsAreEqual(prev, next);\n }\n\n return propsAreEqual(_objectSpread2(_objectSpread2({}, prev.state), prev), _objectSpread2(_objectSpread2({}, next.state), next));\n };\n}\n\nexport { normalizePropsAreEqual };\n","import { forwardRef as forwardRef$1, memo as memo$1 } from 'react';\nimport './SystemContext.js';\nimport { a as _objectWithoutPropertiesLoose, _ as _objectSpread2 } from './_rollupPluginBabelHelpers-0c84a174.js';\nimport { useCreateElement } from './useCreateElement.js';\nimport { splitProps } from 'reakit-utils/splitProps';\nimport { shallowEqual } from 'reakit-utils/shallowEqual';\nimport { normalizePropsAreEqual } from 'reakit-utils/normalizePropsAreEqual';\n\nfunction forwardRef(component) {\n return /*#__PURE__*/forwardRef$1(component);\n}\n\nfunction memo(component, propsAreEqual) {\n return /*#__PURE__*/memo$1(component, propsAreEqual);\n}\n\n/**\n * Creates a React component.\n *\n * @example\n * import { createComponent } from \"reakit-system\";\n *\n * const A = createComponent({ as: \"a\" });\n *\n * @param options\n */\nfunction createComponent(_ref) {\n var type = _ref.as,\n useHook = _ref.useHook,\n shouldMemo = _ref.memo,\n _ref$propsAreEqual = _ref.propsAreEqual,\n propsAreEqual = _ref$propsAreEqual === void 0 ? useHook === null || useHook === void 0 ? void 0 : useHook.unstable_propsAreEqual : _ref$propsAreEqual,\n _ref$keys = _ref.keys,\n keys = _ref$keys === void 0 ? (useHook === null || useHook === void 0 ? void 0 : useHook.__keys) || [] : _ref$keys,\n _ref$useCreateElement = _ref.useCreateElement,\n useCreateElement$1 = _ref$useCreateElement === void 0 ? useCreateElement : _ref$useCreateElement;\n\n var Comp = function Comp(_ref2, ref) {\n var _ref2$as = _ref2.as,\n as = _ref2$as === void 0 ? type : _ref2$as,\n props = _objectWithoutPropertiesLoose(_ref2, [\"as\"]);\n\n if (useHook) {\n var _as$render;\n\n var _splitProps = splitProps(props, keys),\n _options = _splitProps[0],\n htmlProps = _splitProps[1];\n\n var _useHook = useHook(_options, _objectSpread2({\n ref: ref\n }, htmlProps)),\n wrapElement = _useHook.wrapElement,\n elementProps = _objectWithoutPropertiesLoose(_useHook, [\"wrapElement\"]); // @ts-ignore\n\n\n var asKeys = ((_as$render = as.render) === null || _as$render === void 0 ? void 0 : _as$render.__keys) || as.__keys;\n var asOptions = asKeys && splitProps(props, asKeys)[0];\n var allProps = asOptions ? _objectSpread2(_objectSpread2({}, elementProps), asOptions) : elementProps;\n\n var _element = useCreateElement$1(as, allProps);\n\n if (wrapElement) {\n return wrapElement(_element);\n }\n\n return _element;\n }\n\n return useCreateElement$1(as, _objectSpread2({\n ref: ref\n }, props));\n };\n\n if (process.env.NODE_ENV !== \"production\" && useHook) {\n Comp.displayName = useHook.name.replace(/^(unstable_)?use/, \"\");\n }\n\n Comp = forwardRef(Comp);\n\n if (shouldMemo) {\n Comp = memo(Comp, propsAreEqual && normalizePropsAreEqual(propsAreEqual));\n }\n\n Comp.__keys = keys;\n Comp.unstable_propsAreEqual = normalizePropsAreEqual(propsAreEqual || shallowEqual);\n return Comp;\n}\n\nexport { createComponent };\n","import { useDebugValue, useContext } from 'react';\nimport { SystemContext } from './SystemContext.js';\n\n/**\n * React custom hook that returns the value of any token defined in the\n * SystemContext. It's mainly used internally in [`useOptions`](#useoptions)\n * and [`useProps`](#useprops).\n *\n * @example\n * import { SystemProvider, useToken } from \"reakit-system\";\n *\n * const system = {\n * token: \"value\",\n * };\n *\n * function Component(props) {\n * const token = useToken(\"token\", \"default value\");\n * return
{token}
;\n * }\n *\n * function App() {\n * return (\n * \n * \n * \n * );\n * }\n */\n\nfunction useToken(token, defaultValue) {\n useDebugValue(token);\n var context = useContext(SystemContext);\n return context[token] != null ? context[token] : defaultValue;\n}\n\nexport { useToken };\n","import { useDebugValue } from 'react';\nimport './SystemContext.js';\nimport { useToken } from './useToken.js';\n\n/**\n * React custom hook that returns the props returned by a given\n * `use${name}Props` in the SystemContext.\n *\n * @example\n * import { SystemProvider, useProps } from \"reakit-system\";\n *\n * const system = {\n * useAProps(options, htmlProps) {\n * return {\n * ...htmlProps,\n * href: options.url,\n * };\n * },\n * };\n *\n * function A({ url, ...htmlProps }) {\n * const props = useProps(\"A\", { url }, htmlProps);\n * return
;\n * }\n *\n * function App() {\n * return (\n * \n * It will convert url into href in useAProps\n * \n * );\n * }\n */\n\nfunction useProps(name, options, htmlProps) {\n if (options === void 0) {\n options = {};\n }\n\n if (htmlProps === void 0) {\n htmlProps = {};\n }\n\n var hookName = \"use\" + name + \"Props\";\n useDebugValue(hookName);\n var useHook = useToken(hookName);\n\n if (useHook) {\n return useHook(options, htmlProps);\n }\n\n return htmlProps;\n}\n\nexport { useProps };\n","import { useDebugValue } from 'react';\nimport './SystemContext.js';\nimport { useToken } from './useToken.js';\nimport { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-0c84a174.js';\n\n/**\n * React custom hook that returns the options returned by a given\n * `use${name}Options` in the SystemContext.\n *\n * @example\n * import React from \"react\";\n * import { SystemProvider, useOptions } from \"reakit-system\";\n *\n * const system = {\n * useAOptions(options, htmlProps) {\n * return {\n * ...options,\n * url: htmlProps.href,\n * };\n * },\n * };\n *\n * function A({ url, ...htmlProps }) {\n * const options = useOptions(\"A\", { url }, htmlProps);\n * return ;\n * }\n *\n * function App() {\n * return (\n * \n * \n * It will convert href into url in useAOptions and then url into href in A\n * \n * \n * );\n * }\n */\n\nfunction useOptions(name, options, htmlProps) {\n if (options === void 0) {\n options = {};\n }\n\n if (htmlProps === void 0) {\n htmlProps = {};\n }\n\n var hookName = \"use\" + name + \"Options\";\n useDebugValue(hookName);\n var useHook = useToken(hookName);\n\n if (useHook) {\n return _objectSpread2(_objectSpread2({}, options), useHook(options, htmlProps));\n }\n\n return options;\n}\n\nexport { useOptions };\n","/**\n * Transforms `arg` into an array if it's not already.\n *\n * @example\n * import { toArray } from \"reakit-utils\";\n *\n * toArray(\"a\"); // [\"a\"]\n * toArray([\"a\"]); // [\"a\"]\n */\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\n\nexport { toArray };\n","import 'react';\nimport './SystemContext.js';\nimport './useToken.js';\nimport { useProps } from './useProps.js';\nimport { b as _createForOfIteratorHelperLoose } from './_rollupPluginBabelHelpers-0c84a174.js';\nimport { useOptions } from './useOptions.js';\nimport { shallowEqual } from 'reakit-utils/shallowEqual';\nimport { toArray } from 'reakit-utils/toArray';\n\n/**\n * Creates a React custom hook that will return component props.\n *\n * @example\n * import { createHook } from \"reakit-system\";\n *\n * const useA = createHook({\n * name: \"A\",\n * keys: [\"url\"], // custom props/options keys\n * useProps(options, htmlProps) {\n * return {\n * ...htmlProps,\n * href: options.url,\n * };\n * },\n * });\n *\n * function A({ url, ...htmlProps }) {\n * const props = useA({ url }, htmlProps);\n * return ;\n * }\n *\n * @param options\n */\nfunction createHook(options) {\n var _options$useState, _composedHooks$;\n\n var composedHooks = toArray(options.compose);\n\n var __useOptions = function __useOptions(hookOptions, htmlProps) {\n // Call the current hook's useOptions first\n if (options.useOptions) {\n hookOptions = options.useOptions(hookOptions, htmlProps);\n } // If there's name, call useOptions from the system context\n\n\n if (options.name) {\n hookOptions = useOptions(options.name, hookOptions, htmlProps);\n } // Run composed hooks useOptions\n\n\n if (options.compose) {\n for (var _iterator = _createForOfIteratorHelperLoose(composedHooks), _step; !(_step = _iterator()).done;) {\n var hook = _step.value;\n hookOptions = hook.__useOptions(hookOptions, htmlProps);\n }\n }\n\n return hookOptions;\n };\n\n var useHook = function useHook(hookOptions, htmlProps, unstable_ignoreUseOptions) {\n if (hookOptions === void 0) {\n hookOptions = {};\n }\n\n if (htmlProps === void 0) {\n htmlProps = {};\n }\n\n if (unstable_ignoreUseOptions === void 0) {\n unstable_ignoreUseOptions = false;\n }\n\n // This won't execute when useHook was called from within another useHook\n if (!unstable_ignoreUseOptions) {\n hookOptions = __useOptions(hookOptions, htmlProps);\n } // Call the current hook's useProps\n\n\n if (options.useProps) {\n htmlProps = options.useProps(hookOptions, htmlProps);\n } // If there's name, call useProps from the system context\n\n\n if (options.name) {\n htmlProps = useProps(options.name, hookOptions, htmlProps);\n }\n\n if (options.compose) {\n if (options.useComposeOptions) {\n hookOptions = options.useComposeOptions(hookOptions, htmlProps);\n }\n\n if (options.useComposeProps) {\n htmlProps = options.useComposeProps(hookOptions, htmlProps);\n } else {\n for (var _iterator2 = _createForOfIteratorHelperLoose(composedHooks), _step2; !(_step2 = _iterator2()).done;) {\n var hook = _step2.value;\n htmlProps = hook(hookOptions, htmlProps, true);\n }\n }\n } // Remove undefined values from htmlProps\n\n\n var finalHTMLProps = {};\n var definedHTMLProps = htmlProps || {};\n\n for (var prop in definedHTMLProps) {\n if (definedHTMLProps[prop] !== undefined) {\n finalHTMLProps[prop] = definedHTMLProps[prop];\n }\n }\n\n return finalHTMLProps;\n };\n\n useHook.__useOptions = __useOptions;\n var composedKeys = composedHooks.reduce(function (keys, hook) {\n keys.push.apply(keys, hook.__keys || []);\n return keys;\n }, []); // It's used by createComponent to split option props (keys) and html props\n\n useHook.__keys = [].concat(composedKeys, ((_options$useState = options.useState) === null || _options$useState === void 0 ? void 0 : _options$useState.__keys) || [], options.keys || []);\n useHook.unstable_propsAreEqual = options.propsAreEqual || ((_composedHooks$ = composedHooks[0]) === null || _composedHooks$ === void 0 ? void 0 : _composedHooks$.unstable_propsAreEqual) || shallowEqual;\n\n if (process.env.NODE_ENV !== \"production\" && options.name) {\n Object.defineProperty(useHook, \"name\", {\n value: \"use\" + options.name\n });\n }\n\n return useHook;\n}\n\nexport { createHook };\n","import { useContext, createElement } from 'react';\nimport { SystemContext } from './SystemContext.js';\nimport { a as _objectWithoutPropertiesLoose } from './_rollupPluginBabelHelpers-0c84a174.js';\n\nfunction isRenderProp(children) {\n return typeof children === \"function\";\n}\n\n/**\n * Custom hook that will call `children` if it's a function. If\n * `useCreateElement` has been passed to the context, it'll be used instead.\n *\n * @example\n * import React from \"react\";\n * import { SystemProvider, useCreateElement } from \"reakit-system\";\n *\n * const system = {\n * useCreateElement(type, props, children = props.children) {\n * // very similar to what `useCreateElement` does already\n * if (typeof children === \"function\") {\n * const { children: _, ...rest } = props;\n * return children(rest);\n * }\n * return React.createElement(type, props, children);\n * },\n * };\n *\n * function Component(props) {\n * return useCreateElement(\"div\", props);\n * }\n *\n * function App() {\n * return (\n * \n * {({ url }) => link}\n * \n * );\n * }\n */\n\nvar useCreateElement = function useCreateElement(type, props, children) {\n if (children === void 0) {\n children = props.children;\n }\n\n var context = useContext(SystemContext);\n\n if (context.useCreateElement) {\n return context.useCreateElement(type, props, children);\n }\n\n if (typeof type === \"string\" && isRenderProp(children)) {\n var _ = props.children,\n rest = _objectWithoutPropertiesLoose(props, [\"children\"]);\n\n return children(rest);\n }\n\n return /*#__PURE__*/createElement(type, props, children);\n};\n\nexport { useCreateElement };\n","import { getDocument } from './getDocument.js';\n\n// Thanks to Fluent UI for doing the [research on IE11 memory leak](https://github.com/microsoft/fluentui/pull/9010#issuecomment-490768427)\n\nvar _window; // Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\n\n\ntry {\n _window = window;\n} catch (e) {\n /* no-op */\n}\n/**\n * Returns `element.ownerDocument.defaultView || window`.\n */\n\n\nfunction getWindow(element) {\n if (!element) {\n return _window;\n }\n\n return getDocument(element).defaultView || _window;\n}\n\nexport { getWindow };\n","import './getDocument.js';\nimport { getWindow } from './getWindow.js';\n\nfunction checkIsBrowser() {\n var _window = getWindow();\n\n return Boolean(typeof _window !== \"undefined\" && _window.document && _window.document.createElement);\n}\n/**\n * It's `true` if it is running in a browser environment or `false` if it is not (SSR).\n *\n * @example\n * import { canUseDOM } from \"reakit-utils\";\n *\n * const title = canUseDOM ? document.title : \"\";\n */\n\n\nvar canUseDOM = checkIsBrowser();\n\nexport { canUseDOM };\n","/**\n * Similar to `Element.prototype.contains`, but a little bit faster when\n * `element` is the same as `child`.\n *\n * @example\n * import { contains } from \"reakit-utils\";\n *\n * contains(document.getElementById(\"parent\"), document.getElementById(\"child\"));\n */\nfunction contains(parent, child) {\n return parent === child || parent.contains(child);\n}\n\nexport { contains };\n","import { getDocument } from './getDocument.js';\n\n/**\n * Returns `element.ownerDocument.activeElement`.\n */\n\nfunction getActiveElement(element) {\n var _getDocument = getDocument(element),\n activeElement = _getDocument.activeElement;\n\n if (!(activeElement !== null && activeElement !== void 0 && activeElement.nodeName)) {\n // In IE11, activeElement might be an empty object if we're interacting\n // with elements inside of an iframe.\n return null;\n }\n\n return activeElement;\n}\n\nexport { getActiveElement };\n","/**\n * Returns `element.ownerDocument || document`.\n */\nfunction getDocument(element) {\n return element ? element.ownerDocument || element : document;\n}\n\nexport { getDocument };\n","import './getDocument.js';\nimport { getActiveElement } from './getActiveElement.js';\nimport { contains } from './contains.js';\n\n/**\n * Checks if `element` has focus within. Elements that are referenced by\n * `aria-activedescendant` are also considered.\n *\n * @example\n * import { hasFocusWithin } from \"reakit-utils\";\n *\n * hasFocusWithin(document.getElementById(\"id\"));\n */\n\nfunction hasFocusWithin(element) {\n var activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (contains(element, activeElement)) return true;\n var activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n if (activeDescendant === element.id) return true;\n return !!element.querySelector(\"#\" + activeDescendant);\n}\n\nexport { hasFocusWithin };\n","var buttonInputTypes = [\"button\", \"color\", \"file\", \"image\", \"reset\", \"submit\"];\n/**\n * Checks whether `element` is a native HTML button element.\n *\n * @example\n * import { isButton } from \"reakit-utils\";\n *\n * isButton(document.querySelector(\"button\")); // true\n * isButton(document.querySelector(\"input[type='button']\")); // true\n * isButton(document.querySelector(\"div\")); // false\n * isButton(document.querySelector(\"input[type='text']\")); // false\n * isButton(document.querySelector(\"div[role='button']\")); // false\n *\n * @returns {boolean}\n */\n\nfunction isButton(element) {\n if (element.tagName === \"BUTTON\") return true;\n\n if (element.tagName === \"INPUT\") {\n var input = element;\n return buttonInputTypes.indexOf(input.type) !== -1;\n }\n\n return false;\n}\n\nexport { isButton };\n","/**\n * Checks whether `arg` is an object or not.\n *\n * @returns {boolean}\n */\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg != null;\n}\n\nexport { isObject };\n","/**\n * Returns `true` if `event.target` and `event.currentTarget` are the same.\n */\nfunction isSelfTarget(event) {\n return event.target === event.currentTarget;\n}\n\nexport { isSelfTarget };\n","/**\n * Ponyfill for `Element.prototype.matches`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\nfunction matches(element, selectors) {\n if (\"matches\" in element) {\n return element.matches(selectors);\n }\n\n if (\"msMatchesSelector\" in element) {\n return element.msMatchesSelector(selectors);\n }\n\n return element.webkitMatchesSelector(selectors);\n}\n\nexport { matches };\n","/**\n * Compares two objects.\n *\n * @example\n * import { shallowEqual } from \"reakit-utils\";\n *\n * shallowEqual({ a: \"a\" }, {}); // false\n * shallowEqual({ a: \"a\" }, { b: \"b\" }); // false\n * shallowEqual({ a: \"a\" }, { a: \"a\" }); // true\n * shallowEqual({ a: \"a\" }, { a: \"a\", b: \"b\" }); // false\n */\nfunction shallowEqual(objA, objB) {\n if (objA === objB) return true;\n if (!objA) return false;\n if (!objB) return false;\n if (typeof objA !== \"object\") return false;\n if (typeof objB !== \"object\") return false;\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var length = aKeys.length;\n if (bKeys.length !== length) return false;\n\n for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n var key = _aKeys[_i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqual };\n","import './getDocument.js';\nimport { matches } from './matches.js';\nimport { closest } from './closest.js';\nimport { getActiveElement } from './getActiveElement.js';\n\n/** @module tabbable */\nvar selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), \" + \"textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], \" + \"iframe, object, embed, area[href], audio[controls], video[controls], \" + \"[contenteditable]:not([contenteditable='false'])\";\n\nfunction isVisible(element) {\n var htmlElement = element;\n return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nfunction hasNegativeTabIndex(element) {\n var tabIndex = parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\n/**\n * Checks whether `element` is focusable or not.\n *\n * @memberof tabbable\n *\n * @example\n * import { isFocusable } from \"reakit-utils\";\n *\n * isFocusable(document.querySelector(\"input\")); // true\n * isFocusable(document.querySelector(\"input[tabindex='-1']\")); // true\n * isFocusable(document.querySelector(\"input[hidden]\")); // false\n * isFocusable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isFocusable(element) {\n return matches(element, selector) && isVisible(element);\n}\n/**\n * Checks whether `element` is tabbable or not.\n *\n * @memberof tabbable\n *\n * @example\n * import { isTabbable } from \"reakit-utils\";\n *\n * isTabbable(document.querySelector(\"input\")); // true\n * isTabbable(document.querySelector(\"input[tabindex='-1']\")); // false\n * isTabbable(document.querySelector(\"input[hidden]\")); // false\n * isTabbable(document.querySelector(\"input:disabled\")); // false\n */\n\nfunction isTabbable(element) {\n return isFocusable(element) && !hasNegativeTabIndex(element);\n}\n/**\n * Returns all the focusable elements in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element[]}\n */\n\nfunction getAllFocusableIn(container) {\n var allFocusable = Array.from(container.querySelectorAll(selector));\n allFocusable.unshift(container);\n return allFocusable.filter(isFocusable);\n}\n/**\n * Returns the first focusable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element|null}\n */\n\nfunction getFirstFocusableIn(container) {\n var _getAllFocusableIn = getAllFocusableIn(container),\n first = _getAllFocusableIn[0];\n\n return first || null;\n}\n/**\n * Returns all the tabbable elements in `container`, including the container\n * itself.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return focusable elements if there are no tabbable ones.\n *\n * @returns {Element[]}\n */\n\nfunction getAllTabbableIn(container, fallbackToFocusable) {\n var allFocusable = Array.from(container.querySelectorAll(selector));\n var allTabbable = allFocusable.filter(isTabbable);\n\n if (isTabbable(container)) {\n allTabbable.unshift(container);\n }\n\n if (!allTabbable.length && fallbackToFocusable) {\n return allFocusable;\n }\n\n return allTabbable;\n}\n/**\n * Returns the first tabbable element in `container`, including the container\n * itself if it's tabbable.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the first focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getFirstTabbableIn(container, fallbackToFocusable) {\n var _getAllTabbableIn = getAllTabbableIn(container, fallbackToFocusable),\n first = _getAllTabbableIn[0];\n\n return first || null;\n}\n/**\n * Returns the last tabbable element in `container`, including the container\n * itself if it's tabbable.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the last focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getLastTabbableIn(container, fallbackToFocusable) {\n var allTabbable = getAllTabbableIn(container, fallbackToFocusable);\n return allTabbable[allTabbable.length - 1] || null;\n}\n/**\n * Returns the next tabbable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the next focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getNextTabbableIn(container, fallbackToFocusable) {\n var activeElement = getActiveElement(container);\n var allFocusable = getAllFocusableIn(container);\n var index = allFocusable.indexOf(activeElement);\n var slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\n/**\n * Returns the previous tabbable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the previous focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getPreviousTabbableIn(container, fallbackToFocusable) {\n var activeElement = getActiveElement(container);\n var allFocusable = getAllFocusableIn(container).reverse();\n var index = allFocusable.indexOf(activeElement);\n var slice = allFocusable.slice(index + 1);\n return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\n/**\n * Returns the closest focusable element.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element|null}\n */\n\nfunction getClosestFocusable(element) {\n while (element && !isFocusable(element)) {\n element = closest(element, selector);\n }\n\n return element;\n}\n\nexport { getAllFocusableIn, getAllTabbableIn, getClosestFocusable, getFirstFocusableIn, getFirstTabbableIn, getLastTabbableIn, getNextTabbableIn, getPreviousTabbableIn, isFocusable, isTabbable };\n","import { useMemo } from 'react';\n\n// https://github.com/mui-org/material-ui/blob/2bcc874cf07b81202968f769cb9c2398c7c11311/packages/material-ui/src/utils/useForkRef.js\n\nfunction setRef(ref, value) {\n if (value === void 0) {\n value = null;\n }\n\n if (!ref) return;\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n ref.current = value;\n }\n}\n/**\n * Merges up to two React Refs into a single memoized function React Ref so you\n * can pass it to an element.\n *\n * @example\n * import React from \"react\";\n * import { useForkRef } from \"reakit-utils\";\n *\n * const Component = React.forwardRef((props, ref) => {\n * const internalRef = React.useRef();\n * return
;\n * });\n */\n\n\nfunction useForkRef(refA, refB) {\n return useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (value) {\n setRef(refA, value);\n setRef(refB, value);\n };\n }, [refA, refB]);\n}\n\nexport { useForkRef };\n","import { useEffect, useLayoutEffect } from 'react';\nimport './getDocument.js';\nimport './getWindow.js';\nimport { canUseDOM } from './canUseDOM.js';\n\n/**\n * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side\n * rendering.\n */\n\nvar useIsomorphicEffect = !canUseDOM ? useEffect : useLayoutEffect;\n\nexport { useIsomorphicEffect };\n","import { useRef } from 'react';\nimport './getDocument.js';\nimport './getWindow.js';\nimport './canUseDOM.js';\nimport { useIsomorphicEffect } from './useIsomorphicEffect.js';\n\n/**\n * A `React.Ref` that keeps track of the passed `value`.\n */\n\nfunction useLiveRef(value) {\n var ref = useRef(value);\n useIsomorphicEffect(function () {\n ref.current = value;\n });\n return ref;\n}\n\nexport { useLiveRef };\n","import 'reakit-utils/flatten';\nimport { warning } from './warning.js';\nimport { useEffect } from 'react';\nimport { isObject } from 'reakit-utils/isObject';\n\nfunction isRefObject(ref) {\n return isObject(ref) && \"current\" in ref;\n}\n/**\n * Logs `messages` to the console using `console.warn` based on a `condition`.\n * This should be used inside components.\n */\n\n\nfunction useWarning(condition) {\n for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n messages[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning.apply(void 0, [condition].concat(messages.map(function (message) {\n return isRefObject(message) ? message.current : message;\n }))) : void 0;\n }, [condition]);\n }\n}\n\nexport { useWarning };\n","import 'reakit-utils/flatten';\nexport { warning } from './warning.js';\nimport 'react';\nimport 'reakit-utils/isObject';\nexport { useWarning } from './useWarning.js';\n","import { useState } from 'react';\n\n/**\n * React custom hook that returns the very first value passed to `initialState`,\n * even if it changes between re-renders.\n */\nfunction useSealedState(initialState) {\n var _React$useState = useState(initialState),\n sealed = _React$useState[0];\n\n return sealed;\n}\n\nexport { useSealedState };\n","import { createContext, useRef, useCallback, createElement } from 'react';\n\nvar defaultPrefix = \"id\";\nfunction generateRandomString(prefix) {\n if (prefix === void 0) {\n prefix = defaultPrefix;\n }\n\n return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(32).substr(2, 6);\n}\n\nvar unstable_IdContext = /*#__PURE__*/createContext(generateRandomString);\nfunction unstable_IdProvider(_ref) {\n var children = _ref.children,\n _ref$prefix = _ref.prefix,\n prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;\n var count = useRef(0);\n var generateId = useCallback(function (localPrefix) {\n if (localPrefix === void 0) {\n localPrefix = prefix;\n }\n\n return \"\" + (localPrefix ? localPrefix + \"-\" : \"\") + ++count.current;\n }, [prefix]);\n return /*#__PURE__*/createElement(unstable_IdContext.Provider, {\n value: generateId\n }, children);\n}\n\nexport { unstable_IdContext, unstable_IdProvider };\n","import { useContext, useRef, useState } from 'react';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport { unstable_IdContext } from './IdProvider.js';\n\nfunction unstable_useIdState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n initialBaseId = _useSealedState.baseId;\n\n var generateId = useContext(unstable_IdContext);\n var idCountRef = useRef(0);\n\n var _React$useState = useState(function () {\n return initialBaseId || generateId();\n }),\n baseId = _React$useState[0],\n setBaseId = _React$useState[1];\n\n return {\n baseId: baseId,\n setBaseId: setBaseId,\n unstable_idCountRef: idCountRef\n };\n}\n\nexport { unstable_useIdState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { useState, useEffect, useCallback, useRef } from 'react';\nimport { warning } from 'reakit-warning';\nimport { useIsomorphicEffect } from 'reakit-utils/useIsomorphicEffect';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport '../Id/IdProvider.js';\nimport { unstable_useIdState } from '../Id/IdState.js';\n\nfunction useLastValue(value) {\n var lastValue = useRef(null);\n useIsomorphicEffect(function () {\n lastValue.current = value;\n }, [value]);\n return lastValue;\n}\n\nfunction useDisclosureState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$visib = _useSealedState.visible,\n initialVisible = _useSealedState$visib === void 0 ? false : _useSealedState$visib,\n _useSealedState$anima = _useSealedState.animated,\n initialAnimated = _useSealedState$anima === void 0 ? false : _useSealedState$anima,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"visible\", \"animated\"]);\n\n var id = unstable_useIdState(sealed);\n\n var _React$useState = useState(initialVisible),\n visible = _React$useState[0],\n setVisible = _React$useState[1];\n\n var _React$useState2 = useState(initialAnimated),\n animated = _React$useState2[0],\n setAnimated = _React$useState2[1];\n\n var _React$useState3 = useState(false),\n animating = _React$useState3[0],\n setAnimating = _React$useState3[1];\n\n var lastVisible = useLastValue(visible);\n var visibleHasChanged = lastVisible.current != null && lastVisible.current !== visible;\n\n if (animated && !animating && visibleHasChanged) {\n // Sets animating to true when when visible is updated\n setAnimating(true);\n }\n\n useEffect(function () {\n if (typeof animated === \"number\" && animating) {\n var timeout = setTimeout(function () {\n return setAnimating(false);\n }, animated);\n return function () {\n clearTimeout(timeout);\n };\n }\n\n if (animated && animating && process.env.NODE_ENV === \"development\") {\n var _timeout = setTimeout(function () {\n process.env.NODE_ENV !== \"production\" ? warning(animating, \"It's been 8 seconds but stopAnimation has not been called. Does the disclousure element have a CSS transition?\") : void 0;\n }, 8000);\n\n return function () {\n clearTimeout(_timeout);\n };\n }\n\n return function () {};\n }, [animated, animating]);\n var show = useCallback(function () {\n return setVisible(true);\n }, []);\n var hide = useCallback(function () {\n return setVisible(false);\n }, []);\n var toggle = useCallback(function () {\n return setVisible(function (v) {\n return !v;\n });\n }, []);\n var stopAnimation = useCallback(function () {\n return setAnimating(false);\n }, []);\n return _objectSpread2(_objectSpread2({}, id), {}, {\n visible: visible,\n animated: animated,\n animating: animating,\n show: show,\n hide: hide,\n toggle: toggle,\n setVisible: setVisible,\n setAnimated: setAnimated,\n stopAnimation: stopAnimation\n });\n}\n\nexport { useDisclosureState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { useState, useRef } from 'react';\nimport 'reakit-warning';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport '../Id/IdProvider.js';\nimport '../Id/IdState.js';\nimport { useDisclosureState } from '../Disclosure/DisclosureState.js';\n\nfunction useDialogState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$modal = _useSealedState.modal,\n initialModal = _useSealedState$modal === void 0 ? true : _useSealedState$modal,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"modal\"]);\n\n var disclosure = useDisclosureState(sealed);\n\n var _React$useState = useState(initialModal),\n modal = _React$useState[0],\n setModal = _React$useState[1];\n\n var disclosureRef = useRef(null);\n return _objectSpread2(_objectSpread2({}, disclosure), {}, {\n modal: modal,\n setModal: setModal,\n unstable_disclosureRef: disclosureRef\n });\n}\n\nexport { useDialogState };\n","import { _ as _objectWithoutPropertiesLoose } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport { shallowEqual } from 'reakit-utils/shallowEqual';\n\n// Automatically generated\nvar ROLE_KEYS = [\"unstable_system\"];\n\nvar useRole = createHook({\n name: \"Role\",\n keys: ROLE_KEYS,\n propsAreEqual: function propsAreEqual(prev, next) {\n var prevSystem = prev.unstable_system,\n prevProps = _objectWithoutPropertiesLoose(prev, [\"unstable_system\"]);\n\n var nextSystem = next.unstable_system,\n nextProps = _objectWithoutPropertiesLoose(next, [\"unstable_system\"]);\n\n if (prevSystem !== nextSystem && !shallowEqual(prevSystem, nextSystem)) {\n return false;\n }\n\n return shallowEqual(prevProps, nextProps);\n }\n});\nvar Role = createComponent({\n as: \"div\",\n useHook: useRole\n});\n\nexport { Role, useRole };\n","// Automatically generated\nvar DISCLOSURE_STATE_KEYS = [\"baseId\", \"unstable_idCountRef\", \"visible\", \"animated\", \"animating\", \"setBaseId\", \"show\", \"hide\", \"toggle\", \"setVisible\", \"setAnimated\", \"stopAnimation\"];\nvar DISCLOSURE_KEYS = DISCLOSURE_STATE_KEYS;\nvar DISCLOSURE_CONTENT_KEYS = DISCLOSURE_KEYS;\n\nexport { DISCLOSURE_KEYS as D, DISCLOSURE_CONTENT_KEYS as a };\n","// Automatically generated\nvar DIALOG_STATE_KEYS = [\"baseId\", \"unstable_idCountRef\", \"visible\", \"animated\", \"animating\", \"setBaseId\", \"show\", \"hide\", \"toggle\", \"setVisible\", \"setAnimated\", \"stopAnimation\", \"modal\", \"unstable_disclosureRef\", \"setModal\"];\nvar DIALOG_KEYS = [].concat(DIALOG_STATE_KEYS, [\"hideOnEsc\", \"hideOnClickOutside\", \"preventBodyScroll\", \"unstable_initialFocusRef\", \"unstable_finalFocusRef\", \"unstable_orphan\", \"unstable_autoFocusOnShow\", \"unstable_autoFocusOnHide\"]);\nvar DIALOG_BACKDROP_KEYS = DIALOG_STATE_KEYS;\nvar DIALOG_DISCLOSURE_KEYS = DIALOG_BACKDROP_KEYS;\n\nexport { DIALOG_KEYS as D, DIALOG_BACKDROP_KEYS as a, DIALOG_DISCLOSURE_KEYS as b };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\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\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nexport { _objectWithoutPropertiesLoose as _, _objectSpread2 as a, _createForOfIteratorHelperLoose as b };\n","/**\n * Relay v12.0.0\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\nmodule.exports = require('./lib/index.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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ConnectionHandler = require('./connection/ConnectionHandler');\n\nvar MutationHandlers = require('./connection/MutationHandlers');\n\nvar invariant = require('invariant');\n\nfunction RelayDefaultHandlerProvider(handle) {\n switch (handle) {\n case 'connection':\n return ConnectionHandler;\n\n case 'deleteRecord':\n return MutationHandlers.DeleteRecordHandler;\n\n case 'deleteEdge':\n return MutationHandlers.DeleteEdgeHandler;\n\n case 'appendEdge':\n return MutationHandlers.AppendEdgeHandler;\n\n case 'prependEdge':\n return MutationHandlers.PrependEdgeHandler;\n\n case 'appendNode':\n return MutationHandlers.AppendNodeHandler;\n\n case 'prependNode':\n return MutationHandlers.PrependNodeHandler;\n }\n\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayDefaultHandlerProvider: No handler provided for `%s`.', handle) : invariant(false) : void 0;\n}\n\nmodule.exports = RelayDefaultHandlerProvider;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ConnectionInterface = require('./ConnectionInterface');\n\nvar getRelayHandleKey = require('../../util/getRelayHandleKey');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('../../store/ClientID'),\n generateClientID = _require.generateClientID;\n\nvar _require2 = require('../../store/RelayStoreUtils'),\n getStableStorageKey = _require2.getStableStorageKey;\n\nvar CONNECTION = 'connection'; // Per-instance incrementing index used to generate unique edge IDs\n\nvar NEXT_EDGE_INDEX = '__connection_next_edge_index';\n/**\n * @public\n *\n * A default runtime handler for connection fields that appends newly fetched\n * edges onto the end of a connection, regardless of the arguments used to fetch\n * those edges.\n */\n\nfunction update(store, payload) {\n var record = store.get(payload.dataID);\n\n if (!record) {\n return;\n }\n\n var _ConnectionInterface$ = ConnectionInterface.get(),\n EDGES = _ConnectionInterface$.EDGES,\n END_CURSOR = _ConnectionInterface$.END_CURSOR,\n HAS_NEXT_PAGE = _ConnectionInterface$.HAS_NEXT_PAGE,\n HAS_PREV_PAGE = _ConnectionInterface$.HAS_PREV_PAGE,\n PAGE_INFO = _ConnectionInterface$.PAGE_INFO,\n PAGE_INFO_TYPE = _ConnectionInterface$.PAGE_INFO_TYPE,\n START_CURSOR = _ConnectionInterface$.START_CURSOR;\n\n var serverConnection = record.getLinkedRecord(payload.fieldKey);\n var serverPageInfo = serverConnection && serverConnection.getLinkedRecord(PAGE_INFO);\n\n if (!serverConnection) {\n record.setValue(null, payload.handleKey);\n return;\n } // In rare cases the handleKey field may be unset even though the client\n // connection record exists, in this case new edges should still be merged\n // into the existing client connection record (and the field reset to point\n // to that record).\n\n\n var clientConnectionID = generateClientID(record.getDataID(), payload.handleKey);\n var clientConnectionField = record.getLinkedRecord(payload.handleKey);\n var clientConnection = clientConnectionField !== null && clientConnectionField !== void 0 ? clientConnectionField : store.get(clientConnectionID);\n var clientPageInfo = clientConnection && clientConnection.getLinkedRecord(PAGE_INFO);\n\n if (!clientConnection) {\n // Initial fetch with data: copy fields from the server record\n var connection = store.create(clientConnectionID, serverConnection.getType());\n connection.setValue(0, NEXT_EDGE_INDEX);\n connection.copyFieldsFrom(serverConnection);\n var serverEdges = serverConnection.getLinkedRecords(EDGES);\n\n if (serverEdges) {\n serverEdges = serverEdges.map(function (edge) {\n return buildConnectionEdge(store, connection, edge);\n });\n connection.setLinkedRecords(serverEdges, EDGES);\n }\n\n record.setLinkedRecord(connection, payload.handleKey);\n clientPageInfo = store.create(generateClientID(connection.getDataID(), PAGE_INFO), PAGE_INFO_TYPE);\n clientPageInfo.setValue(false, HAS_NEXT_PAGE);\n clientPageInfo.setValue(false, HAS_PREV_PAGE);\n clientPageInfo.setValue(null, END_CURSOR);\n clientPageInfo.setValue(null, START_CURSOR);\n\n if (serverPageInfo) {\n clientPageInfo.copyFieldsFrom(serverPageInfo);\n }\n\n connection.setLinkedRecord(clientPageInfo, PAGE_INFO);\n } else {\n if (clientConnectionField == null) {\n // If the handleKey field was unset but the client connection record\n // existed, update the field to point to the record\n record.setLinkedRecord(clientConnection, payload.handleKey);\n }\n\n var _connection = clientConnection; // Subsequent fetches:\n // - updated fields on the connection\n // - merge prev/next edges, de-duplicating by node id\n // - synthesize page info fields\n\n var _serverEdges = serverConnection.getLinkedRecords(EDGES);\n\n if (_serverEdges) {\n _serverEdges = _serverEdges.map(function (edge) {\n return buildConnectionEdge(store, _connection, edge);\n });\n }\n\n var prevEdges = _connection.getLinkedRecords(EDGES);\n\n var prevPageInfo = _connection.getLinkedRecord(PAGE_INFO);\n\n _connection.copyFieldsFrom(serverConnection); // Reset EDGES and PAGE_INFO fields\n\n\n if (prevEdges) {\n _connection.setLinkedRecords(prevEdges, EDGES);\n }\n\n if (prevPageInfo) {\n _connection.setLinkedRecord(prevPageInfo, PAGE_INFO);\n }\n\n var nextEdges = [];\n var args = payload.args;\n\n if (prevEdges && _serverEdges) {\n // $FlowFixMe[prop-missing]\n if (args.after != null) {\n // Forward pagination from the end of the connection: append edges\n if (clientPageInfo && // $FlowFixMe[prop-missing]\n args.after === clientPageInfo.getValue(END_CURSOR)) {\n var nodeIDs = new Set();\n mergeEdges(prevEdges, nextEdges, nodeIDs);\n mergeEdges(_serverEdges, nextEdges, nodeIDs);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected after cursor `%s`, edges must ' + 'be fetched from the end of the list (`%s`).', args.after, clientPageInfo && clientPageInfo.getValue(END_CURSOR)) : void 0;\n return;\n } // $FlowFixMe[prop-missing]\n\n } else if (args.before != null) {\n // Backward pagination from the start of the connection: prepend edges\n if (clientPageInfo && // $FlowFixMe[prop-missing]\n args.before === clientPageInfo.getValue(START_CURSOR)) {\n var _nodeIDs = new Set();\n\n mergeEdges(_serverEdges, nextEdges, _nodeIDs);\n mergeEdges(prevEdges, nextEdges, _nodeIDs);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Unexpected before cursor `%s`, edges must ' + 'be fetched from the beginning of the list (`%s`).', args.before, clientPageInfo && clientPageInfo.getValue(START_CURSOR)) : void 0;\n return;\n }\n } else {\n // The connection was refetched from the beginning/end: replace edges\n nextEdges = _serverEdges;\n }\n } else if (_serverEdges) {\n nextEdges = _serverEdges;\n } else {\n nextEdges = prevEdges;\n } // Update edges only if they were updated, the null check is\n // for Flow (prevEdges could be null).\n\n\n if (nextEdges != null && nextEdges !== prevEdges) {\n _connection.setLinkedRecords(nextEdges, EDGES);\n } // Page info should be updated even if no new edge were returned.\n\n\n if (clientPageInfo && serverPageInfo) {\n // $FlowFixMe[prop-missing]\n if (args.after == null && args.before == null) {\n // The connection was refetched from the beginning/end: replace\n // page_info\n clientPageInfo.copyFieldsFrom(serverPageInfo); // $FlowFixMe[prop-missing]\n } else if (args.before != null || args.after == null && args.last) {\n clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_PREV_PAGE), HAS_PREV_PAGE);\n var startCursor = serverPageInfo.getValue(START_CURSOR);\n\n if (typeof startCursor === 'string') {\n clientPageInfo.setValue(startCursor, START_CURSOR);\n } // $FlowFixMe[prop-missing]\n\n } else if (args.after != null || args.before == null && args.first) {\n clientPageInfo.setValue(!!serverPageInfo.getValue(HAS_NEXT_PAGE), HAS_NEXT_PAGE);\n var endCursor = serverPageInfo.getValue(END_CURSOR);\n\n if (typeof endCursor === 'string') {\n clientPageInfo.setValue(endCursor, END_CURSOR);\n }\n }\n }\n }\n}\n/**\n * @public\n *\n * Given a record and the name of the schema field for which a connection was\n * fetched, returns the linked connection record.\n *\n * Example:\n *\n * Given that data has already been fetched on some user `` on the `friends`\n * field:\n *\n * ```\n * fragment FriendsFragment on User {\n * friends(first: 10) @connection(key: \"FriendsFragment_friends\") {\n * edges {\n * node {\n * id\n * }\n * }\n * }\n * }\n * ```\n *\n * The `friends` connection record can be accessed with:\n *\n * ```\n * store => {\n * const user = store.get('');\n * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');\n * // Access fields on the connection:\n * const edges = friends.getLinkedRecords('edges');\n * }\n * ```\n *\n * TODO: t15733312\n * Currently we haven't run into this case yet, but we need to add a `getConnections`\n * that returns an array of the connections under the same `key` regardless of the variables.\n */\n\n\nfunction getConnection(record, key, filters) {\n var handleKey = getRelayHandleKey(CONNECTION, key, null);\n return record.getLinkedRecord(handleKey, filters);\n}\n/**\n * @public\n *\n * Given a record ID, the key of a connection field, and optional filters used\n * to identify the connection, returns the connection ID.\n *\n * Example:\n *\n * Given that data has already been fetched on some user `` on the `friends`\n * field:\n *\n * ```\n * fragment FriendsFragment on User {\n * friends(first: 10) @connection(key: \"FriendsFragment_friends\") {\n * edges {\n * node {\n * id\n * }\n * }\n * }\n * }\n * ```\n *\n * The ID of the `friends` connection record can be accessed with:\n *\n * ```\n * store => {\n * const connectionID = ConnectionHandler.getConnectionID('', 'FriendsFragment_friends');\n * }\n * ```\n */\n\n\nfunction getConnectionID(recordID, key, filters) {\n var handleKey = getRelayHandleKey(CONNECTION, key, null);\n var storageKey = getStableStorageKey(handleKey, filters);\n return generateClientID(recordID, storageKey);\n}\n/**\n * @public\n *\n * Inserts an edge after the given cursor, or at the end of the list if no\n * cursor is provided.\n *\n * Example:\n *\n * Given that data has already been fetched on some user `` on the `friends`\n * field:\n *\n * ```\n * fragment FriendsFragment on User {\n * friends(first: 10) @connection(key: \"FriendsFragment_friends\") {\n * edges {\n * node {\n * id\n * }\n * }\n * }\n * }\n * ```\n *\n * An edge can be appended with:\n *\n * ```\n * store => {\n * const user = store.get('');\n * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');\n * const edge = store.create('', 'FriendsEdge');\n * ConnectionHandler.insertEdgeAfter(friends, edge);\n * }\n * ```\n */\n\n\nfunction insertEdgeAfter(record, newEdge, cursor) {\n var _ConnectionInterface$2 = ConnectionInterface.get(),\n CURSOR = _ConnectionInterface$2.CURSOR,\n EDGES = _ConnectionInterface$2.EDGES;\n\n var edges = record.getLinkedRecords(EDGES);\n\n if (!edges) {\n record.setLinkedRecords([newEdge], EDGES);\n return;\n }\n\n var nextEdges;\n\n if (cursor == null) {\n nextEdges = edges.concat(newEdge);\n } else {\n nextEdges = [];\n var foundCursor = false;\n\n for (var ii = 0; ii < edges.length; ii++) {\n var edge = edges[ii];\n nextEdges.push(edge);\n\n if (edge == null) {\n continue;\n }\n\n var edgeCursor = edge.getValue(CURSOR);\n\n if (cursor === edgeCursor) {\n nextEdges.push(newEdge);\n foundCursor = true;\n }\n }\n\n if (!foundCursor) {\n nextEdges.push(newEdge);\n }\n }\n\n record.setLinkedRecords(nextEdges, EDGES);\n}\n/**\n * @public\n *\n * Creates an edge for a connection record, given a node and edge type.\n */\n\n\nfunction createEdge(store, record, node, edgeType) {\n var _ConnectionInterface$3 = ConnectionInterface.get(),\n NODE = _ConnectionInterface$3.NODE; // An index-based client ID could easily conflict (unless it was\n // auto-incrementing, but there is nowhere to the store the id)\n // Instead, construct a client ID based on the connection ID and node ID,\n // which will only conflict if the same node is added to the same connection\n // twice. This is acceptable since the `insertEdge*` functions ignore\n // duplicates.\n\n\n var edgeID = generateClientID(record.getDataID(), node.getDataID());\n var edge = store.get(edgeID);\n\n if (!edge) {\n edge = store.create(edgeID, edgeType);\n }\n\n edge.setLinkedRecord(node, NODE);\n\n if (edge.getValue('cursor') == null) {\n // Always use null instead of undefined value for cursor\n // to avoid considering it as missing data\n edge.setValue(null, 'cursor');\n }\n\n return edge;\n}\n/**\n * @public\n *\n * Inserts an edge before the given cursor, or at the beginning of the list if\n * no cursor is provided.\n *\n * Example:\n *\n * Given that data has already been fetched on some user `` on the `friends`\n * field:\n *\n * ```\n * fragment FriendsFragment on User {\n * friends(first: 10) @connection(key: \"FriendsFragment_friends\") {\n * edges {\n * node {\n * id\n * }\n * }\n * }\n * }\n * ```\n *\n * An edge can be prepended with:\n *\n * ```\n * store => {\n * const user = store.get('');\n * const friends = ConnectionHandler.getConnection(user, 'FriendsFragment_friends');\n * const edge = store.create('', 'FriendsEdge');\n * ConnectionHandler.insertEdgeBefore(friends, edge);\n * }\n * ```\n */\n\n\nfunction insertEdgeBefore(record, newEdge, cursor) {\n var _ConnectionInterface$4 = ConnectionInterface.get(),\n CURSOR = _ConnectionInterface$4.CURSOR,\n EDGES = _ConnectionInterface$4.EDGES;\n\n var edges = record.getLinkedRecords(EDGES);\n\n if (!edges) {\n record.setLinkedRecords([newEdge], EDGES);\n return;\n }\n\n var nextEdges;\n\n if (cursor == null) {\n nextEdges = [newEdge].concat(edges);\n } else {\n nextEdges = [];\n var foundCursor = false;\n\n for (var ii = 0; ii < edges.length; ii++) {\n var edge = edges[ii];\n\n if (edge != null) {\n var edgeCursor = edge.getValue(CURSOR);\n\n if (cursor === edgeCursor) {\n nextEdges.push(newEdge);\n foundCursor = true;\n }\n }\n\n nextEdges.push(edge);\n }\n\n if (!foundCursor) {\n nextEdges.unshift(newEdge);\n }\n }\n\n record.setLinkedRecords(nextEdges, EDGES);\n}\n/**\n * @public\n *\n * Remove any edges whose `node.id` matches the given id.\n */\n\n\nfunction deleteNode(record, nodeID) {\n var _ConnectionInterface$5 = ConnectionInterface.get(),\n EDGES = _ConnectionInterface$5.EDGES,\n NODE = _ConnectionInterface$5.NODE;\n\n var edges = record.getLinkedRecords(EDGES);\n\n if (!edges) {\n return;\n }\n\n var nextEdges;\n\n for (var ii = 0; ii < edges.length; ii++) {\n var edge = edges[ii];\n var node = edge && edge.getLinkedRecord(NODE);\n\n if (node != null && node.getDataID() === nodeID) {\n if (nextEdges === undefined) {\n nextEdges = edges.slice(0, ii);\n }\n } else if (nextEdges !== undefined) {\n nextEdges.push(edge);\n }\n }\n\n if (nextEdges !== undefined) {\n record.setLinkedRecords(nextEdges, EDGES);\n }\n}\n/**\n * @internal\n *\n * Creates a copy of an edge with a unique ID based on per-connection-instance\n * incrementing edge index. This is necessary to avoid collisions between edges,\n * which can occur because (edge) client IDs are assigned deterministically\n * based on the path from the nearest node with an id.\n *\n * Example: if the first N edges of the same connection are refetched, the edges\n * from the second fetch will be assigned the same IDs as the first fetch, even\n * though the nodes they point to may be different (or the same and in different\n * order).\n */\n\n\nfunction buildConnectionEdge(store, connection, edge) {\n if (edge == null) {\n return edge;\n }\n\n var _ConnectionInterface$6 = ConnectionInterface.get(),\n EDGES = _ConnectionInterface$6.EDGES;\n\n var edgeIndex = connection.getValue(NEXT_EDGE_INDEX);\n !(typeof edgeIndex === 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ConnectionHandler: Expected %s to be a number, got `%s`.', NEXT_EDGE_INDEX, edgeIndex) : invariant(false) : void 0;\n var edgeID = generateClientID(connection.getDataID(), EDGES, edgeIndex);\n var connectionEdge = store.create(edgeID, edge.getType());\n connectionEdge.copyFieldsFrom(edge);\n\n if (connectionEdge.getValue('cursor') == null) {\n // Always use null instead of undefined value for cursor\n // to avoid considering it as missing data\n connectionEdge.setValue(null, 'cursor');\n }\n\n connection.setValue(edgeIndex + 1, NEXT_EDGE_INDEX);\n return connectionEdge;\n}\n/**\n * @internal\n *\n * Adds the source edges to the target edges, skipping edges with\n * duplicate node ids.\n */\n\n\nfunction mergeEdges(sourceEdges, targetEdges, nodeIDs) {\n var _ConnectionInterface$7 = ConnectionInterface.get(),\n NODE = _ConnectionInterface$7.NODE;\n\n for (var ii = 0; ii < sourceEdges.length; ii++) {\n var edge = sourceEdges[ii];\n\n if (!edge) {\n continue;\n }\n\n var node = edge.getLinkedRecord(NODE);\n var nodeID = node && node.getDataID();\n\n if (nodeID) {\n if (nodeIDs.has(nodeID)) {\n continue;\n }\n\n nodeIDs.add(nodeID);\n }\n\n targetEdges.push(edge);\n }\n}\n\nmodule.exports = {\n buildConnectionEdge: buildConnectionEdge,\n createEdge: createEdge,\n deleteNode: deleteNode,\n getConnection: getConnection,\n getConnectionID: getConnectionID,\n insertEdgeAfter: insertEdgeAfter,\n insertEdgeBefore: insertEdgeBefore,\n update: update\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar CONNECTION_CALLS = {\n after: true,\n before: true,\n find: true,\n first: true,\n last: true,\n surrounds: true\n};\nvar config = {\n CLIENT_MUTATION_ID: 'clientMutationId',\n CURSOR: 'cursor',\n EDGES: 'edges',\n END_CURSOR: 'endCursor',\n HAS_NEXT_PAGE: 'hasNextPage',\n HAS_PREV_PAGE: 'hasPreviousPage',\n NODE: 'node',\n PAGE_INFO_TYPE: 'PageInfo',\n PAGE_INFO: 'pageInfo',\n START_CURSOR: 'startCursor'\n};\n/**\n * @internal\n *\n * Defines logic relevant to the informal \"Connection\" GraphQL interface.\n */\n\nvar ConnectionInterface = {\n inject: function inject(newConfig) {\n config = newConfig;\n },\n get: function get() {\n return config;\n },\n\n /**\n * Checks whether a call exists strictly to encode which parts of a connection\n * to fetch. Fields that only differ by connection call values should have the\n * same identity.\n */\n isConnectionCall: function isConnectionCall(call) {\n return CONNECTION_CALLS.hasOwnProperty(call.name);\n }\n};\nmodule.exports = ConnectionInterface;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar ConnectionHandler = require('./ConnectionHandler');\n\nvar ConnectionInterface = require('./ConnectionInterface');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar DeleteRecordHandler = {\n update: function update(store, payload) {\n var record = store.get(payload.dataID);\n\n if (record != null) {\n var idOrIds = record.getValue(payload.fieldKey);\n\n if (typeof idOrIds === 'string') {\n store[\"delete\"](idOrIds);\n } else if (Array.isArray(idOrIds)) {\n idOrIds.forEach(function (id) {\n if (typeof id === 'string') {\n store[\"delete\"](id);\n }\n });\n }\n }\n }\n};\nvar DeleteEdgeHandler = {\n update: function update(store, payload) {\n var record = store.get(payload.dataID);\n\n if (record == null) {\n return;\n } // $FlowFixMe[prop-missing]\n\n\n var connections = payload.handleArgs.connections;\n !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n var idOrIds = record.getValue(payload.fieldKey);\n var idList = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n idList.forEach(function (id) {\n if (typeof id === 'string') {\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var connectionID = _step.value;\n var connection = store.get(connectionID);\n\n if (connection == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay][Mutation] The connection with id '\".concat(connectionID, \"' doesn't exist.\")) : void 0;\n continue;\n }\n\n ConnectionHandler.deleteNode(connection, id);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n });\n }\n};\nvar AppendEdgeHandler = {\n update: edgeUpdater(ConnectionHandler.insertEdgeAfter)\n};\nvar PrependEdgeHandler = {\n update: edgeUpdater(ConnectionHandler.insertEdgeBefore)\n};\nvar AppendNodeHandler = {\n update: nodeUpdater(ConnectionHandler.insertEdgeAfter)\n};\nvar PrependNodeHandler = {\n update: nodeUpdater(ConnectionHandler.insertEdgeBefore)\n};\n\nfunction edgeUpdater(insertFn) {\n return function (store, payload) {\n var _serverEdges;\n\n var record = store.get(payload.dataID);\n\n if (record == null) {\n return;\n } // $FlowFixMe[prop-missing]\n\n\n var connections = payload.handleArgs.connections;\n !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n var singleServerEdge, serverEdges;\n\n try {\n singleServerEdge = record.getLinkedRecord(payload.fieldKey, payload.args);\n } catch (_unused) {}\n\n if (!singleServerEdge) {\n try {\n serverEdges = record.getLinkedRecords(payload.fieldKey, payload.args);\n } catch (_unused2) {}\n }\n\n if (singleServerEdge == null && serverEdges == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'MutationHandlers: Expected the server edge to be non-null.') : void 0;\n return;\n }\n\n var _ConnectionInterface$ = ConnectionInterface.get(),\n NODE = _ConnectionInterface$.NODE,\n EDGES = _ConnectionInterface$.EDGES;\n\n var serverEdgeList = (_serverEdges = serverEdges) !== null && _serverEdges !== void 0 ? _serverEdges : [singleServerEdge];\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(serverEdgeList),\n _step2;\n\n try {\n var _loop = function _loop() {\n var serverEdge = _step2.value;\n\n if (serverEdge == null) {\n return \"continue\";\n }\n\n var serverNode = serverEdge.getLinkedRecord('node');\n\n if (!serverNode) {\n return \"continue\";\n }\n\n var serverNodeId = serverNode.getDataID();\n\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var connectionID = _step3.value;\n var connection = store.get(connectionID);\n\n if (connection == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay][Mutation] The connection with id '\".concat(connectionID, \"' doesn't exist.\")) : void 0;\n continue;\n }\n\n var nodeAlreadyExistsInConnection = (_connection$getLinked = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked === void 0 ? void 0 : _connection$getLinked.some(function (edge) {\n var _edge$getLinkedRecord;\n\n return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord === void 0 ? void 0 : _edge$getLinkedRecord.getDataID()) === serverNodeId;\n });\n\n if (nodeAlreadyExistsInConnection) {\n continue;\n }\n\n var clientEdge = ConnectionHandler.buildConnectionEdge(store, connection, serverEdge);\n !(clientEdge != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;\n insertFn(connection, clientEdge);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _connection$getLinked;\n\n var _ret = _loop();\n\n if (_ret === \"continue\") continue;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n };\n}\n\nfunction nodeUpdater(insertFn) {\n return function (store, payload) {\n var _serverNodes;\n\n var record = store.get(payload.dataID);\n\n if (record == null) {\n return;\n } // $FlowFixMe[prop-missing]\n\n\n var _payload$handleArgs = payload.handleArgs,\n connections = _payload$handleArgs.connections,\n edgeTypeName = _payload$handleArgs.edgeTypeName;\n !(connections != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected connection IDs to be specified.') : invariant(false) : void 0;\n !(edgeTypeName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Expected edge typename to be specified.') : invariant(false) : void 0;\n var singleServerNode;\n var serverNodes;\n\n try {\n singleServerNode = record.getLinkedRecord(payload.fieldKey, payload.args);\n } catch (_unused3) {}\n\n if (!singleServerNode) {\n try {\n serverNodes = record.getLinkedRecords(payload.fieldKey, payload.args);\n } catch (_unused4) {}\n }\n\n if (singleServerNode == null && serverNodes == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'MutationHandlers: Expected target node to exist.') : void 0;\n return;\n }\n\n var _ConnectionInterface$2 = ConnectionInterface.get(),\n NODE = _ConnectionInterface$2.NODE,\n EDGES = _ConnectionInterface$2.EDGES;\n\n var serverNodeList = (_serverNodes = serverNodes) !== null && _serverNodes !== void 0 ? _serverNodes : [singleServerNode];\n\n var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(serverNodeList),\n _step4;\n\n try {\n var _loop2 = function _loop2() {\n var serverNode = _step4.value;\n\n if (serverNode == null) {\n return \"continue\";\n }\n\n var serverNodeId = serverNode.getDataID();\n\n var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(connections),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var connectionID = _step5.value;\n var connection = store.get(connectionID);\n\n if (connection == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[Relay][Mutation] The connection with id '\".concat(connectionID, \"' doesn't exist.\")) : void 0;\n continue;\n }\n\n var nodeAlreadyExistsInConnection = (_connection$getLinked2 = connection.getLinkedRecords(EDGES)) === null || _connection$getLinked2 === void 0 ? void 0 : _connection$getLinked2.some(function (edge) {\n var _edge$getLinkedRecord2;\n\n return (edge === null || edge === void 0 ? void 0 : (_edge$getLinkedRecord2 = edge.getLinkedRecord(NODE)) === null || _edge$getLinkedRecord2 === void 0 ? void 0 : _edge$getLinkedRecord2.getDataID()) === serverNodeId;\n });\n\n if (nodeAlreadyExistsInConnection) {\n continue;\n }\n\n var clientEdge = ConnectionHandler.createEdge(store, connection, serverNode, edgeTypeName);\n !(clientEdge != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'MutationHandlers: Failed to build the edge.') : invariant(false) : void 0;\n insertFn(connection, clientEdge);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n };\n\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _connection$getLinked2;\n\n var _ret2 = _loop2();\n\n if (_ret2 === \"continue\") continue;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n };\n}\n\nmodule.exports = {\n AppendEdgeHandler: AppendEdgeHandler,\n DeleteRecordHandler: DeleteRecordHandler,\n PrependEdgeHandler: PrependEdgeHandler,\n AppendNodeHandler: AppendNodeHandler,\n PrependNodeHandler: PrependNodeHandler,\n DeleteEdgeHandler: DeleteEdgeHandler\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ConnectionHandler = require('./handlers/connection/ConnectionHandler');\n\nvar ConnectionInterface = require('./handlers/connection/ConnectionInterface');\n\nvar GraphQLTag = require('./query/GraphQLTag');\n\nvar MutationHandlers = require('./handlers/connection/MutationHandlers');\n\nvar PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry');\n\nvar RelayConcreteNode = require('./util/RelayConcreteNode');\n\nvar RelayConcreteVariables = require('./store/RelayConcreteVariables');\n\nvar RelayDeclarativeMutationConfig = require('./mutations/RelayDeclarativeMutationConfig');\n\nvar RelayDefaultHandleKey = require('./util/RelayDefaultHandleKey');\n\nvar RelayDefaultHandlerProvider = require('./handlers/RelayDefaultHandlerProvider');\n\nvar RelayError = require('./util/RelayError');\n\nvar RelayFeatureFlags = require('./util/RelayFeatureFlags');\n\nvar RelayModernEnvironment = require('./store/RelayModernEnvironment');\n\nvar RelayModernOperationDescriptor = require('./store/RelayModernOperationDescriptor');\n\nvar RelayModernRecord = require('./store/RelayModernRecord');\n\nvar RelayModernSelector = require('./store/RelayModernSelector');\n\nvar RelayModernStore = require('./store/RelayModernStore');\n\nvar RelayNetwork = require('./network/RelayNetwork');\n\nvar RelayObservable = require('./network/RelayObservable');\n\nvar RelayOperationTracker = require('./store/RelayOperationTracker');\n\nvar RelayProfiler = require('./util/RelayProfiler');\n\nvar RelayQueryResponseCache = require('./network/RelayQueryResponseCache');\n\nvar RelayRecordSource = require('./store/RelayRecordSource');\n\nvar RelayReplaySubject = require('./util/RelayReplaySubject');\n\nvar RelayStoreUtils = require('./store/RelayStoreUtils');\n\nvar ViewerPattern = require('./store/ViewerPattern');\n\nvar applyOptimisticMutation = require('./mutations/applyOptimisticMutation');\n\nvar commitLocalUpdate = require('./mutations/commitLocalUpdate');\n\nvar commitMutation = require('./mutations/commitMutation');\n\nvar createFragmentSpecResolver = require('./store/createFragmentSpecResolver');\n\nvar createPayloadFor3DField = require('./util/createPayloadFor3DField');\n\nvar createRelayContext = require('./store/createRelayContext');\n\nvar deepFreeze = require('./util/deepFreeze');\n\nvar fetchQuery = require('./query/fetchQuery');\n\nvar fetchQueryInternal = require('./query/fetchQueryInternal');\n\nvar fetchQuery_DEPRECATED = require('./query/fetchQuery_DEPRECATED');\n\nvar getFragmentIdentifier = require('./util/getFragmentIdentifier');\n\nvar getPaginationMetadata = require('./util/getPaginationMetadata');\n\nvar getPaginationVariables = require('./util/getPaginationVariables');\n\nvar getPendingOperationsForFragment = require('./util/getPendingOperationsForFragment');\n\nvar getRefetchMetadata = require('./util/getRefetchMetadata');\n\nvar getRelayHandleKey = require('./util/getRelayHandleKey');\n\nvar getRequestIdentifier = require('./util/getRequestIdentifier');\n\nvar getValueAtPath = require('./util/getValueAtPath');\n\nvar isPromise = require('./util/isPromise');\n\nvar isRelayModernEnvironment = require('./store/isRelayModernEnvironment');\n\nvar isScalarAndEqual = require('./util/isScalarAndEqual');\n\nvar readInlineData = require('./store/readInlineData');\n\nvar recycleNodesInto = require('./util/recycleNodesInto');\n\nvar reportMissingRequiredFields = require('./util/reportMissingRequiredFields');\n\nvar requestSubscription = require('./subscription/requestSubscription');\n\nvar stableCopy = require('./util/stableCopy');\n\nvar _require = require('./store/ClientID'),\n generateClientID = _require.generateClientID,\n generateUniqueClientID = _require.generateUniqueClientID,\n isClientID = _require.isClientID;\n\n// As early as possible, check for the existence of the JavaScript globals which\n// Relay Runtime relies upon, and produce a clear message if they do not exist.\nif (process.env.NODE_ENV !== \"production\") {\n var mapStr = typeof Map !== 'function' ? 'Map' : null;\n var setStr = typeof Set !== 'function' ? 'Set' : null;\n var promiseStr = typeof Promise !== 'function' ? 'Promise' : null;\n var objStr = typeof Object.assign !== 'function' ? 'Object.assign' : null;\n\n if (mapStr || setStr || promiseStr || objStr) {\n throw new Error(\"relay-runtime requires \".concat([mapStr, setStr, promiseStr, objStr].filter(Boolean).join(', and '), \" to exist. \") + 'Use a polyfill to provide these for older browsers.');\n }\n}\n/**\n * The public interface to Relay Runtime.\n */\n\n\nmodule.exports = {\n // Core API\n Environment: RelayModernEnvironment,\n Network: RelayNetwork,\n Observable: RelayObservable,\n QueryResponseCache: RelayQueryResponseCache,\n RecordSource: RelayRecordSource,\n Record: RelayModernRecord,\n ReplaySubject: RelayReplaySubject,\n Store: RelayModernStore,\n areEqualSelectors: RelayModernSelector.areEqualSelectors,\n createFragmentSpecResolver: createFragmentSpecResolver,\n createNormalizationSelector: RelayModernSelector.createNormalizationSelector,\n createOperationDescriptor: RelayModernOperationDescriptor.createOperationDescriptor,\n createReaderSelector: RelayModernSelector.createReaderSelector,\n createRequestDescriptor: RelayModernOperationDescriptor.createRequestDescriptor,\n getDataIDsFromFragment: RelayModernSelector.getDataIDsFromFragment,\n getDataIDsFromObject: RelayModernSelector.getDataIDsFromObject,\n getNode: GraphQLTag.getNode,\n getFragment: GraphQLTag.getFragment,\n getInlineDataFragment: GraphQLTag.getInlineDataFragment,\n getModuleComponentKey: RelayStoreUtils.getModuleComponentKey,\n getModuleOperationKey: RelayStoreUtils.getModuleOperationKey,\n getPaginationFragment: GraphQLTag.getPaginationFragment,\n getPluralSelector: RelayModernSelector.getPluralSelector,\n getRefetchableFragment: GraphQLTag.getRefetchableFragment,\n getRequest: GraphQLTag.getRequest,\n getRequestIdentifier: getRequestIdentifier,\n getSelector: RelayModernSelector.getSelector,\n getSelectorsFromObject: RelayModernSelector.getSelectorsFromObject,\n getSingularSelector: RelayModernSelector.getSingularSelector,\n getStorageKey: RelayStoreUtils.getStorageKey,\n getVariablesFromFragment: RelayModernSelector.getVariablesFromFragment,\n getVariablesFromObject: RelayModernSelector.getVariablesFromObject,\n getVariablesFromPluralFragment: RelayModernSelector.getVariablesFromPluralFragment,\n getVariablesFromSingularFragment: RelayModernSelector.getVariablesFromSingularFragment,\n reportMissingRequiredFields: reportMissingRequiredFields,\n graphql: GraphQLTag.graphql,\n isFragment: GraphQLTag.isFragment,\n isInlineDataFragment: GraphQLTag.isInlineDataFragment,\n isRequest: GraphQLTag.isRequest,\n readInlineData: readInlineData,\n // Declarative mutation API\n MutationTypes: RelayDeclarativeMutationConfig.MutationTypes,\n RangeOperations: RelayDeclarativeMutationConfig.RangeOperations,\n // Extensions\n DefaultHandlerProvider: RelayDefaultHandlerProvider,\n ConnectionHandler: ConnectionHandler,\n MutationHandlers: MutationHandlers,\n VIEWER_ID: ViewerPattern.VIEWER_ID,\n VIEWER_TYPE: ViewerPattern.VIEWER_TYPE,\n // Helpers (can be implemented via the above API)\n applyOptimisticMutation: applyOptimisticMutation,\n commitLocalUpdate: commitLocalUpdate,\n commitMutation: commitMutation,\n fetchQuery: fetchQuery,\n fetchQuery_DEPRECATED: fetchQuery_DEPRECATED,\n isRelayModernEnvironment: isRelayModernEnvironment,\n requestSubscription: requestSubscription,\n // Configuration interface for legacy or special uses\n ConnectionInterface: ConnectionInterface,\n // Utilities\n PreloadableQueryRegistry: PreloadableQueryRegistry,\n RelayProfiler: RelayProfiler,\n createPayloadFor3DField: createPayloadFor3DField,\n // INTERNAL-ONLY: These exports might be removed at any point.\n RelayConcreteNode: RelayConcreteNode,\n RelayError: RelayError,\n RelayFeatureFlags: RelayFeatureFlags,\n DEFAULT_HANDLE_KEY: RelayDefaultHandleKey.DEFAULT_HANDLE_KEY,\n FRAGMENTS_KEY: RelayStoreUtils.FRAGMENTS_KEY,\n FRAGMENT_OWNER_KEY: RelayStoreUtils.FRAGMENT_OWNER_KEY,\n ID_KEY: RelayStoreUtils.ID_KEY,\n REF_KEY: RelayStoreUtils.REF_KEY,\n REFS_KEY: RelayStoreUtils.REFS_KEY,\n ROOT_ID: RelayStoreUtils.ROOT_ID,\n ROOT_TYPE: RelayStoreUtils.ROOT_TYPE,\n TYPENAME_KEY: RelayStoreUtils.TYPENAME_KEY,\n deepFreeze: deepFreeze,\n generateClientID: generateClientID,\n generateUniqueClientID: generateUniqueClientID,\n getRelayHandleKey: getRelayHandleKey,\n isClientID: isClientID,\n isPromise: isPromise,\n isScalarAndEqual: isScalarAndEqual,\n recycleNodesInto: recycleNodesInto,\n stableCopy: stableCopy,\n getFragmentIdentifier: getFragmentIdentifier,\n getRefetchMetadata: getRefetchMetadata,\n getPaginationMetadata: getPaginationMetadata,\n getPaginationVariables: getPaginationVariables,\n getPendingOperationsForFragment: getPendingOperationsForFragment,\n getValueAtPath: getValueAtPath,\n __internal: {\n OperationTracker: RelayOperationTracker,\n createRelayContext: createRelayContext,\n getOperationVariables: RelayConcreteVariables.getOperationVariables,\n fetchQuery: fetchQueryInternal.fetchQuery,\n fetchQueryDeduped: fetchQueryInternal.fetchQueryDeduped,\n getPromiseForActiveRequest: fetchQueryInternal.getPromiseForActiveRequest,\n getObservableForActiveRequest: fetchQueryInternal.getObservableForActiveRequest\n }\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 * @emails oncall+relay\n * \n * @format\n */\n'use strict';\n/**\n * A unique identifier of the current actor.\n */\n\nvar invariant = require('invariant');\n\nvar INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = 'INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE';\n\nfunction assertInternalActorIndentifier(actorIdentifier) {\n !(actorIdentifier === INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to use only internal version of the `actorIdentifier`. \"%s\" was provided.', actorIdentifier) : invariant(false) : void 0;\n}\n\nmodule.exports = {\n assertInternalActorIndentifier: assertInternalActorIndentifier,\n getActorIdentifier: function getActorIdentifier(actorID) {\n return actorID;\n },\n getDefaultActorIdentifier: function getDefaultActorIdentifier() {\n throw new Error('Not Implemented');\n },\n INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE\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 * @emails oncall+relay\n * \n * @format\n */\n'use strict';\n\nvar ACTOR_IDENTIFIER_FIELD_NAME = 'actor_key';\n\nvar _require = require('./ActorIdentifier'),\n getActorIdentifier = _require.getActorIdentifier;\n\nfunction getActorIdentifierFromPayload(payload) {\n if (payload != null && typeof payload === 'object' && typeof payload[ACTOR_IDENTIFIER_FIELD_NAME] === 'string') {\n return getActorIdentifier(payload[ACTOR_IDENTIFIER_FIELD_NAME]);\n }\n}\n\nmodule.exports = {\n ACTOR_IDENTIFIER_FIELD_NAME: ACTOR_IDENTIFIER_FIELD_NAME,\n getActorIdentifierFromPayload: getActorIdentifierFromPayload\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar ConnectionHandler = require('../handlers/connection/ConnectionHandler');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar MutationTypes = Object.freeze({\n RANGE_ADD: 'RANGE_ADD',\n RANGE_DELETE: 'RANGE_DELETE',\n NODE_DELETE: 'NODE_DELETE'\n});\nvar RangeOperations = Object.freeze({\n APPEND: 'append',\n PREPEND: 'prepend'\n});\n\nfunction convert(configs, request, optimisticUpdater, updater) {\n var configOptimisticUpdates = optimisticUpdater ? [optimisticUpdater] : [];\n var configUpdates = updater ? [updater] : [];\n configs.forEach(function (config) {\n switch (config.type) {\n case 'NODE_DELETE':\n var nodeDeleteResult = nodeDelete(config, request);\n\n if (nodeDeleteResult) {\n configOptimisticUpdates.push(nodeDeleteResult);\n configUpdates.push(nodeDeleteResult);\n }\n\n break;\n\n case 'RANGE_ADD':\n var rangeAddResult = rangeAdd(config, request);\n\n if (rangeAddResult) {\n configOptimisticUpdates.push(rangeAddResult);\n configUpdates.push(rangeAddResult);\n }\n\n break;\n\n case 'RANGE_DELETE':\n var rangeDeleteResult = rangeDelete(config, request);\n\n if (rangeDeleteResult) {\n configOptimisticUpdates.push(rangeDeleteResult);\n configUpdates.push(rangeDeleteResult);\n }\n\n break;\n }\n });\n return {\n optimisticUpdater: function optimisticUpdater(store, data) {\n configOptimisticUpdates.forEach(function (eachOptimisticUpdater) {\n eachOptimisticUpdater(store, data);\n });\n },\n updater: function updater(store, data) {\n configUpdates.forEach(function (eachUpdater) {\n eachUpdater(store, data);\n });\n }\n };\n}\n\nfunction nodeDelete(config, request) {\n var deletedIDFieldName = config.deletedIDFieldName;\n var rootField = getRootField(request);\n\n if (!rootField) {\n return null;\n }\n\n return function (store, data) {\n var payload = store.getRootField(rootField);\n\n if (!payload) {\n return;\n }\n\n var deleteID = payload.getValue(deletedIDFieldName);\n var deleteIDs = Array.isArray(deleteID) ? deleteID : [deleteID];\n deleteIDs.forEach(function (id) {\n if (id && typeof id === 'string') {\n store[\"delete\"](id);\n }\n });\n };\n}\n\nfunction rangeAdd(config, request) {\n var parentID = config.parentID,\n connectionInfo = config.connectionInfo,\n edgeName = config.edgeName;\n\n if (!parentID) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: For mutation config RANGE_ADD ' + 'to work you must include a parentID') : void 0;\n return null;\n }\n\n var rootField = getRootField(request);\n\n if (!connectionInfo || !rootField) {\n return null;\n }\n\n return function (store, data) {\n var parent = store.get(parentID);\n\n if (!parent) {\n return;\n }\n\n var payload = store.getRootField(rootField);\n\n if (!payload) {\n return;\n }\n\n var serverEdge = payload.getLinkedRecord(edgeName);\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(connectionInfo),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var info = _step.value;\n\n if (!serverEdge) {\n continue;\n }\n\n var connection = ConnectionHandler.getConnection(parent, info.key, info.filters);\n\n if (!connection) {\n continue;\n }\n\n var clientEdge = ConnectionHandler.buildConnectionEdge(store, connection, serverEdge);\n\n if (!clientEdge) {\n continue;\n }\n\n switch (info.rangeBehavior) {\n case 'append':\n ConnectionHandler.insertEdgeAfter(connection, clientEdge);\n break;\n\n case 'prepend':\n ConnectionHandler.insertEdgeBefore(connection, clientEdge);\n break;\n\n default:\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_ADD range behavior `%s` ' + 'will not work as expected in RelayModern, supported range ' + \"behaviors are 'append', 'prepend'.\", info.rangeBehavior) : void 0;\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n };\n}\n\nfunction rangeDelete(config, request) {\n var parentID = config.parentID,\n connectionKeys = config.connectionKeys,\n pathToConnection = config.pathToConnection,\n deletedIDFieldName = config.deletedIDFieldName;\n\n if (!parentID) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: For mutation config RANGE_DELETE ' + 'to work you must include a parentID') : void 0;\n return null;\n }\n\n var rootField = getRootField(request);\n\n if (!rootField) {\n return null;\n }\n\n return function (store, data) {\n if (!data) {\n return;\n }\n\n var deleteIDs = [];\n var deletedIDField = data[rootField];\n\n if (deletedIDField && Array.isArray(deletedIDFieldName)) {\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(deletedIDFieldName),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var eachField = _step2.value;\n\n if (deletedIDField && typeof deletedIDField === 'object') {\n deletedIDField = deletedIDField[eachField];\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n if (Array.isArray(deletedIDField)) {\n deletedIDField.forEach(function (idObject) {\n if (idObject && idObject.id && typeof idObject === 'object' && typeof idObject.id === 'string') {\n deleteIDs.push(idObject.id);\n }\n });\n } else if (deletedIDField && deletedIDField.id && typeof deletedIDField.id === 'string') {\n deleteIDs.push(deletedIDField.id);\n }\n } else if (deletedIDField && typeof deletedIDFieldName === 'string' && typeof deletedIDField === 'object') {\n deletedIDField = deletedIDField[deletedIDFieldName];\n\n if (typeof deletedIDField === 'string') {\n deleteIDs.push(deletedIDField);\n } else if (Array.isArray(deletedIDField)) {\n deletedIDField.forEach(function (id) {\n if (typeof id === 'string') {\n deleteIDs.push(id);\n }\n });\n }\n }\n\n deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs);\n };\n}\n\nfunction deleteNode(parentID, connectionKeys, pathToConnection, store, deleteIDs) {\n process.env.NODE_ENV !== \"production\" ? warning(connectionKeys != null, 'RelayDeclarativeMutationConfig: RANGE_DELETE must provide a ' + 'connectionKeys') : void 0;\n var parent = store.get(parentID);\n\n if (!parent) {\n return;\n }\n\n if (pathToConnection.length < 2) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_DELETE ' + 'pathToConnection must include at least parent and connection') : void 0;\n return;\n }\n\n var recordProxy = parent;\n\n for (var i = 1; i < pathToConnection.length - 1; i++) {\n if (recordProxy) {\n recordProxy = recordProxy.getLinkedRecord(pathToConnection[i]);\n }\n } // Should never enter loop except edge cases\n\n\n if (!connectionKeys || !recordProxy) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayDeclarativeMutationConfig: RANGE_DELETE ' + 'pathToConnection is incorrect. Unable to find connection with ' + 'parentID: %s and path: %s', parentID, pathToConnection.toString()) : void 0;\n return;\n }\n\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(connectionKeys),\n _step3;\n\n try {\n var _loop = function _loop() {\n var key = _step3.value;\n var connection = ConnectionHandler.getConnection(recordProxy, key.key, key.filters);\n\n if (connection) {\n deleteIDs.forEach(function (deleteID) {\n ConnectionHandler.deleteNode(connection, deleteID);\n });\n }\n };\n\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n}\n\nfunction getRootField(request) {\n if (request.fragment.selections && request.fragment.selections.length > 0 && request.fragment.selections[0].kind === 'LinkedField') {\n return request.fragment.selections[0].name;\n }\n\n return null;\n}\n\nmodule.exports = {\n MutationTypes: MutationTypes,\n RangeOperations: RangeOperations,\n convert: convert\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('../store/ClientID'),\n generateClientID = _require.generateClientID;\n\nvar _require2 = require('../store/RelayStoreUtils'),\n getStableStorageKey = _require2.getStableStorageKey;\n\n/**\n * @internal\n *\n * A helper class for manipulating a given record from a record source via an\n * imperative/OO-style API.\n */\nvar RelayRecordProxy = /*#__PURE__*/function () {\n function RelayRecordProxy(source, mutator, dataID) {\n this._dataID = dataID;\n this._mutator = mutator;\n this._source = source;\n }\n\n var _proto = RelayRecordProxy.prototype;\n\n _proto.copyFieldsFrom = function copyFieldsFrom(source) {\n this._mutator.copyFields(source.getDataID(), this._dataID);\n };\n\n _proto.getDataID = function getDataID() {\n return this._dataID;\n };\n\n _proto.getType = function getType() {\n var type = this._mutator.getType(this._dataID);\n\n !(type != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy: Cannot get the type of deleted record `%s`.', this._dataID) : invariant(false) : void 0;\n return type;\n };\n\n _proto.getValue = function getValue(name, args) {\n var storageKey = getStableStorageKey(name, args);\n return this._mutator.getValue(this._dataID, storageKey);\n };\n\n _proto.setValue = function setValue(value, name, args) {\n !isValidLeafValue(value) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setValue(): Expected a scalar or array of scalars, ' + 'got `%s`.', JSON.stringify(value)) : invariant(false) : void 0;\n var storageKey = getStableStorageKey(name, args);\n\n this._mutator.setValue(this._dataID, storageKey, value);\n\n return this;\n };\n\n _proto.getLinkedRecord = function getLinkedRecord(name, args) {\n var storageKey = getStableStorageKey(name, args);\n\n var linkedID = this._mutator.getLinkedRecordID(this._dataID, storageKey);\n\n return linkedID != null ? this._source.get(linkedID) : linkedID;\n };\n\n _proto.setLinkedRecord = function setLinkedRecord(record, name, args) {\n !(record instanceof RelayRecordProxy) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setLinkedRecord(): Expected a record, got `%s`.', record) : invariant(false) : void 0;\n var storageKey = getStableStorageKey(name, args);\n var linkedID = record.getDataID();\n\n this._mutator.setLinkedRecordID(this._dataID, storageKey, linkedID);\n\n return this;\n };\n\n _proto.getOrCreateLinkedRecord = function getOrCreateLinkedRecord(name, typeName, args) {\n var linkedRecord = this.getLinkedRecord(name, args);\n\n if (!linkedRecord) {\n var _this$_source$get;\n\n var storageKey = getStableStorageKey(name, args);\n var clientID = generateClientID(this.getDataID(), storageKey); // NOTE: it's possible that a client record for this field exists\n // but the field itself was unset.\n\n linkedRecord = (_this$_source$get = this._source.get(clientID)) !== null && _this$_source$get !== void 0 ? _this$_source$get : this._source.create(clientID, typeName);\n this.setLinkedRecord(linkedRecord, name, args);\n }\n\n return linkedRecord;\n };\n\n _proto.getLinkedRecords = function getLinkedRecords(name, args) {\n var _this = this;\n\n var storageKey = getStableStorageKey(name, args);\n\n var linkedIDs = this._mutator.getLinkedRecordIDs(this._dataID, storageKey);\n\n if (linkedIDs == null) {\n return linkedIDs;\n }\n\n return linkedIDs.map(function (linkedID) {\n return linkedID != null ? _this._source.get(linkedID) : linkedID;\n });\n };\n\n _proto.setLinkedRecords = function setLinkedRecords(records, name, args) {\n !Array.isArray(records) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordProxy#setLinkedRecords(): Expected records to be an array, got `%s`.', records) : invariant(false) : void 0;\n var storageKey = getStableStorageKey(name, args);\n var linkedIDs = records.map(function (record) {\n return record && record.getDataID();\n });\n\n this._mutator.setLinkedRecordIDs(this._dataID, storageKey, linkedIDs);\n\n return this;\n };\n\n _proto.invalidateRecord = function invalidateRecord() {\n this._source.markIDForInvalidation(this._dataID);\n };\n\n return RelayRecordProxy;\n}();\n\nfunction isValidLeafValue(value) {\n return value == null || typeof value !== 'object' || Array.isArray(value) && value.every(isValidLeafValue);\n}\n\nmodule.exports = RelayRecordProxy;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayModernRecord = require('../store/RelayModernRecord');\n\nvar invariant = require('invariant');\n\nvar _require = require('../store/RelayRecordState'),\n EXISTENT = _require.EXISTENT;\n\n/**\n * @internal\n *\n * Wrapper API that is an amalgam of the `RelayModernRecord` API and\n * `MutableRecordSource` interface, implementing copy-on-write semantics for records\n * in a record source.\n *\n * Modifications are applied to fresh copies of records:\n * - Records in `base` are never modified.\n * - Modifications cause a fresh version of a record to be created in `sink`.\n * These sink records contain only modified fields.\n */\nvar RelayRecordSourceMutator = /*#__PURE__*/function () {\n function RelayRecordSourceMutator(base, sink) {\n this.__sources = [sink, base];\n this._base = base;\n this._sink = sink;\n }\n /**\n * **UNSTABLE**\n * This method is likely to be removed in an upcoming release\n * and should not be relied upon.\n * TODO T41593196: Remove unstable_getRawRecordWithChanges\n */\n\n\n var _proto = RelayRecordSourceMutator.prototype;\n\n _proto.unstable_getRawRecordWithChanges = function unstable_getRawRecordWithChanges(dataID) {\n var baseRecord = this._base.get(dataID);\n\n var sinkRecord = this._sink.get(dataID);\n\n if (sinkRecord === undefined) {\n if (baseRecord == null) {\n return baseRecord;\n }\n\n var nextRecord = RelayModernRecord.clone(baseRecord);\n\n if (process.env.NODE_ENV !== \"production\") {\n // Prevent mutation of a record from outside the store.\n RelayModernRecord.freeze(nextRecord);\n }\n\n return nextRecord;\n } else if (sinkRecord === null) {\n return null;\n } else if (baseRecord != null) {\n var _nextRecord = RelayModernRecord.update(baseRecord, sinkRecord);\n\n if (process.env.NODE_ENV !== \"production\") {\n if (_nextRecord !== baseRecord) {\n // Prevent mutation of a record from outside the store.\n RelayModernRecord.freeze(_nextRecord);\n }\n }\n\n return _nextRecord;\n } else {\n var _nextRecord2 = RelayModernRecord.clone(sinkRecord);\n\n if (process.env.NODE_ENV !== \"production\") {\n // Prevent mutation of a record from outside the store.\n RelayModernRecord.freeze(_nextRecord2);\n }\n\n return _nextRecord2;\n }\n };\n\n _proto._getSinkRecord = function _getSinkRecord(dataID) {\n var sinkRecord = this._sink.get(dataID);\n\n if (!sinkRecord) {\n var baseRecord = this._base.get(dataID);\n\n !baseRecord ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator: Cannot modify non-existent record `%s`.', dataID) : invariant(false) : void 0;\n sinkRecord = RelayModernRecord.create(dataID, RelayModernRecord.getType(baseRecord));\n\n this._sink.set(dataID, sinkRecord);\n }\n\n return sinkRecord;\n };\n\n _proto.copyFields = function copyFields(sourceID, sinkID) {\n var sinkSource = this._sink.get(sourceID);\n\n var baseSource = this._base.get(sourceID);\n\n !(sinkSource || baseSource) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator#copyFields(): Cannot copy fields from ' + 'non-existent record `%s`.', sourceID) : invariant(false) : void 0;\n\n var sink = this._getSinkRecord(sinkID);\n\n if (baseSource) {\n RelayModernRecord.copyFields(baseSource, sink);\n }\n\n if (sinkSource) {\n RelayModernRecord.copyFields(sinkSource, sink);\n }\n };\n\n _proto.copyFieldsFromRecord = function copyFieldsFromRecord(record, sinkID) {\n var sink = this._getSinkRecord(sinkID);\n\n RelayModernRecord.copyFields(record, sink);\n };\n\n _proto.create = function create(dataID, typeName) {\n !(this._base.getStatus(dataID) !== EXISTENT && this._sink.getStatus(dataID) !== EXISTENT) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceMutator#create(): Cannot create a record with id ' + '`%s`, this record already exists.', dataID) : invariant(false) : void 0;\n var record = RelayModernRecord.create(dataID, typeName);\n\n this._sink.set(dataID, record);\n };\n\n _proto[\"delete\"] = function _delete(dataID) {\n this._sink[\"delete\"](dataID);\n };\n\n _proto.getStatus = function getStatus(dataID) {\n return this._sink.has(dataID) ? this._sink.getStatus(dataID) : this._base.getStatus(dataID);\n };\n\n _proto.getType = function getType(dataID) {\n for (var ii = 0; ii < this.__sources.length; ii++) {\n var record = this.__sources[ii].get(dataID);\n\n if (record) {\n return RelayModernRecord.getType(record);\n } else if (record === null) {\n return null;\n }\n }\n };\n\n _proto.getValue = function getValue(dataID, storageKey) {\n for (var ii = 0; ii < this.__sources.length; ii++) {\n var record = this.__sources[ii].get(dataID);\n\n if (record) {\n var value = RelayModernRecord.getValue(record, storageKey);\n\n if (value !== undefined) {\n return value;\n }\n } else if (record === null) {\n return null;\n }\n }\n };\n\n _proto.setValue = function setValue(dataID, storageKey, value) {\n var sinkRecord = this._getSinkRecord(dataID);\n\n RelayModernRecord.setValue(sinkRecord, storageKey, value);\n };\n\n _proto.getLinkedRecordID = function getLinkedRecordID(dataID, storageKey) {\n for (var ii = 0; ii < this.__sources.length; ii++) {\n var record = this.__sources[ii].get(dataID);\n\n if (record) {\n var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n\n if (linkedID !== undefined) {\n return linkedID;\n }\n } else if (record === null) {\n return null;\n }\n }\n };\n\n _proto.setLinkedRecordID = function setLinkedRecordID(dataID, storageKey, linkedID) {\n var sinkRecord = this._getSinkRecord(dataID);\n\n RelayModernRecord.setLinkedRecordID(sinkRecord, storageKey, linkedID);\n };\n\n _proto.getLinkedRecordIDs = function getLinkedRecordIDs(dataID, storageKey) {\n for (var ii = 0; ii < this.__sources.length; ii++) {\n var record = this.__sources[ii].get(dataID);\n\n if (record) {\n var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n\n if (linkedIDs !== undefined) {\n return linkedIDs;\n }\n } else if (record === null) {\n return null;\n }\n }\n };\n\n _proto.setLinkedRecordIDs = function setLinkedRecordIDs(dataID, storageKey, linkedIDs) {\n var sinkRecord = this._getSinkRecord(dataID);\n\n RelayModernRecord.setLinkedRecordIDs(sinkRecord, storageKey, linkedIDs);\n };\n\n return RelayRecordSourceMutator;\n}();\n\nmodule.exports = RelayRecordSourceMutator;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayModernRecord = require('../store/RelayModernRecord');\n\nvar RelayRecordProxy = require('./RelayRecordProxy');\n\nvar invariant = require('invariant');\n\nvar _require = require('../store/RelayRecordState'),\n EXISTENT = _require.EXISTENT,\n NONEXISTENT = _require.NONEXISTENT;\n\nvar _require2 = require('../store/RelayStoreUtils'),\n ROOT_ID = _require2.ROOT_ID,\n ROOT_TYPE = _require2.ROOT_TYPE;\n\n/**\n * @internal\n *\n * A helper for manipulating a `RecordSource` via an imperative/OO-style API.\n */\nvar RelayRecordSourceProxy = /*#__PURE__*/function () {\n function RelayRecordSourceProxy(mutator, getDataID, handlerProvider) {\n this.__mutator = mutator;\n this._handlerProvider = handlerProvider || null;\n this._proxies = {};\n this._getDataID = getDataID;\n this._invalidatedStore = false;\n this._idsMarkedForInvalidation = new Set();\n }\n\n var _proto = RelayRecordSourceProxy.prototype;\n\n _proto.publishSource = function publishSource(source, fieldPayloads) {\n var _this = this;\n\n var dataIDs = source.getRecordIDs();\n dataIDs.forEach(function (dataID) {\n var status = source.getStatus(dataID);\n\n if (status === EXISTENT) {\n var sourceRecord = source.get(dataID);\n\n if (sourceRecord) {\n if (_this.__mutator.getStatus(dataID) !== EXISTENT) {\n _this.create(dataID, RelayModernRecord.getType(sourceRecord));\n }\n\n _this.__mutator.copyFieldsFromRecord(sourceRecord, dataID);\n }\n } else if (status === NONEXISTENT) {\n _this[\"delete\"](dataID);\n }\n });\n\n if (fieldPayloads && fieldPayloads.length) {\n fieldPayloads.forEach(function (fieldPayload) {\n var handler = _this._handlerProvider && _this._handlerProvider(fieldPayload.handle);\n\n !handler ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a handler to be provided for handle `%s`.', fieldPayload.handle) : invariant(false) : void 0;\n handler.update(_this, fieldPayload);\n });\n }\n };\n\n _proto.create = function create(dataID, typeName) {\n this.__mutator.create(dataID, typeName);\n\n delete this._proxies[dataID];\n var record = this.get(dataID); // For flow\n\n !record ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#create(): Expected the created record to exist.') : invariant(false) : void 0;\n return record;\n };\n\n _proto[\"delete\"] = function _delete(dataID) {\n !(dataID !== ROOT_ID) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#delete(): Cannot delete the root record.') : invariant(false) : void 0;\n delete this._proxies[dataID];\n\n this.__mutator[\"delete\"](dataID);\n };\n\n _proto.get = function get(dataID) {\n if (!this._proxies.hasOwnProperty(dataID)) {\n var status = this.__mutator.getStatus(dataID);\n\n if (status === EXISTENT) {\n this._proxies[dataID] = new RelayRecordProxy(this, this.__mutator, dataID);\n } else {\n this._proxies[dataID] = status === NONEXISTENT ? null : undefined;\n }\n }\n\n return this._proxies[dataID];\n };\n\n _proto.getRoot = function getRoot() {\n var root = this.get(ROOT_ID);\n\n if (!root) {\n root = this.create(ROOT_ID, ROOT_TYPE);\n }\n\n !(root && root.getType() === ROOT_TYPE) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceProxy#getRoot(): Expected the source to contain a ' + 'root record, %s.', root == null ? 'no root record found' : \"found a root record of type `\".concat(root.getType(), \"`\")) : invariant(false) : void 0;\n return root;\n };\n\n _proto.invalidateStore = function invalidateStore() {\n this._invalidatedStore = true;\n };\n\n _proto.isStoreMarkedForInvalidation = function isStoreMarkedForInvalidation() {\n return this._invalidatedStore;\n };\n\n _proto.markIDForInvalidation = function markIDForInvalidation(dataID) {\n this._idsMarkedForInvalidation.add(dataID);\n };\n\n _proto.getIDsMarkedForInvalidation = function getIDsMarkedForInvalidation() {\n return this._idsMarkedForInvalidation;\n };\n\n return RelayRecordSourceProxy;\n}();\n\nmodule.exports = RelayRecordSourceProxy;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('../store/RelayStoreUtils'),\n getStorageKey = _require.getStorageKey,\n ROOT_TYPE = _require.ROOT_TYPE;\n\n/**\n * @internal\n *\n * A subclass of RecordSourceProxy that provides convenience methods for\n * accessing the root fields of a given query/mutation. These fields accept\n * complex arguments and it can be tedious to re-construct the correct sets of\n * arguments to pass to e.g. `getRoot().getLinkedRecord()`.\n */\nvar RelayRecordSourceSelectorProxy = /*#__PURE__*/function () {\n function RelayRecordSourceSelectorProxy(mutator, recordSource, readSelector) {\n this.__mutator = mutator;\n this.__recordSource = recordSource;\n this._readSelector = readSelector;\n }\n\n var _proto = RelayRecordSourceSelectorProxy.prototype;\n\n _proto.create = function create(dataID, typeName) {\n return this.__recordSource.create(dataID, typeName);\n };\n\n _proto[\"delete\"] = function _delete(dataID) {\n this.__recordSource[\"delete\"](dataID);\n };\n\n _proto.get = function get(dataID) {\n return this.__recordSource.get(dataID);\n };\n\n _proto.getRoot = function getRoot() {\n return this.__recordSource.getRoot();\n };\n\n _proto.getOperationRoot = function getOperationRoot() {\n var root = this.__recordSource.get(this._readSelector.dataID);\n\n if (!root) {\n root = this.__recordSource.create(this._readSelector.dataID, ROOT_TYPE);\n }\n\n return root;\n };\n\n _proto._getRootField = function _getRootField(selector, fieldName, plural) {\n var field = selector.node.selections.find(function (selection) {\n return selection.kind === 'LinkedField' && selection.name === fieldName || selection.kind === 'RequiredField' && selection.field.name === fieldName;\n });\n\n if (field && field.kind === 'RequiredField') {\n field = field.field;\n }\n\n !(field && field.kind === 'LinkedField') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceSelectorProxy#getRootField(): Cannot find root ' + 'field `%s`, no such field is defined on GraphQL document `%s`.', fieldName, selector.node.name) : invariant(false) : void 0;\n !(field.plural === plural) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayRecordSourceSelectorProxy#getRootField(): Expected root field ' + '`%s` to be %s.', fieldName, plural ? 'plural' : 'singular') : invariant(false) : void 0;\n return field;\n };\n\n _proto.getRootField = function getRootField(fieldName) {\n var field = this._getRootField(this._readSelector, fieldName, false);\n\n var storageKey = getStorageKey(field, this._readSelector.variables);\n return this.getOperationRoot().getLinkedRecord(storageKey);\n };\n\n _proto.getPluralRootField = function getPluralRootField(fieldName) {\n var field = this._getRootField(this._readSelector, fieldName, true);\n\n var storageKey = getStorageKey(field, this._readSelector.variables);\n return this.getOperationRoot().getLinkedRecords(storageKey);\n };\n\n _proto.invalidateStore = function invalidateStore() {\n this.__recordSource.invalidateStore();\n };\n\n return RelayRecordSourceSelectorProxy;\n}();\n\nmodule.exports = RelayRecordSourceSelectorProxy;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayDeclarativeMutationConfig = require('./RelayDeclarativeMutationConfig');\n\nvar invariant = require('invariant');\n\nvar isRelayModernEnvironment = require('../store/isRelayModernEnvironment');\n\nvar _require = require('../query/GraphQLTag'),\n getRequest = _require.getRequest;\n\nvar _require2 = require('../store/RelayModernOperationDescriptor'),\n createOperationDescriptor = _require2.createOperationDescriptor;\n\n/**\n * Higher-level helper function to execute a mutation against a specific\n * environment.\n */\nfunction applyOptimisticMutation(environment, config) {\n !isRelayModernEnvironment(environment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'commitMutation: expected `environment` to be an instance of ' + '`RelayModernEnvironment`.') : invariant(false) : void 0;\n var mutation = getRequest(config.mutation);\n\n if (mutation.params.operationKind !== 'mutation') {\n throw new Error('commitMutation: Expected mutation operation');\n }\n\n var optimisticUpdater = config.optimisticUpdater;\n var configs = config.configs,\n optimisticResponse = config.optimisticResponse,\n variables = config.variables;\n var operation = createOperationDescriptor(mutation, variables);\n\n if (configs) {\n var _RelayDeclarativeMuta = RelayDeclarativeMutationConfig.convert(configs, mutation, optimisticUpdater);\n\n optimisticUpdater = _RelayDeclarativeMuta.optimisticUpdater;\n }\n\n return environment.applyMutation({\n operation: operation,\n response: optimisticResponse,\n updater: optimisticUpdater\n });\n}\n\nmodule.exports = applyOptimisticMutation;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nfunction commitLocalUpdate(environment, updater) {\n environment.commitUpdate(updater);\n}\n\nmodule.exports = commitLocalUpdate;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar RelayDeclarativeMutationConfig = require('./RelayDeclarativeMutationConfig');\n\nvar invariant = require('invariant');\n\nvar isRelayModernEnvironment = require('../store/isRelayModernEnvironment');\n\nvar validateMutation = require('./validateMutation');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('../query/GraphQLTag'),\n getRequest = _require.getRequest;\n\nvar _require2 = require('../store/ClientID'),\n generateUniqueClientID = _require2.generateUniqueClientID;\n\nvar _require3 = require('../store/RelayModernOperationDescriptor'),\n createOperationDescriptor = _require3.createOperationDescriptor;\n\n/**\n * Higher-level helper function to execute a mutation against a specific\n * environment.\n */\nfunction commitMutation(environment, config) {\n !isRelayModernEnvironment(environment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'commitMutation: expected `environment` to be an instance of ' + '`RelayModernEnvironment`.') : invariant(false) : void 0;\n var mutation = getRequest(config.mutation);\n\n if (mutation.params.operationKind !== 'mutation') {\n throw new Error('commitMutation: Expected mutation operation');\n }\n\n if (mutation.kind !== 'Request') {\n throw new Error('commitMutation: Expected mutation to be of type request');\n }\n\n var optimisticResponse = config.optimisticResponse,\n optimisticUpdater = config.optimisticUpdater,\n updater = config.updater;\n var configs = config.configs,\n cacheConfig = config.cacheConfig,\n onError = config.onError,\n onUnsubscribe = config.onUnsubscribe,\n variables = config.variables,\n uploadables = config.uploadables;\n var operation = createOperationDescriptor(mutation,\n /* $FlowFixMe[class-object-subtyping] added when improving typing for this\n * parameters */\n variables, cacheConfig, generateUniqueClientID()); // TODO: remove this check after we fix flow.\n\n if (typeof optimisticResponse === 'function') {\n optimisticResponse = optimisticResponse();\n process.env.NODE_ENV !== \"production\" ? warning(false, 'commitMutation: Expected `optimisticResponse` to be an object, ' + 'received a function.') : void 0;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (optimisticResponse instanceof Object) {\n validateMutation(optimisticResponse, mutation, variables);\n }\n }\n\n if (configs) {\n var _RelayDeclarativeMuta = RelayDeclarativeMutationConfig.convert(configs, mutation, optimisticUpdater, updater);\n\n optimisticUpdater = _RelayDeclarativeMuta.optimisticUpdater;\n updater = _RelayDeclarativeMuta.updater;\n }\n\n var errors = [];\n var subscription = environment.executeMutation({\n operation: operation,\n optimisticResponse: optimisticResponse,\n optimisticUpdater: optimisticUpdater,\n updater: updater,\n uploadables: uploadables\n }).subscribe({\n next: function next(payload) {\n if (Array.isArray(payload)) {\n payload.forEach(function (item) {\n if (item.errors) {\n errors.push.apply(errors, (0, _toConsumableArray2[\"default\"])(item.errors));\n }\n });\n } else {\n if (payload.errors) {\n errors.push.apply(errors, (0, _toConsumableArray2[\"default\"])(payload.errors));\n }\n }\n },\n complete: function complete() {\n var onCompleted = config.onCompleted;\n\n if (onCompleted) {\n var snapshot = environment.lookup(operation.fragment);\n onCompleted(snapshot.data, errors.length !== 0 ? errors : null);\n }\n },\n error: onError,\n unsubscribe: onUnsubscribe\n });\n return {\n dispose: subscription.unsubscribe\n };\n}\n\nmodule.exports = commitMutation;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar warning = require(\"fbjs/lib/warning\"); // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar _require = require('../util/RelayConcreteNode'),\n ACTOR_CHANGE = _require.ACTOR_CHANGE,\n CONDITION = _require.CONDITION,\n CLIENT_COMPONENT = _require.CLIENT_COMPONENT,\n CLIENT_EXTENSION = _require.CLIENT_EXTENSION,\n DEFER = _require.DEFER,\n FLIGHT_FIELD = _require.FLIGHT_FIELD,\n FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = _require.INLINE_FRAGMENT,\n LINKED_FIELD = _require.LINKED_FIELD,\n LINKED_HANDLE = _require.LINKED_HANDLE,\n MODULE_IMPORT = _require.MODULE_IMPORT,\n SCALAR_FIELD = _require.SCALAR_FIELD,\n SCALAR_HANDLE = _require.SCALAR_HANDLE,\n STREAM = _require.STREAM,\n TYPE_DISCRIMINATOR = _require.TYPE_DISCRIMINATOR;\n\nvar validateMutation = function validateMutation() {};\n\nif (process.env.NODE_ENV !== \"production\") {\n var addFieldToDiff = function addFieldToDiff(path, diff, isScalar) {\n var deepLoc = diff;\n path.split('.').forEach(function (key, index, arr) {\n if (deepLoc[key] == null) {\n deepLoc[key] = {};\n }\n\n if (isScalar && index === arr.length - 1) {\n deepLoc[key] = '';\n }\n\n deepLoc = deepLoc[key];\n });\n };\n\n validateMutation = function validateMutation(optimisticResponse, mutation, variables) {\n var operationName = mutation.operation.name;\n var context = {\n path: 'ROOT',\n visitedPaths: new Set(),\n variables: variables || {},\n missingDiff: {},\n extraDiff: {},\n moduleImportPaths: new Set()\n };\n validateSelections(optimisticResponse, mutation.operation.selections, context);\n validateOptimisticResponse(optimisticResponse, context);\n process.env.NODE_ENV !== \"production\" ? warning(context.missingDiff.ROOT == null, 'Expected `optimisticResponse` to match structure of server response for mutation `%s`, please define fields for all of\\n%s', operationName, JSON.stringify(context.missingDiff.ROOT, null, 2)) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(context.extraDiff.ROOT == null, 'Expected `optimisticResponse` to match structure of server response for mutation `%s`, please remove all fields of\\n%s', operationName, JSON.stringify(context.extraDiff.ROOT, null, 2)) : void 0;\n };\n\n var validateSelections = function validateSelections(optimisticResponse, selections, context) {\n selections.forEach(function (selection) {\n return validateSelection(optimisticResponse, selection, context);\n });\n };\n\n var validateSelection = function validateSelection(optimisticResponse, selection, context) {\n switch (selection.kind) {\n case CONDITION:\n validateSelections(optimisticResponse, selection.selections, context);\n return;\n\n case CLIENT_COMPONENT:\n case FRAGMENT_SPREAD:\n validateSelections(optimisticResponse, selection.fragment.selections, context);\n return;\n\n case SCALAR_FIELD:\n case LINKED_FIELD:\n case FLIGHT_FIELD:\n return validateField(optimisticResponse, selection, context);\n\n case ACTOR_CHANGE:\n return validateField(optimisticResponse, selection.linkedField, context);\n\n case INLINE_FRAGMENT:\n var type = selection.type;\n var isConcreteType = selection.abstractKey == null;\n selection.selections.forEach(function (subselection) {\n if (isConcreteType && optimisticResponse.__typename !== type) {\n return;\n }\n\n validateSelection(optimisticResponse, subselection, context);\n });\n return;\n\n case CLIENT_EXTENSION:\n selection.selections.forEach(function (subselection) {\n validateSelection(optimisticResponse, subselection, context);\n });\n return;\n\n case MODULE_IMPORT:\n return validateModuleImport(context);\n\n case LINKED_HANDLE:\n case SCALAR_HANDLE:\n case DEFER:\n case STREAM:\n case TYPE_DISCRIMINATOR:\n {\n // TODO(T35864292) - Add missing validations for these types\n return;\n }\n\n default:\n selection;\n return;\n }\n };\n\n var validateModuleImport = function validateModuleImport(context) {\n context.moduleImportPaths.add(context.path);\n };\n\n var validateField = function validateField(optimisticResponse, field, context) {\n var fieldName = field.alias || field.name;\n var path = \"\".concat(context.path, \".\").concat(fieldName);\n context.visitedPaths.add(path);\n\n switch (field.kind) {\n case SCALAR_FIELD:\n if (hasOwnProperty.call(optimisticResponse, fieldName) === false) {\n addFieldToDiff(path, context.missingDiff, true);\n }\n\n return;\n\n case LINKED_FIELD:\n var selections = field.selections;\n\n if (optimisticResponse[fieldName] === null || hasOwnProperty.call(optimisticResponse, fieldName) && optimisticResponse[fieldName] === undefined) {\n return;\n }\n\n if (field.plural) {\n if (Array.isArray(optimisticResponse[fieldName])) {\n optimisticResponse[fieldName].forEach(function (r) {\n if (r !== null) {\n validateSelections(r, selections, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n path: path\n }));\n }\n });\n return;\n } else {\n addFieldToDiff(path, context.missingDiff);\n return;\n }\n } else {\n if (optimisticResponse[fieldName] instanceof Object) {\n validateSelections(optimisticResponse[fieldName], selections, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n path: path\n }));\n return;\n } else {\n addFieldToDiff(path, context.missingDiff);\n return;\n }\n }\n\n case FLIGHT_FIELD:\n if (optimisticResponse[fieldName] === null || hasOwnProperty.call(optimisticResponse, fieldName) && optimisticResponse[fieldName] === undefined) {\n return;\n }\n\n throw new Error('validateMutation: Flight fields are not compatible with ' + 'optimistic updates, as React does not have the component code ' + 'necessary to process new data on the client. Instead, you ' + 'should update your code to require a full refetch of the Flight ' + 'field so your UI can be updated.');\n }\n };\n\n var validateOptimisticResponse = function validateOptimisticResponse(optimisticResponse, context) {\n if (Array.isArray(optimisticResponse)) {\n optimisticResponse.forEach(function (r) {\n if (r instanceof Object) {\n validateOptimisticResponse(r, context);\n }\n });\n return;\n }\n\n Object.keys(optimisticResponse).forEach(function (key) {\n var value = optimisticResponse[key];\n var path = \"\".concat(context.path, \".\").concat(key); // if it's a module import path we don't have an ast so we cannot validate it\n\n if (context.moduleImportPaths.has(path)) {\n return;\n }\n\n if (!context.visitedPaths.has(path)) {\n addFieldToDiff(path, context.extraDiff);\n return;\n }\n\n if (value instanceof Object) {\n validateOptimisticResponse(value, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, context), {}, {\n path: path\n }));\n }\n });\n };\n}\n\nmodule.exports = validateMutation;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayObservable = require('./RelayObservable');\n\n/**\n * Converts a FetchFunction into an ExecuteFunction for use by RelayNetwork.\n */\nfunction convertFetch(fn) {\n return function fetch(request, variables, cacheConfig, uploadables, logRequestInfo) {\n var result = fn(request, variables, cacheConfig, uploadables, logRequestInfo); // Note: We allow FetchFunction to directly return Error to indicate\n // a failure to fetch. To avoid handling this special case throughout the\n // Relay codebase, it is explicitly handled here.\n\n if (result instanceof Error) {\n return RelayObservable.create(function (sink) {\n return sink.error(result);\n });\n }\n\n return RelayObservable.from(result);\n };\n}\n\nmodule.exports = {\n convertFetch: convertFetch\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('./ConvertToExecuteFunction'),\n convertFetch = _require.convertFetch;\n\n/**\n * Creates an implementation of the `Network` interface defined in\n * `RelayNetworkTypes` given `fetch` and `subscribe` functions.\n */\nfunction create(fetchFn, subscribe) {\n // Convert to functions that returns RelayObservable.\n var observeFetch = convertFetch(fetchFn);\n\n function execute(request, variables, cacheConfig, uploadables, logRequestInfo) {\n if (request.operationKind === 'subscription') {\n !subscribe ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: This network layer does not support Subscriptions. ' + 'To use Subscriptions, provide a custom network layer.') : invariant(false) : void 0;\n !!uploadables ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: Cannot provide uploadables while subscribing.') : invariant(false) : void 0;\n return subscribe(request, variables, cacheConfig);\n }\n\n var pollInterval = cacheConfig.poll;\n\n if (pollInterval != null) {\n !!uploadables ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayNetwork: Cannot provide uploadables while polling.') : invariant(false) : void 0;\n return observeFetch(request, variables, {\n force: true\n }).poll(pollInterval);\n }\n\n return observeFetch(request, variables, cacheConfig, uploadables, logRequestInfo);\n }\n\n return {\n execute: execute\n };\n}\n\nmodule.exports = {\n create: create\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar isPromise = require('../util/isPromise');\n/**\n * A Subscription object is returned from .subscribe(), which can be\n * unsubscribed or checked to see if the resulting subscription has closed.\n */\n\n\nvar hostReportError = swallowError;\n/**\n * Limited implementation of ESObservable, providing the limited set of behavior\n * Relay networking requires.\n *\n * Observables retain the benefit of callbacks which can be called\n * synchronously, avoiding any UI jitter, while providing a compositional API,\n * which simplifies logic and prevents mishandling of errors compared to\n * the direct use of callback functions.\n *\n * ESObservable: https://github.com/tc39/proposal-observable\n */\n\nvar RelayObservable = /*#__PURE__*/function () {\n RelayObservable.create = function create(source) {\n return new RelayObservable(source);\n } // Use RelayObservable.create()\n ;\n\n function RelayObservable(source) {\n if (process.env.NODE_ENV !== \"production\") {\n // Early runtime errors for ill-formed sources.\n if (!source || typeof source !== 'function') {\n throw new Error('Source must be a Function: ' + String(source));\n }\n }\n\n this._source = source;\n }\n /**\n * When an emitted error event is not handled by an Observer, it is reported\n * to the host environment (what the ESObservable spec refers to as\n * \"HostReportErrors()\").\n *\n * The default implementation in development rethrows thrown errors, and\n * logs emitted error events to the console, while in production does nothing\n * (swallowing unhandled errors).\n *\n * Called during application initialization, this method allows\n * application-specific handling of unhandled errors. Allowing, for example,\n * integration with error logging or developer tools.\n *\n * A second parameter `isUncaughtThrownError` is true when the unhandled error\n * was thrown within an Observer handler, and false when the unhandled error\n * was an unhandled emitted event.\n *\n * - Uncaught thrown errors typically represent avoidable errors thrown from\n * application code, which should be handled with a try/catch block, and\n * usually have useful stack traces.\n *\n * - Unhandled emitted event errors typically represent unavoidable events in\n * application flow such as network failure, and may not have useful\n * stack traces.\n */\n\n\n RelayObservable.onUnhandledError = function onUnhandledError(callback) {\n hostReportError = callback;\n }\n /**\n * Accepts various kinds of data sources, and always returns a RelayObservable\n * useful for accepting the result of a user-provided FetchFunction.\n */\n ;\n\n RelayObservable.from = function from(obj) {\n return isObservable(obj) ? fromObservable(obj) : isPromise(obj) ? fromPromise(obj) : fromValue(obj);\n }\n /**\n * Similar to promise.catch(), observable.catch() handles error events, and\n * provides an alternative observable to use in it's place.\n *\n * If the catch handler throws a new error, it will appear as an error event\n * on the resulting Observable.\n */\n ;\n\n var _proto = RelayObservable.prototype;\n\n _proto[\"catch\"] = function _catch(fn) {\n var _this = this;\n\n return RelayObservable.create(function (sink) {\n var subscription;\n\n _this.subscribe({\n start: function start(sub) {\n subscription = sub;\n },\n next: sink.next,\n complete: sink.complete,\n error: function error(_error2) {\n try {\n fn(_error2).subscribe({\n start: function start(sub) {\n subscription = sub;\n },\n next: sink.next,\n complete: sink.complete,\n error: sink.error\n });\n } catch (error2) {\n sink.error(error2, true\n /* isUncaughtThrownError */\n );\n }\n }\n });\n\n return function () {\n return subscription.unsubscribe();\n };\n });\n }\n /**\n * Returns a new Observable which first yields values from this Observable,\n * then yields values from the next Observable. This is useful for chaining\n * together Observables of finite length.\n */\n ;\n\n _proto.concat = function concat(next) {\n var _this2 = this;\n\n return RelayObservable.create(function (sink) {\n var current;\n\n _this2.subscribe({\n start: function start(subscription) {\n current = subscription;\n },\n next: sink.next,\n error: sink.error,\n complete: function complete() {\n current = next.subscribe(sink);\n }\n });\n\n return function () {\n current && current.unsubscribe();\n };\n });\n }\n /**\n * Returns a new Observable which returns the same values as this one, but\n * modified so that the provided Observer is called to perform a side-effects\n * for all events emitted by the source.\n *\n * Any errors that are thrown in the side-effect Observer are unhandled, and\n * do not affect the source Observable or its Observer.\n *\n * This is useful for when debugging your Observables or performing other\n * side-effects such as logging or performance monitoring.\n */\n ;\n\n _proto[\"do\"] = function _do(observer) {\n var _this3 = this;\n\n return RelayObservable.create(function (sink) {\n var both = function both(action) {\n return function () {\n try {\n observer[action] && observer[action].apply(observer, arguments);\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n }\n\n sink[action] && sink[action].apply(sink, arguments);\n };\n };\n\n return _this3.subscribe({\n start: both('start'),\n next: both('next'),\n error: both('error'),\n complete: both('complete'),\n unsubscribe: both('unsubscribe')\n });\n });\n }\n /**\n * Returns a new Observable which returns the same values as this one, but\n * modified so that the finally callback is performed after completion,\n * whether normal or due to error or unsubscription.\n *\n * This is useful for cleanup such as resource finalization.\n */\n ;\n\n _proto[\"finally\"] = function _finally(fn) {\n var _this4 = this;\n\n return RelayObservable.create(function (sink) {\n var subscription = _this4.subscribe(sink);\n\n return function () {\n subscription.unsubscribe();\n fn();\n };\n });\n }\n /**\n * Returns a new Observable which is identical to this one, unless this\n * Observable completes before yielding any values, in which case the new\n * Observable will yield the values from the alternate Observable.\n *\n * If this Observable does yield values, the alternate is never subscribed to.\n *\n * This is useful for scenarios where values may come from multiple sources\n * which should be tried in order, i.e. from a cache before a network.\n */\n ;\n\n _proto.ifEmpty = function ifEmpty(alternate) {\n var _this5 = this;\n\n return RelayObservable.create(function (sink) {\n var hasValue = false;\n\n var current = _this5.subscribe({\n next: function next(value) {\n hasValue = true;\n sink.next(value);\n },\n error: sink.error,\n complete: function complete() {\n if (hasValue) {\n sink.complete();\n } else {\n current = alternate.subscribe(sink);\n }\n }\n });\n\n return function () {\n current.unsubscribe();\n };\n });\n }\n /**\n * Observable's primary API: returns an unsubscribable Subscription to the\n * source of this Observable.\n *\n * Note: A sink may be passed directly to .subscribe() as its observer,\n * allowing for easily composing Observables.\n */\n ;\n\n _proto.subscribe = function subscribe(observer) {\n if (process.env.NODE_ENV !== \"production\") {\n // Early runtime errors for ill-formed observers.\n if (!observer || typeof observer !== 'object') {\n throw new Error('Observer must be an Object with callbacks: ' + String(observer));\n }\n }\n\n return _subscribe(this._source, observer);\n }\n /**\n * Returns a new Observerable where each value has been transformed by\n * the mapping function.\n */\n ;\n\n _proto.map = function map(fn) {\n var _this6 = this;\n\n return RelayObservable.create(function (sink) {\n var subscription = _this6.subscribe({\n complete: sink.complete,\n error: sink.error,\n next: function next(value) {\n try {\n var mapValue = fn(value);\n sink.next(mapValue);\n } catch (error) {\n sink.error(error, true\n /* isUncaughtThrownError */\n );\n }\n }\n });\n\n return function () {\n subscription.unsubscribe();\n };\n });\n }\n /**\n * Returns a new Observable where each value is replaced with a new Observable\n * by the mapping function, the results of which returned as a single\n * merged Observable.\n */\n ;\n\n _proto.mergeMap = function mergeMap(fn) {\n var _this7 = this;\n\n return RelayObservable.create(function (sink) {\n var subscriptions = [];\n\n function start(subscription) {\n this._sub = subscription;\n subscriptions.push(subscription);\n }\n\n function complete() {\n subscriptions.splice(subscriptions.indexOf(this._sub), 1);\n\n if (subscriptions.length === 0) {\n sink.complete();\n }\n } // $FlowFixMe[incompatible-call]\n\n\n _this7.subscribe({\n start: start,\n next: function next(value) {\n try {\n if (!sink.closed) {\n // $FlowFixMe[incompatible-call]\n RelayObservable.from(fn(value)).subscribe({\n start: start,\n next: sink.next,\n error: sink.error,\n complete: complete\n });\n }\n } catch (error) {\n sink.error(error, true\n /* isUncaughtThrownError */\n );\n }\n },\n error: sink.error,\n complete: complete\n });\n\n return function () {\n subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n subscriptions.length = 0;\n };\n });\n }\n /**\n * Returns a new Observable which first mirrors this Observable, then when it\n * completes, waits for `pollInterval` milliseconds before re-subscribing to\n * this Observable again, looping in this manner until unsubscribed.\n *\n * The returned Observable never completes.\n */\n ;\n\n _proto.poll = function poll(pollInterval) {\n var _this8 = this;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof pollInterval !== 'number' || pollInterval <= 0) {\n throw new Error('RelayObservable: Expected pollInterval to be positive, got: ' + pollInterval);\n }\n }\n\n return RelayObservable.create(function (sink) {\n var subscription;\n var timeout;\n\n var poll = function poll() {\n subscription = _this8.subscribe({\n next: sink.next,\n error: sink.error,\n complete: function complete() {\n timeout = setTimeout(poll, pollInterval);\n }\n });\n };\n\n poll();\n return function () {\n clearTimeout(timeout);\n subscription.unsubscribe();\n };\n });\n }\n /**\n * Returns a Promise which resolves when this Observable yields a first value\n * or when it completes with no value.\n *\n * NOTE: The source Observable is *NOT* canceled when the returned Promise\n * resolves. The Observable is always run to completion.\n */\n ;\n\n _proto.toPromise = function toPromise() {\n var _this9 = this;\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n\n _this9.subscribe({\n next: function next(val) {\n if (!resolved) {\n resolved = true;\n resolve(val);\n }\n },\n error: reject,\n complete: resolve\n });\n });\n };\n\n return RelayObservable;\n}(); // Use declarations to teach Flow how to check isObservable.\n\n\nfunction isObservable(obj) {\n return typeof obj === 'object' && obj !== null && typeof obj.subscribe === 'function';\n}\n\nfunction fromObservable(obj) {\n return obj instanceof RelayObservable ? obj : RelayObservable.create(function (sink) {\n return obj.subscribe(sink);\n });\n}\n\nfunction fromPromise(promise) {\n return RelayObservable.create(function (sink) {\n // Since sink methods do not throw, the resulting Promise can be ignored.\n promise.then(function (value) {\n sink.next(value);\n sink.complete();\n }, sink.error);\n });\n}\n\nfunction fromValue(value) {\n return RelayObservable.create(function (sink) {\n sink.next(value);\n sink.complete();\n });\n}\n\nfunction _subscribe(source, observer) {\n var closed = false;\n var cleanup; // Ideally we would simply describe a `get closed()` method on the Sink and\n // Subscription objects below, however not all flow environments we expect\n // Relay to be used within will support property getters, and many minifier\n // tools still do not support ES5 syntax. Instead, we can use defineProperty.\n\n var withClosed = function withClosed(obj) {\n return Object.defineProperty(obj, 'closed', {\n get: function get() {\n return closed;\n }\n });\n };\n\n function doCleanup() {\n if (cleanup) {\n if (cleanup.unsubscribe) {\n cleanup.unsubscribe();\n } else {\n try {\n cleanup();\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n }\n }\n\n cleanup = undefined;\n }\n } // Create a Subscription.\n\n\n var subscription = withClosed({\n unsubscribe: function unsubscribe() {\n if (!closed) {\n closed = true; // Tell Observer that unsubscribe was called.\n\n try {\n observer.unsubscribe && observer.unsubscribe(subscription);\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n } finally {\n doCleanup();\n }\n }\n }\n }); // Tell Observer that observation is about to begin.\n\n try {\n observer.start && observer.start(subscription);\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n } // If closed already, don't bother creating a Sink.\n\n\n if (closed) {\n return subscription;\n } // Create a Sink respecting subscription state and cleanup.\n\n\n var sink = withClosed({\n next: function next(value) {\n if (!closed && observer.next) {\n try {\n observer.next(value);\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n }\n }\n },\n error: function error(_error3, isUncaughtThrownError) {\n if (closed || !observer.error) {\n closed = true;\n hostReportError(_error3, isUncaughtThrownError || false);\n doCleanup();\n } else {\n closed = true;\n\n try {\n observer.error(_error3);\n } catch (error2) {\n hostReportError(error2, true\n /* isUncaughtThrownError */\n );\n } finally {\n doCleanup();\n }\n }\n },\n complete: function complete() {\n if (!closed) {\n closed = true;\n\n try {\n observer.complete && observer.complete();\n } catch (error) {\n hostReportError(error, true\n /* isUncaughtThrownError */\n );\n } finally {\n doCleanup();\n }\n }\n }\n }); // If anything goes wrong during observing the source, handle the error.\n\n try {\n cleanup = source(sink);\n } catch (error) {\n sink.error(error, true\n /* isUncaughtThrownError */\n );\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n // Early runtime errors for ill-formed returned cleanup.\n if (cleanup !== undefined && typeof cleanup !== 'function' && (!cleanup || typeof cleanup.unsubscribe !== 'function')) {\n throw new Error('Returned cleanup function which cannot be called: ' + String(cleanup));\n }\n } // If closed before the source function existed, cleanup now.\n\n\n if (closed) {\n doCleanup();\n }\n\n return subscription;\n}\n\nfunction swallowError(_error, _isUncaughtThrownError) {// do nothing.\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n // Default implementation of HostReportErrors() in development builds.\n // Can be replaced by the host application environment.\n RelayObservable.onUnhandledError(function (error, isUncaughtThrownError) {\n if (typeof fail === 'function') {\n // In test environments (Jest), fail() immediately fails the current test.\n fail(String(error));\n } else if (isUncaughtThrownError) {\n // Rethrow uncaught thrown errors on the next frame to avoid breaking\n // current logic.\n setTimeout(function () {\n throw error;\n });\n } else if (typeof console !== 'undefined') {\n // Otherwise, log the unhandled error for visibility.\n // eslint-disable-next-line no-console\n console.error('RelayObservable: Unhandled Error', error);\n }\n });\n}\n\nmodule.exports = RelayObservable;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar invariant = require('invariant');\n\nvar stableCopy = require('../util/stableCopy');\n\n/**\n * A cache for storing query responses, featuring:\n * - `get` with TTL\n * - cache size limiting, with least-recently *updated* entries purged first\n */\nvar RelayQueryResponseCache = /*#__PURE__*/function () {\n function RelayQueryResponseCache(_ref) {\n var size = _ref.size,\n ttl = _ref.ttl;\n !(size > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayQueryResponseCache: Expected the max cache size to be > 0, got ' + '`%s`.', size) : invariant(false) : void 0;\n !(ttl > 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.', ttl) : invariant(false) : void 0;\n this._responses = new Map();\n this._size = size;\n this._ttl = ttl;\n }\n\n var _proto = RelayQueryResponseCache.prototype;\n\n _proto.clear = function clear() {\n this._responses.clear();\n };\n\n _proto.get = function get(queryID, variables) {\n var _this = this;\n\n var cacheKey = getCacheKey(queryID, variables);\n\n this._responses.forEach(function (response, key) {\n if (!isCurrent(response.fetchTime, _this._ttl)) {\n _this._responses[\"delete\"](key);\n }\n });\n\n var response = this._responses.get(cacheKey);\n\n if (response == null) {\n return null;\n }\n\n if (Array.isArray(response.payload)) {\n return response.payload.map(function (payload) {\n return (// $FlowFixMe[incompatible-cast]\n (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, payload), {}, {\n extensions: (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, payload.extensions), {}, {\n cacheTimestamp: response.fetchTime\n })\n })\n );\n });\n } // $FlowFixMe[incompatible-cast]\n\n\n return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, response.payload), {}, {\n extensions: (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, response.payload.extensions), {}, {\n cacheTimestamp: response.fetchTime\n })\n });\n };\n\n _proto.set = function set(queryID, variables, payload) {\n var fetchTime = Date.now();\n var cacheKey = getCacheKey(queryID, variables);\n\n this._responses[\"delete\"](cacheKey); // deletion resets key ordering\n\n\n this._responses.set(cacheKey, {\n fetchTime: fetchTime,\n payload: payload\n }); // Purge least-recently updated key when max size reached\n\n\n if (this._responses.size > this._size) {\n var firstKey = this._responses.keys().next();\n\n if (!firstKey.done) {\n this._responses[\"delete\"](firstKey.value);\n }\n }\n };\n\n return RelayQueryResponseCache;\n}();\n\nfunction getCacheKey(queryID, variables) {\n return JSON.stringify(stableCopy({\n queryID: queryID,\n variables: variables\n }));\n}\n/**\n * Determine whether a response fetched at `fetchTime` is still valid given\n * some `ttl`.\n */\n\n\nfunction isCurrent(fetchTime, ttl) {\n return fetchTime + ttl >= Date.now();\n}\n\nmodule.exports = RelayQueryResponseCache;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar generateID = require('../util/generateID');\n\n/**\n * Wraps the network with logging to ensure that network requests are\n * always logged. Relying on each network callsite to be wrapped is\n * untenable and will eventually lead to holes in the logging.\n * NOTE: This function takes an environment instance, because Relay\n * devtools will mutate the `env.__log` method, and the devtools rely\n * on it to receive network events.\n */\nfunction wrapNetworkWithLogObserver(env, network) {\n return {\n execute: function execute(params, variables, cacheConfig, uploadables) {\n var networkRequestId = generateID();\n var logObserver = {\n start: function start(subscription) {\n env.__log({\n name: 'network.start',\n networkRequestId: networkRequestId,\n params: params,\n variables: variables,\n cacheConfig: cacheConfig\n });\n },\n next: function next(response) {\n env.__log({\n name: 'network.next',\n networkRequestId: networkRequestId,\n response: response\n });\n },\n error: function error(_error) {\n env.__log({\n name: 'network.error',\n networkRequestId: networkRequestId,\n error: _error\n });\n },\n complete: function complete() {\n env.__log({\n name: 'network.complete',\n networkRequestId: networkRequestId\n });\n },\n unsubscribe: function unsubscribe() {\n env.__log({\n name: 'network.unsubscribe',\n networkRequestId: networkRequestId\n });\n }\n };\n\n var logRequestInfo = function logRequestInfo(info) {\n env.__log({\n name: 'network.info',\n networkRequestId: networkRequestId,\n info: info\n });\n };\n\n return network.execute(params, variables, cacheConfig, uploadables, logRequestInfo)[\"do\"](logObserver);\n }\n };\n}\n\nmodule.exports = wrapNetworkWithLogObserver;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\n/**\n * Runtime function to correspond to the `graphql` tagged template function.\n * All calls to this function should be transformed by the plugin.\n */\nfunction graphql(strings) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'graphql: Unexpected invocation at runtime. Either the Babel transform ' + 'was not set up, or it failed to identify this call site. Make sure it ' + 'is being used verbatim as `graphql`. Note also that there cannot be ' + 'a space between graphql and the backtick that follows.') : invariant(false) : void 0;\n}\n\nfunction getNode(taggedNode) {\n var node = taggedNode;\n\n if (typeof node === 'function') {\n node = node();\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayGraphQLTag: node `%s` unexpectedly wrapped in a function.', node.kind === 'Fragment' ? node.name : node.operation.name) : void 0;\n } else if (node[\"default\"]) {\n // Support for languages that work (best) with ES6 modules, such as TypeScript.\n node = node[\"default\"];\n }\n\n return node;\n}\n\nfunction isFragment(node) {\n var fragment = getNode(node);\n return typeof fragment === 'object' && fragment !== null && fragment.kind === RelayConcreteNode.FRAGMENT;\n}\n\nfunction isRequest(node) {\n var request = getNode(node);\n return typeof request === 'object' && request !== null && request.kind === RelayConcreteNode.REQUEST;\n}\n\nfunction isInlineDataFragment(node) {\n var fragment = getNode(node);\n return typeof fragment === 'object' && fragment !== null && fragment.kind === RelayConcreteNode.INLINE_DATA_FRAGMENT;\n}\n\nfunction getFragment(taggedNode) {\n var fragment = getNode(taggedNode);\n !isFragment(fragment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected a fragment, got `%s`.', JSON.stringify(fragment)) : invariant(false) : void 0;\n return fragment;\n}\n\nfunction getPaginationFragment(taggedNode) {\n var _fragment$metadata;\n\n var fragment = getFragment(taggedNode);\n var refetch = (_fragment$metadata = fragment.metadata) === null || _fragment$metadata === void 0 ? void 0 : _fragment$metadata.refetch;\n var connection = refetch === null || refetch === void 0 ? void 0 : refetch.connection;\n\n if (refetch === null || typeof refetch !== 'object' || connection === null || typeof connection !== 'object') {\n return null;\n }\n\n return fragment;\n}\n\nfunction getRefetchableFragment(taggedNode) {\n var _fragment$metadata2;\n\n var fragment = getFragment(taggedNode);\n var refetch = (_fragment$metadata2 = fragment.metadata) === null || _fragment$metadata2 === void 0 ? void 0 : _fragment$metadata2.refetch;\n\n if (refetch === null || typeof refetch !== 'object') {\n return null;\n }\n\n return fragment;\n}\n\nfunction getRequest(taggedNode) {\n var request = getNode(taggedNode);\n !isRequest(request) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected a request, got `%s`.', JSON.stringify(request)) : invariant(false) : void 0;\n return request;\n}\n\nfunction getInlineDataFragment(taggedNode) {\n var fragment = getNode(taggedNode);\n !isInlineDataFragment(fragment) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'GraphQLTag: Expected an inline data fragment, got `%s`.', JSON.stringify(fragment)) : invariant(false) : void 0;\n return fragment;\n}\n\nmodule.exports = {\n getFragment: getFragment,\n getNode: getNode,\n getPaginationFragment: getPaginationFragment,\n getRefetchableFragment: getRefetchableFragment,\n getRequest: getRequest,\n getInlineDataFragment: getInlineDataFragment,\n graphql: graphql,\n isFragment: isFragment,\n isRequest: isRequest,\n isInlineDataFragment: isInlineDataFragment\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 * @emails oncall+relay\n * \n * @format\n */\n'use strict';\n\nvar PreloadableQueryRegistry = /*#__PURE__*/function () {\n function PreloadableQueryRegistry() {\n this._preloadableQueries = new Map();\n this._callbacks = new Map();\n }\n\n var _proto = PreloadableQueryRegistry.prototype;\n\n _proto.set = function set(key, value) {\n this._preloadableQueries.set(key, value);\n\n var callbacks = this._callbacks.get(key);\n\n if (callbacks != null) {\n callbacks.forEach(function (cb) {\n try {\n cb(value);\n } catch (e) {\n // We do *not* want to throw in this tick, as this callback is executed\n // while a query is required for the very first time.\n setTimeout(function () {\n throw e;\n }, 0);\n }\n });\n }\n };\n\n _proto.get = function get(key) {\n return this._preloadableQueries.get(key);\n };\n\n _proto.onLoad = function onLoad(key, callback) {\n var _this$_callbacks$get;\n\n var callbacks = (_this$_callbacks$get = this._callbacks.get(key)) !== null && _this$_callbacks$get !== void 0 ? _this$_callbacks$get : new Set();\n callbacks.add(callback);\n\n var dispose = function dispose() {\n callbacks[\"delete\"](callback);\n };\n\n this._callbacks.set(key, callbacks);\n\n return {\n dispose: dispose\n };\n };\n\n _proto.clear = function clear() {\n this._preloadableQueries.clear();\n };\n\n return PreloadableQueryRegistry;\n}();\n\nvar preloadableQueryRegistry = new PreloadableQueryRegistry();\nmodule.exports = preloadableQueryRegistry;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar RelayObservable = require('../network/RelayObservable');\n\nvar fetchQueryInternal = require('./fetchQueryInternal');\n\nvar invariant = require('invariant');\n\nvar reportMissingRequiredFields = require('../util/reportMissingRequiredFields');\n\nvar _require = require('../store/RelayModernOperationDescriptor'),\n createOperationDescriptor = _require.createOperationDescriptor;\n\nvar _require2 = require('./GraphQLTag'),\n getRequest = _require2.getRequest;\n\n/**\n * Fetches the given query and variables on the provided environment,\n * and de-dupes identical in-flight requests.\n *\n * Observing a request:\n * ====================\n * fetchQuery returns an Observable which you can call .subscribe()\n * on. Subscribe optionally takes an Observer, which you can provide to\n * observe network events:\n *\n * ```\n * fetchQuery(environment, query, variables).subscribe({\n * // Called when network requests starts\n * start: (subsctiption) => {},\n *\n * // Called after a payload is received and written to the local store\n * next: (payload) => {},\n *\n * // Called when network requests errors\n * error: (error) => {},\n *\n * // Called when network requests fully completes\n * complete: () => {},\n *\n * // Called when network request is unsubscribed\n * unsubscribe: (subscription) => {},\n * });\n * ```\n *\n * Request Promise:\n * ================\n * The obervable can be converted to a Promise with .toPromise(), which will\n * resolve to a snapshot of the query data when the first response is received\n * from the server.\n *\n * ```\n * fetchQuery(environment, query, variables).toPromise().then((data) => {\n * // ...\n * });\n * ```\n *\n * In-flight request de-duping:\n * ============================\n * By default, calling fetchQuery multiple times with the same\n * environment, query and variables will not initiate a new request if a request\n * for those same parameters is already in flight.\n *\n * A request is marked in-flight from the moment it starts until the moment it\n * fully completes, regardless of error or successful completion.\n *\n * NOTE: If the request completes _synchronously_, calling fetchQuery\n * a second time with the same arguments in the same tick will _NOT_ de-dupe\n * the request given that it will no longer be in-flight.\n *\n *\n * Data Retention:\n * ===============\n * This function will NOT retain query data, meaning that it is not guaranteed\n * that the fetched data will remain in the Relay store after the request has\n * completed.\n * If you need to retain the query data outside of the network request,\n * you need to use `environment.retain()`.\n *\n *\n * Cancelling requests:\n * ====================\n * If the disposable returned by subscribe is called while the\n * request is in-flight, the request will be cancelled.\n *\n * ```\n * const disposable = fetchQuery(...).subscribe(...);\n *\n * // This will cancel the request if it is in-flight.\n * disposable.dispose();\n * ```\n * NOTE: When using .toPromise(), the request cannot be cancelled.\n */\nfunction fetchQuery(environment, query, variables, options) {\n var _options$fetchPolicy;\n\n var queryNode = getRequest(query);\n !(queryNode.params.operationKind === 'query') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'fetchQuery: Expected query operation') : invariant(false) : void 0;\n var networkCacheConfig = (0, _objectSpread2[\"default\"])({\n force: true\n }, options === null || options === void 0 ? void 0 : options.networkCacheConfig);\n var operation = createOperationDescriptor(queryNode, variables, networkCacheConfig);\n var fetchPolicy = (_options$fetchPolicy = options === null || options === void 0 ? void 0 : options.fetchPolicy) !== null && _options$fetchPolicy !== void 0 ? _options$fetchPolicy : 'network-only';\n\n function readData(snapshot) {\n if (snapshot.missingRequiredFields != null) {\n reportMissingRequiredFields(environment, snapshot.missingRequiredFields);\n }\n\n return snapshot.data;\n }\n\n switch (fetchPolicy) {\n case 'network-only':\n {\n return getNetworkObservable(environment, operation).map(readData);\n }\n\n case 'store-or-network':\n {\n if (environment.check(operation).status === 'available') {\n return RelayObservable.from(environment.lookup(operation.fragment)).map(readData);\n }\n\n return getNetworkObservable(environment, operation).map(readData);\n }\n\n default:\n fetchPolicy;\n throw new Error('fetchQuery: Invalid fetchPolicy ' + fetchPolicy);\n }\n}\n\nfunction getNetworkObservable(environment, operation) {\n return fetchQueryInternal.fetchQuery(environment, operation).map(function () {\n return environment.lookup(operation.fragment);\n });\n}\n\nmodule.exports = fetchQuery;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar Observable = require('../network/RelayObservable');\n\nvar RelayReplaySubject = require('../util/RelayReplaySubject');\n\nvar invariant = require('invariant');\n\nvar WEAKMAP_SUPPORTED = typeof WeakMap === 'function';\nvar requestCachesByEnvironment = WEAKMAP_SUPPORTED ? new WeakMap() : new Map();\n/**\n * Fetches the given query and variables on the provided environment,\n * and de-dupes identical in-flight requests.\n *\n * Observing a request:\n * ====================\n * fetchQuery returns an Observable which you can call .subscribe()\n * on. subscribe() takes an Observer, which you can provide to\n * observe network events:\n *\n * ```\n * fetchQuery(environment, query, variables).subscribe({\n * // Called when network requests starts\n * start: (subscription) => {},\n *\n * // Called after a payload is received and written to the local store\n * next: (payload) => {},\n *\n * // Called when network requests errors\n * error: (error) => {},\n *\n * // Called when network requests fully completes\n * complete: () => {},\n *\n * // Called when network request is unsubscribed\n * unsubscribe: (subscription) => {},\n * });\n * ```\n *\n * In-flight request de-duping:\n * ============================\n * By default, calling fetchQuery multiple times with the same\n * environment, query and variables will not initiate a new request if a request\n * for those same parameters is already in flight.\n *\n * A request is marked in-flight from the moment it starts until the moment it\n * fully completes, regardless of error or successful completion.\n *\n * NOTE: If the request completes _synchronously_, calling fetchQuery\n * a second time with the same arguments in the same tick will _NOT_ de-dupe\n * the request given that it will no longer be in-flight.\n *\n *\n * Data Retention:\n * ===============\n * This function will not retain any query data outside the scope of the\n * request, which means it is not guaranteed that it won't be garbage\n * collected after the request completes.\n * If you need to retain data, you can do so manually with environment.retain().\n *\n * Cancelling requests:\n * ====================\n * If the subscription returned by subscribe is called while the\n * request is in-flight, the request will be cancelled.\n *\n * ```\n * const subscription = fetchQuery(...).subscribe(...);\n *\n * // This will cancel the request if it is in-flight.\n * subscription.unsubscribe();\n * ```\n */\n\nfunction fetchQuery(environment, operation) {\n return fetchQueryDeduped(environment, operation.request.identifier, function () {\n return environment.execute({\n operation: operation\n });\n });\n}\n/**\n * Low-level implementation details of `fetchQuery`.\n *\n * `fetchQueryDeduped` can also be used to share a single cache for\n * requests that aren't using `fetchQuery` directly (e.g. because they don't\n * have an `OperationDescriptor` when they are called).\n */\n\n\nfunction fetchQueryDeduped(environment, identifier, fetchFn) {\n return Observable.create(function (sink) {\n var requestCache = getRequestCache(environment);\n var cachedRequest = requestCache.get(identifier);\n\n if (!cachedRequest) {\n fetchFn()[\"finally\"](function () {\n return requestCache[\"delete\"](identifier);\n }).subscribe({\n start: function start(subscription) {\n cachedRequest = {\n identifier: identifier,\n subject: new RelayReplaySubject(),\n subjectForInFlightStatus: new RelayReplaySubject(),\n subscription: subscription\n };\n requestCache.set(identifier, cachedRequest);\n },\n next: function next(response) {\n var cachedReq = getCachedRequest(requestCache, identifier);\n cachedReq.subject.next(response);\n cachedReq.subjectForInFlightStatus.next(response);\n },\n error: function error(_error) {\n var cachedReq = getCachedRequest(requestCache, identifier);\n cachedReq.subject.error(_error);\n cachedReq.subjectForInFlightStatus.error(_error);\n },\n complete: function complete() {\n var cachedReq = getCachedRequest(requestCache, identifier);\n cachedReq.subject.complete();\n cachedReq.subjectForInFlightStatus.complete();\n },\n unsubscribe: function unsubscribe(subscription) {\n var cachedReq = getCachedRequest(requestCache, identifier);\n cachedReq.subject.unsubscribe();\n cachedReq.subjectForInFlightStatus.unsubscribe();\n }\n });\n }\n\n !(cachedRequest != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[fetchQueryInternal] fetchQueryDeduped: Expected `start` to be ' + 'called synchronously') : invariant(false) : void 0;\n return getObservableForCachedRequest(requestCache, cachedRequest).subscribe(sink);\n });\n}\n/**\n * @private\n */\n\n\nfunction getObservableForCachedRequest(requestCache, cachedRequest) {\n return Observable.create(function (sink) {\n var subscription = cachedRequest.subject.subscribe(sink);\n return function () {\n subscription.unsubscribe();\n var cachedRequestInstance = requestCache.get(cachedRequest.identifier);\n\n if (cachedRequestInstance) {\n var requestSubscription = cachedRequestInstance.subscription;\n\n if (requestSubscription != null && cachedRequestInstance.subject.getObserverCount() === 0) {\n requestSubscription.unsubscribe();\n requestCache[\"delete\"](cachedRequest.identifier);\n }\n }\n };\n });\n}\n/**\n * @private\n */\n\n\nfunction getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest) {\n return Observable.create(function (sink) {\n var subscription = cachedRequest.subjectForInFlightStatus.subscribe({\n error: sink.error,\n next: function next(response) {\n if (!environment.isRequestActive(cachedRequest.identifier)) {\n sink.complete();\n return;\n }\n\n sink.next();\n },\n complete: sink.complete,\n unsubscribe: sink.complete\n });\n return function () {\n subscription.unsubscribe();\n };\n });\n}\n/**\n * If a request is active for the given query, variables and environment,\n * this function will return a Promise that will resolve when that request\n * stops being active (receives a final payload), and the data has been saved\n * to the store.\n * If no request is active, null will be returned\n */\n\n\nfunction getPromiseForActiveRequest(environment, request) {\n var requestCache = getRequestCache(environment);\n var cachedRequest = requestCache.get(request.identifier);\n\n if (!cachedRequest) {\n return null;\n }\n\n if (!environment.isRequestActive(cachedRequest.identifier)) {\n return null;\n }\n\n return new Promise(function (resolve, reject) {\n var resolveOnNext = false;\n getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest).subscribe({\n complete: resolve,\n error: reject,\n next: function next(response) {\n /*\n * The underlying `RelayReplaySubject` will synchronously replay events\n * as soon as we subscribe, but since we want the *next* asynchronous\n * one, we'll ignore them until the replay finishes.\n */\n if (resolveOnNext) {\n resolve(response);\n }\n }\n });\n resolveOnNext = true;\n });\n}\n/**\n * If there is a pending request for the given query, returns an Observable of\n * *all* its responses. Existing responses are published synchronously and\n * subsequent responses are published asynchronously. Returns null if there is\n * no pending request. This is similar to fetchQuery() except that it will not\n * issue a fetch if there isn't already one pending.\n */\n\n\nfunction getObservableForActiveRequest(environment, request) {\n var requestCache = getRequestCache(environment);\n var cachedRequest = requestCache.get(request.identifier);\n\n if (!cachedRequest) {\n return null;\n }\n\n if (!environment.isRequestActive(cachedRequest.identifier)) {\n return null;\n }\n\n return getActiveStatusObservableForCachedRequest(environment, requestCache, cachedRequest);\n}\n/**\n * @private\n */\n\n\nfunction getRequestCache(environment) {\n var cached = requestCachesByEnvironment.get(environment);\n\n if (cached != null) {\n return cached;\n }\n\n var requestCache = new Map();\n requestCachesByEnvironment.set(environment, requestCache);\n return requestCache;\n}\n/**\n * @private\n */\n\n\nfunction getCachedRequest(requestCache, identifier) {\n var cached = requestCache.get(identifier);\n !(cached != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[fetchQueryInternal] getCachedRequest: Expected request to be cached') : invariant(false) : void 0;\n return cached;\n}\n\nmodule.exports = {\n fetchQuery: fetchQuery,\n fetchQueryDeduped: fetchQueryDeduped,\n getPromiseForActiveRequest: getPromiseForActiveRequest,\n getObservableForActiveRequest: getObservableForActiveRequest\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('../store/RelayModernOperationDescriptor'),\n createOperationDescriptor = _require.createOperationDescriptor;\n\nvar _require2 = require('./GraphQLTag'),\n getRequest = _require2.getRequest;\n\n/**\n * A helper function to fetch the results of a query. Note that results for\n * fragment spreads are masked: fields must be explicitly listed in the query in\n * order to be accessible in the result object.\n */\nfunction fetchQuery_DEPRECATED(environment, taggedNode, variables, cacheConfig) {\n var query = getRequest(taggedNode);\n\n if (query.params.operationKind !== 'query') {\n throw new Error('fetchQuery: Expected query operation');\n }\n\n var operation = createOperationDescriptor(query, variables, cacheConfig);\n return environment.execute({\n operation: operation\n }).map(function () {\n return environment.lookup(operation.fragment).data;\n }).toPromise();\n}\n\nmodule.exports = fetchQuery_DEPRECATED;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar PREFIX = 'client:';\n\nfunction generateClientID(id, storageKey, index) {\n var key = id + ':' + storageKey;\n\n if (index != null) {\n key += ':' + index;\n }\n\n if (key.indexOf(PREFIX) !== 0) {\n key = PREFIX + key;\n }\n\n return key;\n}\n\nfunction isClientID(id) {\n return id.indexOf(PREFIX) === 0;\n}\n\nvar localID = 0;\n\nfunction generateUniqueClientID() {\n return \"\".concat(PREFIX, \"local:\").concat(localID++);\n}\n\nmodule.exports = {\n generateClientID: generateClientID,\n generateUniqueClientID: generateUniqueClientID,\n isClientID: isClientID\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 * @format\n * @emails oncall+relay\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');\n\nvar RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');\n\nvar RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');\n\nvar RelayStoreUtils = require('./RelayStoreUtils');\n\nvar cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');\n\nvar cloneRelayScalarHandleSourceField = require('./cloneRelayScalarHandleSourceField');\n\nvar getOperation = require('../util/getOperation');\n\nvar invariant = require('invariant');\n\nvar _require = require('./ClientID'),\n isClientID = _require.isClientID;\n\nvar _require2 = require('./RelayConcreteVariables'),\n getLocalVariables = _require2.getLocalVariables;\n\nvar _require3 = require('./RelayRecordState'),\n EXISTENT = _require3.EXISTENT,\n UNKNOWN = _require3.UNKNOWN;\n\nvar _require4 = require('./TypeID'),\n generateTypeID = _require4.generateTypeID;\n\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n CONDITION = RelayConcreteNode.CONDITION,\n CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n DEFER = RelayConcreteNode.DEFER,\n FLIGHT_FIELD = RelayConcreteNode.FLIGHT_FIELD,\n FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n STREAM = RelayConcreteNode.STREAM,\n TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR;\nvar ROOT_ID = RelayStoreUtils.ROOT_ID,\n getModuleOperationKey = RelayStoreUtils.getModuleOperationKey,\n getStorageKey = RelayStoreUtils.getStorageKey,\n getArgumentValues = RelayStoreUtils.getArgumentValues;\n/**\n * Synchronously check whether the records required to fulfill the given\n * `selector` are present in `source`.\n *\n * If a field is missing, it uses the provided handlers to attempt to substitute\n * data. The `target` will store all records that are modified because of a\n * successful substitution.\n *\n * If all records are present, returns `true`, otherwise `false`.\n */\n\nfunction check(getSourceForActor, getTargetForActor, defaultActorIdentifier, selector, handlers, operationLoader, getDataID, shouldProcessClientComponents) {\n var dataID = selector.dataID,\n node = selector.node,\n variables = selector.variables;\n var checker = new DataChecker(getSourceForActor, getTargetForActor, defaultActorIdentifier, variables, handlers, operationLoader, getDataID, shouldProcessClientComponents);\n return checker.check(node, dataID);\n}\n/**\n * @private\n */\n\n\nvar DataChecker = /*#__PURE__*/function () {\n function DataChecker(getSourceForActor, getTargetForActor, defaultActorIdentifier, variables, handlers, operationLoader, getDataID, shouldProcessClientComponents) {\n this._getSourceForActor = getSourceForActor;\n this._getTargetForActor = getTargetForActor;\n this._getDataID = getDataID;\n this._source = getSourceForActor(defaultActorIdentifier);\n this._mutatorRecordSourceProxyCache = new Map();\n\n var _this$_getMutatorAndR = this._getMutatorAndRecordProxyForActor(defaultActorIdentifier),\n mutator = _this$_getMutatorAndR[0],\n recordSourceProxy = _this$_getMutatorAndR[1];\n\n this._mostRecentlyInvalidatedAt = null;\n this._handlers = handlers;\n this._mutator = mutator;\n this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;\n this._recordSourceProxy = recordSourceProxy;\n this._recordWasMissing = false;\n this._variables = variables;\n this._shouldProcessClientComponents = shouldProcessClientComponents;\n }\n\n var _proto = DataChecker.prototype;\n\n _proto._getMutatorAndRecordProxyForActor = function _getMutatorAndRecordProxyForActor(actorIdentifier) {\n var tuple = this._mutatorRecordSourceProxyCache.get(actorIdentifier);\n\n if (tuple == null) {\n var target = this._getTargetForActor(actorIdentifier);\n\n var mutator = new RelayRecordSourceMutator(this._getSourceForActor(actorIdentifier), target);\n var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID);\n tuple = [mutator, recordSourceProxy];\n\n this._mutatorRecordSourceProxyCache.set(actorIdentifier, tuple);\n }\n\n return tuple;\n };\n\n _proto.check = function check(node, dataID) {\n this._traverse(node, dataID);\n\n return this._recordWasMissing === true ? {\n status: 'missing',\n mostRecentlyInvalidatedAt: this._mostRecentlyInvalidatedAt\n } : {\n status: 'available',\n mostRecentlyInvalidatedAt: this._mostRecentlyInvalidatedAt\n };\n };\n\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayAsyncLoader(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n\n return this._variables[name];\n };\n\n _proto._handleMissing = function _handleMissing() {\n this._recordWasMissing = true;\n };\n\n _proto._getDataForHandlers = function _getDataForHandlers(field, dataID) {\n return {\n /* $FlowFixMe[class-object-subtyping] added when improving typing for\n * this parameters */\n args: field.args ? getArgumentValues(field.args, this._variables) : {},\n // Getting a snapshot of the record state is potentially expensive since\n // we will need to merge the sink and source records. Since we do not create\n // any new records in this process, it is probably reasonable to provide\n // handlers with a copy of the source record.\n // The only thing that the provided record will not contain is fields\n // added by previous handlers.\n record: this._source.get(dataID)\n };\n };\n\n _proto._handleMissingScalarField = function _handleMissingScalarField(field, dataID) {\n if (field.name === 'id' && field.alias == null && isClientID(dataID)) {\n return undefined;\n }\n\n var _this$_getDataForHand = this._getDataForHandlers(field, dataID),\n args = _this$_getDataForHand.args,\n record = _this$_getDataForHand.record;\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var handler = _step.value;\n\n if (handler.kind === 'scalar') {\n var newValue = handler.handle(field, record, args, this._recordSourceProxy);\n\n if (newValue !== undefined) {\n return newValue;\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._handleMissing();\n };\n\n _proto._handleMissingLinkField = function _handleMissingLinkField(field, dataID) {\n var _this$_getDataForHand2 = this._getDataForHandlers(field, dataID),\n args = _this$_getDataForHand2.args,\n record = _this$_getDataForHand2.record;\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var handler = _step2.value;\n\n if (handler.kind === 'linked') {\n var newValue = handler.handle(field, record, args, this._recordSourceProxy);\n\n if (newValue !== undefined && (newValue === null || this._mutator.getStatus(newValue) === EXISTENT)) {\n return newValue;\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this._handleMissing();\n };\n\n _proto._handleMissingPluralLinkField = function _handleMissingPluralLinkField(field, dataID) {\n var _this = this;\n\n var _this$_getDataForHand3 = this._getDataForHandlers(field, dataID),\n args = _this$_getDataForHand3.args,\n record = _this$_getDataForHand3.record;\n\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(this._handlers),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var handler = _step3.value;\n\n if (handler.kind === 'pluralLinked') {\n var newValue = handler.handle(field, record, args, this._recordSourceProxy);\n\n if (newValue != null) {\n var allItemsKnown = newValue.every(function (linkedID) {\n return linkedID != null && _this._mutator.getStatus(linkedID) === EXISTENT;\n });\n\n if (allItemsKnown) {\n return newValue;\n }\n } else if (newValue === null) {\n return null;\n }\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n this._handleMissing();\n };\n\n _proto._traverse = function _traverse(node, dataID) {\n var status = this._mutator.getStatus(dataID);\n\n if (status === UNKNOWN) {\n this._handleMissing();\n }\n\n if (status === EXISTENT) {\n var record = this._source.get(dataID);\n\n var invalidatedAt = RelayModernRecord.getInvalidationEpoch(record);\n\n if (invalidatedAt != null) {\n this._mostRecentlyInvalidatedAt = this._mostRecentlyInvalidatedAt != null ? Math.max(this._mostRecentlyInvalidatedAt, invalidatedAt) : invalidatedAt;\n }\n\n this._traverseSelections(node.selections, dataID);\n }\n };\n\n _proto._traverseSelections = function _traverseSelections(selections, dataID) {\n var _this2 = this;\n\n selections.forEach(function (selection) {\n switch (selection.kind) {\n case SCALAR_FIELD:\n _this2._checkScalar(selection, dataID);\n\n break;\n\n case LINKED_FIELD:\n if (selection.plural) {\n _this2._checkPluralLink(selection, dataID);\n } else {\n _this2._checkLink(selection, dataID);\n }\n\n break;\n\n case ACTOR_CHANGE:\n _this2._checkActorChange(selection.linkedField, dataID);\n\n break;\n\n case CONDITION:\n var conditionValue = Boolean(_this2._getVariableValue(selection.condition));\n\n if (conditionValue === selection.passingValue) {\n _this2._traverseSelections(selection.selections, dataID);\n }\n\n break;\n\n case INLINE_FRAGMENT:\n {\n var _abstractKey = selection.abstractKey;\n\n if (_abstractKey == null) {\n // concrete type refinement: only check data if the type exactly matches\n var typeName = _this2._mutator.getType(dataID);\n\n if (typeName === selection.type) {\n _this2._traverseSelections(selection.selections, dataID);\n }\n } else {\n // Abstract refinement: check data depending on whether the type\n // conforms to the interface/union or not:\n // - Type known to _not_ implement the interface: don't check the selections.\n // - Type is known _to_ implement the interface: check selections.\n // - Unknown whether the type implements the interface: don't check the selections\n // and treat the data as missing; we do this because the Relay Compiler\n // guarantees that the type discriminator will always be fetched.\n var _recordType = _this2._mutator.getType(dataID);\n\n !(_recordType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected record `%s` to have a known type', dataID) : invariant(false) : void 0;\n\n var _typeID = generateTypeID(_recordType);\n\n var _implementsInterface = _this2._mutator.getValue(_typeID, _abstractKey);\n\n if (_implementsInterface === true) {\n _this2._traverseSelections(selection.selections, dataID);\n } else if (_implementsInterface == null) {\n // unsure if the type implements the interface: data is\n // missing so don't bother reading the fragment\n _this2._handleMissing();\n } // else false: known to not implement the interface\n\n }\n\n break;\n }\n\n case LINKED_HANDLE:\n {\n // Handles have no selections themselves; traverse the original field\n // where the handle was set-up instead.\n var handleField = cloneRelayHandleSourceField(selection, selections, _this2._variables);\n\n if (handleField.plural) {\n _this2._checkPluralLink(handleField, dataID);\n } else {\n _this2._checkLink(handleField, dataID);\n }\n\n break;\n }\n\n case SCALAR_HANDLE:\n {\n var _handleField = cloneRelayScalarHandleSourceField(selection, selections, _this2._variables);\n\n _this2._checkScalar(_handleField, dataID);\n\n break;\n }\n\n case MODULE_IMPORT:\n _this2._checkModuleImport(selection, dataID);\n\n break;\n\n case DEFER:\n case STREAM:\n _this2._traverseSelections(selection.selections, dataID);\n\n break;\n\n case FRAGMENT_SPREAD:\n var prevVariables = _this2._variables;\n _this2._variables = getLocalVariables(_this2._variables, selection.fragment.argumentDefinitions, selection.args);\n\n _this2._traverseSelections(selection.fragment.selections, dataID);\n\n _this2._variables = prevVariables;\n break;\n\n case CLIENT_EXTENSION:\n var recordWasMissing = _this2._recordWasMissing;\n\n _this2._traverseSelections(selection.selections, dataID);\n\n _this2._recordWasMissing = recordWasMissing;\n break;\n\n case TYPE_DISCRIMINATOR:\n var abstractKey = selection.abstractKey;\n\n var recordType = _this2._mutator.getType(dataID);\n\n !(recordType != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected record `%s` to have a known type', dataID) : invariant(false) : void 0;\n var typeID = generateTypeID(recordType);\n\n var implementsInterface = _this2._mutator.getValue(typeID, abstractKey);\n\n if (implementsInterface == null) {\n // unsure if the type implements the interface: data is\n // missing\n _this2._handleMissing();\n } // else: if it does or doesn't implement, we don't need to check or skip anything else\n\n\n break;\n\n case FLIGHT_FIELD:\n if (RelayFeatureFlags.ENABLE_REACT_FLIGHT_COMPONENT_FIELD) {\n _this2._checkFlightField(selection, dataID);\n } else {\n throw new Error('Flight fields are not yet supported.');\n }\n\n break;\n\n case CLIENT_COMPONENT:\n if (_this2._shouldProcessClientComponents === false) {\n break;\n }\n\n _this2._traverseSelections(selection.fragment.selections, dataID);\n\n break;\n\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayAsyncLoader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n });\n };\n\n _proto._checkModuleImport = function _checkModuleImport(moduleImport, dataID) {\n var operationLoader = this._operationLoader;\n !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using `@module`.') : invariant(false) : void 0;\n var operationKey = getModuleOperationKey(moduleImport.documentName);\n\n var operationReference = this._mutator.getValue(dataID, operationKey);\n\n if (operationReference == null) {\n if (operationReference === undefined) {\n this._handleMissing();\n }\n\n return;\n }\n\n var normalizationRootNode = operationLoader.get(operationReference);\n\n if (normalizationRootNode != null) {\n var operation = getOperation(normalizationRootNode);\n var prevVariables = this._variables;\n this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);\n\n this._traverse(operation, dataID);\n\n this._variables = prevVariables;\n } else {\n // If the fragment is not available, we assume that the data cannot have been\n // processed yet and must therefore be missing.\n this._handleMissing();\n }\n };\n\n _proto._checkScalar = function _checkScalar(field, dataID) {\n var storageKey = getStorageKey(field, this._variables);\n\n var fieldValue = this._mutator.getValue(dataID, storageKey);\n\n if (fieldValue === undefined) {\n fieldValue = this._handleMissingScalarField(field, dataID);\n\n if (fieldValue !== undefined) {\n this._mutator.setValue(dataID, storageKey, fieldValue);\n }\n }\n };\n\n _proto._checkLink = function _checkLink(field, dataID) {\n var storageKey = getStorageKey(field, this._variables);\n\n var linkedID = this._mutator.getLinkedRecordID(dataID, storageKey);\n\n if (linkedID === undefined) {\n linkedID = this._handleMissingLinkField(field, dataID);\n\n if (linkedID != null) {\n this._mutator.setLinkedRecordID(dataID, storageKey, linkedID);\n } else if (linkedID === null) {\n this._mutator.setValue(dataID, storageKey, null);\n }\n }\n\n if (linkedID != null) {\n this._traverse(field, linkedID);\n }\n };\n\n _proto._checkPluralLink = function _checkPluralLink(field, dataID) {\n var _this3 = this;\n\n var storageKey = getStorageKey(field, this._variables);\n\n var linkedIDs = this._mutator.getLinkedRecordIDs(dataID, storageKey);\n\n if (linkedIDs === undefined) {\n linkedIDs = this._handleMissingPluralLinkField(field, dataID);\n\n if (linkedIDs != null) {\n this._mutator.setLinkedRecordIDs(dataID, storageKey, linkedIDs);\n } else if (linkedIDs === null) {\n this._mutator.setValue(dataID, storageKey, null);\n }\n }\n\n if (linkedIDs) {\n linkedIDs.forEach(function (linkedID) {\n if (linkedID != null) {\n _this3._traverse(field, linkedID);\n }\n });\n }\n };\n\n _proto._checkActorChange = function _checkActorChange(field, dataID) {\n var storageKey = getStorageKey(field, this._variables);\n\n var record = this._source.get(dataID);\n\n var tuple = record != null ? RelayModernRecord.getActorLinkedRecordID(record, storageKey) : record;\n\n if (tuple == null) {\n if (tuple === undefined) {\n this._handleMissing();\n }\n } else {\n var _actorIdentifier = tuple[0],\n linkedID = tuple[1];\n var prevSource = this._source;\n var prevMutator = this._mutator;\n var prevRecordSourceProxy = this._recordSourceProxy;\n\n var _this$_getMutatorAndR2 = this._getMutatorAndRecordProxyForActor(_actorIdentifier),\n mutator = _this$_getMutatorAndR2[0],\n recordSourceProxy = _this$_getMutatorAndR2[1];\n\n this._source = this._getSourceForActor(_actorIdentifier);\n this._mutator = mutator;\n this._recordSourceProxy = recordSourceProxy;\n\n this._traverse(field, linkedID);\n\n this._source = prevSource;\n this._mutator = prevMutator;\n this._recordSourceProxy = prevRecordSourceProxy;\n }\n };\n\n _proto._checkFlightField = function _checkFlightField(field, dataID) {\n var storageKey = getStorageKey(field, this._variables);\n\n var linkedID = this._mutator.getLinkedRecordID(dataID, storageKey);\n\n if (linkedID == null) {\n if (linkedID === undefined) {\n this._handleMissing();\n\n return;\n }\n\n return;\n }\n\n var tree = this._mutator.getValue(linkedID, RelayStoreReactFlightUtils.REACT_FLIGHT_TREE_STORAGE_KEY);\n\n var reachableExecutableDefinitions = this._mutator.getValue(linkedID, RelayStoreReactFlightUtils.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);\n\n if (tree == null || !Array.isArray(reachableExecutableDefinitions)) {\n this._handleMissing();\n\n return;\n }\n\n var operationLoader = this._operationLoader;\n !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using ' + 'React Flight.') : invariant(false) : void 0; // In Flight, the variables that are in scope for reachable executable\n // definitions aren't the same as what's in scope for the outer query.\n\n var prevVariables = this._variables; // $FlowFixMe[incompatible-cast]\n\n var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(reachableExecutableDefinitions),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var definition = _step4.value;\n this._variables = definition.variables;\n var normalizationRootNode = operationLoader.get(definition.module);\n\n if (normalizationRootNode != null) {\n var operation = getOperation(normalizationRootNode);\n\n this._traverseSelections(operation.selections, ROOT_ID);\n } else {\n // If the fragment is not available, we assume that the data cannot have\n // been processed yet and must therefore be missing.\n this._handleMissing();\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n this._variables = prevVariables;\n };\n\n return DataChecker;\n}();\n\nmodule.exports = {\n check: check\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 * @format\n * @emails oncall+relay\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar RelayError = require('../util/RelayError');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar RelayObservable = require('../network/RelayObservable');\n\nvar RelayRecordSource = require('./RelayRecordSource');\n\nvar RelayResponseNormalizer = require('./RelayResponseNormalizer');\n\nvar generateID = require('../util/generateID');\n\nvar getOperation = require('../util/getOperation');\n\nvar invariant = require('invariant');\n\nvar stableCopy = require('../util/stableCopy');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar withDuration = require('../util/withDuration');\n\nvar _require = require('./ClientID'),\n generateClientID = _require.generateClientID,\n generateUniqueClientID = _require.generateUniqueClientID;\n\nvar _require2 = require('./RelayConcreteVariables'),\n getLocalVariables = _require2.getLocalVariables;\n\nvar _require3 = require('./RelayModernSelector'),\n createNormalizationSelector = _require3.createNormalizationSelector,\n createReaderSelector = _require3.createReaderSelector;\n\nvar _require4 = require('./RelayStoreUtils'),\n ROOT_TYPE = _require4.ROOT_TYPE,\n TYPENAME_KEY = _require4.TYPENAME_KEY,\n getStorageKey = _require4.getStorageKey;\n\nfunction execute(config) {\n return new Executor(config);\n}\n/**\n * Coordinates the execution of a query, handling network callbacks\n * including optimistic payloads, standard payloads, resolution of match\n * dependencies, etc.\n */\n\n\nvar Executor = /*#__PURE__*/function () {\n function Executor(_ref) {\n var _this = this;\n\n var actorIdentifier = _ref.actorIdentifier,\n getDataID = _ref.getDataID,\n getPublishQueue = _ref.getPublishQueue,\n getStore = _ref.getStore,\n isClientPayload = _ref.isClientPayload,\n operation = _ref.operation,\n operationExecutions = _ref.operationExecutions,\n operationLoader = _ref.operationLoader,\n operationTracker = _ref.operationTracker,\n optimisticConfig = _ref.optimisticConfig,\n _reactFlightPayloadDeserializer = _ref.reactFlightPayloadDeserializer,\n reactFlightServerErrorHandler = _ref.reactFlightServerErrorHandler,\n scheduler = _ref.scheduler,\n shouldProcessClientComponents = _ref.shouldProcessClientComponents,\n sink = _ref.sink,\n source = _ref.source,\n treatMissingFieldsAsNull = _ref.treatMissingFieldsAsNull,\n updater = _ref.updater,\n log = _ref.log;\n (0, _defineProperty2[\"default\"])(this, \"_deserializeReactFlightPayloadWithLogging\", function (tree) {\n var reactFlightPayloadDeserializer = _this._reactFlightPayloadDeserializer;\n !(typeof reactFlightPayloadDeserializer === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected reactFlightPayloadDeserializer to be available when calling _deserializeReactFlightPayloadWithLogging.') : invariant(false) : void 0;\n\n var _withDuration = withDuration(function () {\n return reactFlightPayloadDeserializer(tree);\n }),\n duration = _withDuration[0],\n result = _withDuration[1];\n\n _this._log({\n name: 'execute.flight.payload_deserialize',\n executeId: _this._executeId,\n operationName: _this._operation.request.node.params.name,\n duration: duration\n });\n\n return result;\n });\n this._actorIdentifier = actorIdentifier;\n this._getDataID = getDataID;\n this._treatMissingFieldsAsNull = treatMissingFieldsAsNull;\n this._incrementalPayloadsPending = false;\n this._incrementalResults = new Map();\n this._log = log;\n this._executeId = generateID();\n this._nextSubscriptionId = 0;\n this._operation = operation;\n this._operationExecutions = operationExecutions;\n this._operationLoader = operationLoader;\n this._operationTracker = operationTracker;\n this._operationUpdateEpochs = new Map();\n this._optimisticUpdates = null;\n this._pendingModulePayloadsCount = 0;\n this._getPublishQueue = getPublishQueue;\n this._scheduler = scheduler;\n this._sink = sink;\n this._source = new Map();\n this._state = 'started';\n this._getStore = getStore;\n this._subscriptions = new Map();\n this._updater = updater;\n this._isClientPayload = isClientPayload === true;\n this._reactFlightPayloadDeserializer = _reactFlightPayloadDeserializer;\n this._reactFlightServerErrorHandler = reactFlightServerErrorHandler;\n this._isSubscriptionOperation = this._operation.request.node.params.operationKind === 'subscription';\n this._shouldProcessClientComponents = shouldProcessClientComponents;\n this._retainDisposables = new Map();\n this._seenActors = new Set();\n this._completeFns = [];\n var id = this._nextSubscriptionId++;\n source.subscribe({\n complete: function complete() {\n return _this._complete(id);\n },\n error: function error(_error2) {\n return _this._error(_error2);\n },\n next: function next(response) {\n try {\n _this._next(id, response);\n } catch (error) {\n sink.error(error);\n }\n },\n start: function start(subscription) {\n var _this$_operation$requ;\n\n _this._start(id, subscription);\n\n _this._log({\n name: 'execute.start',\n executeId: _this._executeId,\n params: _this._operation.request.node.params,\n variables: _this._operation.request.variables,\n cacheConfig: (_this$_operation$requ = _this._operation.request.cacheConfig) !== null && _this$_operation$requ !== void 0 ? _this$_operation$requ : {}\n });\n }\n });\n\n if (optimisticConfig != null) {\n this._processOptimisticResponse(optimisticConfig.response != null ? {\n data: optimisticConfig.response\n } : null, optimisticConfig.updater, false);\n }\n } // Cancel any pending execution tasks and mark the executor as completed.\n\n\n var _proto = Executor.prototype;\n\n _proto.cancel = function cancel() {\n var _this2 = this;\n\n if (this._state === 'completed') {\n return;\n }\n\n this._state = 'completed';\n\n this._operationExecutions[\"delete\"](this._operation.request.identifier);\n\n if (this._subscriptions.size !== 0) {\n this._subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n\n this._subscriptions.clear();\n }\n\n var optimisticUpdates = this._optimisticUpdates;\n\n if (optimisticUpdates !== null) {\n this._optimisticUpdates = null;\n optimisticUpdates.forEach(function (update) {\n return _this2._getPublishQueueAndSaveActor().revertUpdate(update);\n }); // OK: run revert on cancel\n\n this._runPublishQueue();\n }\n\n this._incrementalResults.clear();\n\n if (this._asyncStoreUpdateDisposable != null) {\n this._asyncStoreUpdateDisposable.dispose();\n\n this._asyncStoreUpdateDisposable = null;\n }\n\n this._completeFns = [];\n\n this._completeOperationTracker();\n\n this._disposeRetainedData();\n };\n\n _proto._updateActiveState = function _updateActiveState() {\n var activeState;\n\n switch (this._state) {\n case 'started':\n {\n activeState = 'active';\n break;\n }\n\n case 'loading_incremental':\n {\n activeState = 'active';\n break;\n }\n\n case 'completed':\n {\n activeState = 'inactive';\n break;\n }\n\n case 'loading_final':\n {\n activeState = this._pendingModulePayloadsCount > 0 ? 'active' : 'inactive';\n break;\n }\n\n default:\n this._state;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: invalid executor state.') : invariant(false) : void 0;\n }\n\n this._operationExecutions.set(this._operation.request.identifier, activeState);\n };\n\n _proto._schedule = function _schedule(task) {\n var _this3 = this;\n\n var scheduler = this._scheduler;\n\n if (scheduler != null) {\n var _id2 = this._nextSubscriptionId++;\n\n RelayObservable.create(function (sink) {\n var cancellationToken = scheduler.schedule(function () {\n try {\n task();\n sink.complete();\n } catch (error) {\n sink.error(error);\n }\n });\n return function () {\n return scheduler.cancel(cancellationToken);\n };\n }).subscribe({\n complete: function complete() {\n return _this3._complete(_id2);\n },\n error: function error(_error3) {\n return _this3._error(_error3);\n },\n start: function start(subscription) {\n return _this3._start(_id2, subscription);\n }\n });\n } else {\n task();\n }\n };\n\n _proto._complete = function _complete(id) {\n this._subscriptions[\"delete\"](id);\n\n if (this._subscriptions.size === 0) {\n this.cancel();\n\n this._sink.complete();\n\n this._log({\n name: 'execute.complete',\n executeId: this._executeId\n });\n }\n };\n\n _proto._error = function _error(error) {\n this.cancel();\n\n this._sink.error(error);\n\n this._log({\n name: 'execute.error',\n executeId: this._executeId,\n error: error\n });\n };\n\n _proto._start = function _start(id, subscription) {\n this._subscriptions.set(id, subscription);\n\n this._updateActiveState();\n } // Handle a raw GraphQL response.\n ;\n\n _proto._next = function _next(_id, response) {\n var _this4 = this;\n\n this._schedule(function () {\n var _withDuration2 = withDuration(function () {\n _this4._handleNext(response);\n\n _this4._maybeCompleteSubscriptionOperationTracking();\n }),\n duration = _withDuration2[0];\n\n _this4._log({\n name: 'execute.next',\n executeId: _this4._executeId,\n response: response,\n duration: duration\n });\n });\n };\n\n _proto._handleErrorResponse = function _handleErrorResponse(responses) {\n var _this5 = this;\n\n var results = [];\n responses.forEach(function (response) {\n if (response.data === null && response.extensions != null && !response.hasOwnProperty('errors')) {\n // Skip extensions-only payloads\n return;\n } else if (response.data == null) {\n // Error if any other payload in the batch is missing data, regardless of whether\n // it had `errors` or not.\n var errors = response.hasOwnProperty('errors') && response.errors != null ? response.errors : null;\n var messages = errors ? errors.map(function (_ref2) {\n var message = _ref2.message;\n return message;\n }).join('\\n') : '(No errors)';\n var error = RelayError.create('RelayNetwork', 'No data returned for operation `' + _this5._operation.request.node.params.name + '`, got error(s):\\n' + messages + '\\n\\nSee the error `source` property for more information.');\n error.source = {\n errors: errors,\n operation: _this5._operation.request.node,\n variables: _this5._operation.request.variables\n }; // In V8, Error objects keep the closure scope chain alive until the\n // err.stack property is accessed.\n\n error.stack;\n throw error;\n } else {\n var responseWithData = response;\n results.push(responseWithData);\n }\n });\n return results;\n }\n /**\n * This method return boolean to indicate if the optimistic\n * response has been handled\n */\n ;\n\n _proto._handleOptimisticResponses = function _handleOptimisticResponses(responses) {\n var _response$extensions;\n\n if (responses.length > 1) {\n if (responses.some(function (responsePart) {\n var _responsePart$extensi;\n\n return ((_responsePart$extensi = responsePart.extensions) === null || _responsePart$extensi === void 0 ? void 0 : _responsePart$extensi.isOptimistic) === true;\n })) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Optimistic responses cannot be batched.') : invariant(false) : void 0;\n }\n\n return false;\n }\n\n var response = responses[0];\n var isOptimistic = ((_response$extensions = response.extensions) === null || _response$extensions === void 0 ? void 0 : _response$extensions.isOptimistic) === true;\n\n if (isOptimistic && this._state !== 'started') {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: optimistic payload received after server payload.') : invariant(false) : void 0;\n }\n\n if (isOptimistic) {\n this._processOptimisticResponse(response, null, this._treatMissingFieldsAsNull);\n\n this._sink.next(response);\n\n return true;\n }\n\n return false;\n };\n\n _proto._handleNext = function _handleNext(response) {\n if (this._state === 'completed') {\n return;\n }\n\n this._seenActors.clear();\n\n var responses = Array.isArray(response) ? response : [response];\n\n var responsesWithData = this._handleErrorResponse(responses);\n\n if (responsesWithData.length === 0) {\n // no results with data, nothing to process\n // this can occur with extensions-only payloads\n var isFinal = responses.some(function (x) {\n var _x$extensions;\n\n return ((_x$extensions = x.extensions) === null || _x$extensions === void 0 ? void 0 : _x$extensions.is_final) === true;\n });\n\n if (isFinal) {\n this._state = 'loading_final';\n\n this._updateActiveState();\n\n this._incrementalPayloadsPending = false;\n }\n\n this._sink.next(response);\n\n return;\n } // Next, handle optimistic responses\n\n\n var isOptimistic = this._handleOptimisticResponses(responsesWithData);\n\n if (isOptimistic) {\n return;\n }\n\n var _partitionGraphQLResp = partitionGraphQLResponses(responsesWithData),\n nonIncrementalResponses = _partitionGraphQLResp[0],\n incrementalResponses = _partitionGraphQLResp[1];\n\n var hasNonIncrementalResponses = nonIncrementalResponses.length > 0; // In theory this doesn't preserve the ordering of the batch.\n // The idea is that a batch is always:\n // * at most one non-incremental payload\n // * followed by zero or more incremental payloads\n // The non-incremental payload can appear if the server sends a batch\n // with the initial payload followed by some early-to-resolve incremental\n // payloads (although, can that even happen?)\n\n if (hasNonIncrementalResponses) {\n // For subscriptions, to avoid every new payload from overwriting existing\n // data from previous payloads, assign a unique rootID for every new\n // non-incremental payload.\n if (this._isSubscriptionOperation) {\n var nextID = generateUniqueClientID();\n this._operation = {\n request: this._operation.request,\n fragment: createReaderSelector(this._operation.fragment.node, nextID, this._operation.fragment.variables, this._operation.fragment.owner),\n root: createNormalizationSelector(this._operation.root.node, nextID, this._operation.root.variables)\n };\n }\n\n var payloadFollowups = this._processResponses(nonIncrementalResponses);\n\n this._processPayloadFollowups(payloadFollowups);\n }\n\n if (incrementalResponses.length > 0) {\n var _payloadFollowups = this._processIncrementalResponses(incrementalResponses);\n\n this._processPayloadFollowups(_payloadFollowups);\n }\n\n if (this._isSubscriptionOperation) {\n // We attach the id to allow the `requestSubscription` to read from the store using\n // the current id in its `onNext` callback\n if (responsesWithData[0].extensions == null) {\n // $FlowFixMe[cannot-write]\n responsesWithData[0].extensions = {\n __relay_subscription_root_id: this._operation.fragment.dataID\n };\n } else {\n responsesWithData[0].extensions.__relay_subscription_root_id = this._operation.fragment.dataID;\n }\n } // OK: run once after each new payload\n // If we have non-incremental responses, we passing `this._operation` to\n // the publish queue here, which will later be passed to the store (via\n // notify) to indicate that this operation caused the store to update\n\n\n var updatedOwners = this._runPublishQueue(hasNonIncrementalResponses ? this._operation : undefined);\n\n if (hasNonIncrementalResponses) {\n if (this._incrementalPayloadsPending) {\n this._retainData();\n }\n }\n\n this._updateOperationTracker(updatedOwners);\n\n this._sink.next(response);\n };\n\n _proto._processOptimisticResponse = function _processOptimisticResponse(response, updater, treatMissingFieldsAsNull) {\n var _this6 = this;\n\n !(this._optimisticUpdates === null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: environment.execute: only support one optimistic response per ' + 'execute.') : invariant(false) : void 0;\n\n if (response == null && updater == null) {\n return;\n }\n\n var optimisticUpdates = [];\n\n if (response) {\n var payload = normalizeResponse(response, this._operation.root, ROOT_TYPE, {\n actorIdentifier: this._actorIdentifier,\n getDataID: this._getDataID,\n path: [],\n reactFlightPayloadDeserializer: this._reactFlightPayloadDeserializer != null ? this._deserializeReactFlightPayloadWithLogging : null,\n reactFlightServerErrorHandler: this._reactFlightServerErrorHandler,\n shouldProcessClientComponents: this._shouldProcessClientComponents,\n treatMissingFieldsAsNull: treatMissingFieldsAsNull\n });\n validateOptimisticResponsePayload(payload);\n optimisticUpdates.push({\n operation: this._operation,\n payload: payload,\n updater: updater\n });\n\n this._processOptimisticFollowups(payload, optimisticUpdates);\n } else if (updater) {\n optimisticUpdates.push({\n operation: this._operation,\n payload: {\n errors: null,\n fieldPayloads: null,\n incrementalPlaceholders: null,\n followupPayloads: null,\n source: RelayRecordSource.create(),\n isFinal: false\n },\n updater: updater\n });\n }\n\n this._optimisticUpdates = optimisticUpdates;\n optimisticUpdates.forEach(function (update) {\n return _this6._getPublishQueueAndSaveActor().applyUpdate(update);\n }); // OK: only called on construction and when receiving an optimistic payload from network,\n // which doesn't fall-through to the regular next() handling\n\n this._runPublishQueue();\n };\n\n _proto._processOptimisticFollowups = function _processOptimisticFollowups(payload, optimisticUpdates) {\n if (payload.followupPayloads && payload.followupPayloads.length) {\n var followupPayloads = payload.followupPayloads;\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(followupPayloads),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var followupPayload = _step.value;\n\n switch (followupPayload.kind) {\n case 'ModuleImportPayload':\n var operationLoader = this._expectOperationLoader();\n\n var operation = operationLoader.get(followupPayload.operationReference);\n\n if (operation == null) {\n this._processAsyncOptimisticModuleImport(followupPayload);\n } else {\n var moduleImportOptimisticUpdates = this._processOptimisticModuleImport(operation, followupPayload);\n\n optimisticUpdates.push.apply(optimisticUpdates, (0, _toConsumableArray2[\"default\"])(moduleImportOptimisticUpdates));\n }\n\n break;\n\n case 'ActorPayload':\n process.env.NODE_ENV !== \"production\" ? warning(false, 'OperationExecutor: Unexpected optimistic ActorPayload. These updates are not supported.') : void 0;\n break;\n\n default:\n followupPayload;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unexpected followup kind `%s`. when processing optimistic updates.', followupPayload.kind) : invariant(false) : void 0;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n /**\n * Normalize Data for @module payload, and actor-specific payload\n */\n ;\n\n _proto._normalizeFollowupPayload = function _normalizeFollowupPayload(followupPayload, normalizationNode) {\n var variables;\n\n if (normalizationNode.kind === 'SplitOperation' && followupPayload.kind === 'ModuleImportPayload') {\n variables = getLocalVariables(followupPayload.variables, normalizationNode.argumentDefinitions, followupPayload.args);\n } else {\n variables = followupPayload.variables;\n }\n\n var selector = createNormalizationSelector(normalizationNode, followupPayload.dataID, variables);\n return normalizeResponse({\n data: followupPayload.data\n }, selector, followupPayload.typeName, {\n actorIdentifier: this._actorIdentifier,\n getDataID: this._getDataID,\n path: followupPayload.path,\n reactFlightPayloadDeserializer: this._reactFlightPayloadDeserializer != null ? this._deserializeReactFlightPayloadWithLogging : null,\n reactFlightServerErrorHandler: this._reactFlightServerErrorHandler,\n treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n shouldProcessClientComponents: this._shouldProcessClientComponents\n });\n };\n\n _proto._processOptimisticModuleImport = function _processOptimisticModuleImport(normalizationRootNode, moduleImportPayload) {\n var operation = getOperation(normalizationRootNode);\n var optimisticUpdates = [];\n\n var modulePayload = this._normalizeFollowupPayload(moduleImportPayload, operation);\n\n validateOptimisticResponsePayload(modulePayload);\n optimisticUpdates.push({\n operation: this._operation,\n payload: modulePayload,\n updater: null\n });\n\n this._processOptimisticFollowups(modulePayload, optimisticUpdates);\n\n return optimisticUpdates;\n };\n\n _proto._processAsyncOptimisticModuleImport = function _processAsyncOptimisticModuleImport(moduleImportPayload) {\n var _this7 = this;\n\n this._expectOperationLoader().load(moduleImportPayload.operationReference).then(function (operation) {\n if (operation == null || _this7._state !== 'started') {\n return;\n }\n\n var moduleImportOptimisticUpdates = _this7._processOptimisticModuleImport(operation, moduleImportPayload);\n\n moduleImportOptimisticUpdates.forEach(function (update) {\n return _this7._getPublishQueueAndSaveActor().applyUpdate(update);\n });\n\n if (_this7._optimisticUpdates == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'OperationExecutor: Unexpected ModuleImport optimistic ' + 'update in operation %s.' + _this7._operation.request.node.params.name) : void 0;\n } else {\n var _this$_optimisticUpda;\n\n (_this$_optimisticUpda = _this7._optimisticUpdates).push.apply(_this$_optimisticUpda, (0, _toConsumableArray2[\"default\"])(moduleImportOptimisticUpdates)); // OK: always have to run() after an module import resolves async\n\n\n _this7._runPublishQueue();\n }\n });\n };\n\n _proto._processResponses = function _processResponses(responses) {\n var _this8 = this;\n\n if (this._optimisticUpdates !== null) {\n this._optimisticUpdates.forEach(function (update) {\n _this8._getPublishQueueAndSaveActor().revertUpdate(update);\n });\n\n this._optimisticUpdates = null;\n }\n\n this._incrementalPayloadsPending = false;\n\n this._incrementalResults.clear();\n\n this._source.clear();\n\n return responses.map(function (payloadPart) {\n var relayPayload = normalizeResponse(payloadPart, _this8._operation.root, ROOT_TYPE, {\n actorIdentifier: _this8._actorIdentifier,\n getDataID: _this8._getDataID,\n path: [],\n reactFlightPayloadDeserializer: _this8._reactFlightPayloadDeserializer != null ? _this8._deserializeReactFlightPayloadWithLogging : null,\n reactFlightServerErrorHandler: _this8._reactFlightServerErrorHandler,\n treatMissingFieldsAsNull: _this8._treatMissingFieldsAsNull,\n shouldProcessClientComponents: _this8._shouldProcessClientComponents\n });\n\n _this8._getPublishQueueAndSaveActor().commitPayload(_this8._operation, relayPayload, _this8._updater);\n\n return relayPayload;\n });\n }\n /**\n * Handles any follow-up actions for a Relay payload for @match, @defer,\n * and @stream directives.\n */\n ;\n\n _proto._processPayloadFollowups = function _processPayloadFollowups(payloads) {\n var _this9 = this;\n\n if (this._state === 'completed') {\n return;\n }\n\n payloads.forEach(function (payload) {\n var incrementalPlaceholders = payload.incrementalPlaceholders,\n followupPayloads = payload.followupPayloads,\n isFinal = payload.isFinal;\n _this9._state = isFinal ? 'loading_final' : 'loading_incremental';\n\n _this9._updateActiveState();\n\n if (isFinal) {\n _this9._incrementalPayloadsPending = false;\n }\n\n if (followupPayloads && followupPayloads.length !== 0) {\n followupPayloads.forEach(function (followupPayload) {\n var _followupPayload$acto;\n\n var prevActorIdentifier = _this9._actorIdentifier;\n _this9._actorIdentifier = (_followupPayload$acto = followupPayload.actorIdentifier) !== null && _followupPayload$acto !== void 0 ? _followupPayload$acto : _this9._actorIdentifier;\n\n _this9._processFollowupPayload(followupPayload);\n\n _this9._actorIdentifier = prevActorIdentifier;\n });\n }\n\n if (incrementalPlaceholders && incrementalPlaceholders.length !== 0) {\n _this9._incrementalPayloadsPending = _this9._state !== 'loading_final';\n incrementalPlaceholders.forEach(function (incrementalPlaceholder) {\n var _incrementalPlacehold;\n\n var prevActorIdentifier = _this9._actorIdentifier;\n _this9._actorIdentifier = (_incrementalPlacehold = incrementalPlaceholder.actorIdentifier) !== null && _incrementalPlacehold !== void 0 ? _incrementalPlacehold : _this9._actorIdentifier;\n\n _this9._processIncrementalPlaceholder(payload, incrementalPlaceholder);\n\n _this9._actorIdentifier = prevActorIdentifier;\n });\n\n if (_this9._isClientPayload || _this9._state === 'loading_final') {\n // The query has defer/stream selections that are enabled, but either\n // the server indicated that this is a \"final\" payload: no incremental\n // payloads will be delivered, then warn that the query was (likely)\n // executed on the server in non-streaming mode, with incremental\n // delivery disabled; or this is a client payload, and there will be\n // no incremental payload.\n process.env.NODE_ENV !== \"production\" ? warning(_this9._isClientPayload, 'RelayModernEnvironment: Operation `%s` contains @defer/@stream ' + 'directives but was executed in non-streaming mode. See ' + 'https://fburl.com/relay-incremental-delivery-non-streaming-warning.', _this9._operation.request.node.params.name) : void 0; // But eagerly process any deferred payloads\n\n var relayPayloads = [];\n incrementalPlaceholders.forEach(function (placeholder) {\n if (placeholder.kind === 'defer') {\n relayPayloads.push(_this9._processDeferResponse(placeholder.label, placeholder.path, placeholder, {\n data: placeholder.data\n }));\n }\n });\n\n if (relayPayloads.length > 0) {\n _this9._processPayloadFollowups(relayPayloads);\n }\n }\n }\n });\n };\n\n _proto._maybeCompleteSubscriptionOperationTracking = function _maybeCompleteSubscriptionOperationTracking() {\n if (!this._isSubscriptionOperation) {\n return;\n }\n\n if (this._pendingModulePayloadsCount === 0 && this._incrementalPayloadsPending === false) {\n this._completeOperationTracker();\n }\n }\n /**\n * Processes a ModuleImportPayload, asynchronously resolving the normalization\n * AST and using it to normalize the field data into a RelayResponsePayload.\n * The resulting payload may contain other incremental payloads (match,\n * defer, stream, etc); these are handled by calling\n * `_processPayloadFollowups()`.\n */\n ;\n\n _proto._processFollowupPayload = function _processFollowupPayload(followupPayload) {\n var _this10 = this;\n\n switch (followupPayload.kind) {\n case 'ModuleImportPayload':\n var operationLoader = this._expectOperationLoader();\n\n var node = operationLoader.get(followupPayload.operationReference);\n\n if (node != null) {\n // If the operation module is available synchronously, normalize the\n // data synchronously.\n this._processFollowupPayloadWithNormalizationNode(followupPayload, getOperation(node));\n } else {\n // Otherwise load the operation module and schedule a task to normalize\n // the data when the module is available.\n var _id3 = this._nextSubscriptionId++;\n\n this._pendingModulePayloadsCount++;\n\n var decrementPendingCount = function decrementPendingCount() {\n _this10._pendingModulePayloadsCount--;\n\n _this10._maybeCompleteSubscriptionOperationTracking();\n }; // Observable.from(operationLoader.load()) wouldn't catch synchronous\n // errors thrown by the load function, which is user-defined. Guard\n // against that with Observable.from(new Promise()).\n\n\n var networkObservable = RelayObservable.from(new Promise(function (resolve, reject) {\n operationLoader.load(followupPayload.operationReference).then(resolve, reject);\n }));\n RelayObservable.create(function (sink) {\n var cancellationToken;\n var subscription = networkObservable.subscribe({\n next: function next(loadedNode) {\n if (loadedNode != null) {\n var publishModuleImportPayload = function publishModuleImportPayload() {\n try {\n var operation = getOperation(loadedNode);\n var batchAsyncModuleUpdatesFN = RelayFeatureFlags.BATCH_ASYNC_MODULE_UPDATES_FN;\n var shouldScheduleAsyncStoreUpdate = batchAsyncModuleUpdatesFN != null && _this10._pendingModulePayloadsCount > 1;\n\n var _withDuration3 = withDuration(function () {\n _this10._handleFollowupPayload(followupPayload, operation); // OK: always have to run after an async module import resolves\n\n\n // OK: always have to run after an async module import resolves\n if (shouldScheduleAsyncStoreUpdate) {\n _this10._scheduleAsyncStoreUpdate( // $FlowFixMe[incompatible-call] `shouldScheduleAsyncStoreUpdate` check should cover `null` case\n batchAsyncModuleUpdatesFN, sink.complete);\n } else {\n var updatedOwners = _this10._runPublishQueue();\n\n _this10._updateOperationTracker(updatedOwners);\n }\n }),\n duration = _withDuration3[0];\n\n _this10._log({\n name: 'execute.async.module',\n executeId: _this10._executeId,\n operationName: operation.name,\n duration: duration\n });\n\n if (!shouldScheduleAsyncStoreUpdate) {\n sink.complete();\n }\n } catch (error) {\n sink.error(error);\n }\n };\n\n var scheduler = _this10._scheduler;\n\n if (scheduler == null) {\n publishModuleImportPayload();\n } else {\n cancellationToken = scheduler.schedule(publishModuleImportPayload);\n }\n } else {\n sink.complete();\n }\n },\n error: sink.error\n });\n return function () {\n subscription.unsubscribe();\n\n if (_this10._scheduler != null && cancellationToken != null) {\n _this10._scheduler.cancel(cancellationToken);\n }\n };\n }).subscribe({\n complete: function complete() {\n _this10._complete(_id3);\n\n decrementPendingCount();\n },\n error: function error(_error4) {\n _this10._error(_error4);\n\n decrementPendingCount();\n },\n start: function start(subscription) {\n return _this10._start(_id3, subscription);\n }\n });\n }\n\n break;\n\n case 'ActorPayload':\n this._processFollowupPayloadWithNormalizationNode(followupPayload, followupPayload.node);\n\n break;\n\n default:\n followupPayload;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unexpected followup kind `%s`.', followupPayload.kind) : invariant(false) : void 0;\n }\n };\n\n _proto._processFollowupPayloadWithNormalizationNode = function _processFollowupPayloadWithNormalizationNode(followupPayload, normalizationNode) {\n this._handleFollowupPayload(followupPayload, normalizationNode);\n\n this._maybeCompleteSubscriptionOperationTracking();\n };\n\n _proto._handleFollowupPayload = function _handleFollowupPayload(followupPayload, normalizationNode) {\n var relayPayload = this._normalizeFollowupPayload(followupPayload, normalizationNode);\n\n this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload);\n\n this._processPayloadFollowups([relayPayload]);\n }\n /**\n * The executor now knows that GraphQL responses are expected for a given\n * label/path:\n * - Store the placeholder in order to process any future responses that may\n * arrive.\n * - Then process any responses that had already arrived.\n *\n * The placeholder contains the normalization selector, path (for nested\n * defer/stream), and other metadata used to normalize the incremental\n * response(s).\n */\n ;\n\n _proto._processIncrementalPlaceholder = function _processIncrementalPlaceholder(relayPayload, placeholder) {\n var _relayPayload$fieldPa;\n\n // Update the label => path => placeholder map\n var label = placeholder.label,\n path = placeholder.path;\n var pathKey = path.map(String).join('.');\n\n var resultForLabel = this._incrementalResults.get(label);\n\n if (resultForLabel == null) {\n resultForLabel = new Map();\n\n this._incrementalResults.set(label, resultForLabel);\n }\n\n var resultForPath = resultForLabel.get(pathKey);\n var pendingResponses = resultForPath != null && resultForPath.kind === 'response' ? resultForPath.responses : null;\n resultForLabel.set(pathKey, {\n kind: 'placeholder',\n placeholder: placeholder\n }); // Store references to the parent node to allow detecting concurrent\n // modifications to the parent before items arrive and to replay\n // handle field payloads to account for new information on source records.\n\n var parentID;\n\n if (placeholder.kind === 'stream') {\n parentID = placeholder.parentID;\n } else if (placeholder.kind === 'defer') {\n parentID = placeholder.selector.dataID;\n } else {\n placeholder;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Unsupported incremental placeholder kind `%s`.', placeholder.kind) : invariant(false) : void 0;\n }\n\n var parentRecord = relayPayload.source.get(parentID);\n var parentPayloads = ((_relayPayload$fieldPa = relayPayload.fieldPayloads) !== null && _relayPayload$fieldPa !== void 0 ? _relayPayload$fieldPa : []).filter(function (fieldPayload) {\n var fieldID = generateClientID(fieldPayload.dataID, fieldPayload.fieldKey);\n return (// handlers applied to the streamed field itself\n fieldPayload.dataID === parentID || // handlers applied to a field on an ancestor object, where\n // ancestor.field links to the parent record (example: connections)\n fieldID === parentID\n );\n }); // If an incremental payload exists for some id that record should also\n // exist.\n\n !(parentRecord != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected record `%s` to exist.', parentID) : invariant(false) : void 0;\n var nextParentRecord;\n var nextParentPayloads;\n\n var previousParentEntry = this._source.get(parentID);\n\n if (previousParentEntry != null) {\n // If a previous entry exists, merge the previous/next records and\n // payloads together.\n nextParentRecord = RelayModernRecord.update(previousParentEntry.record, parentRecord);\n var handlePayloads = new Map();\n\n var dedupePayload = function dedupePayload(payload) {\n var key = stableStringify(payload);\n handlePayloads.set(key, payload);\n };\n\n previousParentEntry.fieldPayloads.forEach(dedupePayload);\n parentPayloads.forEach(dedupePayload);\n nextParentPayloads = Array.from(handlePayloads.values());\n } else {\n nextParentRecord = parentRecord;\n nextParentPayloads = parentPayloads;\n }\n\n this._source.set(parentID, {\n record: nextParentRecord,\n fieldPayloads: nextParentPayloads\n }); // If there were any queued responses, process them now that placeholders\n // are in place\n\n\n if (pendingResponses != null) {\n var payloadFollowups = this._processIncrementalResponses(pendingResponses);\n\n this._processPayloadFollowups(payloadFollowups);\n }\n }\n /**\n * Lookup the placeholder the describes how to process an incremental\n * response, normalize/publish it, and process any nested defer/match/stream\n * metadata.\n */\n ;\n\n _proto._processIncrementalResponses = function _processIncrementalResponses(incrementalResponses) {\n var _this11 = this;\n\n var relayPayloads = [];\n incrementalResponses.forEach(function (incrementalResponse) {\n var label = incrementalResponse.label,\n path = incrementalResponse.path,\n response = incrementalResponse.response;\n\n var resultForLabel = _this11._incrementalResults.get(label);\n\n if (resultForLabel == null) {\n resultForLabel = new Map();\n\n _this11._incrementalResults.set(label, resultForLabel);\n }\n\n if (label.indexOf('$defer$') !== -1) {\n var pathKey = path.map(String).join('.');\n var resultForPath = resultForLabel.get(pathKey);\n\n if (resultForPath == null) {\n resultForPath = {\n kind: 'response',\n responses: [incrementalResponse]\n };\n resultForLabel.set(pathKey, resultForPath);\n return;\n } else if (resultForPath.kind === 'response') {\n resultForPath.responses.push(incrementalResponse);\n return;\n }\n\n var placeholder = resultForPath.placeholder;\n !(placeholder.kind === 'defer') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected data for path `%s` for label `%s` ' + 'to be data for @defer, was `@%s`.', pathKey, label, placeholder.kind) : invariant(false) : void 0;\n relayPayloads.push(_this11._processDeferResponse(label, path, placeholder, response));\n } else {\n // @stream payload path values end in the field name and item index,\n // but Relay records paths relative to the parent of the stream node:\n // therefore we strip the last two elements just to lookup the path\n // (the item index is used later to insert the element in the list)\n var _pathKey = path.slice(0, -2).map(String).join('.');\n\n var _resultForPath = resultForLabel.get(_pathKey);\n\n if (_resultForPath == null) {\n _resultForPath = {\n kind: 'response',\n responses: [incrementalResponse]\n };\n resultForLabel.set(_pathKey, _resultForPath);\n return;\n } else if (_resultForPath.kind === 'response') {\n _resultForPath.responses.push(incrementalResponse);\n\n return;\n }\n\n var _placeholder = _resultForPath.placeholder;\n !(_placeholder.kind === 'stream') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected data for path `%s` for label `%s` ' + 'to be data for @stream, was `@%s`.', _pathKey, label, _placeholder.kind) : invariant(false) : void 0;\n relayPayloads.push(_this11._processStreamResponse(label, path, _placeholder, response));\n }\n });\n return relayPayloads;\n };\n\n _proto._processDeferResponse = function _processDeferResponse(label, path, placeholder, response) {\n var _placeholder$actorIde;\n\n var parentID = placeholder.selector.dataID;\n var prevActorIdentifier = this._actorIdentifier;\n this._actorIdentifier = (_placeholder$actorIde = placeholder.actorIdentifier) !== null && _placeholder$actorIde !== void 0 ? _placeholder$actorIde : this._actorIdentifier;\n var relayPayload = normalizeResponse(response, placeholder.selector, placeholder.typeName, {\n actorIdentifier: this._actorIdentifier,\n getDataID: this._getDataID,\n path: placeholder.path,\n reactFlightPayloadDeserializer: this._reactFlightPayloadDeserializer != null ? this._deserializeReactFlightPayloadWithLogging : null,\n reactFlightServerErrorHandler: this._reactFlightServerErrorHandler,\n treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n shouldProcessClientComponents: this._shouldProcessClientComponents\n });\n\n this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload); // Load the version of the parent record from which this incremental data\n // was derived\n\n\n var parentEntry = this._source.get(parentID);\n\n !(parentEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the parent record `%s` for @defer ' + 'data to exist.', parentID) : invariant(false) : void 0;\n var fieldPayloads = parentEntry.fieldPayloads;\n\n if (fieldPayloads.length !== 0) {\n var _response$extensions2;\n\n var handleFieldsRelayPayload = {\n errors: null,\n fieldPayloads: fieldPayloads,\n incrementalPlaceholders: null,\n followupPayloads: null,\n source: RelayRecordSource.create(),\n isFinal: ((_response$extensions2 = response.extensions) === null || _response$extensions2 === void 0 ? void 0 : _response$extensions2.is_final) === true\n };\n\n this._getPublishQueueAndSaveActor().commitPayload(this._operation, handleFieldsRelayPayload);\n }\n\n this._actorIdentifier = prevActorIdentifier;\n return relayPayload;\n }\n /**\n * Process the data for one item in a @stream field.\n */\n ;\n\n _proto._processStreamResponse = function _processStreamResponse(label, path, placeholder, response) {\n var parentID = placeholder.parentID,\n node = placeholder.node,\n variables = placeholder.variables,\n actorIdentifier = placeholder.actorIdentifier;\n var prevActorIdentifier = this._actorIdentifier;\n this._actorIdentifier = actorIdentifier !== null && actorIdentifier !== void 0 ? actorIdentifier : this._actorIdentifier; // Find the LinkedField where @stream was applied\n\n var field = node.selections[0];\n !(field != null && field.kind === 'LinkedField' && field.plural === true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected @stream to be used on a plural field.') : invariant(false) : void 0;\n\n var _this$_normalizeStrea = this._normalizeStreamItem(response, parentID, field, variables, path, placeholder.path),\n fieldPayloads = _this$_normalizeStrea.fieldPayloads,\n itemID = _this$_normalizeStrea.itemID,\n itemIndex = _this$_normalizeStrea.itemIndex,\n prevIDs = _this$_normalizeStrea.prevIDs,\n relayPayload = _this$_normalizeStrea.relayPayload,\n storageKey = _this$_normalizeStrea.storageKey; // Publish the new item and update the parent record to set\n // field[index] = item *if* the parent record hasn't been concurrently\n // modified.\n\n\n this._getPublishQueueAndSaveActor().commitPayload(this._operation, relayPayload, function (store) {\n var currentParentRecord = store.get(parentID);\n\n if (currentParentRecord == null) {\n // parent has since been deleted, stream data is stale\n return;\n }\n\n var currentItems = currentParentRecord.getLinkedRecords(storageKey);\n\n if (currentItems == null) {\n // field has since been deleted, stream data is stale\n return;\n }\n\n if (currentItems.length !== prevIDs.length || currentItems.some(function (currentItem, index) {\n return prevIDs[index] !== (currentItem && currentItem.getDataID());\n })) {\n // field has been modified by something other than this query,\n // stream data is stale\n return;\n } // parent.field has not been concurrently modified:\n // update `parent.field[index] = item`\n\n\n var nextItems = (0, _toConsumableArray2[\"default\"])(currentItems);\n nextItems[itemIndex] = store.get(itemID);\n currentParentRecord.setLinkedRecords(nextItems, storageKey);\n }); // Now that the parent record has been updated to include the new item,\n // also update any handle fields that are derived from the parent record.\n\n\n if (fieldPayloads.length !== 0) {\n var handleFieldsRelayPayload = {\n errors: null,\n fieldPayloads: fieldPayloads,\n incrementalPlaceholders: null,\n followupPayloads: null,\n source: RelayRecordSource.create(),\n isFinal: false\n };\n\n this._getPublishQueueAndSaveActor().commitPayload(this._operation, handleFieldsRelayPayload);\n }\n\n this._actorIdentifier = prevActorIdentifier;\n return relayPayload;\n };\n\n _proto._normalizeStreamItem = function _normalizeStreamItem(response, parentID, field, variables, path, normalizationPath) {\n var _field$alias, _field$concreteType, _this$_getDataID;\n\n var data = response.data;\n !(typeof data === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the GraphQL @stream payload `data` ' + 'value to be an object.') : invariant(false) : void 0;\n var responseKey = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n var storageKey = getStorageKey(field, variables); // Load the version of the parent record from which this incremental data\n // was derived\n\n var parentEntry = this._source.get(parentID);\n\n !(parentEntry != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected the parent record `%s` for @stream ' + 'data to exist.', parentID) : invariant(false) : void 0;\n var parentRecord = parentEntry.record,\n fieldPayloads = parentEntry.fieldPayloads; // Load the field value (items) that were created by *this* query executor\n // in order to check if there has been any concurrent modifications by some\n // other operation.\n\n var prevIDs = RelayModernRecord.getLinkedRecordIDs(parentRecord, storageKey);\n !(prevIDs != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected record `%s` to have fetched field ' + '`%s` with @stream.', parentID, field.name) : invariant(false) : void 0; // Determine the index in the field of the new item\n\n var finalPathEntry = path[path.length - 1];\n var itemIndex = parseInt(finalPathEntry, 10);\n !(itemIndex === finalPathEntry && itemIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected path for @stream to end in a ' + 'positive integer index, got `%s`', finalPathEntry) : invariant(false) : void 0;\n var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : data[TYPENAME_KEY];\n !(typeof typeName === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected @stream field `%s` to have a ' + '__typename.', field.name) : invariant(false) : void 0; // Determine the __id of the new item: this must equal the value that would\n // be assigned had the item not been streamed\n\n var itemID = // https://github.com/prettier/prettier/issues/6403\n // prettier-ignore\n ((_this$_getDataID = this._getDataID(data, typeName)) !== null && _this$_getDataID !== void 0 ? _this$_getDataID : prevIDs && prevIDs[itemIndex]) || // Reuse previously generated client IDs\n generateClientID(parentID, storageKey, itemIndex);\n !(typeof itemID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0; // Build a selector to normalize the item data with\n\n var selector = createNormalizationSelector(field, itemID, variables); // Update the cached version of the parent record to reflect the new item:\n // this is used when subsequent stream payloads arrive to see if there\n // have been concurrent modifications to the list\n\n var nextParentRecord = RelayModernRecord.clone(parentRecord);\n var nextIDs = (0, _toConsumableArray2[\"default\"])(prevIDs);\n nextIDs[itemIndex] = itemID;\n RelayModernRecord.setLinkedRecordIDs(nextParentRecord, storageKey, nextIDs);\n\n this._source.set(parentID, {\n record: nextParentRecord,\n fieldPayloads: fieldPayloads\n });\n\n var relayPayload = normalizeResponse(response, selector, typeName, {\n actorIdentifier: this._actorIdentifier,\n getDataID: this._getDataID,\n path: [].concat((0, _toConsumableArray2[\"default\"])(normalizationPath), [responseKey, String(itemIndex)]),\n reactFlightPayloadDeserializer: this._reactFlightPayloadDeserializer != null ? this._deserializeReactFlightPayloadWithLogging : null,\n reactFlightServerErrorHandler: this._reactFlightServerErrorHandler,\n treatMissingFieldsAsNull: this._treatMissingFieldsAsNull,\n shouldProcessClientComponents: this._shouldProcessClientComponents\n });\n return {\n fieldPayloads: fieldPayloads,\n itemID: itemID,\n itemIndex: itemIndex,\n prevIDs: prevIDs,\n relayPayload: relayPayload,\n storageKey: storageKey\n };\n };\n\n _proto._scheduleAsyncStoreUpdate = function _scheduleAsyncStoreUpdate(scheduleFn, completeFn) {\n var _this12 = this;\n\n this._completeFns.push(completeFn);\n\n if (this._asyncStoreUpdateDisposable != null) {\n return;\n }\n\n this._asyncStoreUpdateDisposable = scheduleFn(function () {\n _this12._asyncStoreUpdateDisposable = null;\n\n var updatedOwners = _this12._runPublishQueue();\n\n _this12._updateOperationTracker(updatedOwners);\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(_this12._completeFns),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var complete = _step2.value;\n complete();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n _this12._completeFns = [];\n });\n };\n\n _proto._updateOperationTracker = function _updateOperationTracker(updatedOwners) {\n if (updatedOwners != null && updatedOwners.length > 0) {\n this._operationTracker.update(this._operation.request, new Set(updatedOwners));\n }\n };\n\n _proto._completeOperationTracker = function _completeOperationTracker() {\n this._operationTracker.complete(this._operation.request);\n };\n\n _proto._getPublishQueueAndSaveActor = function _getPublishQueueAndSaveActor() {\n this._seenActors.add(this._actorIdentifier);\n\n return this._getPublishQueue(this._actorIdentifier);\n };\n\n _proto._getActorsToVisit = function _getActorsToVisit() {\n if (this._seenActors.size === 0) {\n return new Set([this._actorIdentifier]);\n } else {\n return this._seenActors;\n }\n };\n\n _proto._runPublishQueue = function _runPublishQueue(operation) {\n var updatedOwners = new Set();\n\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(this._getActorsToVisit()),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _actorIdentifier = _step3.value;\n\n var owners = this._getPublishQueue(_actorIdentifier).run(operation);\n\n owners.forEach(function (owner) {\n return updatedOwners.add(owner);\n });\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return Array.from(updatedOwners);\n };\n\n _proto._retainData = function _retainData() {\n var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(this._getActorsToVisit()),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _actorIdentifier2 = _step4.value;\n\n if (!this._retainDisposables.has(_actorIdentifier2)) {\n this._retainDisposables.set(_actorIdentifier2, this._getStore(_actorIdentifier2).retain(this._operation));\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n };\n\n _proto._disposeRetainedData = function _disposeRetainedData() {\n var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(this._retainDisposables.values()),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var disposable = _step5.value;\n disposable.dispose();\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this._retainDisposables.clear();\n };\n\n _proto._expectOperationLoader = function _expectOperationLoader() {\n var operationLoader = this._operationLoader;\n !operationLoader ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: Expected an operationLoader to be ' + 'configured when using `@match`.') : invariant(false) : void 0;\n return operationLoader;\n };\n\n return Executor;\n}();\n\nfunction partitionGraphQLResponses(responses) {\n var nonIncrementalResponses = [];\n var incrementalResponses = [];\n responses.forEach(function (response) {\n if (response.path != null || response.label != null) {\n var label = response.label,\n path = response.path;\n\n if (label == null || path == null) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: invalid incremental payload, expected ' + '`path` and `label` to either both be null/undefined, or ' + '`path` to be an `Array` and `label` to be a ' + '`string`.') : invariant(false) : void 0;\n }\n\n incrementalResponses.push({\n label: label,\n path: path,\n response: response\n });\n } else {\n nonIncrementalResponses.push(response);\n }\n });\n return [nonIncrementalResponses, incrementalResponses];\n}\n\nfunction normalizeResponse(response, selector, typeName, options) {\n var _response$extensions3;\n\n var data = response.data,\n errors = response.errors;\n var source = RelayRecordSource.create();\n var record = RelayModernRecord.create(selector.dataID, typeName);\n source.set(selector.dataID, record);\n var relayPayload = RelayResponseNormalizer.normalize(source, selector, data, options);\n return (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, relayPayload), {}, {\n errors: errors,\n isFinal: ((_response$extensions3 = response.extensions) === null || _response$extensions3 === void 0 ? void 0 : _response$extensions3.is_final) === true\n });\n}\n\nfunction stableStringify(value) {\n var _JSON$stringify;\n\n return (_JSON$stringify = JSON.stringify(stableCopy(value))) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : ''; // null-check for flow\n}\n\nfunction validateOptimisticResponsePayload(payload) {\n var incrementalPlaceholders = payload.incrementalPlaceholders;\n\n if (incrementalPlaceholders != null && incrementalPlaceholders.length !== 0) {\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'OperationExecutor: optimistic responses cannot be returned ' + 'for operations that use incremental data delivery (@defer, ' + '@stream, and @stream_connection).') : invariant(false) : void 0;\n }\n}\n\nmodule.exports = {\n execute: execute\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar invariant = require('invariant');\n\nvar _require = require('./RelayStoreUtils'),\n getArgumentValues = _require.getArgumentValues;\n\n/**\n * Determines the variables that are in scope for a fragment given the variables\n * in scope at the root query as well as any arguments applied at the fragment\n * spread via `@arguments`.\n *\n * Note that this is analagous to determining function arguments given a function call.\n */\nfunction getFragmentVariables(fragment, rootVariables, argumentVariables) {\n var variables;\n fragment.argumentDefinitions.forEach(function (definition) {\n if (argumentVariables.hasOwnProperty(definition.name)) {\n return;\n } // $FlowFixMe[cannot-spread-interface]\n\n\n variables = variables || (0, _objectSpread2[\"default\"])({}, argumentVariables);\n\n switch (definition.kind) {\n case 'LocalArgument':\n variables[definition.name] = definition.defaultValue;\n break;\n\n case 'RootArgument':\n if (!rootVariables.hasOwnProperty(definition.name)) {\n /*\n * Global variables passed as values of @arguments are not required to\n * be declared unless they are used by the callee fragment or a\n * descendant. In this case, the root variable may not be defined when\n * resolving the callee's variables. The value is explicitly set to\n * undefined to conform to the check in\n * RelayStoreUtils.getStableVariableValue() that variable keys are all\n * present.\n */\n // $FlowFixMe[incompatible-use]\n variables[definition.name] = undefined;\n break;\n } // $FlowFixMe[incompatible-use]\n // $FlowFixMe[cannot-write]\n\n\n variables[definition.name] = rootVariables[definition.name];\n break;\n\n default:\n definition;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayConcreteVariables: Unexpected node kind `%s` in fragment `%s`.', definition.kind, fragment.name) : invariant(false) : void 0;\n }\n });\n return variables || argumentVariables;\n}\n/**\n * Determines the variables that are in scope for a given operation given values\n * for some/all of its arguments. Extraneous input variables are filtered from\n * the output, and missing variables are set to default values (if given in the\n * operation's definition).\n */\n\n\nfunction getOperationVariables(operation, variables) {\n var operationVariables = {};\n operation.argumentDefinitions.forEach(function (def) {\n var value = def.defaultValue; // $FlowFixMe[cannot-write]\n\n if (variables[def.name] != null) {\n value = variables[def.name];\n }\n\n operationVariables[def.name] = value;\n });\n return operationVariables;\n}\n\nfunction getLocalVariables(currentVariables, argumentDefinitions, args) {\n if (argumentDefinitions == null) {\n return currentVariables;\n }\n\n var nextVariables = (0, _objectSpread2[\"default\"])({}, currentVariables);\n var nextArgs = args ? getArgumentValues(args, currentVariables) : {};\n argumentDefinitions.forEach(function (def) {\n var _nextArgs$def$name;\n\n // $FlowFixMe[cannot-write]\n var value = (_nextArgs$def$name = nextArgs[def.name]) !== null && _nextArgs$def$name !== void 0 ? _nextArgs$def$name : def.defaultValue;\n nextVariables[def.name] = value;\n });\n return nextVariables;\n}\n\nmodule.exports = {\n getLocalVariables: getLocalVariables,\n getFragmentVariables: getFragmentVariables,\n getOperationVariables: getOperationVariables\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 * @emails oncall+relay\n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar OperationExecutor = require('./OperationExecutor');\n\nvar RelayDefaultHandlerProvider = require('../handlers/RelayDefaultHandlerProvider');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayObservable = require('../network/RelayObservable');\n\nvar RelayOperationTracker = require('../store/RelayOperationTracker');\n\nvar RelayPublishQueue = require('./RelayPublishQueue');\n\nvar RelayRecordSource = require('./RelayRecordSource');\n\nvar defaultGetDataID = require('./defaultGetDataID');\n\nvar defaultRequiredFieldLogger = require('./defaultRequiredFieldLogger');\n\nvar invariant = require('invariant');\n\nvar registerEnvironmentWithDevTools = require('../util/registerEnvironmentWithDevTools');\n\nvar wrapNetworkWithLogObserver = require('../network/wrapNetworkWithLogObserver');\n\nvar _require = require('../multi-actor-environment/ActorIdentifier'),\n INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n assertInternalActorIndentifier = _require.assertInternalActorIndentifier;\n\nvar RelayModernEnvironment = /*#__PURE__*/function () {\n function RelayModernEnvironment(config) {\n var _this = this;\n\n var _config$log, _config$requiredField, _config$UNSTABLE_defa, _config$getDataID, _config$handlerProvid, _config$scheduler, _config$isServer, _config$operationTrac;\n\n this.configName = config.configName;\n this._treatMissingFieldsAsNull = config.treatMissingFieldsAsNull === true;\n var operationLoader = config.operationLoader;\n var reactFlightPayloadDeserializer = config.reactFlightPayloadDeserializer;\n var reactFlightServerErrorHandler = config.reactFlightServerErrorHandler;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (operationLoader != null) {\n !(typeof operationLoader === 'object' && typeof operationLoader.get === 'function' && typeof operationLoader.load === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected `operationLoader` to be an object ' + 'with get() and load() functions, got `%s`.', operationLoader) : invariant(false) : void 0;\n }\n\n if (reactFlightPayloadDeserializer != null) {\n !(typeof reactFlightPayloadDeserializer === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected `reactFlightPayloadDeserializer` ' + ' to be a function, got `%s`.', reactFlightPayloadDeserializer) : invariant(false) : void 0;\n }\n }\n\n this.__log = (_config$log = config.log) !== null && _config$log !== void 0 ? _config$log : emptyFunction;\n this.requiredFieldLogger = (_config$requiredField = config.requiredFieldLogger) !== null && _config$requiredField !== void 0 ? _config$requiredField : defaultRequiredFieldLogger;\n this._defaultRenderPolicy = ((_config$UNSTABLE_defa = config.UNSTABLE_defaultRenderPolicy) !== null && _config$UNSTABLE_defa !== void 0 ? _config$UNSTABLE_defa : RelayFeatureFlags.ENABLE_PARTIAL_RENDERING_DEFAULT === true) ? 'partial' : 'full';\n this._operationLoader = operationLoader;\n this._operationExecutions = new Map();\n this._network = wrapNetworkWithLogObserver(this, config.network);\n this._getDataID = (_config$getDataID = config.getDataID) !== null && _config$getDataID !== void 0 ? _config$getDataID : defaultGetDataID;\n this._publishQueue = new RelayPublishQueue(config.store, (_config$handlerProvid = config.handlerProvider) !== null && _config$handlerProvid !== void 0 ? _config$handlerProvid : RelayDefaultHandlerProvider, this._getDataID);\n this._scheduler = (_config$scheduler = config.scheduler) !== null && _config$scheduler !== void 0 ? _config$scheduler : null;\n this._store = config.store;\n this.options = config.options;\n this._isServer = (_config$isServer = config.isServer) !== null && _config$isServer !== void 0 ? _config$isServer : false;\n\n this.__setNet = function (newNet) {\n return _this._network = wrapNetworkWithLogObserver(_this, newNet);\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n var _require2 = require('./StoreInspector'),\n inspect = _require2.inspect;\n\n this.DEBUG_inspect = function (dataID) {\n return inspect(_this, dataID);\n };\n }\n\n this._missingFieldHandlers = config.missingFieldHandlers;\n this._operationTracker = (_config$operationTrac = config.operationTracker) !== null && _config$operationTrac !== void 0 ? _config$operationTrac : new RelayOperationTracker();\n this._reactFlightPayloadDeserializer = reactFlightPayloadDeserializer;\n this._reactFlightServerErrorHandler = reactFlightServerErrorHandler;\n this._shouldProcessClientComponents = config.shouldProcessClientComponents; // Register this Relay Environment with Relay DevTools if it exists.\n // Note: this must always be the last step in the constructor.\n\n registerEnvironmentWithDevTools(this);\n }\n\n var _proto = RelayModernEnvironment.prototype;\n\n _proto.getStore = function getStore() {\n return this._store;\n };\n\n _proto.getNetwork = function getNetwork() {\n return this._network;\n };\n\n _proto.getOperationTracker = function getOperationTracker() {\n return this._operationTracker;\n };\n\n _proto.isRequestActive = function isRequestActive(requestIdentifier) {\n var activeState = this._operationExecutions.get(requestIdentifier);\n\n return activeState === 'active';\n };\n\n _proto.UNSTABLE_getDefaultRenderPolicy = function UNSTABLE_getDefaultRenderPolicy() {\n return this._defaultRenderPolicy;\n };\n\n _proto.applyUpdate = function applyUpdate(optimisticUpdate) {\n var _this2 = this;\n\n var dispose = function dispose() {\n _this2._scheduleUpdates(function () {\n _this2._publishQueue.revertUpdate(optimisticUpdate);\n\n _this2._publishQueue.run();\n });\n };\n\n this._scheduleUpdates(function () {\n _this2._publishQueue.applyUpdate(optimisticUpdate);\n\n _this2._publishQueue.run();\n });\n\n return {\n dispose: dispose\n };\n };\n\n _proto.revertUpdate = function revertUpdate(update) {\n var _this3 = this;\n\n this._scheduleUpdates(function () {\n _this3._publishQueue.revertUpdate(update);\n\n _this3._publishQueue.run();\n });\n };\n\n _proto.replaceUpdate = function replaceUpdate(update, newUpdate) {\n var _this4 = this;\n\n this._scheduleUpdates(function () {\n _this4._publishQueue.revertUpdate(update);\n\n _this4._publishQueue.applyUpdate(newUpdate);\n\n _this4._publishQueue.run();\n });\n };\n\n _proto.applyMutation = function applyMutation(optimisticConfig) {\n var subscription = this._execute({\n createSource: function createSource() {\n return RelayObservable.create(function (_sink) {});\n },\n isClientPayload: false,\n operation: optimisticConfig.operation,\n optimisticConfig: optimisticConfig,\n updater: null\n }).subscribe({});\n\n return {\n dispose: function dispose() {\n return subscription.unsubscribe();\n }\n };\n };\n\n _proto.check = function check(operation) {\n if (this._missingFieldHandlers == null || this._missingFieldHandlers.length === 0) {\n return this._store.check(operation);\n }\n\n return this._checkSelectorAndHandleMissingFields(operation, this._missingFieldHandlers);\n };\n\n _proto.commitPayload = function commitPayload(operation, payload) {\n this._execute({\n createSource: function createSource() {\n return RelayObservable.from({\n data: payload\n });\n },\n isClientPayload: true,\n operation: operation,\n optimisticConfig: null,\n updater: null\n }).subscribe({});\n };\n\n _proto.commitUpdate = function commitUpdate(updater) {\n var _this5 = this;\n\n this._scheduleUpdates(function () {\n _this5._publishQueue.commitUpdate(updater);\n\n _this5._publishQueue.run();\n });\n };\n\n _proto.lookup = function lookup(readSelector) {\n return this._store.lookup(readSelector);\n };\n\n _proto.subscribe = function subscribe(snapshot, callback) {\n return this._store.subscribe(snapshot, callback);\n };\n\n _proto.retain = function retain(operation) {\n return this._store.retain(operation);\n };\n\n _proto.isServer = function isServer() {\n return this._isServer;\n };\n\n _proto._checkSelectorAndHandleMissingFields = function _checkSelectorAndHandleMissingFields(operation, handlers) {\n var _this6 = this;\n\n var target = RelayRecordSource.create();\n\n var source = this._store.getSource();\n\n var result = this._store.check(operation, {\n handlers: handlers,\n defaultActorIdentifier: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n getSourceForActor: function getSourceForActor(actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return source;\n },\n getTargetForActor: function getTargetForActor(actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return target;\n }\n });\n\n if (target.size() > 0) {\n this._scheduleUpdates(function () {\n _this6._publishQueue.commitSource(target);\n\n _this6._publishQueue.run();\n });\n }\n\n return result;\n };\n\n _proto._scheduleUpdates = function _scheduleUpdates(task) {\n var scheduler = this._scheduler;\n\n if (scheduler != null) {\n scheduler.schedule(task);\n } else {\n task();\n }\n }\n /**\n * Returns an Observable of GraphQLResponse resulting from executing the\n * provided Query or Subscription operation, each result of which is then\n * normalized and committed to the publish queue.\n *\n * Note: Observables are lazy, so calling this method will do nothing until\n * the result is subscribed to: environment.execute({...}).subscribe({...}).\n */\n ;\n\n _proto.execute = function execute(_ref) {\n var _this7 = this;\n\n var operation = _ref.operation,\n updater = _ref.updater;\n return this._execute({\n createSource: function createSource() {\n return _this7._network.execute(operation.request.node.params, operation.request.variables, operation.request.cacheConfig || {}, null);\n },\n isClientPayload: false,\n operation: operation,\n optimisticConfig: null,\n updater: updater\n });\n }\n /**\n * Returns an Observable of GraphQLResponse resulting from executing the\n * provided Mutation operation, the result of which is then normalized and\n * committed to the publish queue along with an optional optimistic response\n * or updater.\n *\n * Note: Observables are lazy, so calling this method will do nothing until\n * the result is subscribed to:\n * environment.executeMutation({...}).subscribe({...}).\n */\n ;\n\n _proto.executeMutation = function executeMutation(_ref2) {\n var _this8 = this;\n\n var operation = _ref2.operation,\n optimisticResponse = _ref2.optimisticResponse,\n optimisticUpdater = _ref2.optimisticUpdater,\n updater = _ref2.updater,\n uploadables = _ref2.uploadables;\n var optimisticConfig;\n\n if (optimisticResponse || optimisticUpdater) {\n optimisticConfig = {\n operation: operation,\n response: optimisticResponse,\n updater: optimisticUpdater\n };\n }\n\n return this._execute({\n createSource: function createSource() {\n return _this8._network.execute(operation.request.node.params, operation.request.variables, (0, _objectSpread2[\"default\"])((0, _objectSpread2[\"default\"])({}, operation.request.cacheConfig), {}, {\n force: true\n }), uploadables);\n },\n isClientPayload: false,\n operation: operation,\n optimisticConfig: optimisticConfig,\n updater: updater\n });\n }\n /**\n * Returns an Observable of GraphQLResponse resulting from executing the\n * provided Query or Subscription operation responses, the result of which is\n * then normalized and committed to the publish queue.\n *\n * Note: Observables are lazy, so calling this method will do nothing until\n * the result is subscribed to:\n * environment.executeWithSource({...}).subscribe({...}).\n */\n ;\n\n _proto.executeWithSource = function executeWithSource(_ref3) {\n var operation = _ref3.operation,\n source = _ref3.source;\n return this._execute({\n createSource: function createSource() {\n return source;\n },\n isClientPayload: false,\n operation: operation,\n optimisticConfig: null,\n updater: null\n });\n };\n\n _proto.toJSON = function toJSON() {\n var _this$configName;\n\n return \"RelayModernEnvironment(\".concat((_this$configName = this.configName) !== null && _this$configName !== void 0 ? _this$configName : '', \")\");\n };\n\n _proto._execute = function _execute(_ref4) {\n var _this9 = this;\n\n var createSource = _ref4.createSource,\n isClientPayload = _ref4.isClientPayload,\n operation = _ref4.operation,\n optimisticConfig = _ref4.optimisticConfig,\n updater = _ref4.updater;\n var publishQueue = this._publishQueue;\n var store = this._store;\n return RelayObservable.create(function (sink) {\n var executor = OperationExecutor.execute({\n actorIdentifier: INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n getDataID: _this9._getDataID,\n isClientPayload: isClientPayload,\n log: _this9.__log,\n operation: operation,\n operationExecutions: _this9._operationExecutions,\n operationLoader: _this9._operationLoader,\n operationTracker: _this9._operationTracker,\n optimisticConfig: optimisticConfig,\n getPublishQueue: function getPublishQueue(actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return publishQueue;\n },\n reactFlightPayloadDeserializer: _this9._reactFlightPayloadDeserializer,\n reactFlightServerErrorHandler: _this9._reactFlightServerErrorHandler,\n scheduler: _this9._scheduler,\n shouldProcessClientComponents: _this9._shouldProcessClientComponents,\n sink: sink,\n // NOTE: Some product tests expect `Network.execute` to be called only\n // when the Observable is executed.\n source: createSource(),\n getStore: function getStore(actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return store;\n },\n treatMissingFieldsAsNull: _this9._treatMissingFieldsAsNull,\n updater: updater\n });\n return function () {\n return executor.cancel();\n };\n });\n };\n\n return RelayModernEnvironment;\n}(); // Add a sigil for detection by `isRelayModernEnvironment()` to avoid a\n// realm-specific instanceof check, and to aid in module tree-shaking to\n// avoid requiring all of RelayRuntime just to detect its environment.\n\n\nRelayModernEnvironment.prototype['@@RelayModernEnvironment'] = true;\n\nfunction emptyFunction() {}\n\nmodule.exports = RelayModernEnvironment;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar getPendingOperationsForFragment = require('../util/getPendingOperationsForFragment');\n\nvar invariant = require('invariant');\n\nvar isScalarAndEqual = require('../util/isScalarAndEqual');\n\nvar recycleNodesInto = require('../util/recycleNodesInto');\n\nvar reportMissingRequiredFields = require('../util/reportMissingRequiredFields');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./RelayModernOperationDescriptor'),\n createRequestDescriptor = _require.createRequestDescriptor;\n\nvar _require2 = require('./RelayModernSelector'),\n areEqualSelectors = _require2.areEqualSelectors,\n createReaderSelector = _require2.createReaderSelector,\n getSelectorsFromObject = _require2.getSelectorsFromObject;\n\n/**\n * A utility for resolving and subscribing to the results of a fragment spec\n * (key -> fragment mapping) given some \"props\" that determine the root ID\n * and variables to use when reading each fragment. When props are changed via\n * `setProps()`, the resolver will update its results and subscriptions\n * accordingly. Internally, the resolver:\n * - Converts the fragment map & props map into a map of `Selector`s.\n * - Removes any resolvers for any props that became null.\n * - Creates resolvers for any props that became non-null.\n * - Updates resolvers with the latest props.\n *\n * This utility is implemented as an imperative, stateful API for performance\n * reasons: reusing previous resolvers, callback functions, and subscriptions\n * all helps to reduce object allocation and thereby decrease GC time.\n *\n * The `resolve()` function is also lazy and memoized: changes in the store mark\n * the resolver as stale and notify the caller, and the actual results are\n * recomputed the first time `resolve()` is called.\n */\nvar RelayModernFragmentSpecResolver = /*#__PURE__*/function () {\n function RelayModernFragmentSpecResolver(context, fragments, props, callback, rootIsQueryRenderer) {\n var _this = this;\n\n (0, _defineProperty2[\"default\"])(this, \"_onChange\", function () {\n _this._stale = true;\n\n if (typeof _this._callback === 'function') {\n _this._callback();\n }\n });\n this._callback = callback;\n this._context = context;\n this._data = {};\n this._fragments = fragments;\n this._props = {};\n this._resolvers = {};\n this._stale = false;\n this._rootIsQueryRenderer = rootIsQueryRenderer;\n this.setProps(props);\n }\n\n var _proto = RelayModernFragmentSpecResolver.prototype;\n\n _proto.dispose = function dispose() {\n for (var _key in this._resolvers) {\n if (this._resolvers.hasOwnProperty(_key)) {\n disposeCallback(this._resolvers[_key]);\n }\n }\n };\n\n _proto.resolve = function resolve() {\n if (this._stale) {\n // Avoid mapping the object multiple times, which could occur if data for\n // multiple keys changes in the same event loop.\n var prevData = this._data;\n var nextData;\n\n for (var _key2 in this._resolvers) {\n if (this._resolvers.hasOwnProperty(_key2)) {\n var resolver = this._resolvers[_key2];\n var prevItem = prevData[_key2];\n\n if (resolver) {\n var nextItem = resolver.resolve();\n\n if (nextData || nextItem !== prevItem) {\n nextData = nextData || (0, _objectSpread2[\"default\"])({}, prevData);\n nextData[_key2] = nextItem;\n }\n } else {\n var prop = this._props[_key2];\n\n var _nextItem = prop !== undefined ? prop : null;\n\n if (nextData || !isScalarAndEqual(_nextItem, prevItem)) {\n nextData = nextData || (0, _objectSpread2[\"default\"])({}, prevData);\n nextData[_key2] = _nextItem;\n }\n }\n }\n }\n\n this._data = nextData || prevData;\n this._stale = false;\n }\n\n return this._data;\n };\n\n _proto.setCallback = function setCallback(props, callback) {\n this._callback = callback;\n\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n this.setProps(props);\n }\n };\n\n _proto.setProps = function setProps(props) {\n this._props = {};\n var ownedSelectors = getSelectorsFromObject(this._fragments, props);\n\n for (var _key3 in ownedSelectors) {\n if (ownedSelectors.hasOwnProperty(_key3)) {\n var ownedSelector = ownedSelectors[_key3];\n var resolver = this._resolvers[_key3];\n\n if (ownedSelector == null) {\n if (resolver != null) {\n resolver.dispose();\n }\n\n resolver = null;\n } else if (ownedSelector.kind === 'PluralReaderSelector') {\n if (resolver == null) {\n resolver = new SelectorListResolver(this._context.environment, this._rootIsQueryRenderer, ownedSelector, this._callback != null, this._onChange);\n } else {\n !(resolver instanceof SelectorListResolver) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected prop `%s` to always be an array.', _key3) : invariant(false) : void 0;\n resolver.setSelector(ownedSelector);\n }\n } else {\n if (resolver == null) {\n resolver = new SelectorResolver(this._context.environment, this._rootIsQueryRenderer, ownedSelector, this._callback != null, this._onChange);\n } else {\n !(resolver instanceof SelectorResolver) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected prop `%s` to always be an object.', _key3) : invariant(false) : void 0;\n resolver.setSelector(ownedSelector);\n }\n }\n\n this._props[_key3] = props[_key3];\n this._resolvers[_key3] = resolver;\n }\n }\n\n this._stale = true;\n };\n\n _proto.setVariables = function setVariables(variables, request) {\n for (var _key4 in this._resolvers) {\n if (this._resolvers.hasOwnProperty(_key4)) {\n var resolver = this._resolvers[_key4];\n\n if (resolver) {\n resolver.setVariables(variables, request);\n }\n }\n }\n\n this._stale = true;\n };\n\n return RelayModernFragmentSpecResolver;\n}();\n/**\n * A resolver for a single Selector.\n */\n\n\nvar SelectorResolver = /*#__PURE__*/function () {\n function SelectorResolver(environment, rootIsQueryRenderer, selector, subscribeOnConstruction, callback) {\n var _this2 = this;\n\n (0, _defineProperty2[\"default\"])(this, \"_onChange\", function (snapshot) {\n _this2._data = snapshot.data;\n _this2._isMissingData = snapshot.isMissingData;\n _this2._missingRequiredFields = snapshot.missingRequiredFields;\n\n _this2._callback();\n });\n\n var _snapshot = environment.lookup(selector);\n\n this._callback = callback;\n this._data = _snapshot.data;\n this._isMissingData = _snapshot.isMissingData;\n this._missingRequiredFields = _snapshot.missingRequiredFields;\n this._environment = environment;\n this._rootIsQueryRenderer = rootIsQueryRenderer;\n this._selector = selector;\n\n if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {\n if (subscribeOnConstruction) {\n this._subscription = environment.subscribe(_snapshot, this._onChange);\n }\n } else {\n this._subscription = environment.subscribe(_snapshot, this._onChange);\n }\n }\n\n var _proto2 = SelectorResolver.prototype;\n\n _proto2.dispose = function dispose() {\n if (this._subscription) {\n this._subscription.dispose();\n\n this._subscription = null;\n }\n };\n\n _proto2.resolve = function resolve() {\n if (this._isMissingData === true) {\n // NOTE: This branch exists to handle the case in which:\n // - A RelayModern container is rendered as a descendant of a Relay Hook\n // root using a \"partial\" renderPolicy (this means that eargerly\n // reading any cached data that is available instead of blocking\n // at the root until the whole query is fetched).\n // - A parent Relay Hook didnt' suspend earlier on data being fetched,\n // either because the fragment data for the parent was available, or\n // the parent fragment didn't have any data dependencies.\n // Even though our Flow types reflect the possiblity of null data, there\n // might still be cases where it's not handled at runtime becuase the\n // Flow types are being ignored, or simply not being used (for example,\n // the case reported here: https://fburl.com/srnbucf8, was due to\n // misuse of Flow types here: https://fburl.com/g3m0mqqh).\n // Additionally, even though the null data might be handled without a\n // runtime error, we might not suspend when we intended to if a parent\n // Relay Hook (e.g. that is using @defer) decided not to suspend becuase\n // it's immediate data was already available (even if it was deferred),\n // or it didn't actually need any data (was just spreading other fragments).\n // This should eventually go away with something like @optional, where we only\n // suspend at specific boundaries depending on whether the boundary\n // can be fulfilled or not.\n var pendingOperationsResult = getPendingOperationsForFragment(this._environment, this._selector.node, this._selector.owner);\n var promise = pendingOperationsResult === null || pendingOperationsResult === void 0 ? void 0 : pendingOperationsResult.promise;\n\n if (promise != null) {\n if (this._rootIsQueryRenderer) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Relay Container for fragment `%s` has missing data and ' + 'would suspend. When using features such as @defer or @module, ' + 'use `useFragment` instead of a Relay Container.', this._selector.node.name) : void 0;\n } else {\n var _pendingOperationsRes;\n\n var pendingOperations = (_pendingOperationsRes = pendingOperationsResult === null || pendingOperationsResult === void 0 ? void 0 : pendingOperationsResult.pendingOperations) !== null && _pendingOperationsRes !== void 0 ? _pendingOperationsRes : [];\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Relay: Relay Container for fragment `%s` suspended. When using ' + 'features such as @defer or @module, use `useFragment` instead ' + 'of a Relay Container.', this._selector.node.name) : void 0;\n\n this._environment.__log({\n name: 'suspense.fragment',\n data: this._data,\n fragment: this._selector.node,\n isRelayHooks: false,\n isMissingData: this._isMissingData,\n isPromiseCached: false,\n pendingOperations: pendingOperations\n });\n\n throw promise;\n }\n }\n }\n\n if (this._missingRequiredFields != null) {\n reportMissingRequiredFields(this._environment, this._missingRequiredFields);\n }\n\n return this._data;\n };\n\n _proto2.setSelector = function setSelector(selector) {\n if (this._subscription != null && areEqualSelectors(selector, this._selector)) {\n return;\n }\n\n this.dispose();\n\n var snapshot = this._environment.lookup(selector);\n\n this._data = recycleNodesInto(this._data, snapshot.data);\n this._isMissingData = snapshot.isMissingData;\n this._missingRequiredFields = snapshot.missingRequiredFields;\n this._selector = selector;\n this._subscription = this._environment.subscribe(snapshot, this._onChange);\n };\n\n _proto2.setVariables = function setVariables(variables, request) {\n if (areEqual(variables, this._selector.variables)) {\n // If we're not actually setting new variables, we don't actually want\n // to create a new fragment owner, since areEqualSelectors relies on\n // owner identity.\n // In fact, we don't even need to try to attempt to set a new selector.\n // When fragment ownership is not enabled, setSelector will also bail\n // out since the selector doesn't really change, so we're doing it here\n // earlier.\n return;\n } // NOTE: We manually create the request descriptor here instead of\n // calling createOperationDescriptor() because we want to set a\n // descriptor with *unaltered* variables as the fragment owner.\n // This is a hack that allows us to preserve existing (broken)\n // behavior of RelayModern containers while using fragment ownership\n // to propagate variables instead of Context.\n // For more details, see the summary of D13999308\n\n\n var requestDescriptor = createRequestDescriptor(request, variables);\n var selector = createReaderSelector(this._selector.node, this._selector.dataID, variables, requestDescriptor);\n this.setSelector(selector);\n };\n\n return SelectorResolver;\n}();\n/**\n * A resolver for an array of Selectors.\n */\n\n\nvar SelectorListResolver = /*#__PURE__*/function () {\n function SelectorListResolver(environment, rootIsQueryRenderer, selector, subscribeOnConstruction, callback) {\n var _this3 = this;\n\n (0, _defineProperty2[\"default\"])(this, \"_onChange\", function (data) {\n _this3._stale = true;\n\n _this3._callback();\n });\n this._callback = callback;\n this._data = [];\n this._environment = environment;\n this._resolvers = [];\n this._stale = true;\n this._rootIsQueryRenderer = rootIsQueryRenderer;\n this._subscribeOnConstruction = subscribeOnConstruction;\n this.setSelector(selector);\n }\n\n var _proto3 = SelectorListResolver.prototype;\n\n _proto3.dispose = function dispose() {\n this._resolvers.forEach(disposeCallback);\n };\n\n _proto3.resolve = function resolve() {\n if (this._stale) {\n // Avoid mapping the array multiple times, which could occur if data for\n // multiple indices changes in the same event loop.\n var prevData = this._data;\n var nextData;\n\n for (var ii = 0; ii < this._resolvers.length; ii++) {\n var prevItem = prevData[ii];\n\n var nextItem = this._resolvers[ii].resolve();\n\n if (nextData || nextItem !== prevItem) {\n nextData = nextData || prevData.slice(0, ii);\n nextData.push(nextItem);\n }\n }\n\n if (!nextData && this._resolvers.length !== prevData.length) {\n nextData = prevData.slice(0, this._resolvers.length);\n }\n\n this._data = nextData || prevData;\n this._stale = false;\n }\n\n return this._data;\n };\n\n _proto3.setSelector = function setSelector(selector) {\n var selectors = selector.selectors;\n\n while (this._resolvers.length > selectors.length) {\n var resolver = this._resolvers.pop();\n\n resolver.dispose();\n }\n\n for (var ii = 0; ii < selectors.length; ii++) {\n if (ii < this._resolvers.length) {\n this._resolvers[ii].setSelector(selectors[ii]);\n } else {\n this._resolvers[ii] = new SelectorResolver(this._environment, this._rootIsQueryRenderer, selectors[ii], this._subscribeOnConstruction, this._onChange);\n }\n }\n\n this._stale = true;\n };\n\n _proto3.setVariables = function setVariables(variables, request) {\n this._resolvers.forEach(function (resolver) {\n return resolver.setVariables(variables, request);\n });\n\n this._stale = true;\n };\n\n return SelectorListResolver;\n}();\n\nfunction disposeCallback(disposable) {\n disposable && disposable.dispose();\n}\n\nmodule.exports = RelayModernFragmentSpecResolver;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar deepFreeze = require('../util/deepFreeze');\n\nvar getRequestIdentifier = require('../util/getRequestIdentifier');\n\nvar _require = require('./RelayConcreteVariables'),\n getOperationVariables = _require.getOperationVariables;\n\nvar _require2 = require('./RelayModernSelector'),\n createNormalizationSelector = _require2.createNormalizationSelector,\n createReaderSelector = _require2.createReaderSelector;\n\nvar _require3 = require('./RelayStoreUtils'),\n ROOT_ID = _require3.ROOT_ID;\n\n/**\n * Creates an instance of the `OperationDescriptor` type defined in\n * `RelayStoreTypes` given an operation and some variables. The input variables\n * are filtered to exclude variables that do not match defined arguments on the\n * operation, and default values are populated for null values.\n */\nfunction createOperationDescriptor(request, variables, cacheConfig) {\n var dataID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOT_ID;\n var operation = request.operation;\n var operationVariables = getOperationVariables(operation, variables);\n var requestDescriptor = createRequestDescriptor(request, operationVariables, cacheConfig);\n var operationDescriptor = {\n fragment: createReaderSelector(request.fragment, dataID, operationVariables, requestDescriptor),\n request: requestDescriptor,\n root: createNormalizationSelector(operation, dataID, operationVariables)\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n // Freezing properties short-circuits a deepFreeze of snapshots that contain\n // an OperationDescriptor via their selector's owner, avoiding stack\n // overflow on larger queries.\n Object.freeze(operationDescriptor.fragment);\n Object.freeze(operationDescriptor.root);\n Object.freeze(operationDescriptor);\n }\n\n return operationDescriptor;\n}\n\nfunction createRequestDescriptor(request, variables, cacheConfig) {\n var requestDescriptor = {\n identifier: getRequestIdentifier(request.params, variables),\n node: request,\n variables: variables,\n cacheConfig: cacheConfig\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n deepFreeze(variables);\n Object.freeze(request);\n Object.freeze(requestDescriptor);\n }\n\n return requestDescriptor;\n}\n\nmodule.exports = {\n createOperationDescriptor: createOperationDescriptor,\n createRequestDescriptor: createRequestDescriptor\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar deepFreeze = require('../util/deepFreeze');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./ClientID'),\n isClientID = _require.isClientID;\n\nvar _require2 = require('./RelayStoreUtils'),\n ACTOR_IDENTIFIER_KEY = _require2.ACTOR_IDENTIFIER_KEY,\n ID_KEY = _require2.ID_KEY,\n REF_KEY = _require2.REF_KEY,\n REFS_KEY = _require2.REFS_KEY,\n TYPENAME_KEY = _require2.TYPENAME_KEY,\n INVALIDATED_AT_KEY = _require2.INVALIDATED_AT_KEY,\n ROOT_ID = _require2.ROOT_ID;\n\n/**\n * @public\n *\n * Low-level record manipulation methods.\n *\n * A note about perf: we use long-hand property access rather than computed\n * properties in this file for speed ie.\n *\n * const object = {};\n * object[KEY] = value;\n * record[storageKey] = object;\n *\n * instead of:\n *\n * record[storageKey] = {\n * [KEY]: value,\n * };\n *\n * The latter gets transformed by Babel into something like:\n *\n * function _defineProperty(obj, key, value) {\n * if (key in obj) {\n * Object.defineProperty(obj, key, {\n * value: value,\n * enumerable: true,\n * configurable: true,\n * writable: true,\n * });\n * } else {\n * obj[key] = value;\n * }\n * return obj;\n * }\n *\n * record[storageKey] = _defineProperty({}, KEY, value);\n *\n * A quick benchmark shows that computed property access is an order of\n * magnitude slower (times in seconds for 100,000 iterations):\n *\n * best avg sd\n * computed 0.02175 0.02292 0.00113\n * manual 0.00110 0.00123 0.00008\n */\n\n/**\n * @public\n *\n * Clone a record.\n */\nfunction clone(record) {\n return (0, _objectSpread2[\"default\"])({}, record);\n}\n/**\n * @public\n *\n * Copies all fields from `source` to `sink`, excluding `__id` and `__typename`.\n *\n * NOTE: This function does not treat `id` specially. To preserve the id,\n * manually reset it after calling this function. Also note that values are\n * copied by reference and not value; callers should ensure that values are\n * copied on write.\n */\n\n\nfunction copyFields(source, sink) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n if (key !== ID_KEY && key !== TYPENAME_KEY) {\n sink[key] = source[key];\n }\n }\n }\n}\n/**\n * @public\n *\n * Create a new record.\n */\n\n\nfunction create(dataID, typeName) {\n // See perf note above for why we aren't using computed property access.\n var record = {};\n record[ID_KEY] = dataID;\n record[TYPENAME_KEY] = typeName;\n return record;\n}\n/**\n * @public\n *\n * Get the record's `id` if available or the client-generated identifier.\n */\n\n\nfunction getDataID(record) {\n return record[ID_KEY];\n}\n/**\n * @public\n *\n * Get the concrete type of the record.\n */\n\n\nfunction getType(record) {\n return record[TYPENAME_KEY];\n}\n/**\n * @public\n *\n * Get a scalar (non-link) field value.\n */\n\n\nfunction getValue(record, storageKey) {\n var value = record[storageKey];\n\n if (value && typeof value === 'object') {\n !(!value.hasOwnProperty(REF_KEY) && !value.hasOwnProperty(REFS_KEY)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getValue(): Expected a scalar (non-link) value for `%s.%s` ' + 'but found %s.', record[ID_KEY], storageKey, value.hasOwnProperty(REF_KEY) ? 'a linked record' : 'plural linked records') : invariant(false) : void 0;\n }\n\n return value;\n}\n/**\n * @public\n *\n * Get the value of a field as a reference to another record. Throws if the\n * field has a different type.\n */\n\n\nfunction getLinkedRecordID(record, storageKey) {\n var link = record[storageKey];\n\n if (link == null) {\n return link;\n }\n\n !(typeof link === 'object' && link && typeof link[REF_KEY] === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getLinkedRecordID(): Expected `%s.%s` to be a linked ID, ' + 'was `%s`.', record[ID_KEY], storageKey, JSON.stringify(link)) : invariant(false) : void 0;\n return link[REF_KEY];\n}\n/**\n * @public\n *\n * Get the value of a field as a list of references to other records. Throws if\n * the field has a different type.\n */\n\n\nfunction getLinkedRecordIDs(record, storageKey) {\n var links = record[storageKey];\n\n if (links == null) {\n return links;\n }\n\n !(typeof links === 'object' && Array.isArray(links[REFS_KEY])) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getLinkedRecordIDs(): Expected `%s.%s` to contain an array ' + 'of linked IDs, got `%s`.', record[ID_KEY], storageKey, JSON.stringify(links)) : invariant(false) : void 0; // assume items of the array are ids\n\n return links[REFS_KEY];\n}\n/**\n * @public\n *\n * Returns the epoch at which the record was invalidated, if it\n * ever was; otherwise returns null;\n */\n\n\nfunction getInvalidationEpoch(record) {\n if (record == null) {\n return null;\n }\n\n var invalidatedAt = record[INVALIDATED_AT_KEY];\n\n if (typeof invalidatedAt !== 'number') {\n // If the record has never been invalidated, it isn't stale.\n return null;\n }\n\n return invalidatedAt;\n}\n/**\n * @public\n *\n * Compares the fields of a previous and new record, returning either the\n * previous record if all fields are equal or a new record (with merged fields)\n * if any fields have changed.\n */\n\n\nfunction update(prevRecord, nextRecord) {\n if (process.env.NODE_ENV !== \"production\") {\n var _getType, _getType2;\n\n var prevID = getDataID(prevRecord);\n var nextID = getDataID(nextRecord);\n process.env.NODE_ENV !== \"production\" ? warning(prevID === nextID, 'RelayModernRecord: Invalid record update, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, nextID) : void 0; // note: coalesce null/undefined to null\n\n var prevType = (_getType = getType(prevRecord)) !== null && _getType !== void 0 ? _getType : null;\n var nextType = (_getType2 = getType(nextRecord)) !== null && _getType2 !== void 0 ? _getType2 : null;\n process.env.NODE_ENV !== \"production\" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record update, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n }\n\n var updated = null;\n var keys = Object.keys(nextRecord);\n\n for (var ii = 0; ii < keys.length; ii++) {\n var key = keys[ii];\n\n if (updated || !areEqual(prevRecord[key], nextRecord[key])) {\n updated = updated !== null ? updated : (0, _objectSpread2[\"default\"])({}, prevRecord);\n updated[key] = nextRecord[key];\n }\n }\n\n return updated !== null ? updated : prevRecord;\n}\n/**\n * @public\n *\n * Returns a new record with the contents of the given records. Fields in the\n * second record will overwrite identical fields in the first record.\n */\n\n\nfunction merge(record1, record2) {\n if (process.env.NODE_ENV !== \"production\") {\n var _getType3, _getType4;\n\n var prevID = getDataID(record1);\n var nextID = getDataID(record2);\n process.env.NODE_ENV !== \"production\" ? warning(prevID === nextID, 'RelayModernRecord: Invalid record merge, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, nextID) : void 0; // note: coalesce null/undefined to null\n\n var prevType = (_getType3 = getType(record1)) !== null && _getType3 !== void 0 ? _getType3 : null;\n var nextType = (_getType4 = getType(record2)) !== null && _getType4 !== void 0 ? _getType4 : null;\n process.env.NODE_ENV !== \"production\" ? warning(isClientID(nextID) && nextID !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid record merge, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n }\n\n return Object.assign({}, record1, record2);\n}\n/**\n * @public\n *\n * Prevent modifications to the record. Attempts to call `set*` functions on a\n * frozen record will fatal at runtime.\n */\n\n\nfunction freeze(record) {\n deepFreeze(record);\n}\n/**\n * @public\n *\n * Set the value of a storageKey to a scalar.\n */\n\n\nfunction setValue(record, storageKey, value) {\n if (process.env.NODE_ENV !== \"production\") {\n var prevID = getDataID(record);\n\n if (storageKey === ID_KEY) {\n process.env.NODE_ENV !== \"production\" ? warning(prevID === value, 'RelayModernRecord: Invalid field update, expected both versions of ' + 'the record to have the same id, got `%s` and `%s`.', prevID, value) : void 0;\n } else if (storageKey === TYPENAME_KEY) {\n var _getType5;\n\n // note: coalesce null/undefined to null\n var prevType = (_getType5 = getType(record)) !== null && _getType5 !== void 0 ? _getType5 : null;\n var nextType = value !== null && value !== void 0 ? value : null;\n process.env.NODE_ENV !== \"production\" ? warning(isClientID(getDataID(record)) && getDataID(record) !== ROOT_ID || prevType === nextType, 'RelayModernRecord: Invalid field update, expected both versions of ' + 'record `%s` to have the same `%s` but got conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', prevID, TYPENAME_KEY, prevType, nextType) : void 0;\n }\n }\n\n record[storageKey] = value;\n}\n/**\n * @public\n *\n * Set the value of a field to a reference to another record.\n */\n\n\nfunction setLinkedRecordID(record, storageKey, linkedID) {\n // See perf note above for why we aren't using computed property access.\n var link = {};\n link[REF_KEY] = linkedID;\n record[storageKey] = link;\n}\n/**\n * @public\n *\n * Set the value of a field to a list of references other records.\n */\n\n\nfunction setLinkedRecordIDs(record, storageKey, linkedIDs) {\n // See perf note above for why we aren't using computed property access.\n var links = {};\n links[REFS_KEY] = linkedIDs;\n record[storageKey] = links;\n}\n/**\n * @public\n *\n * Set the value of a field to a reference to another record in the actor specific store.\n */\n\n\nfunction setActorLinkedRecordID(record, storageKey, actorIdentifier, linkedID) {\n // See perf note above for why we aren't using computed property access.\n var link = {};\n link[REF_KEY] = linkedID;\n link[ACTOR_IDENTIFIER_KEY] = actorIdentifier;\n record[storageKey] = link;\n}\n/**\n * @public\n *\n * Get link to a record and the actor identifier for the store.\n */\n\n\nfunction getActorLinkedRecordID(record, storageKey) {\n var link = record[storageKey];\n\n if (link == null) {\n return link;\n }\n\n !(typeof link === 'object' && typeof link[REF_KEY] === 'string' && link[ACTOR_IDENTIFIER_KEY] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernRecord.getActorLinkedRecordID(): Expected `%s.%s` to be an actor specific linked ID, ' + 'was `%s`.', record[ID_KEY], storageKey, JSON.stringify(link)) : invariant(false) : void 0;\n return [link[ACTOR_IDENTIFIER_KEY], link[REF_KEY]];\n}\n\nmodule.exports = {\n clone: clone,\n copyFields: copyFields,\n create: create,\n freeze: freeze,\n getDataID: getDataID,\n getInvalidationEpoch: getInvalidationEpoch,\n getLinkedRecordID: getLinkedRecordID,\n getLinkedRecordIDs: getLinkedRecordIDs,\n getType: getType,\n getValue: getValue,\n merge: merge,\n setValue: setValue,\n setLinkedRecordID: setLinkedRecordID,\n setLinkedRecordIDs: setLinkedRecordIDs,\n update: update,\n getActorLinkedRecordID: getActorLinkedRecordID,\n setActorLinkedRecordID: setActorLinkedRecordID\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./RelayConcreteVariables'),\n getFragmentVariables = _require.getFragmentVariables;\n\nvar _require2 = require('./RelayStoreUtils'),\n FRAGMENT_OWNER_KEY = _require2.FRAGMENT_OWNER_KEY,\n FRAGMENTS_KEY = _require2.FRAGMENTS_KEY,\n ID_KEY = _require2.ID_KEY,\n IS_WITHIN_UNMATCHED_TYPE_REFINEMENT = _require2.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT;\n\n/**\n * @public\n *\n * Given the result `item` from a parent that fetched `fragment`, creates a\n * selector that can be used to read the results of that fragment for that item.\n *\n * Example:\n *\n * Given two fragments as follows:\n *\n * ```\n * fragment Parent on User {\n * id\n * ...Child\n * }\n * fragment Child on User {\n * name\n * }\n * ```\n *\n * And given some object `parent` that is the results of `Parent` for id \"4\",\n * the results of `Child` can be accessed by first getting a selector and then\n * using that selector to `lookup()` the results against the environment:\n *\n * ```\n * const childSelector = getSingularSelector(queryVariables, Child, parent);\n * const childData = environment.lookup(childSelector).data;\n * ```\n */\nfunction getSingularSelector(fragment, item) {\n !(typeof item === 'object' && item !== null && !Array.isArray(item)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got ' + '`%s`.', fragment.name, JSON.stringify(item)) : invariant(false) : void 0;\n var dataID = item[ID_KEY];\n var fragments = item[FRAGMENTS_KEY];\n var mixedOwner = item[FRAGMENT_OWNER_KEY];\n var isWithinUnmatchedTypeRefinement = item[IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] === true;\n\n if (typeof dataID === 'string' && typeof fragments === 'object' && fragments !== null && typeof fragments[fragment.name] === 'object' && fragments[fragment.name] !== null && typeof mixedOwner === 'object' && mixedOwner !== null) {\n var owner = mixedOwner;\n var argumentVariables = fragments[fragment.name];\n var fragmentVariables = getFragmentVariables(fragment, owner.variables, argumentVariables);\n return createReaderSelector(fragment, dataID, fragmentVariables, owner, isWithinUnmatchedTypeRefinement);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n var stringifiedItem = JSON.stringify(item);\n\n if (stringifiedItem.length > 499) {\n stringifiedItem = stringifiedItem.substr(0, 498) + \"\\u2026\";\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayModernSelector: Expected object to contain data for fragment `%s`, got ' + '`%s`. Make sure that the parent operation/fragment included fragment ' + '`...%s` without `@relay(mask: false)`.', fragment.name, stringifiedItem, fragment.name) : void 0;\n }\n\n return null;\n}\n/**\n * @public\n *\n * Given the result `items` from a parent that fetched `fragment`, creates a\n * selector that can be used to read the results of that fragment on those\n * items. This is similar to `getSingularSelector` but for \"plural\" fragments that\n * expect an array of results and therefore return an array of selectors.\n */\n\n\nfunction getPluralSelector(fragment, items) {\n var selectors = null;\n items.forEach(function (item, ii) {\n var selector = item != null ? getSingularSelector(fragment, item) : null;\n\n if (selector != null) {\n selectors = selectors || [];\n selectors.push(selector);\n }\n });\n\n if (selectors == null) {\n return null;\n } else {\n return {\n kind: 'PluralReaderSelector',\n selectors: selectors\n };\n }\n}\n\nfunction getSelector(fragment, item) {\n if (item == null) {\n return item;\n } else if (fragment.metadata && fragment.metadata.plural === true) {\n !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getPluralSelector(fragment, item);\n } else {\n !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getSingularSelector(fragment, item);\n }\n}\n/**\n * @public\n *\n * Given a mapping of keys -> results and a mapping of keys -> fragments,\n * extracts the selectors for those fragments from the results.\n *\n * The canonical use-case for this function is ReactRelayFragmentContainer, which\n * uses this function to convert (props, fragments) into selectors so that it\n * can read the results to pass to the inner component.\n */\n\n\nfunction getSelectorsFromObject(fragments, object) {\n var selectors = {};\n\n for (var _key in fragments) {\n if (fragments.hasOwnProperty(_key)) {\n var fragment = fragments[_key];\n var item = object[_key];\n selectors[_key] = getSelector(fragment, item);\n }\n }\n\n return selectors;\n}\n/**\n * @public\n *\n * Given a mapping of keys -> results and a mapping of keys -> fragments,\n * extracts a mapping of keys -> id(s) of the results.\n *\n * Similar to `getSelectorsFromObject()`, this function can be useful in\n * determining the \"identity\" of the props passed to a component.\n */\n\n\nfunction getDataIDsFromObject(fragments, object) {\n var ids = {};\n\n for (var _key2 in fragments) {\n if (fragments.hasOwnProperty(_key2)) {\n var fragment = fragments[_key2];\n var item = object[_key2];\n ids[_key2] = getDataIDsFromFragment(fragment, item);\n }\n }\n\n return ids;\n}\n\nfunction getDataIDsFromFragment(fragment, item) {\n if (item == null) {\n return item;\n } else if (fragment.metadata && fragment.metadata.plural === true) {\n !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getDataIDs(fragment, item);\n } else {\n !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getDataID(fragment, item);\n }\n}\n/**\n * @internal\n */\n\n\nfunction getDataIDs(fragment, items) {\n var ids = null;\n items.forEach(function (item) {\n var id = item != null ? getDataID(fragment, item) : null;\n\n if (id != null) {\n ids = ids || [];\n ids.push(id);\n }\n });\n return ids;\n}\n/**\n * @internal\n */\n\n\nfunction getDataID(fragment, item) {\n !(typeof item === 'object' && item !== null && !Array.isArray(item)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an object, got ' + '`%s`.', fragment.name, JSON.stringify(item)) : invariant(false) : void 0;\n var dataID = item[ID_KEY];\n\n if (typeof dataID === 'string') {\n return dataID;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayModernSelector: Expected object to contain data for fragment `%s`, got ' + '`%s`. Make sure that the parent operation/fragment included fragment ' + '`...%s` without `@relay(mask: false)`, or `null` is passed as the fragment ' + \"reference for `%s` if it's conditonally included and the condition isn't met.\", fragment.name, JSON.stringify(item), fragment.name, fragment.name) : void 0;\n return null;\n}\n/**\n * @public\n *\n * Given a mapping of keys -> results and a mapping of keys -> fragments,\n * extracts the merged variables that would be in scope for those\n * fragments/results.\n *\n * This can be useful in determing what varaibles were used to fetch the data\n * for a Relay container, for example.\n */\n\n\nfunction getVariablesFromObject(fragments, object) {\n var variables = {};\n\n for (var _key3 in fragments) {\n if (fragments.hasOwnProperty(_key3)) {\n var fragment = fragments[_key3];\n var item = object[_key3];\n var itemVariables = getVariablesFromFragment(fragment, item);\n Object.assign(variables, itemVariables);\n }\n }\n\n return variables;\n}\n\nfunction getVariablesFromFragment(fragment, item) {\n var _fragment$metadata;\n\n if (item == null) {\n return {};\n } else if (((_fragment$metadata = fragment.metadata) === null || _fragment$metadata === void 0 ? void 0 : _fragment$metadata.plural) === true) {\n !Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernSelector: Expected value for fragment `%s` to be an array, got `%s`. ' + 'Remove `@relay(plural: true)` from fragment `%s` to allow the prop to be an object.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getVariablesFromPluralFragment(fragment, item);\n } else {\n !!Array.isArray(item) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernFragmentSpecResolver: Expected value for fragment `%s` to be an object, got `%s`. ' + 'Add `@relay(plural: true)` to fragment `%s` to allow the prop to be an array of items.', fragment.name, JSON.stringify(item), fragment.name) : invariant(false) : void 0;\n return getVariablesFromSingularFragment(fragment, item) || {};\n }\n}\n\nfunction getVariablesFromSingularFragment(fragment, item) {\n var selector = getSingularSelector(fragment, item);\n\n if (!selector) {\n return null;\n }\n\n return selector.variables;\n}\n\nfunction getVariablesFromPluralFragment(fragment, items) {\n var variables = {};\n items.forEach(function (value, ii) {\n if (value != null) {\n var itemVariables = getVariablesFromSingularFragment(fragment, value);\n\n if (itemVariables != null) {\n Object.assign(variables, itemVariables);\n }\n }\n });\n return variables;\n}\n/**\n * @public\n *\n * Determine if two selectors are equal (represent the same selection). Note\n * that this function returns `false` when the two queries/fragments are\n * different objects, even if they select the same fields.\n */\n\n\nfunction areEqualSelectors(thisSelector, thatSelector) {\n return thisSelector.owner === thatSelector.owner && thisSelector.dataID === thatSelector.dataID && thisSelector.node === thatSelector.node && areEqual(thisSelector.variables, thatSelector.variables);\n}\n\nfunction createReaderSelector(fragment, dataID, variables, request) {\n var isWithinUnmatchedTypeRefinement = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n return {\n kind: 'SingularReaderSelector',\n dataID: dataID,\n isWithinUnmatchedTypeRefinement: isWithinUnmatchedTypeRefinement,\n node: fragment,\n variables: variables,\n owner: request\n };\n}\n\nfunction createNormalizationSelector(node, dataID, variables) {\n return {\n dataID: dataID,\n node: node,\n variables: variables\n };\n}\n\nmodule.exports = {\n areEqualSelectors: areEqualSelectors,\n createReaderSelector: createReaderSelector,\n createNormalizationSelector: createNormalizationSelector,\n getDataIDsFromFragment: getDataIDsFromFragment,\n getDataIDsFromObject: getDataIDsFromObject,\n getSingularSelector: getSingularSelector,\n getPluralSelector: getPluralSelector,\n getSelector: getSelector,\n getSelectorsFromObject: getSelectorsFromObject,\n getVariablesFromSingularFragment: getVariablesFromSingularFragment,\n getVariablesFromPluralFragment: getVariablesFromPluralFragment,\n getVariablesFromFragment: getVariablesFromFragment,\n getVariablesFromObject: getVariablesFromObject\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar DataChecker = require('./DataChecker');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar RelayOptimisticRecordSource = require('./RelayOptimisticRecordSource');\n\nvar RelayReader = require('./RelayReader');\n\nvar RelayReferenceMarker = require('./RelayReferenceMarker');\n\nvar RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');\n\nvar RelayStoreSubscriptions = require('./RelayStoreSubscriptions');\n\nvar RelayStoreUtils = require('./RelayStoreUtils');\n\nvar deepFreeze = require('../util/deepFreeze');\n\nvar defaultGetDataID = require('./defaultGetDataID');\n\nvar invariant = require('invariant');\n\nvar resolveImmediate = require('../util/resolveImmediate');\n\nvar _require = require('../multi-actor-environment/ActorIdentifier'),\n INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE = _require.INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE,\n assertInternalActorIndentifier = _require.assertInternalActorIndentifier;\n\nvar _require2 = require('./RelayStoreUtils'),\n ROOT_ID = _require2.ROOT_ID,\n ROOT_TYPE = _require2.ROOT_TYPE;\n\nvar _require3 = require('./ResolverCache'),\n RecordResolverCache = _require3.RecordResolverCache;\n\nvar DEFAULT_RELEASE_BUFFER_SIZE = 10;\n/**\n * @public\n *\n * An implementation of the `Store` interface defined in `RelayStoreTypes`.\n *\n * Note that a Store takes ownership of all records provided to it: other\n * objects may continue to hold a reference to such records but may not mutate\n * them. The static Relay core is architected to avoid mutating records that may have been\n * passed to a store: operations that mutate records will either create fresh\n * records or clone existing records and modify the clones. Record immutability\n * is also enforced in development mode by freezing all records passed to a store.\n */\n\nvar RelayModernStore = /*#__PURE__*/function () {\n function RelayModernStore(source, options) {\n var _this = this;\n\n var _options$gcReleaseBuf, _options$gcScheduler, _options$getDataID, _options$log, _options$operationLoa;\n\n (0, _defineProperty2[\"default\"])(this, \"_gcStep\", function () {\n if (_this._gcRun) {\n if (_this._gcRun.next().done) {\n _this._gcRun = null;\n } else {\n _this._gcScheduler(_this._gcStep);\n }\n }\n });\n\n // Prevent mutation of a record from outside the store.\n if (process.env.NODE_ENV !== \"production\") {\n var storeIDs = source.getRecordIDs();\n\n for (var ii = 0; ii < storeIDs.length; ii++) {\n var record = source.get(storeIDs[ii]);\n\n if (record) {\n RelayModernRecord.freeze(record);\n }\n }\n }\n\n this._currentWriteEpoch = 0;\n this._gcHoldCounter = 0;\n this._gcReleaseBufferSize = (_options$gcReleaseBuf = options === null || options === void 0 ? void 0 : options.gcReleaseBufferSize) !== null && _options$gcReleaseBuf !== void 0 ? _options$gcReleaseBuf : DEFAULT_RELEASE_BUFFER_SIZE;\n this._gcRun = null;\n this._gcScheduler = (_options$gcScheduler = options === null || options === void 0 ? void 0 : options.gcScheduler) !== null && _options$gcScheduler !== void 0 ? _options$gcScheduler : resolveImmediate;\n this._getDataID = (_options$getDataID = options === null || options === void 0 ? void 0 : options.getDataID) !== null && _options$getDataID !== void 0 ? _options$getDataID : defaultGetDataID;\n this._globalInvalidationEpoch = null;\n this._invalidationSubscriptions = new Set();\n this._invalidatedRecordIDs = new Set();\n this.__log = (_options$log = options === null || options === void 0 ? void 0 : options.log) !== null && _options$log !== void 0 ? _options$log : null;\n this._queryCacheExpirationTime = options === null || options === void 0 ? void 0 : options.queryCacheExpirationTime;\n this._operationLoader = (_options$operationLoa = options === null || options === void 0 ? void 0 : options.operationLoader) !== null && _options$operationLoa !== void 0 ? _options$operationLoa : null;\n this._optimisticSource = null;\n this._recordSource = source;\n this._releaseBuffer = [];\n this._roots = new Map();\n this._shouldScheduleGC = false;\n this._resolverCache = new RecordResolverCache(function () {\n return _this._getMutableRecordSource();\n });\n this._storeSubscriptions = new RelayStoreSubscriptions(options === null || options === void 0 ? void 0 : options.log, this._resolverCache);\n this._updatedRecordIDs = new Set();\n this._shouldProcessClientComponents = options === null || options === void 0 ? void 0 : options.shouldProcessClientComponents;\n initializeRecordSource(this._recordSource);\n }\n\n var _proto = RelayModernStore.prototype;\n\n _proto.getSource = function getSource() {\n var _this$_optimisticSour;\n\n return (_this$_optimisticSour = this._optimisticSource) !== null && _this$_optimisticSour !== void 0 ? _this$_optimisticSour : this._recordSource;\n };\n\n _proto._getMutableRecordSource = function _getMutableRecordSource() {\n var _this$_optimisticSour2;\n\n return (_this$_optimisticSour2 = this._optimisticSource) !== null && _this$_optimisticSour2 !== void 0 ? _this$_optimisticSour2 : this._recordSource;\n };\n\n _proto.check = function check(operation, options) {\n var _options$handlers, _options$getSourceFor, _options$getTargetFor, _options$defaultActor;\n\n var selector = operation.root;\n\n var source = this._getMutableRecordSource();\n\n var globalInvalidationEpoch = this._globalInvalidationEpoch;\n\n var rootEntry = this._roots.get(operation.request.identifier);\n\n var operationLastWrittenAt = rootEntry != null ? rootEntry.epoch : null; // Check if store has been globally invalidated\n\n if (globalInvalidationEpoch != null) {\n // If so, check if the operation we're checking was last written\n // before or after invalidation occurred.\n if (operationLastWrittenAt == null || operationLastWrittenAt <= globalInvalidationEpoch) {\n // If the operation was written /before/ global invalidation occurred,\n // or if this operation has never been written to the store before,\n // we will consider the data for this operation to be stale\n // (i.e. not resolvable from the store).\n return {\n status: 'stale'\n };\n }\n }\n\n var handlers = (_options$handlers = options === null || options === void 0 ? void 0 : options.handlers) !== null && _options$handlers !== void 0 ? _options$handlers : [];\n var getSourceForActor = (_options$getSourceFor = options === null || options === void 0 ? void 0 : options.getSourceForActor) !== null && _options$getSourceFor !== void 0 ? _options$getSourceFor : function (actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return source;\n };\n var getTargetForActor = (_options$getTargetFor = options === null || options === void 0 ? void 0 : options.getTargetForActor) !== null && _options$getTargetFor !== void 0 ? _options$getTargetFor : function (actorIdentifier) {\n assertInternalActorIndentifier(actorIdentifier);\n return source;\n };\n var operationAvailability = DataChecker.check(getSourceForActor, getTargetForActor, (_options$defaultActor = options === null || options === void 0 ? void 0 : options.defaultActorIdentifier) !== null && _options$defaultActor !== void 0 ? _options$defaultActor : INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE, selector, handlers, this._operationLoader, this._getDataID, this._shouldProcessClientComponents);\n return getAvailabilityStatus(operationAvailability, operationLastWrittenAt, rootEntry === null || rootEntry === void 0 ? void 0 : rootEntry.fetchTime, this._queryCacheExpirationTime);\n };\n\n _proto.retain = function retain(operation) {\n var _this2 = this;\n\n var id = operation.request.identifier;\n var disposed = false;\n\n var dispose = function dispose() {\n // Ensure each retain can only dispose once\n if (disposed) {\n return;\n }\n\n disposed = true; // For Flow: guard against the entry somehow not existing\n\n var rootEntry = _this2._roots.get(id);\n\n if (rootEntry == null) {\n return;\n } // Decrement the ref count: if it becomes zero it is eligible\n // for release.\n\n\n rootEntry.refCount--;\n\n if (rootEntry.refCount === 0) {\n var _queryCacheExpirationTime = _this2._queryCacheExpirationTime;\n\n var rootEntryIsStale = rootEntry.fetchTime != null && _queryCacheExpirationTime != null && rootEntry.fetchTime <= Date.now() - _queryCacheExpirationTime;\n\n if (rootEntryIsStale) {\n _this2._roots[\"delete\"](id);\n\n _this2.scheduleGC();\n } else {\n _this2._releaseBuffer.push(id); // If the release buffer is now over-full, remove the least-recently\n // added entry and schedule a GC. Note that all items in the release\n // buffer have a refCount of 0.\n\n\n if (_this2._releaseBuffer.length > _this2._gcReleaseBufferSize) {\n var _id = _this2._releaseBuffer.shift();\n\n _this2._roots[\"delete\"](_id);\n\n _this2.scheduleGC();\n }\n }\n }\n };\n\n var rootEntry = this._roots.get(id);\n\n if (rootEntry != null) {\n if (rootEntry.refCount === 0) {\n // This entry should be in the release buffer, but it no longer belongs\n // there since it's retained. Remove it to maintain the invariant that\n // all release buffer entries have a refCount of 0.\n this._releaseBuffer = this._releaseBuffer.filter(function (_id) {\n return _id !== id;\n });\n } // If we've previously retained this operation, increment the refCount\n\n\n rootEntry.refCount += 1;\n } else {\n // Otherwise create a new entry for the operation\n this._roots.set(id, {\n operation: operation,\n refCount: 1,\n epoch: null,\n fetchTime: null\n });\n }\n\n return {\n dispose: dispose\n };\n };\n\n _proto.lookup = function lookup(selector) {\n var source = this.getSource();\n var snapshot = RelayReader.read(source, selector, this._resolverCache);\n\n if (process.env.NODE_ENV !== \"production\") {\n deepFreeze(snapshot);\n }\n\n return snapshot;\n } // This method will return a list of updated owners from the subscriptions\n ;\n\n _proto.notify = function notify(sourceOperation, invalidateStore) {\n var _this3 = this;\n\n var log = this.__log;\n\n if (log != null) {\n log({\n name: 'store.notify.start',\n sourceOperation: sourceOperation\n });\n } // Increment the current write when notifying after executing\n // a set of changes to the store.\n\n\n this._currentWriteEpoch++;\n\n if (invalidateStore === true) {\n this._globalInvalidationEpoch = this._currentWriteEpoch;\n }\n\n if (RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n // When a record is updated, we need to also handle records that depend on it,\n // specifically Relay Resolver result records containing results based on the\n // updated records. This both adds to updatedRecordIDs and invalidates any\n // cached data as needed.\n this._resolverCache.invalidateDataIDs(this._updatedRecordIDs);\n }\n\n var source = this.getSource();\n var updatedOwners = [];\n\n this._storeSubscriptions.updateSubscriptions(source, this._updatedRecordIDs, updatedOwners, sourceOperation);\n\n this._invalidationSubscriptions.forEach(function (subscription) {\n _this3._updateInvalidationSubscription(subscription, invalidateStore === true);\n });\n\n if (log != null) {\n log({\n name: 'store.notify.complete',\n sourceOperation: sourceOperation,\n updatedRecordIDs: this._updatedRecordIDs,\n invalidatedRecordIDs: this._invalidatedRecordIDs\n });\n }\n\n this._updatedRecordIDs.clear();\n\n this._invalidatedRecordIDs.clear(); // If a source operation was provided (indicating the operation\n // that produced this update to the store), record the current epoch\n // at which this operation was written.\n\n\n if (sourceOperation != null) {\n // We only track the epoch at which the operation was written if\n // it was previously retained, to keep the size of our operation\n // epoch map bounded. If a query wasn't retained, we assume it can\n // may be deleted at any moment and thus is not relevant for us to track\n // for the purposes of invalidation.\n var id = sourceOperation.request.identifier;\n\n var rootEntry = this._roots.get(id);\n\n if (rootEntry != null) {\n rootEntry.epoch = this._currentWriteEpoch;\n rootEntry.fetchTime = Date.now();\n } else if (sourceOperation.request.node.params.operationKind === 'query' && this._gcReleaseBufferSize > 0 && this._releaseBuffer.length < this._gcReleaseBufferSize) {\n // The operation isn't retained but there is space in the release buffer:\n // temporarily track this operation in case the data can be reused soon.\n var temporaryRootEntry = {\n operation: sourceOperation,\n refCount: 0,\n epoch: this._currentWriteEpoch,\n fetchTime: Date.now()\n };\n\n this._releaseBuffer.push(id);\n\n this._roots.set(id, temporaryRootEntry);\n }\n }\n\n return updatedOwners;\n };\n\n _proto.publish = function publish(source, idsMarkedForInvalidation) {\n var target = this._getMutableRecordSource();\n\n updateTargetFromSource(target, source, // We increment the current epoch at the end of the set of updates,\n // in notify(). Here, we pass what will be the incremented value of\n // the epoch to use to write to invalidated records.\n this._currentWriteEpoch + 1, idsMarkedForInvalidation, this._updatedRecordIDs, this._invalidatedRecordIDs); // NOTE: log *after* processing the source so that even if a bad log function\n // mutates the source, it doesn't affect Relay processing of it.\n\n var log = this.__log;\n\n if (log != null) {\n log({\n name: 'store.publish',\n source: source,\n optimistic: target === this._optimisticSource\n });\n }\n };\n\n _proto.subscribe = function subscribe(snapshot, callback) {\n return this._storeSubscriptions.subscribe(snapshot, callback);\n };\n\n _proto.holdGC = function holdGC() {\n var _this4 = this;\n\n if (this._gcRun) {\n this._gcRun = null;\n this._shouldScheduleGC = true;\n }\n\n this._gcHoldCounter++;\n\n var dispose = function dispose() {\n if (_this4._gcHoldCounter > 0) {\n _this4._gcHoldCounter--;\n\n if (_this4._gcHoldCounter === 0 && _this4._shouldScheduleGC) {\n _this4.scheduleGC();\n\n _this4._shouldScheduleGC = false;\n }\n }\n };\n\n return {\n dispose: dispose\n };\n };\n\n _proto.toJSON = function toJSON() {\n return 'RelayModernStore()';\n };\n\n _proto.getEpoch = function getEpoch() {\n return this._currentWriteEpoch;\n } // Internal API\n ;\n\n _proto.__getUpdatedRecordIDs = function __getUpdatedRecordIDs() {\n return this._updatedRecordIDs;\n };\n\n _proto.lookupInvalidationState = function lookupInvalidationState(dataIDs) {\n var _this5 = this;\n\n var invalidations = new Map();\n dataIDs.forEach(function (dataID) {\n var _RelayModernRecord$ge;\n\n var record = _this5.getSource().get(dataID);\n\n invalidations.set(dataID, (_RelayModernRecord$ge = RelayModernRecord.getInvalidationEpoch(record)) !== null && _RelayModernRecord$ge !== void 0 ? _RelayModernRecord$ge : null);\n });\n invalidations.set('global', this._globalInvalidationEpoch);\n return {\n dataIDs: dataIDs,\n invalidations: invalidations\n };\n };\n\n _proto.checkInvalidationState = function checkInvalidationState(prevInvalidationState) {\n var latestInvalidationState = this.lookupInvalidationState(prevInvalidationState.dataIDs);\n var currentInvalidations = latestInvalidationState.invalidations;\n var prevInvalidations = prevInvalidationState.invalidations; // Check if global invalidation has changed\n\n if (currentInvalidations.get('global') !== prevInvalidations.get('global')) {\n return true;\n } // Check if the invalidation state for any of the ids has changed.\n\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(prevInvalidationState.dataIDs),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var dataID = _step.value;\n\n if (currentInvalidations.get(dataID) !== prevInvalidations.get(dataID)) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n };\n\n _proto.subscribeToInvalidationState = function subscribeToInvalidationState(invalidationState, callback) {\n var _this6 = this;\n\n var subscription = {\n callback: callback,\n invalidationState: invalidationState\n };\n\n var dispose = function dispose() {\n _this6._invalidationSubscriptions[\"delete\"](subscription);\n };\n\n this._invalidationSubscriptions.add(subscription);\n\n return {\n dispose: dispose\n };\n };\n\n _proto._updateInvalidationSubscription = function _updateInvalidationSubscription(subscription, invalidatedStore) {\n var _this7 = this;\n\n var callback = subscription.callback,\n invalidationState = subscription.invalidationState;\n var dataIDs = invalidationState.dataIDs;\n var isSubscribedToInvalidatedIDs = invalidatedStore || dataIDs.some(function (dataID) {\n return _this7._invalidatedRecordIDs.has(dataID);\n });\n\n if (!isSubscribedToInvalidatedIDs) {\n return;\n }\n\n callback();\n };\n\n _proto.snapshot = function snapshot() {\n !(this._optimisticSource == null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernStore: Unexpected call to snapshot() while a previous ' + 'snapshot exists.') : invariant(false) : void 0;\n var log = this.__log;\n\n if (log != null) {\n log({\n name: 'store.snapshot'\n });\n }\n\n this._storeSubscriptions.snapshotSubscriptions(this.getSource());\n\n if (this._gcRun) {\n this._gcRun = null;\n this._shouldScheduleGC = true;\n }\n\n this._optimisticSource = RelayOptimisticRecordSource.create(this.getSource());\n };\n\n _proto.restore = function restore() {\n !(this._optimisticSource != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernStore: Unexpected call to restore(), expected a snapshot ' + 'to exist (make sure to call snapshot()).') : invariant(false) : void 0;\n var log = this.__log;\n\n if (log != null) {\n log({\n name: 'store.restore'\n });\n }\n\n this._optimisticSource = null;\n\n if (this._shouldScheduleGC) {\n this.scheduleGC();\n }\n\n this._storeSubscriptions.restoreSubscriptions();\n };\n\n _proto.scheduleGC = function scheduleGC() {\n if (this._gcHoldCounter > 0) {\n this._shouldScheduleGC = true;\n return;\n }\n\n if (this._gcRun) {\n return;\n }\n\n this._gcRun = this._collect();\n\n this._gcScheduler(this._gcStep);\n }\n /**\n * Run a full GC synchronously.\n */\n ;\n\n _proto.__gc = function __gc() {\n // Don't run GC while there are optimistic updates applied\n if (this._optimisticSource != null) {\n return;\n }\n\n var gcRun = this._collect();\n\n while (!gcRun.next().done) {}\n };\n\n _proto._collect = function* _collect() {\n /* eslint-disable no-labels */\n top: while (true) {\n var startEpoch = this._currentWriteEpoch;\n var references = new Set(); // Mark all records that are traversable from a root\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(this._roots.values()),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var operation = _step2.value.operation;\n var selector = operation.root;\n RelayReferenceMarker.mark(this._recordSource, selector, references, this._operationLoader, this._shouldProcessClientComponents); // Yield for other work after each operation\n\n yield; // If the store was updated, restart\n\n if (startEpoch !== this._currentWriteEpoch) {\n continue top;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n var log = this.__log;\n\n if (log != null) {\n log({\n name: 'store.gc',\n references: references\n });\n } // Sweep records without references\n\n\n if (references.size === 0) {\n // Short-circuit if *nothing* is referenced\n this._recordSource.clear();\n } else {\n // Evict any unreferenced nodes\n var storeIDs = this._recordSource.getRecordIDs();\n\n for (var ii = 0; ii < storeIDs.length; ii++) {\n var dataID = storeIDs[ii];\n\n if (!references.has(dataID)) {\n this._recordSource.remove(dataID);\n }\n }\n }\n\n return;\n }\n };\n\n return RelayModernStore;\n}();\n\nfunction initializeRecordSource(target) {\n if (!target.has(ROOT_ID)) {\n var rootRecord = RelayModernRecord.create(ROOT_ID, ROOT_TYPE);\n target.set(ROOT_ID, rootRecord);\n }\n}\n/**\n * Updates the target with information from source, also updating a mapping of\n * which records in the target were changed as a result.\n * Additionally, will mark records as invalidated at the current write epoch\n * given the set of record ids marked as stale in this update.\n */\n\n\nfunction updateTargetFromSource(target, source, currentWriteEpoch, idsMarkedForInvalidation, updatedRecordIDs, invalidatedRecordIDs) {\n // First, update any records that were marked for invalidation.\n // For each provided dataID that was invalidated, we write the\n // INVALIDATED_AT_KEY on the record, indicating\n // the epoch at which the record was invalidated.\n if (idsMarkedForInvalidation) {\n idsMarkedForInvalidation.forEach(function (dataID) {\n var targetRecord = target.get(dataID);\n var sourceRecord = source.get(dataID); // If record was deleted during the update (and also invalidated),\n // we don't need to count it as an invalidated id\n\n if (sourceRecord === null) {\n return;\n }\n\n var nextRecord;\n\n if (targetRecord != null) {\n // If the target record exists, use it to set the epoch\n // at which it was invalidated. This record will be updated with\n // any changes from source in the section below\n // where we update the target records based on the source.\n nextRecord = RelayModernRecord.clone(targetRecord);\n } else {\n // If the target record doesn't exist, it means that a new record\n // in the source was created (and also invalidated), so we use that\n // record to set the epoch at which it was invalidated. This record\n // will be updated with any changes from source in the section below\n // where we update the target records based on the source.\n nextRecord = sourceRecord != null ? RelayModernRecord.clone(sourceRecord) : null;\n }\n\n if (!nextRecord) {\n return;\n }\n\n RelayModernRecord.setValue(nextRecord, RelayStoreUtils.INVALIDATED_AT_KEY, currentWriteEpoch);\n invalidatedRecordIDs.add(dataID); // $FlowFixMe[incompatible-call]\n\n target.set(dataID, nextRecord);\n });\n } // Update the target based on the changes present in source\n\n\n var dataIDs = source.getRecordIDs();\n\n for (var ii = 0; ii < dataIDs.length; ii++) {\n var dataID = dataIDs[ii];\n var sourceRecord = source.get(dataID);\n var targetRecord = target.get(dataID); // Prevent mutation of a record from outside the store.\n\n if (process.env.NODE_ENV !== \"production\") {\n if (sourceRecord) {\n RelayModernRecord.freeze(sourceRecord);\n }\n }\n\n if (sourceRecord && targetRecord) {\n // ReactFlightClientResponses are lazy and only materialize when readRoot\n // is called when we read the field, so if the record is a Flight field\n // we always use the new record's data regardless of whether\n // it actually changed. Let React take care of reconciliation instead.\n var nextRecord = RelayModernRecord.getType(targetRecord) === RelayStoreReactFlightUtils.REACT_FLIGHT_TYPE_NAME ? sourceRecord : RelayModernRecord.update(targetRecord, sourceRecord);\n\n if (nextRecord !== targetRecord) {\n // Prevent mutation of a record from outside the store.\n if (process.env.NODE_ENV !== \"production\") {\n RelayModernRecord.freeze(nextRecord);\n }\n\n updatedRecordIDs.add(dataID);\n target.set(dataID, nextRecord);\n }\n } else if (sourceRecord === null) {\n target[\"delete\"](dataID);\n\n if (targetRecord !== null) {\n updatedRecordIDs.add(dataID);\n }\n } else if (sourceRecord) {\n target.set(dataID, sourceRecord);\n updatedRecordIDs.add(dataID);\n } // don't add explicit undefined\n\n }\n}\n/**\n * Returns an OperationAvailability given the Availability returned\n * by checking an operation, and when that operation was last written to the store.\n * Specifically, the provided Availability of an operation will contain the\n * value of when a record referenced by the operation was most recently\n * invalidated; given that value, and given when this operation was last\n * written to the store, this function will return the overall\n * OperationAvailability for the operation.\n */\n\n\nfunction getAvailabilityStatus(operationAvailability, operationLastWrittenAt, operationFetchTime, queryCacheExpirationTime) {\n var mostRecentlyInvalidatedAt = operationAvailability.mostRecentlyInvalidatedAt,\n status = operationAvailability.status;\n\n if (typeof mostRecentlyInvalidatedAt === 'number') {\n // If some record referenced by this operation is stale, then the operation itself is stale\n // if either the operation itself was never written *or* the operation was last written\n // before the most recent invalidation of its reachable records.\n if (operationLastWrittenAt == null || mostRecentlyInvalidatedAt > operationLastWrittenAt) {\n return {\n status: 'stale'\n };\n }\n }\n\n if (status === 'missing') {\n return {\n status: 'missing'\n };\n }\n\n if (operationFetchTime != null && queryCacheExpirationTime != null) {\n var isStale = operationFetchTime <= Date.now() - queryCacheExpirationTime;\n\n if (isStale) {\n return {\n status: 'stale'\n };\n }\n } // There were no invalidations of any reachable records *or* the operation is known to have\n // been fetched after the most recent record invalidation.\n\n\n return {\n status: 'available',\n fetchTime: operationFetchTime !== null && operationFetchTime !== void 0 ? operationFetchTime : null\n };\n}\n\nmodule.exports = RelayModernStore;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar invariant = require('invariant');\n\nvar RelayOperationTracker = /*#__PURE__*/function () {\n function RelayOperationTracker() {\n this._ownersToPendingOperations = new Map();\n this._pendingOperationsToOwners = new Map();\n this._ownersToPendingPromise = new Map();\n }\n /**\n * Update the map of current processing operations with the set of\n * affected owners and notify subscribers\n */\n\n\n var _proto = RelayOperationTracker.prototype;\n\n _proto.update = function update(pendingOperation, affectedOwners) {\n if (affectedOwners.size === 0) {\n return;\n }\n\n var pendingOperationIdentifier = pendingOperation.identifier;\n var newlyAffectedOwnersIdentifier = new Set();\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(affectedOwners),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var owner = _step.value;\n var ownerIdentifier = owner.identifier;\n\n var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n\n if (pendingOperationsAffectingOwner != null) {\n // In this case the `ownerIdentifier` already affected by some operations\n // We just need to detect, is it the same operation that we already\n // have in the list, or it's a new operation\n if (!pendingOperationsAffectingOwner.has(pendingOperationIdentifier)) {\n pendingOperationsAffectingOwner.set(pendingOperationIdentifier, pendingOperation);\n newlyAffectedOwnersIdentifier.add(ownerIdentifier);\n }\n } else {\n // This is a new `ownerIdentifier` that is affected by the operation\n this._ownersToPendingOperations.set(ownerIdentifier, new Map([[pendingOperationIdentifier, pendingOperation]]));\n\n newlyAffectedOwnersIdentifier.add(ownerIdentifier);\n }\n } // No new owners were affected by this operation, we may stop here\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (newlyAffectedOwnersIdentifier.size === 0) {\n return;\n } // But, if some owners were affected we need to add them to\n // the `_pendingOperationsToOwners` set\n\n\n var ownersAffectedByPendingOperation = this._pendingOperationsToOwners.get(pendingOperationIdentifier) || new Set();\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(newlyAffectedOwnersIdentifier),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _ownerIdentifier = _step2.value;\n\n this._resolveOwnerResolvers(_ownerIdentifier);\n\n ownersAffectedByPendingOperation.add(_ownerIdentifier);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this._pendingOperationsToOwners.set(pendingOperationIdentifier, ownersAffectedByPendingOperation);\n }\n /**\n * Once pending operation is completed we need to remove it\n * from all tracking maps\n */\n ;\n\n _proto.complete = function complete(pendingOperation) {\n var pendingOperationIdentifier = pendingOperation.identifier;\n\n var affectedOwnersIdentifier = this._pendingOperationsToOwners.get(pendingOperationIdentifier);\n\n if (affectedOwnersIdentifier == null) {\n return;\n } // These were the owners affected only by `pendingOperationIdentifier`\n\n\n var completedOwnersIdentifier = new Set(); // These were the owners affected by `pendingOperationIdentifier`\n // and some other operations\n\n var updatedOwnersIdentifier = new Set();\n\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])(affectedOwnersIdentifier),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var ownerIdentifier = _step3.value;\n\n var pendingOperationsAffectingOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n\n if (!pendingOperationsAffectingOwner) {\n continue;\n }\n\n pendingOperationsAffectingOwner[\"delete\"](pendingOperationIdentifier);\n\n if (pendingOperationsAffectingOwner.size > 0) {\n updatedOwnersIdentifier.add(ownerIdentifier);\n } else {\n completedOwnersIdentifier.add(ownerIdentifier);\n }\n } // Complete subscriptions for all owners, affected by `pendingOperationIdentifier`\n\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n var _iterator4 = (0, _createForOfIteratorHelper2[\"default\"])(completedOwnersIdentifier),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _ownerIdentifier2 = _step4.value;\n\n this._resolveOwnerResolvers(_ownerIdentifier2);\n\n this._ownersToPendingOperations[\"delete\"](_ownerIdentifier2);\n } // Update all ownerIdentifier that were updated by `pendingOperationIdentifier` but still\n // are affected by other operations\n\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n var _iterator5 = (0, _createForOfIteratorHelper2[\"default\"])(updatedOwnersIdentifier),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _ownerIdentifier3 = _step5.value;\n\n this._resolveOwnerResolvers(_ownerIdentifier3);\n } // Finally, remove pending operation identifier\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n this._pendingOperationsToOwners[\"delete\"](pendingOperationIdentifier);\n };\n\n _proto._resolveOwnerResolvers = function _resolveOwnerResolvers(ownerIdentifier) {\n var promiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);\n\n if (promiseEntry != null) {\n promiseEntry.resolve();\n }\n\n this._ownersToPendingPromise[\"delete\"](ownerIdentifier);\n };\n\n _proto.getPendingOperationsAffectingOwner = function getPendingOperationsAffectingOwner(owner) {\n var ownerIdentifier = owner.identifier;\n\n var pendingOperationsForOwner = this._ownersToPendingOperations.get(ownerIdentifier);\n\n if (pendingOperationsForOwner == null || pendingOperationsForOwner.size === 0) {\n return null;\n }\n\n var cachedPromiseEntry = this._ownersToPendingPromise.get(ownerIdentifier);\n\n if (cachedPromiseEntry != null) {\n return {\n promise: cachedPromiseEntry.promise,\n pendingOperations: cachedPromiseEntry.pendingOperations\n };\n }\n\n var resolve;\n var promise = new Promise(function (r) {\n resolve = r;\n });\n !(resolve != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayOperationTracker: Expected resolver to be defined. If you' + 'are seeing this, it is likely a bug in Relay.') : invariant(false) : void 0;\n var pendingOperations = Array.from(pendingOperationsForOwner.values());\n\n this._ownersToPendingPromise.set(ownerIdentifier, {\n promise: promise,\n resolve: resolve,\n pendingOperations: pendingOperations\n });\n\n return {\n promise: promise,\n pendingOperations: pendingOperations\n };\n };\n\n return RelayOperationTracker;\n}();\n\nmodule.exports = RelayOperationTracker;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar RelayRecordSource = require('./RelayRecordSource');\n\nvar UNPUBLISH_RECORD_SENTINEL = Object.freeze({\n __UNPUBLISH_RECORD_SENTINEL: true\n});\n/**\n * An implementation of MutableRecordSource that represents a base RecordSource\n * with optimistic updates stacked on top: records with optimistic updates\n * shadow the base version of the record rather than updating/replacing them.\n */\n\nvar RelayOptimisticRecordSource = /*#__PURE__*/function () {\n function RelayOptimisticRecordSource(base) {\n this._base = base;\n this._sink = RelayRecordSource.create();\n }\n\n var _proto = RelayOptimisticRecordSource.prototype;\n\n _proto.has = function has(dataID) {\n if (this._sink.has(dataID)) {\n var sinkRecord = this._sink.get(dataID);\n\n return sinkRecord !== UNPUBLISH_RECORD_SENTINEL;\n } else {\n return this._base.has(dataID);\n }\n };\n\n _proto.get = function get(dataID) {\n if (this._sink.has(dataID)) {\n var sinkRecord = this._sink.get(dataID);\n\n if (sinkRecord === UNPUBLISH_RECORD_SENTINEL) {\n return undefined;\n } else {\n return sinkRecord;\n }\n } else {\n return this._base.get(dataID);\n }\n };\n\n _proto.getStatus = function getStatus(dataID) {\n var record = this.get(dataID);\n\n if (record === undefined) {\n return 'UNKNOWN';\n } else if (record === null) {\n return 'NONEXISTENT';\n } else {\n return 'EXISTENT';\n }\n };\n\n _proto.clear = function clear() {\n this._base = RelayRecordSource.create();\n\n this._sink.clear();\n };\n\n _proto[\"delete\"] = function _delete(dataID) {\n this._sink[\"delete\"](dataID);\n };\n\n _proto.remove = function remove(dataID) {\n this._sink.set(dataID, UNPUBLISH_RECORD_SENTINEL);\n };\n\n _proto.set = function set(dataID, record) {\n this._sink.set(dataID, record);\n };\n\n _proto.getRecordIDs = function getRecordIDs() {\n return Object.keys(this.toJSON());\n };\n\n _proto.size = function size() {\n return Object.keys(this.toJSON()).length;\n };\n\n _proto.toJSON = function toJSON() {\n var _this = this;\n\n var merged = (0, _objectSpread2[\"default\"])({}, this._base.toJSON());\n\n this._sink.getRecordIDs().forEach(function (dataID) {\n var record = _this.get(dataID);\n\n if (record === undefined) {\n delete merged[dataID];\n } else {\n merged[dataID] = record;\n }\n });\n\n return merged;\n };\n\n return RelayOptimisticRecordSource;\n}();\n\nfunction create(base) {\n return new RelayOptimisticRecordSource(base);\n}\n\nmodule.exports = {\n create: create\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _global$ErrorUtils$ap, _global, _global$ErrorUtils;\n\nvar RelayReader = require('./RelayReader');\n\nvar RelayRecordSource = require('./RelayRecordSource');\n\nvar RelayRecordSourceMutator = require('../mutations/RelayRecordSourceMutator');\n\nvar RelayRecordSourceProxy = require('../mutations/RelayRecordSourceProxy');\n\nvar RelayRecordSourceSelectorProxy = require('../mutations/RelayRecordSourceSelectorProxy');\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar applyWithGuard = (_global$ErrorUtils$ap = (_global = global) === null || _global === void 0 ? void 0 : (_global$ErrorUtils = _global.ErrorUtils) === null || _global$ErrorUtils === void 0 ? void 0 : _global$ErrorUtils.applyWithGuard) !== null && _global$ErrorUtils$ap !== void 0 ? _global$ErrorUtils$ap : function (callback, context, args, onError, name) {\n return callback.apply(context, args);\n};\n/**\n * Coordinates the concurrent modification of a `Store` due to optimistic and\n * non-revertable client updates and server payloads:\n * - Applies optimistic updates.\n * - Reverts optimistic updates, rebasing any subsequent updates.\n * - Commits client updates (typically for client schema extensions).\n * - Commits server updates:\n * - Normalizes query/mutation/subscription responses.\n * - Executes handlers for \"handle\" fields.\n * - Reverts and reapplies pending optimistic updates.\n */\n\nvar RelayPublishQueue = /*#__PURE__*/function () {\n // True if the next `run()` should apply the backup and rerun all optimistic\n // updates performing a rebase.\n // Payloads to apply or Sources to publish to the store with the next `run()`.\n // Optimistic updaters to add with the next `run()`.\n // Optimistic updaters that are already added and might be rerun in order to\n // rebase them.\n // Garbage collection hold, should rerun gc on dispose\n function RelayPublishQueue(store, handlerProvider, getDataID) {\n this._hasStoreSnapshot = false;\n this._handlerProvider = handlerProvider || null;\n this._pendingBackupRebase = false;\n this._pendingData = new Set();\n this._pendingOptimisticUpdates = new Set();\n this._store = store;\n this._appliedOptimisticUpdates = new Set();\n this._gcHold = null;\n this._getDataID = getDataID;\n }\n /**\n * Schedule applying an optimistic updates on the next `run()`.\n */\n\n\n var _proto = RelayPublishQueue.prototype;\n\n _proto.applyUpdate = function applyUpdate(updater) {\n !(!this._appliedOptimisticUpdates.has(updater) && !this._pendingOptimisticUpdates.has(updater)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayPublishQueue: Cannot apply the same update function more than ' + 'once concurrently.') : invariant(false) : void 0;\n\n this._pendingOptimisticUpdates.add(updater);\n }\n /**\n * Schedule reverting an optimistic updates on the next `run()`.\n */\n ;\n\n _proto.revertUpdate = function revertUpdate(updater) {\n if (this._pendingOptimisticUpdates.has(updater)) {\n // Reverted before it was applied\n this._pendingOptimisticUpdates[\"delete\"](updater);\n } else if (this._appliedOptimisticUpdates.has(updater)) {\n this._pendingBackupRebase = true;\n\n this._appliedOptimisticUpdates[\"delete\"](updater);\n }\n }\n /**\n * Schedule a revert of all optimistic updates on the next `run()`.\n */\n ;\n\n _proto.revertAll = function revertAll() {\n this._pendingBackupRebase = true;\n\n this._pendingOptimisticUpdates.clear();\n\n this._appliedOptimisticUpdates.clear();\n }\n /**\n * Schedule applying a payload to the store on the next `run()`.\n */\n ;\n\n _proto.commitPayload = function commitPayload(operation, payload, updater) {\n this._pendingBackupRebase = true;\n\n this._pendingData.add({\n kind: 'payload',\n operation: operation,\n payload: payload,\n updater: updater\n });\n }\n /**\n * Schedule an updater to mutate the store on the next `run()` typically to\n * update client schema fields.\n */\n ;\n\n _proto.commitUpdate = function commitUpdate(updater) {\n this._pendingBackupRebase = true;\n\n this._pendingData.add({\n kind: 'updater',\n updater: updater\n });\n }\n /**\n * Schedule a publish to the store from the provided source on the next\n * `run()`. As an example, to update the store with substituted fields that\n * are missing in the store.\n */\n ;\n\n _proto.commitSource = function commitSource(source) {\n this._pendingBackupRebase = true;\n\n this._pendingData.add({\n kind: 'source',\n source: source\n });\n }\n /**\n * Execute all queued up operations from the other public methods.\n */\n ;\n\n _proto.run = function run(sourceOperation) {\n var runWillClearGcHold = this._appliedOptimisticUpdates === 0 && !!this._gcHold;\n var runIsANoop = // this._pendingBackupRebase is true if an applied optimistic\n // update has potentially been reverted or if this._pendingData is not empty.\n !this._pendingBackupRebase && this._pendingOptimisticUpdates.size === 0 && !runWillClearGcHold;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(!runIsANoop, 'RelayPublishQueue.run was called, but the call would have been a noop.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(this._isRunning !== true, 'A store update was detected within another store update. Please ' + \"make sure new store updates aren't being executed within an \" + 'updater function for a different update.') : void 0;\n this._isRunning = true;\n }\n\n if (runIsANoop) {\n if (process.env.NODE_ENV !== \"production\") {\n this._isRunning = false;\n }\n\n return [];\n }\n\n if (this._pendingBackupRebase) {\n if (this._hasStoreSnapshot) {\n this._store.restore();\n\n this._hasStoreSnapshot = false;\n }\n }\n\n var invalidatedStore = this._commitData();\n\n if (this._pendingOptimisticUpdates.size || this._pendingBackupRebase && this._appliedOptimisticUpdates.size) {\n if (!this._hasStoreSnapshot) {\n this._store.snapshot();\n\n this._hasStoreSnapshot = true;\n }\n\n this._applyUpdates();\n }\n\n this._pendingBackupRebase = false;\n\n if (this._appliedOptimisticUpdates.size > 0) {\n if (!this._gcHold) {\n this._gcHold = this._store.holdGC();\n }\n } else {\n if (this._gcHold) {\n this._gcHold.dispose();\n\n this._gcHold = null;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this._isRunning = false;\n }\n\n return this._store.notify(sourceOperation, invalidatedStore);\n }\n /**\n * _publishSourceFromPayload will return a boolean indicating if the\n * publish caused the store to be globally invalidated.\n */\n ;\n\n _proto._publishSourceFromPayload = function _publishSourceFromPayload(pendingPayload) {\n var _this = this;\n\n var payload = pendingPayload.payload,\n operation = pendingPayload.operation,\n updater = pendingPayload.updater;\n var source = payload.source,\n fieldPayloads = payload.fieldPayloads;\n var mutator = new RelayRecordSourceMutator(this._store.getSource(), source);\n var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID);\n\n if (fieldPayloads && fieldPayloads.length) {\n fieldPayloads.forEach(function (fieldPayload) {\n var handler = _this._handlerProvider && _this._handlerProvider(fieldPayload.handle);\n\n !handler ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a handler to be provided for ' + 'handle `%s`.', fieldPayload.handle) : invariant(false) : void 0;\n handler.update(recordSourceProxy, fieldPayload);\n });\n }\n\n if (updater) {\n var selector = operation.fragment;\n !(selector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayModernEnvironment: Expected a selector to be provided with updater function.') : invariant(false) : void 0;\n var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, selector);\n var selectorData = lookupSelector(source, selector);\n updater(recordSourceSelectorProxy, selectorData);\n }\n\n var idsMarkedForInvalidation = recordSourceProxy.getIDsMarkedForInvalidation();\n\n this._store.publish(source, idsMarkedForInvalidation);\n\n return recordSourceProxy.isStoreMarkedForInvalidation();\n }\n /**\n * _commitData will return a boolean indicating if any of\n * the pending commits caused the store to be globally invalidated.\n */\n ;\n\n _proto._commitData = function _commitData() {\n var _this2 = this;\n\n if (!this._pendingData.size) {\n return false;\n }\n\n var invalidatedStore = false;\n\n this._pendingData.forEach(function (data) {\n if (data.kind === 'payload') {\n var payloadInvalidatedStore = _this2._publishSourceFromPayload(data);\n\n invalidatedStore = invalidatedStore || payloadInvalidatedStore;\n } else if (data.kind === 'source') {\n var source = data.source;\n\n _this2._store.publish(source);\n } else {\n var updater = data.updater;\n var sink = RelayRecordSource.create();\n var mutator = new RelayRecordSourceMutator(_this2._store.getSource(), sink);\n var recordSourceProxy = new RelayRecordSourceProxy(mutator, _this2._getDataID);\n applyWithGuard(updater, null, [recordSourceProxy], null, 'RelayPublishQueue:commitData');\n invalidatedStore = invalidatedStore || recordSourceProxy.isStoreMarkedForInvalidation();\n var idsMarkedForInvalidation = recordSourceProxy.getIDsMarkedForInvalidation();\n\n _this2._store.publish(sink, idsMarkedForInvalidation);\n }\n });\n\n this._pendingData.clear();\n\n return invalidatedStore;\n }\n /**\n * Note that unlike _commitData, _applyUpdates will NOT return a boolean\n * indicating if the store was globally invalidated, since invalidating the\n * store during an optimistic update is a no-op.\n */\n ;\n\n _proto._applyUpdates = function _applyUpdates() {\n var _this3 = this;\n\n var sink = RelayRecordSource.create();\n var mutator = new RelayRecordSourceMutator(this._store.getSource(), sink);\n var recordSourceProxy = new RelayRecordSourceProxy(mutator, this._getDataID, this._handlerProvider);\n\n var processUpdate = function processUpdate(optimisticUpdate) {\n if (optimisticUpdate.storeUpdater) {\n var storeUpdater = optimisticUpdate.storeUpdater;\n applyWithGuard(storeUpdater, null, [recordSourceProxy], null, 'RelayPublishQueue:applyUpdates');\n } else {\n var operation = optimisticUpdate.operation,\n payload = optimisticUpdate.payload,\n updater = optimisticUpdate.updater;\n var source = payload.source,\n fieldPayloads = payload.fieldPayloads;\n\n if (source) {\n recordSourceProxy.publishSource(source, fieldPayloads);\n }\n\n if (updater) {\n var selectorData;\n\n if (source) {\n selectorData = lookupSelector(source, operation.fragment);\n }\n\n var recordSourceSelectorProxy = new RelayRecordSourceSelectorProxy(mutator, recordSourceProxy, operation.fragment);\n applyWithGuard(updater, null, [recordSourceSelectorProxy, selectorData], null, 'RelayPublishQueue:applyUpdates');\n }\n }\n }; // rerun all updaters in case we are running a rebase\n\n\n if (this._pendingBackupRebase && this._appliedOptimisticUpdates.size) {\n this._appliedOptimisticUpdates.forEach(processUpdate);\n } // apply any new updaters\n\n\n if (this._pendingOptimisticUpdates.size) {\n this._pendingOptimisticUpdates.forEach(function (optimisticUpdate) {\n processUpdate(optimisticUpdate);\n\n _this3._appliedOptimisticUpdates.add(optimisticUpdate);\n });\n\n this._pendingOptimisticUpdates.clear();\n }\n\n this._store.publish(sink);\n };\n\n return RelayPublishQueue;\n}();\n\nfunction lookupSelector(source, selector) {\n var selectorData = RelayReader.read(source, selector).data;\n\n if (process.env.NODE_ENV !== \"production\") {\n var deepFreeze = require('../util/deepFreeze');\n\n if (selectorData) {\n deepFreeze(selectorData);\n }\n }\n\n return selectorData;\n}\n\nmodule.exports = RelayPublishQueue;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar ClientID = require('./ClientID');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar invariant = require('invariant');\n\nvar _require = require('../util/RelayConcreteNode'),\n ACTOR_CHANGE = _require.ACTOR_CHANGE,\n CLIENT_EXTENSION = _require.CLIENT_EXTENSION,\n CONDITION = _require.CONDITION,\n DEFER = _require.DEFER,\n FLIGHT_FIELD = _require.FLIGHT_FIELD,\n FRAGMENT_SPREAD = _require.FRAGMENT_SPREAD,\n INLINE_DATA_FRAGMENT_SPREAD = _require.INLINE_DATA_FRAGMENT_SPREAD,\n INLINE_FRAGMENT = _require.INLINE_FRAGMENT,\n LINKED_FIELD = _require.LINKED_FIELD,\n MODULE_IMPORT = _require.MODULE_IMPORT,\n REQUIRED_FIELD = _require.REQUIRED_FIELD,\n RELAY_RESOLVER = _require.RELAY_RESOLVER,\n SCALAR_FIELD = _require.SCALAR_FIELD,\n STREAM = _require.STREAM;\n\nvar _require2 = require('./RelayStoreReactFlightUtils'),\n getReactFlightClientResponse = _require2.getReactFlightClientResponse;\n\nvar _require3 = require('./RelayStoreUtils'),\n FRAGMENTS_KEY = _require3.FRAGMENTS_KEY,\n FRAGMENT_OWNER_KEY = _require3.FRAGMENT_OWNER_KEY,\n FRAGMENT_PROP_NAME_KEY = _require3.FRAGMENT_PROP_NAME_KEY,\n ID_KEY = _require3.ID_KEY,\n IS_WITHIN_UNMATCHED_TYPE_REFINEMENT = _require3.IS_WITHIN_UNMATCHED_TYPE_REFINEMENT,\n MODULE_COMPONENT_KEY = _require3.MODULE_COMPONENT_KEY,\n ROOT_ID = _require3.ROOT_ID,\n getArgumentValues = _require3.getArgumentValues,\n getStorageKey = _require3.getStorageKey,\n getModuleComponentKey = _require3.getModuleComponentKey;\n\nvar _require4 = require('./ResolverCache'),\n NoopResolverCache = _require4.NoopResolverCache;\n\nvar _require5 = require('./ResolverFragments'),\n withResolverContext = _require5.withResolverContext;\n\nvar _require6 = require('./TypeID'),\n generateTypeID = _require6.generateTypeID;\n\nfunction read(recordSource, selector, resolverCache) {\n var reader = new RelayReader(recordSource, selector, resolverCache !== null && resolverCache !== void 0 ? resolverCache : new NoopResolverCache());\n return reader.read();\n}\n/**\n * @private\n */\n\n\nvar RelayReader = /*#__PURE__*/function () {\n function RelayReader(recordSource, selector, resolverCache) {\n this._isMissingData = false;\n this._isWithinUnmatchedTypeRefinement = false;\n this._missingRequiredFields = null;\n this._owner = selector.owner;\n this._recordSource = recordSource;\n this._seenRecords = new Set();\n this._selector = selector;\n this._variables = selector.variables;\n this._resolverCache = resolverCache;\n }\n\n var _proto = RelayReader.prototype;\n\n _proto.read = function read() {\n var _this$_selector = this._selector,\n node = _this$_selector.node,\n dataID = _this$_selector.dataID,\n isWithinUnmatchedTypeRefinement = _this$_selector.isWithinUnmatchedTypeRefinement;\n var abstractKey = node.abstractKey;\n\n var record = this._recordSource.get(dataID); // Relay historically allowed child fragments to be read even if the root object\n // did not match the type of the fragment: either the root object has a different\n // concrete type than the fragment (for concrete fragments) or the root object does\n // not conform to the interface/union for abstract fragments.\n // For suspense purposes, however, we want to accurately compute whether any data\n // is missing: but if the fragment type doesn't match (or a parent type didn't\n // match), then no data is expected to be present.\n // By default data is expected to be present unless this selector was read out\n // from within a non-matching type refinement in a parent fragment:\n\n\n var isDataExpectedToBePresent = !isWithinUnmatchedTypeRefinement; // If this is a concrete fragment and the concrete type of the record does not\n // match, then no data is expected to be present.\n\n if (isDataExpectedToBePresent && abstractKey == null && record != null) {\n var recordType = RelayModernRecord.getType(record);\n\n if (recordType !== node.type && // The root record type is a special `__Root` type and may not match the\n // type on the ast, so ignore type mismatches at the root.\n // We currently detect whether we're at the root by checking against ROOT_ID,\n // but this does not work for mutations/subscriptions which generate unique\n // root ids. This is acceptable in practice as we don't read data for mutations/\n // subscriptions in a situation where we would use isMissingData to decide whether\n // to suspend or not.\n // TODO T96653810: Correctly detect reading from root of mutation/subscription\n dataID !== ROOT_ID) {\n isDataExpectedToBePresent = false;\n }\n } // If this is an abstract fragment (and the precise refinement GK is enabled)\n // then data is only expected to be present if the record type is known to\n // implement the interface. If we aren't sure whether the record implements\n // the interface, that itself constitutes \"expected\" data being missing.\n\n\n if (isDataExpectedToBePresent && abstractKey != null && record != null) {\n var _recordType = RelayModernRecord.getType(record);\n\n var typeID = generateTypeID(_recordType);\n\n var typeRecord = this._recordSource.get(typeID);\n\n var implementsInterface = typeRecord != null ? RelayModernRecord.getValue(typeRecord, abstractKey) : null;\n\n if (implementsInterface === false) {\n // Type known to not implement the interface\n isDataExpectedToBePresent = false;\n } else if (implementsInterface == null) {\n // Don't know if the type implements the interface or not\n this._isMissingData = true;\n }\n }\n\n this._isWithinUnmatchedTypeRefinement = !isDataExpectedToBePresent;\n\n var data = this._traverse(node, dataID, null);\n\n return {\n data: data,\n isMissingData: this._isMissingData && isDataExpectedToBePresent,\n seenRecords: this._seenRecords,\n selector: this._selector,\n missingRequiredFields: this._missingRequiredFields\n };\n };\n\n _proto._traverse = function _traverse(node, dataID, prevData) {\n var record = this._recordSource.get(dataID);\n\n this._seenRecords.add(dataID);\n\n if (record == null) {\n if (record === undefined) {\n this._isMissingData = true;\n }\n\n return record;\n }\n\n var data = prevData || {};\n\n var hadRequiredData = this._traverseSelections(node.selections, record, data);\n\n return hadRequiredData ? data : null;\n };\n\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n\n return this._variables[name];\n };\n\n _proto._maybeReportUnexpectedNull = function _maybeReportUnexpectedNull(fieldPath, action, record) {\n var _this$_missingRequire;\n\n if (((_this$_missingRequire = this._missingRequiredFields) === null || _this$_missingRequire === void 0 ? void 0 : _this$_missingRequire.action) === 'THROW') {\n // Chained @required directives may cause a parent `@required(action:\n // THROW)` field to become null, so the first missing field we\n // encounter is likely to be the root cause of the error.\n return;\n }\n\n var owner = this._selector.node.name;\n\n switch (action) {\n case 'THROW':\n this._missingRequiredFields = {\n action: action,\n field: {\n path: fieldPath,\n owner: owner\n }\n };\n return;\n\n case 'LOG':\n if (this._missingRequiredFields == null) {\n this._missingRequiredFields = {\n action: action,\n fields: []\n };\n }\n\n this._missingRequiredFields.fields.push({\n path: fieldPath,\n owner: owner\n });\n\n return;\n\n default:\n action;\n }\n };\n\n _proto._traverseSelections = function _traverseSelections(selections, record, data)\n /* had all expected data */\n {\n for (var i = 0; i < selections.length; i++) {\n var selection = selections[i];\n\n switch (selection.kind) {\n case REQUIRED_FIELD:\n !RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Encountered a `@required` directive at path \"%s\" in `%s` without the `ENABLE_REQUIRED_DIRECTIVES` feature flag enabled.', selection.path, this._selector.node.name) : invariant(false) : void 0;\n\n var fieldValue = this._readRequiredField(selection, record, data);\n\n if (fieldValue == null) {\n var action = selection.action;\n\n if (action !== 'NONE') {\n this._maybeReportUnexpectedNull(selection.path, action, record);\n } // We are going to throw, or our parent is going to get nulled out.\n // Either way, sibling values are going to be ignored, so we can\n // bail early here as an optimization.\n\n\n return false;\n }\n\n break;\n\n case SCALAR_FIELD:\n this._readScalar(selection, record, data);\n\n break;\n\n case LINKED_FIELD:\n if (selection.plural) {\n this._readPluralLink(selection, record, data);\n } else {\n this._readLink(selection, record, data);\n }\n\n break;\n\n case CONDITION:\n var conditionValue = Boolean(this._getVariableValue(selection.condition));\n\n if (conditionValue === selection.passingValue) {\n var hasExpectedData = this._traverseSelections(selection.selections, record, data);\n\n if (!hasExpectedData) {\n return false;\n }\n }\n\n break;\n\n case INLINE_FRAGMENT:\n {\n var abstractKey = selection.abstractKey;\n\n if (abstractKey == null) {\n // concrete type refinement: only read data if the type exactly matches\n var typeName = RelayModernRecord.getType(record);\n\n if (typeName != null && typeName === selection.type) {\n var _hasExpectedData = this._traverseSelections(selection.selections, record, data);\n\n if (!_hasExpectedData) {\n return false;\n }\n }\n } else {\n // Similar to the logic in read(): data is only expected to be present\n // if the record is known to conform to the interface. If we don't know\n // whether the type conforms or not, that constitutes missing data.\n // store flags to reset after reading\n var parentIsMissingData = this._isMissingData;\n var parentIsWithinUnmatchedTypeRefinement = this._isWithinUnmatchedTypeRefinement;\n\n var _typeName = RelayModernRecord.getType(record);\n\n var typeID = generateTypeID(_typeName);\n\n var typeRecord = this._recordSource.get(typeID);\n\n var implementsInterface = typeRecord != null ? RelayModernRecord.getValue(typeRecord, abstractKey) : null;\n this._isWithinUnmatchedTypeRefinement = parentIsWithinUnmatchedTypeRefinement || implementsInterface === false;\n\n this._traverseSelections(selection.selections, record, data);\n\n this._isWithinUnmatchedTypeRefinement = parentIsWithinUnmatchedTypeRefinement;\n\n if (implementsInterface === false) {\n // Type known to not implement the interface, no data expected\n this._isMissingData = parentIsMissingData;\n } else if (implementsInterface == null) {\n // Don't know if the type implements the interface or not\n this._isMissingData = true;\n }\n }\n\n break;\n }\n\n case RELAY_RESOLVER:\n {\n if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n throw new Error('Relay Resolver fields are not yet supported.');\n }\n\n this._readResolverField(selection, record, data);\n\n break;\n }\n\n case FRAGMENT_SPREAD:\n this._createFragmentPointer(selection, record, data);\n\n break;\n\n case MODULE_IMPORT:\n this._readModuleImport(selection, record, data);\n\n break;\n\n case INLINE_DATA_FRAGMENT_SPREAD:\n this._createInlineDataOrResolverFragmentPointer(selection, record, data);\n\n break;\n\n case DEFER:\n case CLIENT_EXTENSION:\n {\n var isMissingData = this._isMissingData;\n\n var _hasExpectedData2 = this._traverseSelections(selection.selections, record, data);\n\n this._isMissingData = isMissingData;\n\n if (!_hasExpectedData2) {\n return false;\n }\n\n break;\n }\n\n case STREAM:\n {\n var _hasExpectedData3 = this._traverseSelections(selection.selections, record, data);\n\n if (!_hasExpectedData3) {\n return false;\n }\n\n break;\n }\n\n case FLIGHT_FIELD:\n if (RelayFeatureFlags.ENABLE_REACT_FLIGHT_COMPONENT_FIELD) {\n this._readFlightField(selection, record, data);\n } else {\n throw new Error('Flight fields are not yet supported.');\n }\n\n break;\n\n case ACTOR_CHANGE:\n this._readActorChange(selection, record, data);\n\n break;\n\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n }\n\n return true;\n };\n\n _proto._readRequiredField = function _readRequiredField(selection, record, data) {\n switch (selection.field.kind) {\n case SCALAR_FIELD:\n return this._readScalar(selection.field, record, data);\n\n case LINKED_FIELD:\n if (selection.field.plural) {\n return this._readPluralLink(selection.field, record, data);\n } else {\n return this._readLink(selection.field, record, data);\n }\n\n case RELAY_RESOLVER:\n if (!RelayFeatureFlags.ENABLE_RELAY_RESOLVERS) {\n throw new Error('Relay Resolver fields are not yet supported.');\n }\n\n this._readResolverField(selection.field, record, data);\n\n break;\n\n default:\n selection.field.kind;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n };\n\n _proto._readResolverField = function _readResolverField(field, record, data) {\n var _this = this;\n\n var resolverModule = field.resolverModule,\n fragment = field.fragment;\n var storageKey = getStorageKey(field, this._variables);\n var resolverID = ClientID.generateClientID(RelayModernRecord.getDataID(record), storageKey); // Found when reading the resolver fragment, which can happen either when\n // evaluating the resolver and it calls readFragment, or when checking if the\n // inputs have changed since a previous evaluation:\n\n var fragmentValue;\n var fragmentReaderSelector;\n var fragmentSeenRecordIDs = new Set();\n\n var getDataForResolverFragment = function getDataForResolverFragment(singularReaderSelector) {\n if (fragmentValue != null) {\n // It was already read when checking for input staleness; no need to read it again.\n // Note that the variables like fragmentSeenRecordIDs in the outer closure will have\n // already been set and will still be used in this case.\n return fragmentValue;\n }\n\n fragmentReaderSelector = singularReaderSelector;\n var existingSeenRecords = _this._seenRecords;\n\n try {\n var _resolverFragmentData;\n\n _this._seenRecords = fragmentSeenRecordIDs;\n var resolverFragmentData = {};\n\n _this._createInlineDataOrResolverFragmentPointer(singularReaderSelector.node, record, resolverFragmentData);\n\n fragmentValue = (_resolverFragmentData = resolverFragmentData[FRAGMENTS_KEY]) === null || _resolverFragmentData === void 0 ? void 0 : _resolverFragmentData[fragment.name];\n !(typeof fragmentValue === 'object' && fragmentValue !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Expected reader data to contain a __fragments property with a property for the fragment named \".concat(fragment.name, \", but it is missing.\")) : invariant(false) : void 0;\n return fragmentValue;\n } finally {\n _this._seenRecords = existingSeenRecords;\n }\n };\n\n var resolverContext = {\n getDataForResolverFragment: getDataForResolverFragment\n };\n\n var _this$_resolverCache$ = this._resolverCache.readFromCacheOrEvaluate(record, field, this._variables, function () {\n var key = {\n __id: RelayModernRecord.getDataID(record),\n __fragmentOwner: _this._owner,\n __fragments: (0, _defineProperty2[\"default\"])({}, fragment.name, {})\n };\n return withResolverContext(resolverContext, function () {\n // $FlowFixMe[prop-missing] - resolver module's type signature is a lie\n var resolverResult = resolverModule(key);\n return {\n resolverResult: resolverResult,\n fragmentValue: fragmentValue,\n resolverID: resolverID,\n seenRecordIDs: fragmentSeenRecordIDs,\n readerSelector: fragmentReaderSelector\n };\n });\n }, getDataForResolverFragment),\n result = _this$_resolverCache$[0],\n seenRecord = _this$_resolverCache$[1];\n\n if (seenRecord != null) {\n this._seenRecords.add(seenRecord);\n }\n\n data[storageKey] = result;\n return result;\n };\n\n _proto._readFlightField = function _readFlightField(field, record, data) {\n var _field$alias;\n\n var applicationName = (_field$alias = field.alias) !== null && _field$alias !== void 0 ? _field$alias : field.name;\n var storageKey = getStorageKey(field, this._variables);\n var reactFlightClientResponseRecordID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n\n if (reactFlightClientResponseRecordID == null) {\n data[applicationName] = reactFlightClientResponseRecordID;\n\n if (reactFlightClientResponseRecordID === undefined) {\n this._isMissingData = true;\n }\n\n return reactFlightClientResponseRecordID;\n }\n\n var reactFlightClientResponseRecord = this._recordSource.get(reactFlightClientResponseRecordID);\n\n this._seenRecords.add(reactFlightClientResponseRecordID);\n\n if (reactFlightClientResponseRecord == null) {\n data[applicationName] = reactFlightClientResponseRecord;\n\n if (reactFlightClientResponseRecord === undefined) {\n this._isMissingData = true;\n }\n\n return reactFlightClientResponseRecord;\n }\n\n var clientResponse = getReactFlightClientResponse(reactFlightClientResponseRecord);\n data[applicationName] = clientResponse;\n return clientResponse;\n };\n\n _proto._readScalar = function _readScalar(field, record, data) {\n var _field$alias2;\n\n var applicationName = (_field$alias2 = field.alias) !== null && _field$alias2 !== void 0 ? _field$alias2 : field.name;\n var storageKey = getStorageKey(field, this._variables);\n var value = RelayModernRecord.getValue(record, storageKey);\n\n if (value === undefined) {\n this._isMissingData = true;\n }\n\n data[applicationName] = value;\n return value;\n };\n\n _proto._readLink = function _readLink(field, record, data) {\n var _field$alias3;\n\n var applicationName = (_field$alias3 = field.alias) !== null && _field$alias3 !== void 0 ? _field$alias3 : field.name;\n var storageKey = getStorageKey(field, this._variables);\n var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n\n if (linkedID == null) {\n data[applicationName] = linkedID;\n\n if (linkedID === undefined) {\n this._isMissingData = true;\n }\n\n return linkedID;\n }\n\n var prevData = data[applicationName];\n !(prevData == null || typeof prevData === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0; // $FlowFixMe[incompatible-variance]\n\n var value = this._traverse(field, linkedID, prevData);\n\n data[applicationName] = value;\n return value;\n };\n\n _proto._readActorChange = function _readActorChange(field, record, data) {\n var _field$alias4;\n\n var applicationName = (_field$alias4 = field.alias) !== null && _field$alias4 !== void 0 ? _field$alias4 : field.name;\n var storageKey = getStorageKey(field, this._variables);\n var externalRef = RelayModernRecord.getActorLinkedRecordID(record, storageKey);\n\n if (externalRef == null) {\n data[applicationName] = externalRef;\n\n if (externalRef === undefined) {\n this._isMissingData = true;\n }\n\n return data[applicationName];\n }\n\n var actorIdentifier = externalRef[0],\n dataID = externalRef[1];\n var fragmentRef = {};\n\n this._createFragmentPointer(field.fragmentSpread, {\n __id: dataID\n }, fragmentRef);\n\n data[applicationName] = {\n __fragmentRef: fragmentRef,\n __viewer: actorIdentifier\n };\n return data[applicationName];\n };\n\n _proto._readPluralLink = function _readPluralLink(field, record, data) {\n var _this2 = this;\n\n var _field$alias5;\n\n var applicationName = (_field$alias5 = field.alias) !== null && _field$alias5 !== void 0 ? _field$alias5 : field.name;\n var storageKey = getStorageKey(field, this._variables);\n var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n\n if (linkedIDs == null) {\n data[applicationName] = linkedIDs;\n\n if (linkedIDs === undefined) {\n this._isMissingData = true;\n }\n\n return linkedIDs;\n }\n\n var prevData = data[applicationName];\n !(prevData == null || Array.isArray(prevData)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an array, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevData) : invariant(false) : void 0;\n var linkedArray = prevData || [];\n linkedIDs.forEach(function (linkedID, nextIndex) {\n if (linkedID == null) {\n if (linkedID === undefined) {\n _this2._isMissingData = true;\n } // $FlowFixMe[cannot-write]\n\n\n linkedArray[nextIndex] = linkedID;\n return;\n }\n\n var prevItem = linkedArray[nextIndex];\n !(prevItem == null || typeof prevItem === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader(): Expected data for field `%s` on record `%s` ' + 'to be an object, got `%s`.', applicationName, RelayModernRecord.getDataID(record), prevItem) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n // $FlowFixMe[incompatible-variance]\n\n linkedArray[nextIndex] = _this2._traverse(field, linkedID, prevItem);\n });\n data[applicationName] = linkedArray;\n return linkedArray;\n }\n /**\n * Reads a ReaderModuleImport, which was generated from using the @module\n * directive.\n */\n ;\n\n _proto._readModuleImport = function _readModuleImport(moduleImport, record, data) {\n // Determine the component module from the store: if the field is missing\n // it means we don't know what component to render the match with.\n var componentKey = getModuleComponentKey(moduleImport.documentName);\n var component = RelayModernRecord.getValue(record, componentKey);\n\n if (component == null) {\n if (component === undefined) {\n this._isMissingData = true;\n }\n\n return;\n } // Otherwise, read the fragment and module associated to the concrete\n // type, and put that data with the result:\n // - For the matched fragment, create the relevant fragment pointer and add\n // the expected fragmentPropName\n // - For the matched module, create a reference to the module\n\n\n this._createFragmentPointer({\n kind: 'FragmentSpread',\n name: moduleImport.fragmentName,\n args: moduleImport.args\n }, record, data);\n\n data[FRAGMENT_PROP_NAME_KEY] = moduleImport.fragmentPropName;\n data[MODULE_COMPONENT_KEY] = component;\n };\n\n _proto._createFragmentPointer = function _createFragmentPointer(fragmentSpread, record, data) {\n var fragmentPointers = data[FRAGMENTS_KEY];\n\n if (fragmentPointers == null) {\n fragmentPointers = data[FRAGMENTS_KEY] = {};\n }\n\n !(typeof fragmentPointers === 'object' && fragmentPointers != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader: Expected fragment spread data to be an object, got `%s`.', fragmentPointers) : invariant(false) : void 0;\n\n if (data[ID_KEY] == null) {\n data[ID_KEY] = RelayModernRecord.getDataID(record);\n } // $FlowFixMe[cannot-write] - writing into read-only field\n\n\n fragmentPointers[fragmentSpread.name] = fragmentSpread.args ? getArgumentValues(fragmentSpread.args, this._variables) : {};\n data[FRAGMENT_OWNER_KEY] = this._owner;\n data[IS_WITHIN_UNMATCHED_TYPE_REFINEMENT] = this._isWithinUnmatchedTypeRefinement;\n };\n\n _proto._createInlineDataOrResolverFragmentPointer = function _createInlineDataOrResolverFragmentPointer(fragmentSpreadOrFragment, record, data) {\n var fragmentPointers = data[FRAGMENTS_KEY];\n\n if (fragmentPointers == null) {\n fragmentPointers = data[FRAGMENTS_KEY] = {};\n }\n\n !(typeof fragmentPointers === 'object' && fragmentPointers != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReader: Expected fragment spread data to be an object, got `%s`.', fragmentPointers) : invariant(false) : void 0;\n\n if (data[ID_KEY] == null) {\n data[ID_KEY] = RelayModernRecord.getDataID(record);\n }\n\n var inlineData = {};\n\n this._traverseSelections(fragmentSpreadOrFragment.selections, record, inlineData); // $FlowFixMe[cannot-write] - writing into read-only field\n\n\n fragmentPointers[fragmentSpreadOrFragment.name] = inlineData;\n };\n\n return RelayReader;\n}();\n\nmodule.exports = {\n read: read\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar RelayRecordState = require('./RelayRecordState');\n\nvar EXISTENT = RelayRecordState.EXISTENT,\n NONEXISTENT = RelayRecordState.NONEXISTENT,\n UNKNOWN = RelayRecordState.UNKNOWN;\n/**\n * An implementation of the `MutableRecordSource` interface (defined in\n * `RelayStoreTypes`) that holds all records in memory (JS Map).\n */\n\nvar RelayRecordSource = /*#__PURE__*/function () {\n function RelayRecordSource(records) {\n var _this = this;\n\n this._records = new Map();\n\n if (records != null) {\n Object.keys(records).forEach(function (key) {\n _this._records.set(key, records[key]);\n });\n }\n }\n\n RelayRecordSource.create = function create(records) {\n return new RelayRecordSource(records);\n };\n\n var _proto = RelayRecordSource.prototype;\n\n _proto.clear = function clear() {\n this._records = new Map();\n };\n\n _proto[\"delete\"] = function _delete(dataID) {\n this._records.set(dataID, null);\n };\n\n _proto.get = function get(dataID) {\n return this._records.get(dataID);\n };\n\n _proto.getRecordIDs = function getRecordIDs() {\n return Array.from(this._records.keys());\n };\n\n _proto.getStatus = function getStatus(dataID) {\n if (!this._records.has(dataID)) {\n return UNKNOWN;\n }\n\n return this._records.get(dataID) == null ? NONEXISTENT : EXISTENT;\n };\n\n _proto.has = function has(dataID) {\n return this._records.has(dataID);\n };\n\n _proto.remove = function remove(dataID) {\n this._records[\"delete\"](dataID);\n };\n\n _proto.set = function set(dataID, record) {\n this._records.set(dataID, record);\n };\n\n _proto.size = function size() {\n return this._records.size;\n };\n\n _proto.toJSON = function toJSON() {\n var obj = {};\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._records),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n obj[key] = value;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return obj;\n };\n\n return RelayRecordSource;\n}();\n\nmodule.exports = RelayRecordSource;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayRecordState = {\n /**\n * Record exists (either fetched from the server or produced by a local,\n * optimistic update).\n */\n EXISTENT: 'EXISTENT',\n\n /**\n * Record is known not to exist (either as the result of a mutation, or\n * because the server returned `null` when queried for the record).\n */\n NONEXISTENT: 'NONEXISTENT',\n\n /**\n * Record State is unknown because it has not yet been fetched from the\n * server.\n */\n UNKNOWN: 'UNKNOWN'\n};\nmodule.exports = RelayRecordState;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar RelayStoreReactFlightUtils = require('./RelayStoreReactFlightUtils');\n\nvar RelayStoreUtils = require('./RelayStoreUtils');\n\nvar cloneRelayHandleSourceField = require('./cloneRelayHandleSourceField');\n\nvar getOperation = require('../util/getOperation');\n\nvar invariant = require('invariant');\n\nvar _require = require('./RelayConcreteVariables'),\n getLocalVariables = _require.getLocalVariables;\n\nvar _require2 = require('./TypeID'),\n generateTypeID = _require2.generateTypeID;\n\nvar ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,\n CONDITION = RelayConcreteNode.CONDITION,\n CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,\n CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,\n DEFER = RelayConcreteNode.DEFER,\n FLIGHT_FIELD = RelayConcreteNode.FLIGHT_FIELD,\n FRAGMENT_SPREAD = RelayConcreteNode.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = RelayConcreteNode.INLINE_FRAGMENT,\n LINKED_FIELD = RelayConcreteNode.LINKED_FIELD,\n MODULE_IMPORT = RelayConcreteNode.MODULE_IMPORT,\n LINKED_HANDLE = RelayConcreteNode.LINKED_HANDLE,\n SCALAR_FIELD = RelayConcreteNode.SCALAR_FIELD,\n SCALAR_HANDLE = RelayConcreteNode.SCALAR_HANDLE,\n STREAM = RelayConcreteNode.STREAM,\n TYPE_DISCRIMINATOR = RelayConcreteNode.TYPE_DISCRIMINATOR;\nvar ROOT_ID = RelayStoreUtils.ROOT_ID,\n getStorageKey = RelayStoreUtils.getStorageKey,\n getModuleOperationKey = RelayStoreUtils.getModuleOperationKey;\n\nfunction mark(recordSource, selector, references, operationLoader, shouldProcessClientComponents) {\n var dataID = selector.dataID,\n node = selector.node,\n variables = selector.variables;\n var marker = new RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents);\n marker.mark(node, dataID);\n}\n/**\n * @private\n */\n\n\nvar RelayReferenceMarker = /*#__PURE__*/function () {\n function RelayReferenceMarker(recordSource, variables, references, operationLoader, shouldProcessClientComponents) {\n this._operationLoader = operationLoader !== null && operationLoader !== void 0 ? operationLoader : null;\n this._operationName = null;\n this._recordSource = recordSource;\n this._references = references;\n this._variables = variables;\n this._shouldProcessClientComponents = shouldProcessClientComponents;\n }\n\n var _proto = RelayReferenceMarker.prototype;\n\n _proto.mark = function mark(node, dataID) {\n if (node.kind === 'Operation' || node.kind === 'SplitOperation') {\n this._operationName = node.name;\n }\n\n this._traverse(node, dataID);\n };\n\n _proto._traverse = function _traverse(node, dataID) {\n this._references.add(dataID);\n\n var record = this._recordSource.get(dataID);\n\n if (record == null) {\n return;\n }\n\n this._traverseSelections(node.selections, record);\n };\n\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n\n return this._variables[name];\n };\n\n _proto._traverseSelections = function _traverseSelections(selections, record) {\n var _this = this;\n\n selections.forEach(function (selection) {\n /* eslint-disable no-fallthrough */\n switch (selection.kind) {\n case ACTOR_CHANGE:\n // TODO: T89695151 Support multi-actor record sources in RelayReferenceMarker.js\n _this._traverseLink(selection.linkedField, record);\n\n break;\n\n case LINKED_FIELD:\n if (selection.plural) {\n _this._traversePluralLink(selection, record);\n } else {\n _this._traverseLink(selection, record);\n }\n\n break;\n\n case CONDITION:\n var conditionValue = Boolean(_this._getVariableValue(selection.condition));\n\n if (conditionValue === selection.passingValue) {\n _this._traverseSelections(selection.selections, record);\n }\n\n break;\n\n case INLINE_FRAGMENT:\n if (selection.abstractKey == null) {\n var typeName = RelayModernRecord.getType(record);\n\n if (typeName != null && typeName === selection.type) {\n _this._traverseSelections(selection.selections, record);\n }\n } else {\n var _typeName = RelayModernRecord.getType(record);\n\n var typeID = generateTypeID(_typeName);\n\n _this._references.add(typeID);\n\n _this._traverseSelections(selection.selections, record);\n }\n\n break;\n\n case FRAGMENT_SPREAD:\n var prevVariables = _this._variables;\n _this._variables = getLocalVariables(_this._variables, selection.fragment.argumentDefinitions, selection.args);\n\n _this._traverseSelections(selection.fragment.selections, record);\n\n _this._variables = prevVariables;\n break;\n\n case LINKED_HANDLE:\n // The selections for a \"handle\" field are the same as those of the\n // original linked field where the handle was applied. Reference marking\n // therefore requires traversing the original field selections against\n // the synthesized client field.\n //\n // TODO: Instead of finding the source field in `selections`, change\n // the concrete structure to allow shared subtrees, and have the linked\n // handle directly refer to the same selections as the LinkedField that\n // it was split from.\n var handleField = cloneRelayHandleSourceField(selection, selections, _this._variables);\n\n if (handleField.plural) {\n _this._traversePluralLink(handleField, record);\n } else {\n _this._traverseLink(handleField, record);\n }\n\n break;\n\n case DEFER:\n case STREAM:\n _this._traverseSelections(selection.selections, record);\n\n break;\n\n case SCALAR_FIELD:\n case SCALAR_HANDLE:\n break;\n\n case TYPE_DISCRIMINATOR:\n {\n var _typeName2 = RelayModernRecord.getType(record);\n\n var _typeID = generateTypeID(_typeName2);\n\n _this._references.add(_typeID);\n\n break;\n }\n\n case MODULE_IMPORT:\n _this._traverseModuleImport(selection, record);\n\n break;\n\n case CLIENT_EXTENSION:\n _this._traverseSelections(selection.selections, record);\n\n break;\n\n case FLIGHT_FIELD:\n if (RelayFeatureFlags.ENABLE_REACT_FLIGHT_COMPONENT_FIELD) {\n _this._traverseFlightField(selection, record);\n } else {\n throw new Error('Flight fields are not yet supported.');\n }\n\n break;\n\n case CLIENT_COMPONENT:\n if (_this._shouldProcessClientComponents === false) {\n break;\n }\n\n _this._traverseSelections(selection.fragment.selections, record);\n\n break;\n\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker: Unknown AST node `%s`.', selection) : invariant(false) : void 0;\n }\n });\n };\n\n _proto._traverseModuleImport = function _traverseModuleImport(moduleImport, record) {\n var _this$_operationName;\n\n var operationLoader = this._operationLoader;\n !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReferenceMarker: Expected an operationLoader to be configured when using `@module`. ' + 'Could not load fragment `%s` in operation `%s`.', moduleImport.fragmentName, (_this$_operationName = this._operationName) !== null && _this$_operationName !== void 0 ? _this$_operationName : '(unknown)') : invariant(false) : void 0;\n var operationKey = getModuleOperationKey(moduleImport.documentName);\n var operationReference = RelayModernRecord.getValue(record, operationKey);\n\n if (operationReference == null) {\n return;\n }\n\n var normalizationRootNode = operationLoader.get(operationReference);\n\n if (normalizationRootNode != null) {\n var operation = getOperation(normalizationRootNode);\n var prevVariables = this._variables;\n this._variables = getLocalVariables(this._variables, operation.argumentDefinitions, moduleImport.args);\n\n this._traverseSelections(operation.selections, record);\n\n this._variables = prevVariables;\n } // Otherwise, if the operation is not available, we assume that the data\n // cannot have been processed yet and therefore isn't in the store to\n // begin with.\n\n };\n\n _proto._traverseLink = function _traverseLink(field, record) {\n var storageKey = getStorageKey(field, this._variables);\n var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n\n if (linkedID == null) {\n return;\n }\n\n this._traverse(field, linkedID);\n };\n\n _proto._traversePluralLink = function _traversePluralLink(field, record) {\n var _this2 = this;\n\n var storageKey = getStorageKey(field, this._variables);\n var linkedIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n\n if (linkedIDs == null) {\n return;\n }\n\n linkedIDs.forEach(function (linkedID) {\n if (linkedID != null) {\n _this2._traverse(field, linkedID);\n }\n });\n };\n\n _proto._traverseFlightField = function _traverseFlightField(field, record) {\n var storageKey = getStorageKey(field, this._variables);\n var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n\n if (linkedID == null) {\n return;\n }\n\n this._references.add(linkedID);\n\n var reactFlightClientResponseRecord = this._recordSource.get(linkedID);\n\n if (reactFlightClientResponseRecord == null) {\n return;\n }\n\n var reachableExecutableDefinitions = RelayModernRecord.getValue(reactFlightClientResponseRecord, RelayStoreReactFlightUtils.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY);\n\n if (!Array.isArray(reachableExecutableDefinitions)) {\n return;\n }\n\n var operationLoader = this._operationLoader;\n !(operationLoader !== null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'DataChecker: Expected an operationLoader to be configured when using ' + 'React Flight') : invariant(false) : void 0; // In Flight, the variables that are in scope for reachable executable\n // definitions aren't the same as what's in scope for the outer query.\n\n var prevVariables = this._variables; // $FlowFixMe[incompatible-cast]\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(reachableExecutableDefinitions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var definition = _step.value;\n this._variables = definition.variables;\n var operationReference = definition.module;\n var normalizationRootNode = operationLoader.get(operationReference);\n\n if (normalizationRootNode != null) {\n var operation = getOperation(normalizationRootNode);\n\n this._traverse(operation, ROOT_ID);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._variables = prevVariables;\n };\n\n return RelayReferenceMarker;\n}();\n\nmodule.exports = {\n mark: mark\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('../multi-actor-environment/ActorUtils'),\n ACTOR_IDENTIFIER_FIELD_NAME = _require.ACTOR_IDENTIFIER_FIELD_NAME,\n getActorIdentifierFromPayload = _require.getActorIdentifierFromPayload;\n\nvar _require2 = require('../util/RelayConcreteNode'),\n ACTOR_CHANGE = _require2.ACTOR_CHANGE,\n CONDITION = _require2.CONDITION,\n CLIENT_COMPONENT = _require2.CLIENT_COMPONENT,\n CLIENT_EXTENSION = _require2.CLIENT_EXTENSION,\n DEFER = _require2.DEFER,\n FLIGHT_FIELD = _require2.FLIGHT_FIELD,\n FRAGMENT_SPREAD = _require2.FRAGMENT_SPREAD,\n INLINE_FRAGMENT = _require2.INLINE_FRAGMENT,\n LINKED_FIELD = _require2.LINKED_FIELD,\n LINKED_HANDLE = _require2.LINKED_HANDLE,\n MODULE_IMPORT = _require2.MODULE_IMPORT,\n SCALAR_FIELD = _require2.SCALAR_FIELD,\n SCALAR_HANDLE = _require2.SCALAR_HANDLE,\n STREAM = _require2.STREAM,\n TYPE_DISCRIMINATOR = _require2.TYPE_DISCRIMINATOR;\n\nvar _require3 = require('./ClientID'),\n generateClientID = _require3.generateClientID,\n isClientID = _require3.isClientID;\n\nvar _require4 = require('./RelayConcreteVariables'),\n getLocalVariables = _require4.getLocalVariables;\n\nvar _require5 = require('./RelayModernSelector'),\n createNormalizationSelector = _require5.createNormalizationSelector;\n\nvar _require6 = require('./RelayStoreReactFlightUtils'),\n refineToReactFlightPayloadData = _require6.refineToReactFlightPayloadData,\n REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = _require6.REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,\n REACT_FLIGHT_TREE_STORAGE_KEY = _require6.REACT_FLIGHT_TREE_STORAGE_KEY,\n REACT_FLIGHT_TYPE_NAME = _require6.REACT_FLIGHT_TYPE_NAME;\n\nvar _require7 = require('./RelayStoreUtils'),\n getArgumentValues = _require7.getArgumentValues,\n getHandleStorageKey = _require7.getHandleStorageKey,\n getModuleComponentKey = _require7.getModuleComponentKey,\n getModuleOperationKey = _require7.getModuleOperationKey,\n getStorageKey = _require7.getStorageKey,\n TYPENAME_KEY = _require7.TYPENAME_KEY,\n ROOT_ID = _require7.ROOT_ID,\n ROOT_TYPE = _require7.ROOT_TYPE;\n\nvar _require8 = require('./TypeID'),\n generateTypeID = _require8.generateTypeID,\n TYPE_SCHEMA_TYPE = _require8.TYPE_SCHEMA_TYPE;\n\n/**\n * Normalizes the results of a query and standard GraphQL response, writing the\n * normalized records/fields into the given MutableRecordSource.\n */\nfunction normalize(recordSource, selector, response, options) {\n var dataID = selector.dataID,\n node = selector.node,\n variables = selector.variables;\n var normalizer = new RelayResponseNormalizer(recordSource, variables, options);\n return normalizer.normalizeResponse(node, dataID, response);\n}\n/**\n * @private\n *\n * Helper for handling payloads.\n */\n\n\nvar RelayResponseNormalizer = /*#__PURE__*/function () {\n function RelayResponseNormalizer(recordSource, variables, options) {\n this._actorIdentifier = options.actorIdentifier;\n this._getDataId = options.getDataID;\n this._handleFieldPayloads = [];\n this._treatMissingFieldsAsNull = options.treatMissingFieldsAsNull;\n this._incrementalPlaceholders = [];\n this._isClientExtension = false;\n this._isUnmatchedAbstractType = false;\n this._followupPayloads = [];\n this._path = options.path ? (0, _toConsumableArray2[\"default\"])(options.path) : [];\n this._recordSource = recordSource;\n this._variables = variables;\n this._reactFlightPayloadDeserializer = options.reactFlightPayloadDeserializer;\n this._reactFlightServerErrorHandler = options.reactFlightServerErrorHandler;\n this._shouldProcessClientComponents = options.shouldProcessClientComponents;\n }\n\n var _proto = RelayResponseNormalizer.prototype;\n\n _proto.normalizeResponse = function normalizeResponse(node, dataID, data) {\n var record = this._recordSource.get(dataID);\n\n !record ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Expected root record `%s` to exist.', dataID) : invariant(false) : void 0;\n\n this._traverseSelections(node, record, data);\n\n return {\n errors: null,\n fieldPayloads: this._handleFieldPayloads,\n incrementalPlaceholders: this._incrementalPlaceholders,\n followupPayloads: this._followupPayloads,\n source: this._recordSource,\n isFinal: false\n };\n };\n\n _proto._getVariableValue = function _getVariableValue(name) {\n !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n\n return this._variables[name];\n };\n\n _proto._getRecordType = function _getRecordType(data) {\n var typeName = data[TYPENAME_KEY];\n !(typeName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Expected a typename for record `%s`.', JSON.stringify(data, null, 2)) : invariant(false) : void 0;\n return typeName;\n };\n\n _proto._traverseSelections = function _traverseSelections(node, record, data) {\n for (var i = 0; i < node.selections.length; i++) {\n var selection = node.selections[i];\n\n switch (selection.kind) {\n case SCALAR_FIELD:\n case LINKED_FIELD:\n this._normalizeField(node, selection, record, data);\n\n break;\n\n case CONDITION:\n var conditionValue = Boolean(this._getVariableValue(selection.condition));\n\n if (conditionValue === selection.passingValue) {\n this._traverseSelections(selection, record, data);\n }\n\n break;\n\n case FRAGMENT_SPREAD:\n {\n var prevVariables = this._variables;\n this._variables = getLocalVariables(this._variables, selection.fragment.argumentDefinitions, selection.args);\n\n this._traverseSelections(selection.fragment, record, data);\n\n this._variables = prevVariables;\n break;\n }\n\n case INLINE_FRAGMENT:\n {\n var abstractKey = selection.abstractKey;\n\n if (abstractKey == null) {\n var _typeName = RelayModernRecord.getType(record);\n\n if (_typeName === selection.type) {\n this._traverseSelections(selection, record, data);\n }\n } else {\n var implementsInterface = data.hasOwnProperty(abstractKey);\n\n var _typeName2 = RelayModernRecord.getType(record);\n\n var typeID = generateTypeID(_typeName2);\n\n var typeRecord = this._recordSource.get(typeID);\n\n if (typeRecord == null) {\n typeRecord = RelayModernRecord.create(typeID, TYPE_SCHEMA_TYPE);\n\n this._recordSource.set(typeID, typeRecord);\n }\n\n RelayModernRecord.setValue(typeRecord, abstractKey, implementsInterface);\n\n if (implementsInterface) {\n this._traverseSelections(selection, record, data);\n }\n }\n\n break;\n }\n\n case TYPE_DISCRIMINATOR:\n {\n var _abstractKey = selection.abstractKey;\n\n var _implementsInterface = data.hasOwnProperty(_abstractKey);\n\n var _typeName3 = RelayModernRecord.getType(record);\n\n var _typeID = generateTypeID(_typeName3);\n\n var _typeRecord = this._recordSource.get(_typeID);\n\n if (_typeRecord == null) {\n _typeRecord = RelayModernRecord.create(_typeID, TYPE_SCHEMA_TYPE);\n\n this._recordSource.set(_typeID, _typeRecord);\n }\n\n RelayModernRecord.setValue(_typeRecord, _abstractKey, _implementsInterface);\n break;\n }\n\n case LINKED_HANDLE:\n case SCALAR_HANDLE:\n var args = selection.args ? getArgumentValues(selection.args, this._variables) : {};\n var fieldKey = getStorageKey(selection, this._variables);\n var handleKey = getHandleStorageKey(selection, this._variables);\n\n this._handleFieldPayloads.push({\n /* $FlowFixMe[class-object-subtyping] added when improving typing\n * for this parameters */\n args: args,\n dataID: RelayModernRecord.getDataID(record),\n fieldKey: fieldKey,\n handle: selection.handle,\n handleKey: handleKey,\n handleArgs: selection.handleArgs ?\n /* $FlowFixMe[class-object-subtyping] added when improving typing\n * for this parameters */\n getArgumentValues(selection.handleArgs, this._variables) : {}\n });\n\n break;\n\n case MODULE_IMPORT:\n this._normalizeModuleImport(node, selection, record, data);\n\n break;\n\n case DEFER:\n this._normalizeDefer(selection, record, data);\n\n break;\n\n case STREAM:\n this._normalizeStream(selection, record, data);\n\n break;\n\n case CLIENT_EXTENSION:\n var isClientExtension = this._isClientExtension;\n this._isClientExtension = true;\n\n this._traverseSelections(selection, record, data);\n\n this._isClientExtension = isClientExtension;\n break;\n\n case CLIENT_COMPONENT:\n if (this._shouldProcessClientComponents === false) {\n break;\n }\n\n this._traverseSelections(selection.fragment, record, data);\n\n break;\n\n case FLIGHT_FIELD:\n if (RelayFeatureFlags.ENABLE_REACT_FLIGHT_COMPONENT_FIELD) {\n this._normalizeFlightField(node, selection, record, data);\n } else {\n throw new Error('Flight fields are not yet supported.');\n }\n\n break;\n\n case ACTOR_CHANGE:\n this._normalizeActorChange(node, selection, record, data);\n\n break;\n\n default:\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Unexpected ast kind `%s`.', selection.kind) : invariant(false) : void 0;\n }\n }\n };\n\n _proto._normalizeDefer = function _normalizeDefer(defer, record, data) {\n var isDeferred = defer[\"if\"] === null || this._getVariableValue(defer[\"if\"]);\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(typeof isDeferred === 'boolean', 'RelayResponseNormalizer: Expected value for @defer `if` argument to ' + 'be a boolean, got `%s`.', isDeferred) : void 0;\n }\n\n if (isDeferred === false) {\n // If defer is disabled there will be no additional response chunk:\n // normalize the data already present.\n this._traverseSelections(defer, record, data);\n } else {\n // Otherwise data *for this selection* should not be present: enqueue\n // metadata to process the subsequent response chunk.\n this._incrementalPlaceholders.push({\n kind: 'defer',\n data: data,\n label: defer.label,\n path: (0, _toConsumableArray2[\"default\"])(this._path),\n selector: createNormalizationSelector(defer, RelayModernRecord.getDataID(record), this._variables),\n typeName: RelayModernRecord.getType(record),\n actorIdentifier: this._actorIdentifier\n });\n }\n };\n\n _proto._normalizeStream = function _normalizeStream(stream, record, data) {\n // Always normalize regardless of whether streaming is enabled or not,\n // this populates the initial array value (including any items when\n // initial_count > 0).\n this._traverseSelections(stream, record, data);\n\n var isStreamed = stream[\"if\"] === null || this._getVariableValue(stream[\"if\"]);\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(typeof isStreamed === 'boolean', 'RelayResponseNormalizer: Expected value for @stream `if` argument ' + 'to be a boolean, got `%s`.', isStreamed) : void 0;\n }\n\n if (isStreamed === true) {\n // If streaming is enabled, *also* emit metadata to process any\n // response chunks that may be delivered.\n this._incrementalPlaceholders.push({\n kind: 'stream',\n label: stream.label,\n path: (0, _toConsumableArray2[\"default\"])(this._path),\n parentID: RelayModernRecord.getDataID(record),\n node: stream,\n variables: this._variables,\n actorIdentifier: this._actorIdentifier\n });\n }\n };\n\n _proto._normalizeModuleImport = function _normalizeModuleImport(parent, moduleImport, record, data) {\n !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for @module to be an object.') : invariant(false) : void 0;\n var typeName = RelayModernRecord.getType(record);\n var componentKey = getModuleComponentKey(moduleImport.documentName);\n var componentReference = data[componentKey];\n RelayModernRecord.setValue(record, componentKey, componentReference !== null && componentReference !== void 0 ? componentReference : null);\n var operationKey = getModuleOperationKey(moduleImport.documentName);\n var operationReference = data[operationKey];\n RelayModernRecord.setValue(record, operationKey, operationReference !== null && operationReference !== void 0 ? operationReference : null);\n\n if (operationReference != null) {\n this._followupPayloads.push({\n kind: 'ModuleImportPayload',\n args: moduleImport.args,\n data: data,\n dataID: RelayModernRecord.getDataID(record),\n operationReference: operationReference,\n path: (0, _toConsumableArray2[\"default\"])(this._path),\n typeName: typeName,\n variables: this._variables,\n actorIdentifier: this._actorIdentifier\n });\n }\n };\n\n _proto._normalizeField = function _normalizeField(parent, selection, record, data) {\n !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'writeField(): Expected data for field `%s` to be an object.', selection.name) : invariant(false) : void 0;\n var responseKey = selection.alias || selection.name;\n var storageKey = getStorageKey(selection, this._variables);\n var fieldValue = data[responseKey];\n\n if (fieldValue == null) {\n if (fieldValue === undefined) {\n // Fields may be missing in the response in two main cases:\n // - Inside a client extension: the server will not generally return\n // values for these fields, but a local update may provide them.\n // - Inside an abstract type refinement where the concrete type does\n // not conform to the interface/union.\n // However an otherwise-required field may also be missing if the server\n // is configured to skip fields with `null` values, in which case the\n // client is assumed to be correctly configured with\n // treatMissingFieldsAsNull=true.\n var isOptionalField = this._isClientExtension || this._isUnmatchedAbstractType;\n\n if (isOptionalField) {\n // Field not expected to exist regardless of whether the server is pruning null\n // fields or not.\n return;\n } else if (!this._treatMissingFieldsAsNull) {\n // Not optional and the server is not pruning null fields: field is expected\n // to be present\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;\n }\n\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (selection.kind === SCALAR_FIELD) {\n this._validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue);\n }\n }\n\n RelayModernRecord.setValue(record, storageKey, null);\n return;\n }\n\n if (selection.kind === SCALAR_FIELD) {\n if (process.env.NODE_ENV !== \"production\") {\n this._validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue);\n }\n\n RelayModernRecord.setValue(record, storageKey, fieldValue);\n } else if (selection.kind === LINKED_FIELD) {\n this._path.push(responseKey);\n\n if (selection.plural) {\n this._normalizePluralLink(selection, record, storageKey, fieldValue);\n } else {\n this._normalizeLink(selection, record, storageKey, fieldValue);\n }\n\n this._path.pop();\n } else {\n selection;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer(): Unexpected ast kind `%s` during normalization.', selection.kind) : invariant(false) : void 0;\n }\n };\n\n _proto._normalizeActorChange = function _normalizeActorChange(parent, selection, record, data) {\n var _field$concreteType;\n\n var field = selection.linkedField;\n !(typeof data === 'object' && data) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '_normalizeActorChange(): Expected data for field `%s` to be an object.', field.name) : invariant(false) : void 0;\n var responseKey = field.alias || field.name;\n var storageKey = getStorageKey(field, this._variables);\n var fieldValue = data[responseKey];\n\n if (fieldValue == null) {\n if (fieldValue === undefined) {\n var isOptionalField = this._isClientExtension || this._isUnmatchedAbstractType;\n\n if (isOptionalField) {\n return;\n } else if (!this._treatMissingFieldsAsNull) {\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : void 0;\n }\n\n return;\n }\n }\n\n RelayModernRecord.setValue(record, storageKey, null);\n return;\n }\n\n var actorIdentifier = getActorIdentifierFromPayload(fieldValue);\n\n if (actorIdentifier == null) {\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Payload did not contain a value ' + 'for field `%s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload. Payload is `%s`.', ACTOR_IDENTIFIER_FIELD_NAME, JSON.stringify(fieldValue, null, 2)) : void 0;\n }\n\n RelayModernRecord.setValue(record, storageKey, null);\n return;\n } // $FlowFixMe[incompatible-call]\n\n\n var typeName = (_field$concreteType = field.concreteType) !== null && _field$concreteType !== void 0 ? _field$concreteType : this._getRecordType(fieldValue);\n var nextID = this._getDataId( // $FlowFixMe[incompatible-call]\n fieldValue, typeName) || RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);\n !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;\n RelayModernRecord.setActorLinkedRecordID(record, storageKey, actorIdentifier, nextID);\n\n this._followupPayloads.push({\n kind: 'ActorPayload',\n data: fieldValue,\n dataID: nextID,\n path: [].concat((0, _toConsumableArray2[\"default\"])(this._path), [responseKey]),\n typeName: typeName,\n variables: this._variables,\n node: field,\n actorIdentifier: actorIdentifier\n });\n };\n\n _proto._normalizeFlightField = function _normalizeFlightField(parent, selection, record, data) {\n var responseKey = selection.alias || selection.name;\n var storageKey = getStorageKey(selection, this._variables);\n var fieldValue = data[responseKey];\n\n if (fieldValue == null) {\n if (fieldValue === undefined) {\n // Flight field may be missing in the response if:\n // - It is inside an abstract type refinement where the concrete type does\n // not conform to the interface/union.\n // However an otherwise-required field may also be missing if the server\n // is configured to skip fields with `null` values, in which case the\n // client is assumed to be correctly configured with\n // treatMissingFieldsAsNull=true.\n if (this._isUnmatchedAbstractType) {\n // Field not expected to exist regardless of whether the server is pruning null\n // fields or not.\n return;\n } else {\n // Not optional and the server is not pruning null fields: field is expected\n // to be present\n !this._treatMissingFieldsAsNull ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Payload did not contain a value for ' + 'field `%s: %s`. Check that you are parsing with the same ' + 'query that was used to fetch the payload.', responseKey, storageKey) : invariant(false) : void 0;\n }\n }\n\n RelayModernRecord.setValue(record, storageKey, null);\n return;\n }\n\n var reactFlightPayload = refineToReactFlightPayloadData(fieldValue);\n var reactFlightPayloadDeserializer = this._reactFlightPayloadDeserializer;\n !(reactFlightPayload != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected React Flight payload data to be an ' + 'object with `status`, tree`, `queries` and `errors` properties, got ' + '`%s`.', fieldValue) : invariant(false) : void 0;\n !(typeof reactFlightPayloadDeserializer === 'function') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected reactFlightPayloadDeserializer to ' + 'be a function, got `%s`.', reactFlightPayloadDeserializer) : invariant(false) : void 0;\n\n if (reactFlightPayload.errors.length > 0) {\n if (typeof this._reactFlightServerErrorHandler === 'function') {\n this._reactFlightServerErrorHandler(reactFlightPayload.status, reactFlightPayload.errors);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Received server errors for field `%s`.\\n\\n' + '%s\\n%s', responseKey, reactFlightPayload.errors[0].message, reactFlightPayload.errors[0].stack) : void 0;\n }\n }\n\n var reactFlightID = generateClientID(RelayModernRecord.getDataID(record), getStorageKey(selection, this._variables));\n\n var reactFlightClientResponseRecord = this._recordSource.get(reactFlightID);\n\n if (reactFlightClientResponseRecord == null) {\n reactFlightClientResponseRecord = RelayModernRecord.create(reactFlightID, REACT_FLIGHT_TYPE_NAME);\n\n this._recordSource.set(reactFlightID, reactFlightClientResponseRecord);\n }\n\n if (reactFlightPayload.tree == null) {\n // This typically indicates that a fatal server error prevented rows from\n // being written. When this occurs, we should not continue normalization of\n // the Flight field because the row response is malformed.\n //\n // Receiving empty rows is OK because it can indicate the start of a stream.\n process.env.NODE_ENV !== \"production\" ? warning(false, 'RelayResponseNormalizer: Expected `tree` not to be null. This ' + 'typically indicates that a fatal server error prevented any Server ' + 'Component rows from being written.') : void 0; // We create the flight record with a null value for the tree\n // and empty reachable definitions\n\n RelayModernRecord.setValue(reactFlightClientResponseRecord, REACT_FLIGHT_TREE_STORAGE_KEY, null);\n RelayModernRecord.setValue(reactFlightClientResponseRecord, REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY, []);\n RelayModernRecord.setLinkedRecordID(record, storageKey, reactFlightID);\n return;\n } // We store the deserialized reactFlightClientResponse in a separate\n // record and link it to the parent record. This is so we can GC the Flight\n // tree later even if the parent record is still reachable.\n\n\n var reactFlightClientResponse = reactFlightPayloadDeserializer(reactFlightPayload.tree);\n RelayModernRecord.setValue(reactFlightClientResponseRecord, REACT_FLIGHT_TREE_STORAGE_KEY, reactFlightClientResponse);\n var reachableExecutableDefinitions = [];\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(reactFlightPayload.queries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var query = _step.value;\n\n if (query.response.data != null) {\n this._followupPayloads.push({\n kind: 'ModuleImportPayload',\n args: null,\n data: query.response.data,\n dataID: ROOT_ID,\n operationReference: query.module,\n path: [],\n typeName: ROOT_TYPE,\n variables: query.variables,\n actorIdentifier: this._actorIdentifier\n });\n }\n\n reachableExecutableDefinitions.push({\n module: query.module,\n variables: query.variables\n });\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])(reactFlightPayload.fragments),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var fragment = _step2.value;\n\n if (fragment.response.data != null) {\n this._followupPayloads.push({\n kind: 'ModuleImportPayload',\n args: null,\n data: fragment.response.data,\n dataID: fragment.__id,\n operationReference: fragment.module,\n path: [],\n typeName: fragment.__typename,\n variables: fragment.variables,\n actorIdentifier: this._actorIdentifier\n });\n }\n\n reachableExecutableDefinitions.push({\n module: fragment.module,\n variables: fragment.variables\n });\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n RelayModernRecord.setValue(reactFlightClientResponseRecord, REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY, reachableExecutableDefinitions);\n RelayModernRecord.setLinkedRecordID(record, storageKey, reactFlightID);\n };\n\n _proto._normalizeLink = function _normalizeLink(field, record, storageKey, fieldValue) {\n var _field$concreteType2;\n\n !(typeof fieldValue === 'object' && fieldValue) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for field `%s` to be an object.', storageKey) : invariant(false) : void 0;\n var nextID = this._getDataId( // $FlowFixMe[incompatible-variance]\n fieldValue, // $FlowFixMe[incompatible-variance]\n (_field$concreteType2 = field.concreteType) !== null && _field$concreteType2 !== void 0 ? _field$concreteType2 : this._getRecordType(fieldValue)) || // Reuse previously generated client IDs\n RelayModernRecord.getLinkedRecordID(record, storageKey) || generateClientID(RelayModernRecord.getDataID(record), storageKey);\n !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id on field `%s` to be a string.', storageKey) : invariant(false) : void 0;\n\n if (process.env.NODE_ENV !== \"production\") {\n this._validateConflictingLinkedFieldsWithIdenticalId(record, RelayModernRecord.getLinkedRecordID(record, storageKey), nextID, storageKey);\n }\n\n RelayModernRecord.setLinkedRecordID(record, storageKey, nextID);\n\n var nextRecord = this._recordSource.get(nextID);\n\n if (!nextRecord) {\n // $FlowFixMe[incompatible-variance]\n var _typeName4 = field.concreteType || this._getRecordType(fieldValue);\n\n nextRecord = RelayModernRecord.create(nextID, _typeName4);\n\n this._recordSource.set(nextID, nextRecord);\n } else if (process.env.NODE_ENV !== \"production\") {\n this._validateRecordType(nextRecord, field, fieldValue);\n } // $FlowFixMe[incompatible-variance]\n\n\n this._traverseSelections(field, nextRecord, fieldValue);\n };\n\n _proto._normalizePluralLink = function _normalizePluralLink(field, record, storageKey, fieldValue) {\n var _this = this;\n\n !Array.isArray(fieldValue) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected data for field `%s` to be an array ' + 'of objects.', storageKey) : invariant(false) : void 0;\n var prevIDs = RelayModernRecord.getLinkedRecordIDs(record, storageKey);\n var nextIDs = [];\n fieldValue.forEach(function (item, nextIndex) {\n var _field$concreteType3;\n\n // validate response data\n if (item == null) {\n nextIDs.push(item);\n return;\n }\n\n _this._path.push(String(nextIndex));\n\n !(typeof item === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected elements for field `%s` to be ' + 'objects.', storageKey) : invariant(false) : void 0;\n var nextID = _this._getDataId( // $FlowFixMe[incompatible-variance]\n item, // $FlowFixMe[incompatible-variance]\n (_field$concreteType3 = field.concreteType) !== null && _field$concreteType3 !== void 0 ? _field$concreteType3 : _this._getRecordType(item)) || prevIDs && prevIDs[nextIndex] || // Reuse previously generated client IDs:\n generateClientID(RelayModernRecord.getDataID(record), storageKey, nextIndex);\n !(typeof nextID === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayResponseNormalizer: Expected id of elements of field `%s` to ' + 'be strings.', storageKey) : invariant(false) : void 0;\n nextIDs.push(nextID);\n\n var nextRecord = _this._recordSource.get(nextID);\n\n if (!nextRecord) {\n // $FlowFixMe[incompatible-variance]\n var _typeName5 = field.concreteType || _this._getRecordType(item);\n\n nextRecord = RelayModernRecord.create(nextID, _typeName5);\n\n _this._recordSource.set(nextID, nextRecord);\n } else if (process.env.NODE_ENV !== \"production\") {\n _this._validateRecordType(nextRecord, field, item);\n } // NOTE: the check to strip __DEV__ code only works for simple\n // `if (__DEV__)`\n\n\n if (process.env.NODE_ENV !== \"production\") {\n if (prevIDs) {\n _this._validateConflictingLinkedFieldsWithIdenticalId(record, prevIDs[nextIndex], nextID, storageKey);\n }\n } // $FlowFixMe[incompatible-variance]\n\n\n _this._traverseSelections(field, nextRecord, item);\n\n _this._path.pop();\n });\n RelayModernRecord.setLinkedRecordIDs(record, storageKey, nextIDs);\n }\n /**\n * Warns if the type of the record does not match the type of the field/payload.\n */\n ;\n\n _proto._validateRecordType = function _validateRecordType(record, field, payload) {\n var _field$concreteType4;\n\n var typeName = (_field$concreteType4 = field.concreteType) !== null && _field$concreteType4 !== void 0 ? _field$concreteType4 : this._getRecordType(payload);\n var dataID = RelayModernRecord.getDataID(record);\n process.env.NODE_ENV !== \"production\" ? warning(isClientID(dataID) && dataID !== ROOT_ID || RelayModernRecord.getType(record) === typeName, 'RelayResponseNormalizer: Invalid record `%s`. Expected %s to be ' + 'consistent, but the record was assigned conflicting types `%s` ' + 'and `%s`. The GraphQL server likely violated the globally unique ' + 'id requirement by returning the same id for different objects.', dataID, TYPENAME_KEY, RelayModernRecord.getType(record), typeName) : void 0;\n }\n /**\n * Warns if a single response contains conflicting fields with the same id\n */\n ;\n\n _proto._validateConflictingFieldsWithIdenticalId = function _validateConflictingFieldsWithIdenticalId(record, storageKey, fieldValue) {\n // NOTE: Only call this function in DEV\n if (process.env.NODE_ENV !== \"production\") {\n var dataID = RelayModernRecord.getDataID(record);\n var previousValue = RelayModernRecord.getValue(record, storageKey);\n process.env.NODE_ENV !== \"production\" ? warning(storageKey === TYPENAME_KEY || previousValue === undefined || areEqual(previousValue, fieldValue), 'RelayResponseNormalizer: Invalid record. The record contains two ' + 'instances of the same id: `%s` with conflicting field, %s and its values: %s and %s. ' + 'If two fields are different but share ' + 'the same id, one field will overwrite the other.', dataID, storageKey, previousValue, fieldValue) : void 0;\n }\n }\n /**\n * Warns if a single response contains conflicting fields with the same id\n */\n ;\n\n _proto._validateConflictingLinkedFieldsWithIdenticalId = function _validateConflictingLinkedFieldsWithIdenticalId(record, prevID, nextID, storageKey) {\n // NOTE: Only call this function in DEV\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(prevID === undefined || prevID === nextID, 'RelayResponseNormalizer: Invalid record. The record contains ' + 'references to the conflicting field, %s and its id values: %s and %s. ' + 'We need to make sure that the record the field points ' + 'to remains consistent or one field will overwrite the other.', storageKey, prevID, nextID) : void 0;\n }\n };\n\n return RelayResponseNormalizer;\n}();\n\nmodule.exports = {\n normalize: normalize\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('./RelayModernRecord'),\n getType = _require.getType;\n\n// Reachable (client) executable definitions encountered while server component\n// rendering\nvar REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY = 'executableDefinitions';\nvar REACT_FLIGHT_TREE_STORAGE_KEY = 'tree';\nvar REACT_FLIGHT_TYPE_NAME = 'ReactFlightComponent';\n\nfunction refineToReactFlightPayloadData(payload) {\n if (payload == null || typeof payload !== 'object' || typeof payload.status !== 'string' || !Array.isArray(payload.tree) && payload.tree !== null || !Array.isArray(payload.queries) || !Array.isArray(payload.fragments) || !Array.isArray(payload.errors)) {\n return null;\n }\n\n return payload;\n}\n\nfunction getReactFlightClientResponse(record) {\n !(getType(record) === REACT_FLIGHT_TYPE_NAME) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getReactFlightClientResponse(): Expected a ReactFlightComponentRecord, ' + 'got %s.', record) : invariant(false) : void 0;\n return record[REACT_FLIGHT_TREE_STORAGE_KEY];\n}\n\nmodule.exports = {\n REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY: REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY,\n REACT_FLIGHT_TREE_STORAGE_KEY: REACT_FLIGHT_TREE_STORAGE_KEY,\n REACT_FLIGHT_TYPE_NAME: REACT_FLIGHT_TYPE_NAME,\n getReactFlightClientResponse: getReactFlightClientResponse,\n refineToReactFlightPayloadData: refineToReactFlightPayloadData\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar RelayReader = require('./RelayReader');\n\nvar deepFreeze = require('../util/deepFreeze');\n\nvar hasOverlappingIDs = require('./hasOverlappingIDs');\n\nvar recycleNodesInto = require('../util/recycleNodesInto');\n\nvar RelayStoreSubscriptions = /*#__PURE__*/function () {\n function RelayStoreSubscriptions(log, resolverCache) {\n this._subscriptions = new Set();\n this.__log = log;\n this._resolverCache = resolverCache;\n }\n\n var _proto = RelayStoreSubscriptions.prototype;\n\n _proto.subscribe = function subscribe(snapshot, callback) {\n var _this = this;\n\n var subscription = {\n backup: null,\n callback: callback,\n snapshot: snapshot,\n stale: false\n };\n\n var dispose = function dispose() {\n _this._subscriptions[\"delete\"](subscription);\n };\n\n this._subscriptions.add(subscription);\n\n return {\n dispose: dispose\n };\n };\n\n _proto.snapshotSubscriptions = function snapshotSubscriptions(source) {\n var _this2 = this;\n\n this._subscriptions.forEach(function (subscription) {\n // Backup occurs after writing a new \"final\" payload(s) and before (re)applying\n // optimistic changes. Each subscription's `snapshot` represents what was *last\n // published to the subscriber*, which notably may include previous optimistic\n // updates. Therefore a subscription can be in any of the following states:\n // - stale=true: This subscription was restored to a different value than\n // `snapshot`. That means this subscription has changes relative to its base,\n // but its base has changed (we just applied a final payload): recompute\n // a backup so that we can later restore to the state the subscription\n // should be in.\n // - stale=false: This subscription was restored to the same value as\n // `snapshot`. That means this subscription does *not* have changes relative\n // to its base, so the current `snapshot` is valid to use as a backup.\n if (!subscription.stale) {\n subscription.backup = subscription.snapshot;\n return;\n }\n\n var snapshot = subscription.snapshot;\n var backup = RelayReader.read(source, snapshot.selector, _this2._resolverCache);\n var nextData = recycleNodesInto(snapshot.data, backup.data);\n backup.data = nextData; // backup owns the snapshot and can safely mutate\n\n subscription.backup = backup;\n });\n };\n\n _proto.restoreSubscriptions = function restoreSubscriptions() {\n this._subscriptions.forEach(function (subscription) {\n var backup = subscription.backup;\n subscription.backup = null;\n\n if (backup) {\n if (backup.data !== subscription.snapshot.data) {\n subscription.stale = true;\n }\n\n subscription.snapshot = {\n data: subscription.snapshot.data,\n isMissingData: backup.isMissingData,\n seenRecords: backup.seenRecords,\n selector: backup.selector,\n missingRequiredFields: backup.missingRequiredFields\n };\n } else {\n subscription.stale = true;\n }\n });\n };\n\n _proto.updateSubscriptions = function updateSubscriptions(source, updatedRecordIDs, updatedOwners, sourceOperation) {\n var _this3 = this;\n\n var hasUpdatedRecords = updatedRecordIDs.size !== 0;\n\n this._subscriptions.forEach(function (subscription) {\n var owner = _this3._updateSubscription(source, subscription, updatedRecordIDs, hasUpdatedRecords, sourceOperation);\n\n if (owner != null) {\n updatedOwners.push(owner);\n }\n });\n }\n /**\n * Notifies the callback for the subscription if the data for the associated\n * snapshot has changed.\n * Additionally, updates the subscription snapshot with the latest snapshot,\n * and marks it as not stale.\n * Returns the owner (RequestDescriptor) if the subscription was affected by the\n * latest update, or null if it was not affected.\n */\n ;\n\n _proto._updateSubscription = function _updateSubscription(source, subscription, updatedRecordIDs, hasUpdatedRecords, sourceOperation) {\n var backup = subscription.backup,\n callback = subscription.callback,\n snapshot = subscription.snapshot,\n stale = subscription.stale;\n var hasOverlappingUpdates = hasUpdatedRecords && hasOverlappingIDs(snapshot.seenRecords, updatedRecordIDs);\n\n if (!stale && !hasOverlappingUpdates) {\n return;\n }\n\n var nextSnapshot = hasOverlappingUpdates || !backup ? RelayReader.read(source, snapshot.selector, this._resolverCache) : backup;\n var nextData = recycleNodesInto(snapshot.data, nextSnapshot.data);\n nextSnapshot = {\n data: nextData,\n isMissingData: nextSnapshot.isMissingData,\n seenRecords: nextSnapshot.seenRecords,\n selector: nextSnapshot.selector,\n missingRequiredFields: nextSnapshot.missingRequiredFields\n };\n\n if (process.env.NODE_ENV !== \"production\") {\n deepFreeze(nextSnapshot);\n }\n\n subscription.snapshot = nextSnapshot;\n subscription.stale = false;\n\n if (nextSnapshot.data !== snapshot.data) {\n if (this.__log && RelayFeatureFlags.ENABLE_NOTIFY_SUBSCRIPTION) {\n this.__log({\n name: 'store.notify.subscription',\n sourceOperation: sourceOperation,\n snapshot: snapshot,\n nextSnapshot: nextSnapshot\n });\n }\n\n callback(nextSnapshot);\n return snapshot.selector.owner;\n }\n };\n\n return RelayStoreSubscriptions;\n}();\n\nmodule.exports = RelayStoreSubscriptions;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar RelayConcreteNode = require('../util/RelayConcreteNode');\n\nvar getRelayHandleKey = require('../util/getRelayHandleKey');\n\nvar invariant = require('invariant');\n\nvar stableCopy = require('../util/stableCopy');\n\nvar VARIABLE = RelayConcreteNode.VARIABLE,\n LITERAL = RelayConcreteNode.LITERAL,\n OBJECT_VALUE = RelayConcreteNode.OBJECT_VALUE,\n LIST_VALUE = RelayConcreteNode.LIST_VALUE;\nvar MODULE_COMPONENT_KEY_PREFIX = '__module_component_';\nvar MODULE_OPERATION_KEY_PREFIX = '__module_operation_';\n\nfunction getArgumentValue(arg, variables) {\n if (arg.kind === VARIABLE) {\n // Variables are provided at runtime and are not guaranteed to be stable.\n return getStableVariableValue(arg.variableName, variables);\n } else if (arg.kind === LITERAL) {\n // The Relay compiler generates stable ConcreteArgument values.\n return arg.value;\n } else if (arg.kind === OBJECT_VALUE) {\n var value = {};\n arg.fields.forEach(function (field) {\n value[field.name] = getArgumentValue(field, variables);\n });\n return value;\n } else if (arg.kind === LIST_VALUE) {\n var _value = [];\n arg.items.forEach(function (item) {\n item != null ? _value.push(getArgumentValue(item, variables)) : null;\n });\n return _value;\n }\n}\n/**\n * Returns the values of field/fragment arguments as an object keyed by argument\n * names. Guaranteed to return a result with stable ordered nested values.\n */\n\n\nfunction getArgumentValues(args, variables) {\n var values = {};\n args.forEach(function (arg) {\n values[arg.name] = getArgumentValue(arg, variables);\n });\n return values;\n}\n/**\n * Given a handle field and variable values, returns a key that can be used to\n * uniquely identify the combination of the handle name and argument values.\n *\n * Note: the word \"storage\" here refers to the fact this key is primarily used\n * when writing the results of a key in a normalized graph or \"store\". This\n * name was used in previous implementations of Relay internals and is also\n * used here for consistency.\n */\n\n\nfunction getHandleStorageKey(handleField, variables) {\n var dynamicKey = handleField.dynamicKey,\n handle = handleField.handle,\n key = handleField.key,\n name = handleField.name,\n args = handleField.args,\n filters = handleField.filters;\n var handleName = getRelayHandleKey(handle, key, name);\n var filterArgs = null;\n\n if (args && filters && args.length !== 0 && filters.length !== 0) {\n filterArgs = args.filter(function (arg) {\n return filters.indexOf(arg.name) > -1;\n });\n }\n\n if (dynamicKey) {\n // \"Sort\" the arguments by argument name: this is done by the compiler for\n // user-supplied arguments but the dynamic argument must also be in sorted\n // order. Note that dynamic key argument name is double-underscore-\n // -prefixed, and a double-underscore prefix is disallowed for user-supplied\n // argument names, so there's no need to actually sort.\n filterArgs = filterArgs != null ? [dynamicKey].concat((0, _toConsumableArray2[\"default\"])(filterArgs)) : [dynamicKey];\n }\n\n if (filterArgs === null) {\n return handleName;\n } else {\n return formatStorageKey(handleName, getArgumentValues(filterArgs, variables));\n }\n}\n/**\n * Given a field and variable values, returns a key that can be used to\n * uniquely identify the combination of the field name and argument values.\n *\n * Note: the word \"storage\" here refers to the fact this key is primarily used\n * when writing the results of a key in a normalized graph or \"store\". This\n * name was used in previous implementations of Relay internals and is also\n * used here for consistency.\n */\n\n\nfunction getStorageKey(field, variables) {\n if (field.storageKey) {\n // TODO T23663664: Handle nodes do not yet define a static storageKey.\n return field.storageKey;\n }\n\n var args = typeof field.args === 'undefined' ? undefined : field.args;\n var name = field.name;\n return args && args.length !== 0 ? formatStorageKey(name, getArgumentValues(args, variables)) : name;\n}\n/**\n * Given a `name` (eg. \"foo\") and an object representing argument values\n * (eg. `{orberBy: \"name\", first: 10}`) returns a unique storage key\n * (ie. `foo{\"first\":10,\"orderBy\":\"name\"}`).\n *\n * This differs from getStorageKey which requires a ConcreteNode where arguments\n * are assumed to already be sorted into a stable order.\n */\n\n\nfunction getStableStorageKey(name, args) {\n return formatStorageKey(name, stableCopy(args));\n}\n/**\n * Given a name and argument values, format a storage key.\n *\n * Arguments and the values within them are expected to be ordered in a stable\n * alphabetical ordering.\n */\n\n\nfunction formatStorageKey(name, argValues) {\n if (!argValues) {\n return name;\n }\n\n var values = [];\n\n for (var argName in argValues) {\n if (argValues.hasOwnProperty(argName)) {\n var value = argValues[argName];\n\n if (value != null) {\n var _JSON$stringify;\n\n values.push(argName + ':' + ((_JSON$stringify = JSON.stringify(value)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : 'undefined'));\n }\n }\n }\n\n return values.length === 0 ? name : name + \"(\".concat(values.join(','), \")\");\n}\n/**\n * Given Variables and a variable name, return a variable value with\n * all values in a stable order.\n */\n\n\nfunction getStableVariableValue(name, variables) {\n !variables.hasOwnProperty(name) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getVariableValue(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]\n\n return stableCopy(variables[name]);\n}\n\nfunction getModuleComponentKey(documentName) {\n return \"\".concat(MODULE_COMPONENT_KEY_PREFIX).concat(documentName);\n}\n\nfunction getModuleOperationKey(documentName) {\n return \"\".concat(MODULE_OPERATION_KEY_PREFIX).concat(documentName);\n}\n/**\n * Constants shared by all implementations of RecordSource/MutableRecordSource/etc.\n */\n\n\nvar RelayStoreUtils = {\n ACTOR_IDENTIFIER_KEY: '__actorIdentifier',\n FRAGMENTS_KEY: '__fragments',\n FRAGMENT_OWNER_KEY: '__fragmentOwner',\n FRAGMENT_PROP_NAME_KEY: '__fragmentPropName',\n MODULE_COMPONENT_KEY: '__module_component',\n // alias returned by Reader\n ID_KEY: '__id',\n REF_KEY: '__ref',\n REFS_KEY: '__refs',\n ROOT_ID: 'client:root',\n ROOT_TYPE: '__Root',\n TYPENAME_KEY: '__typename',\n INVALIDATED_AT_KEY: '__invalidated_at',\n IS_WITHIN_UNMATCHED_TYPE_REFINEMENT: '__isWithinUnmatchedTypeRefinement',\n RELAY_RESOLVER_VALUE_KEY: '__resolverValue',\n RELAY_RESOLVER_INVALIDATION_KEY: '__resolverValueMayBeInvalid',\n RELAY_RESOLVER_INPUTS_KEY: '__resolverInputValues',\n RELAY_RESOLVER_READER_SELECTOR_KEY: '__resolverReaderSelector',\n formatStorageKey: formatStorageKey,\n getArgumentValue: getArgumentValue,\n getArgumentValues: getArgumentValues,\n getHandleStorageKey: getHandleStorageKey,\n getStorageKey: getStorageKey,\n getStableStorageKey: getStableStorageKey,\n getModuleComponentKey: getModuleComponentKey,\n getModuleOperationKey: getModuleOperationKey\n};\nmodule.exports = RelayStoreUtils;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar RelayModernRecord = require('./RelayModernRecord');\n\nvar recycleNodesInto = require('../util/recycleNodesInto');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('./ClientID'),\n generateClientID = _require.generateClientID;\n\nvar _require2 = require('./RelayStoreUtils'),\n RELAY_RESOLVER_VALUE_KEY = _require2.RELAY_RESOLVER_VALUE_KEY,\n RELAY_RESOLVER_INVALIDATION_KEY = _require2.RELAY_RESOLVER_INVALIDATION_KEY,\n RELAY_RESOLVER_INPUTS_KEY = _require2.RELAY_RESOLVER_INPUTS_KEY,\n RELAY_RESOLVER_READER_SELECTOR_KEY = _require2.RELAY_RESOLVER_READER_SELECTOR_KEY,\n getStorageKey = _require2.getStorageKey;\n\n// $FlowFixMe[unclear-type] - will always be empty\nvar emptySet = new Set();\n\nvar NoopResolverCache = /*#__PURE__*/function () {\n function NoopResolverCache() {}\n\n var _proto = NoopResolverCache.prototype;\n\n _proto.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(record, field, variables, evaluate, getDataForResolverFragment) {\n return [evaluate().resolverResult, undefined];\n };\n\n _proto.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {};\n\n return NoopResolverCache;\n}();\n\nfunction addDependencyEdge(edges, from, to) {\n var set = edges.get(from);\n\n if (!set) {\n set = new Set();\n edges.set(from, set);\n }\n\n set.add(to);\n}\n\nvar RecordResolverCache = /*#__PURE__*/function () {\n function RecordResolverCache(getRecordSource) {\n this._resolverIDToRecordIDs = new Map();\n this._recordIDToResolverIDs = new Map();\n this._getRecordSource = getRecordSource;\n }\n\n var _proto2 = RecordResolverCache.prototype;\n\n _proto2.readFromCacheOrEvaluate = function readFromCacheOrEvaluate(record, field, variables, evaluate, getDataForResolverFragment) {\n var recordSource = this._getRecordSource();\n\n var recordID = RelayModernRecord.getDataID(record);\n var storageKey = getStorageKey(field, variables);\n var linkedID = RelayModernRecord.getLinkedRecordID(record, storageKey);\n var linkedRecord = linkedID == null ? null : recordSource.get(linkedID);\n\n if (linkedRecord == null || this._isInvalid(linkedRecord, getDataForResolverFragment)) {\n var _linkedID;\n\n // Cache miss; evaluate the selector and store the result in a new record:\n linkedID = (_linkedID = linkedID) !== null && _linkedID !== void 0 ? _linkedID : generateClientID(recordID, storageKey);\n linkedRecord = RelayModernRecord.create(linkedID, '__RELAY_RESOLVER__');\n var evaluationResult = evaluate();\n RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_VALUE_KEY, evaluationResult.resolverResult);\n RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_INPUTS_KEY, evaluationResult.fragmentValue);\n RelayModernRecord.setValue(linkedRecord, RELAY_RESOLVER_READER_SELECTOR_KEY, evaluationResult.readerSelector);\n recordSource.set(linkedID, linkedRecord); // Link the resolver value record to the resolver field of the record being read:\n\n var nextRecord = RelayModernRecord.clone(record);\n RelayModernRecord.setLinkedRecordID(nextRecord, storageKey, linkedID);\n recordSource.set(RelayModernRecord.getDataID(nextRecord), nextRecord); // Put records observed by the resolver into the dependency graph:\n\n var resolverID = evaluationResult.resolverID;\n addDependencyEdge(this._resolverIDToRecordIDs, resolverID, linkedID);\n addDependencyEdge(this._recordIDToResolverIDs, recordID, resolverID);\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(evaluationResult.seenRecordIDs),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var seenRecordID = _step.value;\n addDependencyEdge(this._recordIDToResolverIDs, seenRecordID, resolverID);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } // $FlowFixMe[incompatible-type] - will always be empty\n\n\n var answer = linkedRecord[RELAY_RESOLVER_VALUE_KEY];\n return [answer, linkedID];\n };\n\n _proto2.invalidateDataIDs = function invalidateDataIDs(updatedDataIDs) {\n var recordSource = this._getRecordSource();\n\n var visited = new Set();\n var recordsToVisit = Array.from(updatedDataIDs);\n\n while (recordsToVisit.length) {\n var recordID = recordsToVisit.pop();\n updatedDataIDs.add(recordID);\n\n var _iterator2 = (0, _createForOfIteratorHelper2[\"default\"])((_this$_recordIDToReso = this._recordIDToResolverIDs.get(recordID)) !== null && _this$_recordIDToReso !== void 0 ? _this$_recordIDToReso : emptySet),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _this$_recordIDToReso;\n\n var fragment = _step2.value;\n\n if (!visited.has(fragment)) {\n var _iterator3 = (0, _createForOfIteratorHelper2[\"default\"])((_this$_resolverIDToRe = this._resolverIDToRecordIDs.get(fragment)) !== null && _this$_resolverIDToRe !== void 0 ? _this$_resolverIDToRe : emptySet),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _this$_resolverIDToRe;\n\n var anotherRecordID = _step3.value;\n\n this._markInvalidatedResolverRecord(anotherRecordID, recordSource, updatedDataIDs);\n\n if (!visited.has(anotherRecordID)) {\n recordsToVisit.push(anotherRecordID);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n };\n\n _proto2._markInvalidatedResolverRecord = function _markInvalidatedResolverRecord(dataID, recordSource, // Written to\n updatedDataIDs) // Mutated in place\n {\n var record = recordSource.get(dataID);\n\n if (!record) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Expected a resolver record with ID %s, but it was missing.', dataID) : void 0;\n return;\n }\n\n var nextRecord = RelayModernRecord.clone(record);\n RelayModernRecord.setValue(nextRecord, RELAY_RESOLVER_INVALIDATION_KEY, true);\n recordSource.set(dataID, nextRecord);\n };\n\n _proto2._isInvalid = function _isInvalid(record, getDataForResolverFragment) {\n if (!RelayModernRecord.getValue(record, RELAY_RESOLVER_INVALIDATION_KEY)) {\n return false;\n }\n\n var originalInputs = RelayModernRecord.getValue(record, RELAY_RESOLVER_INPUTS_KEY); // $FlowFixMe[incompatible-type] - storing values in records is not typed\n\n var readerSelector = RelayModernRecord.getValue(record, RELAY_RESOLVER_READER_SELECTOR_KEY);\n\n if (originalInputs == null || readerSelector == null) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Expected previous inputs and reader selector on resolver record with ID %s, but they were missing.', RelayModernRecord.getDataID(record)) : void 0;\n return true;\n }\n\n var latestValues = getDataForResolverFragment(readerSelector);\n var recycled = recycleNodesInto(originalInputs, latestValues);\n\n if (recycled !== originalInputs) {\n return true;\n }\n\n return false;\n };\n\n return RecordResolverCache;\n}();\n\nmodule.exports = {\n NoopResolverCache: NoopResolverCache,\n RecordResolverCache: RecordResolverCache\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('../query/GraphQLTag'),\n getFragment = _require.getFragment;\n\nvar _require2 = require('./RelayModernSelector'),\n getSelector = _require2.getSelector;\n\nvar contextStack = [];\n\nfunction withResolverContext(context, cb) {\n contextStack.push(context);\n\n try {\n return cb();\n } finally {\n contextStack.pop();\n }\n} // NOTE: these declarations are copied from 'useFragment'; it would be good\n// to figure out how to share the same type signature between the two functions.\n// The declarations ensure that the type of the returned data is:\n// - non-nullable if the provided ref type is non-nullable\n// - nullable if the provided ref type is nullable\n// - array of non-nullable if the privoided ref type is an array of\n// non-nullable refs\n// - array of nullable if the privoided ref type is an array of nullable refs\n\n\nfunction readFragment(fragmentInput, fragmentRef) {\n if (!contextStack.length) {\n throw new Error('readFragment should be called only from within a Relay Resolver function.');\n }\n\n var context = contextStack[contextStack.length - 1];\n var fragmentNode = getFragment(fragmentInput);\n var fragmentSelector = getSelector(fragmentNode, fragmentRef);\n !(fragmentSelector != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Expected a selector for the fragment of the resolver \".concat(fragmentNode.name, \", but got null.\")) : invariant(false) : void 0;\n !(fragmentSelector.kind === 'SingularReaderSelector') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Expected a singular reader selector for the fragment of the resolver \".concat(fragmentNode.name, \", but it was plural.\")) : invariant(false) : void 0;\n return context.getDataForResolverFragment(fragmentSelector, fragmentRef);\n}\n\nmodule.exports = {\n readFragment: readFragment,\n withResolverContext: withResolverContext\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar PREFIX = 'client:__type:';\nvar TYPE_SCHEMA_TYPE = '__TypeSchema';\n\nfunction generateTypeID(typeName) {\n return PREFIX + typeName;\n}\n\nfunction isTypeID(id) {\n return id.indexOf(PREFIX) === 0;\n}\n\nmodule.exports = {\n generateTypeID: generateTypeID,\n isTypeID: isTypeID,\n TYPE_SCHEMA_TYPE: TYPE_SCHEMA_TYPE\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('./ClientID'),\n generateClientID = _require.generateClientID;\n\nvar _require2 = require('./RelayStoreUtils'),\n ROOT_ID = _require2.ROOT_ID;\n\nvar VIEWER_ID = generateClientID(ROOT_ID, 'viewer');\nvar VIEWER_TYPE = 'Viewer';\nmodule.exports = {\n VIEWER_ID: VIEWER_ID,\n VIEWER_TYPE: VIEWER_TYPE\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar invariant = require('invariant');\n\nvar _require = require('../util/RelayConcreteNode'),\n LINKED_FIELD = _require.LINKED_FIELD;\n\nvar _require2 = require('./RelayStoreUtils'),\n getHandleStorageKey = _require2.getHandleStorageKey;\n\n/**\n * @private\n *\n * Creates a clone of the supplied `handleField` by finding the original linked\n * field (on which the handle was declared) among the sibling `selections`, and\n * copying its selections into the clone.\n */\nfunction cloneRelayHandleSourceField(handleField, selections, variables) {\n var sourceField = selections.find(function (source) {\n return source.kind === LINKED_FIELD && source.name === handleField.name && source.alias === handleField.alias && areEqual(source.args, handleField.args);\n });\n !(sourceField && sourceField.kind === LINKED_FIELD) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'cloneRelayHandleSourceField: Expected a corresponding source field for ' + 'handle `%s`.', handleField.handle) : invariant(false) : void 0;\n var handleKey = getHandleStorageKey(handleField, variables);\n return {\n kind: 'LinkedField',\n alias: sourceField.alias,\n name: handleKey,\n storageKey: handleKey,\n args: null,\n concreteType: sourceField.concreteType,\n plural: sourceField.plural,\n selections: sourceField.selections\n };\n}\n\nmodule.exports = cloneRelayHandleSourceField;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar areEqual = require(\"fbjs/lib/areEqual\");\n\nvar invariant = require('invariant');\n\nvar _require = require('../util/RelayConcreteNode'),\n SCALAR_FIELD = _require.SCALAR_FIELD;\n\nvar _require2 = require('./RelayStoreUtils'),\n getHandleStorageKey = _require2.getHandleStorageKey;\n\n/**\n * @private\n *\n * Creates a clone of the supplied `handleField` by finding the original scalar\n * field (on which the handle was declared) among the sibling `selections`.\n */\nfunction cloneRelayScalarHandleSourceField(handleField, selections, variables) {\n var sourceField = selections.find(function (source) {\n return source.kind === SCALAR_FIELD && source.name === handleField.name && source.alias === handleField.alias && areEqual(source.args, handleField.args);\n });\n !(sourceField && sourceField.kind === SCALAR_FIELD) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'cloneRelayScalarHandleSourceField: Expected a corresponding source field for ' + 'handle `%s`.', handleField.handle) : invariant(false) : void 0;\n var handleKey = getHandleStorageKey(handleField, variables);\n return {\n kind: 'ScalarField',\n alias: sourceField.alias,\n name: handleKey,\n storageKey: handleKey,\n args: null\n };\n}\n\nmodule.exports = cloneRelayScalarHandleSourceField;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayModernFragmentSpecResolver = require('./RelayModernFragmentSpecResolver');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nfunction createFragmentSpecResolver(context, containerName, fragments, props, rootIsQueryRenderer, callback) {\n if (process.env.NODE_ENV !== \"production\") {\n var fragmentNames = Object.keys(fragments);\n fragmentNames.forEach(function (fragmentName) {\n var propValue = props[fragmentName];\n process.env.NODE_ENV !== \"production\" ? warning(propValue !== undefined, 'createFragmentSpecResolver: Expected prop `%s` to be supplied to `%s`, but ' + 'got `undefined`. Pass an explicit `null` if this is intentional.', fragmentName, containerName) : void 0;\n });\n }\n\n return new RelayModernFragmentSpecResolver(context, fragments, props, callback, rootIsQueryRenderer);\n}\n\nmodule.exports = createFragmentSpecResolver;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar relayContext;\nvar firstReact;\n\nfunction createRelayContext(react) {\n if (!relayContext) {\n relayContext = react.createContext(null);\n\n if (process.env.NODE_ENV !== \"production\") {\n relayContext.displayName = 'RelayContext';\n }\n\n firstReact = react;\n }\n\n !(react === firstReact) ? process.env.NODE_ENV !== \"production\" ? invariant(false, '[createRelayContext]: You are passing a different instance of React', react.version) : invariant(false) : void 0;\n return relayContext;\n}\n\nmodule.exports = createRelayContext;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('./ViewerPattern'),\n VIEWER_ID = _require.VIEWER_ID,\n VIEWER_TYPE = _require.VIEWER_TYPE;\n\nfunction defaultGetDataID(fieldValue, typeName) {\n if (typeName === VIEWER_TYPE) {\n // $FlowFixMe[prop-missing]\n return fieldValue.id == null ? VIEWER_ID : fieldValue.id;\n } // $FlowFixMe[prop-missing]\n\n\n return fieldValue.id;\n}\n\nmodule.exports = defaultGetDataID;","/**\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 * @format\n */\n'use strict';\n\nvar defaultRequiredFieldLogger = function defaultRequiredFieldLogger(event) {\n if (process.env.NODE_ENV !== \"production\" && event.kind === 'missing_field.log') {\n throw new Error('Relay Environment Configuration Error (dev only): `@required(action: LOG)` requires that the Relay Environment be configured with a `requiredFieldLogger`.');\n }\n};\n\nmodule.exports = defaultRequiredFieldLogger;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar ITERATOR_KEY = Symbol.iterator;\n\nfunction hasOverlappingIDs(seenRecords, updatedRecordIDs) {\n // $FlowFixMe: Set is an iterable type, accessing its iterator is allowed.\n var iterator = seenRecords[ITERATOR_KEY]();\n var next = iterator.next();\n\n while (!next.done) {\n var key = next.value;\n\n if (updatedRecordIDs.has(key)) {\n return true;\n }\n\n next = iterator.next();\n }\n\n return false;\n}\n\nmodule.exports = hasOverlappingIDs;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * Determine if a given value is an object that implements the `Environment`\n * interface defined in `RelayStoreTypes`.\n *\n * Use a sigil for detection to avoid a realm-specific instanceof check, and to\n * aid in module tree-shaking to avoid requiring all of RelayRuntime just to\n * detect its environment.\n */\n\nfunction isRelayModernEnvironment(environment) {\n return Boolean(environment && environment['@@RelayModernEnvironment']);\n}\n\nmodule.exports = isRelayModernEnvironment;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('../query/GraphQLTag'),\n getInlineDataFragment = _require.getInlineDataFragment;\n\nvar _require2 = require('./RelayStoreUtils'),\n FRAGMENTS_KEY = _require2.FRAGMENTS_KEY;\n\nfunction readInlineData(fragment, fragmentRef) {\n var _fragmentRef$FRAGMENT;\n\n var inlineDataFragment = getInlineDataFragment(fragment);\n\n if (fragmentRef == null) {\n return fragmentRef;\n }\n\n !(typeof fragmentRef === 'object') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'readInlineData(): Expected an object, got `%s`.', typeof fragmentRef) : invariant(false) : void 0; // $FlowFixMe[incompatible-use]\n\n var inlineData = (_fragmentRef$FRAGMENT = fragmentRef[FRAGMENTS_KEY]) === null || _fragmentRef$FRAGMENT === void 0 ? void 0 : _fragmentRef$FRAGMENT[inlineDataFragment.name];\n !(inlineData != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'readInlineData(): Expected fragment `%s` to be spread in the parent ' + 'fragment.', inlineDataFragment.name) : invariant(false) : void 0;\n return inlineData;\n}\n\nmodule.exports = readInlineData;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayDeclarativeMutationConfig = require('../mutations/RelayDeclarativeMutationConfig');\n\nvar RelayFeatureFlags = require('../util/RelayFeatureFlags');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nvar _require = require('../query/GraphQLTag'),\n getRequest = _require.getRequest;\n\nvar _require2 = require('../store/RelayModernOperationDescriptor'),\n createOperationDescriptor = _require2.createOperationDescriptor;\n\nvar _require3 = require('../store/RelayModernSelector'),\n createReaderSelector = _require3.createReaderSelector;\n\nfunction requestSubscription(environment, config) {\n var subscription = getRequest(config.subscription);\n\n if (subscription.params.operationKind !== 'subscription') {\n throw new Error('requestSubscription: Must use Subscription operation');\n }\n\n var configs = config.configs,\n onCompleted = config.onCompleted,\n onError = config.onError,\n onNext = config.onNext,\n variables = config.variables,\n cacheConfig = config.cacheConfig;\n var operation = createOperationDescriptor(subscription, variables, cacheConfig);\n process.env.NODE_ENV !== \"production\" ? warning(!(config.updater && configs), 'requestSubscription: Expected only one of `updater` and `configs` to be provided') : void 0;\n\n var _ref = configs ? RelayDeclarativeMutationConfig.convert(configs, subscription, null\n /* optimisticUpdater */\n ,\n /* optimisticUpdater */\n config.updater) : config,\n updater = _ref.updater;\n\n var sub = environment.execute({\n operation: operation,\n updater: updater\n }).subscribe({\n next: function next(responses) {\n if (onNext != null) {\n var selector = operation.fragment;\n var nextID;\n\n if (Array.isArray(responses)) {\n var _responses$, _responses$$extension;\n\n nextID = (_responses$ = responses[0]) === null || _responses$ === void 0 ? void 0 : (_responses$$extension = _responses$.extensions) === null || _responses$$extension === void 0 ? void 0 : _responses$$extension.__relay_subscription_root_id;\n } else {\n var _responses$extensions;\n\n nextID = (_responses$extensions = responses.extensions) === null || _responses$extensions === void 0 ? void 0 : _responses$extensions.__relay_subscription_root_id;\n }\n\n if (typeof nextID === 'string') {\n selector = createReaderSelector(selector.node, nextID, selector.variables, selector.owner);\n }\n\n var data = environment.lookup(selector).data; // $FlowFixMe[incompatible-cast]\n\n onNext(data);\n }\n },\n error: onError,\n complete: onCompleted\n });\n return {\n dispose: sub.unsubscribe\n };\n}\n\nmodule.exports = requestSubscription;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\n/**\n * Represents a common GraphQL request that can be executed, an `operation`\n * containing information to normalize the results, and a `fragment` derived\n * from that operation to read the response data (masking data from child\n * fragments).\n */\n\n/**\n * Contains the parameters required for executing a GraphQL request.\n * The operation can either be provided as a persisted `id` or `text`. If given\n * in `text` format, a `cacheID` as a hash of the text should be set to be used\n * for local caching.\n */\nvar RelayConcreteNode = {\n ACTOR_CHANGE: 'ActorChange',\n CONDITION: 'Condition',\n CLIENT_COMPONENT: 'ClientComponent',\n CLIENT_EXTENSION: 'ClientExtension',\n DEFER: 'Defer',\n CONNECTION: 'Connection',\n FLIGHT_FIELD: 'FlightField',\n FRAGMENT: 'Fragment',\n FRAGMENT_SPREAD: 'FragmentSpread',\n INLINE_DATA_FRAGMENT_SPREAD: 'InlineDataFragmentSpread',\n INLINE_DATA_FRAGMENT: 'InlineDataFragment',\n INLINE_FRAGMENT: 'InlineFragment',\n LINKED_FIELD: 'LinkedField',\n LINKED_HANDLE: 'LinkedHandle',\n LITERAL: 'Literal',\n LIST_VALUE: 'ListValue',\n LOCAL_ARGUMENT: 'LocalArgument',\n MODULE_IMPORT: 'ModuleImport',\n RELAY_RESOLVER: 'RelayResolver',\n REQUIRED_FIELD: 'RequiredField',\n OBJECT_VALUE: 'ObjectValue',\n OPERATION: 'Operation',\n REQUEST: 'Request',\n ROOT_ARGUMENT: 'RootArgument',\n SCALAR_FIELD: 'ScalarField',\n SCALAR_HANDLE: 'ScalarHandle',\n SPLIT_OPERATION: 'SplitOperation',\n STREAM: 'Stream',\n TYPE_DISCRIMINATOR: 'TypeDiscriminator',\n VARIABLE: 'Variable'\n};\nmodule.exports = RelayConcreteNode;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nmodule.exports = {\n DEFAULT_HANDLE_KEY: ''\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * @private\n */\n\nfunction createError(type, name, messageFormat) {\n for (var _len = arguments.length, messageParams = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n messageParams[_key - 3] = arguments[_key];\n }\n\n var index = 0;\n var message = messageFormat.replace(/%s/g, function () {\n return String(messageParams[index++]);\n });\n var err = new Error(message);\n var error = Object.assign(err, {\n name: name,\n messageFormat: messageFormat,\n messageParams: messageParams,\n type: type,\n taalOpcodes: [2, 2] // skip frame (code=2) twice\n\n }); // In V8, Error objects keep the closure scope chain alive until the\n // err.stack property is accessed.\n\n if (error.stack === undefined) {\n // IE sets the stack only if error is thrown\n try {\n throw error;\n } catch (_unused) {}\n }\n\n return error;\n}\n\nmodule.exports = {\n create: function create(name, messageFormat) {\n for (var _len2 = arguments.length, messageParams = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n messageParams[_key2 - 2] = arguments[_key2];\n }\n\n return createError.apply(void 0, ['error', name, messageFormat].concat(messageParams));\n },\n createWarning: function createWarning(name, messageFormat) {\n for (var _len3 = arguments.length, messageParams = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n messageParams[_key3 - 2] = arguments[_key3];\n }\n\n return createError.apply(void 0, ['warn', name, messageFormat].concat(messageParams));\n }\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayFeatureFlags = {\n ENABLE_VARIABLE_CONNECTION_KEY: false,\n ENABLE_PARTIAL_RENDERING_DEFAULT: true,\n ENABLE_REACT_FLIGHT_COMPONENT_FIELD: false,\n ENABLE_REQUIRED_DIRECTIVES: false,\n ENABLE_RELAY_RESOLVERS: false,\n ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION: false,\n ENABLE_FRIENDLY_QUERY_NAME_GQL_URL: false,\n ENABLE_LOAD_QUERY_REQUEST_DEDUPING: true,\n ENABLE_DO_NOT_WRAP_LIVE_QUERY: false,\n ENABLE_NOTIFY_SUBSCRIPTION: false,\n BATCH_ASYNC_MODULE_UPDATES_FN: null,\n ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT: false,\n ENABLE_QUERY_RENDERER_OFFSCREEN_SUPPORT: false\n};\nmodule.exports = RelayFeatureFlags;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar profileHandlersByName = {};\nvar defaultProfiler = {\n stop: function stop() {}\n};\n/**\n * @public\n *\n * Instruments methods to allow profiling various parts of Relay. Profiling code\n * in Relay consists of three steps:\n *\n * - Instrument the function to be profiled.\n * - Attach handlers to the instrumented function.\n * - Run the code which triggers the handlers.\n *\n * Handlers attached to instrumented methods are called with an instrumentation\n * name and a callback that must be synchronously executed:\n *\n * instrumentedMethod.attachHandler(function(name, callback) {\n * const start = performance.now();\n * callback();\n * console.log('Duration', performance.now() - start);\n * });\n *\n * Handlers for profiles are callbacks that return a stop method:\n *\n * RelayProfiler.attachProfileHandler('profileName', (name, state) => {\n * const start = performance.now();\n * return function stop(name, state) {\n * console.log(`Duration (${name})`, performance.now() - start);\n * }\n * });\n */\n\nvar RelayProfiler = {\n /**\n * Instruments profiling for arbitrarily asynchronous code by a name.\n *\n * const timerProfiler = RelayProfiler.profile('timeout');\n * setTimeout(function() {\n * timerProfiler.stop();\n * }, 1000);\n *\n * RelayProfiler.attachProfileHandler('timeout', ...);\n *\n * Arbitrary state can also be passed into `profile` as a second argument. The\n * attached profile handlers will receive this as the second argument.\n */\n profile: function profile(name, state) {\n var handlers = profileHandlersByName[name];\n\n if (handlers && handlers.length > 0) {\n var stopHandlers = [];\n\n for (var ii = handlers.length - 1; ii >= 0; ii--) {\n var stopHandler = handlers[ii](name, state);\n stopHandlers.unshift(stopHandler);\n }\n\n return {\n stop: function stop(error) {\n stopHandlers.forEach(function (stopHandler) {\n return stopHandler(error);\n });\n }\n };\n }\n\n return defaultProfiler;\n },\n\n /**\n * Attaches a handler to profiles with the supplied name.\n */\n attachProfileHandler: function attachProfileHandler(name, handler) {\n if (!profileHandlersByName.hasOwnProperty(name)) {\n profileHandlersByName[name] = [];\n }\n\n profileHandlersByName[name].push(handler);\n },\n\n /**\n * Detaches a handler attached via `attachProfileHandler`.\n */\n detachProfileHandler: function detachProfileHandler(name, handler) {\n if (profileHandlersByName.hasOwnProperty(name)) {\n removeFromArray(profileHandlersByName[name], handler);\n }\n }\n};\n\nfunction removeFromArray(array, element) {\n var index = array.indexOf(element);\n\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\n\nmodule.exports = RelayProfiler;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar RelayObservable = require('../network/RelayObservable');\n\nvar invariant = require('invariant');\n\n/**\n * An implementation of a `ReplaySubject` for Relay Observables.\n *\n * Records events provided and synchronously plays them back to new subscribers,\n * as well as forwarding new asynchronous events.\n */\nvar RelayReplaySubject = /*#__PURE__*/function () {\n function RelayReplaySubject() {\n var _this = this;\n\n (0, _defineProperty2[\"default\"])(this, \"_complete\", false);\n (0, _defineProperty2[\"default\"])(this, \"_events\", []);\n (0, _defineProperty2[\"default\"])(this, \"_sinks\", new Set());\n (0, _defineProperty2[\"default\"])(this, \"_subscription\", []);\n this._observable = RelayObservable.create(function (sink) {\n _this._sinks.add(sink);\n\n var events = _this._events;\n\n for (var i = 0; i < events.length; i++) {\n if (sink.closed) {\n // Bail if an event made the observer unsubscribe.\n break;\n }\n\n var event = events[i];\n\n switch (event.kind) {\n case 'complete':\n sink.complete();\n break;\n\n case 'error':\n sink.error(event.error);\n break;\n\n case 'next':\n sink.next(event.data);\n break;\n\n default:\n event.kind;\n !false ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'RelayReplaySubject: Unknown event kind `%s`.', event.kind) : invariant(false) : void 0;\n }\n }\n\n return function () {\n _this._sinks[\"delete\"](sink);\n };\n });\n }\n\n var _proto = RelayReplaySubject.prototype;\n\n _proto.complete = function complete() {\n if (this._complete === true) {\n return;\n }\n\n this._complete = true;\n\n this._events.push({\n kind: 'complete'\n });\n\n this._sinks.forEach(function (sink) {\n return sink.complete();\n });\n };\n\n _proto.error = function error(_error) {\n if (this._complete === true) {\n return;\n }\n\n this._complete = true;\n\n this._events.push({\n kind: 'error',\n error: _error\n });\n\n this._sinks.forEach(function (sink) {\n return sink.error(_error);\n });\n };\n\n _proto.next = function next(data) {\n if (this._complete === true) {\n return;\n }\n\n this._events.push({\n kind: 'next',\n data: data\n });\n\n this._sinks.forEach(function (sink) {\n return sink.next(data);\n });\n };\n\n _proto.subscribe = function subscribe(observer) {\n var subscription = this._observable.subscribe(observer);\n\n this._subscription.push(subscription);\n\n return subscription;\n };\n\n _proto.unsubscribe = function unsubscribe() {\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(this._subscription),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var subscription = _step.value;\n subscription.unsubscribe();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this._subscription = [];\n };\n\n _proto.getObserverCount = function getObserverCount() {\n return this._sinks.size;\n };\n\n return RelayReplaySubject;\n}();\n\nmodule.exports = RelayReplaySubject;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectSpread2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar _require = require('../store/RelayStoreUtils'),\n getModuleComponentKey = _require.getModuleComponentKey,\n getModuleOperationKey = _require.getModuleOperationKey;\n\nfunction createPayloadFor3DField(name, operation, component, response) {\n var data = (0, _objectSpread2[\"default\"])({}, response);\n data[getModuleComponentKey(name)] = component;\n data[getModuleOperationKey(name)] = operation;\n return data;\n}\n\nmodule.exports = createPayloadFor3DField;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * Recursively \"deep\" freezes the supplied object.\n *\n * For convenience, and for consistency with the behavior of `Object.freeze`,\n * returns the now-frozen original object.\n */\n\nfunction deepFreeze(object) {\n Object.freeze(object);\n Object.getOwnPropertyNames(object).forEach(function (name) {\n // $FlowFixMe[prop-missing]\n var property = object[name];\n\n if (property && typeof property === 'object' && !Object.isFrozen(property)) {\n deepFreeze(property);\n }\n });\n return object;\n}\n\nmodule.exports = deepFreeze;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar id = 100000;\n\nfunction generateID() {\n return id++;\n}\n\nmodule.exports = generateID;","/**\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 * @format\n * @emails oncall+relay\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar RelayFeatureFlags = require('./RelayFeatureFlags');\n\nvar isEmptyObject = require('./isEmptyObject');\n\nvar stableCopy = require('./stableCopy');\n\nvar _require = require('../store/RelayModernSelector'),\n getDataIDsFromFragment = _require.getDataIDsFromFragment,\n getVariablesFromFragment = _require.getVariablesFromFragment,\n getSelector = _require.getSelector;\n\nfunction getFragmentIdentifier(fragmentNode, fragmentRef) {\n var selector = getSelector(fragmentNode, fragmentRef);\n var fragmentOwnerIdentifier = selector == null ? 'null' : selector.kind === 'SingularReaderSelector' ? selector.owner.identifier : '[' + selector.selectors.map(function (sel) {\n return sel.owner.identifier;\n }).join(',') + ']';\n var fragmentVariables = getVariablesFromFragment(fragmentNode, fragmentRef);\n var dataIDs = getDataIDsFromFragment(fragmentNode, fragmentRef);\n\n if (RelayFeatureFlags.ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION) {\n return fragmentOwnerIdentifier + '/' + fragmentNode.name + '/' + (fragmentVariables == null || isEmptyObject(fragmentVariables) ? '{}' : JSON.stringify(stableCopy(fragmentVariables))) + '/' + (typeof dataIDs === 'undefined' ? 'missing' : dataIDs == null ? 'null' : Array.isArray(dataIDs) ? '[' + dataIDs.join(',') + ']' : dataIDs);\n } else {\n var _JSON$stringify;\n\n return fragmentOwnerIdentifier + '/' + fragmentNode.name + '/' + JSON.stringify(stableCopy(fragmentVariables)) + '/' + ((_JSON$stringify = JSON.stringify(dataIDs)) !== null && _JSON$stringify !== void 0 ? _JSON$stringify : 'missing');\n }\n}\n\nmodule.exports = getFragmentIdentifier;","/**\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 * @format\n * @emails oncall+relay\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('./RelayConcreteNode'),\n REQUEST = _require.REQUEST,\n SPLIT_OPERATION = _require.SPLIT_OPERATION;\n\n/**\n * OperationLoaders can return either a NormalizationSplitOperation or\n * ConcreteRequest.\n */\nfunction getOperation(node) {\n switch (node.kind) {\n case REQUEST:\n return node.operation;\n\n case SPLIT_OPERATION:\n default:\n return node;\n }\n}\n\nmodule.exports = getOperation;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar getRefetchMetadata = require('./getRefetchMetadata');\n\nvar invariant = require('invariant');\n\nfunction getPaginationMetadata(fragmentNode, componentDisplayName) {\n var _fragmentNode$metadat, _fragmentNode$metadat2;\n\n var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),\n paginationRequest = _getRefetchMetadata.refetchableRequest,\n refetchMetadata = _getRefetchMetadata.refetchMetadata;\n\n var paginationMetadata = refetchMetadata.connection;\n !(paginationMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;\n var connectionPathInFragmentData = paginationMetadata.path;\n var connectionMetadata = ((_fragmentNode$metadat = (_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.connection) !== null && _fragmentNode$metadat !== void 0 ? _fragmentNode$metadat : [])[0];\n !(connectionMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getPaginationMetadata(): Expected fragment `%s` to include a ' + 'connection when using `%s`. Did you forget to add a @connection ' + 'directive to the connection field in the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0;\n var identifierField = refetchMetadata.identifierField;\n !(identifierField == null || typeof identifierField === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierField` to be a string.') : invariant(false) : void 0;\n return {\n connectionPathInFragmentData: connectionPathInFragmentData,\n identifierField: identifierField,\n paginationRequest: paginationRequest,\n paginationMetadata: paginationMetadata,\n stream: connectionMetadata.stream === true\n };\n}\n\nmodule.exports = getPaginationMetadata;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectSpread4 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectSpread2\"));\n\nvar invariant = require('invariant');\n\nvar warning = require(\"fbjs/lib/warning\");\n\nfunction getPaginationVariables(direction, count, cursor, baseVariables, extraVariables, paginationMetadata) {\n var _objectSpread3;\n\n var backwardMetadata = paginationMetadata.backward,\n forwardMetadata = paginationMetadata.forward;\n\n if (direction === 'backward') {\n var _objectSpread2;\n\n !(backwardMetadata != null && backwardMetadata.count != null && backwardMetadata.cursor != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected backward pagination metadata to be available. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(backwardMetadata.cursor), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain cursor variable `%s`. This variable is automatically ' + 'determined by Relay.', backwardMetadata.cursor) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(backwardMetadata.count), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain count variable `%s`. This variable is automatically ' + 'determined by Relay.', backwardMetadata.count) : void 0; // $FlowFixMe[cannot-spread-interface]\n\n var _paginationVariables = (0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])({}, baseVariables), extraVariables), {}, (_objectSpread2 = {}, (0, _defineProperty2[\"default\"])(_objectSpread2, backwardMetadata.cursor, cursor), (0, _defineProperty2[\"default\"])(_objectSpread2, backwardMetadata.count, count), _objectSpread2));\n\n if (forwardMetadata && forwardMetadata.cursor) {\n _paginationVariables[forwardMetadata.cursor] = null;\n }\n\n if (forwardMetadata && forwardMetadata.count) {\n _paginationVariables[forwardMetadata.count] = null;\n }\n\n return _paginationVariables;\n }\n\n !(forwardMetadata != null && forwardMetadata.count != null && forwardMetadata.cursor != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected forward pagination metadata to be available. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(forwardMetadata.cursor), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain cursor variable `%s`. This variable is automatically ' + 'determined by Relay.', forwardMetadata.cursor) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!extraVariables.hasOwnProperty(forwardMetadata.count), 'Relay: `UNSTABLE_extraVariables` provided by caller should not ' + 'contain count variable `%s`. This variable is automatically ' + 'determined by Relay.', forwardMetadata.count) : void 0; // $FlowFixMe[cannot-spread-interface]\n\n var paginationVariables = (0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])((0, _objectSpread4[\"default\"])({}, baseVariables), extraVariables), {}, (_objectSpread3 = {}, (0, _defineProperty2[\"default\"])(_objectSpread3, forwardMetadata.cursor, cursor), (0, _defineProperty2[\"default\"])(_objectSpread3, forwardMetadata.count, count), _objectSpread3));\n\n if (backwardMetadata && backwardMetadata.cursor) {\n paginationVariables[backwardMetadata.cursor] = null;\n }\n\n if (backwardMetadata && backwardMetadata.count) {\n paginationVariables[backwardMetadata.count] = null;\n }\n\n return paginationVariables;\n}\n\nmodule.exports = getPaginationVariables;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _require = require('../query/fetchQueryInternal'),\n getPromiseForActiveRequest = _require.getPromiseForActiveRequest;\n\nfunction getPendingOperationsForFragment(environment, fragmentNode, fragmentOwner) {\n var _pendingOperations$ma, _pendingOperations;\n\n var pendingOperations = [];\n var promise = getPromiseForActiveRequest(environment, fragmentOwner);\n\n if (promise != null) {\n pendingOperations = [fragmentOwner];\n } else {\n var _result$pendingOperat, _result$promise;\n\n var result = environment.getOperationTracker().getPendingOperationsAffectingOwner(fragmentOwner);\n pendingOperations = (_result$pendingOperat = result === null || result === void 0 ? void 0 : result.pendingOperations) !== null && _result$pendingOperat !== void 0 ? _result$pendingOperat : [];\n promise = (_result$promise = result === null || result === void 0 ? void 0 : result.promise) !== null && _result$promise !== void 0 ? _result$promise : null;\n }\n\n if (!promise) {\n return null;\n }\n\n var pendingOperationName = (_pendingOperations$ma = (_pendingOperations = pendingOperations) === null || _pendingOperations === void 0 ? void 0 : _pendingOperations.map(function (op) {\n return op.node.params.name;\n }).join(',')) !== null && _pendingOperations$ma !== void 0 ? _pendingOperations$ma : null;\n\n if (pendingOperationName == null || pendingOperationName.length === 0) {\n pendingOperationName = 'Unknown pending operation';\n }\n\n var fragmentName = fragmentNode.name;\n var promiseDisplayName = pendingOperationName === fragmentName ? \"Relay(\".concat(pendingOperationName, \")\") : \"Relay(\".concat(pendingOperationName, \":\").concat(fragmentName, \")\"); // $FlowExpectedError[prop-missing] Expando to annotate Promises.\n\n promise.displayName = promiseDisplayName;\n return {\n promise: promise,\n pendingOperations: pendingOperations\n };\n}\n\nmodule.exports = getPendingOperationsForFragment;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nfunction getRefetchMetadata(fragmentNode, componentDisplayName) {\n var _fragmentNode$metadat, _fragmentNode$metadat2;\n\n !(((_fragmentNode$metadat = fragmentNode.metadata) === null || _fragmentNode$metadat === void 0 ? void 0 : _fragmentNode$metadat.plural) !== true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected fragment `%s` not to be plural when using ' + '`%s`. Remove `@relay(plural: true)` from fragment `%s` ' + 'in order to use it with `%s`.', fragmentNode.name, componentDisplayName, fragmentNode.name, componentDisplayName) : invariant(false) : void 0;\n var refetchMetadata = (_fragmentNode$metadat2 = fragmentNode.metadata) === null || _fragmentNode$metadat2 === void 0 ? void 0 : _fragmentNode$metadat2.refetch;\n !(refetchMetadata != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected fragment `%s` to be refetchable when using `%s`. ' + 'Did you forget to add a @refetchable directive to the fragment?', componentDisplayName, fragmentNode.name) : invariant(false) : void 0; // handle both commonjs and es modules\n\n var refetchableRequest = refetchMetadata.operation[\"default\"] ? refetchMetadata.operation[\"default\"] : refetchMetadata.operation;\n var fragmentRefPathInResponse = refetchMetadata.fragmentPathInResult;\n !(typeof refetchableRequest !== 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected refetch query to be an ' + \"operation and not a string when using `%s`. If you're seeing this, \" + 'this is likely a bug in Relay.', componentDisplayName) : invariant(false) : void 0;\n var identifierField = refetchMetadata.identifierField;\n !(identifierField == null || typeof identifierField === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: getRefetchMetadata(): Expected `identifierField` to be a string.') : invariant(false) : void 0;\n return {\n fragmentRefPathInResponse: fragmentRefPathInResponse,\n identifierField: identifierField,\n refetchableRequest: refetchableRequest,\n refetchMetadata: refetchMetadata\n };\n}\n\nmodule.exports = getRefetchMetadata;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar _require = require('./RelayDefaultHandleKey'),\n DEFAULT_HANDLE_KEY = _require.DEFAULT_HANDLE_KEY;\n/**\n * @internal\n *\n * Helper to create a unique name for a handle field based on the handle name, handle key and\n * source field.\n */\n\n\nfunction getRelayHandleKey(handleName, key, fieldName) {\n if (key && key !== DEFAULT_HANDLE_KEY) {\n return \"__\".concat(key, \"_\").concat(handleName);\n }\n\n !(fieldName != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getRelayHandleKey: Expected either `fieldName` or `key` in `handle` to be provided') : invariant(false) : void 0;\n return \"__\".concat(fieldName, \"_\").concat(handleName);\n}\n\nmodule.exports = getRelayHandleKey;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar invariant = require('invariant');\n\nvar stableCopy = require('./stableCopy');\n\n/**\n * Returns a stable identifier for the given pair of `RequestParameters` +\n * variables.\n */\nfunction getRequestIdentifier(parameters, variables) {\n var requestID = parameters.cacheID != null ? parameters.cacheID : parameters.id;\n !(requestID != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'getRequestIdentifier: Expected request `%s` to have either a ' + 'valid `id` or `cacheID` property', parameters.name) : invariant(false) : void 0;\n return requestID + JSON.stringify(stableCopy(variables));\n}\n\nmodule.exports = getRequestIdentifier;","/**\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 * @emails oncall+relay\n * \n * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _createForOfIteratorHelper2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createForOfIteratorHelper\"));\n\nvar invariant = require('invariant');\n\nfunction getValueAtPath(data, path) {\n var result = data;\n\n var _iterator = (0, _createForOfIteratorHelper2[\"default\"])(path),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n\n if (result == null) {\n return null;\n }\n\n if (typeof key === 'number') {\n !Array.isArray(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected an array when extracting value at path. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n result = result[key];\n } else {\n !(typeof result === 'object' && !Array.isArray(result)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Relay: Expected an object when extracting value at path. ' + \"If you're seeing this, this is likely a bug in Relay.\") : invariant(false) : void 0;\n result = result[key];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return result;\n}\n\nmodule.exports = getValueAtPath;","/**\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 * @format\n * @emails oncall+relay\n */\n'use strict'; // $FlowFixMe[method-unbinding] added when improving typing for this parameters\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isEmptyObject(obj) {\n for (var _key in obj) {\n if (hasOwnProperty.call(obj, _key)) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = isEmptyObject;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nfunction isPromise(p) {\n return !!p && typeof p.then === 'function';\n}\n\nmodule.exports = isPromise;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * A fast test to determine if two values are equal scalars:\n * - compares scalars such as booleans, strings, numbers by value\n * - compares functions by identity\n * - returns false for complex values, since these cannot be cheaply tested for\n * equality (use `areEquals` instead)\n */\n\nfunction isScalarAndEqual(valueA, valueB) {\n return valueA === valueB && (valueA === null || typeof valueA !== 'object');\n}\n\nmodule.exports = isScalarAndEqual;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar hasWeakSetDefined = typeof WeakSet !== 'undefined';\nvar hasWeakMapDefined = typeof WeakMap !== 'undefined';\n/**\n * Recycles subtrees from `prevData` by replacing equal subtrees in `nextData`.\n */\n\nfunction recycleNodesInto(prevData, nextData) {\n if (prevData === nextData || typeof prevData !== 'object' || prevData instanceof Set || prevData instanceof Map || hasWeakSetDefined && prevData instanceof WeakSet || hasWeakMapDefined && prevData instanceof WeakMap || !prevData || typeof nextData !== 'object' || nextData instanceof Set || nextData instanceof Map || hasWeakSetDefined && nextData instanceof WeakSet || hasWeakMapDefined && nextData instanceof WeakMap || !nextData) {\n return nextData;\n }\n\n var canRecycle = false; // Assign local variables to preserve Flow type refinement.\n\n var prevArray = Array.isArray(prevData) ? prevData : null;\n var nextArray = Array.isArray(nextData) ? nextData : null;\n\n if (prevArray && nextArray) {\n canRecycle = nextArray.reduce(function (wasEqual, nextItem, ii) {\n var prevValue = prevArray[ii];\n var nextValue = recycleNodesInto(prevValue, nextItem);\n\n if (nextValue !== nextArray[ii]) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!Object.isFrozen(nextArray)) {\n nextArray[ii] = nextValue;\n }\n } else {\n nextArray[ii] = nextValue;\n }\n }\n\n return wasEqual && nextValue === prevArray[ii];\n }, true) && prevArray.length === nextArray.length;\n } else if (!prevArray && !nextArray) {\n // Assign local variables to preserve Flow type refinement.\n var prevObject = prevData;\n var nextObject = nextData;\n var prevKeys = Object.keys(prevObject);\n var nextKeys = Object.keys(nextObject);\n canRecycle = nextKeys.reduce(function (wasEqual, key) {\n var prevValue = prevObject[key];\n var nextValue = recycleNodesInto(prevValue, nextObject[key]);\n\n if (nextValue !== nextObject[key]) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!Object.isFrozen(nextObject)) {\n // $FlowFixMe[cannot-write]\n nextObject[key] = nextValue;\n }\n } else {\n // $FlowFixMe[cannot-write]\n nextObject[key] = nextValue;\n }\n }\n\n return wasEqual && nextValue === prevObject[key];\n }, true) && prevKeys.length === nextKeys.length;\n }\n\n return canRecycle ? prevData : nextData;\n}\n\nmodule.exports = recycleNodesInto;","/**\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 * @format\n * @emails oncall+relay\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nfunction registerEnvironmentWithDevTools(environment) {\n // Register this Relay Environment with Relay DevTools if it exists.\n // Note: this must always be the last step in the constructor.\n var _global = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : undefined;\n\n var devToolsHook = _global && _global.__RELAY_DEVTOOLS_HOOK__;\n\n if (devToolsHook) {\n devToolsHook.registerEnvironment(environment);\n }\n}\n\nmodule.exports = registerEnvironmentWithDevTools;","/**\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 * @emails oncall+relay\n * @format\n */\n'use strict';\n\nfunction reportMissingRequiredFields(environment, missingRequiredFields) {\n switch (missingRequiredFields.action) {\n case 'THROW':\n {\n var _missingRequiredField = missingRequiredFields.field,\n path = _missingRequiredField.path,\n owner = _missingRequiredField.owner; // This gives the consumer the chance to throw their own error if they so wish.\n\n environment.requiredFieldLogger({\n kind: 'missing_field.throw',\n owner: owner,\n fieldPath: path\n });\n throw new Error(\"Relay: Missing @required value at path '\".concat(path, \"' in '\").concat(owner, \"'.\"));\n }\n\n case 'LOG':\n missingRequiredFields.fields.forEach(function (_ref) {\n var path = _ref.path,\n owner = _ref.owner;\n environment.requiredFieldLogger({\n kind: 'missing_field.log',\n owner: owner,\n fieldPath: path\n });\n });\n break;\n\n default:\n {\n missingRequiredFields.action;\n }\n }\n}\n\nmodule.exports = reportMissingRequiredFields;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar resolvedPromise = Promise.resolve();\n/**\n * An alternative to setImmediate based on Promise.\n */\n\nfunction resolveImmediate(callback) {\n resolvedPromise.then(callback)[\"catch\"](throwNext);\n}\n\nfunction throwNext(error) {\n setTimeout(function () {\n throw error;\n }, 0);\n}\n\nmodule.exports = resolveImmediate;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n/**\n * Creates a copy of the provided value, ensuring any nested objects have their\n * keys sorted such that equivalent values would have identical JSON.stringify\n * results.\n */\n\nfunction stableCopy(value) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n\n if (Array.isArray(value)) {\n return value.map(stableCopy);\n }\n\n var keys = Object.keys(value).sort();\n var stable = {};\n\n for (var i = 0; i < keys.length; i++) {\n stable[keys[i]] = stableCopy(value[keys[i]]);\n }\n\n return stable;\n}\n\nmodule.exports = stableCopy;","/**\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 * @format\n */\n// flowlint ambiguous-object-type:error\n'use strict';\n\nvar _window, _window$performance;\n\nvar isPerformanceNowAvailable = typeof window !== 'undefined' && typeof ((_window = window) === null || _window === void 0 ? void 0 : (_window$performance = _window.performance) === null || _window$performance === void 0 ? void 0 : _window$performance.now) === 'function';\n\nfunction currentTimestamp() {\n if (isPerformanceNowAvailable) {\n return window.performance.now();\n }\n\n return Date.now();\n}\n\nfunction withDuration(cb) {\n var startTime = currentTimestamp();\n var result = cb();\n return [currentTimestamp() - startTime, result];\n}\n\nmodule.exports = withDuration;","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.6\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"HTMLElement\"in window,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,M=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},$=function(e){return M(F,e)};function z(e){return x($(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function L(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var G=\"function\"==typeof Symbol&&Symbol.for,Y=G?Symbol.for(\"react.memo\"):60115,W=G?Symbol.for(\"react.forward_ref\"):60112,q={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[W]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:q;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document ``\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a ``\"}:{};function de(){for(var e=[],t=0;t0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s1073741824))throw he(16,\"\".concat(t));return me.set(e,t),ye.set(t,e),t},Se=function(e,t){ve=t+1,me.set(e,t),ye.set(t,e)},we=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),be=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ee=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(Te,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(ke,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=je(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),M(e,t.name)},F).toString():\"\",p}var Ve=new Re,Fe=xe(),Me=o.createContext({shouldForwardProp:void 0,styleSheet:Ve,stylis:Fe}),$e=Me.Consumer,ze=o.createContext(void 0);function Be(){return c(Me)}function Le(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Be().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return xe({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement(Me.Provider,{value:d},o.createElement(ze.Provider,{value:u},e.children))}var Ge=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=Fe);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=Fe),this.name+e.hash},e}(),Ye=function(e){return e>=\"A\"&&e<=\"Z\"};function We(e){for(var t=\"\",n=0;n>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=M(this.baseHash,n.hash),c=\"\",l=0;l>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),Ke=o.createContext(void 0),Qe=Ke.Consumer;function et(){var e=c(Ke);if(!e)throw he(18);return e}function tt(e){var n=o.useContext(Ke),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(Ke.Provider,{value:r},e.children):null}var nt={},ot=new Set;function rt(e,r,s){var i=se(e),a=e,c=!L(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);nt[n]=(nt[n]||0)+1;var o=\"\".concat(n,\"-\").concat(z(v+n+nt[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return L(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Ze(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(Ke),m=Be(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Be(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[L(S)&&!A.has(S)?\"class\":\"className\"]=N,w.ref=s,u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function st(e,t){for(var n=[e[0]],o=0,r=t.length;o2&&Re.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function dt(n){for(var r=[],s=1;s meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function ht(t){for(var n=[],o=1;o\").concat(t,\"\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:e.instance.toString()},n),s=Pe();return s&&(r.nonce=s),[o.createElement(\"style\",t({},r,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new Re({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Le,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),yt={StyleSheet:Re,mainSheet:Ve};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var vt=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[vt]||(window[vt]=0),1===window[vt]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[vt]+=1);export{mt as ServerStyleSheet,$e as StyleSheetConsumer,Me as StyleSheetContext,Le as StyleSheetManager,Qe as ThemeConsumer,Ke as ThemeContext,tt as ThemeProvider,yt as __PRIVATE__,dt as createGlobalStyle,at as css,ut as default,se as isStyledComponent,ht as keyframes,ut as styled,et as useTheme,v as version,ft as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","import assign from 'object-assign';\nexport var merge = function merge(a, b) {\n var result = assign({}, a, b);\n\n for (var key in a) {\n var _assign;\n\n if (!a[key] || typeof b[key] !== 'object') continue;\n assign(result, (_assign = {}, _assign[key] = assign(a[key], b[key]), _assign));\n }\n\n return result;\n}; // sort object-value responsive styles\n\nvar sort = function sort(obj) {\n var next = {};\n Object.keys(obj).sort(function (a, b) {\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'base'\n });\n }).forEach(function (key) {\n next[key] = obj[key];\n });\n return next;\n};\n\nvar defaults = {\n breakpoints: [40, 52, 64].map(function (n) {\n return n + 'em';\n })\n};\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + n + \")\";\n};\n\nvar getValue = function getValue(n, scale) {\n return get(scale, n, n);\n};\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nexport var createParser = function createParser(config) {\n var cache = {};\n\n var parse = function parse(props) {\n var styles = {};\n var shouldSort = false;\n var isCacheDisabled = props.theme && props.theme.disableStyledSystemCache;\n\n for (var key in props) {\n if (!config[key]) continue;\n var sx = config[key];\n var raw = props[key];\n var scale = get(props.theme, sx.scale, sx.defaults);\n\n if (typeof raw === 'object') {\n cache.breakpoints = !isCacheDisabled && cache.breakpoints || get(props.theme, 'breakpoints', defaults.breakpoints);\n\n if (Array.isArray(raw)) {\n cache.media = !isCacheDisabled && cache.media || [null].concat(cache.breakpoints.map(createMediaQuery));\n styles = merge(styles, parseResponsiveStyle(cache.media, sx, scale, raw, props));\n continue;\n }\n\n if (raw !== null) {\n styles = merge(styles, parseResponsiveObject(cache.breakpoints, sx, scale, raw, props));\n shouldSort = true;\n }\n\n continue;\n }\n\n assign(styles, sx(raw, scale, props));\n } // sort object-based responsive styles\n\n\n if (shouldSort) {\n styles = sort(styles);\n }\n\n return styles;\n };\n\n parse.config = config;\n parse.propNames = Object.keys(config);\n parse.cache = cache;\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'config';\n });\n\n if (keys.length > 1) {\n keys.forEach(function (key) {\n var _createParser;\n\n parse[key] = createParser((_createParser = {}, _createParser[key] = config[key], _createParser));\n });\n }\n\n return parse;\n};\n\nvar parseResponsiveStyle = function parseResponsiveStyle(mediaQueries, sx, scale, raw, _props) {\n var styles = {};\n raw.slice(0, mediaQueries.length).forEach(function (value, i) {\n var media = mediaQueries[i];\n var style = sx(value, scale, _props);\n\n if (!media) {\n assign(styles, style);\n } else {\n var _assign2;\n\n assign(styles, (_assign2 = {}, _assign2[media] = assign({}, styles[media], style), _assign2));\n }\n });\n return styles;\n};\n\nvar parseResponsiveObject = function parseResponsiveObject(breakpoints, sx, scale, raw, _props) {\n var styles = {};\n\n for (var key in raw) {\n var breakpoint = breakpoints[key];\n var value = raw[key];\n var style = sx(value, scale, _props);\n\n if (!breakpoint) {\n assign(styles, style);\n } else {\n var _assign3;\n\n var media = createMediaQuery(breakpoint);\n assign(styles, (_assign3 = {}, _assign3[media] = assign({}, styles[media], style), _assign3));\n }\n }\n\n return styles;\n};\n\nexport var createStyleFunction = function createStyleFunction(_ref) {\n var properties = _ref.properties,\n property = _ref.property,\n scale = _ref.scale,\n _ref$transform = _ref.transform,\n transform = _ref$transform === void 0 ? getValue : _ref$transform,\n defaultScale = _ref.defaultScale;\n properties = properties || [property];\n\n var sx = function sx(value, scale, _props) {\n var result = {};\n var n = transform(value, scale, _props);\n if (n === null) return;\n properties.forEach(function (prop) {\n result[prop] = n;\n });\n return result;\n };\n\n sx.scale = scale;\n sx.defaults = defaultScale;\n return sx;\n}; // new v5 API\n\nexport var system = function system(args) {\n if (args === void 0) {\n args = {};\n }\n\n var config = {};\n Object.keys(args).forEach(function (key) {\n var conf = args[key];\n\n if (conf === true) {\n // shortcut definition\n config[key] = createStyleFunction({\n property: key,\n scale: key\n });\n return;\n }\n\n if (typeof conf === 'function') {\n config[key] = conf;\n return;\n }\n\n config[key] = createStyleFunction(conf);\n });\n var parser = createParser(config);\n return parser;\n};\nexport var compose = function compose() {\n var config = {};\n\n for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {\n parsers[_key] = arguments[_key];\n }\n\n parsers.forEach(function (parser) {\n if (!parser || !parser.config) return;\n assign(config, parser.config);\n });\n var parser = createParser(config);\n return parser;\n};\n","import { system, get } from '@styled-system/core';\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getWidth = function getWidth(n, scale) {\n return get(scale, n, !isNumber(n) || n > 1 ? n : n * 100 + '%');\n};\n\nvar config = {\n width: {\n property: 'width',\n scale: 'sizes',\n transform: getWidth\n },\n height: {\n property: 'height',\n scale: 'sizes'\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes'\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes'\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes'\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes'\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes'\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true\n};\nexport var layout = system(config);\nexport default layout;\n","import { system } from '@styled-system/core';\nvar config = {\n color: {\n property: 'color',\n scale: 'colors'\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors'\n },\n opacity: true\n};\nconfig.bg = config.backgroundColor;\nexport var color = system(config);\nexport default color;\n","import { system } from '@styled-system/core';\nvar defaults = {\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar config = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts'\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n defaultScale: defaults.fontSizes\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights'\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights'\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings'\n },\n textAlign: true,\n fontStyle: true\n};\nexport var typography = system(config);\nexport default typography;\n","import { system } from '@styled-system/core';\nvar config = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true\n};\nexport var flexbox = system(config);\nexport default flexbox;\n","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n gridGap: {\n property: 'gridGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumnGap: {\n property: 'gridColumnGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridRowGap: {\n property: 'gridRowGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridAutoRows: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\nexport var grid = system(config);\nexport default grid;\n","import { system } from '@styled-system/core';\nvar config = {\n border: {\n property: 'border',\n scale: 'borders'\n },\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths'\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles'\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors'\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii'\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders'\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii'\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders'\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders'\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders'\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders'\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders'\n }\n};\nconfig.borderTopWidth = {\n property: 'borderTopWidth',\n scale: 'borderWidths'\n};\nconfig.borderTopColor = {\n property: 'borderTopColor',\n scale: 'colors'\n};\nconfig.borderTopStyle = {\n property: 'borderTopStyle',\n scale: 'borderStyles'\n};\nconfig.borderTopLeftRadius = {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n};\nconfig.borderTopRightRadius = {\n property: 'borderTopRightRadius',\n scale: 'radii'\n};\nconfig.borderBottomWidth = {\n property: 'borderBottomWidth',\n scale: 'borderWidths'\n};\nconfig.borderBottomColor = {\n property: 'borderBottomColor',\n scale: 'colors'\n};\nconfig.borderBottomStyle = {\n property: 'borderBottomStyle',\n scale: 'borderStyles'\n};\nconfig.borderBottomLeftRadius = {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n};\nconfig.borderBottomRightRadius = {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n};\nconfig.borderLeftWidth = {\n property: 'borderLeftWidth',\n scale: 'borderWidths'\n};\nconfig.borderLeftColor = {\n property: 'borderLeftColor',\n scale: 'colors'\n};\nconfig.borderLeftStyle = {\n property: 'borderLeftStyle',\n scale: 'borderStyles'\n};\nconfig.borderRightWidth = {\n property: 'borderRightWidth',\n scale: 'borderWidths'\n};\nconfig.borderRightColor = {\n property: 'borderRightColor',\n scale: 'colors'\n};\nconfig.borderRightStyle = {\n property: 'borderRightStyle',\n scale: 'borderStyles'\n};\nexport var border = system(config);\nexport default border;\n","import { system } from '@styled-system/core';\nvar config = {\n background: true,\n backgroundImage: true,\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true\n};\nconfig.bgImage = config.backgroundImage;\nconfig.bgSize = config.backgroundSize;\nconfig.bgPosition = config.backgroundPosition;\nconfig.bgRepeat = config.backgroundRepeat;\nexport var background = system(config);\nexport default background;\n","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n position: true,\n zIndex: {\n property: 'zIndex',\n scale: 'zIndices'\n },\n top: {\n property: 'top',\n scale: 'space',\n defaultScale: defaults.space\n },\n right: {\n property: 'right',\n scale: 'space',\n defaultScale: defaults.space\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n left: {\n property: 'left',\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nexport var position = system(config);\nexport default position;\n","import { get, system, compose } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getMargin = function getMargin(n, scale) {\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n var isNegative = n < 0;\n var absolute = Math.abs(n);\n var value = get(scale, absolute, absolute);\n\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n\n return value * (isNegative ? -1 : 1);\n};\n\nvar configs = {};\nconfigs.margin = {\n margin: {\n property: 'margin',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n }\n};\nconfigs.margin.m = configs.margin.margin;\nconfigs.margin.mt = configs.margin.marginTop;\nconfigs.margin.mr = configs.margin.marginRight;\nconfigs.margin.mb = configs.margin.marginBottom;\nconfigs.margin.ml = configs.margin.marginLeft;\nconfigs.margin.mx = configs.margin.marginX;\nconfigs.margin.my = configs.margin.marginY;\nconfigs.padding = {\n padding: {\n property: 'padding',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nconfigs.padding.p = configs.padding.padding;\nconfigs.padding.pt = configs.padding.paddingTop;\nconfigs.padding.pr = configs.padding.paddingRight;\nconfigs.padding.pb = configs.padding.paddingBottom;\nconfigs.padding.pl = configs.padding.paddingLeft;\nconfigs.padding.px = configs.padding.paddingX;\nconfigs.padding.py = configs.padding.paddingY;\nexport var margin = system(configs.margin);\nexport var padding = system(configs.padding);\nexport var space = compose(margin, padding);\nexport default space;\n","import { system } from '@styled-system/core';\nexport var shadow = system({\n boxShadow: {\n property: 'boxShadow',\n scale: 'shadows'\n },\n textShadow: {\n property: 'textShadow',\n scale: 'shadows'\n }\n});\nexport default shadow;\n","function _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\n// based on https://github.com/developit/dlv\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return n * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\nexport var responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = get(theme, 'breakpoints', defaultBreakpoints);\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var key in styles) {\n var value = typeof styles[key] === 'function' ? styles[key](theme) : styles[key];\n if (value == null) continue;\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\nexport var css = function css(args) {\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, {}, props.theme || props);\n\n var result = {};\n var obj = typeof args === 'function' ? args(theme) : args;\n var styles = responsive(obj)(theme);\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (key === 'variant') {\n var variant = css(get(theme, val))(theme);\n result = _extends({}, result, {}, variant);\n continue;\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = get(aliases, key, key);\n var scaleName = get(scales, prop);\n var scale = get(theme, scaleName, get(theme, prop, {}));\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (multiples[prop]) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\nexport default css;\n","import { get, createParser } from '@styled-system/core';\nimport css from '@styled-system/css';\nexport var variant = function variant(_ref) {\n var _config;\n\n var scale = _ref.scale,\n _ref$prop = _ref.prop,\n prop = _ref$prop === void 0 ? 'variant' : _ref$prop,\n _ref$variants = _ref.variants,\n variants = _ref$variants === void 0 ? {} : _ref$variants,\n key = _ref.key;\n var sx;\n\n if (Object.keys(variants).length) {\n sx = function sx(value, scale, props) {\n return css(get(scale, value, null))(props.theme);\n };\n } else {\n sx = function sx(value, scale) {\n return get(scale, value, null);\n };\n }\n\n sx.scale = scale || key;\n sx.defaults = variants;\n var config = (_config = {}, _config[prop] = sx, _config);\n var parser = createParser(config);\n return parser;\n};\nexport default variant;\nexport var buttonStyle = variant({\n key: 'buttons'\n});\nexport var textStyle = variant({\n key: 'textStyles',\n prop: 'textStyle'\n});\nexport var colorStyle = variant({\n key: 'colorStyles',\n prop: 'colors'\n});\n","import { createStyleFunction, createParser } from '@styled-system/core'; // v4 api shims\n\nimport layout from '@styled-system/layout';\nimport color from '@styled-system/color';\nimport typography from '@styled-system/typography';\nimport flexbox from '@styled-system/flexbox';\nimport grid from '@styled-system/grid';\nimport border from '@styled-system/border';\nimport background from '@styled-system/background';\nimport position from '@styled-system/position';\nexport { get, createParser, createStyleFunction, compose, system } from '@styled-system/core';\nexport { margin, padding, space } from '@styled-system/space';\nexport { color } from '@styled-system/color';\nexport { layout } from '@styled-system/layout';\nexport { typography } from '@styled-system/typography';\nexport { flexbox } from '@styled-system/flexbox';\nexport { border } from '@styled-system/border';\nexport { background } from '@styled-system/background';\nexport { position } from '@styled-system/position';\nexport { grid } from '@styled-system/grid';\nexport { shadow } from '@styled-system/shadow';\nexport { default as boxShadow, default as textShadow } from '@styled-system/shadow';\nexport { variant, buttonStyle, textStyle, colorStyle } from '@styled-system/variant';\nvar width = layout.width,\n height = layout.height,\n minWidth = layout.minWidth,\n minHeight = layout.minHeight,\n maxWidth = layout.maxWidth,\n maxHeight = layout.maxHeight,\n size = layout.size,\n verticalAlign = layout.verticalAlign,\n display = layout.display,\n overflow = layout.overflow,\n overflowX = layout.overflowX,\n overflowY = layout.overflowY;\nvar opacity = color.opacity;\nvar fontSize = typography.fontSize,\n fontFamily = typography.fontFamily,\n fontWeight = typography.fontWeight,\n lineHeight = typography.lineHeight,\n textAlign = typography.textAlign,\n fontStyle = typography.fontStyle,\n letterSpacing = typography.letterSpacing;\nvar alignItems = flexbox.alignItems,\n alignContent = flexbox.alignContent,\n justifyItems = flexbox.justifyItems,\n justifyContent = flexbox.justifyContent,\n flexWrap = flexbox.flexWrap,\n flexDirection = flexbox.flexDirection,\n flex = flexbox.flex,\n flexGrow = flexbox.flexGrow,\n flexShrink = flexbox.flexShrink,\n flexBasis = flexbox.flexBasis,\n justifySelf = flexbox.justifySelf,\n alignSelf = flexbox.alignSelf,\n order = flexbox.order;\nvar gridGap = grid.gridGap,\n gridColumnGap = grid.gridColumnGap,\n gridRowGap = grid.gridRowGap,\n gridColumn = grid.gridColumn,\n gridRow = grid.gridRow,\n gridAutoFlow = grid.gridAutoFlow,\n gridAutoColumns = grid.gridAutoColumns,\n gridAutoRows = grid.gridAutoRows,\n gridTemplateColumns = grid.gridTemplateColumns,\n gridTemplateRows = grid.gridTemplateRows,\n gridTemplateAreas = grid.gridTemplateAreas,\n gridArea = grid.gridArea;\nvar borderWidth = border.borderWidth,\n borderStyle = border.borderStyle,\n borderColor = border.borderColor,\n borderTop = border.borderTop,\n borderRight = border.borderRight,\n borderBottom = border.borderBottom,\n borderLeft = border.borderLeft,\n borderRadius = border.borderRadius;\nvar backgroundImage = background.backgroundImage,\n backgroundSize = background.backgroundSize,\n backgroundPosition = background.backgroundPosition,\n backgroundRepeat = background.backgroundRepeat;\nvar zIndex = position.zIndex,\n top = position.top,\n right = position.right,\n bottom = position.bottom,\n left = position.left;\nexport { default as borders } from '@styled-system/border';\nexport { width, height, minWidth, minHeight, maxWidth, maxHeight, size, verticalAlign, display, overflow, overflowX, overflowY // color\n, opacity // typography\n, fontSize, fontFamily, fontWeight, lineHeight, textAlign, fontStyle, letterSpacing // flexbox\n, alignItems, alignContent, justifyItems, justifyContent, flexWrap, flexDirection, flex, flexGrow, flexShrink, flexBasis, justifySelf, alignSelf, order // grid\n, gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea // border\n, borderWidth, borderStyle, borderColor, borderTop, borderRight, borderBottom, borderLeft, borderRadius // background\n, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat // position\n, zIndex, top, right, bottom, left }; // v4 style API shim\n\nexport var style = function style(_ref) {\n var prop = _ref.prop,\n cssProperty = _ref.cssProperty,\n alias = _ref.alias,\n key = _ref.key,\n transformValue = _ref.transformValue,\n scale = _ref.scale,\n properties = _ref.properties;\n var config = {};\n config[prop] = createStyleFunction({\n properties: properties,\n property: cssProperty || prop,\n scale: key,\n defaultScale: scale,\n transform: transformValue\n });\n if (alias) config[alias] = config[prop];\n var parse = createParser(config);\n return parse;\n};\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\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\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export function _tagged_template_literal(strings, raw) {\n if (!raw) raw = strings.slice(0);\n\n return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } }));\n}\nexport { _tagged_template_literal as _ };\n","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\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; }\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; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n // eslint-disable-next-line react/display-name\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","export * from \"./iconsManifest.mjs\";\nexport * from \"./iconBase.mjs\";\nexport * from \"./iconContext.mjs\";"],"names":["memoize","fn","cache","Object","create","arg","undefined","GoogleOAuthContext","react__WEBPACK_IMPORTED_MODULE_0__","createContext","GoogleOAuthProvider","clientId","onScriptLoadSuccess","onScriptLoadError","children","scriptLoadedSuccessfully","useLoadGsiScript","options","setScriptLoadedSuccessfully","useState","onScriptLoadSuccessRef","useRef","current","onScriptLoadErrorRef","useEffect","scriptTag","document","createElement","src","async","defer","onload","_a","call","onerror","body","appendChild","removeChild","contextValue","useMemo","Provider","value","useGoogleLogin","flow","scope","onSuccess","onError","onNonOAuthError","overrideScope","state","props","useGoogleOAuth","context","useContext","clientRef","onSuccessRef","onErrorRef","onNonOAuthErrorRef","clientMethod","client","window","google","accounts","oauth2","client_id","callback","_b","response","error","error_callback","nonOAuthError","loginImplicitFlow","useCallback","requestAccessToken","overrideConfig","loginAuthCodeFlow","requestCode","captureException","exception","captureContext","_hub_js__WEBPACK_IMPORTED_MODULE_0__","Gd","configureScope","withScope","Hub","__init","_stack","constructor","_scope_js__WEBPACK_IMPORTED_MODULE_0__","s","_version","prototype","getStackTop","bindClient","isOlderThan","version","top","setupIntegrations","pushScope","clone","getScope","getStack","push","getClient","popScope","length","pop","hint","eventId","_lastEventId","event_id","_sentry_utils__WEBPACK_IMPORTED_MODULE_1__","DM","syntheticException","_withClient","originalException","captureMessage","message","level","captureEvent","event","type","lastEventId","addBreadcrumb","breadcrumb","beforeBreadcrumb","maxBreadcrumbs","getOptions","mergedBreadcrumb","timestamp","_sentry_utils__WEBPACK_IMPORTED_MODULE_2__","yW","finalBreadcrumb","_sentry_utils__WEBPACK_IMPORTED_MODULE_3__","Cf","setUser","user","setTags","tags","setExtras","extras","setTag","key","setExtra","extra","setContext","name","run","oldHub","makeMain","getIntegration","integration","_oO","__SENTRY_DEBUG__","kg","warn","id","startTransaction","customSamplingContext","_callExtensionMethod","traceHeaders","captureSession","endSession","_sendSessionUpdate","layer","session","getSession","_session_js__WEBPACK_IMPORTED_MODULE_4__","RJ","setSession","startSession","release","environment","global","_sentry_utils__WEBPACK_IMPORTED_MODULE_5__","R","userAgent","navigator","Hv","getUser","currentSession","status","CT","shouldSendDefaultPii","Boolean","sendDefaultPii","method","args","sentry","carrier","__SENTRY__","extensions","apply","getMainCarrier","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","_sentry_utils__WEBPACK_IMPORTED_MODULE_6__","KV","getHubFromActiveDomain","activeDomain","domain","active","registryHubTopStack","_Oo","Y","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_session_js__WEBPACK_IMPORTED_MODULE_0__","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setSpan","span","getSpan","getTransaction","transaction","update","updatedScope","keys","PO","contexts","clear","maxCrumbs","Math","min","slice","clearBreadcrumbs","addAttachment","attachment","getAttachments","clearAttachments","applyToEvent","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","sdkProcessingMetadata","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","index","cW","resolve","reject","processor","result","_sentry_utils__WEBPACK_IMPORTED_MODULE_4__","log","J8","then","final","forEach","Array","isArray","concat","addGlobalEventProcessor","makeSession","startingTime","_sentry_utils__WEBPACK_IMPORTED_MODULE_0__","ph","sid","init","started","duration","errors","ignoreDuration","toJSON","Jr","Date","toISOString","did","attrs","ip_address","ipAddress","user_agent","updateSession","email","username","closeSession","errorCallback","activeTransaction","utils","x1","logger","setStatus","toTraceparent","sample","samplingContext","rate","sampleRate","zu","sampled","setMetadata","transactionSampling","tracesSampler","Number","parentSampled","tracesSampleRate","is","i2","JSON","stringify","random","op","_startTransaction","transactionContext","esm_transaction","initSpanRecorder","_experiments","maxSpans","startIdleTransaction","idleTimeout","finalTimeout","onScope","idletransaction","io","addExtensionMethods","cu","node","_autoloadDatabaseIntegrations","packageToIntegrationMapping","mongodb","l$","module","Mongo","mongoose","mysql","Mysql","pg","Postgres","mappedPackages","filter","moduleName","$y","map","pkg","e","p","integrations","instrument","o","DEFAULT_IDLE_TIMEOUT","DEFAULT_FINAL_TIMEOUT","IdleTransactionSpanRecorder","_span_js__WEBPACK_IMPORTED_MODULE_0__","gB","_pushActivity","_popActivity","transactionSpanId","maxlen","add","spanId","finish","endTimestamp","_I","IdleTransaction","_transaction_js__WEBPACK_IMPORTED_MODULE_2__","activities","__init2","_heartbeatCounter","__init3","_finished","__init4","_beforeFinishCallbacks","_idleHub","_idleTimeout","_finalTimeout","_onScope","clearActiveTransaction","_startIdleTimeout","setTimeout","spanRecorder","spans","keepSpan","startTimestamp","registerBeforeFinishCallback","_pingHeartbeat","_cancelIdleTimeout","_idleTimeoutID","clearTimeout","_beat","heartbeatString","join","_prevHeartbeatString","SpanRecorder","_maxlen","Span","traceId","substring","__init5","__init6","data","spanContext","parentSpanId","description","startChild","childSpan","setData","setHttpStatus","httpStatus","String","spanStatus","spanStatusfromHttpCode","isSuccess","sampledString","toContext","updateWithContext","_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_3__","h","parent_span_id","span_id","trace_id","start_timestamp","Transaction","Dr","_measurements","_hub","_sentry_hub__WEBPACK_IMPORTED_MODULE_1__","_name","metadata","_trimEnd","trimEnd","newName","source","setName","setMeasurement","unit","newMetadata","recordDroppedEvent","finishedSpans","reduce","prev","baggage","getBaggage","transaction_info","measurements","_sentry_utils_esm_buildPolyfills__WEBPACK_IMPORTED_MODULE_4__","existingBaggage","finalBaggage","Gp","_populateBaggageWithSentryValues","Hn","publicKey","public_key","getDsn","sample_rate","toLocaleString","useGrouping","maximumFractionDigits","segment","user_segment","Hk","hasTracingEnabled","maybeOptions","_sentry_hub__WEBPACK_IMPORTED_MODULE_0__","getActiveTransaction","maybeHub","msToSec","time","BAGGAGE_HEADER_NAME","SENTRY_BAGGAGE_KEY_PREFIX_REGEX","createBaggage","initItems","baggageString","mutable","getSentryBaggageItems","isBaggageMutable","parseBaggageHeader","inputBaggageValue","includeThirdPartyEntries","_is_js__WEBPACK_IMPORTED_MODULE_1__","HD","baggageEntries","split","entry","trim","test","baggageObj","curr","val","baggageKey","decodeURIComponent","_logger_js__WEBPACK_IMPORTED_MODULE_0__","mergeAndSerializeBaggage","incomingBaggage","thirdPartyBaggageHeader","headerBaggage","thirdPartyHeaderBaggage","baggageEntry","encodeURIComponent","newVal","parseBaggageSetMutability","rawBaggageValue","sentryTraceHeader","htmlTreeAsString","elem","keyAttrs","nextStr","currentElem","out","height","len","_htmlElementAsString","el","className","classes","attr","i","tagName","toLowerCase","keyAttrPairs","keyAttr","getAttribute","keyAttrPair","_is_js__WEBPACK_IMPORTED_MODULE_0__","allowedAttrs","parentNode","reverse","getLocationHref","_global_js__WEBPACK_IMPORTED_MODULE_1__","location","href","oO","_nullishCoalesce","lhs","rhsFn","fallbackGlobalObject","getGlobalObject","_node_js__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","g","self","getGlobalSingleton","creator","obj","lastHref","debounceTimerID","lastCapturedEvent","_global_js__WEBPACK_IMPORTED_MODULE_0__","handlers","instrumented","addInstrumentationHandler","_logger_js__WEBPACK_IMPORTED_MODULE_1__","RU","console","_object_js__WEBPACK_IMPORTED_MODULE_3__","hl","originalConsoleMethod","triggerHandlers","instrumentDOM","triggerDOMHandler","bind","globalDOMEventHandler","makeDOMEventHandler","addEventListener","proto","target","hasOwnProperty","originalAddEventListener","listener","__sentry_instrumentation_handlers__","handlerForType","refCount","handler","originalRemoveEventListener","instrumentXHR","xhrproto","XMLHttpRequest","originalOpen","xhr","url","xhrInfo","__sentry_xhr__","_is_js__WEBPACK_IMPORTED_MODULE_5__","toUpperCase","match","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","now","onreadystatechange","original","readyStateArgs","originalSend","_supports_js__WEBPACK_IMPORTED_MODULE_4__","t$","originalFetch","handlerData","fetchData","getFetchMethod","fetchArgs","V9","Request","getFetchUrl","instrumentHistory","Bf","oldOnPopState","onpopstate","to","from","history","historyReplacementFunction","originalHistoryFunction","_oldOnErrorHandler","msg","line","column","arguments","_oldOnUnhandledRejectionHandler","onunhandledrejection","_stacktrace_js__WEBPACK_IMPORTED_MODULE_2__","$P","globalListener","shouldSkipDOMEvent","isContentEditable","shouldShortcircuitPreviousDebounce","previous","objectToString","toString","isError","wat","isInstanceOf","Error","isBuiltin","ty","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","isNaN","base","_e","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","enabled","enable","disable","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","v","num","replace","c","r","parseUrl","query","fragment","host","path","protocol","relative","getFirstException","values","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","stripUrlQueryAndFragment","urlPath","checkOrSetAlreadyCaught","__sentry_captured__","_object_js__WEBPACK_IMPORTED_MODULE_1__","xp","err","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","process","dynamicRequire","mod","request","require","loadModule","cwd","fill","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","defineProperty","writable","configurable","getOriginalFunction","func","urlEncode","object","convertToPlainObject","VZ","stack","getOwnProperties","cO","newObj","serializeEventTarget","currentTarget","CustomEvent","detail","kK","_browser_js__WEBPACK_IMPORTED_MODULE_1__","extractedProps","property","extractExceptionKeysForMessage","maxLength","sort","_string_js__WEBPACK_IMPORTED_MODULE_2__","$G","includedKeys","serialized","dropUndefinedKeys","inputValue","_dropUndefinedKeys","memoizationMap","memoVal","get","returnValue","set","item","Map","createStackParser","parsers","sortedParsers","a","b","skipFirst","frames","parser","frame","stripSentryFramesAndReverse","localStack","firstFrameFunction","function","lastFrameFunction","indexOf","filename","stackParserFromStackParserOptions","stackParser","defaultFunctionName","getFunctionName","truncate","str","max","substr","safeJoin","input","delimiter","output","isMatchingPattern","pattern","Kj","supportsFetch","Headers","Response","isNativeFetch","supportsNativeFetch","fetch","doc","sandbox","hidden","head","contentWindow","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","States","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","_","_state","PENDING","_handlers","executor","_resolve","_reject","onfulfilled","onrejected","_executeHandlers","catch","finally","onfinally","isRejected","_setResult","RESOLVED","REJECTED","_value","cachedHandlers","dateTimestampSource","nowSeconds","platformPerformance","_node_js__WEBPACK_IMPORTED_MODULE_1__","getNodePerformance","perfHooks","performance","getBrowserPerformance","timeOrigin","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","browserPerformanceTimeOrigin","performanceNow","dateNow","timeOriginDelta","abs","navigationStart","timing","navigationStartDelta","hasNavigationStart","_global","SENTRY_RELEASE","_typeof","Symbol","iterator","loadParams","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","findScript","scripts","querySelectorAll","script","injectScript","params","queryString","advancedFraudSignals","headOrBody","registerWrapper","stripe","_registerWrapper","stripePromise","initStripe","maybeStripe","_arrayWithoutHoles","arr2","_iterableToArray","iter","_nonIterableSpread","validateLoadParams","errorMessage","loadStripeCalled","loadStripe","_len","_key","loadScript","Promise","Stripe","setLoadParameters","exports","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","requestData","requestHeaders","headers","isFormData","auth","password","unescape","Authorization","btoa","fullPath","baseURL","open","paramsSerializer","timeout","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","Axios","mergeConfig","createInstance","defaultConfig","instance","extend","axios","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","__CANCEL__","resolvePromise","token","throwIfRequested","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","shift","getUri","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","code","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","number","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","prop","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","parse","maxContentLength","maxBodyLength","thisArg","encode","serializedParams","parts","isDate","hashmarkIndex","relativeURL","write","expires","secure","cookie","isNumber","toGMTString","remove","payload","originURL","msie","urlParsingNode","resolveURL","setAttribute","search","hash","hostname","port","pathname","charAt","requestURL","parsed","normalizedName","ignoreDuplicateOf","getPrototypeOf","isFunction","l","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","stripBOM","content","charCodeAt","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classNames","argType","inner","default","NO_PROVIDER","__webpack_exports__","Z","useValue","selectors","hooks","createContext$1","displayName","selector","_ref","_objectWithoutPropertiesLoose","excluded","sourceKeys","element","pairs","pairSplitRegExp","dec","opt","decode","pair","eq_idx","tryDecode","serialize","enc","fieldContentRegExp","maxAge","floor","toUTCString","httpOnly","sameSite","requiredArgs","required","toInteger","dirtyNumber","NaN","ceil","addDays","dirtyDate","dirtyAmount","_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__","date","_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__","amount","_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__","setDate","getDate","addMonths","dayOfMonth","endOfDesiredMonth","getTime","setMonth","getMonth","setFullYear","getFullYear","toDate","argument","argStr","aStackPool","bStackPool","aStack","bStack","eq","objToStr","multiline","ignoreCase","size","valueOf","makeEmptyFunction","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","condition","format","d","f","argIndex","framesToPop","__WEBPACK_AMD_DEFINE_FACTORY__","factory","attributes","converter","api","escape","stringifiedAttributes","attributeName","json","jar","getJSON","withConverter","root","getRawTag","symToStringTag","toStringTag","freeGlobal","objectProto","nativeObjectToString","isOwn","tag","unmasked","freeSelf","Function","baseGetTag","_extends","assign","_excluded$z","_excluded2$2","templateTitle","noindex","nofollow","norobots","defaultOpenGraphImageWidth","defaultOpenGraphImageHeight","defaultOpenGraphVideoWidth","defaultOpenGraphVideoHeight","buildOpenGraphMediaTags","mediaType","media","_temp","defaultWidth","defaultHeight","medium","alt","secureUrl","width","buildTags","_config$openGraph","_config$openGraph3","_config$additionalLin","_config$openGraph2","_config$openGraph4","tagsToRender","titleTemplate","updatedTitle","title","defaultTitle","dangerouslySetAllPagesToNoIndex","dangerouslySetAllPagesToNoFollow","robotsParams","robotsProps","_config$robotsProps","nosnippet","maxSnippet","maxImagePreview","maxVideoPreview","noarchive","noimageindex","notranslate","unavailableAfter","themeColor","mobileAlternate","rel","languageAlternates","languageAlternate","hrefLang","twitter","cardType","site","handle","facebook","appId","openGraph","canonical","profile","firstName","lastName","gender","book","authors","author","isbn","releaseDate","article","publishedTime","modifiedTime","expirationTime","section","video","actors","actor","role","directors","director","writers","writer","series","images","videos","audio","locale","siteName","site_name","additionalMetaTags","_ref2","_ref3","_ref4","keyOverride","httpEquiv","additionalLinkTags","_rest$keyOverride","tagCrossOrigin","crossOrigin","rest","WithHead","next_head__WEBPACK_IMPORTED_MODULE_1___default","DefaultSeo","_ref$dangerouslySetAl","_ref$dangerouslySetAl2","NextSeo","Fragment","toJson","jsonld","__html","formatObjectForSchema","safeJsonLdReplacer","_jsonld$id","updated","ESCAPE_ENTITIES","freeze","ESCAPE_REGEX","ESCAPE_REPLACER","t","_excluded$y","JsonLd","_ref$type","scriptKey","_ref$scriptId","scriptId","dataArray","_ref$useAppDir","useAppDir","JsonLdScript","dangerouslySetInnerHTML","generateAuthorInfo","_author$type","_excluded$6","ArticleJsonLd","datePublished","dateModified","authorName","_ref$publisherName","publisherName","_ref$publisherLogo","publisherLogo","isAccessibleForFree","mainEntityOfPage","headline","image","publisher","setPublisher","logo","setImage","__NEXT_P","v0","v1","needle","cases","Button_ButtonBase","as","disabled","icon","iconPosition","iconColor","disabledIconColor","fullWidth","onClick","ariaDescribedby","ariaLabel","ariaLabelledby","isLoading","loadingText","param","isIconOnly","jsx_runtime","jsx","LinkWrapper","jsxs","StyledButtonBase","$size","aria-disabled","aria-labelledby","aria-label","aria-describedby","Icon","color","marginRight","marginLeft","styled","Box","theme","radii","rounded","palette","neutral","fonts","weight","bold","css","XS","S","StyledButton","ButtonBase","variant","accent","primary","Button_Button","InlineButton","fontWeights","semibold","Button_InlineButton","LegacyButton","disabledText","isBlock","_Button","$isBlock","isInteractive","isLink","_getColor","getColor","_getColorInverted","getOutlineProperties","getLinkProperties","darken","getInteractiveProperties","display","family","small","large","es_prop","paths","finalCases","defaultCase","isOutlined","components_Button","Button","StyledCard","bg","radius","elevation","fullScreen","border","transparentize","info","ReferralReviewCard","review","rating","showYellowStars","boxStyle","backgroundColor","borderRadius","padding","flexDirection","justifyContent","alignItems","Image","avatar","layout","position","objectFit","StarRating","mt","mb","starSize","flex","textAlign","Paragraph","fontWeight","fontSize","ImQuotesLeft","lib","w_","ReviewCard","quoteColor","yellowStars","components_Card","Offset","style","cssProperty","transformValue","n","scale","Spread","_Column","maxWidth","isGapless","space","gap","isMobile","breakpoints","components_Column","offset","ColumnsContext","Consumer","Columns","_Columns","defaultProps","components_Columns","cardHeadingHoverTrigger","applyTextHighlightingStyles","maxLines","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","ml","Heading","lineHeight","paragraph","px","HighlightText","$highlight","EXPERIMENTS_PREFIX","getVariantFor","experimentName","experiments","viewer","_experiment","find","mobile","Size","system","transform","_Heading","XXXL","XXL","XL","XXS","isSubHeading","normal","ta","components_Heading","marginBottom","heading","styles","highlight","withConfig","components_HighlightText","RiIcons","RiCalendar2Line","RiCheckboxBlankCircleLine","RiArrowLeftLine","RiArrowRightLine","RiArrowRightSLine","RiArrowDownSLine","RiArrowRightUpLine","RiArrowRightDownLine","RiArticleLine","RiBookOpenLine","RiStarFill","RiAppleFill","RiAndroidFill","RiCheckboxCircleFill","RiLock2Line","RiCheckFill","RiCloseFill","RiRssLine","RiGoogleFill","RiFacebookFill","RiTwitterXFill","RiInstagramFill","RiMediumFill","RiLinkedinFill","RiListCheck","RiCloseLine","RiPlayCircleFill","RiLockUnlockLine","RiMailSendLine","RiSuitcaseLine","RiTeamLine","RiVipCrown2Line","RiUserLine","RiGridFill","RiLightbulbFlashLine","RiPlayLine","RiLink","RiFacebookBoxFill","RiLock2Fill","RiHomeLine","RiShareBoxLine","RiArrowDropLeftLine","RiArrowDropRightLine","RiDownload2Line","RiQuillPenLine","RiBookmarkFill","RiBookmarkLine","RiInformationLine","RiNewspaperLine","RiLineChartLine","RiCalendarEventLine","RiBook3Line","RiFlaskLine","RiHeadphoneFill","RiGlobalLine","RiMoreFill","RiSearchLine","RiPentagonLine","RiPentagonFill","RiAddFill","RiVipCrown2Fill","stroke","strokeWidth","IconInUse","sizeProp","IconSizeProperties","strokeColor","iconComponent","_Icon","xsmall","components_Icon","$parcel$export","enumerable","$44d7e150ebc754d2$export$e926676385687eaf","$ebb31c7feaa4405e$export$b16d9fb1a22de840","react","$44d7e150ebc754d2$var$initialState","didCatch","Component","getDerivedStateFromError","resetErrorBoundary","onReset","setState","componentDidCatch","componentDidUpdate","prevProps","prevState","resetKeys","$44d7e150ebc754d2$var$hasArrayChanged","some","next","render","fallbackRender","FallbackComponent","fallback","childToRender","isValidElement","$7c3c25b3f398a9d6$export$c052f6604b7d51fe","hasError","memoized","resetBoundary","showBoundary","$62ff477d53f02a5b$export$f0c7a449e0cfaec7","component","errorBoundaryProps","Wrapped","forwardRef","ref","Image_Image","priority","fallbackSrc","containerStyle","imageComponent","overflow","NextImage","Link","ErrorBoundary","isExternalLink","useParseLinkProps","_target","underline","inline","boxStyleProps","linkProps","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","StyledNextLink","$inline","textDecoration","ZP","NextLink","dataCy","Wrapper","data-cy","Link_UnstyledLink","NextJsLink","passHref","legacyBehavior","Link_LegacyLink","UnstyledLink","cursor","wordWrap","wordBreak","Link_TextLink","textLinkProps","components_Link","useUpdateEffect","effect","deps","mounted","isIE11","canUseDOM","N","hasFocus","activeElement","getActiveElement","activeDescendant","ensureFocus","preventScroll","_ref$isActive","isActive","focus","requestAnimationFrame","useDisclosureContent","createHook","B","compose","Role","q","_keys_e6a5cfbe","useProps","htmlOnTransitionEnd","onTransitionEnd","htmlOnAnimationEnd","onAnimationEnd","htmlStyle","htmlProps","_rollupPluginBabelHelpers_1f0bf8c2","animating","animated","_React$useState","transition","setTransition","visible","onTransitionEndRef","useLiveRef","onAnimationEndRef","raf","cancelAnimationFrame","onEnd","isSelfTarget","U","_options$stopAnimatio","stopAnimation","_onTransitionEndRef$c","_onAnimationEndRef$cu","baseId","createComponent","L","useHook","getBodyElement","PortalContext","Portal","hostNode","__className","useIsomorphicEffect","react_dom","createPortal","removeItemFromArray_removeItemFromArray","array","__selector","MenuContext","hasPassiveEvents","passiveTestOptions","passive","removeEventListener","isIosDevice","platform","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","lock","preventDefault","rawEvent","touches","setOverflowHidden","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","paddingRight","restoreOverflowSetting","handleScroll","targetElement","clientY","targetTouches","scrollTop","scrollHeight","clientHeight","stopPropagation","disableBodyScroll","_toConsumableArray","ontouchstart","ontouchmove","enableBodyScroll","DialogBackdropContext","removeFromDOM","focusTrapClassName","DialogContext","useEventListenerOutside","containerRef","disclosureRef","nestedDialogs","eventType","shouldListen","capture","listenerRef","onEvent","_element$classList","container","disclosure","getDocument","M","contains","isFocusTrap","classList","dialogRef","dialog","backdrop","querySelector","isActualElement","useDialog","_keys_ed7b48af","D","useOptions","_ref$modal","modal","_ref$hideOnEsc","hideOnEsc","_ref$hideOnClickOutsi","hideOnClickOutside","_ref$preventBodyScrol","preventBodyScroll","_ref$unstable_autoFoc","unstable_autoFocusOnShow","_ref$unstable_autoFoc2","unstable_autoFocusOnHide","unstable_orphan","_React$useReducer","blurred","scheduleFocus","dialogs","setDialogs","_React$useState2","visibleModals","setVisibleModals","addDialog","removeDialog","showDialog","hideDialog","providerValue","shouldPrevent","portalRef","shouldTrap","beforeElement","afterElement","initialFocusRef","shouldFocus","mouseDownRef","useEvent","htmlRef","htmlOnKeyDown","onKeyDown","htmlOnBlur","onBlur","htmlWrapElement","wrapElement","tabIndex","hasBackdrop","onFocus","unstable_disclosureRef","_options$unstable_dis","onMouseDown","isButton","onKeyDownRef","onBlurRef","focusOnBlur","useReducer","relatedTarget","_useNestedDialogs","_context$addDialog","prevDialogs","_context$removeDialog","_context$showDialog","_context$hideDialog","_context$addDialog2","_context$removeDialog2","_context$showDialog2","_context$hideDialog2","_options$hide","hide","wrap","targetRef","closest","matches","w","parentElement","nodeType","portal","cloneNode","insertAdjacentElement","before","after","handleFocus","tabbable","isAfter","es_tabbable","YC","KE","observer","MutationObserver","mutations","K","observe","childList","subtree","disconnect","unstable_initialFocusRef","child","hasFocusWithin","hidByFocusingAnotherElement","Wq","_options$unstable_fin","finalFocusEl","unstable_finalFocusRef","compositeElement","_options$hide2","_onKeyDownRef$current","defaultPrevented","_onBlurRef$current","useForkRef","Dialog","useCreateElement","C","useDialogBackdrop","DialogBackdrop","memo","_Dialog","zIndex","layerTop","_DialogBackdrop","layer09","colors","modalBackground","components_Modal","modalState","_Paragraph","components_Paragraph","reactPropsRegex","isPropValid","emotion_memoize_esm","shouldForwardProp","propName","div","typography","flexbox","background","boxShadow","grid","borderColor","Primitives_Box","Set","React","isVertical","spacing","_Set","createResponsiveSpacing","cssString","smallestScreen","spacingScale","Theme","components_Set","secondaryColor","INVOICE_STATUS","DRAFT","PAID","UNCOLLECTIBLE","VOID","OPEN","SEO_DOMAIN","ImageRatios","GOLDEN_RATIO","SQUARE","getAttributionParams","utmParams","Router","paramsKeys","entries","initialParams","firstTouch","lastTouch","paramsList","isUtmParam","includes","firstTouchKey","FIRST_TOUCH_SUFFIX","lastTouchKey","LAST_TOUCH_SUFFIX","ATTRIBUTION_PARAM_PREFIX","setAttributionParams","fbclid","getFBTrackingParams","newParams","DAY_IN_SECONDS","setCookie","checkoutRedirectKey","paramToMixpanelKey","CHECKOUT_PARAM_PREFIX","setCheckoutDataParams","cookieKeyName","getCheckoutDataParams","getCookies","checkoutParams","list","isCheckoutCookie","startsWith","mixpanelPropKey","clearCookie","_fbp","_fbc","fbclidParam","_fbclidParam","fbp","useFBTrackingParams","setFbclid","setFbp","useAttributionParams","setParams","savedParams","hasUrlParams","hasSavedParams","mostRecentAttributionParams","CTAPlacement","PaywallFlowPointEnum","PlansPricingFlowPointEnum","TagPlacementEnum","AssetDataTrackingName","COOKIE_MODAL_ACTIONS","trackSubscribe","fbClient","trackConversionsAPIEvent","trackSearch","trackStartTrial","trackCompleteRegistration","trackCompleteAppRegistration","trackCustom","trackAppStoreClick","trackNewsletterEmailSubmitted","currency","trackPageView","pageView","_handleEvent","trackingFn","track","eventName","fbParams","post","trackSignup","ACTION_SOURCE","identifyUser","wasCreated","lcEmail","analyticsClient","alias","$email","identify","trackSignUpPressed","trackWithProperties","trackSignUpFailed","trackSignUpCompleted","refPage","ctaSource","fbc","content_name","actionSource","trackFMZSignup","trackSignupOnCheckout","stripeNickname","slug","trackLoginPressed","trackLoginFailed","trackLoginCompleted","trackLogOut","reset","trackPasswordResetSent","trackWafGetTokenFailed","mutationType","trackClickManageSubscription","attemptCancellation","trackSubscription","customerId","trackFBSubscribe","trackSubscriptionProxy","redeemCorporateCode","companyName","isDiscountCode","trackFBTrial","trackStartTrialProxy","trackLastStartedContent","register","contentPieceId","trackStartReadContent","trackEndReadContent","trackContentPieceRated","trackingParams","trackAttemptListenContent","trackViewPaywalledContent","trackClickRelatedContent","trackClickContentCard","trackViewFreeAllowanceBanner","trackClickFreeAllowanceBanner","trackToggleFreeAllowanceBanner","trackDownloadContent","trackContentPieceLinkCopied","trackSocialShareContent","trackToggledBookmarkOn","contentPieceName","toggledVia","trackToggledBookmarkOff","trackSkippedOnboardingStep","step","sourceChannel","trackSubmitOnboarding","isPremium","trackFBNewsletterEmailSubmitted","trackNewsletterSignupCompleted","edition","registerExperiment","usedVariantName","trackExperimentStarted","ALWAYS_ON_PAGE_BANNER","NAV_BAR","CONTENT_BANNER_PAYWALL","MODAL_PAYWALL","NEWSLETTER_SIGNUP_DROPDOWN","trackConversionCTAClicked","trackPageCTABannerClicked","placement","trackNotLoggedInModalConversion","FREE_UNLOCK","FREE_DOWNGRADE","PREMIUM_UNLOCK","PREMIUM_UPGRADE","FREE","PREMIUM","isAuthenticated","searchString","trackFBSearch","ARTICLE_FOOTER","PAGE_SIDEBAR","SUB_NAVIGATION","trackTagClicked","trackNotFoundRedirect","trackBreadcrumbClick","trackLayoutComponentShown","cta","layoutComponentType","trackingId","text","trackLayoutComponentCTAClicked","trackProductAdvert","trackExternalProductAdvert","trackAssetClicked","FORWARD_PE","OPERATING_MARGIN","SALES_GROWTH_5_YEAR","RETURN_ON_INVESTED_CAPITAL","ANALYST_RATING","ENTERPRISE_VALUE_TO_SALES","FREE_CASH_FLOW_YIELD","AVERAGE_ANALYST_RATING","NET_INSIDER_BUY_SELL","TREND","STOCKS_BETA","NET_DEBT_EBITDA","STOCKS_VOLITILITY","trackAssetHiddenDataClick","trackNavigationItemClicked","trackProfileOnboardingClicked","hasPreviouslyCompletedOnboardingFlow","attributionParams","setOnce","trackFBPageview","trackErrorPageSeen","trackFBAppStoreClick","trackCookieModalSeen","ALLOW","DECLINE","trackCookieModalAction","action","canvasService","canvasCtx","errorHandler","wrappedEmit","takeFullSnapshot","canvasManager","isShadowRoot","shadowRoot","isNativeShadowDom","stringifyStylesheet","cssText","rules","cssRules","stringifyRule","rule","importStringified","styleSheet","escapeImportStatement","statement","layerName","supportsText","mediaText","isCSSStyleRule","selectorText","cssStringified","NodeType","Mirror","idNodeMap","nodeMetaMap","WeakMap","getId","getMeta","getNode","getIds","removeNodeFromMap","delete","childNodes","childNode","has","hasNode","meta","oldNode","maskInputValue","maskInputOptions","maskInputFn","actualType","repeat","ORIGINAL_ATTRIBUTE_NAME","getInputType","hasAttribute","extractFileExtension","URL","_id","tagNameRegex","genId","URL_IN_CSS_REF","URL_PROTOCOL_MATCH","URL_WWW_MATCH","DATA_URI","absoluteToStylesheet","origin","quote1","path1","quote2","path2","path3","filePath","maybeQuote","part","SRCSET_NOT_SPACES","SRCSET_COMMAS_OR_SPACES","absoluteToDoc","attributeValue","getHref","transformAttribute","getAbsoluteSrcsetString","pos","collectCharacters","regEx","chars","exec","descriptorsStr","inParens","ignoreAttribute","classMatchesRegex","regex","checkAncestors","ELEMENT_NODE","eIndex","needMaskingText","maskTextClass","maskTextSelector","lowerIfExists","maybeAttr","serializeNodeWithId","mirror","blockClass","blockSelector","skipChild","inlineStylesheet","maskTextFn","slimDOMOptions","dataURLOptions","inlineImages","recordCanvas","onSerialize","onIframeLoad","iframeLoadTimeout","onStylesheetLoad","stylesheetLoadTimeout","keepIframeSrcFn","newlyAddedElement","needsMask","preserveWhiteSpace","_serializedNode","serializeNode","rootId","getRootId","docId","DOCUMENT_NODE","compatMode","Document","DOCUMENT_TYPE_NODE","DocumentType","publicId","systemId","serializeElementNode","isCustomElement","needBlock","_isBlockedElement","getValidTagName","HTMLFormElement","processedTagName","stylesheet","styleSheets","_cssText","sheet","innerText","textContent","checked","selected","__context","is2DCanvasBlank","canvas","ctx","getContext","x","y","getImageData","originalGetImageData","pixelBuffer","Uint32Array","pixel","rr_dataURL","toDataURL","quality","canvasDataURL","blankCanvas","blankCanvasDataURL","oldValue","recordInlineImage","naturalWidth","naturalHeight","drawImage","currentSrc","removeAttribute","complete","mediaAttributes","rr_mediaState","paused","rr_mediaCurrentTime","currentTime","rr_mediaPlaybackRate","playbackRate","rr_mediaMuted","muted","rr_mediaLoop","loop","rr_mediaVolume","volume","scrollLeft","rr_scrollLeft","rr_scrollTop","getBoundingClientRect","class","rr_width","rr_height","contentDocument","rr_src","customElements","isSVG","isSVGElement","ownerSVGElement","isCustom","TEXT_NODE","serializeTextNode","parentTagName","isStyle","isScript","nextSibling","previousSibling","Text","CDATA_SECTION_NODE","CDATA","COMMENT_NODE","Comment","slimDOMExcluded","sn","comment","headFavicon","headMetaDescKeywords","headMetaSocial","headMetaRobots","headMetaHttpEquiv","headMetaAuthorship","headMetaVerification","serializedNode","recordChild","isShadowHost","headWhitespace","bypassOptions","childN","serializedChildNode","isShadow","onceIframeLoaded","iframeEl","win","fired","timer","blankUrl","iframeDoc","serializedIframeNode","onceStylesheetLoaded","link","styleSheetLoadTimeout","styleSheetLoaded","serializedLinkNode","on","DEPARTED_MIRROR_ACCESS_WARNING","_mirror","throttle","wait","leading","remaining","trailing","hookSetter","isRevoked","getOwnPropertyDescriptor","patch","replacement","defineProperties","__rrweb_original__","Proxy","Reflect","receiver","nowTimestamp","getWindowScroll","_c","_d","_f","left","scrollingElement","pageXOffset","pageYOffset","getWindowHeight","innerHeight","getWindowWidth","closestElementOfNode","isBlocked","isIgnored","legacy_isTouchEvent","changedTouches","isSerializedIframe","nodeName","isSerializedStylesheet","hasShadowRoot","StyleSheetMirror","styleIDMap","idStyleMap","newId","getStyle","generateId","getShadowHost","shadowHost","getRootNode","Node","DOCUMENT_FRAGMENT_NODE","inDom","ownerDocument","shadowHostInDom","getRootShadowHost","rootShadowHost","at","ch","escapee","string","white","word","T","UA","EventType2","PromisePolyfill","init_type","mixpanel_master","EventType$1","IncrementalSource$1","IncrementalSource2","MouseInteractions","MouseInteractions2","PointerTypes","PointerTypes2","CanvasContext","CanvasContext2","DoubleLinkedList","tail","addNode","__ln","removeNode","moveKey","parentId","MutationBuffer","frozen","locked","texts","attributeMap","removes","mapRemoves","movedMap","addedSet","movedSet","droppedSet","processMutations","processMutation","emit","adds","addedIds","addList","getNextId","ns","nextId","pushAdd","currentN","iframeManager","addIframe","stylesheetManager","trackLinkElement","shadowDomManager","addShadowRoot","iframe","childSn","attachIframe","observeAttachShadow","attachLinkElement","isParentRemoved","isAncestorInSet","candidate","tailNode","_node","unhandledNode","genTextAreaValueMutation","attribute","diffAsStr","styleDiff","unchangedAsStr","_unchangedStyles","mutationCb","textarea","cn","m","unattachedDoc","implementation","createHTMLDocument","old","pname","newValue","getPropertyValue","newPriority","getPropertyPriority","addedNodes","genAdds","removedNodes","nodeId","deepDelete","isAncestorRemoved","processedNodeManager","inOtherBuffer","targetId","unfreeze","isFrozen","unlock","addsSet","_isParentRemoved","_isAncestorInSet","callbackWrapper","cb","mutationBuffers","getEventTarget","composedPath","initMutationObserver","rootEl","mutationBuffer","mutationObserverCtor","__rrMutationObserver","angularZoneSymbol","Zone","__symbol__","attributeOldValue","characterData","characterDataOldValue","initScrollObserver","scrollCb","sampling","updatePosition","evt","defaultView","scrollLeftTop","scroll","INPUT_TAGS","lastInputValueMap","getNestedCSSRulePositions","recurse","childRule","parentRule","CSSGroupingRule","hasNestedCSSRule","CSSMediaRule","CSSSupportsRule","CSSConditionRule","parentStyleSheet","getIdAndStyleId","styleMirror","styleId","ownerNode","initAdoptedStyleSheetObserver","hostId","patchTarget","ShadowRoot","originalPropertyDescriptor","sheets","adoptStyleSheets","initObservers","mutationObserver","currentWindow","mergeHooks","mousemoveCb","mouseInteractionCb","viewportResizeCb","inputCb","mediaInteractionCb","styleSheetRuleCb","styleDeclarationCb","canvasMutationCb","fontCb","selectionCb","customElementCb","mutation","mousemove","mouseInteraction","viewportResize","mediaInteaction","styleSheetRule","styleDeclaration","canvasMutation","font","selection","customElement","recordDOM","mousemoveHandler","initMoveObserver","timeBaseline","threshold","callbackThreshold","mousemoveCallback","positions","wrappedCb","totalOffset","timeOffset","clientX","DragEvent","Drag","MouseEvent","MouseMove","TouchMove","mouseInteractionHandler","initMouseInteractionObserver","disableMap","currentPointerType","getHandler","pointerType","thisEventKey","eventKey","Mouse","Touch","Pen","MouseDown","MouseUp","Click","endsWith","PointerEvent","TouchStart","TouchEnd","scrollHandler","viewportResizeHandler","initViewportResizeObserver","lastH","lastW","updateDimension","inputHandler","initInputObserver","ignoreClass","ignoreSelector","userTriggeredOnInput","eventHandler","userTriggered","isTrusted","isChecked","cbWithDedup","lastInputValue","events","propertyDescriptor","HTMLInputElement","hookProperties","HTMLSelectElement","HTMLTextAreaElement","HTMLOptionElement","mediaInteractionHandler","initMediaInteractionObserver","styleSheetObserver","adoptedStyleSheetObserver","styleDeclarationObserver","fontObserver","initStyleSheetObserver","replaceSync","CSSStyleSheet","insertRule","argumentsList","deleteRule","supportedNestedCSSRuleTypes","canMonkeyPatchNestedCSSRule","unmodifiedFunctions","typeKey","initStyleDeclarationObserver","ignoreCSSAttributes","setProperty","CSSStyleDeclaration","removeProperty","collectFonts","initFontObserver","fontMap","originalFontFace","FontFace","descriptors","fontFace","fontSource","Uint8Array","restoreHandler","selectionObserver","initSelectionObserver","collapsed","updateSelection","getSelection","isCollapsed","ranges","count","rangeCount","range","getRangeAt","startContainer","startOffset","endContainer","endOffset","blocked","start","end","customElementObserver","initCustomElementObserver","define","pluginHandlers","plugin","plugins","CrossOriginIframeMirror","generateIdFn","iframeIdToRemoteIdMap","iframeRemoteIdToIdMap","remoteId","idToRemoteMap","remoteToIdMap","idToRemoteIdMap","getIdToRemoteIdMap","remoteIdToIdMap","getRemoteIdToIdMap","getRemoteId","getRemoteIds","ids","IframeManager","iframes","crossOriginIframeMap","crossOriginIframeMirror","crossOriginIframeRootIdMap","recordCrossOriginIframes","crossOriginIframeStyleMirror","handleMessage","addLoadListener","loadListener","isAttachIframe","adoptedStyleSheets","crossOriginMessageEvent","iframeSourceWindow","transformedEvent","transformCrossOriginEvent","isCheckout","FullSnapshot","replaceIdOnNode","patchRootIdOnNode","IncrementalSnapshot","Mutation","Meta","Load","DomContentLoaded","Plugin","Custom","replaceIds","ViewportResize","MediaInteraction","MouseInteraction","Scroll","CanvasMutation","Input","StyleSheetRule","StyleDeclaration","replaceStyleIds","Font","Selection","AdoptedStyleSheet","iframeMirror","ShadowDomManager","shadowDoms","WeakSet","restoreHandlers","patchAttachShadow","iframeElement","manager","option","lookup","arraybuffer","bytes","base64","canvasVarMap","saveWebGLVar","contextMap","isInstanceOfWebGLObject","serializeArgs","serializeArg","Float32Array","Float64Array","Int32Array","Int16Array","Int8Array","Uint8ClampedArray","rr_type","DataView","byteOffset","byteLength","HTMLImageElement","HTMLCanvasElement","ImageData","supportedWebGLConstructorNames","webGLConstructorNames","initCanvasContextObserver","setPreserveDrawingBufferToTrue","contextType","ctxName","contextAttributes","preserveDrawingBuffer","splice","patchGLPrototype","getOwnPropertyNames","recordArgs","hookHandler","setter","WorkerFactory","__awaiter","_arguments","P","generator","done","adopt","lastBlobMap","transparentBlobMap","worker","onmessage","globalThis","postMessage","bitmap","transparentBase64","getTransparentBlobFor","offscreen","OffscreenCanvas","blob","convertToBlob","arrayBuffer","close","lines","funcToSource","sourcemapArg","sourcemap","blankPrefixLength","Blob","createObjectURL","Worker","CanvasManager","pendingCanvasMutations","resetObservers","rafStamps","latestId","invokeId","newFrame","initCanvasMutationObserver","initCanvasFPSObserver","fps","rafId","canvasContextReset","snapshotInProgressMap","commands","timeBetweenSnapshots","lastSnapshotTime","getCanvas","matchedCanvas","takeCanvasSnapshots","getContextAttributes","COLOR_BUFFER_BIT","createImageBitmap","startRAFTimestamping","startPendingCanvasMutationFlusher","canvas2DReset","initCanvas2DMutationObserver","props2D","CanvasRenderingContext2D","canvasWebGL1and2Reset","initCanvasWebGLMutationObserver","WebGLRenderingContext","WebGL","WebGL2RenderingContext","WebGL2","flushPendingCanvasMutations","setLatestRAFTimestamp","flushPendingCanvasMutationFor","valuesWithType","__rest","getOwnPropertySymbols","propertyIsEnumerable","StylesheetManager","trackedLinkElements","adoptedStyleSheetCb","linkEl","trackStylesheetInLinkElement","adoptedStyleSheetData","styleIds","CSSRule","ProcessedNodeManager","nodeMap","periodicallyClear","thisBuffer","buffers","destroy","wrapEvent","recording","record","lastFullSnapshotEvent","checkoutEveryNms","checkoutEveryNth","maskAllInputs","_maskInputOptions","_slimDOMOptions","packFn","mousemoveWait","recordAfter","inEmittingFrame","parent","passEmitsToParent","month","tel","week","select","polyfill","NodeList","DOMTokenList","incrementalSnapshotCount","eventProcessor","buf","exceedCount","exceedTime","wrappedMutationEmit","wrappedScrollEmit","wrappedCanvasMutationEmit","getMirror","nodeMirror","snapshot","slimDOM","initialOffset","CustomElement","addCustomEvent","freezePage","EventType","IncrementalSource","Config","DEBUG","LIB_VERSION","loc","onLine","referrer","screen","builtInProp","cycle","schedulingQueue","setImmediate","ToString","schedule","drain","_then","oType","notify","notifyIsolated","ret","TypeError","success","failure","triggered","def","defWrapper","MakeDefWrapper","iteratePromises","Constructor","resolver","rejecter","idx","MakeDef","NpoPromise","first","last","Item","PromisePrototype","msgs","ArrayProto","FuncProto","ObjProto","mixpanel_module_toString","mixpanel_module_hasOwnProperty","windowConsole","mixpanel_module_navigator","document$1","windowOpera","opera","nativeBind","nativeForEach","nativeIndexOf","nativeMap","nativeIsArray","breaker","console$1","each","toArray","critical","log_func_with_prefix","prefix","console_with_prefix","safewrap","bound","ctor","isArguments","iterable","results","include","found","inherit","subclass","superclass","isEmptyObject","encodeDates","k","formatDate","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","strip_empty_properties","JSONEncode","mixed_val","quote","escapable","lastIndex","holder","mind","partial","isFinite","JSONDecode","hex","uffff","parseInt","fromCharCode","base64Encode","h1","h2","h3","h4","bits","b64","ac","tmp_arr","utf8Encode","o1","o2","utftext","stringl","c1","UUID","ticks","xor","byte_array","j","tmp","ua","se","BLOCKED_UA_STRS","isBlockedUA","HTTPBuildQuery","formdata","arg_separator","use_val","use_key","getQueryParam","regexS","RegExp","nameEQ","ca","set_seconds","seconds","is_cross_subdomain","is_secure","is_cross_site","domain_override","cdomain","extract_domain","setTime","days","new_cookie_val","_localStorageSupported","localStorageSupported","storage","forceCheck","supported","localStorage","cheap_guid","setItem","getItem","removeItem","is_supported","force_check","register_event","fixEvent","cancelBubble","oldSchool","useCapture","ontype","old_handler","old_result","new_result","old_handlers","new_handler","TOKEN_MATCH_REGEX","dom_query","getAllChildren","getElementsByTagName","bad_whitespace","getElementsBySelector","tokens","currentContext","getElementById","foundCount","elements","currentContextIndex","token_match","checkFunction","attrName","attrOperator","attrValue","lastIndexOf","CAMPAIGN_KEYWORDS","CLICK_IDS","campaignParams","default_value","kw","kwkey","clickParams","idkey","marketingParams","searchEngine","searchInfo","keyword","browser","vendor","browserVersion","versionRegexs","parseFloat","os","device","referringDomain","currentUrl","properties","extra_props","people_properties","mpPageViewProperties","guid","SIMPLE_DOMAIN_MATCH_REGEX","DOMAIN_MATCH_REGEX","domain_regex","tld","isOnline","JSONStringify","JSONParse","optIn","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","_hasDoNotTrackFlagOn","ignoreDnt","win$1","nav","hasDntOn","dntValue","optedOut","addOptOutCheckMixpanelLib","_addOptOutCheck","get_config","addOptOutCheckMixpanelPeople","_get_config","addOptOutCheckMixpanelGroup","clearOptInOut","_getStorage","_getStorageKey","crossSubdomainCookie","cookieDomain","persistenceType","persistencePrefix","optValue","cookieExpiration","secureCookie","crossSiteCookie","trackEventName","trackProperties","getConfigValue","logger$5","SharedLock","storageKey","pollIntervalMS","timeoutMS","promiseImpl","withLock","lockedCB","pid","startTime","keyX","keyY","keyZ","delay","waitFor","predicate","getSetY","valY","criticalSection","removeLock","LocalStorageWrapper","storageOverride","logger$4","RequestQueue","usePersistence","queueStorage","sharedLockStorage","reportError","errorReporter","memQueue","initialized","ensureInit","enqueue","flushInterval","queueEntry","enqueueItem","readFromStorage","storedQueue","saveToStorage","succeeded","fillBatch","batchSize","batch","idsInBatch","orphaned","filterOutIDsAndInvalid","items","idSet","filteredItems","removeItemsByID","removeFromStorage","updatePayloads","existingItems","itemsToUpdate","newItems","newPayload","storageEntry","queue","logger$3","RequestBatcher","libConfig","sendRequest","sendRequestFunc","beforeSendHook","stopAllBatching","stopAllBatchingFunc","stopped","consecutiveRemovalFailures","itemIdsSentSuccessfully","flushOnlyOnInterval","flush","stop","timeoutID","resetBatchSize","resetFlush","scheduleFlush","flushMS","sendRequestPromise","requestInProgress","currentBatchSize","attemptSecondaryFlush","dataForRequest","transformedItems","addPayload","itemId","timesSent","removeItemsFromQueue","batchSendCallback","res","unloading","httpStatusCode","retryMS","retryAfter","halvedBatchSize","requestOptions","verbose","ignore_json_errors","timeout_ms","transport","logger$2","CompressionStream","RECORDER_BATCHER_LIB_CONFIG","ACTIVE_SOURCES","SessionRecording","_mixpanel","mixpanelInstance","_onIdleTimeout","onIdleTimeout","_onMaxLengthReached","onMaxLengthReached","_rrwebRecord","rrwebRecord","replayId","_stopRecording","seqNo","replayStartTime","replayStartUrl","batchStartUrl","idleTimeoutId","maxTimeoutId","recordMaxMs","recordMinMs","batcherKey","getConfig","batcher","flushEventsWithOptOut","configVar","startRecording","shouldStopBatcher","resetIdleTimeout","ev","stopRecording","isRrwebStopped","_flushEvents","_onOptOut","_sendRequest","currentReplayId","reqParams","reqBody","responseBody","numEvents","batchStartTime","replayLengthMs","get_distinct_id","eventsJson","deviceId","get_property","userId","gzipStream","jsonStream","stream","pipeThrough","compressedBlob","logger$1","MixpanelRecorder","activeRecording","resetRecording","getActiveReplayId","EV_CHANGE","EV_CLICK","EV_HASHCHANGE","EV_MP_LOCATION_CHANGE","EV_POPSTATE","EV_SCROLLEND","EV_SUBMIT","CLICK_EVENT_PROPS","OPT_IN_CLASSES","OPT_OUT_CLASSES","SENSITIVE_DATA_CLASSES","TRACKED_ATTRS","getClasses","getClassName","cls","baseVal","getPropertiesFromElement","elId","shouldTrackElement","attrVal","shouldTrackValue","nthChild","nthOfType","getPreviousElementSibling","previousElementSibling","isElementNode","getSafeText","elText","isTextNode","isTag","curEl","elClasses","sensitiveNameRegex","ccRegex","ssnRegex","AUTOCAPTURE_CONFIG_KEY","PAGEVIEW_OPTION_FULL_URL","CONFIG_CAPTURE_TEXT_CONTENT","CONFIG_TRACK_CLICK","CONFIG_TRACK_INPUT","CONFIG_TRACK_PAGEVIEW","CONFIG_TRACK_SCROLL","CONFIG_TRACK_SUBMIT","CONFIG_DEFAULTS","DEFAULT_PROPS","Autocapture","mp","minDOMApisSupported","testEl","initPageviewTracking","initClickTracking","initInputTracking","initScrollTracking","initSubmitTracking","getFullConfig","autocaptureConfig","currentUrlBlocked","blockUrlRegexes","pageviewTrackingConfig","trackDomEvent","mpEventName","getPropsForDOMEvent","blockSelectors","captureTextContent","srcElement","shouldTrackDomEvent","targetElementList","elementsJson","explicitNoTrack","shouldTrackEl","sel","docElement","elementText","guessRealClickTarget","targetProps","listenerClick","listenerChange","listenerPopstate","listenerHashchange","listenerLocationchange","previousTrackedUrl","tracked","track_pageview","dispatchEvent","nativePushState","unused","nativeReplaceState","shouldTrack","trackPageviewOption","listenerScroll","scrollY","scrollPercentage","round","listenerSubmit","safewrapClass","klass","DomTracker","create_properties","event_handler","after_track_handler","mixpanel_instance","event_name","user_callback","that","override_event","track_callback","timeout_occured","callback_fired","LinkTracker","new_tab","which","metaKey","ctrlKey","FormTracker","submit","SET_ACTION","SET_ONCE_ACTION","UNSET_ACTION","ADD_ACTION","APPEND_ACTION","UNION_ACTION","REMOVE_ACTION","apiActions","set_action","$set","_is_reserved_property","unset_action","$unset","set_once_action","$set_once","union_action","list_name","$union","append_action","$append","remove_action","$remove","delete_action","MixpanelGroup","_init","group_key","group_id","_group_key","_group_id","_send_request","set_once","unset","union","date_encoded_data","_track_or_batch","endpoint","request_batchers","groups","conf","MixpanelPeople","update_referrer_info","increment","by","$add","append","track_charge","clear_charges","delete_user","_identify_called","device_id","user_id","had_persisted_distinct_id","people","_enqueue","conf_var","_flags","identify_called","_add_to_people_queue","_flush_one_queue","action_method","queue_to_params_fn","_this","queued_data","load_queue","action_params","_pop_from_people_queue","save","_flush","_set_callback","_add_callback","_append_callback","_set_once_callback","_union_callback","_unset_callback","_remove_callback","$append_queue","$append_item","append_callback","$remove_queue","$remove_item","remove_callback","SET_QUEUE_KEY","SET_ONCE_QUEUE_KEY","UNSET_QUEUE_KEY","ADD_QUEUE_KEY","APPEND_QUEUE_KEY","REMOVE_QUEUE_KEY","UNION_QUEUE_KEY","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","EVENT_TIMERS_KEY","RESERVED_PROPERTIES","MixpanelPersistence","campaign_params_saved","storage_type","load","update_config","upgrade","old_cookie","old_localstorage","register_once","expire_days","cross_subdomain","cross_site","cookie_domain","load_prop","default_expiry","unregister","update_search_keyword","get_referrer_info","set_disabled","set_cookie_domain","set_cross_site","set_cross_subdomain","set_secure","get_cross_subdomain","q_key","_get_queue_key","q_data","set_q","_get_or_create_queue","set_once_q","unset_q","add_q","union_q","remove_q","append_q","enqueued_obj","append_obj","queued_action","default_val","set_event_timer","timers","remove_event_timer","load_extra_bundle","_onload","IDENTITY_FUNC","NOOP_FUNC","PRIMARY_INSTANCE_NAME","PAYLOAD_TYPE_BASE64","DEVICE_ID_PREFIX","USE_XHR","ENQUEUE_REQUESTS","sendBeacon","DEFAULT_API_ROUTES","DEFAULT_CONFIG","DOM_LOADED","MixpanelLib","create_mplib","_cached_groups","utm_params","initial_utm_params","has_utm","utm_value","utm_key","_execute_array","report_error","_loaded","variable_features","api_host","set_config","__dom_loaded_queue","__request_queue","__disabled_events","_batch_requests","init_batchers","flush_on_unload","get_batcher_configs","batcher_config","queue_key","unpersisted_superprops","_gdpr_init","uuid","autocapture","start_session_recording","handleLoadedRecorder","_recorder","stop_session_recording","get_session_recording_properties","replay_id","_get_session_replay_id","get_session_replay_url","replay_url","_set_default_superprops","_utm_value","_dom_loaded","_track_dom","has_opted_out_tracking","DomClass","dt","_prepare_callback","jsc","randomized_cb","callback_string","DEFAULT_OPTIONS","body_data","use_post","use_sendBeacon","verbose_mode","img","req","headerValue","headerName","start_time","response_headers","insertBefore","fn_name","alias_calls","other_calls","tracking_calls","execute","calls","caller","are_batchers_initialized","queue_prefix","api_routes","_batcher_configs","batcher_for","_encode_data_for_request","_run_hook","stop_batch_senders","batcher_configs","start_batch_senders","_batchers_were_started","disable_all_events","encoded_data","truncated_data","should_send_immediately","send_request_options","request_enqueued_or_initiated","send_request_immediately","skip_hooks","_event_is_disabled","duration_in_ms","toFixed","marketing_properties","property_blacklist","blacklisted_prop","set_group","group_ids","add_group","old_values","remove_group","old_value","track_with_groups","tracking_props","_create_map_key","_remove_group_from_cache","get_group","map_key","group","default_page_properties","event_properties","track_links","track_forms","time_event","REGISTER_DEFAULTS","options_for_register","days_or_options","_register_single","new_distinct_id","previous_distinct_id","name_tag","prop_name","hook_name","property_name","has_opted_in_tracking","opt_in_tracking","opt_out_tracking","clear_opt_in_out_tracking","_gdpr_update_persistence","_gdpr_call_func","instances","extend_mp","mixpanel","_src","add_dom_loaded_handler","dom_loaded_handler","inst","attachEvent","toplevel","frameElement","doScroll","do_scroll_check","proxyRootUrl","getApiHostURL","requestIdleCallback","hasCalledInit","hasAcceptedCookies","authorize","disable_persistence","record_sessions_percent","isProductionBuild","mandatoryProps","channel","identity","lib_analyticsClient","TOKEN_KEY","setAuthToken","removeAuthToken","getAuthHeaderFromCookie","parseCookies","parsedCookie","getCsrfToken","getCookie","cookieValue","commitMutation","relayEnv","mutationParams","onCompleted","fmzError","_err","wafCaptchaErrorMessage","clientEnvironment","CYPRESS_ENV_HEADER","cookiesToProxyToBackend","ALLOWANCE_FINISHED_COOKIE_NAME","getRelayUri","env","PROXY_HOST","getAuth","getCypressHeader","cypressHeader","sleep","ms","invokeFetch","operation","variables","callCount","credentials","keepalive","isNextPageContext","wafCaptchaStatusCode","wafChallengeStatusCode","maxWafChallengeRetries","wafChallengeRetryDelayMs","newHeaders","getFetchHeaders","retryCount","getHeaders","getSharedHeaders","fetchQuery","getCookiesToProxyToRequest","cookieHeader","cookieName","headerKeys","getIpAddress","connection","socket","xForwardedForHeader","remoteAddress","ip","initEnvironment","initialRecords","getStore","publish","RecordSource","createRelayEnvironment","recordSource","store","Store","Environment","network","Network","useEnvironment","ARTICLE_IDS_COOKIE_NAME","DATE_WINDOW_STARTED_COOKIE_NAME","ARTICLE_WINDOW_MONTHS","FREE_ARTICLES_ALLOWED_EACH_WINDOW","years","months","weeks","hours","minutes","dateWithMonths","dateWithDays","secondsToAdd","minutesToAdd","getEndOfWindowTimestamp","articleAllowanceCookieClient","_getCookie","_checkIfMatchesType","decodedValue","expectedType","errorInfo","decodedCookieValue","getIdsCompleted","getDateWindowStartedCookie","wasTimestampReturned","getAllowanceFinishedCookie","setIdsCompleted","encodedValue","idsCompleted","expiry","setDateWindowStartedCookie","nowTimestampMs","setAllowanceFinishedCookie","FreeArticleCookiesProvider","useFreeArticleCookiesContext","constate","useCookies","cookiesInitialised","setCookiesInitialised","freeArticlesAllowance","articleCountState","setArticleCountState","remainingFreeArticles","totalArticleCountThisAllowanceWindow","freeArticlesPerAllowanceWindow","_updateArticleCountState","CookieClient","_CookieClient","decrementRemainingFreeArticles","globalContentPieceId","isFreeContent","hasFinishedAllowance","dateWindowStarted","idAlreadyCompleted","updatedArticlesArray","numberOfArticlesCompleted","endOfWindow","checkUser","checkAuthenticationFromRelayProps","authorization","me","roles","isAnonymous","lib_handleAuth","redirectKeyIfNoAuth","shouldRedirectIfLoggedIn","toPromise","hasPremium","hasPremiumSubscription","authRedirect","routeMap","checkout","home","stripeToken","StatusCodeEnum","PERMANENTLY_MOVED","OTHER","NOT_FOUND","toQuerystring","formattedTarget","redirect","statusCode","writeHead","Location","trackAppsFlyerPBAEvent","createMutationPromise","AF_COMPLETE_REGISTRATION","AF_LOGIN","AF_TRIAL","AF_MONTHLY_SUBSCRIPTION","AF_YEARLY_SUBSCRIPTION","appsFlyerPBAClient","isAuthorized","afUserId","AF_SDK","PLUGINS","PBA","enableMeasurement","customerUserId","trackAppsFlyerPBAEventMutation","tracking_appsFlyerPBAClient","mutations_trackFbConversionsAPIEvent","facebookPixelId","facebookTrackingClient","isProductionEnvironment","FB_INITIALIZED","Pixel","trackFbConversionsAPIEvent","productId","predictedLtv","fbTrackingClient","FINANCEADS_SIGNUP","FINANCEADS_TRIAL","FINANCEADS_YEARLY_SUBSCRIPTION","FINANCEADS_MONTHLY_SUBSCRIPTION","FINANCEADS_ID_PARAM","trackFinanceadsEvent","FinanceadsProvider","useFinanceadsContext","router","useRouter","setIsAuthorized","financeadsId","decodedVal","serverFinanceadsId","trackFinanceadsEventMutation","SIGNUP","FREE_TRIAL","MONTHLY_SUBSCRIPTION","YEARLY_SUBSCRIPTION","IMPACT_CLICK_ID_PARAM","IMPACT_IRGWC_PARAM","trackImpactEvent","ImpactProvider","useImpactContext","impactClickId","trackImpactEventMutation","clickId","setCookies","_updateCookies","setCookieAndUpdateState","clearCookieAndUpdateState","PrefetchKind","_export","ACTION_REFRESH","ACTION_NAVIGATE","ACTION_RESTORE","ACTION_SERVER_PATCH","ACTION_PREFETCH","ACTION_FAST_REFRESH","ACTION_SERVER_ACTION","__esModule","getDomainLocale","_normalizetrailingslash","locales","domainLocales","normalizeLocalePath","detectDomainLocale","detectedLocale","http","finalLocale","defaultLocale","normalizePathTrailingSlash","_interop_require_default","_interop_require_wildcard","_react","_reactdom","_head","_getimgprops","_imageconfig","_imageconfigcontextsharedruntime","_routercontextsharedruntime","_imageloader","configEnv","handleLoading","placeholder","onLoadRef","onLoadingCompleteRef","setBlurComplete","unoptimized","isConnected","prevented","nativeEvent","isDefaultPrevented","isPropagationStopped","persist","getDynamicProps","fetchPriority","majorStr","minorStr","major","minor","fetchpriority","ImageElement","forwardedRef","srcSet","sizes","decoding","loading","setShowAltText","onLoad","ImagePreload","isAppRouter","imgAttributes","opts","imageSrcSet","imageSizes","referrerPolicy","preload","pagesRouter","RouterContext","configContext","ImageConfigContext","imageConfigDefault","allSizes","deviceSizes","onLoadingComplete","blurComplete","showAltText","imgMeta","getImgProps","defaultLoader","imgConf","_default","_resolvehref","_islocalurl","_formaturl","_utils","_addlocale","_approutercontextsharedruntime","_useintersection","_getdomainlocale","_addbasepath","_routerreducertypes","prefetched","prefetch","appOptions","isLocalURL","bypassPrefetchedCheck","prefetchedKey","prefetchPromise","formatStringOrUrl","urlObjOrString","formatUrl","hrefProp","asProp","childrenProp","prefetchProp","shallow","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","restProps","appRouter","AppRouterContext","prefetchEnabled","appPrefetchKind","AUTO","FULL","resolvedHref","resolvedAs","resolveHref","previousHref","previousAs","Children","only","childRef","setIntersectionRef","isVisible","resetVisible","useIntersection","rootMargin","setRef","kind","childProps","linkClicked","isAnchorNodeName","isModifiedEvent","eventTarget","shiftKey","altKey","navigate","routerScroll","forceOptimisticNavigation","startTransition","isAbsoluteUrl","curLocale","localeDomain","isLocaleDomain","addBasePath","addLocale","cloneElement","_requestidlecallback","hasIntersectionObserver","IntersectionObserver","observers","idList","rootRef","isDisabled","setVisible","elementRef","setElement","unobserve","createObserver","margin","existing","isIntersecting","intersectionRatio","findIndex","idleCallback","cancelIdleCallback","_imageblursvg","isStaticRequire","getInt","blurWidth","blurHeight","blurDataURL","objectPosition","lazyBoundary","lazyRoot","loader","isDefaultLoader","customImageLoader","layoutStyle","layoutToStyle","intrinsic","responsive","layoutSizes","layoutToSizes","staticSrc","widthInt","heightInt","staticImageData","ratio","isLazy","dangerouslyAllowSVG","qualityInt","imgStyle","right","bottom","backgroundImage","getImageBlurSvg","placeholderStyle","backgroundSize","backgroundPosition","backgroundRepeat","generateImgAttrs","widths","getWidths","viewportWidthRe","percentSizes","smallestRatio","svgWidth","svgHeight","viewBox","unstable_getImgProps","_warnonce","_imagecomponent","warnOnce","imgProps","__next_img_default","ExperimentalFeature","RumPerformanceEntryType","existingGlobalVariable","DatadogEnv","onMonitorErrorCollected","getCurrentSiteCache","browserIsIE","browserIsChromium","browserIsSafari","ongoingOperations","isURLSupported","onRawTelemetryEventCollected","modifiableFieldPathsByEvent","xhrObservable","fetchObservable","supportsLabelPropertyResult","supportsElementClosestResult","supportScopeSelectorCache","viewportObservable","currentPeriodMeasures","currentBatchMeasures","batchHasRumEvent","mouseInteractionObserver_a","statsPerView","SeoProps","AppIcons","ConsoleApiName","debug","globalConsole","originalConsoleMethods","PREFIX","catchUserErrors","errorMsg","_i","__spreadArray","pack","ar","debugMode","setDebugMode","newDebugMode","monitor","callMonitored","displayIfDebugEnabled","arrayFrom","arrayLike","objectValues","objectEntries","cssEscape","CSS","asCodePoint","polyfills_assign","toAssign","globalObject","_dd_temp_","HAS_MULTI_BYTES_CHARACTERS","computeBytesCount","TextEncoder","getZoneJsOriginalValue","browserWindow","timer_setTimeout","timer_clearTimeout","timeoutId","timer_setInterval","timer_clearInterval","pendingExecutionWithParameters","pendingTimeoutId","needLeadingExecution","needTrailingExecution","inWaitPeriod","throttled","parameters","noop","getType","mergeInto","destination","circularReferenceChecker","createCircularReferenceChecker","set_1","hasAlreadyBeenSeen","flags","sticky","unicode","merged_1","merged","deepClone","combine","sources","sources_1","jsonStringify","replacer","restoreObjectPrototypeToJson","detachToJsonMethod","restoreArrayPrototypeToJson","restoreValuePrototypeToJson","restoreValueToJson","objectToJson","sanitize","maxCharacterCount","containerQueue","visitedObjectsWithPath","sanitizedData","sanitizeProcessor","accumulatedCharacterCount","warnOverCharacterLimit","containerToProcess","separatorLength","targetData","parentPath","sourceToSanitize","tryToApplyToJSON","sanitizedSource","sanitizeObjects","currentPath","changeType","Observable","onFirstSubscribe","subscribe","onLastUnsubscribe","unsubscribe","other","mergeObservables","observables","globalObservable","subscriptions","observable","subscription","CustomerDataLabel","warnIfCustomerDataLimitReached","bytesCount","customerDataType","CUSTOMER_DATA_BYTES_LIMIT","createContextManager","computeBytesCountImpl","bytesCountCache","alreadyWarned","changeObservable","computeBytesCountThrottled","contextManager","getBytesCount","newContext","clearContext","setContextProperty","removeContextProperty","BoundedBuffer","performDraw","decimals","isPercentage","relativeToClocks","correctedOrigin","timeStamp","getNavigationStart","toServerDuration","timeStampNow","relativeNow","clocksNow","clocksOrigin","generateUUID","findCommaSeparatedValue","rawString","safeTruncate","suffix","lastChar","correctedLength","isLastCharSurrogatePair","expireDelay","crossSite","deleteCookie","willSyntheticsInjectRum","_DATADOG_SYNTHETICS_INJECTS_RUM","getEventBridge","eventBridgeGlobal","DatadogEventBridge","getAllowedWebViewHosts","canUseEventBridge","currentHost","bridge","allowedHost","configuration","addEventListeners","eventNames","once","listenerWithMonitor","storageListeners","createStoredContextManager","productKey","synchronizeWithStorage","rawContext","computeStackTrace","ex","stackProperty","tryToGetString","exString","stackFrame","parseChromeLine","CHROME_LINE_RE","isNative","isEval","submatch","CHROME_EVAL_RE","parseChromeAnonymousLine","CHROME_ANONYMOUS_FUNCTION_RE","parseWinLine","WINJS_LINE_RE","parseGeckoLine","GECKO_LINE_RE","GECKO_EVAL_RE","fileUrl","filePosition","NO_ERROR_STACK_PRESENT_MESSAGE","computeRawError","stackTrace","originalError","handlingStack","startClocks","nonErrorPrefix","handling","isErrorInstance","hasUsableStack","toStackTraceString","causes","flattenErrorCauses","parentSource","currentError","cause","tryToGetFingerprint","dd_fingerprint","formatErrorMessage","createHandlingStack","formattedStack","sanitizeUser","newUser","enabledExperimentalFeatures","isExperimentalFeatureEnabled","featureName","shallowClone","objectHasValue","SESSION_STORE_KEY","SESSION_ENTRY_REGEXP","expandSessionState","expire","toSessionString","toSessionState","sessionString","retrieveSessionCookie","persistInLocalStorage","sessionState","retrieveSessionFromLocalStorage","clearSessionFromLocalStorage","bufferedOperations","processSessionStoreOperations","operations","sessionStoreStrategy","numberOfRetries","currentLock","isLockEnabled","retrieveSession","persistSession","clearSession","retryLater","processedSession","sessionStore","currentNumberOfRetries","nextOperations","normalizeUrl","buildUrl","getLinkElementOrigin","supportedURL","getSupportedUrl","originalURL","anchorElement","baseElement","sanitizedHost","INTAKE_SITE_STAGING","INTAKE_SITE_US1","ENDPOINTS","logs","rum","sessionReplay","INTAKE_TRACKS","createEndpointBuilder","initConfiguration","endpointType","configurationTags","buildUrlWithParameters","createEndpointUrlWithParametersBuilder","proxy","proxyUrl","normalizedProxyUrl_1","buildEndpointHost","internalAnalyticsSubdomain","domainParts","extension","subdomain","normalizedProxyUrl_2","build","clientToken","retry","flushReason","encoding","COLLECT_FLUSH_REASON","lastFailureStatus","urlPrefix","FORBIDDEN_CHARACTERS","buildTag","rawValue","valueSizeLimit","TAG_SIZE_LIMIT","sanitizedValue","DefaultPrivacyLevel","MASK","MASK_USER_INPUT","isMatchOption","itemType","matchList","useStartsWith","clearTracingIfNeeded","isAborted","traceSampled","injectHeadersIfTracingAllowed","sessionManager","inject","getCrypto","findTrackedSession","propagatorTypes","tracingHeaders","tracingOption","allowedTracingUrls","TraceIdentifier","traceSampleRate","propagatorType","toDecimalString","traceparent","toPaddedHexadecimalString","b3","radix","high","readInt32","low","buildCommonContext","globalContextManager","userContextManager","recorderApi","hasReplay","isRecording","sendToExtension","__ddBrowserSdkExtensionCallback","TelemetryType","ALLOWED_FRAME_URLS","TELEMETRY_EXCLUDED_SITES","telemetryConfiguration","maxEventsPerPage","sentEventCount","telemetryEnabled","telemetryConfigurationEnabled","addTelemetryDebug","addTelemetry","addTelemetryError","formatError","allowedFrameUrl","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","getMutationObserverConstructor","originalInstance","runOnReadyState","expectedReadyState","FAKE_INITIAL_DOCUMENT","RESOURCE_TYPES","initiatorType","areInOrder","numbers","toValidEntry","fetchStart","domainLookupStart","domainLookupEnd","connectStart","connectEnd","requestStart","responseStart","responseEnd","hasRedirection","redirectStart","redirectEnd","formatTiming","isAllowedRequestUrl","isIntakeUrl","isNodeShadowHost","isNodeShadowRoot","forEachChildNodes","getParentNode","createDocumentTraceData","rawTraceTime","traceTime","getTraceCommentFromNode","supportPerformanceObject","supportPerformanceTimingEvent","entryType","PerformanceObserver","supportedEntryTypes","computeRelativePerformanceTiming","timingElement","handleRumPerformanceEntries","lifeCycle","rumAllowedPerformanceEntries","rumPerformanceEntries","NAVIGATION","loadEventEnd","RESOURCE","ErrorSource","AGENT","CONSOLE","CUSTOM","SOURCE","REPORT","createEventRateLimiter","limit","onLimitReached","eventCount","allowNextEvent","isLimitReached","fields","field","isValidObject","VIEW_MODIFIABLE_FIELD_PATHS","USER_CUSTOMIZABLE_FIELD_PATHS","AbstractLifeCycle","callbacks","eventCallbacks","END_OF_TIMES","Infinity","ValueHistory","maxEntries","clearOldValuesInterval","clearOldValues","endTime","closeActive","latestEntry","findAll","oldTimeThreshold","instrumentMethod","instrumentationFactory","instrumentation","instrumentationWrapper","instrumentMethodAndCallOriginal","instrumentSetter","originalDescriptor","thisObject","xhrContexts","openXhr","sendXhr","startContext","hasBeenReported","stopInstrumentingOnReadyStateChange","DONE","unsubscribeLoadEndListener","completeContext","abortXhr","beforeSend","afterSend","responsePromise","reportFetch","DOMException","ABORT_ERR","nextRequestIndex","getNextRequestIndex","trackEventCounts","isChildEvent","onChange","eventCounts","errorCount","longTaskCount","resourceCount","actionCount","frustrationCount","frustration","_dd","discarded","doWaitPageActivityEnd","pageActivityObservable","pageActivityEndCallback","maxDuration","pageActivityEndTimeoutId","hasCompleted","validationTimeoutId","hadActivity","maxDurationTimeoutId","pageActivitySubscription","isBusy","lastChangeTime","createPageActivityObservable","domMutationObservable","firstRequestIndex","pendingRequestsCount","notifyPageActivity","isExcludedUrl","startEvent","requestIndex","stopTrackingWindowOpen","trackWindowOpen","requestUrl","excludedActivityUrls","DEFAULT_PROGRAMMATIC_ACTION_NAME_ATTRIBUTE","getActionNameFromElementProgrammatically","programmaticAttribute","HTMLElement","elementWithAttribute","normalizeWhitespace","priorityStrategies","userProgrammaticAttribute","labels","getTextualContent","label","htmlFor","labelledByAttribute","refElement","fallbackStrategies","getActionNameFromElementForStrategies","strategies","recursionCounter","strategies_1","name_1","strategy","trimmedName","text_1","removeTextFromElements","element_1","textToReplace","documentMode","STABLE_ATTRIBUTES","GLOBALLY_UNIQUE_SELECTOR_GETTERS","getStableAttributeSelector","isGeneratedValue","UNIQUE_AMONG_CHILDREN_SELECTOR_GETTERS","getSelectorFromElement","actionNameAttribute","targetElementSelector","globallyUniqueSelector","findSelector","isSelectorUniqueGlobally","uniqueSelectorAmongChildren","isSelectorUniqueAmongSiblings","combineSelector","getPositionSelector","sibling","firstElementChild","elementIndex","nextElementSibling","getAttributeSelector","STABLE_ATTRIBUTES_1","selectorGetters","childSelector","selectorGetters_1","elementSelector","selectorGetter","fullSelector","supportScopeSelector","isSelectionEmpty","isValidPointerEvent","isPrimary","isDead","click","hasPageActivity","getUserActivity","msMatchesSelector","processAction","pageStateHistory","autoActionProperties","isAutoAction","loading_time","frustrationTypes","counts","long_task","resource","customerContext","rawRumEvent","view","in_foreground","isInActivePageStateAt","domainContext","ERROR_TYPES_RE","consoleObservablesByApi","RawReportType","intervention","cspViolation","buildStack","sourceFile","computePerformanceEntryMetrics","computeSize","decodedBodySize","computePerformanceResourceDetails","validEntry","secureConnectionStart","details","download","first_byte","connect","ssl","dns","getRulePsr","computeIndexingInfo","resourceStart","resourceAllowed","computePageStateInfo","RESOURCE_PAGE_STATES","page_states","page_was_discarded","wasDiscarded","interactionCountEstimate","minKnownInteractionId","maxKnownInteractionId","getInteractionCount","interactionCount","getScrollX","visual","visualViewport","pageLeft","offsetLeft","scrollX","getScrollY","pageTop","offsetTop","initViewportObservable","getViewportDimension","getPathFromHash","stopCallbacks","isTypeTracked","rumSessionType","Batch","flushController","messageBytesLimit","pushOnlyBuffer","upsertBuffer","flushSubscription","flushObservable","addOrUpdate","upsert","messages","sendOnExit","processedMessage","messageBytesCount","hasMessageFor","separatorBytesCount","messagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","sendWithRetryStrategy","sendStrategy","transportStatus","queuedPayloads","bandwidthMonitor","canHandle","retryQueuedPayloads","onFailure","scheduleRetry","dequeue","currentBackoffTime","ongoingRequestCount","isFull","queueFullReported","MAX_QUEUE_BYTES_COUNT","previousQueue","newPayloadQueue","createHttpRequest","endpointBuilder","bytesLimit","retryState","ongoingByteCount","sendStrategyForRetry","onResponse","fetchKeepAliveStrategy","isKeepAliveSupported","fetchUrl","mode","sendXHR","sendBeaconStrategy","beaconUrl","hasReportedBeaconError","sendCurrentPeriodMeasures","batchCount","initCurrentPeriodMeasures","createMeasure","sum","updateMeasure","measure","mergeMeasure","batchBytesCount","batchMessagesCount","globalContextBytes","userContextBytes","featureFlagBytes","initCurrentBatchMeasures","getPageState","visibilityState","RecordType","Focus","ViewEnd","VisualViewport","FrustrationRecord","DocumentFragment","MouseInteractionType","ContextMenu","DblClick","Blur","MediaInteractionType","Play","Pause","assembleIncrementalSnapshot","NodePrivacyLevel","IGNORE","PRIVACY_ATTR_NAME","PRIVACY_ATTR_VALUE_HIDDEN","FORM_PRIVATE_TAG_NAMES","INPUT","OUTPUT","TEXTAREA","SELECT","OPTION","DATALIST","OPTGROUP","getNodePrivacyLevel","defaultPrivacyLevel","parentNodePrivacyLevel","reducePrivacyLevel","getNodeSelfPrivacyLevel","childPrivacyLevel","privAttr","inputElement","autocomplete","shouldIgnoreElement","relAttribute","getLowerCaseAttribute","nameAttribute","propertyAttribute","shouldMaskNode","privacyLevel","isFormElement","getTextContent","textNode","ignoreWhiteSpace","nodePrivacyLevel","serializedNodeIds","hasSerializedNode","getSerializedNodeId","getElementInputValue","ABSOLUTE_URL","TAG_NAME_REGEX","serializeStyleSheets","cssStyleSheets","cssStyleSheet","cssRule","serializeAttribute","getCssRulesString","cssHref","isSafari","getCssRuleStringForSafari","getCssRuleString","matchingSubstring","singleQuote","urlWrappedInSingleQuotes","doubleQuote","urlWrappedInDoubleQuotes","urlNotWrappedInQuotes","makeUrlAbsolute","baseUrl","serializeChildNodes","serializationContext","shadowRootsController","documentType","SVGElement","serializeAttributes","safeAttrs","formValue","optionElement","DISABLE_REPLAY_INLINE_CSS","mediaElement","elementsScrollPositions","_nextId","serializedNodeWithId","isTouchEvent","composed","convertMouseEventToLayoutCoordinates","normalized","layoutViewportX","layoutViewportY","visualViewportX","visualViewportY","getVisualViewport","tryToComputeCoordinates","eventTypeToMouseInteraction","stopPropertySetterInstrumentation","lastInputStateMap","stopEventListeners","onElementChange","instrumentationStoppers_1","stopper","inputState","lastInputState","getPathToNestedCSSRule","currentRule","index_1","rules_1","mutationCallback","mutationBatch","createMutationBatch","processMutationBatch","cancelScheduledFlush","pendingMutations","addMutations","id_1","removedNode","traverseRemovedShadowDom","shadowDomRemovedCallback","removeShadowRoot","filteredMutations","nodeAndAncestorsHaveSerializedNode","processChildListMutations","addedAndMovedNodes","_loop_1","mutations_1","sortedAddedAndMovedNodes","sortAddedAndMovedNodes","nodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","addedNodeMutations","sortedAddedAndMovedNodes_1","hasBeenSerialized","getNextSibling","removedNodeMutations","processCharacterDataMutations","textMutations","handledNodes","filteredMutations_1","processAttributesMutations","attributeMutations","handledElements","handledAttributes","emittedMutations","filteredMutations_2","uncensoredValue","transformedValue","emittedMutation","takeRecords","initShadowRootsController","controllerByShadowRoot","stopMutationObserver","stopInputObserver","getOrCreateReplayStats","viewId","replayStats","records_count","segments_count","segments_total_raw_size","deleteOldestStats","isFirst_1","Segment","encoder","creationReason","creation_reason","has_full_snapshot","index_in_view","addRecord","additionalBytesCount","rawBytesCount","isBrowserSupported","createDeflateWorker","workerUrl","streamId","baseMessage","initializationFailureCallbacks","worker_version","stream_id","datadogRum","makeRumPublicApi","startRumImpl","stub","publicApi","ignoreInitIfSyntheticsWillInjectRum","isAlreadyInitialized","getInternalContextStrategy","getInitConfigurationStrategy","stopSessionStrategy","getSessionReplayLinkStrategy","bufferApiCalls","addTimingStrategy","startViewStrategy","addActionStrategy","commonContext","addErrorStrategy","providedError","addFeatureFlagEvaluationStrategy","doStartRum","initialViewOptions","storeContextsAcrossPages","beforeInitGlobalContext","beforeInitUserContext","startRumResults","getSessionReplayLink","viewContexts","startView","addAction","addError","addTiming","addFeatureFlagEvaluation","getInternalContext","stopSession","onRumStart","eventBridgeAvailable","applicationId","sessionSampleRate","silentMultipleInit","validateAndBuildRumConfiguration","sessionReplaySampleRate","premiumSampleRate","replaySampleRate","tracingSampleRate","validateAndBuildTracingOptions","allowedTracingOrigins","service","tracingOptions_1","expectedItem","tracingOptions_2","legacyMatchOption","convertLegacyMatchOptionToTracingOption","baseConfiguration","validateAndBuildConfiguration","cookieOptions","sessionStoreStrategyType","datacenter","endpointBuilders","intakeUrlPrefixes","telemetrySampleRate","telemetryConfigurationSampleRate","enableExperimentalFeatures","addExperimentalFeatures","enabledFeatures","flag","areCookiesAuthorized","testCookieName","testCookieValue","isCookieCorrectlySet","useSecureSessionCookie","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","getCurrentSite","domainLevels","candidateDomain","allowFallbackToLocalStorage","selectLocalStorageStrategy","testKey","retrievedId","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","logsEndpointBuilder","rumEndpointBuilder","sessionReplayEndpointBuilder","builder","intakeEndpoint","replica","computeReplicaConfiguration","replicaConfiguration","replicaEndpointBuilders","trackUserInteractions","trackInteractions","trackFrustrations","oldPlansBehavior","trackViewsManually","trackResources","trackLongTasks","customerDataTelemetrySampleRate","beforeInitCalls","addRumGlobalContext","setGlobalContextProperty","removeRumGlobalContext","removeGlobalContextProperty","getRumGlobalContext","getGlobalContext","setRumGlobalContext","setGlobalContext","clearGlobalContext","getInitConfiguration","isValid","setUserProperty","sanitizedProperty","removeUserProperty","removeUser","clearUser","startSessionReplayRecording","stopSessionReplayRecording","onReady","locationChangeObservable","viewContextHistory","viewport","urlContexts","actionContexts","displayContext","errorObservable","consoleObservables","baseSerializedConfiguration","usedTracingPropagators","apis","reportTypes","tracer","cleanupTasks","telemetry","startRumTelemetry","contextProvider","runtimeEnvInfo","is_local_file","is_worker","event_1","format_version","runtime_env","experimental_features","setContextProvider","provider","bridge_1","application","findView","findActionId","featureFlagContexts","startFeatureFlagContexts","FEATURE_FLAGS","findFeatureFlagEvaluations","getFeatureFlagBytesCount","endClocks","pageExitObservable","pagehideEnabled","stopListeners","stopBeforeUnloadListener","pageExitSubscription","plan","sessionReplayAllowed","longTaskAllowed","expireObservable","startSessionManager","computeSessionState","expandSessionWhenVisible","visibilityCheckInterval","startSessionStore","cookieStore","renewObservable","tryOldCookiesMigration","cookieStoreStrategy","oldSessionId","oldRumType","oldLogsType","watchSessionTimeoutId","synchronizeSession","sessionCache","isActiveSession","hasSessionInCache","created","expandOrRenewSession","isTracked","trackingType","synchronizedSession","expandSession","sessionContextHistory","buildSessionContext","findActiveSession","rawTrackingType","startRumEventBridge","serverRumEvent","batchFlushObservable","telemetryEventObservable","sessionExpireObservable","batch_1","startBatchWithReplica","primaryBatch","createBatch","replicaBatch","createFlushController","durationLimitTimeoutId","messagesLimit","durationLimit","sessionExpireSubscription","currentBytesCount","currentMessagesCount","cancelDurationLimitTimeout","replicated","transformMessage","featureFlagContext","hasFeatureFlagContext","createLocationChangeObservable","currentLocation","stopInstrumentingPushState","stopInstrumentingReplaceState","removeListener","stopHistoryTracking","trackHistory","onLocationChange","stopHashTracking","trackHash","newLocation","oldLocation","startUrlContexts","previousViewUrl","urlContextHistory","viewUrl","buildUrlContext","locationChangeSubscription","changeTime","findUrl","startPageStateHistory","maxPageStateEntriesSelectable","currentPageState","addPageState","persisted","nextPageState","eventStartTime","pageStateEntries","pageStateServerEntries","pageState","relativeStartTime","pageStateEntry","startActionCollection","trackClickActions","selectionEmptyAtPointerDown","clickContext","onPointerDown","onPointerUp","userActivity","listeners","currentClickChain","stopObservable","stopClickChain","stopActionEventsListener","listenActionEvents","pointerDownEvent","processPointerDown","rect","clickActionBase","hadActivityOnPointerDown","pageActivityEndEvent","appendClickToClickChain","stopWaitPageActivityEnd","viewEndedSubscription","stopSubscription","newClick","activityEndTime","historyEntry","eventCountsSubscription","newActivityEndTime","addFrustration","frustrationType","isStopped","validate","domEvents","clickAction","discard","waitPageActivityEnd","localUserActivity_1","tryAppend","rageClick_1","createClickChain","firstClick","onFinalize","maxDurationBetweenClicksTimeoutId","bufferedClicks","appendClick","tryFinalize","dontAcceptMoreClick","every","second","mouseEventDistance","sqrt","pow","clicks","computeFrustration","rageClick","isRage","MIN_CLICKS_PER_SECOND_TO_CONSIDER_RAGE","hasSelectionChanged","savedCommonContext","viewportDimension","startRumAssembly","eventRateLimiters","syntheticsContext","getSyntheticsContext","testId","_DATADOG_SYNTHETICS_PUBLIC_ID","resultId","_DATADOG_SYNTHETICS_RESULT_ID","test_id","result_id","injected","ciTestContext","getCiTestContext","testExecutionId","Cypress","test_execution_id","viewContext","urlContext","actionId","drift","session_sample_rate","session_replay_sample_rate","browser_sdk_version","needToAssembleWithAction","synthetics","ci_test","has_replay","usr","shouldSend","modifiableFieldPaths","fieldPath","fieldType","newType","stopRumEventCollection","telemetry_sample_rate","telemetry_configuration_sample_rate","use_before_send","use_cross_site_session_cookie","use_secure_session_cookie","use_proxy","silent_multiple_init","track_session_across_subdomains","track_resources","track_long_task","allow_fallback_to_local_storage","store_contexts_across_pages","premium_sample_rate","replay_sample_rate","trace_sample_rate","action_name_attribute","use_allowed_tracing_origins","use_allowed_tracing_urls","selected_tracing_propagators","default_privacy_level","use_excluded_activity_urls","use_worker_url","track_frustrations","track_views_manually","track_user_interactions","startLongTaskCollection","entries_1","LONG_TASK","performanceEntry","matchingTiming","correspondingTimingOverrides","tracingInfo","indexingInfo","pageStateInfo","resourceEvent","matchRequestTiming","sameNameEntries","getEntriesByName","candidates","computeRequestTracingInfo","rule_psr","NO_RESOURCE_DURATION_FROZEN_STATE","requestInput","requestInit","processResourceEntry","computeResourceKind","isValidUrl","RESOURCE_TYPES_1","isType","entryMetrics","computeEntryTracingInfo","_g","_h","_j","_k","_l","_m","_o","_p","pageStatesEnabled","pageStates","viewEvent","getReplayStats","PAGE_STATES","document_version","documentVersion","replay_stats","cumulative_layout_shift","commonViewMetrics","cumulativeLayoutShift","cumulative_layout_shift_target_selector","targetSelector","initialViewMetrics","navigationTimings","firstByte","dom_complete","domComplete","dom_content_loaded","domContentLoaded","dom_interactive","domInteractive","first_contentful_paint","firstContentfulPaint","first_input_delay","firstInput","first_input_time","first_input_target_selector","interaction_to_next_paint","interactionToNextPaint","interaction_to_next_paint_target_selector","is_active","largest_contentful_paint","largestContentfulPaint","largest_contentful_paint_target_selector","load_event","loadEvent","loadingTime","loading_type","loadingType","time_spent","in_foreground_periods","mapToForegroundPeriods","foregroundPeriods","feature_flags","max_depth","maxDepth","max_depth_scroll_top","maxDepthScrollTop","max_scroll_height","maxScrollHeight","max_scroll_height_time","maxScrollHeightTime","sessionIsActive","privacy","replay_level","customTimings","custom_timings","mapValues","newObject","trackViews","areViewsTrackedAutomatically","activeViews","currentView","startNewView","viewOptions","newlyCreatedView","newView","initialLocation","throttleDuration","viewStart","stopLoadingTimeTracking","setLoadEvent","scrollValues","maxScrollDepth","stopScrollMetricsTracking","stopCLSTracking","stopINPTracking","getInteractionToNextPaint","stopNavigationTracking","firstHidden","stopFCPTracking","firstInteractionTimestamp","stopEventListener","unsubscribeLifeCycle","stopLCPTracking","stopFIDTracking","triggerViewUpdate","scheduleViewUpdate","cancelScheduleViewUpdate","trackLoadingTime","loadType","isWaitingForLoadEvent","isWaitingForActivityLoadingTime","loadingTimeCandidates","invokeCallbackIfAllCandidatesAreReceived","newLoadingTime","trackScrollMetrics","newScrollMetrics","ResizeObserver","throttledNotify_1","scrollDepth","observerTarget_1","resizeObserver_1","eventListener_1","shouldUpdate","trackCumulativeLayoutShift","LAYOUT_SHIFT","largestLayoutShiftTarget","largestLayoutShiftTime","largestLayoutShift","maxClsValue","hadRecentInput","clsTarget","cslTargetSelector","WEB_VITALS_ATTRIBUTION","trackInteractionToNextPaint","viewLoadingType","EVENT","PerformanceEventTiming","INTERACTION_TO_NEXT_PAINT","previousInteractionCount","interactionToNextPaintTargetSelector","getViewInteractionCount","trackViewInteractionCount","getEntries","interactionId","buffered","durationThreshold","longestInteractions","trackLongestInteractions","sortAndTrimLongestInteractions","interactionIndex","interaction","minLongestInteraction","estimateP98Interaction","telemetryCollected","FIRST_INPUT","newInteraction","inp","timeFromViewStart","processingStart","processingEnd","targetNodeName","getCommonViewMetrics","stopCommonViewMetricsTracking","trackNavigationTimings","domContentLoadedEventEnd","trackFirstContentfulPaint","fcpEntry","PAINT","trackLargestContentfulPaint","lcpEntry","findLast","LARGEST_CONTENTFUL_PAINT","lcpTargetSelector","trackFirstInput","firstInputEntry","firstInputDelay","firstInputTargetSelector","stopInitialViewMetricsTracking","stopEventCountsTracking","keepAliveIntervalId","currentEnd","sanitized","relativeTime","looksLikeRelativeTime","pageExitEvent","otherLocation","correspondingId","stopViewCollection","startErrorCollection","initConsoleObservable","originalConsoleApi","buildConsoleLog","firstErrorParam","consoleError","instrumentOnError","messageObj","errorObj","instrumentUnhandledRejection","initReportObservable","blockedURI","effectiveDirective","subtype","originalPolicy","ReportingObserver","handleReports","reports","report","types","handling_stack","source_type","rawError","traceFetch","headers_1","header","traceXhr","trackXhr","initXhrObservable","stopInstrumentingStart","stopInstrumentingSend","stopInstrumentingAbort","initFetchObservable","clonedResponse","tryToClone","readBytesFromStream","reader","getReader","chunks","readBytesCount","onDone","collectStreamBody","completeBuffer_1","limitExceeded","offset_1","chunk","readMore","POSITIVE_INFINITY","startPerformanceCollection","forcedAttributes","getDocumentTraceId","traceIdMeta","traceTimeMeta","getDocumentTraceDataFromMeta","getDocumentTraceDataFromComment","findTraceComment","getEntriesByType","navigationEntry","relativePerformanceTiming","performanceEntries_1","handlePerformanceEntryList_1","mainEntries","experimentalEntries","mainObserver","entryTypes","clearResourceTimings","retrieveNavigationTiming","sendFakeTiming","retrieveFirstInputTiming","startTimeStamp","timingSent","removeEventListeners","cancelable","sendTiming","internalContext","application_id","session_id","user_action","task","makeRecorderApi","startRecordingImpl","createDeflateWorkerImpl","startStrategy","stopStrategy","isRecordingStarted","errorType","sessionId","rumConfiguration","getSiteDefaultSubdomain","compressedDataTrailer","compressedData","nextWriteActionId","pendingWriteActions","removeMessageListener","startDeflateWorker","onInitializationFailure","doStartDeflateWorker","removeErrorListener_1","removeMessageListener_1","nextPendingAction","trailer","encodedBytes","concatBuffers","total","buffers_1","encodedBytesCount","getDeflateWorkerStatus","httpRequest","replayRequest","doStartSegmentCollection","getSegmentContext","nextSegmentCreationReason","unsubscribeViewCreated","flushSegment","unsubscribePageExited","rawSegmentBytesCount","formData","serializedMetadataAndSegmentSizes","raw_segment_size","compressed_segment_size","expirationTimeoutId","computeSegmentContext","stopSegmentCollection","scrollPositionsByElement","recordIds","mutationHandler","focusCb","focusHandler","visualViewportResizeHandler","frustrationCb","frustrationHandler","scrollPositions","has_focus","mouseInteractionRecord","styleSheetCb","frustrationRecord","visualViewportResizeCb","getIdForEvent","coordinates","checkStyleSheetAndCallback","instrumentationStoppers","instrumentGroupingCSSRuleClass","initVisualViewportResizeObserver","cancelThrottle","stopObservers","flushMutationsFromObservers","flushMutations","takeSubsequentFullSnapshot","unsubscribeViewEnded","DEV","STAGING","PRODUCTION","APPLICATION_ID","CLIENT_TOKEN","envSpecificConfig","startSessionReplayRecordingManually","DatadogProvider","useDatadogContext","datadogEnv","getEnvSpecificConfig","isDataDogInitialized","DD_RUM","VERSION","INCREMENTED_VERSION","lib_useDianomiScript","existingScript","off","CONSENT_COOKIE_NAME","lib_initialiseWebtrends","GOOGLE_ANALYTICS_TAG_ID","googleAnalyticsTrackingClient","ga","GA","initialize","pathFromUrl","route","hitType","page","trackConsent","accepted","gtmClient","finimize_authorized_cookies","dataLayer","tikTokTrackingClient","buttonHoverStyle","StyledModal","Modal","modules_CookieModal","showSettings","setShowSettings","useDialogState","optOutQueryParam","datadogClient","impactClient","financeadsClient","authorizeTracking","gaTrackingClient","initialiseStripe","initialiseWebtrends","setConsent","handleConsent","acceptCookieModal","declineCookieModal","displaySettings","goBack","cookie_consent","cookieConsent","haveConsent","buttonPadding","ActionCTAs","Card","Column","pb","pr","NavBarProvider","useIsNavCollapsedContext","isNavCollapsed","setIsNavCollapsed","toggleIsNavCollapsed","appleAuthRedirectURI","GlobalStyle","createGlobalStyle","awsWafCookieDomainList","_app","pageProps","queryRecords","consentCookie","isJavaScriptEnabled","sentryConfigureScope","useDianomiScript","ThemeProvider","Head","Script","APPSFLYER_SMART_BANNER_KEY","ReactRelayContext","relay","refetch","hasMore","asPath","CookieModal","originalFunctionToString","cachedFetchImpl","_lcpEntry","_clsEntry","prevTransactionName","defaultBrowserTracingIntegration","hasWeakSet","SDK_VERSION","DEFAULT_IGNORE_ERRORS","InboundFilters","__initStatic","_options","setupOnce","eventProcess","ignoreErrors","clientOptions","_shouldDropEvent","_mergeOptions","internalOptions","allowUrls","denyUrls","ignoreInternal","_isSentryError","esm_logger","misc","jH","_getPossibleEventMessages","zC","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","stacktrace","_getLastValidUrl","FunctionToString","HK","installedIntegrations","filterDuplicates","acc","accIntegration","SentryError","setPrototypeOf","DSN_REGEX","dsn_dsnToString","dsn","withPassword","pass","projectId","dsnFromComponents","components","createEnvelope","forEachEnvelopeItem","envelope","envelopeItems","envelopeItemType","envelopeItem","encodeUTF8","textEncoder","utf8","serializeEnvelope","envHeaders","itemHeaders","totalLength","ITEM_TYPE_TO_DATA_CATEGORY_MAP","sessions","client_report","user_report","normalize","depth","maxProperties","visit","unmemoize","stringified","stringifyValue","_events","Cy","valueWithToJSON","jsonValue","numAdded","visitable","Sh","visitKey","visitValue","ERROR","getEnvelopeEndpointWithUrlEncodedAuth","tunnelOrOptions","tunnel","sdkInfo","_metadata","sdk","sentry_key","sentry_version","sentry_client","getSdkMetadataForEnvelopeHeader","ALREADY_SEEN_ERROR","BaseClient","_integrations","_integrationsInitialized","_numProcessing","_outcomes","_dsn","validateDsn","requiredComponents","dsnFromString","lastPath","projectMatch","_transport","transportOptions","YO","_process","eventFromException","_captureEvent","promisedEvent","pt","eventFromMessage","_isEnabled","sendSession","esm_session","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","syncpromise","WD","integrationIndex","esm_scope","esm_hub","getIntegrationById","integrationId","sendEvent","createEventEnvelope","dynamicSamplingContext","samplingMethod","packages","envelopeHeaders","esm_baggage","sent_at","sample_rates","attachments","addItemToEnvelope","newItem","createAttachmentEnvelopeItem","content_type","contentType","attachment_type","attachmentType","_sendEnvelope","category","sendClientReports","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","ticked","interval","setInterval","clearInterval","_prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","_normalizeEvent","maxBreadth","dist","maxValueLength","integrationsArray","_processEvent","finalEvent","$2","isTransaction","__sentry__","_ensureBeforeSendRv","rv","nullErr","processedEvent","_clearOutcomes","outcomes","quantity","exceptionFromError","parseStackFrames","eventFromError","popSize","getPopSize","reactMinifiedRegexp","eventFromUnknownInput","attachStacktrace","isUnhandledRejection","VW","errorEvent","TX","fm","domException","eventFromString","Db","eventFromPlainObject","zf","__serialized__","normalizeToSize","maxSize","encodeURI","EG","synthetic","validSeverityLevels","BREADCRUMB_INTEGRATION_ID","Breadcrumbs","dom","_consoleBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","nK","esm_global","parsedLoc","en","parsedFrom","parsedTo","getNativeFetchImplementation","supports","Du","fetchImpl","BrowserClient","_flushOutcomes","breadcrumbIntegration","discarded_events","isRealNavigator","Ak","createFrame","lineno","colno","in_app","chromeRegex","chromeEvalRegex","geckoREgex","geckoEvalRegex","winjsRegex","defaultStackLineParsers","subMatch","extractSafariExtensionDetails","defaultStackParser","pE","isSafariExtension","isSafariWebExtension","ignoreOnError","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","esm_exports","$e","Tb","$Q","descriptor","DEFAULT_EVENT_TARGET","TryCatch","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","xmlHttpRequestProps","wrapOptions","originalFunction","handleEvent","originalEventHandler","wrappedEventHandler","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","getHubAndOptions","shouldIgnoreOnError","_enhanceEventWithInitialFrame","addMechanismAndCapture","ev0","ev0s","ev0sf","LinkedErrors","_limit","_handler","linkedErrors","_walkErrorTree","Dedupe","currentEvent","previousEvent","currentMessage","previousMessage","previousException","currentException","_previousEvent","_isSameFingerprint","_isSameStacktrace","_getExceptionFromEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","httpcontext_global","HttpContext","Referer","createTransport","makeRequest","makePromiseBuffer","$","taskProducer","counter","capturedSetTimeout","bufferSize","rateLimits","filteredEnvelopeItems","envelopeItemDataCategory","isRateLimited","limits","disabledUntil","filteredEnvelope","recordEnvelopeLoss","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","categories","headerDelay","parseRetryAfterHeader","headerDate","makeFetchTransport","nativeFetch","fetchOptions","makeXHRTransport","getResponseHeader","defaultIntegrations","startSessionOnHub","TRACEPARENT_REGEXP","backgroundtab_global","bindReporter","metric","reportAllChanges","prevValue","forceReport","delta","generateUniqueID","initMetric","po","onHidden","onHiddenOrPageHide","getCLS","onReport","sessionValue","sessionEntries","entryHandler","firstSessionEntry","lastSessionEntry","firstHiddenTime","initHiddenTime","trackChanges","getVisibilityWatcher","getFID","visibilityWatcher","reportedMetricIDs","getLCP","stopListening","isMeasurementValue","_startChild","metrics_global","getBrowserPerformanceAPI","_performanceCursor","_addPerformanceNavigationTiming","eventEnd","defaultRequestInstrumentationOptions","traceXHR","tracingOrigins","router_global","DEFAULT_BROWSER_TRACING_OPTIONS","nT","mg","markBackgroundTransactions","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","BrowserTracing","_emitOptionsWarning","_metricOptions","startTrackingWebVitals","Z1","mark","_reportAllChanges","_getCurrentHub","instrumentRouting","shouldCreateSpanForRequest","_createRouteTransaction","statusType","instrumentOutgoingRequests","urlMap","defaultShouldCreateSpan","origins","shouldCreateSpan","fetchCallback","__span","addTracingHeaders","bU","headerBaggageString","xhrCallback","__sentry_xhr_span_id__","getRequestHeader","beforeNavigate","parentContextFromHeader","extractTraceDataFromMetaTags","sentrytraceValue","getMetaContent","baggageValue","sentrytraceData","extractTraceparentData","rg","expandedContext","modifiedContext","finalContext","idleTransaction","hubextensions","lb","addPerformanceEntries","responseStartTimestamp","requestStartTimestamp","performanceEntries","measureStartTimestamp","shouldRecord","resourceName","_addResourceSpans","transferSize","encodedBodySize","_trackNavigator","effectiveType","rtt","downlink","deviceMemory","hardwareConcurrency","normalizedValue","measurementTimestamp","measurementName","metaName","__SENTRY_TRACING__","ro","client_global","DEFAULT_TAGS","nextRouterInstrumentation","startTransactionCb","router_default","ready","pathIsRoute","rt","routerPrototype","changeStateWrapper","originalChangeStateWrapper","newTransactionName","version_SDK_VERSION","addIntegrationToArray","userIntegrations","includesName","setNestedKey","keyPath","names","addIntegration","userIntegrationsFunc","integrationsNames","alwaysLastToRun","autoSessionTracking","Sq","userIntegration","initialScope","startSessionTracking","filterTransactions","forgotPassword","login","manageSubscriptions","news","analysis","bookmarks","business","offerCodeEntry","corporateCode","onboardingForm","onboardDownload","openSourceLicenceInfo","signup","topics","slugs","experts","notFound","hubs","hubshub","education","markets","assets","sectors","industries","sectorSlug","faq","glossary","glossaryDefinition","terms","careers","about","newsletterSignup","newsletterPreferences","newsletterThankyou","newsletterPremiumSuccess","newsletterPremium","plansCheckoutSuccess","plansCheckout","plansSignUp","plansLogin","Cookie","sentryCaptureException","legacyColors","black","blackInverted","black800","black900","primaryInverted","primaryDark","primaryMid","primaryDarkInverted","primaryLight","danger","dangerInverted","warning","warningInverted","navy","navyInverted","yellow","yellowInverted","yellow500","successInverted","grey1","grey2","grey3","grey4","grey5","inputBorder","transparent","blue100","blue200","blue300","blue400","blue500","blue600","blue700","blue800","blue900","blueHeader","blueFooter","grey200","grey300","grey400","grey600","grey700","grey800","grey900","black300","black400","black500","day","night","azure","concrete","lavender","green","starship","red","defaultPalette","secondary","destructive","colorName","shade","_colors","XXXXXL","XXXXL","extraBold","poppins","inter","fontFamily","novaMono","xSmall","xLarge","xxLarge","xxxLarge","layerBase","layer01","layer02","layer03","layer04","layer05","layer06","layer07","searchFilterZIndex","layer08","borders","gradients","light","strong","_setPrototypeOf","__proto__","_getPrototypeOf","_construct","Parent","Class","_isNativeReflectConstruct","construct","sham","_wrapNativeSuper","_cache","PolishedError","_Error","_assertThisInitialized","subClass","superClass","colorToInt","convertToInt","blue","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","nameToHex","normalizedColorName","alpha","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","reduceHexValue","numberToHex","colorToHex","convertToHex","rgb","rgba","firstValue","secondValue","thirdValue","fourthValue","rgbValue","curry","curried","combined","guard","lowerBoundary","upperBoundary","curriedDarken","hslColor","rgbToHsl","toColorString","hsla","hsl","esm_extends","curriedTransparentize","parsedColor","cachedSetTimeout","cachedClearTimeout","currentQueue","defaultSetTimout","defaultClearTimeout","runTimeout","fun","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","marker","nextTick","argv","versions","addListener","removeAllListeners","prependListener","prependOnceListener","binding","chdir","dir","umask","autoConfig","fbq","callMethod","_fbq","loaded","titleCase","redactingEmail","_str","smallWords","GA4","_gtag","_interopRequireDefault","_format","_excluded","_excluded2","_excluded3","_excluded4","_objectWithoutProperties","sourceSymbolKeys","_arrayLikeToArray","_unsupportedIterableToArray","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","getOwnPropertyDescriptors","minLen","_defineProperties","protoProps","staticProps","_classCallCheck","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","nonce","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieFlags","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","hitCallback","_arrayWithHoles","_iterableToArrayLimit","_s","_arr","_n","_nonIterableRest","initConfigs","gtagOptions","_options$legacyDimens","legacyDimensionMetric","_options$testMode","testMode","_loadGA","mergedGtagOptions","_appendCustomMap","send_page_view","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_len2","_key2","_gaCommandSendEvent","_args$","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_len3","_key3","_gaCommandSendPageview","_args$2","_len4","_key4","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","_len5","_key5","command","_len6","_key6","_gaCommandSend","_gaCommandSet","_len7","_key7","readyCallback","optionsOrName","fieldObject","pathTrim","custom_map","safetyCallbackCalled","_window","_ga","_interopRequireWildcard","nodeInterop","_getRequireWildcardCache","hasPropertyDescriptor","desc","cacheBabelInterop","cacheNodeInterop","getComponentName","getContainerName","createRelayContext","_require","__internal","_objectSpread2","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_defineProperty2","areEqual","buildReactRelayContainer","assertRelayContext","_require2","_require3","createFragmentSpecResolver","getDataIDsFromObject","isScalarAndEqual","createContainerWithFragments","fragments","_class","containerName","_React$Component","resolverFromThisUpdate","updatedState","relayProp","getRelayProp","_props$__rootIsQueryR","relayContext","__relayContext","rootIsQueryRenderer","__rootIsQueryRenderer","prevPropsContext","getDerivedStateFromProps","nextProps","_nextProps$__rootIsQu","prevIDs","nextIDs","setProps","_proto","componentDidMount","_subscribeToNewResolverAndRerenderIfStoreHasChanged","dispose","_rerenderIfStoreHasChanged","componentWillUnmount","shouldComponentUpdate","nextState","ii","_this$state","maybeNewData","_this$state2","setCallback","_handleFragmentDataUpdate","_this$props","componentRef","createContainer","fragmentSpec","ReactRelayQueryRendererContext","useLayoutEffect","createOperationDescriptor","getRequest","deepFreeze","queryRendererContext","latestValue","latestVariables","dataRef","forceUpdate","_useState","cleanupFnRef","cleanupFn","check","retainDisposable","retain","subscribeDisposable","newSnapshot","disposed","_extends2","_objectSpread3","ReactRelayQueryFetcher","getRootVariablesForFragments","invariant","ConnectionInterface","getVariablesFromObject","RelayFeatureFlags","FORWARD","toObserver","observerOrCallback","connectionConfig","ComponentClass","countVariable","getConnectionFromProps","direction","getFragmentVariables","findConnectionMetadata","foundConnectionMetadata","isRelayModern","fragmentName","connectionMetadata","prevVars","totalCount","_resolver","connectionData","_getConnectionData","_refetchSubscription","refetchVariables","_canFetchPage","_refetchVariables","_fetchPage","force","pageSize","sink","edgeCount","_refetchConnection","_ConnectionInterface$","END_CURSOR","START_CURSOR","_isARequestInFlight","ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT","prevContext","contextForChildren","_buildRelayProp","resolverGeneration","_isUnmounted","_hasFetched","UNSAFE_componentWillReceiveProps","_this2","prevRootVariables","nextRootVariables","_cleanup","_hasMore","_isLoading","loadMore","_loadMore","refetchConnection","_ConnectionInterface$2","EDGES","PAGE_INFO","HAS_NEXT_PAGE","HAS_PREV_PAGE","edges","pageInfo","_getQueryFetcher","_queryFetcher","paginatingVariables","fragmentVariables","_this3","_assertRelayContext","_this$props2","rootVariables","fetchVariables","getVariables","cacheConfig","refetchSubscription","onNext","prevData","setVariables","nextData","cleanup","preservePreviousReferences","mergeMap","_this$props3","isRelayModernEnvironment","_cacheSelectionReference","cacheSelectionReference","_selectionReferences","selectionReferences","getSelectionReferences","lookupInStore","fetchPolicy","_retainCachedOperation","_ref$preservePrevious","reference","disposeSelectionReferences","setOnDataChange","onDataChange","_fetchOptions","onDataChangeCallbacks","_callOnDataChangeWhenSet","_error","_snapshot","cacheConfigOverride","fetchHasReturned","disposeRequest","oldOnDataChangeCallbacks","operationOverride","_pendingRequest","_onQueryDataAvailable","notifyFirstResult","_rootSubscription","_disposeCacheSelectionReference","_this$_fetchOptions","maybeNewOnDataChangeCallbacks","requestCache","ReactRelayQueryRenderer","prevRequestCacheKey","requestCacheKey","renderProps","getRenderProps","queryFetcher","retryCallbacks","handleDataChange","handleRetryAfterError","getRequestCacheKey","_maybeHiddenOrFastRefresh","prevPropsEnvironment","prevPropsVariables","prevQuery","fetchQueryAndComputeStateFromProps","resetQueryStateForUpdate","ENABLE_QUERY_RENDERER_OFFSCREEN_SUPPORT","_handleDataChange","getLoadingRenderProps","_prevProps","_this$state3","syncSnapshot","cacheID","prevSelectionReferences","storeSnapshot","querySnapshot","taggedNode","renderVariables","_getFragmentVariables","localVariables","latestState","_refetch","isRelayEnvironment","isRelayContext","componentName","assertFragmentMap","readContext","getFragment","Container","_queryRendererContext","getSelector","_selector$selectors$","_selector$selectors$2","_selector$owner$varia","fragmentOwnerVariables","owner","EntryPointContainer","ReactRelayFragmentContainer","ReactRelayLocalQueryRenderer","ReactRelayPaginationContainer","ReactRelayRefetchContainer","RelayEnvironmentProvider","RelayRuntime","loadEntryPoint","useEntryPointLoader","useFragment","useLazyLoadQuery","useMutation","usePaginationFragment","usePreloadedQuery","useQueryLoader","useRefetchableFragment","useRelayEnvironment","useSubscribeToInvalidationState","useSubscription","loadQuery","ConnectionHandler","QueryRenderer","LocalQueryRenderer","MutationTypes","RangeOperations","applyOptimisticMutation","commitLocalUpdate","createFragmentContainer","createPaginationContainer","createRefetchContainer","fetchQuery_DEPRECATED","graphql","readInlineData","requestSubscription","_React$__SECRET_INTER","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","ReactCurrentOwner","Context","dispatcher","currentDispatcher","ProfilerContext","entryPointReference","getComponent","queries","entryPoints","extraProps","rootModuleID","profilerContext","__log","_toConsumableArray2","LRUCache","getFragmentIdentifier","getPendingOperationsForFragment","isPromise","recycleNodesInto","reportMissingRequiredFields","WEAKMAP_SUPPORTED","CONSTANT_READONLY_EMPTY_ARRAY","isMissingData","getFragmentResult","cacheKey","storeEpoch","FragmentResourceImpl","_environment","fragmentNode","fragmentRef","componentDisplayName","fragmentKey","readWithIdentifier","fragmentIdentifier","_fragmentNode$metadat","getEpoch","plural","cachedValue","isRelayHooks","isPromiseCached","pendingOperations","_reportMissingRequiredFieldsInSnapshot","fragmentSelector","fragmentResult","fragmentOwner","networkPromiseResult","_getAndSavePromiseForFragmentRequestInFlight","missingRequiredFields","readSpec","fragmentNodes","fragmentRefs","renderedSnapshot","_this$checkMissedUpda","checkMissedUpdates","didMissUpdates","currentSnapshot","dataSubscriptions","latestSnapshot","_updatePluralSnapshot","subscribeSpec","fragmentResults","disposables","disposable","currentSnapshots","renderData","updatedData","updatedCurrentSnapshot","seenRecords","checkMissedUpdatesSpec","_this4","_this5","pendingOperationsResult","networkPromise","baseSnapshots","_currentFragmentResul","currentFragmentResult","nextSnapshots","createFragmentResource","dataResources","getFragmentResourceForEnvironment","cached","newDataResource","capacity","_capacity","_map","firstKey","wrapPrepareQueryResource","DEFAULT_FETCH_POLICY","operationIsLiveQuery","live","getQueryCacheIdentifier","maybeFetchPolicy","maybeRenderPolicy","cacheBreaker","renderPolicy","UNSTABLE_getDefaultRenderPolicy","cacheIdentifier","identifier","getQueryResult","rootFragmentRef","__id","dataID","__fragments","__fragmentOwner","nextID","createCacheEntry","operationAvailability","networkSubscription","onDispose","isLiveQuery","currentValue","retainCount","_releaseTemporaryRetain","currentNetworkSubscription","cacheEntry","processedPayloadsCount","getValue","setValue","getRetainCount","getNetworkSubscription","setNetworkSubscription","temporaryRetain","isServer","releaseQueryTimeout","localReleaseTemporaryRetain","permanentRetain","releaseTemporaryRetain","QueryResourceImpl","prepare","prepareWithIdentifier","temporaryRetainDisposable","entryWasCached","_fetchAndSaveQuery","observerUnsubscribe","queryAvailability","queryResult","_getOrCreateCacheEntry","resourceID","TESTS_ONLY__getCacheEntry","_clearCacheEntry","queryStatus","hasFullQuery","canPartialRender","resolveNetworkPromise","shouldFetch","shouldAllowRender","_cacheEntry","_queryResult","observerStart","observerNext","observerError","observerComplete","_cacheEntry2","createQueryResource","getQueryResourceForEnvironment","getEnvironmentForActor","environmentProvider","entryPoint","entryPointParams","loadingPromise","getModuleIfRequired","preloadProps","getPreloadProps","preloadedQueries","preloadedEntryPoints","queriesPropNames","queryPropName","_queries$queryPropNam","environmentProviderOptions","getEnvironment","networkCacheConfig","__nameForWarning","entryPointPropNames","entryPointPropName","entryPointDescription","nestedEntryPoint","nestedParams","isDisposed","innerDispose","_loadingPromise","getModuleId","PreloadableQueryRegistry","ReplaySubject","getRequestIdentifier","fetchQueryDeduped","RenderDispatcher","fetchKey","preloadableRequest","_React$__SECRET_INTER3","_React$__SECRET_INTER4","_options$fetchPolicy","retainReference","unsubscribeFromNetworkRequest","unsubscribeFromExecution","cancelOnLoadCallback","queryId","didExecuteNetworkSource","executeWithNetworkSource","networkObservable","executeWithSource","executionSubject","returnedObservable","networkError","didMakeNetworkRequest","makeNetworkRequest","subject","_observable$subscribe","ENABLE_LOAD_QUERY_REQUEST_DEDUPING","getNetwork","subjectSubscription","executeDeduped","fetchFn","_fetchQueryDeduped$su","checkAvailabilityAndExecute","concreteRequest","_params","preloadableConcreteRequest","_module","_PreloadableQueryRegi","preloadedModule","isReleased","isNetworkRequestCancelled","releaseQuery","cancelNetworkRequest","useTrackLoadQueryInRender","_React$__SECRET_INTER2","_createForOfIteratorHelper2","useIsMountedRef","initialNullEntryPointReferenceState","_options$TEST_ONLY__i","_options$TEST_ONLY__i2","_options$TEST_ONLY__i3","_options$TEST_ONLY__i4","initialEntryPointReferenceInternal","TEST_ONLY__initialEntryPointData","initialEntryPointParamsInternal","isMountedRef","undisposedEntryPointReferencesRef","setEntryPointReference","_useState2","setEntryPointParams","disposeEntryPoint","nullEntryPointReference","entryPointLoaderCallback","updatedEntryPointReference","maybeHiddenOrFastRefresh","undisposedEntryPointReferences","_step","_iterator","undisposedEntryPointReference","_step2","_iterator2","unhandledStateChange","subscriptionRef","isFetchingRef","disposeFetch","startFetch","completeFetch","useFragmentNode","useStaticFragmentNodeWarning","useDebugValue","fragmentInput","_useFragmentNode","FragmentResource","isListeningForUpdatesRef","handleDataUpdate","disableStoreUpdates","enableStoreUpdates","getObservableForActiveRequest","setIsActive","onCompleteOrError","useLazyLoadQueryNode","useMemoOperationDescriptor","gqlQuery","UNSTABLE_renderPolicy","useFetchTrackingRef","QueryResource","forceUpdateKey","_useFetchTrackingRef","preparedQueryResult","useIsOperationNodeActive","getPaginationVariables","getValueAtPath","fragmentData","connectionPathInFragmentData","paginationRequest","paginationMetadata","identifierField","identifierValue","mirroredEnvironment","setMirroredEnvironment","mirroredFragmentIdentifier","setMirroredFragmentIdentifier","isParentQueryActive","_getConnectionState","getConnectionState","_pageInfo$END_CURSOR","_pageInfo$START_CURSO","onComplete","parentVariables","extraVariables","UNSTABLE_extraVariables","paginationVariables","useMemoVariables","memoVariables","_useMemoVariables","memoCacheConfig","_useMemoVariables2","_variablesChangedGene2","_variablesChangedGene","variablesChangedGenerationRef","mirroredVariables","setMirroredVariables","defaultCommitMutation","commitMutationFn","environmentRef","mutationRef","inFlightMutationsRef","isMutationInFlight","setMutationInFlight","onUnsubscribe","useLoadMoreFunction","useRefetchableFragmentNode","getPaginationMetadata","useLoadMore","isLoadingMore","setIsLoadingMore","_useLoadMoreFunction","parentFragmentRef","_getPaginationMetadat","_useRefetchableFragme","_useLoadMore","loadPrevious","hasPrevious","isLoadingPrevious","disposeFetchPrevious","_useLoadMore2","loadNext","hasNext","isLoadingNext","disposeFetchNext","__environment","_require3$__internal","preloadedQuery","useLazyLoadQueryNodeParams","fallbackFetchObservable","ifEmpty","initialNullQueryReferenceState","requestIsLiveQuery","initialQueryReference","initialQueryReferenceInternal","undisposedQueryReferencesRef","queryReference","setQueryReference","previousInitialQueryReference","setPreviousInitialQueryReference","disposeQuery","queryLoaderCallback","mergedOptions","_options$__environmen","updatedQueryReference","undisposedQueryReferences","undisposedQueryReference","_require4","getRefetchMetadata","reducer","_action$refetchEnviro","refetchEnvironment","refetchQuery","parentEnvironment","_getRefetchMetadata","refetchableRequest","fragmentRefPathInResponse","_useReducer","refetchState","dispatch","shouldReset","_useQueryLoader","queryRef","handleQueryCompleted","maybeError","queryData","providedRefetchVariables","_fragmentSelector$sel","_fragmentSelector$sel2","_fragmentSelector$sel3","_fragmentSelector$sel4","warningContext","dataIDs","disposableRef","invalidationState","lookupInvalidationState","subscribeToInvalidationState","requestSubscriptionFn","actualRequestSubscription","_actualRequestSubscri","SystemContext","_createForOfIteratorHelperLoose","allowArrayLike","it","_proto$constructor","__deprecatedSplitProps","propsKeys","picked","omitted","_propsKeys","splitProps","_deprecatedSplitProp","restPicked","normalizePropsAreEqual","propsAreEqual","shouldMemo","_ref$propsAreEqual","unstable_propsAreEqual","_ref$keys","__keys","_ref$useCreateElement","useCreateElement$1","Comp","_ref2$as","_rollupPluginBabelHelpers_0c84a174","_as$render","_splitProps","_useHook","elementProps","asKeys","asOptions","_element","shallowEqual","useToken","defaultValue","_options$useState","_composedHooks$","composedHooks","__useOptions","hookOptions","hookName","hook","unstable_ignoreUseOptions","useComposeOptions","useComposeProps","finalHTMLProps","definedHTMLProps","composedKeys","_SystemContext_js__WEBPACK_IMPORTED_MODULE_1__","_rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__","_getDocument","_getDocument_js__WEBPACK_IMPORTED_MODULE_0__","_getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__","_contains_js__WEBPACK_IMPORTED_MODULE_1__","buttonInputTypes","webkitMatchesSelector","objA","objB","aKeys","bKeys","_aKeys","isFocusable","_matches_js__WEBPACK_IMPORTED_MODULE_0__","htmlElement","offsetWidth","offsetHeight","getClientRects","isTabbable","getAllTabbableIn","fallbackToFocusable","allFocusable","allTabbable","getFirstTabbableIn","getLastTabbableIn","refA","refB","_useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__","useSealedState","initialState","unstable_IdContext","_useSealedState","_useSealedState$visib","initialVisible","_useSealedState$anima","initialAnimated","initialBaseId","idCountRef","setAnimated","_React$useState3","setAnimating","lastValue","visibleHasChanged","show","toggle","_useSealedState$modal","setBaseId","unstable_idCountRef","lastVisible","setModal","useRole","reakit_system_createHook__WEBPACK_IMPORTED_MODULE_0__","prevSystem","unstable_system","_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_1__","nextSystem","reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_2__","reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_3__","DISCLOSURE_KEYS","DISCLOSURE_CONTENT_KEYS","DIALOG_STATE_KEYS","DIALOG_KEYS","DIALOG_BACKDROP_KEYS","DIALOG_DISCLOSURE_KEYS","MutationHandlers","DeleteRecordHandler","DeleteEdgeHandler","AppendEdgeHandler","PrependEdgeHandler","AppendNodeHandler","PrependNodeHandler","getRelayHandleKey","generateClientID","getStableStorageKey","CONNECTION","NEXT_EDGE_INDEX","buildConnectionEdge","edge","_ConnectionInterface$6","edgeIndex","edgeID","getDataID","connectionEdge","copyFieldsFrom","mergeEdges","sourceEdges","targetEdges","nodeIDs","NODE","_ConnectionInterface$7","getLinkedRecord","nodeID","createEdge","edgeType","_ConnectionInterface$3","setLinkedRecord","deleteNode","nextEdges","_ConnectionInterface$5","getLinkedRecords","setLinkedRecords","getConnection","filters","handleKey","getConnectionID","recordID","insertEdgeAfter","newEdge","CURSOR","foundCursor","insertEdgeBefore","_ConnectionInterface$4","PAGE_INFO_TYPE","serverConnection","fieldKey","serverPageInfo","clientConnectionID","clientConnectionField","clientConnection","clientPageInfo","_serverEdges","prevEdges","_connection","prevPageInfo","_nodeIDs","startCursor","endCursor","serverEdges","CONNECTION_CALLS","surrounds","CLIENT_MUTATION_ID","newConfig","isConnectionCall","edgeUpdater","nodeUpdater","insertFn","connections","handleArgs","singleServerEdge","_unused","_unused2","serverEdgeList","_connection$getLinked","_ret","_loop","serverEdge","serverNode","_step3","serverNodeId","_iterator3","connectionID","_edge$getLinkedRecord","clientEdge","_payload$handleArgs","edgeTypeName","singleServerNode","_unused3","serverNodes","_unused4","_serverNodes","_step4","serverNodeList","_iterator4","_connection$getLinked2","_ret2","_loop2","_step5","_iterator5","_edge$getLinkedRecord2","idOrIds","GraphQLTag","RelayConcreteNode","RelayConcreteVariables","RelayDeclarativeMutationConfig","RelayDefaultHandleKey","RelayDefaultHandlerProvider","RelayError","RelayModernEnvironment","RelayModernOperationDescriptor","RelayModernRecord","RelayModernSelector","RelayModernStore","RelayNetwork","RelayObservable","RelayOperationTracker","RelayProfiler","RelayQueryResponseCache","RelayRecordSource","RelayReplaySubject","RelayStoreUtils","ViewerPattern","createPayloadFor3DField","fetchQueryInternal","stableCopy","generateUniqueClientID","isClientID","QueryResponseCache","Record","areEqualSelectors","createNormalizationSelector","createReaderSelector","createRequestDescriptor","getDataIDsFromFragment","getInlineDataFragment","getModuleComponentKey","getModuleOperationKey","getPaginationFragment","getPluralSelector","getRefetchableFragment","getSelectorsFromObject","getSingularSelector","getStorageKey","getVariablesFromFragment","getVariablesFromPluralFragment","getVariablesFromSingularFragment","isFragment","isInlineDataFragment","isRequest","DefaultHandlerProvider","VIEWER_ID","VIEWER_TYPE","DEFAULT_HANDLE_KEY","FRAGMENTS_KEY","FRAGMENT_OWNER_KEY","ID_KEY","REF_KEY","REFS_KEY","ROOT_ID","ROOT_TYPE","TYPENAME_KEY","OperationTracker","getOperationVariables","getPromiseForActiveRequest","INTERNAL_ACTOR_IDENTIFIER_DO_NOT_USE","assertInternalActorIndentifier","actorIdentifier","getActorIdentifier","actorID","getDefaultActorIdentifier","ACTOR_IDENTIFIER_FIELD_NAME","getActorIdentifierFromPayload","RANGE_ADD","RANGE_DELETE","NODE_DELETE","APPEND","PREPEND","getRootField","selections","configs","optimisticUpdater","updater","configOptimisticUpdates","configUpdates","deletedIDFieldName","rootField","nodeDeleteResult","deleteID","deleteIDs","rangeAddResult","rangeAdd","parentID","connectionInfo","edgeName","rangeBehavior","rangeDeleteResult","rangeDelete","connectionKeys","pathToConnection","deletedIDField","eachField","idObject","recordProxy","eachOptimisticUpdater","eachUpdater","RelayRecordProxy","mutator","_dataID","_mutator","_source","copyFields","isValidLeafValue","linkedID","getLinkedRecordID","setLinkedRecordID","getOrCreateLinkedRecord","typeName","linkedRecord","_this$_source$get","clientID","linkedIDs","getLinkedRecordIDs","records","setLinkedRecordIDs","invalidateRecord","markIDForInvalidation","EXISTENT","RelayRecordSourceMutator","__sources","_base","_sink","unstable_getRawRecordWithChanges","baseRecord","sinkRecord","_getSinkRecord","sourceID","sinkID","sinkSource","baseSource","copyFieldsFromRecord","getStatus","NONEXISTENT","RelayRecordSourceProxy","handlerProvider","__mutator","_handlerProvider","_proxies","_getDataID","_invalidatedStore","_idsMarkedForInvalidation","publishSource","fieldPayloads","getRecordIDs","sourceRecord","fieldPayload","getRoot","invalidateStore","isStoreMarkedForInvalidation","getIDsMarkedForInvalidation","RelayRecordSourceSelectorProxy","readSelector","__recordSource","_readSelector","getOperationRoot","_getRootField","fieldName","getPluralRootField","operationKind","optimisticResponse","_RelayDeclarativeMuta","applyMutation","commitUpdate","uploadables","executeMutation","ACTOR_CHANGE","CONDITION","CLIENT_COMPONENT","CLIENT_EXTENSION","DEFER","FLIGHT_FIELD","FRAGMENT_SPREAD","INLINE_FRAGMENT","LINKED_FIELD","LINKED_HANDLE","MODULE_IMPORT","SCALAR_FIELD","SCALAR_HANDLE","STREAM","TYPE_DISCRIMINATOR","convertFetch","logRequestInfo","observeFetch","pollInterval","poll","hostReportError","_isUncaughtThrownError","onUnhandledError","isObservable","sub","_error2","error2","both","alternate","hasValue","_subscribe","closed","withClosed","doCleanup","_error3","isUncaughtThrownError","_this6","mapValue","_this7","_sub","_this8","_this9","resolved","ttl","_responses","_size","_ttl","queryID","getCacheKey","fetchTime","cacheTimestamp","generateID","networkRequestId","FRAGMENT","REQUEST","INLINE_DATA_FRAGMENT","_fragment$metadata","_fragment$metadata2","strings","preloadableQueryRegistry","_preloadableQueries","_callbacks","_this$_callbacks$get","getNetworkObservable","queryNode","readData","requestCachesByEnvironment","cachedRequest","getRequestCache","subjectForInFlightStatus","cachedReq","getCachedRequest","getObservableForCachedRequest","cachedRequestInstance","getObserverCount","getActiveStatusObservableForCachedRequest","isRequestActive","resolveOnNext","localID","RelayStoreReactFlightUtils","cloneRelayHandleSourceField","cloneRelayScalarHandleSourceField","getOperation","getLocalVariables","UNKNOWN","generateTypeID","getArgumentValues","DataChecker","getSourceForActor","getTargetForActor","defaultActorIdentifier","operationLoader","shouldProcessClientComponents","_getSourceForActor","_getTargetForActor","_mutatorRecordSourceProxyCache","_this$_getMutatorAndR","_getMutatorAndRecordProxyForActor","recordSourceProxy","_mostRecentlyInvalidatedAt","_operationLoader","_recordSourceProxy","_recordWasMissing","_variables","_shouldProcessClientComponents","tuple","_traverse","mostRecentlyInvalidatedAt","_getVariableValue","_handleMissing","_getDataForHandlers","_handleMissingScalarField","_this$_getDataForHand","_handleMissingLinkField","_this$_getDataForHand2","_handleMissingPluralLinkField","_this$_getDataForHand3","invalidatedAt","getInvalidationEpoch","_traverseSelections","_checkScalar","_checkPluralLink","_checkLink","_checkActorChange","linkedField","passingValue","_abstractKey","abstractKey","_recordType","_typeID","_implementsInterface","handleField","_handleField","_checkModuleImport","prevVariables","argumentDefinitions","recordWasMissing","recordType","typeID","ENABLE_REACT_FLIGHT_COMPONENT_FIELD","_checkFlightField","moduleImport","operationKey","documentName","operationReference","normalizationRootNode","fieldValue","getActorLinkedRecordID","_actorIdentifier","prevSource","prevMutator","prevRecordSourceProxy","_this$_getMutatorAndR2","tree","REACT_FLIGHT_TREE_STORAGE_KEY","reachableExecutableDefinitions","REACT_FLIGHT_EXECUTABLE_DEFINITIONS_STORAGE_KEY","definition","checker","RelayResponseNormalizer","withDuration","Executor","getPublishQueue","isClientPayload","operationExecutions","operationTracker","optimisticConfig","_reactFlightPayloadDeserializer","reactFlightPayloadDeserializer","reactFlightServerErrorHandler","scheduler","treatMissingFieldsAsNull","_withDuration","_log","executeId","_executeId","operationName","_operation","_treatMissingFieldsAsNull","_incrementalPayloadsPending","_incrementalResults","_nextSubscriptionId","_operationExecutions","_operationTracker","_operationUpdateEpochs","_optimisticUpdates","_pendingModulePayloadsCount","_getPublishQueue","_scheduler","_getStore","_subscriptions","_updater","_isClientPayload","_reactFlightServerErrorHandler","_isSubscriptionOperation","_retainDisposables","_seenActors","_completeFns","_complete","_next","_this$_operation$requ","_start","_processOptimisticResponse","optimisticUpdates","_getPublishQueueAndSaveActor","revertUpdate","_runPublishQueue","_asyncStoreUpdateDisposable","_completeOperationTracker","_disposeRetainedData","_updateActiveState","activeState","_schedule","_id2","cancellationToken","_withDuration2","_handleNext","_maybeCompleteSubscriptionOperationTracking","_handleErrorResponse","responses","_handleOptimisticResponses","responsePart","_responsePart$extensi","isOptimistic","_response$extensions","responsesWithData","_x$extensions","is_final","nonIncrementalResponses","incrementalResponses","_partitionGraphQLResp","hasNonIncrementalResponses","payloadFollowups","_processResponses","_processPayloadFollowups","_payloadFollowups","_processIncrementalResponses","__relay_subscription_root_id","updatedOwners","_retainData","_updateOperationTracker","normalizeResponse","_deserializeReactFlightPayloadWithLogging","validateOptimisticResponsePayload","_processOptimisticFollowups","incrementalPlaceholders","followupPayloads","isFinal","applyUpdate","followupPayload","_expectOperationLoader","_processAsyncOptimisticModuleImport","moduleImportOptimisticUpdates","_processOptimisticModuleImport","_normalizeFollowupPayload","normalizationNode","moduleImportPayload","modulePayload","_this$_optimisticUpda","payloadPart","relayPayload","commitPayload","payloads","_followupPayload$acto","prevActorIdentifier","_processFollowupPayload","incrementalPlaceholder","_incrementalPlacehold","_processIncrementalPlaceholder","relayPayloads","_processDeferResponse","_this10","_processFollowupPayloadWithNormalizationNode","_id3","decrementPendingCount","loadedNode","publishModuleImportPayload","batchAsyncModuleUpdatesFN","BATCH_ASYNC_MODULE_UPDATES_FN","shouldScheduleAsyncStoreUpdate","_withDuration3","_handleFollowupPayload","_scheduleAsyncStoreUpdate","_error4","_relayPayload$fieldPa","nextParentRecord","nextParentPayloads","pathKey","resultForLabel","resultForPath","pendingResponses","parentRecord","parentPayloads","fieldID","previousParentEntry","handlePayloads","dedupePayload","_JSON$stringify","_this11","incrementalResponse","_pathKey","_resultForPath","_placeholder","_processStreamResponse","_placeholder$actorIde","parentEntry","_response$extensions2","handleFieldsRelayPayload","_this$_normalizeStrea","_normalizeStreamItem","itemID","itemIndex","currentParentRecord","currentItems","currentItem","nextItems","normalizationPath","_field$alias","_field$concreteType","_this$_getDataID","responseKey","finalPathEntry","concreteType","scheduleFn","completeFn","_this12","_getActorsToVisit","owners","_actorIdentifier2","_response$extensions3","currentVariables","nextVariables","nextArgs","_nextArgs$def$name","argumentVariables","operationVariables","OperationExecutor","RelayPublishQueue","defaultGetDataID","defaultRequiredFieldLogger","registerEnvironmentWithDevTools","wrapNetworkWithLogObserver","_config$log","_config$requiredField","_config$UNSTABLE_defa","_config$getDataID","_config$handlerProvid","_config$scheduler","_config$isServer","_config$operationTrac","configName","requiredFieldLogger","_defaultRenderPolicy","UNSTABLE_defaultRenderPolicy","ENABLE_PARTIAL_RENDERING_DEFAULT","_network","_publishQueue","_store","_isServer","__setNet","newNet","_missingFieldHandlers","missingFieldHandlers","getOperationTracker","requestIdentifier","optimisticUpdate","_scheduleUpdates","replaceUpdate","newUpdate","_execute","createSource","_checkSelectorAndHandleMissingFields","getSource","commitSource","_this$configName","publishQueue","RelayModernFragmentSpecResolver","_stale","_callback","_context","_data","_fragments","_props","_resolvers","_rootIsQueryRenderer","disposeCallback","prevItem","nextItem","_nextItem","ownedSelectors","ownedSelector","SelectorListResolver","_onChange","setSelector","SelectorResolver","subscribeOnConstruction","_isMissingData","_missingRequiredFields","_selector","_subscription","_proto2","_pendingOperationsRes","requestDescriptor","_subscribeOnConstruction","_proto3","ACTOR_IDENTIFIER_KEY","INVALIDATED_AT_KEY","links","record1","record2","prevRecord","nextRecord","setActorLinkedRecordID","IS_WITHIN_UNMATCHED_TYPE_REFINEMENT","mixedOwner","isWithinUnmatchedTypeRefinement","itemVariables","thisSelector","thatSelector","RelayOptimisticRecordSource","RelayReader","RelayReferenceMarker","RelayStoreSubscriptions","resolveImmediate","RecordResolverCache","_options$gcReleaseBuf","_options$gcScheduler","_options$getDataID","_options$log","_options$operationLoa","_gcRun","_gcScheduler","_gcStep","_currentWriteEpoch","_gcHoldCounter","_gcReleaseBufferSize","gcReleaseBufferSize","gcScheduler","_globalInvalidationEpoch","_invalidationSubscriptions","_invalidatedRecordIDs","_queryCacheExpirationTime","queryCacheExpirationTime","_optimisticSource","_recordSource","_releaseBuffer","_roots","_shouldScheduleGC","_resolverCache","_getMutableRecordSource","_storeSubscriptions","_updatedRecordIDs","initializeRecordSource","rootRecord","_this$_optimisticSour","_this$_optimisticSour2","operationFetchTime","_options$handlers","_options$getSourceFor","_options$getTargetFor","_options$defaultActor","globalInvalidationEpoch","rootEntry","operationLastWrittenAt","epoch","scheduleGC","sourceOperation","ENABLE_RELAY_RESOLVERS","invalidateDataIDs","updateSubscriptions","_updateInvalidationSubscription","updatedRecordIDs","invalidatedRecordIDs","temporaryRootEntry","idsMarkedForInvalidation","updateTargetFromSource","currentWriteEpoch","targetRecord","REACT_FLIGHT_TYPE_NAME","optimistic","holdGC","__getUpdatedRecordIDs","invalidations","_RelayModernRecord$ge","checkInvalidationState","prevInvalidationState","currentInvalidations","latestInvalidationState","prevInvalidations","invalidatedStore","snapshotSubscriptions","restore","restoreSubscriptions","_collect","__gc","gcRun","startEpoch","references","storeIDs","_ownersToPendingOperations","_pendingOperationsToOwners","_ownersToPendingPromise","pendingOperation","affectedOwners","pendingOperationIdentifier","newlyAffectedOwnersIdentifier","ownerIdentifier","pendingOperationsAffectingOwner","ownersAffectedByPendingOperation","_ownerIdentifier","_resolveOwnerResolvers","affectedOwnersIdentifier","completedOwnersIdentifier","updatedOwnersIdentifier","_ownerIdentifier2","_ownerIdentifier3","promiseEntry","getPendingOperationsAffectingOwner","pendingOperationsForOwner","cachedPromiseEntry","UNPUBLISH_RECORD_SENTINEL","__UNPUBLISH_RECORD_SENTINEL","_global$ErrorUtils$ap","_global$ErrorUtils","applyWithGuard","ErrorUtils","_hasStoreSnapshot","_pendingBackupRebase","_pendingData","_pendingOptimisticUpdates","_appliedOptimisticUpdates","_gcHold","revertAll","runWillClearGcHold","_commitData","_applyUpdates","_publishSourceFromPayload","pendingPayload","lookupSelector","payloadInvalidatedStore","processUpdate","storeUpdater","selectorData","ClientID","INLINE_DATA_FRAGMENT_SPREAD","REQUIRED_FIELD","RELAY_RESOLVER","getReactFlightClientResponse","FRAGMENT_PROP_NAME_KEY","MODULE_COMPONENT_KEY","NoopResolverCache","withResolverContext","_require5","_require6","resolverCache","_isWithinUnmatchedTypeRefinement","_owner","_seenRecords","_this$_selector","isDataExpectedToBePresent","typeRecord","implementsInterface","hadRequiredData","_maybeReportUnexpectedNull","_this$_missingRequire","ENABLE_REQUIRED_DIRECTIVES","_readRequiredField","_readScalar","_readPluralLink","_readLink","conditionValue","parentIsMissingData","parentIsWithinUnmatchedTypeRefinement","_readResolverField","_createFragmentPointer","_readModuleImport","_createInlineDataOrResolverFragmentPointer","_hasExpectedData2","_readFlightField","_readActorChange","fragmentValue","fragmentReaderSelector","resolverModule","resolverID","fragmentSeenRecordIDs","getDataForResolverFragment","singularReaderSelector","existingSeenRecords","_resolverFragmentData","resolverFragmentData","resolverContext","_this$_resolverCache$","readFromCacheOrEvaluate","resolverResult","seenRecordIDs","readerSelector","seenRecord","applicationName","reactFlightClientResponseRecordID","reactFlightClientResponseRecord","clientResponse","_field$alias2","_field$alias3","_field$alias4","externalRef","fragmentSpread","__fragmentRef","__viewer","_field$alias5","linkedArray","nextIndex","componentKey","fragmentPropName","fragmentPointers","fragmentSpreadOrFragment","inlineData","RelayRecordState","_records","_step$value","_operationName","_references","_traverseLink","_traversePluralLink","_traverseModuleImport","_traverseFlightField","refineToReactFlightPayloadData","_require7","getHandleStorageKey","_require8","TYPE_SCHEMA_TYPE","_getDataId","_handleFieldPayloads","_incrementalPlaceholders","_isClientExtension","_isUnmatchedAbstractType","_followupPayloads","_path","_getRecordType","_normalizeField","_typeRecord","_normalizeModuleImport","_normalizeDefer","_normalizeStream","isClientExtension","_normalizeFlightField","_normalizeActorChange","isDeferred","componentReference","_normalizePluralLink","_normalizeLink","reactFlightPayload","reactFlightID","reactFlightClientResponse","__typename","_field$concreteType2","_typeName4","_field$concreteType3","_typeName5","_validateRecordType","_field$concreteType4","_validateConflictingFieldsWithIdenticalId","_validateConflictingLinkedFieldsWithIdenticalId","prevID","normalizer","hasOverlappingIDs","backup","stale","hasUpdatedRecords","_updateSubscription","hasOverlappingUpdates","nextSnapshot","ENABLE_NOTIFY_SUBSCRIPTION","VARIABLE","LITERAL","OBJECT_VALUE","LIST_VALUE","getArgumentValue","variableName","formatStorageKey","argValues","argName","RELAY_RESOLVER_VALUE_KEY","RELAY_RESOLVER_INVALIDATION_KEY","RELAY_RESOLVER_INPUTS_KEY","RELAY_RESOLVER_READER_SELECTOR_KEY","dynamicKey","handleName","filterArgs","emptySet","evaluate","updatedDataIDs","addDependencyEdge","getRecordSource","_resolverIDToRecordIDs","_recordIDToResolverIDs","_getRecordSource","_isInvalid","_linkedID","evaluationResult","seenRecordID","visited","recordsToVisit","_this$_recordIDToReso","_this$_resolverIDToRe","anotherRecordID","_markInvalidatedResolverRecord","originalInputs","recycled","contextStack","readFragment","isTypeID","sourceField","firstReact","ITERATOR_KEY","_fragmentRef$FRAGMENT","inlineDataFragment","_responses$","_responses$$extension","_responses$extensions","LOCAL_ARGUMENT","OPERATION","ROOT_ARGUMENT","SPLIT_OPERATION","messageFormat","messageParams","taalOpcodes","createWarning","ENABLE_VARIABLE_CONNECTION_KEY","ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION","ENABLE_FRIENDLY_QUERY_NAME_GQL_URL","ENABLE_DO_NOT_WRAP_LIVE_QUERY","profileHandlersByName","defaultProfiler","stopHandlers","stopHandler","attachProfileHandler","detachProfileHandler","_observable","_sinks","fragmentOwnerIdentifier","_fragmentNode$metadat2","refetchMetadata","_objectSpread4","baseVariables","backwardMetadata","backward","forwardMetadata","forward","_paginationVariables","_pendingOperations$ma","_pendingOperations","_result$pendingOperat","_result$promise","pendingOperationName","promiseDisplayName","fragmentPathInResult","requestID","valueA","valueB","hasWeakSetDefined","hasWeakMapDefined","canRecycle","prevArray","nextArray","wasEqual","nextValue","prevKeys","nextKeys","prevObject","nextObject","devToolsHook","__RELAY_DEVTOOLS_HOOK__","registerEnvironment","_missingRequiredField","resolvedPromise","throwNext","stable","_window$performance","isPerformanceNowAvailable","currentTimestamp","compare","compareContext","keysA","keysB","bHasOwnProperty","__assign","MS","MOZ","WEBKIT","COMMENT","Enum_RULESET","DECLARATION","KEYFRAMES","Utility_from","Utility_assign","indexof","Utility_charat","Utility_substr","begin","Utility_strlen","Utility_append","Tokenizer_length","character","characters","siblings","return","copy","lift","peek","delimit","prefixer","ruleset","points","z","declaration","emotion_unitless_esm","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","opacity","order","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","I","A","O","V","G","for","W","childContextTypes","contextTypes","getDefaultProps","mixins","propTypes","H","callee","arity","$$typeof","J","X","Q","ee","te","ne","re","ie","ae","ce","ue","he","fe","groupSizes","indexOfGroup","insertRules","clearGroup","getGroup","getRule","ye","ve","ge","Se","we","be","Ee","registerName","Ne","u","getTag","nc","Ce","createTextNode","Ie","Ae","Oe","De","useCSSOMInjection","Re","gs","server","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","Te","ke","xe","replaceAll","collection","rulesets","pseudo","declarations","atrule","variable","scanning","ampersand","whitespace","escaping","caret","commenter","namespace","je","Ve","Fe","Me","stylis","ze","Be","Le","stylisPlugins","disableCSSOMInjection","enableVendorPrefixes","shallowequal_default","Ge","getName","We","Ye","qe","He","isCss","Ue","styledComponentId","isReactComponent","Je","Xe","Ze","staticRulesId","isStatic","componentId","baseHash","baseStyle","generateAndInjectStyles","Ke","tt","nt","parentComponentId","E","componentStyle","foldedComponentIds","forwardedAs","_foldedDefaultProps","le","oe","st","lt","ct","ut","createStyles","removeStyles","renderStyles","ht","_emitSheetCSS","getStyleTags","sealed","getStyleElement","seal","collectStyles","interleaveWithNodeStream","_assign","object_assign_default","localeCompare","numeric","sensitivity","createMediaQuery","undef","createParser","shouldSort","isCacheDisabled","disableStyledSystemCache","sx","raw","parseResponsiveStyle","parseResponsiveObject","propNames","_createParser","mediaQueries","_assign2","breakpoint","_assign3","createStyleFunction","_ref$transform","defaultScale","minWidth","minHeight","maxHeight","overflowX","overflowY","verticalAlign","index_esm_config","letterSpacing","fontStyle","alignContent","justifyItems","flexWrap","flexBasis","justifySelf","alignSelf","dist_index_esm_defaults","gridGap","gridColumnGap","gridRowGap","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","border_dist_index_esm_config","borderWidth","borderStyle","borderTop","borderTopLeftRadius","borderTopRightRadius","borderRight","borderBottom","borderBottomLeftRadius","borderBottomRightRadius","borderLeft","borderX","borderY","borderTopWidth","borderTopColor","borderTopStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRightWidth","borderRightColor","borderRightStyle","background_dist_index_esm_config","bgImage","bgSize","bgPosition","bgRepeat","position_dist_index_esm_defaults","space_dist_index_esm_defaults","index_esm_isNumber","getMargin","isNegative","absolute","marginTop","marginX","marginY","mr","mx","my","paddingTop","paddingBottom","paddingLeft","paddingX","paddingY","pl","py","shadow_dist_index_esm","textShadow","index_esm_get","defaultBreakpoints","defaultTheme","fontSizes","aliases","multiples","scales","columnGap","rowGap","outlineColor","positiveOrNegative","transforms","_config","_ref$prop","_ref$variants","variants","css_dist_index_esm","scaleName","dirs","index_esm","dist_index_esm","typography_dist_index_esm","flexbox_dist_index_esm","grid_dist_index_esm","border_dist_index_esm","background_dist_index_esm","position_dist_index_esm","randomUUID","esm_browser_native","rnds8","byteToHex","esm_browser_v4","rnds","rng","unsafeStringify","arrayLikeToArray","unsupportedIterableToArray","F","normalCompletion","didErr","_e2","arrayWithoutHoles","iterableToArray","nonIterableSpread","_tagged_template_literal","DefaultContext","IconContext","_toPropertyKey","_toPrimitive","prim","toPrimitive","GenIcon","IconBase","Tree2Element","svgProps","computedSize","xmlns"],"sourceRoot":""}