{"version":3,"mappings":"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","names":["HardcoverLogo","className","jsxs","jsx","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","require$$0","reTrimStart","baseTrim","_baseTrim","isObject","require$$1","isSymbol","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","toNumber_1","env","indexName","indexLookup","type","searchState","searchSlice","createSlice","state","payload","searchActions","search","getState","getUiChannel","createSelector","getIsLoginVisible","loginVisible","useIsLoginVisible","useSelector","getTheme","theme","useCurrentTheme","getReport","report","useReport","UserJoinButtonActive","children","variant","size","tab","dispatch","useDispatch","isLoggedIn","useIsLoggedIn","toggleModal","e","uiActions","Button","UserJoinButton","isSelectionNode","node","Kind","iterateObserversSafely","observers","method","argument","observersWithMethod","obs","asyncMap","observable","mapFn","catchFn","Observable","observer","promiseQueue","callback","resolve","makeCallback","examiner","key","arg","both","result","error","handler","sub","fixObservableSubclass","subclass","set","canUseSymbol","isPromiseLike","Concast","_super","__extends","sources","_this","reject","_a","_b","reason","_","iterable","nextOrError","nextResultListeners","listener","called","isExecutionPatchIncrementalResult","isExecutionPatchInitialResult","isExecutionPatchResult","isApolloPayloadResult","isNonNullObject","mergeIncrementalData","prevResult","mergedData","merger","DeepMerger","isNonEmptyArray","data","path","i","isNumericKey","parent_1","graphQLResultHasError","errors","getGraphQLErrorsFromResult","graphQLErrors","incrementalResult","asyncIterator","source","iterator","nodeStreamIterator","stream","cleanup","done","waiting","onData","chunk","shiftedArr","onError","err","all","pair","onEnd","getNext","canUseAsyncIteratorSymbol","promiseIterator","promise","resolved","readerIterator","reader","isNodeResponse","isReadableStream","isAsyncIterableIterator","isStreamableBlob","isBlob","isNodeReadableStream","responseIterator","response","body","fromError","errorValue","throwServerError","message","validateOperation","operation","OPERATION_FIELDS","_i","newInvariantError","createOperation","starting","context","__assign","setContext","next","getContext","transformOperation","transformedOperation","getOperationName","filterOperationVariables","variables","query","unusedNames","visit","_key","parent","name","hasOwnProperty","readMultipartBody","nextValue","__awaiter","decoder","contentType","delimiter","boundaryVal","boundary","buffer","running","searchFrom","bi","headers","contentType_1","_c","_d","__generator","_e","parseHeaders","parseJsonBody","PROTOCOL_ERRORS_SYMBOL","headerText","headersInit","line","name_1","bodyText","getResult","parseError","handleError","parseAndCheckHttpResponse","operations","op","serializeFetchParameter","p","label","serialized","defaultHttpOptions","defaultHeaders","defaultOptions","fallbackHttpConfig","defaultPrinter","ast","printer","selectHttpOptionsAndBodyInternal","configs","options","http","config","removeDuplicateHeaders","operationName","extensions","print","preserveHeaderCase","normalizedHeaders_1","headerData","normalizedHeaders","checkFetcher","fetcher","selectURI","fallbackURI","contextURI","passthrough","forward","toLink","ApolloLink","isTerminating","link","request","links","x","y","test","left","right","leftLink","rightLink","ret","first","second","firstLink","invariant","nextLink","fn","execute","rewriteURIForGET","chosenURI","queryParams","addQueryParam","serializedVariables","serializedExtensions","fragment","preFragment","fragmentStart","queryParamsPrefix","newURI","backupFetch","maybe","createHttpLink","linkOptions","uri","preferredFetch","includeExtensions","useGETForQueries","includeUnusedVariables","requestOptions","__rest","linkConfig","clientAwarenessHeaders","version","contextHeaders","contextConfig","hasDirectives","transformedQuery","removeClientSetsFromDocument","controller","definitionIsMutation","d","definitionIsSubscription","isSubscription","getMainDefinition","hasDefer","acceptHeader","currentFetch","observerNext","ctype","HttpLink","assign","ObservableQuery","queryManager","queryInfo","subObserver","defaultSubscriptionObserverErrorCallback","last","skipCacheDataFor","defaultFetchPolicy","fetchPolicy","_f","initialFetchPolicy","opDef","getOperationDefinition","subscription","saveAsLastResult","lastResult","networkStatus","NetworkStatus","isNetworkRequestInFlight","diff","equal","logMissingFieldErrors","newResult","resultIsDifferent","equalByQuery","variablesMustMatch","reobserveOptions","queryDef","getQueryDefinition","vars","v","fetchMoreOptions","combinedOptions","qid","originalNetworkStatus","updatedQuerySet","updateQuery","isCached","fetchMoreResult","cache","previous","watch","reobserveCacheFirst","subscriptionData","newOptions","mergedOptions","compact","pollInterval","newNetworkStatus","pollingInfo","info","maybeFetch","poll","cloneDeep","useDisposableConcast","oldVariables","oldFetchPolicy","finishWaitingForOwnResult","concast","fromLink","isApolloError","ApolloError","args","lastError","isDifferent","errorResult","document","obsQuery","nextFetchPolicy","currentFetchPolicy","missing","destructiveMethodCounts","canUseWeakMap","wrapDestructiveCacheMethod","methodName","original","cancelNotifyTimeout","QueryInfo","queryId","oq","oldDiff","watchOptions","lastWrite","cacheWriteBehavior","shouldWriteResult","diffOptions","errorPolicy","ignoreErrors","writeWithErrors","IGNORE","QueryManager","AutoCleanedWeakCache","cacheSizes","Trie","defaultDocumentTransform","DocumentTransform","documentTransform","_info","cancel","mutationId","hasClientExports","mutationStoreValue","isOptimistic","self","mutation","optimisticResponse","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","onQueryUpdated","_g","_h","keepRootFields","_j","storeResult","cacheWrites","skipCache","updateQueries_1","observableQuery","queryName","updater","currentQueryResult","complete","nextQueryResult","results_1","write","update","isFinalResult","fieldName","DELETE","store","transformCache","cacheEntry","removeDirectivesFromDocument","getDefaultValues","def","include","queries","queryNamesAndDocs","legacyQueryOptions","desc","isDocumentNode","makeUniqueId","included","nameOrDoc","includeStandby","observableQueryPromises","makeObservable","hasErrors","hasProtocolErrors","graphQLResultHasProtocolErrors","observablePromise_1","deduplication","serverQuery","clientQuery","inFlightLinkObservables_1","printedServerQuery_1","varJson_1","canonicalStringify","entry","requestId","linkDocument","aqr","networkError","defaults","returnPartialData","notifyOnNetworkStatusChange","normalized","fromVariables","sourcesWithInfo","cleanupCancelFn","containsDataFromLink","updateCache","optimistic","removeOptimistic","includedQueriesById","results","lastDiff","refetchWritePolicy","oldNetworkStatus","readCache","resultsFromCache","fromData","resultsFromLink","shouldNotify","newContext","LocalState","client","resolvers","fragmentMatcher","resolverGroup","mergeDeep","remoteResult","onlyRunForcedResolvers","localResult","obj","document_1","forceResolvers","BREAK","buildQueryFromSelectionSet","rootValue_1","rootValue","mainDefinition","fragments","fragmentMap","selectionsToResolve","definitionOperation","defaultOperationType","execContext","isClientFieldDescendant","getFragmentDefinitions","createFragmentMap","selectionSet","resultsToMerge","selection","typeCondition","shouldInclude","isField","fieldResult","resultKeyNameFromField","isInlineFragment","fragmentResult","mergeDeepArray","field","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","cacheSlot","argumentsObjectFromField","directive","isClientField","item","isSingleASTNode","selectionsToResolveCache","collectByDefinition","definitionNode","matches_1","__","___","ancestors","spread","fragmentSelections","hasSuggestedDevtools","ApolloClient","credentials","ssrMode","ssrForceFetchDelay","connectToDevTools","queryDeduplication","defaultContext","assumeImmutableResults","typeDefs","clientAwarenessName","clientAwarenessVersion","devtools","windowWithDevTools","devtoolsSymbol","nav","ua","url","mergeOptions","ref","cb","c","map","serializedState","newLink","getApolloClientMemoryInternals","setter","handle","closed","req","ApolloProvider","ApolloContext","getApolloContext","parentContext","React.useContext","React.useMemo","React.createElement","ApolloWrapper","session","getSession","refreshAccessTokenIfNeeded","currentUserActions","isTokenExpiringSoon","currentTime","authLink","latestToken","useMemo","httpLink","badgeBaseStyles","badgeTheme","Badge","forwardRef","rest","finalClassName","classNames","props","createCapacitorPlatforms","win","defaultPlatformMap","capPlatforms","addPlatform","platform","setPlatform","initPlatforms","CapacitorPlatforms","ExceptionCode","CapacitorException","code","getPlatformId","createCapacitor","capCustomPlatform","cap","Plugins","defaultGetPlatform","getPlatform","defaultIsNativePlatform","isNativePlatform","defaultIsPluginAvailable","pluginName","plugin","registeredPlugins","getPluginHeader","isPluginAvailable","defaultGetPluginHeader","h","pluginMethodNoop","_target","prop","defaultRegisterPlugin","jsImplementations","registeredPlugin","pluginHeader","jsImplementation","loadPluginImplementation","createPluginMethod","impl","methodHeader","m","createPluginMethodWrapper","remove","wrapper","addListener","removeListener","addListenerNative","eventName","call","callbackId","proxy","registerPlugin","filePath","initCapacitorGlobal","Capacitor","WebPlugin","listenerFunc","firstListener","windowListener","retainUntilConsumed","listeners","windowEventName","pluginEventName","event","msg","encode","str","decode","CapacitorCookiesPluginWeb","cookies","cookieMap","cookie","encodedKey","encodedValue","expires","domain","readBlobAsBase64","blob","base64String","normalizeHttpHeaders","originalKeys","k","acc","buildUrlParams","params","shouldEncode","accumulator","buildRequestInit","extra","output","form","CapacitorHttpPluginWeb","requestInit","urlParams","responseType","defaultLocaleString","num","LocaleNumber","number","formatter","localNumber","setLocalNumber","useState","useEffect","SvgDiscord","containerTheme","Container","id","ClipboardWeb","clipboardItemInput","clipboardItems","clipboardBlob","text","r","Clipboard","CopyLinkWrapper","currentUserId","useCurrentUserId","mounted","useMount","pathName","usePage","copyToClipboard","referrer","toast","React","Metadata","metadata","Head","modalClass","modalTheme","n","o$4","s","o","u","t","a","f","O","A","L","U","C","l","$","P","F","M","T","g","b","w","R","N","j","H","K","S","E","D","I","G","define_process_env_default","t.useState","t.useEffect","W","te","J","X","re","Z","q","ee","z","B","Y","Q","ye","V","ue","de","ne","De","He","Te","Ee","be","ve","le","ie","fe","xe","Ae","oe","ce","ge","pe","Re","Ce","Ne","Pe","Se","he","ae","Ie","se","me","Le","Fe","ze","Oe","Me","Ge","ke","we","Be","Ue","We","$e","je","Dt","Ye","yt","ModalController","onClose","initialPath","initialSearch","handlePopState","Fragment","Modal","initialFocus","open","position","zIndex","disablePopState","modalTitle","Transition","Dialog","TransitionChild","DialogBackdrop","DialogPanel","QuickSearchForm","lazy","__vitePreload","QuickSearchModal","isOpen","searchOptions","Suspense","LoadingSpinner","getSearchChannel","getSearchVisibleSelector","searchVisible","useIsSearchVisibile","getNextSearchTerm","nextSearchTerm","useNextSearchTerm","getSearchTerm","searchTerm","useSearchTerm","getSearchType","activeSearchType","getNextSearchType","nextActiveSearchType","searchSelected","getSearchTypes","searchTypes","getSearchIndex","QuickSearchModalWrapper","isVisible","setShowQuickSearch","useCallback","visible","JoinOrLoginForm","LoginModal","showModalTab","closeModal","MobileManager","MobileManagerWrapper","isNative","ReportModalContent","ReportModal","FlashManager","flash","ResponsiveTooltip","SharedPlaceholders","isLarge","useIsScreenSizeBiggerThanTailwindSize","Toaster","BackButton","goBack","headingBaseStyles","headingTheme","Heading","level","NotFoundView","enlargeUrl","Text","module","_$breadcrumbTypes_17","_$reduce_26","arr","accum","val","len","_$filter_21","_$includes_22","_$isArray_23","_hasDontEnumBug","_dontEnums","_$keys_24","_$intRange_33","min","max","_$listOfFunctions_34","_$stringWithLength_35","_$config_14","defaultErrorTypes","providedKeys","defaultKeys","endpoints","maybeType","feature","_$assign_20","target","_$map_25","_extends","schema","_$config_10","getPrefixedConsole","logger","consoleLog","consoleMethod","Breadcrumb","timestamp","_proto","_$Breadcrumb_12","_$stackframe_9","root","factory","_isNumber","_capitalize","_getter","booleanProps","numericProps","stringProps","arrayProps","objectProps","StackFrame","fileName","lineNumber","columnNumber","functionName","argsStartIndex","argsEndIndex","locationString","parts","_$stackGenerator_8","opts","stack","maxStackSize","curr","_$errorStackParser_6","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","urlLike","regExp","filtered","sanitizedLine","location","tokens","locationParts","functionNameRegex","matches","lineRE","lines","match","functionCall","argsRaw","_$errorStackParser_19","_$safeJsonStringify_5","replacer","space","redactedKeys","redactedPaths","prepareObjForSerialization","MAX_DEPTH","MAX_EDGES","MIN_PRESERVED_DEPTH","REPLACEMENT_NODE","isError","throwsMessage","find","haystack","needle","isDescendent","paths","shouldRedact","patterns","__isArray_5","safelyGetProp","seen","edges","edgesExceeded","fResult","er","eResult","aResult","add","existingFeatures","existingFeatureKeys","existingIndex","merge","newFeatures","toEventApi","featureFlags","_ref","flag","clear","features","featuresIndex","_$featureFlagDelegate_27","_$hasStack_28","_$isError_7","__isError_7","_$iserror_29","__add_31","section","keyOrObj","maybeVal","_updates","updates","__clear_31","get","_$metadataDelegate_31","___extends_15","Event","errorClass","errorMessage","stacktrace","handledState","originalError","defaultHandledState","createBugsnagError","traceId","spanId","email","formatStackframe","frame","normaliseFunctionName","ensureString","getCauseStack","errorFramesToSkip","backtraceFramesToSkip","maybeError","tolerateNonErrors","component","_normaliseError","normaliseError","internalFrames","makeSerialisable","_event$errors","causes","normalisedCauses","cause","_normaliseError2","createAndLogInputError","verb","hasNecessaryFields","_$Event_15","_$asyncEvery_16","_$callbackRunner_18","callbacks","onCallbackError","runMaybeAsyncCallback","_$syncCallbackRunner_32","callbackArg","callbackType","ignore","cbs","_$pad_4","globalCount","mimeTypesLength","clientId","_$fingerprint_2","_$isCuid_3","blockSize","base","discreteValues","randomBlock","safeCounter","cuid","letter","counter","random","_$cuid_1","Session","_$Session_36","__add_13","__clear_13","__merge_13","noop","Client","configuration","internalPlugins","notifier","pl","notify","_reduce","defaultValue","valid","generateConfigErrorMessage","front","crumb","types","postReportCallback","_this2","originalSeverity","shouldSend","rawInput","stringify","_$Client_13","_$jsonPayload_30","EVENT_REDACTION_PATHS","_$delivery_37","getApiUrl","endpoint","isoDate","matchPageProtocol","pageProtocol","getIntegrityHeaderValue","windowOrWorkerGlobalScope","requestBody","msgUint8","hashBuffer","hashArray","hashHex","_$delivery_38","status","_err","integrity","_err2","appStart","reset","_$app_39","now","_$context_40","BUGSNAG_ANONYMOUS_ID_KEY","getDeviceId","storage","_$device_41","device","setDefaultUserId","eventOrSession","user","_$request_42","_$session_43","sessionDelegate","sessionClient","_$clientIp_44","_$consoleBreadcrumbs_45","isDev","CONSOLE_LOG_METHODS","_len","stringified","MAX_LINE_LENGTH","MAX_SCRIPT_LENGTH","_$inlineScriptContent_46","doc","originalLocation","html","isOldIe","DOMContentLoaded","getHtml","prev","_lastScript","updateLastScript","script","getCurrentScript","scripts","addSurroundingCode","htmlLines","zeroBasedLine","start","end","cleanUrl","currentScript","content","_map","__proxy","__traceOriginalScript","_setTimeout","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","host","replacement","isEventHandlerObj","_$interactionBreadcrumbs_47","targetText","targetSelector","getNodeText","getNodeSelector","trim","el","_$navigationBreadcrumbs_48","drop","relativeLocation","getCurrentState","wrapHistoryFn","stateChangeToMetadata","title","currentPath","resetEventCount","orig","BREADCRUMB_TYPE","_$networkBreadcrumbs_49","_ignoredUrls","ignoredUrls","monkeyPatchXMLHttpRequest","monkeyPatchFetch","trackedRequests","requestHandlers","originalOpen","originalSend","requestData","requestStart","handleXHRError","getDuration","load","handleXHRLoad","duration","oldFetch","_arguments","urlOrRequest","handleFetchSuccess","handleFetchError","startTime","_$throttle_50","_$stripQueryString_51","allFrames","strip","_$onerror_52","onerror","messageOrEvent","lineNo","charNo","decorateStack","prevOnError","culprit","isActualNumber","_$unhandledRejection_53","evt","isBluebird","unhandled","fixBluebirdStacktrace","_event$addMetadata","_$notifier_11","__schema_11","Bugsnag","bugsnag","_$src_1","_assertThisInitialized","_inheritsLoose","subClass","superClass","_setPrototypeOf","BugsnagPluginReact","globalReact","ErrorBoundary","createClass","BugsnagPluginReactLazyInitializer","formatComponentStack","_React$Component","_proto2","FallbackComponent","ServerErrorView","clearError","retry","router","letterbooksState","letterbooksSlice","letterbooks","createStore","preloadedState","configureStore","currentUser","bookButton","ui","books","getDefaultMiddleware","generateState","generatedAt","rootState","rememberedState","rememberedDate","canonicalState","generateStore","setRememberedState","useRemember","newState","unsubscribe","currentState","Providers","ReduxProvider","UserBookStatusMapSync","BootstrapCurrentUser","loggedIn","bookButtonActions","GlobalLayout"],"ignoreList":[1,2,3,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,47,52,53,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,124,125,126],"sources":["../../../app/javascript/components/svgs/icons/HardcoverLogo.tsx","../../../node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/lodash/_baseTrim.js","../../../node_modules/lodash/toNumber.js","../../../app/javascript/lib/search/indexLookup.ts","../../../app/javascript/store/search/searchSlice.ts","../../../app/javascript/store/ui/uiSelector.ts","../../../app/javascript/components/join/UserJoinButton/UserJoinButtonActive.tsx","../../../app/javascript/components/join/UserJoinButton/index.tsx","../../../node_modules/graphql/language/predicates.mjs","../../../node_modules/@apollo/client/utilities/observables/iteration.js","../../../node_modules/@apollo/client/utilities/observables/asyncMap.js","../../../node_modules/@apollo/client/utilities/observables/subclassing.js","../../../node_modules/@apollo/client/utilities/observables/Concast.js","../../../node_modules/@apollo/client/utilities/common/incrementalResult.js","../../../node_modules/@apollo/client/utilities/common/errorHandling.js","../../../node_modules/@apollo/client/link/http/iterators/async.js","../../../node_modules/@apollo/client/link/http/iterators/nodeStream.js","../../../node_modules/@apollo/client/link/http/iterators/promise.js","../../../node_modules/@apollo/client/link/http/iterators/reader.js","../../../node_modules/@apollo/client/link/http/responseIterator.js","../../../node_modules/@apollo/client/link/utils/fromError.js","../../../node_modules/@apollo/client/link/utils/throwServerError.js","../../../node_modules/@apollo/client/link/utils/validateOperation.js","../../../node_modules/@apollo/client/link/utils/createOperation.js","../../../node_modules/@apollo/client/link/utils/transformOperation.js","../../../node_modules/@apollo/client/link/utils/filterOperationVariables.js","../../../node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js","../../../node_modules/@apollo/client/link/http/serializeFetchParameter.js","../../../node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js","../../../node_modules/@apollo/client/link/http/checkFetcher.js","../../../node_modules/@apollo/client/link/http/selectURI.js","../../../node_modules/@apollo/client/link/core/ApolloLink.js","../../../node_modules/@apollo/client/link/core/execute.js","../../../node_modules/@apollo/client/link/http/rewriteURIForGET.js","../../../node_modules/@apollo/client/link/http/createHttpLink.js","../../../node_modules/@apollo/client/link/http/HttpLink.js","../../../node_modules/@apollo/client/core/ObservableQuery.js","../../../node_modules/@apollo/client/core/QueryInfo.js","../../../node_modules/@apollo/client/core/QueryManager.js","../../../node_modules/@apollo/client/core/LocalState.js","../../../node_modules/@apollo/client/core/ApolloClient.js","../../../node_modules/@apollo/client/link/context/index.js","../../../node_modules/@apollo/client/react/context/ApolloProvider.js","../../../app/javascript/lib/apollo/client.tsx","../../../app/javascript/hardcover-ui/theme/components/badge.ts","../../../app/javascript/hardcover-ui/components/Badge.tsx","../../../node_modules/@capacitor/core/dist/index.js","../../../app/javascript/components/ui/LocaleNumber.tsx","../../../app/javascript/icons/brands/discord.svg","../../../app/javascript/hardcover-ui/theme/components/container.ts","../../../app/javascript/hardcover-ui/components/Container.tsx","../../../node_modules/@capacitor/clipboard/dist/esm/web.js","../../../node_modules/@capacitor/clipboard/dist/esm/index.js","../../../app/javascript/components/shared/CopyLinkWrapper.tsx","../../../app/javascript/components/background/Metadata.tsx","../../../app/javascript/hardcover-ui/theme/components/modal.ts","../../../node_modules/@headlessui/react/dist/utils/env.js","../../../node_modules/@headlessui/react/dist/utils/owner.js","../../../node_modules/@headlessui/react/dist/utils/micro-task.js","../../../node_modules/@headlessui/react/dist/utils/disposables.js","../../../node_modules/@headlessui/react/dist/hooks/use-disposables.js","../../../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../../../node_modules/@headlessui/react/dist/hooks/use-latest-value.js","../../../node_modules/@headlessui/react/dist/hooks/use-event.js","../../../node_modules/@headlessui/react/dist/internal/disabled.js","../../../node_modules/@headlessui/react/dist/utils/class-names.js","../../../node_modules/@headlessui/react/dist/utils/match.js","../../../node_modules/@headlessui/react/dist/utils/render.js","../../../node_modules/@headlessui/react/dist/internal/hidden.js","../../../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../../../node_modules/@headlessui/react/dist/components/description/description.js","../../../node_modules/@headlessui/react/dist/components/keyboard.js","../../../node_modules/@headlessui/react/dist/internal/close-provider.js","../../../node_modules/@headlessui/react/dist/utils/default-map.js","../../../node_modules/@headlessui/react/dist/utils/store.js","../../../node_modules/@headlessui/react/dist/hooks/use-store.js","../../../node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js","../../../node_modules/@headlessui/react/dist/hooks/use-inert-others.js","../../../node_modules/@headlessui/react/dist/hooks/use-on-disappear.js","../../../node_modules/@headlessui/react/dist/utils/focus-management.js","../../../node_modules/@headlessui/react/dist/utils/platform.js","../../../node_modules/@headlessui/react/dist/hooks/use-document-event.js","../../../node_modules/@headlessui/react/dist/hooks/use-window-event.js","../../../node_modules/@headlessui/react/dist/hooks/use-outside-click.js","../../../node_modules/@headlessui/react/dist/hooks/use-owner.js","../../../node_modules/@headlessui/react/dist/hooks/use-event-listener.js","../../../node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","../../../node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","../../../node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","../../../node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","../../../node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","../../../node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js","../../../node_modules/@headlessui/react/dist/hooks/use-flags.js","../../../node_modules/@headlessui/react/dist/hooks/use-transition.js","../../../node_modules/@headlessui/react/dist/hooks/use-watch.js","../../../node_modules/@headlessui/react/dist/internal/open-closed.js","../../../node_modules/@headlessui/react/dist/utils/document-ready.js","../../../node_modules/@headlessui/react/dist/utils/active-element-history.js","../../../node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","../../../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","../../../node_modules/@headlessui/react/dist/internal/portal-force-root.js","../../../node_modules/@headlessui/react/dist/components/portal/portal.js","../../../node_modules/@headlessui/react/dist/hooks/use-escape.js","../../../node_modules/@headlessui/react/dist/hooks/use-is-touch-device.js","../../../node_modules/@headlessui/react/dist/hooks/use-root-containers.js","../../../node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","../../../node_modules/@headlessui/react/dist/hooks/use-tab-direction.js","../../../node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.js","../../../node_modules/@headlessui/react/dist/components/transition/transition.js","../../../node_modules/@headlessui/react/dist/components/dialog/dialog.js","../../../app/javascript/hardcover-ui/components/Modal.tsx","../../../app/javascript/components/search/QuickSearchModal/parts/QuickSearchModal.tsx","../../../app/javascript/store/search/searchSelector.ts","../../../app/javascript/components/search/QuickSearchModal/index.tsx","../../../app/javascript/components/join/LoginModal.tsx","../../../app/javascript/components/background/MobileManagerWrapper.tsx","../../../app/javascript/components/ReportDropdown/Report/ReportModal.tsx","../../../app/javascript/components/background/FlashManager.tsx","../../../app/javascript/components/shared/SharedPlaceholders.tsx","../../../app/javascript/components/ui/BackButton.tsx","../../../app/javascript/hardcover-ui/theme/components/heading.ts","../../../app/javascript/hardcover-ui/components/Heading.tsx","../../../app/javascript/components/views/NotFoundView.tsx","../../../node_modules/@bugsnag/browser/dist/bugsnag.js","../../../node_modules/@bugsnag/js/browser/notifier.js","../../../node_modules/@bugsnag/plugin-react/dist/bugsnag-react.js","../../../app/javascript/lib/bugsnag.ts","../../../app/javascript/components/views/ServerErrorView.tsx","../../../app/javascript/store/letterbooks/letterbooksSlice.ts","../../../app/javascript/store/index.ts","../../../app/javascript/store/new.ts","../../../app/javascript/layouts/providers.tsx","../../../app/javascript/components/background/CurrentUser/BootstrapCurrentUser.tsx","../../../app/javascript/layouts/GlobalLayout.tsx"],"sourcesContent":["interface Props {\n className?: string;\n}\nexport default function HardcoverLogo({ className = \"\" }: Props) {\n return (\n \n \n \n \n \n \n \n \n \n );\n}\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import { SearchType } from \"components/search/search/types\";\n\nconst env = import.meta.env.VITE_ENV;\nexport const indexName = {\n Authors: `Author_${env}`,\n Books: `Book_${env}`,\n Characters: `Character_${env}`,\n Series: `Series_${env}`,\n Lists: `List_${env}`,\n Prompts: `Prompt_${env}`,\n Publishers: `Publisher_${env}`,\n Users: `User_${env}`,\n};\n\nexport function indexLookup(type: SearchType) {\n return indexName[type];\n}","import { createSlice } from \"@reduxjs/toolkit\";\nimport { SearchContextType, SearchType } from \"components/search/search/types\";\nimport { indexLookup } from \"lib/search/indexLookup\";\n\nexport type SearchStateType = {\n searchVisible: boolean;\n searchTerm: null | string;\n nextSearchTerm: null | string;\n searchSelected: null | any;\n searchTypes: SearchType[];\n initialSearchType: SearchType;\n activeSearchType: SearchType;\n indexName: string;\n searchMultipleSources: boolean;\n nextActiveSearchType: SearchType;\n};\n\nexport const searchState: SearchStateType = {\n searchVisible: false,\n searchTerm: null,\n searchSelected: null,\n searchMultipleSources: false,\n searchTypes: [\"Books\"],\n initialSearchType: \"Books\",\n activeSearchType: \"Books\",\n nextActiveSearchType: \"Books\",\n nextSearchTerm: null,\n indexName: indexLookup(\"Books\"),\n};\n\nconst searchSlice = createSlice({\n name: \"SearchSlice\",\n initialState: searchState,\n reducers: {\n toggleSearchVisible(state) {\n state.searchVisible = !state.searchVisible;\n state.searchTerm = state.searchVisible ? state.searchTerm : null;\n },\n reset(state) {\n state.searchVisible = false;\n state.searchTerm = null;\n state.searchSelected = null;\n state.searchMultipleSources = false;\n state.searchTypes = [\"Books\"];\n state.initialSearchType = \"Books\";\n state.activeSearchType = \"Books\";\n state.nextActiveSearchType = null;\n state.nextSearchTerm = null;\n state.indexName = indexLookup(\"Books\");\n },\n setSearchVisible(state, { payload }: { payload: boolean }) {\n state.searchVisible = payload;\n state.searchTerm = payload ? state.searchTerm : null;\n state.nextSearchTerm = payload ? state.searchTerm : null;\n state.searchTypes = [\"Books\"];\n state.initialSearchType = \"Books\";\n state.indexName = indexLookup(\"Books\");\n state.nextActiveSearchType = null;\n },\n setNextSearchTerm(state, { payload }: { payload: string | null }) {\n state.nextSearchTerm = payload;\n },\n setSearchTerm(state, { payload }: { payload: string | null }) {\n state.searchTerm = payload;\n },\n setSearchSelected(state, { payload }: { payload: any }) {\n state.searchSelected = payload;\n },\n setActiveSearchType(state, { payload }: { payload: SearchType }) {\n state.activeSearchType = payload;\n state.indexName = indexLookup(payload);\n state.nextActiveSearchType = null;\n },\n willSetActiveSearchType(state, { payload }: { payload: SearchType }) {\n state.nextActiveSearchType = payload;\n },\n setSearch(state, { payload }: { payload: SearchContextType }) {\n state.searchTypes = payload.searchTypes;\n state.initialSearchType = payload.initialSearchType;\n state.indexName = indexLookup(payload.initialSearchType);\n state.searchMultipleSources = payload.searchMultipleSources || false;\n },\n },\n});\n\nexport const searchActions = searchSlice.actions;\n\nexport default searchSlice.reducer;\n","import { useSelector } from \"react-redux\";\nimport { createSelector } from \"reselect\";\nimport { RootState } from \"store\";\nimport { LoginVisibleType, ReportableType } from \"./uiSlice\";\n\nconst getState = (state: RootState) => state;\n\nexport const getUiChannel = createSelector(getState, (state) => state.ui);\n\nexport const getIsLoginVisible = createSelector(\n getUiChannel,\n ({ loginVisible }) => {\n return loginVisible || false;\n }\n);\n\nexport function useIsLoginVisible(): LoginVisibleType {\n return useSelector(getIsLoginVisible);\n}\n\nexport const getTheme = createSelector(getUiChannel, ({ theme }) => {\n return theme;\n});\n\nexport default function useCurrentTheme(): \"light\" | \"dark\" {\n return useSelector(getTheme);\n}\n\n\nexport const getReport = () =>\n createSelector(getUiChannel, ({report}): ReportableType | null => {\n return report;\n });\nexport function useReport(): ReportableType | null {\n return useSelector(getReport());\n}","import { MouseEvent, ReactElement } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport Button from \"hardcover-ui/components/Button\";\nimport { uiActions } from \"store/ui/uiSlice\";\nimport { ButtonThemeProps } from \"hardcover-ui/theme/components/button\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\n\nexport default function UserJoinButtonActive({\n children,\n variant = \"tertiary\",\n size = \"md\",\n tab = \"Login\",\n}: {\n children: ReactElement;\n variant?: ButtonThemeProps[\"variant\"];\n size?: ButtonThemeProps[\"size\"];\n tab: \"Join\" | \"Login\";\n}) {\n const dispatch = useDispatch();\n const isLoggedIn = useIsLoggedIn();\n const toggleModal = (e: MouseEvent) => {\n e.stopPropagation();\n dispatch(uiActions.toggleLoginVisible(tab));\n }\n\n if (isLoggedIn) {\n return false;\n }\n\n return (\n \n );\n}\n","import { ReactElement } from \"react\";\nimport { ButtonThemeProps } from \"hardcover-ui/theme/components/button\";\nimport UserJoinButtonActive from \"./UserJoinButtonActive\";\n\nexport default function UserJoinButton({\n children,\n variant = \"tertiary\",\n size = \"md\",\n tab = \"Login\",\n}: {\n children: ReactElement;\n variant?: ButtonThemeProps[\"variant\"];\n size?: ButtonThemeProps[\"size\"];\n tab: \"Join\" | \"Login\";\n}) {\n return (\n \n {children}\n \n );\n}\n","import { Kind } from './kinds.mjs';\nexport function isDefinitionNode(node) {\n return (\n isExecutableDefinitionNode(node) ||\n isTypeSystemDefinitionNode(node) ||\n isTypeSystemExtensionNode(node)\n );\n}\nexport function isExecutableDefinitionNode(node) {\n return (\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n );\n}\nexport function isSelectionNode(node) {\n return (\n node.kind === Kind.FIELD ||\n node.kind === Kind.FRAGMENT_SPREAD ||\n node.kind === Kind.INLINE_FRAGMENT\n );\n}\nexport function isValueNode(node) {\n return (\n node.kind === Kind.VARIABLE ||\n node.kind === Kind.INT ||\n node.kind === Kind.FLOAT ||\n node.kind === Kind.STRING ||\n node.kind === Kind.BOOLEAN ||\n node.kind === Kind.NULL ||\n node.kind === Kind.ENUM ||\n node.kind === Kind.LIST ||\n node.kind === Kind.OBJECT\n );\n}\nexport function isConstValueNode(node) {\n return (\n isValueNode(node) &&\n (node.kind === Kind.LIST\n ? node.values.some(isConstValueNode)\n : node.kind === Kind.OBJECT\n ? node.fields.some((field) => isConstValueNode(field.value))\n : node.kind !== Kind.VARIABLE)\n );\n}\nexport function isTypeNode(node) {\n return (\n node.kind === Kind.NAMED_TYPE ||\n node.kind === Kind.LIST_TYPE ||\n node.kind === Kind.NON_NULL_TYPE\n );\n}\nexport function isTypeSystemDefinitionNode(node) {\n return (\n node.kind === Kind.SCHEMA_DEFINITION ||\n isTypeDefinitionNode(node) ||\n node.kind === Kind.DIRECTIVE_DEFINITION\n );\n}\nexport function isTypeDefinitionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_DEFINITION ||\n node.kind === Kind.OBJECT_TYPE_DEFINITION ||\n node.kind === Kind.INTERFACE_TYPE_DEFINITION ||\n node.kind === Kind.UNION_TYPE_DEFINITION ||\n node.kind === Kind.ENUM_TYPE_DEFINITION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION\n );\n}\nexport function isTypeSystemExtensionNode(node) {\n return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n return (\n node.kind === Kind.SCALAR_TYPE_EXTENSION ||\n node.kind === Kind.OBJECT_TYPE_EXTENSION ||\n node.kind === Kind.INTERFACE_TYPE_EXTENSION ||\n node.kind === Kind.UNION_TYPE_EXTENSION ||\n node.kind === Kind.ENUM_TYPE_EXTENSION ||\n node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION\n );\n}\n","export function iterateObserversSafely(observers, method, argument) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\n//# sourceMappingURL=iteration.js.map","import { Observable } from \"./Observable.js\";\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(observable, mapFn, catchFn) {\n return new Observable(function (observer) {\n var promiseQueue = {\n // Normally we would initialize promiseQueue to Promise.resolve(), but\n // in this case, for backwards compatibility, we need to be careful to\n // invoke the first callback synchronously.\n then: function (callback) {\n return new Promise(function (resolve) { return resolve(callback()); });\n },\n };\n function makeCallback(examiner, key) {\n return function (arg) {\n if (examiner) {\n var both = function () {\n // If the observer is closed, we don't want to continue calling the\n // mapping function - it's result will be swallowed anyways.\n return observer.closed ?\n /* will be swallowed */ 0\n : examiner(arg);\n };\n promiseQueue = promiseQueue.then(both, both).then(function (result) { return observer.next(result); }, function (error) { return observer.error(error); });\n }\n else {\n observer[key](arg);\n }\n };\n }\n var handler = {\n next: makeCallback(mapFn, \"next\"),\n error: makeCallback(catchFn, \"error\"),\n complete: function () {\n // no need to reassign `promiseQueue`, after `observer.complete`,\n // the observer will be closed and short-circuit everything anyways\n /*promiseQueue = */ promiseQueue.then(function () { return observer.complete(); });\n },\n };\n var sub = observable.subscribe(handler);\n return function () { return sub.unsubscribe(); };\n });\n}\n//# sourceMappingURL=asyncMap.js.map","import { Observable } from \"./Observable.js\";\nimport { canUseSymbol } from \"../common/canUse.js\";\n// Generic implementations of Observable.prototype methods like map and\n// filter need to know how to create a new Observable from an Observable\n// subclass (like Concast or ObservableQuery). Those methods assume\n// (perhaps unwisely?) that they can call the subtype's constructor with a\n// Subscriber function, even though the subclass constructor might expect\n// different parameters. Defining this static Symbol.species property on\n// the subclass is a hint to generic Observable code to use the default\n// constructor instead of trying to do `new Subclass(observer => ...)`.\nexport function fixObservableSubclass(subclass) {\n function set(key) {\n // Object.defineProperty is necessary because the Symbol.species\n // property is a getter by default in modern JS environments, so we\n // can't assign to it with a normal assignment expression.\n Object.defineProperty(subclass, key, { value: Observable });\n }\n if (canUseSymbol && Symbol.species) {\n set(Symbol.species);\n }\n // The \"@@species\" string is used as a fake Symbol.species value in some\n // polyfill systems (including the SymbolSpecies variable used by\n // zen-observable), so we should set it as well, to be safe.\n set(\"@@species\");\n return subclass;\n}\n//# sourceMappingURL=subclassing.js.map","import { __extends } from \"tslib\";\nimport { Observable } from \"./Observable.js\";\nimport { iterateObserversSafely } from \"./iteration.js\";\nimport { fixObservableSubclass } from \"./subclassing.js\";\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n// A Concast observable concatenates the given sources into a single\n// non-overlapping sequence of Ts, automatically unwrapping any promises,\n// and broadcasts the T elements of that sequence to any number of\n// subscribers, all without creating a bunch of intermediary Observable\n// wrapper objects.\n//\n// Even though any number of observers can subscribe to the Concast, each\n// source observable is guaranteed to receive at most one subscribe call,\n// and the results are multicast to all observers.\n//\n// In addition to broadcasting every next/error message to this.observers,\n// the Concast stores the most recent message using this.latest, so any\n// new observers can immediately receive the latest message, even if it\n// was originally delivered in the past. This behavior means we can assume\n// every active observer in this.observers has received the same most\n// recent message.\n//\n// With the exception of this.latest replay, a Concast is a \"hot\"\n// observable in the sense that it does not replay past results from the\n// beginning of time for each new observer.\n//\n// Could we have used some existing RxJS class instead? Concast is\n// similar to a BehaviorSubject, because it is multicast and redelivers\n// the latest next/error message to new subscribers. Unlike Subject,\n// Concast does not expose an Observer interface (this.handlers is\n// intentionally private), since Concast gets its inputs from the\n// concatenated sources. If we ever switch to RxJS, there may be some\n// value in reusing their code, but for now we use zen-observable, which\n// does not contain any Subject implementations.\nvar Concast = /** @class */ (function (_super) {\n __extends(Concast, _super);\n // Not only can the individual elements of the iterable be promises, but\n // also the iterable itself can be wrapped in a promise.\n function Concast(sources) {\n var _this = _super.call(this, function (observer) {\n _this.addObserver(observer);\n return function () { return _this.removeObserver(observer); };\n }) || this;\n // Active observers receiving broadcast messages. Thanks to this.latest,\n // we can assume all observers in this Set have received the same most\n // recent message, though possibly at different times in the past.\n _this.observers = new Set();\n _this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n // Bound handler functions that can be reused for every internal\n // subscription.\n _this.handlers = {\n next: function (result) {\n if (_this.sub !== null) {\n _this.latest = [\"next\", result];\n _this.notify(\"next\", result);\n iterateObserversSafely(_this.observers, \"next\", result);\n }\n },\n error: function (error) {\n var sub = _this.sub;\n if (sub !== null) {\n // Delay unsubscribing from the underlying subscription slightly,\n // so that immediately subscribing another observer can keep the\n // subscription active.\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n _this.latest = [\"error\", error];\n _this.reject(error);\n _this.notify(\"error\", error);\n iterateObserversSafely(_this.observers, \"error\", error);\n }\n },\n complete: function () {\n var _a = _this, sub = _a.sub, _b = _a.sources, sources = _b === void 0 ? [] : _b;\n if (sub !== null) {\n // If complete is called before concast.start, this.sources may be\n // undefined, so we use a default value of [] for sources. That works\n // here because it falls into the if (!value) {...} block, which\n // appropriately terminates the Concast, even if this.sources might\n // eventually have been initialized to a non-empty array.\n var value = sources.shift();\n if (!value) {\n if (sub)\n setTimeout(function () { return sub.unsubscribe(); });\n _this.sub = null;\n if (_this.latest && _this.latest[0] === \"next\") {\n _this.resolve(_this.latest[1]);\n }\n else {\n _this.resolve();\n }\n _this.notify(\"complete\");\n // We do not store this.latest = [\"complete\"], because doing so\n // discards useful information about the previous next (or\n // error) message. Instead, if new observers subscribe after\n // this Concast has completed, they will receive the final\n // 'next' message (unless there was an error) immediately\n // followed by a 'complete' message (see addObserver).\n iterateObserversSafely(_this.observers, \"complete\");\n }\n else if (isPromiseLike(value)) {\n value.then(function (obs) { return (_this.sub = obs.subscribe(_this.handlers)); }, _this.handlers.error);\n }\n else {\n _this.sub = value.subscribe(_this.handlers);\n }\n }\n },\n };\n _this.nextResultListeners = new Set();\n // A public way to abort observation and broadcast.\n _this.cancel = function (reason) {\n _this.reject(reason);\n _this.sources = [];\n _this.handlers.error(reason);\n };\n // Suppress rejection warnings for this.promise, since it's perfectly\n // acceptable to pay no attention to this.promise if you're consuming\n // the results through the normal observable API.\n _this.promise.catch(function (_) { });\n // If someone accidentally tries to create a Concast using a subscriber\n // function, recover by creating an Observable from that subscriber and\n // using it as the source.\n if (typeof sources === \"function\") {\n sources = [new Observable(sources)];\n }\n if (isPromiseLike(sources)) {\n sources.then(function (iterable) { return _this.start(iterable); }, _this.handlers.error);\n }\n else {\n _this.start(sources);\n }\n return _this;\n }\n Concast.prototype.start = function (sources) {\n if (this.sub !== void 0)\n return;\n // In practice, sources is most often simply an Array of observables.\n // TODO Consider using sources[Symbol.iterator]() to take advantage\n // of the laziness of non-Array iterables.\n this.sources = Array.from(sources);\n // Calling this.handlers.complete() kicks off consumption of the first\n // source observable. It's tempting to do this step lazily in\n // addObserver, but this.promise can be accessed without calling\n // addObserver, so consumption needs to begin eagerly.\n this.handlers.complete();\n };\n Concast.prototype.deliverLastMessage = function (observer) {\n if (this.latest) {\n var nextOrError = this.latest[0];\n var method = observer[nextOrError];\n if (method) {\n method.call(observer, this.latest[1]);\n }\n // If the subscription is already closed, and the last message was\n // a 'next' message, simulate delivery of the final 'complete'\n // message again.\n if (this.sub === null && nextOrError === \"next\" && observer.complete) {\n observer.complete();\n }\n }\n };\n Concast.prototype.addObserver = function (observer) {\n if (!this.observers.has(observer)) {\n // Immediately deliver the most recent message, so we can always\n // be sure all observers have the latest information.\n this.deliverLastMessage(observer);\n this.observers.add(observer);\n }\n };\n Concast.prototype.removeObserver = function (observer) {\n if (this.observers.delete(observer) && this.observers.size < 1) {\n // In case there are still any listeners in this.nextResultListeners, and\n // no error or completion has been broadcast yet, make sure those\n // observers have a chance to run and then remove themselves from\n // this.observers.\n this.handlers.complete();\n }\n };\n Concast.prototype.notify = function (method, arg) {\n var nextResultListeners = this.nextResultListeners;\n if (nextResultListeners.size) {\n // Replacing this.nextResultListeners first ensures it does not grow while\n // we are iterating over it, potentially leading to infinite loops.\n this.nextResultListeners = new Set();\n nextResultListeners.forEach(function (listener) { return listener(method, arg); });\n }\n };\n // We need a way to run callbacks just *before* the next result (or error or\n // completion) is delivered by this Concast, so we can be sure any code that\n // runs as a result of delivering that result/error observes the effects of\n // running the callback(s). It was tempting to reuse the Observer type instead\n // of introducing NextResultListener, but that messes with the sizing and\n // maintenance of this.observers, and ends up being more code overall.\n Concast.prototype.beforeNext = function (callback) {\n var called = false;\n this.nextResultListeners.add(function (method, arg) {\n if (!called) {\n called = true;\n callback(method, arg);\n }\n });\n };\n return Concast;\n}(Observable));\nexport { Concast };\n// Necessary because the Concast constructor has a different signature\n// than the Observable constructor.\nfixObservableSubclass(Concast);\n//# sourceMappingURL=Concast.js.map","import { isNonNullObject } from \"./objects.js\";\nimport { isNonEmptyArray } from \"./arrays.js\";\nimport { DeepMerger } from \"./mergeDeep.js\";\nexport function isExecutionPatchIncrementalResult(value) {\n return \"incremental\" in value;\n}\nexport function isExecutionPatchInitialResult(value) {\n return \"hasNext\" in value && \"data\" in value;\n}\nexport function isExecutionPatchResult(value) {\n return (isExecutionPatchIncrementalResult(value) ||\n isExecutionPatchInitialResult(value));\n}\n// This function detects an Apollo payload result before it is transformed\n// into a FetchResult via HttpLink; it cannot detect an ApolloPayloadResult\n// once it leaves the link chain.\nexport function isApolloPayloadResult(value) {\n return isNonNullObject(value) && \"payload\" in value;\n}\nexport function mergeIncrementalData(prevResult, result) {\n var mergedData = prevResult;\n var merger = new DeepMerger();\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (_a) {\n var data = _a.data, path = _a.path;\n for (var i = path.length - 1; i >= 0; --i) {\n var key = path[i];\n var isNumericKey = !isNaN(+key);\n var parent_1 = isNumericKey ? [] : {};\n parent_1[key] = data;\n data = parent_1;\n }\n mergedData = merger.merge(mergedData, data);\n });\n }\n return mergedData;\n}\n//# sourceMappingURL=incrementalResult.js.map","import { isNonEmptyArray } from \"./arrays.js\";\nimport { isExecutionPatchIncrementalResult } from \"./incrementalResult.js\";\nexport function graphQLResultHasError(result) {\n var errors = getGraphQLErrorsFromResult(result);\n return isNonEmptyArray(errors);\n}\nexport function getGraphQLErrorsFromResult(result) {\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n result.incremental.forEach(function (incrementalResult) {\n if (incrementalResult.errors) {\n graphQLErrors.push.apply(graphQLErrors, incrementalResult.errors);\n }\n });\n }\n return graphQLErrors;\n}\n//# sourceMappingURL=errorHandling.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/async.ts\n */\nexport default function asyncIterator(source) {\n var _a;\n var iterator = source[Symbol.asyncIterator]();\n return _a = {\n next: function () {\n return iterator.next();\n }\n },\n _a[Symbol.asyncIterator] = function () {\n return this;\n },\n _a;\n}\n//# sourceMappingURL=async.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/nodeStream.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function nodeStreamIterator(stream) {\n var cleanup = null;\n var error = null;\n var done = false;\n var data = [];\n var waiting = [];\n function onData(chunk) {\n if (error)\n return;\n if (waiting.length) {\n var shiftedArr = waiting.shift();\n if (Array.isArray(shiftedArr) && shiftedArr[0]) {\n return shiftedArr[0]({ value: chunk, done: false });\n }\n }\n data.push(chunk);\n }\n function onError(err) {\n error = err;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[1](err);\n });\n !cleanup || cleanup();\n }\n function onEnd() {\n done = true;\n var all = waiting.slice();\n all.forEach(function (pair) {\n pair[0]({ value: undefined, done: true });\n });\n !cleanup || cleanup();\n }\n cleanup = function () {\n cleanup = null;\n stream.removeListener(\"data\", onData);\n stream.removeListener(\"error\", onError);\n stream.removeListener(\"end\", onEnd);\n stream.removeListener(\"finish\", onEnd);\n stream.removeListener(\"close\", onEnd);\n };\n stream.on(\"data\", onData);\n stream.on(\"error\", onError);\n stream.on(\"end\", onEnd);\n stream.on(\"finish\", onEnd);\n stream.on(\"close\", onEnd);\n function getNext() {\n return new Promise(function (resolve, reject) {\n if (error)\n return reject(error);\n if (data.length)\n return resolve({ value: data.shift(), done: false });\n if (done)\n return resolve({ value: undefined, done: true });\n waiting.push([resolve, reject]);\n });\n }\n var iterator = {\n next: function () {\n return getNext();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=nodeStream.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/promise.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function promiseIterator(promise) {\n var resolved = false;\n var iterator = {\n next: function () {\n if (resolved)\n return Promise.resolve({\n value: undefined,\n done: true,\n });\n resolved = true;\n return new Promise(function (resolve, reject) {\n promise\n .then(function (value) {\n resolve({ value: value, done: false });\n })\n .catch(reject);\n });\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=promise.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/iterators/reader.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../../utilities/index.js\";\nexport default function readerIterator(reader) {\n var iterator = {\n next: function () {\n return reader.read();\n },\n };\n if (canUseAsyncIteratorSymbol) {\n iterator[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n return iterator;\n}\n//# sourceMappingURL=reader.js.map","/**\n * Original source:\n * https://github.com/kmalakoff/response-iterator/blob/master/src/index.ts\n */\nimport { canUseAsyncIteratorSymbol } from \"../../utilities/index.js\";\nimport asyncIterator from \"./iterators/async.js\";\nimport nodeStreamIterator from \"./iterators/nodeStream.js\";\nimport promiseIterator from \"./iterators/promise.js\";\nimport readerIterator from \"./iterators/reader.js\";\nfunction isNodeResponse(value) {\n return !!value.body;\n}\nfunction isReadableStream(value) {\n return !!value.getReader;\n}\nfunction isAsyncIterableIterator(value) {\n return !!(canUseAsyncIteratorSymbol &&\n value[Symbol.asyncIterator]);\n}\nfunction isStreamableBlob(value) {\n return !!value.stream;\n}\nfunction isBlob(value) {\n return !!value.arrayBuffer;\n}\nfunction isNodeReadableStream(value) {\n return !!value.pipe;\n}\nexport function responseIterator(response) {\n var body = response;\n if (isNodeResponse(response))\n body = response.body;\n if (isAsyncIterableIterator(body))\n return asyncIterator(body);\n if (isReadableStream(body))\n return readerIterator(body.getReader());\n // this errors without casting to ReadableStream\n // because Blob.stream() returns a NodeJS ReadableStream\n if (isStreamableBlob(body)) {\n return readerIterator(body.stream().getReader());\n }\n if (isBlob(body))\n return promiseIterator(body.arrayBuffer());\n if (isNodeReadableStream(body))\n return nodeStreamIterator(body);\n throw new Error(\"Unknown body type for responseIterator. Please pass a streamable response.\");\n}\n//# sourceMappingURL=responseIterator.js.map","import { Observable } from \"../../utilities/index.js\";\nexport function fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\n//# sourceMappingURL=fromError.js.map","export var throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = \"ServerError\";\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n//# sourceMappingURL=throwServerError.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport function validateOperation(operation) {\n var OPERATION_FIELDS = [\n \"query\",\n \"operationName\",\n \"variables\",\n \"extensions\",\n \"context\",\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw newInvariantError(44, key);\n }\n }\n return operation;\n}\n//# sourceMappingURL=validateOperation.js.map","import { __assign } from \"tslib\";\nexport function createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === \"function\") {\n context = __assign(__assign({}, context), next(context));\n }\n else {\n context = __assign(__assign({}, context), next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, \"setContext\", {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, \"getContext\", {\n enumerable: false,\n value: getContext,\n });\n return operation;\n}\n//# sourceMappingURL=createOperation.js.map","import { getOperationName } from \"../../utilities/index.js\";\nexport function transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n // Best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== \"string\" ?\n getOperationName(transformedOperation.query) || undefined\n : \"\";\n }\n return transformedOperation;\n}\n//# sourceMappingURL=transformOperation.js.map","import { __assign } from \"tslib\";\nimport { visit } from \"graphql\";\nexport function filterOperationVariables(variables, query) {\n var result = __assign({}, variables);\n var unusedNames = new Set(Object.keys(variables));\n visit(query, {\n Variable: function (node, _key, parent) {\n // A variable type definition at the top level of a query is not\n // enough to silence server-side errors about the variable being\n // unused, so variable definitions do not count as usage.\n // https://spec.graphql.org/draft/#sec-All-Variables-Used\n if (parent &&\n parent.kind !== \"VariableDefinition\") {\n unusedNames.delete(node.name.value);\n }\n },\n });\n unusedNames.forEach(function (name) {\n delete result[name];\n });\n return result;\n}\n//# sourceMappingURL=filterOperationVariables.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { responseIterator } from \"./responseIterator.js\";\nimport { throwServerError } from \"../utils/index.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../../errors/index.js\";\nimport { isApolloPayloadResult } from \"../../utilities/common/incrementalResult.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nexport function readMultipartBody(response, nextValue) {\n return __awaiter(this, void 0, void 0, function () {\n var decoder, contentType, delimiter, boundaryVal, boundary, buffer, iterator, running, _a, value, done, chunk, searchFrom, bi, message, i, headers, contentType_1, body, result, next;\n var _b, _c;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (TextDecoder === undefined) {\n throw new Error(\"TextDecoder must be defined in the environment: please import a polyfill.\");\n }\n decoder = new TextDecoder(\"utf-8\");\n contentType = (_d = response.headers) === null || _d === void 0 ? void 0 : _d.get(\"content-type\");\n delimiter = \"boundary=\";\n boundaryVal = (contentType === null || contentType === void 0 ? void 0 : contentType.includes(delimiter)) ?\n contentType === null || contentType === void 0 ? void 0 : contentType.substring((contentType === null || contentType === void 0 ? void 0 : contentType.indexOf(delimiter)) + delimiter.length).replace(/['\"]/g, \"\").replace(/\\;(.*)/gm, \"\").trim()\n : \"-\";\n boundary = \"\\r\\n--\".concat(boundaryVal);\n buffer = \"\";\n iterator = responseIterator(response);\n running = true;\n _e.label = 1;\n case 1:\n if (!running) return [3 /*break*/, 3];\n return [4 /*yield*/, iterator.next()];\n case 2:\n _a = _e.sent(), value = _a.value, done = _a.done;\n chunk = typeof value === \"string\" ? value : decoder.decode(value);\n searchFrom = buffer.length - boundary.length + 1;\n running = !done;\n buffer += chunk;\n bi = buffer.indexOf(boundary, searchFrom);\n while (bi > -1) {\n message = void 0;\n _b = [\n buffer.slice(0, bi),\n buffer.slice(bi + boundary.length),\n ], message = _b[0], buffer = _b[1];\n i = message.indexOf(\"\\r\\n\\r\\n\");\n headers = parseHeaders(message.slice(0, i));\n contentType_1 = headers[\"content-type\"];\n if (contentType_1 &&\n contentType_1.toLowerCase().indexOf(\"application/json\") === -1) {\n throw new Error(\"Unsupported patch content type: application/json is required.\");\n }\n body = message.slice(i);\n if (body) {\n result = parseJsonBody(response, body);\n if (Object.keys(result).length > 1 ||\n \"data\" in result ||\n \"incremental\" in result ||\n \"errors\" in result ||\n \"payload\" in result) {\n if (isApolloPayloadResult(result)) {\n next = {};\n if (\"payload\" in result) {\n if (Object.keys(result).length === 1 && result.payload === null) {\n return [2 /*return*/];\n }\n next = __assign({}, result.payload);\n }\n if (\"errors\" in result) {\n next = __assign(__assign({}, next), { extensions: __assign(__assign({}, (\"extensions\" in next ? next.extensions : null)), (_c = {}, _c[PROTOCOL_ERRORS_SYMBOL] = result.errors, _c)) });\n }\n nextValue(next);\n }\n else {\n // for the last chunk with only `hasNext: false`\n // we don't need to call observer.next as there is no data/errors\n nextValue(result);\n }\n }\n else if (\n // If the chunk contains only a \"hasNext: false\", we can call\n // observer.complete() immediately.\n Object.keys(result).length === 1 &&\n \"hasNext\" in result &&\n !result.hasNext) {\n return [2 /*return*/];\n }\n }\n bi = buffer.indexOf(boundary);\n }\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n}\nexport function parseHeaders(headerText) {\n var headersInit = {};\n headerText.split(\"\\n\").forEach(function (line) {\n var i = line.indexOf(\":\");\n if (i > -1) {\n // normalize headers to lowercase\n var name_1 = line.slice(0, i).trim().toLowerCase();\n var value = line.slice(i + 1).trim();\n headersInit[name_1] = value;\n }\n });\n return headersInit;\n}\nexport function parseJsonBody(response, bodyText) {\n if (response.status >= 300) {\n // Network error\n var getResult = function () {\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n return bodyText;\n }\n };\n throwServerError(response, getResult(), \"Response not successful: Received status code \".concat(response.status));\n }\n try {\n return JSON.parse(bodyText);\n }\n catch (err) {\n var parseError = err;\n parseError.name = \"ServerParseError\";\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n throw parseError;\n }\n}\nexport function handleError(err, observer) {\n // if it is a network error, BUT there is graphql result info fire\n // the next observer before calling error this gives apollo-client\n // (and react-apollo) the `graphqlErrors` and `networkErrors` to\n // pass to UI this should only happen if we *also* have data as\n // part of the response key per the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we don't call next, the UI can only show networkError\n // because AC didn't get any graphqlErrors this is graphql\n // execution result info (i.e errors and possibly data) this is\n // because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status\n // of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n}\nexport function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response\n .text()\n .then(function (bodyText) { return parseJsonBody(response, bodyText); })\n .then(function (result) {\n if (!Array.isArray(result) &&\n !hasOwnProperty.call(result, \"data\") &&\n !hasOwnProperty.call(result, \"errors\")) {\n // Data error\n throwServerError(response, result, \"Server response was missing for query '\".concat(Array.isArray(operations) ?\n operations.map(function (op) { return op.operationName; })\n : operations.operationName, \"'.\"));\n }\n return result;\n });\n };\n}\n//# sourceMappingURL=parseAndCheckHttpResponse.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport var serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\n catch (e) {\n var parseError = newInvariantError(40, label, e.message);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n//# sourceMappingURL=serializeFetchParameter.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { print } from \"../../utilities/index.js\";\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false,\n preserveHeaderCase: false,\n};\nvar defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: \"*/*\",\n // The content-type header describes the type of the body of the request, and\n // so it typically only is sent with requests that actually have bodies. One\n // could imagine that Apollo Client would remove this header when constructing\n // a GET request (which has no body), but we historically have not done that.\n // This means that browsers will preflight all Apollo Client requests (even\n // GET requests). Apollo Server's CSRF prevention feature (introduced in\n // AS3.7) takes advantage of this fact and does not block requests with this\n // header. If you want to drop this header from GET requests, then you should\n // probably replace it with a `apollo-require-preflight` header, or servers\n // with CSRF prevention enabled might block your GET request. See\n // https://www.apollographql.com/docs/apollo-server/security/cors/#preventing-cross-site-request-forgery-csrf\n // for more details.\n \"content-type\": \"application/json\",\n};\nvar defaultOptions = {\n method: \"POST\",\n};\nexport var fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\nexport var defaultPrinter = function (ast, printer) { return printer(ast); };\nexport function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n configs.unshift(fallbackConfig);\n return selectHttpOptionsAndBodyInternal.apply(void 0, __spreadArray([operation,\n defaultPrinter], configs, false));\n}\nexport function selectHttpOptionsAndBodyInternal(operation, printer) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = {};\n var http = {};\n configs.forEach(function (config) {\n options = __assign(__assign(__assign({}, options), config.options), { headers: __assign(__assign({}, options.headers), config.headers) });\n if (config.credentials) {\n options.credentials = config.credentials;\n }\n http = __assign(__assign({}, http), config.http);\n });\n if (options.headers) {\n options.headers = removeDuplicateHeaders(options.headers, http.preserveHeaderCase);\n }\n //The body depends on the http options\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n // not sending the query (i.e persisted queries)\n if (http.includeQuery)\n body.query = printer(query, print);\n return {\n options: options,\n body: body,\n };\n}\n// Remove potential duplicate header names, preserving last (by insertion order).\n// This is done to prevent unintentionally duplicating a header instead of\n// overwriting it (See #8447 and #8449).\nfunction removeDuplicateHeaders(headers, preserveHeaderCase) {\n // If we're not preserving the case, just remove duplicates w/ normalization.\n if (!preserveHeaderCase) {\n var normalizedHeaders_1 = {};\n Object.keys(Object(headers)).forEach(function (name) {\n normalizedHeaders_1[name.toLowerCase()] = headers[name];\n });\n return normalizedHeaders_1;\n }\n // If we are preserving the case, remove duplicates w/ normalization,\n // preserving the original name.\n // This allows for non-http-spec-compliant servers that expect intentionally\n // capitalized header names (See #6741).\n var headerData = {};\n Object.keys(Object(headers)).forEach(function (name) {\n headerData[name.toLowerCase()] = {\n originalName: name,\n value: headers[name],\n };\n });\n var normalizedHeaders = {};\n Object.keys(headerData).forEach(function (name) {\n normalizedHeaders[headerData[name].originalName] = headerData[name].value;\n });\n return normalizedHeaders;\n}\n//# sourceMappingURL=selectHttpOptionsAndBody.js.map","import { newInvariantError } from \"../../utilities/globals/index.js\";\nexport var checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === \"undefined\") {\n throw newInvariantError(38);\n }\n};\n//# sourceMappingURL=checkFetcher.js.map","export var selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === \"function\") {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || \"/graphql\";\n }\n};\n//# sourceMappingURL=selectURI.js.map","import { newInvariantError, invariant } from \"../../utilities/globals/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nimport { validateOperation, createOperation, transformOperation, } from \"../utils/index.js\";\nfunction passthrough(op, forward) {\n return (forward ? forward(op) : Observable.of());\n}\nfunction toLink(handler) {\n return typeof handler === \"function\" ? new ApolloLink(handler) : handler;\n}\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nvar ApolloLink = /** @class */ (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.empty = function () {\n return new ApolloLink(function () { return Observable.of(); });\n };\n ApolloLink.from = function (links) {\n if (links.length === 0)\n return ApolloLink.empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n };\n ApolloLink.split = function (test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n var ret;\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n ret = new ApolloLink(function (operation) {\n return test(operation) ?\n leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n ret = new ApolloLink(function (operation, forward) {\n return test(operation) ?\n leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n return Object.assign(ret, { left: leftLink, right: rightLink });\n };\n ApolloLink.execute = function (link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n };\n ApolloLink.concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n globalThis.__DEV__ !== false && invariant.warn(36, firstLink);\n return firstLink;\n }\n var nextLink = toLink(second);\n var ret;\n if (isTerminating(nextLink)) {\n ret = new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n ret = new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n return Object.assign(ret, { left: firstLink, right: nextLink });\n };\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(ApolloLink.split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return ApolloLink.concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw newInvariantError(37);\n };\n ApolloLink.prototype.onError = function (error, observer) {\n if (observer && observer.error) {\n observer.error(error);\n // Returning false indicates that observer.error does not need to be\n // called again, since it was already called (on the previous line).\n // Calling observer.error again would not cause any real problems,\n // since only the first call matters, but custom onError functions\n // might have other reasons for wanting to prevent the default\n // behavior by returning false.\n return false;\n }\n // Throw errors will be passed to observer.error.\n throw error;\n };\n ApolloLink.prototype.setOnError = function (fn) {\n this.onError = fn;\n return this;\n };\n return ApolloLink;\n}());\nexport { ApolloLink };\n//# sourceMappingURL=ApolloLink.js.map","import { ApolloLink } from \"./ApolloLink.js\";\nexport var execute = ApolloLink.execute;\n//# sourceMappingURL=execute.js.map","import { serializeFetchParameter } from \"./serializeFetchParameter.js\";\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nexport function rewriteURIForGET(chosenURI, body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(\"\".concat(key, \"=\").concat(encodeURIComponent(value)));\n };\n if (\"query\" in body) {\n addQueryParam(\"query\", body.query);\n }\n if (body.operationName) {\n addQueryParam(\"operationName\", body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, \"Variables map\");\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam(\"variables\", serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, \"Extensions map\");\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam(\"extensions\", serializedExtensions);\n }\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n var fragment = \"\", preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf(\"#\");\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n var newURI = preFragment + queryParamsPrefix + queryParams.join(\"&\") + fragment;\n return { newURI: newURI };\n}\n//# sourceMappingURL=rewriteURIForGET.js.map","import { __assign, __rest } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable, hasDirectives } from \"../../utilities/index.js\";\nimport { serializeFetchParameter } from \"./serializeFetchParameter.js\";\nimport { selectURI } from \"./selectURI.js\";\nimport { handleError, readMultipartBody, parseAndCheckHttpResponse, } from \"./parseAndCheckHttpResponse.js\";\nimport { checkFetcher } from \"./checkFetcher.js\";\nimport { selectHttpOptionsAndBodyInternal, defaultPrinter, fallbackHttpConfig, } from \"./selectHttpOptionsAndBody.js\";\nimport { rewriteURIForGET } from \"./rewriteURIForGET.js\";\nimport { fromError, filterOperationVariables } from \"../utils/index.js\";\nimport { maybe, getMainDefinition, removeClientSetsFromDocument, } from \"../../utilities/index.js\";\nvar backupFetch = maybe(function () { return fetch; });\nexport var createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? \"/graphql\" : _a, \n // use default global fetch if nothing passed in\n preferredFetch = linkOptions.fetch, _b = linkOptions.print, print = _b === void 0 ? defaultPrinter : _b, includeExtensions = linkOptions.includeExtensions, preserveHeaderCase = linkOptions.preserveHeaderCase, useGETForQueries = linkOptions.useGETForQueries, _c = linkOptions.includeUnusedVariables, includeUnusedVariables = _c === void 0 ? false : _c, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"print\", \"includeExtensions\", \"preserveHeaderCase\", \"useGETForQueries\", \"includeUnusedVariables\"]);\n if (globalThis.__DEV__ !== false) {\n // Make sure at least one of preferredFetch, window.fetch, or backupFetch is\n // defined, so requests won't fail at runtime.\n checkFetcher(preferredFetch || backupFetch);\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions, preserveHeaderCase: preserveHeaderCase },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders[\"apollographql-client-name\"] = name_1;\n }\n if (version) {\n clientAwarenessHeaders[\"apollographql-client-version\"] = version;\n }\n }\n var contextHeaders = __assign(__assign({}, clientAwarenessHeaders), context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n if (hasDirectives([\"client\"], operation.query)) {\n var transformedQuery = removeClientSetsFromDocument(operation.query);\n if (!transformedQuery) {\n return fromError(new Error(\"HttpLink: Trying to send a client-only query to the server. To send to the server, ensure a non-client field is added to the query or set the `transformOptions.removeClientFields` option to `true`.\"));\n }\n operation.query = transformedQuery;\n }\n //uses fallback, link, and then context to build options\n var _b = selectHttpOptionsAndBodyInternal(operation, print, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n if (body.variables && !includeUnusedVariables) {\n body.variables = filterOperationVariables(body.variables, operation.query);\n }\n var controller;\n if (!options.signal && typeof AbortController !== \"undefined\") {\n controller = new AbortController();\n options.signal = controller.signal;\n }\n // If requested, set method to GET if there are no mutations.\n var definitionIsMutation = function (d) {\n return d.kind === \"OperationDefinition\" && d.operation === \"mutation\";\n };\n var definitionIsSubscription = function (d) {\n return d.kind === \"OperationDefinition\" && d.operation === \"subscription\";\n };\n var isSubscription = definitionIsSubscription(getMainDefinition(operation.query));\n // does not match custom directives beginning with @defer\n var hasDefer = hasDirectives([\"defer\"], operation.query);\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = \"GET\";\n }\n if (hasDefer || isSubscription) {\n options.headers = options.headers || {};\n var acceptHeader = \"multipart/mixed;\";\n // Omit defer-specific headers if the user attempts to defer a selection\n // set on a subscription and log a warning.\n if (isSubscription && hasDefer) {\n globalThis.__DEV__ !== false && invariant.warn(39);\n }\n if (isSubscription) {\n acceptHeader +=\n \"boundary=graphql;subscriptionSpec=1.0,application/json\";\n }\n else if (hasDefer) {\n acceptHeader += \"deferSpec=20220824,application/json\";\n }\n options.headers.accept = acceptHeader;\n }\n if (options.method === \"GET\") {\n var _c = rewriteURIForGET(chosenURI, body), newURI = _c.newURI, parseError = _c.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, \"Payload\");\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n // Prefer linkOptions.fetch (preferredFetch) if provided, and otherwise\n // fall back to the *current* global window.fetch function (see issue\n // #7832), or (if all else fails) the backupFetch function we saved when\n // this module was first evaluated. This last option protects against the\n // removal of window.fetch, which is unlikely but not impossible.\n var currentFetch = preferredFetch || maybe(function () { return fetch; }) || backupFetch;\n var observerNext = observer.next.bind(observer);\n currentFetch(chosenURI, options)\n .then(function (response) {\n var _a;\n operation.setContext({ response: response });\n var ctype = (_a = response.headers) === null || _a === void 0 ? void 0 : _a.get(\"content-type\");\n if (ctype !== null && /^multipart\\/mixed/i.test(ctype)) {\n return readMultipartBody(response, observerNext);\n }\n else {\n return parseAndCheckHttpResponse(operation)(response).then(observerNext);\n }\n })\n .then(function () {\n controller = undefined;\n observer.complete();\n })\n .catch(function (err) {\n controller = undefined;\n handleError(err, observer);\n });\n return function () {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller)\n controller.abort();\n };\n });\n });\n};\n//# sourceMappingURL=createHttpLink.js.map","import { __extends } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { createHttpLink } from \"./createHttpLink.js\";\nvar HttpLink = /** @class */ (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(options) {\n if (options === void 0) { options = {}; }\n var _this = _super.call(this, createHttpLink(options).request) || this;\n _this.options = options;\n return _this;\n }\n return HttpLink;\n}(ApolloLink));\nexport { HttpLink };\n//# sourceMappingURL=HttpLink.js.map","import { __assign, __extends } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { cloneDeep, compact, getOperationDefinition, Observable, iterateObserversSafely, fixObservableSubclass, getQueryDefinition, } from \"../utilities/index.js\";\nimport { ApolloError, isApolloError } from \"../errors/index.js\";\nimport { equalByQuery } from \"./equalByQuery.js\";\nvar assign = Object.assign, hasOwnProperty = Object.hasOwnProperty;\nvar ObservableQuery = /** @class */ (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, queryInfo = _a.queryInfo, options = _a.options;\n var _this = _super.call(this, function (observer) {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !_this.observers.size;\n _this.observers.add(observer);\n // Deliver most recent error or result.\n var last = _this.last;\n if (last && last.error) {\n observer.error && observer.error(last.error);\n }\n else if (last && last.result) {\n observer.next && observer.next(last.result);\n }\n // Initiate observation of this query if it hasn't been reported to\n // the QueryManager yet.\n if (first) {\n // Blindly catching here prevents unhandled promise rejections,\n // and is safe because the ObservableQuery handles this error with\n // this.observer.error, so we're not just swallowing the error by\n // ignoring it here.\n _this.reobserve().catch(function () { });\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n // related classes\n _this.queryInfo = queryInfo;\n _this.queryManager = queryManager;\n // active state\n _this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy);\n _this.isTornDown = false;\n _this.subscribeToMore = _this.subscribeToMore.bind(_this);\n var _b = queryManager.defaultOptions.watchQuery, _c = _b === void 0 ? {} : _b, _d = _c.fetchPolicy, defaultFetchPolicy = _d === void 0 ? \"cache-first\" : _d;\n var _e = options.fetchPolicy, fetchPolicy = _e === void 0 ? defaultFetchPolicy : _e, \n // Make sure we don't store \"standby\" as the initialFetchPolicy.\n _f = options.initialFetchPolicy, \n // Make sure we don't store \"standby\" as the initialFetchPolicy.\n initialFetchPolicy = _f === void 0 ? fetchPolicy === \"standby\" ? defaultFetchPolicy : (fetchPolicy) : _f;\n _this.options = __assign(__assign({}, options), { \n // Remember the initial options.fetchPolicy so we can revert back to this\n // policy when variables change. This information can also be specified\n // (or overridden) by providing options.initialFetchPolicy explicitly.\n initialFetchPolicy: initialFetchPolicy, \n // This ensures this.options.fetchPolicy always has a string value, in\n // case options.fetchPolicy was not provided.\n fetchPolicy: fetchPolicy });\n _this.queryId = queryInfo.queryId || queryManager.generateQueryId();\n var opDef = getOperationDefinition(_this.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n return _this;\n }\n Object.defineProperty(ObservableQuery.prototype, \"query\", {\n // The `query` computed property will always reflect the document transformed\n // by the last run query. `this.options.query` will always reflect the raw\n // untransformed query to ensure document transforms with runtime conditionals\n // are run on the original document.\n get: function () {\n return this.lastQuery || this.options.query;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ObservableQuery.prototype, \"variables\", {\n // Computed shorthand for this.options.variables, preserved for\n // backwards compatibility.\n /**\n * An object containing the variables that were provided for the query.\n */\n get: function () {\n return this.options.variables;\n },\n enumerable: false,\n configurable: true\n });\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n // TODO: this code doesn’t actually make sense insofar as the observer\n // will never exist in this.observers due how zen-observable wraps observables.\n // https://github.com/zenparsing/zen-observable/blob/master/src/Observable.js#L169\n var observer = {\n next: function (result) {\n resolve(result);\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n /** @internal */\n ObservableQuery.prototype.resetDiff = function () {\n this.queryInfo.resetDiff();\n };\n ObservableQuery.prototype.getCurrentResult = function (saveAsLastResult) {\n if (saveAsLastResult === void 0) { saveAsLastResult = true; }\n // Use the last result as long as the variables match this.variables.\n var lastResult = this.getLastResult(true);\n var networkStatus = this.queryInfo.networkStatus ||\n (lastResult && lastResult.networkStatus) ||\n NetworkStatus.ready;\n var result = __assign(__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });\n var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a;\n if (\n // These fetch policies should never deliver data from the cache, unless\n // redelivering a previously delivered result.\n skipCacheDataFor(fetchPolicy) ||\n // If this.options.query has @client(always: true) fields, we cannot\n // trust diff.result, since it was read from the cache without running\n // local resolvers (and it's too late to run resolvers now, since we must\n // return a result synchronously).\n this.queryManager.getDocumentInfo(this.query).hasForcedResolvers) {\n // Fall through.\n }\n else if (this.waitForOwnResult) {\n // This would usually be a part of `QueryInfo.getDiff()`.\n // which we skip in the waitForOwnResult case since we are not\n // interested in the diff.\n this.queryInfo[\"updateWatch\"]();\n }\n else {\n var diff = this.queryInfo.getDiff();\n if (diff.complete || this.options.returnPartialData) {\n result.data = diff.result;\n }\n if (equal(result.data, {})) {\n result.data = void 0;\n }\n if (diff.complete) {\n // Similar to setting result.partial to false, but taking advantage of the\n // falsiness of missing fields.\n delete result.partial;\n // If the diff is complete, and we're using a FetchPolicy that\n // terminates after a complete cache read, we can assume the next result\n // we receive will have NetworkStatus.ready and !loading.\n if (diff.complete &&\n result.networkStatus === NetworkStatus.loading &&\n (fetchPolicy === \"cache-first\" || fetchPolicy === \"cache-only\")) {\n result.networkStatus = NetworkStatus.ready;\n result.loading = false;\n }\n }\n else {\n result.partial = true;\n }\n if (globalThis.__DEV__ !== false &&\n !diff.complete &&\n !this.options.partialRefetch &&\n !result.loading &&\n !result.data &&\n !result.error) {\n logMissingFieldErrors(diff.missing);\n }\n }\n if (saveAsLastResult) {\n this.updateLastResult(result);\n }\n return result;\n };\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult, variables) {\n if (!this.last) {\n return true;\n }\n var resultIsDifferent = this.queryManager.getDocumentInfo(this.query).hasNonreactiveDirective ?\n !equalByQuery(this.query, this.last.result, newResult, this.variables)\n : !equal(this.last.result, newResult);\n return (resultIsDifferent || (variables && !equal(this.last.variables, variables)));\n };\n ObservableQuery.prototype.getLast = function (key, variablesMustMatch) {\n var last = this.last;\n if (last &&\n last[key] &&\n (!variablesMustMatch || equal(last.variables, this.variables))) {\n return last[key];\n }\n };\n ObservableQuery.prototype.getLastResult = function (variablesMustMatch) {\n return this.getLast(\"result\", variablesMustMatch);\n };\n ObservableQuery.prototype.getLastError = function (variablesMustMatch) {\n return this.getLast(\"error\", variablesMustMatch);\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.last;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n this.queryManager.resetErrors(this.queryId);\n };\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n ObservableQuery.prototype.refetch = function (variables) {\n var _a;\n var reobserveOptions = {\n // Always disable polling for refetches.\n pollInterval: 0,\n };\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === \"cache-and-network\") {\n reobserveOptions.fetchPolicy = fetchPolicy;\n }\n else if (fetchPolicy === \"no-cache\") {\n reobserveOptions.fetchPolicy = \"no-cache\";\n }\n else {\n reobserveOptions.fetchPolicy = \"network-only\";\n }\n if (globalThis.__DEV__ !== false && variables && hasOwnProperty.call(variables, \"variables\")) {\n var queryDef = getQueryDefinition(this.query);\n var vars = queryDef.variableDefinitions;\n if (!vars || !vars.some(function (v) { return v.variable.name.value === \"variables\"; })) {\n globalThis.__DEV__ !== false && invariant.warn(\n 20,\n variables,\n ((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || queryDef\n );\n }\n }\n if (variables && !equal(this.options.variables, variables)) {\n // Update the existing options with new variables\n reobserveOptions.variables = this.options.variables = __assign(__assign({}, this.options.variables), variables);\n }\n this.queryInfo.resetLastWrite();\n return this.reobserve(reobserveOptions, NetworkStatus.refetch);\n };\n /**\n * A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).\n */\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : (__assign(__assign(__assign(__assign({}, this.options), { query: this.options.query }), fetchMoreOptions), { variables: __assign(__assign({}, this.options.variables), fetchMoreOptions.variables) })))), { \n // The fetchMore request goes immediately to the network and does\n // not automatically write its result to the cache (hence no-cache\n // instead of network-only), because we allow the caller of\n // fetchMore to provide an updateQuery callback that determines how\n // the data gets written to the cache.\n fetchPolicy: \"no-cache\" });\n combinedOptions.query = this.transformDocument(combinedOptions.query);\n var qid = this.queryManager.generateQueryId();\n // If a temporary query is passed to `fetchMore`, we don't want to store\n // it as the last query result since it may be an optimized query for\n // pagination. We will however run the transforms on the original document\n // as well as the document passed in `fetchMoreOptions` to ensure the cache\n // uses the most up-to-date document which may rely on runtime conditionals.\n this.lastQuery =\n fetchMoreOptions.query ?\n this.transformDocument(this.options.query)\n : combinedOptions.query;\n // Simulate a loading result for the original query with\n // result.networkStatus === NetworkStatus.fetchMore.\n var queryInfo = this.queryInfo;\n var originalNetworkStatus = queryInfo.networkStatus;\n queryInfo.networkStatus = NetworkStatus.fetchMore;\n if (combinedOptions.notifyOnNetworkStatusChange) {\n this.observe();\n }\n var updatedQuerySet = new Set();\n var updateQuery = fetchMoreOptions === null || fetchMoreOptions === void 0 ? void 0 : fetchMoreOptions.updateQuery;\n var isCached = this.options.fetchPolicy !== \"no-cache\";\n if (!isCached) {\n invariant(updateQuery, 21);\n }\n return this.queryManager\n .fetchQuery(qid, combinedOptions, NetworkStatus.fetchMore)\n .then(function (fetchMoreResult) {\n _this.queryManager.removeQuery(qid);\n if (queryInfo.networkStatus === NetworkStatus.fetchMore) {\n queryInfo.networkStatus = originalNetworkStatus;\n }\n if (isCached) {\n // Performing this cache update inside a cache.batch transaction ensures\n // any affected cache.watch watchers are notified at most once about any\n // updates. Most watchers will be using the QueryInfo class, which\n // responds to notifications by calling reobserveCacheFirst to deliver\n // fetchMore cache results back to this ObservableQuery.\n _this.queryManager.cache.batch({\n update: function (cache) {\n var updateQuery = fetchMoreOptions.updateQuery;\n if (updateQuery) {\n cache.updateQuery({\n query: _this.query,\n variables: _this.variables,\n returnPartialData: true,\n optimistic: false,\n }, function (previous) {\n return updateQuery(previous, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n });\n });\n }\n else {\n // If we're using a field policy instead of updateQuery, the only\n // thing we need to do is write the new data to the cache using\n // combinedOptions.variables (instead of this.variables, which is\n // what this.updateQuery uses, because it works by abusing the\n // original field value, keyed by the original variables).\n cache.writeQuery({\n query: combinedOptions.query,\n variables: combinedOptions.variables,\n data: fetchMoreResult.data,\n });\n }\n },\n onWatchUpdated: function (watch) {\n // Record the DocumentNode associated with any watched query whose\n // data were updated by the cache writes above.\n updatedQuerySet.add(watch.query);\n },\n });\n }\n else {\n // There is a possibility `lastResult` may not be set when\n // `fetchMore` is called which would cause this to crash. This should\n // only happen if we haven't previously reported a result. We don't\n // quite know what the right behavior should be here since this block\n // of code runs after the fetch result has executed on the network.\n // We plan to let it crash in the meantime.\n //\n // If we get bug reports due to the `data` property access on\n // undefined, this should give us a real-world scenario that we can\n // use to test against and determine the right behavior. If we do end\n // up changing this behavior, this may require, for example, an\n // adjustment to the types on `updateQuery` since that function\n // expects that the first argument always contains previous result\n // data, but not `undefined`.\n var lastResult = _this.getLast(\"result\");\n var data = updateQuery(lastResult.data, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n });\n _this.reportResult(__assign(__assign({}, lastResult), { data: data }), _this.variables);\n }\n return fetchMoreResult;\n })\n .finally(function () {\n // In case the cache writes above did not generate a broadcast\n // notification (which would have been intercepted by onWatchUpdated),\n // likely because the written data were the same as what was already in\n // the cache, we still want fetchMore to deliver its final loading:false\n // result with the unchanged data.\n if (isCached && !updatedQuerySet.has(_this.query)) {\n reobserveCacheFirst(_this);\n }\n });\n };\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n /**\n * A function that enables you to execute a [subscription](https://www.apollographql.com/docs/react/data/subscriptions/), usually to subscribe to specific fields that were included in the query.\n *\n * This function returns _another_ function that you can call to terminate the subscription.\n */\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n context: options.context,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables,\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n globalThis.__DEV__ !== false && invariant.error(22, err);\n },\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (newOptions) {\n return this.reobserve(newOptions);\n };\n ObservableQuery.prototype.silentSetOptions = function (newOptions) {\n var mergedOptions = compact(this.options, newOptions || {});\n assign(this.options, mergedOptions);\n };\n /**\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. Most users should prefer `refetch` instead of\n * `setVariables` in order to to be properly notified of results even when\n * they come from the cache.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @param variables - The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n ObservableQuery.prototype.setVariables = function (variables) {\n if (equal(this.variables, variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size ? this.result() : Promise.resolve();\n }\n this.options.variables = variables;\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.reobserve({\n // Reset options.fetchPolicy to its original value.\n fetchPolicy: this.options.initialFetchPolicy,\n variables: variables,\n }, NetworkStatus.setVariables);\n };\n /**\n * A function that enables you to update the query's cached result without executing a followup GraphQL operation.\n *\n * See [using updateQuery and updateFragment](https://www.apollographql.com/docs/react/caching/cache-interaction/#using-updatequery-and-updatefragment) for additional information.\n */\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var result = queryManager.cache.diff({\n query: this.options.query,\n variables: this.variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n var newResult = mapFn(result, {\n variables: this.variables,\n });\n if (newResult) {\n queryManager.cache.writeQuery({\n query: this.options.query,\n data: newResult,\n variables: this.variables,\n });\n queryManager.broadcastQueries();\n }\n };\n /**\n * A function that instructs the query to begin re-executing at a specified interval (in milliseconds).\n */\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n this.options.pollInterval = pollInterval;\n this.updatePolling();\n };\n /**\n * A function that instructs the query to stop polling after a previous call to `startPolling`.\n */\n ObservableQuery.prototype.stopPolling = function () {\n this.options.pollInterval = 0;\n this.updatePolling();\n };\n // Update options.fetchPolicy according to options.nextFetchPolicy.\n ObservableQuery.prototype.applyNextFetchPolicy = function (reason, \n // It's possible to use this method to apply options.nextFetchPolicy to\n // options.fetchPolicy even if options !== this.options, though that happens\n // most often when the options are temporary, used for only one request and\n // then thrown away, so nextFetchPolicy may not end up mattering.\n options) {\n if (options.nextFetchPolicy) {\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? \"cache-first\" : _a, _b = options.initialFetchPolicy, initialFetchPolicy = _b === void 0 ? fetchPolicy : _b;\n if (fetchPolicy === \"standby\") {\n // Do nothing, leaving options.fetchPolicy unchanged.\n }\n else if (typeof options.nextFetchPolicy === \"function\") {\n // When someone chooses \"cache-and-network\" or \"network-only\" as their\n // initial FetchPolicy, they often do not want future cache updates to\n // trigger unconditional network requests, which is what repeatedly\n // applying the \"cache-and-network\" or \"network-only\" policies would\n // seem to imply. Instead, when the cache reports an update after the\n // initial network request, it may be desirable for subsequent network\n // requests to be triggered only if the cache result is incomplete. To\n // that end, the options.nextFetchPolicy option provides an easy way to\n // update options.fetchPolicy after the initial network request, without\n // having to call observableQuery.setOptions.\n options.fetchPolicy = options.nextFetchPolicy(fetchPolicy, {\n reason: reason,\n options: options,\n observable: this,\n initialFetchPolicy: initialFetchPolicy,\n });\n }\n else if (reason === \"variables-changed\") {\n options.fetchPolicy = initialFetchPolicy;\n }\n else {\n options.fetchPolicy = options.nextFetchPolicy;\n }\n }\n return options.fetchPolicy;\n };\n ObservableQuery.prototype.fetch = function (options, newNetworkStatus, query) {\n // TODO Make sure we update the networkStatus (and infer fetchVariables)\n // before actually committing to the fetch.\n this.queryManager.setObservableQuery(this);\n return this.queryManager[\"fetchConcastWithInfo\"](this.queryId, options, newNetworkStatus, query);\n };\n // Turns polling on or off based on this.options.pollInterval.\n ObservableQuery.prototype.updatePolling = function () {\n var _this = this;\n // Avoid polling in SSR mode\n if (this.queryManager.ssrMode) {\n return;\n }\n var _a = this, pollingInfo = _a.pollingInfo, pollInterval = _a.options.pollInterval;\n if (!pollInterval || !this.hasObservers()) {\n if (pollingInfo) {\n clearTimeout(pollingInfo.timeout);\n delete this.pollingInfo;\n }\n return;\n }\n if (pollingInfo && pollingInfo.interval === pollInterval) {\n return;\n }\n invariant(pollInterval, 23);\n var info = pollingInfo || (this.pollingInfo = {});\n info.interval = pollInterval;\n var maybeFetch = function () {\n var _a, _b;\n if (_this.pollingInfo) {\n if (!isNetworkRequestInFlight(_this.queryInfo.networkStatus) &&\n !((_b = (_a = _this.options).skipPollAttempt) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n _this.reobserve({\n // Most fetchPolicy options don't make sense to use in a polling context, as\n // users wouldn't want to be polling the cache directly. However, network-only and\n // no-cache are both useful for when the user wants to control whether or not the\n // polled results are written to the cache.\n fetchPolicy: _this.options.initialFetchPolicy === \"no-cache\" ?\n \"no-cache\"\n : \"network-only\",\n }, NetworkStatus.poll).then(poll, poll);\n }\n else {\n poll();\n }\n }\n };\n var poll = function () {\n var info = _this.pollingInfo;\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n poll();\n };\n ObservableQuery.prototype.updateLastResult = function (newResult, variables) {\n if (variables === void 0) { variables = this.variables; }\n var error = this.getLastError();\n // Preserve this.last.error unless the variables have changed.\n if (error && this.last && !equal(variables, this.last.variables)) {\n error = void 0;\n }\n return (this.last = __assign({ result: this.queryManager.assumeImmutableResults ?\n newResult\n : cloneDeep(newResult), variables: variables }, (error ? { error: error } : null)));\n };\n ObservableQuery.prototype.reobserveAsConcast = function (newOptions, newNetworkStatus) {\n var _this = this;\n this.isTornDown = false;\n var useDisposableConcast = \n // Refetching uses a disposable Concast to allow refetches using different\n // options/variables, without permanently altering the options of the\n // original ObservableQuery.\n newNetworkStatus === NetworkStatus.refetch ||\n // The fetchMore method does not actually call the reobserve method, but,\n // if it did, it would definitely use a disposable Concast.\n newNetworkStatus === NetworkStatus.fetchMore ||\n // Polling uses a disposable Concast so the polling options (which force\n // fetchPolicy to be \"network-only\" or \"no-cache\") won't override the original options.\n newNetworkStatus === NetworkStatus.poll;\n // Save the old variables, since Object.assign may modify them below.\n var oldVariables = this.options.variables;\n var oldFetchPolicy = this.options.fetchPolicy;\n var mergedOptions = compact(this.options, newOptions || {});\n var options = useDisposableConcast ?\n // Disposable Concast fetches receive a shallow copy of this.options\n // (merged with newOptions), leaving this.options unmodified.\n mergedOptions\n : assign(this.options, mergedOptions);\n // Don't update options.query with the transformed query to avoid\n // overwriting this.options.query when we aren't using a disposable concast.\n // We want to ensure we can re-run the custom document transforms the next\n // time a request is made against the original query.\n var query = this.transformDocument(options.query);\n this.lastQuery = query;\n if (!useDisposableConcast) {\n // We can skip calling updatePolling if we're not changing this.options.\n this.updatePolling();\n // Reset options.fetchPolicy to its original value when variables change,\n // unless a new fetchPolicy was provided by newOptions.\n if (newOptions &&\n newOptions.variables &&\n !equal(newOptions.variables, oldVariables) &&\n // Don't mess with the fetchPolicy if it's currently \"standby\".\n options.fetchPolicy !== \"standby\" &&\n // If we're changing the fetchPolicy anyway, don't try to change it here\n // using applyNextFetchPolicy. The explicit options.fetchPolicy wins.\n (options.fetchPolicy === oldFetchPolicy ||\n // A `nextFetchPolicy` function has even higher priority, though,\n // so in that case `applyNextFetchPolicy` must be called.\n typeof options.nextFetchPolicy === \"function\")) {\n this.applyNextFetchPolicy(\"variables-changed\", options);\n if (newNetworkStatus === void 0) {\n newNetworkStatus = NetworkStatus.setVariables;\n }\n }\n }\n this.waitForOwnResult && (this.waitForOwnResult = skipCacheDataFor(options.fetchPolicy));\n var finishWaitingForOwnResult = function () {\n if (_this.concast === concast) {\n _this.waitForOwnResult = false;\n }\n };\n var variables = options.variables && __assign({}, options.variables);\n var _a = this.fetch(options, newNetworkStatus, query), concast = _a.concast, fromLink = _a.fromLink;\n var observer = {\n next: function (result) {\n if (equal(_this.variables, variables)) {\n finishWaitingForOwnResult();\n _this.reportResult(result, variables);\n }\n },\n error: function (error) {\n if (equal(_this.variables, variables)) {\n // Coming from `getResultsFromLink`, `error` here should always be an `ApolloError`.\n // However, calling `concast.cancel` can inject another type of error, so we have to\n // wrap it again here.\n if (!isApolloError(error)) {\n error = new ApolloError({ networkError: error });\n }\n finishWaitingForOwnResult();\n _this.reportError(error, variables);\n }\n },\n };\n if (!useDisposableConcast && (fromLink || !this.concast)) {\n // We use the {add,remove}Observer methods directly to avoid wrapping\n // observer with an unnecessary SubscriptionObserver object.\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n }\n this.concast = concast;\n this.observer = observer;\n }\n concast.addObserver(observer);\n return concast;\n };\n ObservableQuery.prototype.reobserve = function (newOptions, newNetworkStatus) {\n return this.reobserveAsConcast(newOptions, newNetworkStatus)\n .promise;\n };\n ObservableQuery.prototype.resubscribeAfterError = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // If `lastError` is set in the current when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore the last value afterwards so that the\n // subscription has a chance to stay open.\n var last = this.last;\n this.resetLastResults();\n var subscription = this.subscribe.apply(this, args);\n this.last = last;\n return subscription;\n };\n // (Re)deliver the current result to this.observers without applying fetch\n // policies or making network requests.\n ObservableQuery.prototype.observe = function () {\n this.reportResult(\n // Passing false is important so that this.getCurrentResult doesn't\n // save the fetchMore result as this.lastResult, causing it to be\n // ignored due to the this.isDifferentFromLastResult check in\n // this.reportResult.\n this.getCurrentResult(false), this.variables);\n };\n ObservableQuery.prototype.reportResult = function (result, variables) {\n var lastError = this.getLastError();\n var isDifferent = this.isDifferentFromLastResult(result, variables);\n // Update the last result even when isDifferentFromLastResult returns false,\n // because the query may be using the @nonreactive directive, and we want to\n // save the the latest version of any nonreactive subtrees (in case\n // getCurrentResult is called), even though we skip broadcasting changes.\n if (lastError || !result.partial || this.options.returnPartialData) {\n this.updateLastResult(result, variables);\n }\n if (lastError || isDifferent) {\n iterateObserversSafely(this.observers, \"next\", result);\n }\n };\n ObservableQuery.prototype.reportError = function (error, variables) {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n var errorResult = __assign(__assign({}, this.getLastResult()), { error: error, errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false });\n this.updateLastResult(errorResult, variables);\n iterateObserversSafely(this.observers, \"error\", (this.last.error = error));\n };\n ObservableQuery.prototype.hasObservers = function () {\n return this.observers.size > 0;\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n if (this.isTornDown)\n return;\n if (this.concast && this.observer) {\n this.concast.removeObserver(this.observer);\n delete this.concast;\n delete this.observer;\n }\n this.stopPolling();\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach(function (sub) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n this.queryManager.stopQuery(this.queryId);\n this.observers.clear();\n this.isTornDown = true;\n };\n ObservableQuery.prototype.transformDocument = function (document) {\n return this.queryManager.transform(document);\n };\n return ObservableQuery;\n}(Observable));\nexport { ObservableQuery };\n// Necessary because the ObservableQuery constructor has a different\n// signature than the Observable constructor.\nfixObservableSubclass(ObservableQuery);\n// Reobserve with fetchPolicy effectively set to \"cache-first\", triggering\n// delivery of any new data from the cache, possibly falling back to the network\n// if any cache data are missing. This allows _complete_ cache results to be\n// delivered without also kicking off unnecessary network requests when\n// this.options.fetchPolicy is \"cache-and-network\" or \"network-only\". When\n// this.options.fetchPolicy is any other policy (\"cache-first\", \"cache-only\",\n// \"standby\", or \"no-cache\"), we call this.reobserve() as usual.\nexport function reobserveCacheFirst(obsQuery) {\n var _a = obsQuery.options, fetchPolicy = _a.fetchPolicy, nextFetchPolicy = _a.nextFetchPolicy;\n if (fetchPolicy === \"cache-and-network\" || fetchPolicy === \"network-only\") {\n return obsQuery.reobserve({\n fetchPolicy: \"cache-first\",\n // Use a temporary nextFetchPolicy function that replaces itself with the\n // previous nextFetchPolicy value and returns the original fetchPolicy.\n nextFetchPolicy: function (currentFetchPolicy, context) {\n // Replace this nextFetchPolicy function in the options object with the\n // original this.options.nextFetchPolicy value.\n this.nextFetchPolicy = nextFetchPolicy;\n // If the original nextFetchPolicy value was a function, give it a\n // chance to decide what happens here.\n if (typeof this.nextFetchPolicy === \"function\") {\n return this.nextFetchPolicy(currentFetchPolicy, context);\n }\n // Otherwise go back to the original this.options.fetchPolicy.\n return fetchPolicy;\n },\n });\n }\n return obsQuery.reobserve();\n}\nfunction defaultSubscriptionObserverErrorCallback(error) {\n globalThis.__DEV__ !== false && invariant.error(24, error.message, error.stack);\n}\nexport function logMissingFieldErrors(missing) {\n if (globalThis.__DEV__ !== false && missing) {\n globalThis.__DEV__ !== false && invariant.debug(25, missing);\n }\n}\nfunction skipCacheDataFor(fetchPolicy /* `undefined` would mean `\"cache-first\"` */) {\n return (fetchPolicy === \"network-only\" ||\n fetchPolicy === \"no-cache\" ||\n fetchPolicy === \"standby\");\n}\n//# sourceMappingURL=ObservableQuery.js.map","import { __assign } from \"tslib\";\nimport { equal } from \"@wry/equality\";\nimport { DeepMerger } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/index.js\";\nimport { reobserveCacheFirst } from \"./ObservableQuery.js\";\nimport { isNonEmptyArray, graphQLResultHasError, canUseWeakMap, } from \"../utilities/index.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nvar destructiveMethodCounts = new (canUseWeakMap ? WeakMap : Map)();\nfunction wrapDestructiveCacheMethod(cache, methodName) {\n var original = cache[methodName];\n if (typeof original === \"function\") {\n // @ts-expect-error this is just too generic to be typed correctly\n cache[methodName] = function () {\n destructiveMethodCounts.set(cache, \n // The %1e15 allows the count to wrap around to 0 safely every\n // quadrillion evictions, so there's no risk of overflow. To be\n // clear, this is more of a pedantic principle than something\n // that matters in any conceivable practical scenario.\n (destructiveMethodCounts.get(cache) + 1) % 1e15);\n // @ts-expect-error this is just too generic to be typed correctly\n return original.apply(this, arguments);\n };\n }\n}\nfunction cancelNotifyTimeout(info) {\n if (info[\"notifyTimeout\"]) {\n clearTimeout(info[\"notifyTimeout\"]);\n info[\"notifyTimeout\"] = void 0;\n }\n}\n// A QueryInfo object represents a single query managed by the\n// QueryManager, which tracks all QueryInfo objects by queryId in its\n// this.queries Map. QueryInfo objects store the latest results and errors\n// for the given query, and are responsible for reporting those results to\n// the corresponding ObservableQuery, via the QueryInfo.notify method.\n// Results are reported asynchronously whenever setDiff marks the\n// QueryInfo object as dirty, though a call to the QueryManager's\n// broadcastQueries method may trigger the notification before it happens\n// automatically. This class used to be a simple interface type without\n// any field privacy or meaningful methods, which is why it still has so\n// many public fields. The effort to lock down and simplify the QueryInfo\n// interface is ongoing, and further improvements are welcome.\nvar QueryInfo = /** @class */ (function () {\n function QueryInfo(queryManager, queryId) {\n if (queryId === void 0) { queryId = queryManager.generateQueryId(); }\n this.queryId = queryId;\n this.listeners = new Set();\n this.document = null;\n this.lastRequestId = 1;\n this.stopped = false;\n this.dirty = false;\n this.observableQuery = null;\n var cache = (this.cache = queryManager.cache);\n // Track how often cache.evict is called, since we want eviction to\n // override the feud-stopping logic in the markResult method, by\n // causing shouldWrite to return true. Wrapping the cache.evict method\n // is a bit of a hack, but it saves us from having to make eviction\n // counting an official part of the ApolloCache API.\n if (!destructiveMethodCounts.has(cache)) {\n destructiveMethodCounts.set(cache, 0);\n wrapDestructiveCacheMethod(cache, \"evict\");\n wrapDestructiveCacheMethod(cache, \"modify\");\n wrapDestructiveCacheMethod(cache, \"reset\");\n }\n }\n QueryInfo.prototype.init = function (query) {\n var networkStatus = query.networkStatus || NetworkStatus.loading;\n if (this.variables &&\n this.networkStatus !== NetworkStatus.loading &&\n !equal(this.variables, query.variables)) {\n networkStatus = NetworkStatus.setVariables;\n }\n if (!equal(query.variables, this.variables)) {\n this.lastDiff = void 0;\n }\n Object.assign(this, {\n document: query.document,\n variables: query.variables,\n networkError: null,\n graphQLErrors: this.graphQLErrors || [],\n networkStatus: networkStatus,\n });\n if (query.observableQuery) {\n this.setObservableQuery(query.observableQuery);\n }\n if (query.lastRequestId) {\n this.lastRequestId = query.lastRequestId;\n }\n return this;\n };\n QueryInfo.prototype.reset = function () {\n cancelNotifyTimeout(this);\n this.dirty = false;\n };\n QueryInfo.prototype.resetDiff = function () {\n this.lastDiff = void 0;\n };\n QueryInfo.prototype.getDiff = function () {\n var options = this.getDiffOptions();\n if (this.lastDiff && equal(options, this.lastDiff.options)) {\n return this.lastDiff.diff;\n }\n this.updateWatch(this.variables);\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return { complete: false };\n }\n var diff = this.cache.diff(options);\n this.updateLastDiff(diff, options);\n return diff;\n };\n QueryInfo.prototype.updateLastDiff = function (diff, options) {\n this.lastDiff =\n diff ?\n {\n diff: diff,\n options: options || this.getDiffOptions(),\n }\n : void 0;\n };\n QueryInfo.prototype.getDiffOptions = function (variables) {\n var _a;\n if (variables === void 0) { variables = this.variables; }\n return {\n query: this.document,\n variables: variables,\n returnPartialData: true,\n optimistic: true,\n canonizeResults: (_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.options.canonizeResults,\n };\n };\n QueryInfo.prototype.setDiff = function (diff) {\n var _this = this;\n var _a;\n var oldDiff = this.lastDiff && this.lastDiff.diff;\n // If we are trying to deliver an incomplete cache result, we avoid\n // reporting it if the query has errored, otherwise we let the broadcast try\n // and repair the partial result by refetching the query. This check avoids\n // a situation where a query that errors and another succeeds with\n // overlapping data does not report the partial data result to the errored\n // query.\n //\n // See https://github.com/apollographql/apollo-client/issues/11400 for more\n // information on this issue.\n if (diff && !diff.complete && ((_a = this.observableQuery) === null || _a === void 0 ? void 0 : _a.getLastError())) {\n return;\n }\n this.updateLastDiff(diff);\n if (!this.dirty && !equal(oldDiff && oldDiff.result, diff && diff.result)) {\n this.dirty = true;\n if (!this.notifyTimeout) {\n this.notifyTimeout = setTimeout(function () { return _this.notify(); }, 0);\n }\n }\n };\n QueryInfo.prototype.setObservableQuery = function (oq) {\n var _this = this;\n if (oq === this.observableQuery)\n return;\n if (this.oqListener) {\n this.listeners.delete(this.oqListener);\n }\n this.observableQuery = oq;\n if (oq) {\n oq[\"queryInfo\"] = this;\n this.listeners.add((this.oqListener = function () {\n var diff = _this.getDiff();\n if (diff.fromOptimisticTransaction) {\n // If this diff came from an optimistic transaction, deliver the\n // current cache data to the ObservableQuery, but don't perform a\n // reobservation, since oq.reobserveCacheFirst might make a network\n // request, and we never want to trigger network requests in the\n // middle of optimistic updates.\n oq[\"observe\"]();\n }\n else {\n // Otherwise, make the ObservableQuery \"reobserve\" the latest data\n // using a temporary fetch policy of \"cache-first\", so complete cache\n // results have a chance to be delivered without triggering additional\n // network requests, even when options.fetchPolicy is \"network-only\"\n // or \"cache-and-network\". All other fetch policies are preserved by\n // this method, and are handled by calling oq.reobserve(). If this\n // reobservation is spurious, isDifferentFromLastResult still has a\n // chance to catch it before delivery to ObservableQuery subscribers.\n reobserveCacheFirst(oq);\n }\n }));\n }\n else {\n delete this.oqListener;\n }\n };\n QueryInfo.prototype.notify = function () {\n var _this = this;\n cancelNotifyTimeout(this);\n if (this.shouldNotify()) {\n this.listeners.forEach(function (listener) { return listener(_this); });\n }\n this.dirty = false;\n };\n QueryInfo.prototype.shouldNotify = function () {\n if (!this.dirty || !this.listeners.size) {\n return false;\n }\n if (isNetworkRequestInFlight(this.networkStatus) && this.observableQuery) {\n var fetchPolicy = this.observableQuery.options.fetchPolicy;\n if (fetchPolicy !== \"cache-only\" && fetchPolicy !== \"cache-and-network\") {\n return false;\n }\n }\n return true;\n };\n QueryInfo.prototype.stop = function () {\n if (!this.stopped) {\n this.stopped = true;\n // Cancel the pending notify timeout\n this.reset();\n this.cancel();\n // Revert back to the no-op version of cancel inherited from\n // QueryInfo.prototype.\n this.cancel = QueryInfo.prototype.cancel;\n var oq = this.observableQuery;\n if (oq)\n oq.stopPolling();\n }\n };\n // This method is a no-op by default, until/unless overridden by the\n // updateWatch method.\n QueryInfo.prototype.cancel = function () { };\n QueryInfo.prototype.updateWatch = function (variables) {\n var _this = this;\n if (variables === void 0) { variables = this.variables; }\n var oq = this.observableQuery;\n if (oq && oq.options.fetchPolicy === \"no-cache\") {\n return;\n }\n var watchOptions = __assign(__assign({}, this.getDiffOptions(variables)), { watcher: this, callback: function (diff) { return _this.setDiff(diff); } });\n if (!this.lastWatch || !equal(watchOptions, this.lastWatch)) {\n this.cancel();\n this.cancel = this.cache.watch((this.lastWatch = watchOptions));\n }\n };\n QueryInfo.prototype.resetLastWrite = function () {\n this.lastWrite = void 0;\n };\n QueryInfo.prototype.shouldWrite = function (result, variables) {\n var lastWrite = this.lastWrite;\n return !(lastWrite &&\n // If cache.evict has been called since the last time we wrote this\n // data into the cache, there's a chance writing this result into\n // the cache will repair what was evicted.\n lastWrite.dmCount === destructiveMethodCounts.get(this.cache) &&\n equal(variables, lastWrite.variables) &&\n equal(result.data, lastWrite.result.data));\n };\n QueryInfo.prototype.markResult = function (result, document, options, cacheWriteBehavior) {\n var _this = this;\n var merger = new DeepMerger();\n var graphQLErrors = isNonEmptyArray(result.errors) ? result.errors.slice(0) : [];\n // Cancel the pending notify timeout (if it exists) to prevent extraneous network\n // requests. To allow future notify timeouts, diff and dirty are reset as well.\n this.reset();\n if (\"incremental\" in result && isNonEmptyArray(result.incremental)) {\n var mergedData = mergeIncrementalData(this.getDiff().result, result);\n result.data = mergedData;\n // Detect the first chunk of a deferred query and merge it with existing\n // cache data. This ensures a `cache-first` fetch policy that returns\n // partial cache data or a `cache-and-network` fetch policy that already\n // has full data in the cache does not complain when trying to merge the\n // initial deferred server data with existing cache data.\n }\n else if (\"hasNext\" in result && result.hasNext) {\n var diff = this.getDiff();\n result.data = merger.merge(diff.result, result.data);\n }\n this.graphQLErrors = graphQLErrors;\n if (options.fetchPolicy === \"no-cache\") {\n this.updateLastDiff({ result: result.data, complete: true }, this.getDiffOptions(options.variables));\n }\n else if (cacheWriteBehavior !== 0 /* CacheWriteBehavior.FORBID */) {\n if (shouldWriteResult(result, options.errorPolicy)) {\n // Using a transaction here so we have a chance to read the result\n // back from the cache before the watch callback fires as a result\n // of writeQuery, so we can store the new diff quietly and ignore\n // it when we receive it redundantly from the watch callback.\n this.cache.performTransaction(function (cache) {\n if (_this.shouldWrite(result, options.variables)) {\n cache.writeQuery({\n query: document,\n data: result.data,\n variables: options.variables,\n overwrite: cacheWriteBehavior === 1 /* CacheWriteBehavior.OVERWRITE */,\n });\n _this.lastWrite = {\n result: result,\n variables: options.variables,\n dmCount: destructiveMethodCounts.get(_this.cache),\n };\n }\n else {\n // If result is the same as the last result we received from\n // the network (and the variables match too), avoid writing\n // result into the cache again. The wisdom of skipping this\n // cache write is far from obvious, since any cache write\n // could be the one that puts the cache back into a desired\n // state, fixing corruption or missing data. However, if we\n // always write every network result into the cache, we enable\n // feuds between queries competing to update the same data in\n // incompatible ways, which can lead to an endless cycle of\n // cache broadcasts and useless network requests. As with any\n // feud, eventually one side must step back from the brink,\n // letting the other side(s) have the last word(s). There may\n // be other points where we could break this cycle, such as\n // silencing the broadcast for cache.writeQuery (not a good\n // idea, since it just delays the feud a bit) or somehow\n // avoiding the network request that just happened (also bad,\n // because the server could return useful new data). All\n // options considered, skipping this cache write seems to be\n // the least damaging place to break the cycle, because it\n // reflects the intuition that we recently wrote this exact\n // result into the cache, so the cache *should* already/still\n // contain this data. If some other query has clobbered that\n // data in the meantime, that's too bad, but there will be no\n // winners if every query blindly reverts to its own version\n // of the data. This approach also gives the network a chance\n // to return new data, which will be written into the cache as\n // usual, notifying only those queries that are directly\n // affected by the cache updates, as usual. In the future, an\n // even more sophisticated cache could perhaps prevent or\n // mitigate the clobbering somehow, but that would make this\n // particular cache write even less important, and thus\n // skipping it would be even safer than it is today.\n if (_this.lastDiff && _this.lastDiff.diff.complete) {\n // Reuse data from the last good (complete) diff that we\n // received, when possible.\n result.data = _this.lastDiff.diff.result;\n return;\n }\n // If the previous this.diff was incomplete, fall through to\n // re-reading the latest data with cache.diff, below.\n }\n var diffOptions = _this.getDiffOptions(options.variables);\n var diff = cache.diff(diffOptions);\n // In case the QueryManager stops this QueryInfo before its\n // results are delivered, it's important to avoid restarting the\n // cache watch when markResult is called. We also avoid updating\n // the watch if we are writing a result that doesn't match the current\n // variables to avoid race conditions from broadcasting the wrong\n // result.\n if (!_this.stopped && equal(_this.variables, options.variables)) {\n // Any time we're about to update this.diff, we need to make\n // sure we've started watching the cache.\n _this.updateWatch(options.variables);\n }\n // If we're allowed to write to the cache, and we can read a\n // complete result from the cache, update result.data to be the\n // result from the cache, rather than the raw network result.\n // Set without setDiff to avoid triggering a notify call, since\n // we have other ways of notifying for this result.\n _this.updateLastDiff(diff, diffOptions);\n if (diff.complete) {\n result.data = diff.result;\n }\n });\n }\n else {\n this.lastWrite = void 0;\n }\n }\n };\n QueryInfo.prototype.markReady = function () {\n this.networkError = null;\n return (this.networkStatus = NetworkStatus.ready);\n };\n QueryInfo.prototype.markError = function (error) {\n this.networkStatus = NetworkStatus.error;\n this.lastWrite = void 0;\n this.reset();\n if (error.graphQLErrors) {\n this.graphQLErrors = error.graphQLErrors;\n }\n if (error.networkError) {\n this.networkError = error.networkError;\n }\n return error;\n };\n return QueryInfo;\n}());\nexport { QueryInfo };\nexport function shouldWriteResult(result, errorPolicy) {\n if (errorPolicy === void 0) { errorPolicy = \"none\"; }\n var ignoreErrors = errorPolicy === \"ignore\" || errorPolicy === \"all\";\n var writeWithErrors = !graphQLResultHasError(result);\n if (!writeWithErrors && ignoreErrors && result.data) {\n writeWithErrors = true;\n }\n return writeWithErrors;\n}\n//# sourceMappingURL=QueryInfo.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant, newInvariantError } from \"../utilities/globals/index.js\";\nimport { equal } from \"@wry/equality\";\nimport { execute } from \"../link/core/index.js\";\nimport { hasDirectives, isExecutionPatchIncrementalResult, isExecutionPatchResult, removeDirectivesFromDocument, } from \"../utilities/index.js\";\nimport { canonicalStringify } from \"../cache/index.js\";\nimport { getDefaultValues, getOperationDefinition, getOperationName, hasClientExports, graphQLResultHasError, getGraphQLErrorsFromResult, Observable, asyncMap, isNonEmptyArray, Concast, makeUniqueId, isDocumentNode, isNonNullObject, DocumentTransform, } from \"../utilities/index.js\";\nimport { mergeIncrementalData } from \"../utilities/common/incrementalResult.js\";\nimport { ApolloError, isApolloError, graphQLResultHasProtocolErrors, } from \"../errors/index.js\";\nimport { ObservableQuery, logMissingFieldErrors } from \"./ObservableQuery.js\";\nimport { NetworkStatus, isNetworkRequestInFlight } from \"./networkStatus.js\";\nimport { QueryInfo, shouldWriteResult, } from \"./QueryInfo.js\";\nimport { PROTOCOL_ERRORS_SYMBOL } from \"../errors/index.js\";\nimport { print } from \"../utilities/index.js\";\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar IGNORE = Object.create(null);\nimport { Trie } from \"@wry/trie\";\nimport { AutoCleanedWeakCache, cacheSizes } from \"../utilities/index.js\";\nvar QueryManager = /** @class */ (function () {\n function QueryManager(options) {\n var _this = this;\n this.clientAwareness = {};\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n this.queries = new Map();\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n this.fetchCancelFns = new Map();\n this.transformCache = new AutoCleanedWeakCache(cacheSizes[\"queryManager.getDocumentInfo\"] ||\n 2000 /* defaultCacheSizes[\"queryManager.getDocumentInfo\"] */);\n this.queryIdCounter = 1;\n this.requestIdCounter = 1;\n this.mutationIdCounter = 1;\n // Use protected instead of private field so\n // @apollo/experimental-nextjs-app-support can access type info.\n this.inFlightLinkObservables = new Trie(false);\n var defaultDocumentTransform = new DocumentTransform(function (document) { return _this.cache.transformDocument(document); }, \n // Allow the apollo cache to manage its own transform caches\n { cache: false });\n this.cache = options.cache;\n this.link = options.link;\n this.defaultOptions = options.defaultOptions;\n this.queryDeduplication = options.queryDeduplication;\n this.clientAwareness = options.clientAwareness;\n this.localState = options.localState;\n this.ssrMode = options.ssrMode;\n this.assumeImmutableResults = options.assumeImmutableResults;\n var documentTransform = options.documentTransform;\n this.documentTransform =\n documentTransform ?\n defaultDocumentTransform\n .concat(documentTransform)\n // The custom document transform may add new fragment spreads or new\n // field selections, so we want to give the cache a chance to run\n // again. For example, the InMemoryCache adds __typename to field\n // selections and fragments from the fragment registry.\n .concat(defaultDocumentTransform)\n : defaultDocumentTransform;\n this.defaultContext = options.defaultContext || Object.create(null);\n if ((this.onBroadcast = options.onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n QueryManager.prototype.stop = function () {\n var _this = this;\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.cancelPendingFetches(newInvariantError(26));\n };\n QueryManager.prototype.cancelPendingFetches = function (error) {\n this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });\n this.fetchCancelFns.clear();\n };\n QueryManager.prototype.mutate = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var mutationId, hasClientExports, mutationStoreValue, isOptimistic, self;\n var _c, _d;\n var mutation = _b.mutation, variables = _b.variables, optimisticResponse = _b.optimisticResponse, updateQueries = _b.updateQueries, _e = _b.refetchQueries, refetchQueries = _e === void 0 ? [] : _e, _f = _b.awaitRefetchQueries, awaitRefetchQueries = _f === void 0 ? false : _f, updateWithProxyFn = _b.update, onQueryUpdated = _b.onQueryUpdated, _g = _b.fetchPolicy, fetchPolicy = _g === void 0 ? ((_c = this.defaultOptions.mutate) === null || _c === void 0 ? void 0 : _c.fetchPolicy) || \"network-only\" : _g, _h = _b.errorPolicy, errorPolicy = _h === void 0 ? ((_d = this.defaultOptions.mutate) === null || _d === void 0 ? void 0 : _d.errorPolicy) || \"none\" : _h, keepRootFields = _b.keepRootFields, context = _b.context;\n return __generator(this, function (_j) {\n switch (_j.label) {\n case 0:\n invariant(mutation, 27);\n invariant(fetchPolicy === \"network-only\" || fetchPolicy === \"no-cache\", 28);\n mutationId = this.generateMutationId();\n mutation = this.cache.transformForLink(this.transform(mutation));\n hasClientExports = this.getDocumentInfo(mutation).hasClientExports;\n variables = this.getVariables(mutation, variables);\n if (!hasClientExports) return [3 /*break*/, 2];\n return [4 /*yield*/, this.localState.addExportedVariables(mutation, variables, context)];\n case 1:\n variables = (_j.sent());\n _j.label = 2;\n case 2:\n mutationStoreValue = this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation: mutation,\n variables: variables,\n loading: true,\n error: null,\n });\n isOptimistic = optimisticResponse &&\n this.markMutationOptimistic(optimisticResponse, {\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n updateQueries: updateQueries,\n update: updateWithProxyFn,\n keepRootFields: keepRootFields,\n });\n this.broadcastQueries();\n self = this;\n return [2 /*return*/, new Promise(function (resolve, reject) {\n return asyncMap(self.getObservableFromLink(mutation, __assign(__assign({}, context), { optimisticResponse: isOptimistic ? optimisticResponse : void 0 }), variables, {}, false), function (result) {\n if (graphQLResultHasError(result) && errorPolicy === \"none\") {\n throw new ApolloError({\n graphQLErrors: getGraphQLErrorsFromResult(result),\n });\n }\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n var storeResult = __assign({}, result);\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n if (errorPolicy === \"ignore\" && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n return self.markMutationResult({\n mutationId: mutationId,\n result: storeResult,\n document: mutation,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n context: context,\n update: updateWithProxyFn,\n updateQueries: updateQueries,\n awaitRefetchQueries: awaitRefetchQueries,\n refetchQueries: refetchQueries,\n removeOptimistic: isOptimistic ? mutationId : void 0,\n onQueryUpdated: onQueryUpdated,\n keepRootFields: keepRootFields,\n });\n }).subscribe({\n next: function (storeResult) {\n self.broadcastQueries();\n // Since mutations might receive multiple payloads from the\n // ApolloLink chain (e.g. when used with @defer),\n // we resolve with a SingleExecutionResult or after the final\n // ExecutionPatchResult has arrived and we have assembled the\n // multipart response into a single result.\n if (!(\"hasNext\" in storeResult) || storeResult.hasNext === false) {\n resolve(storeResult);\n }\n },\n error: function (err) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n if (isOptimistic) {\n self.cache.removeOptimistic(mutationId);\n }\n self.broadcastQueries();\n reject(err instanceof ApolloError ? err : (new ApolloError({\n networkError: err,\n })));\n },\n });\n })];\n }\n });\n });\n };\n QueryManager.prototype.markMutationResult = function (mutation, cache) {\n var _this = this;\n if (cache === void 0) { cache = this.cache; }\n var result = mutation.result;\n var cacheWrites = [];\n var skipCache = mutation.fetchPolicy === \"no-cache\";\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n if (!isExecutionPatchIncrementalResult(result)) {\n cacheWrites.push({\n result: result.data,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n if (isExecutionPatchIncrementalResult(result) &&\n isNonEmptyArray(result.incremental)) {\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n var mergedData = void 0;\n if (diff.result) {\n mergedData = mergeIncrementalData(diff.result, result);\n }\n if (typeof mergedData !== \"undefined\") {\n // cast the ExecutionPatchResult to FetchResult here since\n // ExecutionPatchResult never has `data` when returned from the server\n result.data = mergedData;\n cacheWrites.push({\n result: mergedData,\n dataId: \"ROOT_MUTATION\",\n query: mutation.document,\n variables: mutation.variables,\n });\n }\n }\n var updateQueries_1 = mutation.updateQueries;\n if (updateQueries_1) {\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n var queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries_1, queryName)) {\n return;\n }\n var updater = updateQueries_1[queryName];\n var _b = _this.queries.get(queryId), document = _b.document, variables = _b.variables;\n // Read the current query result from the store.\n var _c = cache.diff({\n query: document,\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _c.result, complete = _c.complete;\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n var nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: (document && getOperationName(document)) || void 0,\n queryVariables: variables,\n });\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: \"ROOT_QUERY\",\n query: document,\n variables: variables,\n });\n }\n }\n });\n }\n }\n if (cacheWrites.length > 0 ||\n (mutation.refetchQueries || \"\").length > 0 ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic) {\n var results_1 = [];\n this.refetchQueries({\n updateCache: function (cache) {\n if (!skipCache) {\n cacheWrites.forEach(function (write) { return cache.write(write); });\n }\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n var update = mutation.update;\n // Determine whether result is a SingleExecutionResult,\n // or the final ExecutionPatchResult.\n var isFinalResult = !isExecutionPatchResult(result) ||\n (isExecutionPatchIncrementalResult(result) && !result.hasNext);\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n var diff = cache.diff({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: _this.getDocumentInfo(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n if (diff.complete) {\n result = __assign(__assign({}, result), { data: diff.result });\n if (\"incremental\" in result) {\n delete result.incremental;\n }\n if (\"hasNext\" in result) {\n delete result.hasNext;\n }\n }\n }\n // If we've received the whole response,\n // either a SingleExecutionResult or the final ExecutionPatchResult,\n // call the update function.\n if (isFinalResult) {\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n }\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields && isFinalResult) {\n cache.modify({\n id: \"ROOT_MUTATION\",\n fields: function (value, _a) {\n var fieldName = _a.fieldName, DELETE = _a.DELETE;\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n include: mutation.refetchQueries,\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n }).forEach(function (result) { return results_1.push(result); });\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results_1).then(function () { return result; });\n }\n }\n return Promise.resolve(result);\n };\n QueryManager.prototype.markMutationOptimistic = function (optimisticResponse, mutation) {\n var _this = this;\n var data = typeof optimisticResponse === \"function\" ?\n optimisticResponse(mutation.variables, { IGNORE: IGNORE })\n : optimisticResponse;\n if (data === IGNORE) {\n return false;\n }\n this.cache.recordOptimisticTransaction(function (cache) {\n try {\n _this.markMutationResult(__assign(__assign({}, mutation), { result: { data: data } }), cache);\n }\n catch (error) {\n globalThis.__DEV__ !== false && invariant.error(error);\n }\n }, mutation.mutationId);\n return true;\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, networkStatus) {\n return this.fetchConcastWithInfo(queryId, options, networkStatus).concast\n .promise;\n };\n QueryManager.prototype.getQueryStore = function () {\n var store = Object.create(null);\n this.queries.forEach(function (info, queryId) {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n };\n QueryManager.prototype.resetErrors = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n };\n QueryManager.prototype.transform = function (document) {\n return this.documentTransform.transformDocument(document);\n };\n QueryManager.prototype.getDocumentInfo = function (document) {\n var transformCache = this.transformCache;\n if (!transformCache.has(document)) {\n var cacheEntry = {\n // TODO These three calls (hasClientExports, shouldForceResolvers, and\n // usesNonreactiveDirective) are performing independent full traversals\n // of the transformed document. We should consider merging these\n // traversals into a single pass in the future, though the work is\n // cached after the first time.\n hasClientExports: hasClientExports(document),\n hasForcedResolvers: this.localState.shouldForceResolvers(document),\n hasNonreactiveDirective: hasDirectives([\"nonreactive\"], document),\n clientQuery: this.localState.clientQuery(document),\n serverQuery: removeDirectivesFromDocument([\n { name: \"client\", remove: true },\n { name: \"connection\" },\n { name: \"nonreactive\" },\n ], document),\n defaultVars: getDefaultValues(getOperationDefinition(document)),\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: __assign(__assign({}, document), { definitions: document.definitions.map(function (def) {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return __assign(__assign({}, def), { operation: \"query\" });\n }\n return def;\n }) }),\n };\n transformCache.set(document, cacheEntry);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.getDocumentInfo(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options) {\n var query = this.transform(options.query);\n // assign variable default values if supplied\n // NOTE: We don't modify options.query here with the transformed query to\n // ensure observable.options.query is set to the raw untransformed query.\n options = __assign(__assign({}, options), { variables: this.getVariables(query, options.variables) });\n if (typeof options.notifyOnNetworkStatusChange === \"undefined\") {\n options.notifyOnNetworkStatusChange = false;\n }\n var queryInfo = new QueryInfo(this);\n var observable = new ObservableQuery({\n queryManager: this,\n queryInfo: queryInfo,\n options: options,\n });\n observable[\"lastQuery\"] = query;\n this.queries.set(observable.queryId, queryInfo);\n // We give queryInfo the transformed query to ensure the first cache diff\n // uses the transformed query instead of the raw query\n queryInfo.init({\n document: query,\n observableQuery: observable,\n variables: observable.variables,\n });\n return observable;\n };\n QueryManager.prototype.query = function (options, queryId) {\n var _this = this;\n if (queryId === void 0) { queryId = this.generateQueryId(); }\n invariant(options.query, 29);\n invariant(options.query.kind === \"Document\", 30);\n invariant(!options.returnPartialData, 31);\n invariant(!options.pollInterval, 32);\n return this.fetchQuery(queryId, __assign(__assign({}, options), { query: this.transform(options.query) })).finally(function () { return _this.stopQuery(queryId); });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.queryIdCounter++);\n };\n QueryManager.prototype.generateRequestId = function () {\n return this.requestIdCounter++;\n };\n QueryManager.prototype.generateMutationId = function () {\n return String(this.mutationIdCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n var queryInfo = this.queries.get(queryId);\n if (queryInfo)\n queryInfo.stop();\n };\n QueryManager.prototype.clearStore = function (options) {\n if (options === void 0) { options = {\n discardWatches: true,\n }; }\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(newInvariantError(33));\n this.queries.forEach(function (queryInfo) {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n }\n else {\n queryInfo.stop();\n }\n });\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n // begin removing data from the store\n return this.cache.reset(options);\n };\n QueryManager.prototype.getObservableQueries = function (include) {\n var _this = this;\n if (include === void 0) { include = \"active\"; }\n var queries = new Map();\n var queryNamesAndDocs = new Map();\n var legacyQueryOptions = new Set();\n if (Array.isArray(include)) {\n include.forEach(function (desc) {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n }\n else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(_this.transform(desc), false);\n }\n else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n this.queries.forEach(function (_a, queryId) {\n var oq = _a.observableQuery, document = _a.document;\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n var queryName = oq.queryName, fetchPolicy = oq.options.fetchPolicy;\n if (fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())) {\n return;\n }\n if (include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))) {\n queries.set(queryId, oq);\n if (queryName)\n queryNamesAndDocs.set(queryName, true);\n if (document)\n queryNamesAndDocs.set(document, true);\n }\n }\n });\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach(function (options) {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n var queryId = makeUniqueId(\"legacyOneTimeQuery\");\n var queryInfo = _this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n var oq = new ObservableQuery({\n queryManager: _this,\n queryInfo: queryInfo,\n options: __assign(__assign({}, options), { fetchPolicy: \"network-only\" }),\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n if (globalThis.__DEV__ !== false && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach(function (included, nameOrDoc) {\n if (!included) {\n globalThis.__DEV__ !== false && invariant.warn(typeof nameOrDoc === \"string\" ? 34 : 35, nameOrDoc);\n }\n });\n }\n return queries;\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) { includeStandby = false; }\n var observableQueryPromises = [];\n this.getObservableQueries(includeStandby ? \"all\" : \"active\").forEach(function (observableQuery, queryId) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" && fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.getQuery(queryId).setDiff(null);\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.setObservableQuery = function (observableQuery) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query, fetchPolicy = _a.fetchPolicy, _b = _a.errorPolicy, errorPolicy = _b === void 0 ? \"none\" : _b, variables = _a.variables, _c = _a.context, context = _c === void 0 ? {} : _c, _d = _a.extensions, extensions = _d === void 0 ? {} : _d;\n query = this.transform(query);\n variables = this.getVariables(query, variables);\n var makeObservable = function (variables) {\n return _this.getObservableFromLink(query, context, variables, extensions).map(function (result) {\n if (fetchPolicy !== \"no-cache\") {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n _this.cache.write({\n query: query,\n result: result.data,\n dataId: \"ROOT_SUBSCRIPTION\",\n variables: variables,\n });\n }\n _this.broadcastQueries();\n }\n var hasErrors = graphQLResultHasError(result);\n var hasProtocolErrors = graphQLResultHasProtocolErrors(result);\n if (hasErrors || hasProtocolErrors) {\n var errors = {};\n if (hasErrors) {\n errors.graphQLErrors = result.errors;\n }\n if (hasProtocolErrors) {\n errors.protocolErrors = result.extensions[PROTOCOL_ERRORS_SYMBOL];\n }\n // `errorPolicy` is a mechanism for handling GraphQL errors, according\n // to our documentation, so we throw protocol errors regardless of the\n // set error policy.\n if (errorPolicy === \"none\" || hasProtocolErrors) {\n throw new ApolloError(errors);\n }\n }\n if (errorPolicy === \"ignore\") {\n delete result.errors;\n }\n return result;\n });\n };\n if (this.getDocumentInfo(query).hasClientExports) {\n var observablePromise_1 = this.localState\n .addExportedVariables(query, variables, context)\n .then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) { return (sub = observable.subscribe(observer)); }, observer.error);\n return function () { return sub && sub.unsubscribe(); };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n if (this.queries.has(queryId)) {\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n };\n QueryManager.prototype.broadcastQueries = function () {\n if (this.onBroadcast)\n this.onBroadcast();\n this.queries.forEach(function (info) { return info.notify(); });\n };\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, extensions, \n // Prefer context.queryDeduplication if specified.\n deduplication) {\n var _this = this;\n var _a;\n if (deduplication === void 0) { deduplication = (_a = context === null || context === void 0 ? void 0 : context.queryDeduplication) !== null && _a !== void 0 ? _a : this.queryDeduplication; }\n var observable;\n var _b = this.getDocumentInfo(query), serverQuery = _b.serverQuery, clientQuery = _b.clientQuery;\n if (serverQuery) {\n var _c = this, inFlightLinkObservables_1 = _c.inFlightLinkObservables, link = _c.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n extensions: extensions,\n };\n context = operation.context;\n if (deduplication) {\n var printedServerQuery_1 = print(serverQuery);\n var varJson_1 = canonicalStringify(variables);\n var entry = inFlightLinkObservables_1.lookup(printedServerQuery_1, varJson_1);\n observable = entry.observable;\n if (!observable) {\n var concast = new Concast([\n execute(link, operation),\n ]);\n observable = entry.observable = concast;\n concast.beforeNext(function () {\n inFlightLinkObservables_1.remove(printedServerQuery_1, varJson_1);\n });\n }\n }\n else {\n observable = new Concast([\n execute(link, operation),\n ]);\n }\n }\n else {\n observable = new Concast([Observable.of({ data: {} })]);\n context = this.prepareContext(context);\n }\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables,\n });\n });\n }\n return observable;\n };\n QueryManager.prototype.getResultsFromLink = function (queryInfo, cacheWriteBehavior, options) {\n var requestId = (queryInfo.lastRequestId = this.generateRequestId());\n // Performing transformForLink here gives this.cache a chance to fill in\n // missing fragment definitions (for example) before sending this document\n // through the link chain.\n var linkDocument = this.cache.transformForLink(options.query);\n return asyncMap(this.getObservableFromLink(linkDocument, options.context, options.variables), function (result) {\n var graphQLErrors = getGraphQLErrorsFromResult(result);\n var hasErrors = graphQLErrors.length > 0;\n var errorPolicy = options.errorPolicy;\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: graphQLErrors,\n }));\n }\n // Use linkDocument rather than queryInfo.document so the\n // operation/fragments used to write the result are the same as the\n // ones used to obtain it from the link.\n queryInfo.markResult(result, linkDocument, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n var aqr = {\n data: result.data,\n loading: false,\n networkStatus: NetworkStatus.ready,\n };\n // In the case we start multiple network requests simulatenously, we\n // want to ensure we properly set `data` if we're reporting on an old\n // result which will not be caught by the conditional above that ends up\n // throwing the markError result.\n if (hasErrors && errorPolicy === \"none\") {\n aqr.data = void 0;\n }\n if (hasErrors && errorPolicy !== \"ignore\") {\n aqr.errors = graphQLErrors;\n aqr.networkStatus = NetworkStatus.error;\n }\n return aqr;\n }, function (networkError) {\n var error = isApolloError(networkError) ? networkError : (new ApolloError({ networkError: networkError }));\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n throw error;\n });\n };\n QueryManager.prototype.fetchConcastWithInfo = function (queryId, options, \n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus, query) {\n var _this = this;\n if (networkStatus === void 0) { networkStatus = NetworkStatus.loading; }\n if (query === void 0) { query = options.query; }\n var variables = this.getVariables(query, options.variables);\n var queryInfo = this.getQuery(queryId);\n var defaults = this.defaultOptions.watchQuery;\n var _a = options.fetchPolicy, fetchPolicy = _a === void 0 ? (defaults && defaults.fetchPolicy) || \"cache-first\" : _a, _b = options.errorPolicy, errorPolicy = _b === void 0 ? (defaults && defaults.errorPolicy) || \"none\" : _b, _c = options.returnPartialData, returnPartialData = _c === void 0 ? false : _c, _d = options.notifyOnNetworkStatusChange, notifyOnNetworkStatusChange = _d === void 0 ? false : _d, _e = options.context, context = _e === void 0 ? {} : _e;\n var normalized = Object.assign({}, options, {\n query: query,\n variables: variables,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n returnPartialData: returnPartialData,\n notifyOnNetworkStatusChange: notifyOnNetworkStatusChange,\n context: context,\n });\n var fromVariables = function (variables) {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n var sourcesWithInfo = _this.fetchQueryByPolicy(queryInfo, normalized, networkStatus);\n if (\n // If we're in standby, postpone advancing options.fetchPolicy using\n // applyNextFetchPolicy.\n normalized.fetchPolicy !== \"standby\" &&\n // The \"standby\" policy currently returns [] from fetchQueryByPolicy, so\n // this is another way to detect when nothing was done/fetched.\n sourcesWithInfo.sources.length > 0 &&\n queryInfo.observableQuery) {\n queryInfo.observableQuery[\"applyNextFetchPolicy\"](\"after-fetch\", options);\n }\n return sourcesWithInfo;\n };\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n var cleanupCancelFn = function () { return _this.fetchCancelFns.delete(queryId); };\n this.fetchCancelFns.set(queryId, function (reason) {\n cleanupCancelFn();\n // This delay ensures the concast variable has been initialized.\n setTimeout(function () { return concast.cancel(reason); });\n });\n var concast, containsDataFromLink;\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n if (this.getDocumentInfo(normalized.query).hasClientExports) {\n concast = new Concast(this.localState\n .addExportedVariables(normalized.query, normalized.variables, normalized.context)\n .then(fromVariables)\n .then(function (sourcesWithInfo) { return sourcesWithInfo.sources; }));\n // there is just no way we can synchronously get the *right* value here,\n // so we will assume `true`, which is the behaviour before the bug fix in\n // #10597. This means that bug is not fixed in that case, and is probably\n // un-fixable with reasonable effort for the edge case of @export as\n // directives.\n containsDataFromLink = true;\n }\n else {\n var sourcesWithInfo = fromVariables(normalized.variables);\n containsDataFromLink = sourcesWithInfo.fromLink;\n concast = new Concast(sourcesWithInfo.sources);\n }\n concast.promise.then(cleanupCancelFn, cleanupCancelFn);\n return {\n concast: concast,\n fromLink: containsDataFromLink,\n };\n };\n QueryManager.prototype.refetchQueries = function (_a) {\n var _this = this;\n var updateCache = _a.updateCache, include = _a.include, _b = _a.optimistic, optimistic = _b === void 0 ? false : _b, _c = _a.removeOptimistic, removeOptimistic = _c === void 0 ? optimistic ? makeUniqueId(\"refetchQueries\") : void 0 : _c, onQueryUpdated = _a.onQueryUpdated;\n var includedQueriesById = new Map();\n if (include) {\n this.getObservableQueries(include).forEach(function (oq, queryId) {\n includedQueriesById.set(queryId, {\n oq: oq,\n lastDiff: _this.getQuery(queryId).getDiff(),\n });\n });\n }\n var results = new Map();\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: (optimistic && removeOptimistic) || false,\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic: removeOptimistic,\n onWatchUpdated: function (watch, diff, lastDiff) {\n var oq = watch.watcher instanceof QueryInfo && watch.watcher.observableQuery;\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n var result = onQueryUpdated(oq, diff, lastDiff);\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(oq, result);\n }\n // Allow the default cache broadcast to happen, except when\n // onQueryUpdated returns false.\n return result;\n }\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });\n }\n }\n },\n });\n }\n if (includedQueriesById.size) {\n includedQueriesById.forEach(function (_a, queryId) {\n var oq = _a.oq, lastDiff = _a.lastDiff, diff = _a.diff;\n var result;\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n var info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n if (result !== false) {\n results.set(oq, result);\n }\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n _this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n return results;\n };\n QueryManager.prototype.fetchQueryByPolicy = function (queryInfo, _a, \n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus) {\n var _this = this;\n var query = _a.query, variables = _a.variables, fetchPolicy = _a.fetchPolicy, refetchWritePolicy = _a.refetchWritePolicy, errorPolicy = _a.errorPolicy, returnPartialData = _a.returnPartialData, context = _a.context, notifyOnNetworkStatusChange = _a.notifyOnNetworkStatusChange;\n var oldNetworkStatus = queryInfo.networkStatus;\n queryInfo.init({\n document: query,\n variables: variables,\n networkStatus: networkStatus,\n });\n var readCache = function () { return queryInfo.getDiff(); };\n var resultsFromCache = function (diff, networkStatus) {\n if (networkStatus === void 0) { networkStatus = queryInfo.networkStatus || NetworkStatus.loading; }\n var data = diff.result;\n if (globalThis.__DEV__ !== false && !returnPartialData && !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n var fromData = function (data) {\n return Observable.of(__assign({ data: data, loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus }, (diff.complete ? null : { partial: true })));\n };\n if (data && _this.getDocumentInfo(query).hasForcedResolvers) {\n return _this.localState\n .runResolvers({\n document: query,\n remoteResult: { data: data },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true,\n })\n .then(function (resolved) { return fromData(resolved.data || void 0); });\n }\n // Resolves https://github.com/apollographql/apollo-client/issues/10317.\n // If errorPolicy is 'none' and notifyOnNetworkStatusChange is true,\n // data was incorrectly returned from the cache on refetch:\n // if diff.missing exists, we should not return cache data.\n if (errorPolicy === \"none\" &&\n networkStatus === NetworkStatus.refetch &&\n Array.isArray(diff.missing)) {\n return fromData(void 0);\n }\n return fromData(data);\n };\n var cacheWriteBehavior = fetchPolicy === \"no-cache\" ? 0 /* CacheWriteBehavior.FORBID */\n // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n : (networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\") ?\n 1 /* CacheWriteBehavior.OVERWRITE */\n : 2 /* CacheWriteBehavior.MERGE */;\n var resultsFromLink = function () {\n return _this.getResultsFromLink(queryInfo, cacheWriteBehavior, {\n query: query,\n variables: variables,\n context: context,\n fetchPolicy: fetchPolicy,\n errorPolicy: errorPolicy,\n });\n };\n var shouldNotify = notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n switch (fetchPolicy) {\n default:\n case \"cache-first\": {\n var diff = readCache();\n if (diff.complete) {\n return {\n fromLink: false,\n sources: [resultsFromCache(diff, queryInfo.markReady())],\n };\n }\n if (returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-and-network\": {\n var diff = readCache();\n if (diff.complete || returnPartialData || shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(diff), resultsFromLink()],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n }\n case \"cache-only\":\n return {\n fromLink: false,\n sources: [resultsFromCache(readCache(), queryInfo.markReady())],\n };\n case \"network-only\":\n if (shouldNotify) {\n return {\n fromLink: true,\n sources: [resultsFromCache(readCache()), resultsFromLink()],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"no-cache\":\n if (shouldNotify) {\n return {\n fromLink: true,\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n sources: [resultsFromCache(queryInfo.getDiff()), resultsFromLink()],\n };\n }\n return { fromLink: true, sources: [resultsFromLink()] };\n case \"standby\":\n return { fromLink: false, sources: [] };\n }\n };\n QueryManager.prototype.getQuery = function (queryId) {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId);\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign(__assign({}, this.defaultContext), newContext), { clientAwareness: this.clientAwareness });\n };\n return QueryManager;\n}());\nexport { QueryManager };\n//# sourceMappingURL=QueryManager.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { invariant } from \"../utilities/globals/index.js\";\nimport { visit, BREAK, isSelectionNode } from \"graphql\";\nimport { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from \"../utilities/index.js\";\nimport { cacheSlot } from \"../cache/index.js\";\nvar LocalState = /** @class */ (function () {\n function LocalState(_a) {\n var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n this.selectionsToResolveCache = new WeakMap();\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n }\n else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n LocalState.prototype.runResolvers = function (_a) {\n return __awaiter(this, arguments, void 0, function (_b) {\n var document = _b.document, remoteResult = _b.remoteResult, context = _b.context, variables = _b.variables, _c = _b.onlyRunForcedResolvers, onlyRunForcedResolvers = _c === void 0 ? false : _c;\n return __generator(this, function (_d) {\n if (document) {\n return [2 /*return*/, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n }\n return [2 /*return*/, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives([\"client\"], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n };\n // Server queries are stripped of all @client based selection sets.\n LocalState.prototype.serverQuery = function (document) {\n return removeClientSetsFromDocument(document);\n };\n LocalState.prototype.prepareContext = function (context) {\n var cache = this.cache;\n return __assign(__assign({}, context), { cache: cache, \n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey: function (obj) {\n return cache.identify(obj);\n } });\n };\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n LocalState.prototype.addExportedVariables = function (document_1) {\n return __awaiter(this, arguments, void 0, function (document, variables, context) {\n if (variables === void 0) { variables = {}; }\n if (context === void 0) { context = {}; }\n return __generator(this, function (_a) {\n if (document) {\n return [2 /*return*/, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n }\n return [2 /*return*/, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === \"client\" && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === \"always\" &&\n arg.value.kind === \"BooleanValue\" &&\n arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n };\n // Query the cache and return matching data.\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n };\n LocalState.prototype.resolveDocument = function (document_1, rootValue_1) {\n return __awaiter(this, arguments, void 0, function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;\n if (context === void 0) { context = {}; }\n if (variables === void 0) { variables = {}; }\n if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ?\n definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : \"Query\";\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), { cache: cache, client: client }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n selectionsToResolve: selectionsToResolve,\n onlyRunForcedResolvers: onlyRunForcedResolvers,\n };\n isClientFieldDescendant = false;\n return [2 /*return*/, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({\n result: result,\n exportedVariables: execContext.exportedVariables,\n }); })];\n });\n });\n };\n LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!isClientFieldDescendant &&\n !execContext.selectionsToResolve.has(selection)) {\n // Skip selections without @client directives\n // (still processing if one of the ancestors or one of the child fields has @client directive)\n return [2 /*return*/];\n }\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return [2 /*return*/];\n }\n if (isField(selection)) {\n return [2 /*return*/, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== \"undefined\") {\n resultsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, 18, selection.name.value);\n }\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2 /*return*/, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n return [2 /*return*/];\n });\n }); };\n return [2 /*return*/, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n var _this = this;\n return __generator(this, function (_a) {\n if (!rootValue) {\n return [2 /*return*/, null];\n }\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (!execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(\n // In case the resolve function accesses reactive variables,\n // set cacheSlot to the current cache instance.\n cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field: field, fragmentMap: execContext.fragmentMap },\n ]));\n }\n }\n }\n return [2 /*return*/, resultPromise.then(function (result) {\n var _a, _b;\n if (result === void 0) { result = defaultResult; }\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === \"export\" && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === \"as\" && arg.value.kind === \"StringValue\") {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === \"client\"; })) !== null && _b !== void 0 ? _b : false;\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n }\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n }\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n }\n }));\n };\n // Collect selection nodes on paths from document root down to all @client directives.\n // This function takes into account transitive fragment spreads.\n // Complexity equals to a single `visit` over the full document.\n LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {\n var isSingleASTNode = function (node) { return !Array.isArray(node); };\n var selectionsToResolveCache = this.selectionsToResolveCache;\n function collectByDefinition(definitionNode) {\n if (!selectionsToResolveCache.has(definitionNode)) {\n var matches_1 = new Set();\n selectionsToResolveCache.set(definitionNode, matches_1);\n visit(definitionNode, {\n Directive: function (node, _, __, ___, ancestors) {\n if (node.name.value === \"client\") {\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n }\n },\n FragmentSpread: function (spread, _, __, ___, ancestors) {\n var fragment = fragmentMap[spread.name.value];\n invariant(fragment, 19, spread.name.value);\n var fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n // Fragment for this spread contains @client directive (either directly or transitively)\n // Collect selection nodes on paths from the root down to fields with the @client directive\n ancestors.forEach(function (node) {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches_1.add(node);\n }\n });\n matches_1.add(spread);\n fragmentSelections.forEach(function (selection) {\n matches_1.add(selection);\n });\n }\n },\n });\n }\n return selectionsToResolveCache.get(definitionNode);\n }\n return collectByDefinition(mainDefinition);\n };\n return LocalState;\n}());\nexport { LocalState };\n//# sourceMappingURL=LocalState.js.map","import { __assign } from \"tslib\";\nimport { invariant, newInvariantError } from \"../utilities/globals/index.js\";\nimport { ApolloLink, execute } from \"../link/core/index.js\";\nimport { version } from \"../version.js\";\nimport { HttpLink } from \"../link/http/index.js\";\nimport { QueryManager } from \"./QueryManager.js\";\nimport { LocalState } from \"./LocalState.js\";\nvar hasSuggestedDevtools = false;\n// Though mergeOptions now resides in @apollo/client/utilities, it was\n// previously declared and exported from this module, and then reexported from\n// @apollo/client/core. Since we need to preserve that API anyway, the easiest\n// solution is to reexport mergeOptions where it was previously declared (here).\nimport { mergeOptions } from \"../utilities/index.js\";\nimport { getApolloClientMemoryInternals } from \"../utilities/caching/getMemoryInternals.js\";\nexport { mergeOptions };\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over an `ApolloLink` instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through `Observable` instances.\n */\nvar ApolloClient = /** @class */ (function () {\n /**\n * Constructs an instance of `ApolloClient`.\n *\n * @example\n * ```js\n * import { ApolloClient, InMemoryCache } from '@apollo/client';\n *\n * const cache = new InMemoryCache();\n *\n * const client = new ApolloClient({\n * // Provide required constructor fields\n * cache: cache,\n * uri: 'http://localhost:4000/',\n *\n * // Provide some optional constructor fields\n * name: 'react-web-client',\n * version: '1.3',\n * queryDeduplication: false,\n * defaultOptions: {\n * watchQuery: {\n * fetchPolicy: 'cache-and-network',\n * },\n * },\n * });\n * ```\n */\n function ApolloClient(options) {\n var _this = this;\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n if (!options.cache) {\n throw newInvariantError(15);\n }\n var uri = options.uri, credentials = options.credentials, headers = options.headers, cache = options.cache, documentTransform = options.documentTransform, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, \n // Expose the client instance as window.__APOLLO_CLIENT__ and call\n // onBroadcast in queryManager.broadcastQueries to enable browser\n // devtools, but disable them by default in production.\n connectToDevTools = options.connectToDevTools, _c = options.queryDeduplication, queryDeduplication = _c === void 0 ? true : _c, defaultOptions = options.defaultOptions, defaultContext = options.defaultContext, _d = options.assumeImmutableResults, assumeImmutableResults = _d === void 0 ? cache.assumeImmutableResults : _d, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version, devtools = options.devtools;\n var link = options.link;\n if (!link) {\n link =\n uri ? new HttpLink({ uri: uri, credentials: credentials, headers: headers }) : ApolloLink.empty();\n }\n this.link = link;\n this.cache = cache;\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || Object.create(null);\n this.typeDefs = typeDefs;\n this.devtoolsConfig = __assign(__assign({}, devtools), { enabled: (devtools === null || devtools === void 0 ? void 0 : devtools.enabled) || connectToDevTools });\n if (this.devtoolsConfig.enabled === undefined) {\n this.devtoolsConfig.enabled = globalThis.__DEV__ !== false;\n }\n if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.watchFragment = this.watchFragment.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher,\n });\n this.queryManager = new QueryManager({\n cache: this.cache,\n link: this.link,\n defaultOptions: this.defaultOptions,\n defaultContext: defaultContext,\n documentTransform: documentTransform,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: this.devtoolsConfig.enabled ?\n function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.getQueryStore(),\n mutations: _this.queryManager.mutationStore || {},\n },\n dataWithOptimisticResults: _this.cache.extract(true),\n });\n }\n }\n : void 0,\n });\n if (this.devtoolsConfig.enabled)\n this.connectToDevTools();\n }\n ApolloClient.prototype.connectToDevTools = function () {\n if (typeof window === \"undefined\") {\n return;\n }\n var windowWithDevTools = window;\n var devtoolsSymbol = Symbol.for(\"apollo.devtools\");\n (windowWithDevTools[devtoolsSymbol] =\n windowWithDevTools[devtoolsSymbol] || []).push(this);\n windowWithDevTools.__APOLLO_CLIENT__ = this;\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && globalThis.__DEV__ !== false) {\n hasSuggestedDevtools = true;\n if (window.document &&\n window.top === window.self &&\n /^(https?|file):$/.test(window.location.protocol)) {\n setTimeout(function () {\n if (!window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__) {\n var nav = window.navigator;\n var ua = nav && nav.userAgent;\n var url = void 0;\n if (typeof ua === \"string\") {\n if (ua.indexOf(\"Chrome/\") > -1) {\n url =\n \"https://chrome.google.com/webstore/detail/\" +\n \"apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm\";\n }\n else if (ua.indexOf(\"Firefox/\") > -1) {\n url =\n \"https://addons.mozilla.org/en-US/firefox/addon/apollo-developer-tools/\";\n }\n }\n if (url) {\n globalThis.__DEV__ !== false && invariant.log(\"Download the Apollo DevTools for a better development \" +\n \"experience: %s\", url);\n }\n }\n }, 10000);\n }\n }\n };\n Object.defineProperty(ApolloClient.prototype, \"documentTransform\", {\n /**\n * The `DocumentTransform` used to modify GraphQL documents before a request\n * is made. If a custom `DocumentTransform` is not provided, this will be the\n * default document transform.\n */\n get: function () {\n return this.queryManager.documentTransform;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an `ObservableQuery`. We can subscribe to this `ObservableQuery` and\n * receive updated results through an observer when the cache store changes.\n *\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifier, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = mergeOptions(this.defaultOptions.watchQuery, options);\n }\n // XXX Overwriting options is probably not the best way to do this long term...\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === \"network-only\" ||\n options.fetchPolicy === \"cache-and-network\")) {\n options = __assign(__assign({}, options), { fetchPolicy: \"cache-first\" });\n }\n return this.queryManager.watchQuery(options);\n };\n /**\n * This resolves a single query according to the options specified and\n * returns a `Promise` which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options - An object of type `QueryOptions` that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = mergeOptions(this.defaultOptions.query, options);\n }\n invariant(options.fetchPolicy !== \"cache-and-network\", 16);\n if (this.disableNetworkFetches && options.fetchPolicy === \"network-only\") {\n options = __assign(__assign({}, options), { fetchPolicy: \"cache-first\" });\n }\n return this.queryManager.query(options);\n };\n /**\n * This resolves a single mutation according to the options specified and returns a\n * Promise which is either resolved with the resulting data or rejected with an\n * error. In some cases both `data` and `errors` might be undefined, for example\n * when `errorPolicy` is set to `'ignore'`.\n *\n * It takes options as an object with the following keys and values:\n */\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = mergeOptions(this.defaultOptions.mutate, options);\n }\n return this.queryManager.mutate(options);\n };\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * `Observable` which either emits received data or an error.\n */\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic - Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readQuery(options, optimistic);\n };\n /**\n * Watches the cache store of the fragment according to the options specified\n * and returns an `Observable`. We can subscribe to this\n * `Observable` and receive updated results through an\n * observer when the cache store changes.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @since 3.10.0\n * @param options - An object of type `WatchFragmentOptions` that allows\n * the cache to identify the fragment and optionally specify whether to react\n * to optimistic updates.\n */\n ApolloClient.prototype.watchFragment = function (options) {\n return this.cache.watchFragment(options);\n };\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic - Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readFragment(options, optimistic);\n };\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n ApolloClient.prototype.writeQuery = function (options) {\n var ref = this.cache.writeQuery(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n ApolloClient.prototype.writeFragment = function (options) {\n var ref = this.cache.writeFragment(options);\n if (options.broadcast !== false) {\n this.queryManager.broadcastQueries();\n }\n return ref;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () {\n return _this.queryManager.clearStore({\n discardWatches: false,\n });\n })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () { return _this.reFetchObservableQueries(); });\n };\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () {\n return _this.queryManager.clearStore({\n discardWatches: true,\n });\n })\n .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n };\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n /**\n * Refetches specified active queries. Similar to \"reFetchObservableQueries()\" but with a specific list of queries.\n *\n * `refetchQueries()` is useful for use cases to imperatively refresh a selection of queries.\n *\n * It is important to remember that `refetchQueries()` *will* refetch specified active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n ApolloClient.prototype.refetchQueries = function (options) {\n var map = this.queryManager.refetchQueries(options);\n var queries = [];\n var results = [];\n map.forEach(function (result, obsQuery) {\n queries.push(obsQuery);\n results.push(result);\n });\n var result = Promise.all(results);\n // In case you need the raw results immediately, without awaiting\n // Promise.all(results):\n result.queries = queries;\n result.results = results;\n // If you decide to ignore the result Promise because you're using\n // result.queries and result.results instead, you shouldn't have to worry\n // about preventing uncaught rejections for the Promise.all result.\n result.catch(function (error) {\n globalThis.__DEV__ !== false && invariant.debug(17, error);\n });\n return result;\n };\n /**\n * Get all currently active `ObservableQuery` objects, in a `Map` keyed by\n * query ID strings.\n *\n * An \"active\" query is one that has observers and a `fetchPolicy` other than\n * \"standby\" or \"cache-only\".\n *\n * You can include all `ObservableQuery` objects (including the inactive ones)\n * by passing \"all\" instead of \"active\", or you can include just a subset of\n * active queries by passing an array of query names or DocumentNode objects.\n */\n ApolloClient.prototype.getObservableQueries = function (include) {\n if (include === void 0) { include = \"active\"; }\n return this.queryManager.getObservableQueries(include);\n };\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n /**\n * Add additional local resolvers.\n */\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n /**\n * Set (override existing) local resolvers.\n */\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n /**\n * Get all registered local resolvers.\n */\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n /**\n * Set a custom local state fragment matcher.\n */\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n /**\n * Define a new ApolloLink (or link chain) that Apollo Client will use.\n */\n ApolloClient.prototype.setLink = function (newLink) {\n this.link = this.queryManager.link = newLink;\n };\n Object.defineProperty(ApolloClient.prototype, \"defaultContext\", {\n get: function () {\n return this.queryManager.defaultContext;\n },\n enumerable: false,\n configurable: true\n });\n return ApolloClient;\n}());\nexport { ApolloClient };\nif (globalThis.__DEV__ !== false) {\n ApolloClient.prototype.getMemoryInternals = getApolloClientMemoryInternals;\n}\n//# sourceMappingURL=ApolloClient.js.map","import { __rest } from \"tslib\";\nimport { ApolloLink } from \"../core/index.js\";\nimport { Observable } from \"../../utilities/index.js\";\nexport function setContext(setter) {\n return new ApolloLink(function (operation, forward) {\n var request = __rest(operation, []);\n return new Observable(function (observer) {\n var handle;\n var closed = false;\n Promise.resolve(request)\n .then(function (req) { return setter(req, operation.getContext()); })\n .then(operation.setContext)\n .then(function () {\n // if the observer is already closed, no need to subscribe.\n if (closed)\n return;\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n return function () {\n closed = true;\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { invariant } from \"../../utilities/globals/index.js\";\nimport * as React from \"rehackt\";\nimport { getApolloContext } from \"./ApolloContext.js\";\nexport var ApolloProvider = function (_a) {\n var client = _a.client, children = _a.children;\n var ApolloContext = getApolloContext();\n var parentContext = React.useContext(ApolloContext);\n var context = React.useMemo(function () {\n return __assign(__assign({}, parentContext), { client: client || parentContext.client });\n }, [parentContext, client]);\n invariant(context.client, 47);\n return (React.createElement(ApolloContext.Provider, { value: context }, children));\n};\n//# sourceMappingURL=ApolloProvider.js.map","/* eslint-disable no-console */\nimport { HttpLink } from \"@apollo/client/link/http\";\nimport { ApolloClient, ApolloLink } from \"@apollo/client/core\";\nimport { setContext } from \"@apollo/client/link/context\";\nimport { onError } from \"@apollo/client/link/error\";\nimport cache from \"./cache\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { getSession } from \"store/currentUser/currentUserSelector\";\nimport { currentUserActions } from \"store/currentUser/currentUserSlice\";\nimport React, { useMemo } from \"react\";\nimport { ApolloProvider } from \"@apollo/client/react/context\";\nimport { useFragment, useMutation, useApolloClient, useQuery, useLazyQuery, useSuspenseQuery } from \"@apollo/client/react/hooks\";\n\nconst errorLink = onError(({ graphQLErrors, networkError, operation }) => {\n console.log(\n `[GraphQL error]: Operation: ${\n operation.operationName\n }, variables: ${JSON.stringify(operation.variables)}`\n );\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path }) =>\n console.log(\n `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`\n )\n );\n if (networkError) console.error(`[Network error]: ${networkError}`);\n});\n\n// Handles the Apollo client, as well as refretching access tokens to use the API\nexport function ApolloWrapper({ children }: { children: React.ReactNode }) {\n const dispatch = useDispatch();\n\n // Get tokens from Redux store\n const session = useSelector(getSession);\n\n // Function to refresh the access token using the refresh token\n const refreshAccessTokenIfNeeded = async () => {\n try {\n const response = await fetch('/api/token', { method: 'POST' });\n const data = await response.json();\n\n // Update the Redux store with the new access token\n dispatch(currentUserActions.refreshAccessToken({token: data.jwt, expiresAt: data.expiresAt })); // Update Redux store with the new access token\n return data.jwt;\n } catch (error) {\n console.error('Error refreshing access token:', error);\n }\n };\n\n // Check if the access token is about to expire\n const isTokenExpiringSoon = () => {\n const currentTime = Math.floor(Date.now() / 1000); // Current time in seconds\n return session.expiresAt - currentTime < 300; // Refresh if less than 5 minutes left\n };\n\n // Dynamically update the Authorization header on every request\n const authLink = setContext(async (_, { headers }) => {\n // Get the latest token from Redux\n // Or fetch a new token and use that\n let latestToken = session.jwt;\n // Refresh the token if it's about to expire\n if (isTokenExpiringSoon()) {\n latestToken = await refreshAccessTokenIfNeeded();\n }\n\n return {\n headers: {\n ...headers,\n Authorization: latestToken ? `Bearer ${latestToken}` : '',\n },\n };\n });\n\n // Create the Apollo Client only once\n const client = useMemo(() => {\n const httpLink = new HttpLink({\n uri: import.meta.env.VITE_GRAPHQL_URL\n });\n\n const links = [authLink, httpLink];\n if (import.meta.env.VITE_ENV === 'development') {\n links.unshift(errorLink);\n }\n return new ApolloClient({\n link: ApolloLink.from(links),\n connectToDevTools: true,\n cache,\n });\n }, [session?.jwt, session?.expiresAt]); // Apollo Client is only created once\n\n return (\n \n {children}\n \n );\n}\n\nexport { useFragment, useMutation, useQuery, useApolloClient, useSuspenseQuery, useLazyQuery, ApolloClient };","import { ComponentTheme } from \"hardcover-ui/types/base\";\n\nexport type BadgeThemeProps = {\n variant: \"accent\" | \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"ghost\";\n size: \"sm\" | \"md\" | \"lg\";\n};\n\nconst badgeBaseStyles = \"font-semibold whitespace-nowrap\";\n\nexport const badgeTheme: ComponentTheme = {\n variant: {\n primary: `${badgeBaseStyles} bg-indigo-600 text-white`,\n accent: `${badgeBaseStyles} bg-yellow-400 text-yellow-900`,\n secondary: `${badgeBaseStyles} bg-gray-200 dark:bg-gray-600 text-gray-900 dark:text-gray-300`,\n success: `${badgeBaseStyles} bg-green-100 text-green-600 dark:bg-green-600 dark:text-white`,\n warning: `${badgeBaseStyles} bg-red-500 text-red-50`,\n ghost: `${badgeBaseStyles} bg-gray-400 dark:bg-gray-700 text-gray-600 dark:text-gray-500`,\n },\n size: {\n sm: \"rounded-lg text-xs px-1 py-0.5\",\n md: \"rounded-lg text-sm px-1 py-0.5\",\n lg: \"rounded-lg text-base px-1.5 py-1\",\n },\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport classNames from \"lib/classNames\";\nimport {\n badgeTheme,\n BadgeThemeProps,\n} from \"hardcover-ui/theme/components/badge\";\nimport { forwardRef, HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype Props = {\n size?: BadgeThemeProps[\"size\"];\n variant?: BadgeThemeProps[\"variant\"];\n className?: string;\n} & Partial>;\n\nconst Badge = forwardRef>(\n ({ size = \"md\", variant = \"active\", children, className, ...rest }, ref) => {\n const finalClassName = classNames(\n badgeTheme.variant[variant],\n badgeTheme.size?.[size],\n className\n );\n\n const props = {\n ref,\n className: finalClassName,\n ...rest,\n };\n\n return {children};\n }\n);\n\nexport default Badge;\n","/*! Capacitor: https://capacitorjs.com/ - MIT License */\nconst createCapacitorPlatforms = (win) => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', { name: 'web' });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: { name: 'web' },\n platforms: defaultPlatformMap,\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = (name) => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = (win) => (win.CapacitorPlatforms = createCapacitorPlatforms(win));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst CapacitorPlatforms = /*#__PURE__*/ initPlatforms((typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst setPlatform = CapacitorPlatforms.setPlatform;\n\nconst legacyRegisterWebPlugin = (cap, webPlugin) => {\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!(config === null || config === void 0 ? void 0 : config.name)) {\n // TODO: add link to upgrade guide\n throw new Error(`Capacitor WebPlugin is using the deprecated \"registerWebPlugin()\" function, but without the config. Please use \"registerPlugin()\" instead to register this web plugin.\"`);\n }\n // TODO: add link to upgrade guide\n console.warn(`Capacitor plugin \"${config.name}\" is using the deprecated \"registerWebPlugin()\" function`);\n if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) {\n // Add the web plugin into the plugins registry if there already isn't\n // an existing one. If it doesn't already exist, that means\n // there's no existing native implementation for it.\n // - OR -\n // If we already have a plugin registered (meaning it was defined in the native layer),\n // then we should only overwrite it if the corresponding web plugin activates on\n // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS\n Plugins[config.name] = webPlugin;\n }\n};\n\nvar ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nclass CapacitorException extends Error {\n constructor(message, code, data) {\n super(message);\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\nconst getPlatformId = (win) => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n }\n else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n }\n else {\n return 'web';\n }\n};\n\nconst createCapacitor = (win) => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = (cap.Plugins = cap.Plugins || {});\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null\n ? capCustomPlatform.name\n : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = (pluginName) => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) ||\n defaultIsPluginAvailable;\n const defaultGetPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName); };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = (err) => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation =\n typeof jsImplementations[platform] === 'function'\n ? (jsImplementation = await jsImplementations[platform]())\n : (jsImplementation = jsImplementations[platform]);\n }\n else if (capCustomPlatform !== null &&\n !jsImplementation &&\n 'web' in jsImplementations) {\n jsImplementation =\n typeof jsImplementations['web'] === 'function'\n ? (jsImplementation = await jsImplementations['web']())\n : (jsImplementation = jsImplementations['web']);\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n }\n else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n }\n else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n }\n else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n }\n else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = (prop) => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n }\n else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false,\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({ eventName }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId,\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({ remove })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n },\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([\n ...Object.keys(jsImplementations),\n ...(pluginHeader ? [platform] : []),\n ]),\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nconst initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n\nconst Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {});\nconst registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nconst Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nconst registerWebPlugin = (plugin) => legacyRegisterWebPlugin(Capacitor, plugin);\n\n/**\n * Base class web plugins should extend.\n */\nclass WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.retainedEventArguments = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n let firstListener = false;\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n firstListener = true;\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n if (firstListener) {\n this.sendRetainedArgumentsForEvent(eventName);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({ remove });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data, retainUntilConsumed) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n if (retainUntilConsumed) {\n let args = this.retainedEventArguments[eventName];\n if (!args) {\n args = [];\n }\n args.push(data);\n this.retainedEventArguments[eventName] = args;\n }\n return;\n }\n listeners.forEach(listener => listener(data));\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n },\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n sendRetainedArgumentsForEvent(eventName) {\n const args = this.retainedEventArguments[eventName];\n if (!args) {\n return;\n }\n delete this.retainedEventArguments[eventName];\n args.forEach(arg => {\n this.notifyListeners(eventName, arg);\n });\n }\n}\n\nconst WebView = /*#__PURE__*/ registerPlugin('WebView');\n/******** END WEB VIEW PLUGIN ********/\n/******** COOKIES PLUGIN ********/\n/**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */\nconst encode = (str) => encodeURIComponent(str)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */\nconst decode = (str) => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nclass CapacitorCookiesPluginWeb extends WebPlugin {\n async getCookies() {\n const cookies = document.cookie;\n const cookieMap = {};\n cookies.split(';').forEach(cookie => {\n if (cookie.length <= 0)\n return;\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n let [key, value] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\n key = decode(key).trim();\n value = decode(value).trim();\n cookieMap[key] = value;\n });\n return cookieMap;\n }\n async setCookie(options) {\n try {\n // Safely Encoded Key/Value\n const encodedKey = encode(options.key);\n const encodedValue = encode(options.value);\n // Clean & sanitize options\n const expires = `; expires=${(options.expires || '').replace('expires=', '')}`; // Default is \"; expires=\"\n const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\n const domain = options.url != null && options.url.length > 0\n ? `domain=${options.url}`\n : '';\n document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}; ${domain};`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async deleteCookie(options) {\n try {\n document.cookie = `${options.key}=; Max-Age=0`;\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearCookies() {\n try {\n const cookies = document.cookie.split(';') || [];\n for (const cookie of cookies) {\n document.cookie = cookie\n .replace(/^ +/, '')\n .replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n }\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n async clearAllCookies() {\n try {\n await this.clearCookies();\n }\n catch (error) {\n return Promise.reject(error);\n }\n }\n}\nconst CapacitorCookies = registerPlugin('CapacitorCookies', {\n web: () => new CapacitorCookiesPluginWeb(),\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */\nconst readBlobAsBase64 = async (blob) => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n // remove prefix \"data:application/pdf;base64,\"\n resolve(base64String.indexOf(',') >= 0\n ? base64String.split(',')[1]\n : base64String);\n };\n reader.onerror = (error) => reject(error);\n reader.readAsDataURL(blob);\n});\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */\nconst normalizeHttpHeaders = (headers = {}) => {\n const originalKeys = Object.keys(headers);\n const loweredKeys = Object.keys(headers).map(k => k.toLocaleLowerCase());\n const normalized = loweredKeys.reduce((acc, key, index) => {\n acc[key] = headers[originalKeys[index]];\n return acc;\n }, {});\n return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */\nconst buildUrlParams = (params, shouldEncode = true) => {\n if (!params)\n return null;\n const output = Object.entries(params).reduce((accumulator, entry) => {\n const [key, value] = entry;\n let encodedValue;\n let item;\n if (Array.isArray(value)) {\n item = '';\n value.forEach(str => {\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n item += `${key}=${encodedValue}&`;\n });\n // last character will always be \"&\" so slice it off\n item.slice(0, -1);\n }\n else {\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n item = `${key}=${encodedValue}`;\n }\n return `${accumulator}&${item}`;\n }, '');\n // Remove initial \"&\" from the reduce\n return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */\nconst buildRequestInit = (options, extra = {}) => {\n const output = Object.assign({ method: options.method || 'GET', headers: options.headers }, extra);\n // Get the content-type\n const headers = normalizeHttpHeaders(options.headers);\n const type = headers['content-type'] || '';\n // If body is already a string, then pass it through as-is.\n if (typeof options.data === 'string') {\n output.body = options.data;\n }\n // Build request initializers based off of content-type\n else if (type.includes('application/x-www-form-urlencoded')) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options.data || {})) {\n params.set(key, value);\n }\n output.body = params.toString();\n }\n else if (type.includes('multipart/form-data') ||\n options.data instanceof FormData) {\n const form = new FormData();\n if (options.data instanceof FormData) {\n options.data.forEach((value, key) => {\n form.append(key, value);\n });\n }\n else {\n for (const key of Object.keys(options.data)) {\n form.append(key, options.data[key]);\n }\n }\n output.body = form;\n const headers = new Headers(output.headers);\n headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\n output.headers = headers;\n }\n else if (type.includes('application/json') ||\n typeof options.data === 'object') {\n output.body = JSON.stringify(options.data);\n }\n return output;\n};\n// WEB IMPLEMENTATION\nclass CapacitorHttpPluginWeb extends WebPlugin {\n /**\n * Perform an Http request given a set of options\n * @param options Options to build the HTTP request\n */\n async request(options) {\n const requestInit = buildRequestInit(options, options.webFetchExtra);\n const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n const response = await fetch(url, requestInit);\n const contentType = response.headers.get('content-type') || '';\n // Default to 'text' responseType so no parsing happens\n let { responseType = 'text' } = response.ok ? options : {};\n // If the response content-type is json, force the response to be json\n if (contentType.includes('application/json')) {\n responseType = 'json';\n }\n let data;\n let blob;\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n blob = await response.blob();\n data = await readBlobAsBase64(blob);\n break;\n case 'json':\n data = await response.json();\n break;\n case 'document':\n case 'text':\n default:\n data = await response.text();\n }\n // Convert fetch headers to Capacitor HttpHeaders\n const headers = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n data,\n headers,\n status: response.status,\n url: response.url,\n };\n }\n /**\n * Perform an Http GET request given a set of options\n * @param options Options to build the HTTP request\n */\n async get(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'GET' }));\n }\n /**\n * Perform an Http POST request given a set of options\n * @param options Options to build the HTTP request\n */\n async post(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'POST' }));\n }\n /**\n * Perform an Http PUT request given a set of options\n * @param options Options to build the HTTP request\n */\n async put(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PUT' }));\n }\n /**\n * Perform an Http PATCH request given a set of options\n * @param options Options to build the HTTP request\n */\n async patch(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'PATCH' }));\n }\n /**\n * Perform an Http DELETE request given a set of options\n * @param options Options to build the HTTP request\n */\n async delete(options) {\n return this.request(Object.assign(Object.assign({}, options), { method: 'DELETE' }));\n }\n}\nconst CapacitorHttp = registerPlugin('CapacitorHttp', {\n web: () => new CapacitorHttpPluginWeb(),\n});\n/******** END HTTP PLUGIN ********/\n\nexport { Capacitor, CapacitorCookies, CapacitorException, CapacitorHttp, CapacitorPlatforms, ExceptionCode, Plugins, WebPlugin, WebView, addPlatform, buildRequestInit, registerPlugin, registerWebPlugin, setPlatform };\n//# sourceMappingURL=index.js.map\n","import { useEffect, useState } from \"react\";\n\nfunction defaultLocaleString(num: number) {\n if(!num && num !== 0) {\n return \"\";\n }\n\n const formatter = new Intl.NumberFormat(\"en-US\");\n return formatter.format(num);\n}\n\nexport default function LocaleNumber({\n number,\n className = \"\",\n formatter = defaultLocaleString,\n}: {\n number?: number;\n className?: string;\n formatter?: (number: number) => string;\n}) {\n const [localNumber, setLocalNumber] = useState(defaultLocaleString(Number(number)));\n\n useEffect(() => {\n if(number) {\n if(formatter) {\n setLocalNumber(formatter(number));\n } else {\n setLocalNumber(Number.isSafeInteger(Number(number)) ? Number(number).toString(): number.toLocaleString());\n }\n }\n }, [formatter, number]);\n\n return (\n {localNumber}\n );\n}\n","import * as React from \"react\";\nconst SvgDiscord = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 640 512\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M524.53 69.84a1.5 1.5 0 0 0-.76-.7 485 485 0 0 0-119.69-37.11 1.8 1.8 0 0 0-1.92.91 338 338 0 0 0-14.9 30.6 448 448 0 0 0-134.43 0 310 310 0 0 0-15.13-30.6 1.9 1.9 0 0 0-1.93-.91 484 484 0 0 0-119.69 37.1 1.7 1.7 0 0 0-.78.68C39.07 183.65 18.19 294.7 28.43 404.35a2 2 0 0 0 .77 1.38 488 488 0 0 0 146.82 74.19 1.9 1.9 0 0 0 2.06-.68 348 348 0 0 0 30.04-48.84 1.86 1.86 0 0 0-1.02-2.59 321 321 0 0 1-45.87-21.85 1.9 1.9 0 0 1-.18-3.13c3.08-2.3 6.16-4.7 9.1-7.13a1.8 1.8 0 0 1 1.9-.26c96.24 43.92 200.42 43.92 295.5 0a1.8 1.8 0 0 1 1.93.23c2.94 2.43 6.03 4.85 9.13 7.16a1.88 1.88 0 0 1-.16 3.13 301 301 0 0 1-45.89 21.83 1.9 1.9 0 0 0-1 2.61 391 391 0 0 0 30.02 48.82 1.9 1.9 0 0 0 2.06.7 486 486 0 0 0 147.06-74.2 1.9 1.9 0 0 0 .77-1.34c12.26-126.79-20.54-236.91-86.94-334.54M222.5 337.58c-28.97 0-52.84-26.59-52.84-59.24s23.4-59.24 52.84-59.24c29.67 0 53.3 26.82 52.84 59.24 0 32.65-23.4 59.24-52.84 59.24m195.38 0c-28.97 0-52.84-26.59-52.84-59.24s23.4-59.24 52.84-59.24c29.67 0 53.3 26.82 52.84 59.24 0 32.65-23.17 59.24-52.84 59.24\" }));\nexport default SvgDiscord;\n","import { ComponentTheme } from \"hardcover-ui/types/base\";\n\nexport type ContainerThemeProps = {\n variant: \"layout\" | \"primary\" | \"form\";\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n};\n\nexport const containerTheme: ComponentTheme = {\n variant: {\n layout: \"mx-auto px-2 lg:px-4 xl:px-0 my-4\",\n primary: \"mx-auto\",\n form: \"border-t md:border dark:border-gray-600 border-gray-300 md:rounded-lg py-2 px-2\",\n },\n size: {\n xs: \"max-w-lg\",\n sm: \"max-w-3xl\",\n md: \"max-w-5xl\",\n lg: \"max-w-7xl\",\n xl: \"w-full\",\n },\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport {\n containerTheme,\n ContainerThemeProps,\n} from \"hardcover-ui/theme/components/container\";\nimport classNames from \"lib/classNames\";\nimport { forwardRef, HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype Props = {\n variant?: ContainerThemeProps[\"variant\"];\n size?: ContainerThemeProps[\"size\"];\n className?: string;\n id?: string;\n} & Partial>;\n\nconst Container = forwardRef>(\n (\n { children, variant = \"primary\", size = \"sm\", id, className, ...rest },\n ref\n ) => {\n const finalClassName = classNames(\n containerTheme.variant[variant],\n containerTheme.size?.[size],\n className\n );\n\n const props = {\n ref,\n className: finalClassName,\n id,\n ...rest,\n };\n\n return
{children}
;\n }\n);\n\nexport default Container;\n","import { WebPlugin } from '@capacitor/core';\nexport class ClipboardWeb extends WebPlugin {\n async write(options) {\n if (typeof navigator === 'undefined' || !navigator.clipboard) {\n throw this.unavailable('Clipboard API not available in this browser');\n }\n if (options.string !== undefined) {\n await this.writeText(options.string);\n }\n else if (options.url) {\n await this.writeText(options.url);\n }\n else if (options.image) {\n if (typeof ClipboardItem !== 'undefined') {\n try {\n const blob = await (await fetch(options.image)).blob();\n const clipboardItemInput = new ClipboardItem({ [blob.type]: blob });\n await navigator.clipboard.write([clipboardItemInput]);\n }\n catch (err) {\n throw new Error('Failed to write image');\n }\n }\n else {\n throw this.unavailable('Writing images to the clipboard is not supported in this browser');\n }\n }\n else {\n throw new Error('Nothing to write');\n }\n }\n async read() {\n if (typeof navigator === 'undefined' || !navigator.clipboard) {\n throw this.unavailable('Clipboard API not available in this browser');\n }\n if (typeof ClipboardItem !== 'undefined') {\n try {\n const clipboardItems = await navigator.clipboard.read();\n const type = clipboardItems[0].types[0];\n const clipboardBlob = await clipboardItems[0].getType(type);\n const data = await this._getBlobData(clipboardBlob, type);\n return { value: data, type };\n }\n catch (err) {\n return this.readText();\n }\n }\n else {\n return this.readText();\n }\n }\n async readText() {\n if (typeof navigator === 'undefined' ||\n !navigator.clipboard ||\n !navigator.clipboard.readText) {\n throw this.unavailable('Reading from clipboard not supported in this browser');\n }\n const text = await navigator.clipboard.readText();\n return { value: text, type: 'text/plain' };\n }\n async writeText(text) {\n if (typeof navigator === 'undefined' ||\n !navigator.clipboard ||\n !navigator.clipboard.writeText) {\n throw this.unavailable('Writting to clipboard not supported in this browser');\n }\n await navigator.clipboard.writeText(text);\n }\n _getBlobData(clipboardBlob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n if (type.includes('image')) {\n reader.readAsDataURL(clipboardBlob);\n }\n else {\n reader.readAsText(clipboardBlob);\n }\n reader.onloadend = () => {\n const r = reader.result;\n resolve(r);\n };\n reader.onerror = e => {\n reject(e);\n };\n });\n }\n}\n//# sourceMappingURL=web.js.map","import { registerPlugin } from '@capacitor/core';\nimport { ClipboardWeb } from './web';\nconst Clipboard = registerPlugin('Clipboard', {\n web: () => new ClipboardWeb(),\n});\nexport * from './definitions';\nexport { Clipboard };\n//# sourceMappingURL=index.js.map","import React from \"react\";\nimport { Clipboard } from \"@capacitor/clipboard\";\nimport { Capacitor } from \"@capacitor/core\";\nimport { toast } from \"sonner\";\nimport useMount from \"hooks/useMount\";\nimport useCurrentUserId from \"hooks/user/useCurrentUserId\";\nimport { usePage } from \"@inertiajs/react\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\n\nconst CopyLinkWrapper = ({ children }) => {\n const currentUserId = useCurrentUserId();\n const mounted = useMount();\n const { pathName } = usePage().props;\n \n const copyToClipboard = (e) => {\n e.preventDefault();\n const referrer = currentUserId ? `?referrer_id=${currentUserId}` : \"\";\n const url = `https://hardcover.app${pathName}${referrer}`;\n if (Capacitor.getPlatform() === \"android\") {\n Clipboard.write({ string: url }).then(() => {\n toast.success(`${currentUserId ? \"Referral link\" : \"Link\"} copied!`);\n });\n } else {\n navigator.clipboard.writeText(url);\n toast.success(`${currentUserId ? \"Referral link\" : \"Link\"} copied!`);\n }\n };\n\n if (!mounted) {\n return null;\n }\n\n // Clone the child element and add the onClick event\n const childWithCopy = React.cloneElement(children, {\n onClick: copyToClipboard,\n ...children.props,\n });\n\n return childWithCopy;\n};\n\nexport default CopyLinkWrapper;\n","/* eslint-disable react/no-unknown-property */\nimport { Head, usePage } from \"@inertiajs/react\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\n\nexport default function Metadata() {\n const { metadata } = usePage().props;\n\n return (\n \n {metadata.title ? `${metadata.title}${metadata.titleTemplate}` : metadata.titleDefault}\n \n\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import classNames from \"lib/classNames\";\nimport { ComponentTheme } from \"hardcover-ui/types/base\";\n\nexport type ModalThemeProps = {\n variant: \"primary\";\n size: \"xs\" | \"sm\";\n};\n\nconst modalClass = classNames(\n \"w-full h-screen transform overflow-hidden text-left align-middle transition-all bg-background\",\n \"lg:rounded-xl lg:shadow-xl lg:border lg:border-secondary lg:h-auto\"\n);\n\nexport const modalTheme: ComponentTheme = {\n variant: {\n primary: `${modalClass} mx-auto`,\n },\n size: {\n xs: \"lg:max-w-xl\",\n sm: \"lg:max-w-3xl\",\n },\n};\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","import{env as n}from'./env.js';function u(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{u as getOwnerDocument};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};\n","import{useEffect as s,useState as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=o(t);return s(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n","import{useEffect as f,useLayoutEffect as c}from\"react\";import{env as i}from'../utils/env.js';let n=(e,t)=>{i.isServer?f(e,t):c(e,t)};export{n as useIsoMorphicEffect};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","import n,{createContext as r,useContext as i}from\"react\";let e=r(void 0);function a(){return i(e)}function l({value:t,children:o}){return n.createElement(e.Provider,{value:t},o)}export{l as DisabledProvider,a as useDisabled};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import E,{Fragment as b,cloneElement as j,createElement as v,forwardRef as S,isValidElement as w,useCallback as x,useRef as k}from\"react\";import{classNames as N}from'./class-names.js';import{match as M}from'./match.js';var O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),A=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(A||{});function L(){let n=U();return x(r=>C({mergeRefs:n,...r}),[n])}function C({ourProps:n,theirProps:r,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:$;let o=P(r,n);if(t)return F(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return F(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return M(f?0:1,{[0](){return null},[1](){return F({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return F(o,e,a,l,i)}function F(n,r={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(n,[\"unmount\",\"static\"]),y=n.ref!==void 0?{[i]:n.ref}:{},f=typeof l==\"function\"?l(r):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(r)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(r){let d=!1,p=[];for(let[c,T]of Object.entries(r))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===b&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!w(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>` - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>` - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...R)=>N(p(...R),o.className):N(p,o.className),T=c?{className:c}:{},g=P(f.props,m(h(o,[\"ref\"])));for(let R in u)R in g&&delete u[R];return j(f,Object.assign({},g,u,y,{ref:s(H(f),y.ref)},T))}return v(t,Object.assign({},h(o,[\"ref\"]),t!==b&&y,t!==b&&u),f)}function U(){let n=k([]),r=x(e=>{for(let a of n.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return n.current=e,r}}function $(...n){return n.every(r=>r==null)?void 0:r=>{for(let e of n)e!=null&&(typeof e==\"function\"?e(r):e.current=r)}}function P(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];if(r.disabled||r[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(r,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return r}function _(...n){var a;if(n.length===0)return{};if(n.length===1)return n[0];let r={},e={};for(let s of n)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):r[t]=s[t];for(let s in e)Object.assign(r,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return r}function K(n){var r;return Object.assign(S(n),{displayName:(r=n.displayName)!=null?r:n.name})}function m(n){let r=Object.assign({},n);for(let e in r)r[e]===void 0&&delete r[e];return r}function h(n,r=[]){let e=Object.assign({},n);for(let a of r)a in e&&delete e[a];return e}function H(n){return E.version.split(\".\")[0]>=\"19\"?n.props.ref:n.ref}export{O as RenderFeatures,A as RenderStrategy,m as compact,K as forwardRefWithAs,_ as mergeProps,L as useRender};\n","import{forwardRefWithAs as i,useRender as p}from'../utils/render.js';let a=\"span\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return p()({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let f=i(l);export{f as Hidden,s as HiddenFeatures};\n","import{useEffect as l,useRef as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","\"use client\";import m,{createContext as T,useContext as u,useMemo as c,useState as P}from\"react\";import{useEvent as g}from'../../hooks/use-event.js';import{useId as x}from'../../hooks/use-id.js';import{useIsoMorphicEffect as y}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as E}from'../../hooks/use-sync-refs.js';import{useDisabled as v}from'../../internal/disabled.js';import{forwardRefWithAs as R,useRender as I}from'../../utils/render.js';let a=T(null);a.displayName=\"DescriptionContext\";function f(){let r=u(a);if(r===null){let e=new Error(\"You used a component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(e,f),e}return r}function U(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function w(){let[r,e]=P([]);return[r.length>0?r.join(\" \"):void 0,c(()=>function(t){let i=g(n=>(e(s=>[...s,n]),()=>e(s=>{let o=s.slice(),p=o.indexOf(n);return p!==-1&&o.splice(p,1),o}))),l=c(()=>({register:i,slot:t.slot,name:t.name,props:t.props,value:t.value}),[i,t.slot,t.name,t.props,t.value]);return m.createElement(a.Provider,{value:l},t.children)},[e])]}let S=\"p\";function C(r,e){let d=x(),t=v(),{id:i=`headlessui-description-${d}`,...l}=r,n=f(),s=E(e);y(()=>n.register(i),[i,n.register]);let o=t||!1,p=c(()=>({...n.slot,disabled:o}),[n.slot,o]),D={ref:s,...n.props,id:i};return I()({ourProps:D,theirProps:l,slot:p,defaultTag:S,name:n.name||\"Description\"})}let _=R(C),H=Object.assign(_,{});export{H as Description,U as useDescribedBy,w as useDescriptions};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","\"use client\";import r,{createContext as n,useContext as i}from\"react\";let e=n(()=>{});function u(){return i(e)}function C({value:t,children:o}){return r.createElement(e.Provider,{value:t},o)}export{C as CloseProvider,u as useClose};\n","class a extends Map{constructor(t){super();this.factory=t}get(t){let e=super.get(t);return e===void 0&&(e=this.factory(t),this.set(t,e)),e}}export{a as DefaultMap};\n","function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};\n","import{useSyncExternalStore as e}from\"react\";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};\n","import{useId as n}from\"react\";import{DefaultMap as f}from'../utils/default-map.js';import{createStore as u}from'../utils/store.js';import{useIsoMorphicEffect as c}from'./use-iso-morphic-effect.js';import{useStore as l}from'./use-store.js';let p=new f(()=>u(()=>[],{ADD(r){return this.includes(r)?this:[...this,r]},REMOVE(r){let e=this.indexOf(r);if(e===-1)return this;let t=this.slice();return t.splice(e,1),t}}));function x(r,e){let t=p.get(e),i=n(),h=l(t);if(c(()=>{if(r)return t.dispatch(\"ADD\",i),()=>t.dispatch(\"REMOVE\",i)},[t,r]),!r)return!1;let s=h.indexOf(i),o=h.length;return s===-1&&(s=o,o+=1),s===o-1}export{x as useIsTopLayer};\n","import{disposables as M}from'../utils/disposables.js';import{getOwnerDocument as b}from'../utils/owner.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';let f=new Map,u=new Map;function h(t){var e;let r=(e=u.get(t))!=null?e:0;return u.set(t,r+1),r!==0?()=>m(t):(f.set(t,{\"aria-hidden\":t.getAttribute(\"aria-hidden\"),inert:t.inert}),t.setAttribute(\"aria-hidden\",\"true\"),t.inert=!0,()=>m(t))}function m(t){var i;let r=(i=u.get(t))!=null?i:1;if(r===1?u.delete(t):u.set(t,r-1),r!==1)return;let e=f.get(t);e&&(e[\"aria-hidden\"]===null?t.removeAttribute(\"aria-hidden\"):t.setAttribute(\"aria-hidden\",e[\"aria-hidden\"]),t.inert=e.inert,f.delete(t))}function y(t,{allowed:r,disallowed:e}={}){let i=L(t,\"inert-others\");T(()=>{var d,c;if(!i)return;let a=M();for(let n of(d=e==null?void 0:e())!=null?d:[])n&&a.add(h(n));let s=(c=r==null?void 0:r())!=null?c:[];for(let n of s){if(!n)continue;let l=b(n);if(!l)continue;let o=n.parentElement;for(;o&&o!==l.body;){for(let p of o.children)s.some(E=>p.contains(E))||a.add(h(p));o=o.parentElement}}return a.dispose},[i,r,e])}export{y as useInertOthers};\n","import{useEffect as o}from\"react\";import{disposables as u}from'../utils/disposables.js';import{useLatestValue as c}from'./use-latest-value.js';function m(s,n,l){let i=c(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&l()});o(()=>{if(!s)return;let t=n===null?null:n instanceof HTMLElement?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!=\"undefined\"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!=\"undefined\"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{m as useOnDisappear};\n","import{disposables as N}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as E}from'./owner.js';let f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(F||{}),T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(h||{});function A(e,r=0){var t;return e===((t=E(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(f)},[1](){let u=e;for(;u!==null;){if(u.matches(f))return!0;u=u.parentElement}return!1}})}function G(e){let r=E(e);N().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let w=[\"textarea\",\"input\"].join(\",\");function O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,w))!=null?t:!1}function _(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function j(e,r){return P(b(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?_(e):e:r&64?S(e):b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&O(i)&&i.select(),2}export{F as Focus,T as FocusResult,h as FocusableMode,I as focusElement,j as focusFrom,P as focusIn,f as focusableSelector,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{useEffect as c}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};\n","import{useEffect as a}from\"react\";import{useLatestValue as f}from'./use-latest-value.js';function s(t,e,o,n){let i=f(o);a(()=>{if(!t)return;function r(d){i.current(d)}return window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)},[t,e,n])}export{s as useWindowEvent};\n","import{useCallback as T,useRef as d}from\"react\";import{FocusableMode as y,isFocusableElement as M}from'../utils/focus-management.js';import{isMobile as g}from'../utils/platform.js';import{useDocumentEvent as c}from'./use-document-event.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useLatestValue as b}from'./use-latest-value.js';import{useWindowEvent as P}from'./use-window-event.js';const E=30;function R(p,f,C){let u=L(p,\"outside-click\"),m=b(C),s=T(function(e,n){if(e.defaultPrevented)return;let r=n(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let h=function l(o){return typeof o==\"function\"?l(o()):Array.isArray(o)||o instanceof Set?o:[o]}(f);for(let l of h)if(l!==null&&(l.contains(r)||e.composed&&e.composedPath().includes(l)))return;return!M(r,y.Loose)&&r.tabIndex!==-1&&e.preventDefault(),m.current(e,r)},[m,f]),i=d(null);c(u,\"pointerdown\",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,\"mousedown\",t=>{var e,n;i.current=((n=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:n[0])||t.target},!0),c(u,\"click\",t=>{g()||i.current&&(s(t,()=>i.current),i.current=null)},!0);let a=d({x:0,y:0});c(u,\"touchstart\",t=>{a.current.x=t.touches[0].clientX,a.current.y=t.touches[0].clientY},!0),c(u,\"touchend\",t=>{let e={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY};if(!(Math.abs(e.x-a.current.x)>=E||Math.abs(e.y-a.current.y)>=E))return s(t,()=>t.target instanceof HTMLElement?t.target:null)},!0),P(u,\"blur\",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{R as useOutsideClick};\n","import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n","import{useEffect as d}from\"react\";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};\n","function d(){let r;return{before({doc:e}){var l;let o=e.documentElement,t=(l=e.defaultView)!=null?l:window;r=Math.max(0,t.innerWidth-o.clientWidth)},after({doc:e,d:o}){let t=e.documentElement,l=Math.max(0,t.clientWidth-t.offsetWidth),n=Math.max(0,r-l);o.style(t,\"paddingRight\",`${n}px`)}}}export{d as adjustScrollbarPadding};\n","import{disposables as m}from'../../utils/disposables.js';import{isIOS as u}from'../../utils/platform.js';function d(){return u()?{before({doc:r,d:n,meta:c}){function o(a){return c.containers.flatMap(l=>l()).some(l=>l.contains(a))}n.microTask(()=>{var s;if(window.getComputedStyle(r.documentElement).scrollBehavior!==\"auto\"){let t=m();t.style(r.documentElement,\"scrollBehavior\",\"auto\"),n.add(()=>n.microTask(()=>t.dispose()))}let a=(s=window.scrollY)!=null?s:window.pageYOffset,l=null;n.addEventListener(r,\"click\",t=>{if(t.target instanceof HTMLElement)try{let e=t.target.closest(\"a\");if(!e)return;let{hash:f}=new URL(e.href),i=r.querySelector(f);i&&!o(i)&&(l=i)}catch{}},!0),n.addEventListener(r,\"touchstart\",t=>{if(t.target instanceof HTMLElement)if(o(t.target)){let e=t.target;for(;e.parentElement&&o(e.parentElement);)e=e.parentElement;n.style(e,\"overscrollBehavior\",\"contain\")}else n.style(t.target,\"touchAction\",\"none\")}),n.addEventListener(r,\"touchmove\",t=>{if(t.target instanceof HTMLElement){if(t.target.tagName===\"INPUT\")return;if(o(t.target)){let e=t.target;for(;e.parentElement&&e.dataset.headlessuiPortal!==\"\"&&!(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);)e=e.parentElement;e.dataset.headlessuiPortal===\"\"&&t.preventDefault()}else t.preventDefault()}},{passive:!1}),n.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;a!==t&&window.scrollTo(0,a),l&&l.isConnected&&(l.scrollIntoView({block:\"nearest\"}),l=null)})})}}:{}}export{d as handleIOSLocking};\n","function r(){return{before({doc:e,d:o}){o.style(e.documentElement,\"overflow\",\"hidden\")}}}export{r as preventScroll};\n","import{disposables as s}from'../../utils/disposables.js';import{createStore as i}from'../../utils/store.js';import{adjustScrollbarPadding as l}from'./adjust-scrollbar-padding.js';import{handleIOSLocking as d}from'./handle-ios-locking.js';import{preventScroll as p}from'./prevent-scroll.js';function m(e){let n={};for(let t of e)Object.assign(n,t(n));return n}let a=i(()=>new Map,{PUSH(e,n){var o;let t=(o=this.get(e))!=null?o:{doc:e,count:0,d:s(),meta:new Set};return t.count++,t.meta.add(n),this.set(e,t),this},POP(e,n){let t=this.get(e);return t&&(t.count--,t.meta.delete(n)),this},SCROLL_PREVENT({doc:e,d:n,meta:t}){let o={doc:e,d:n,meta:m(t)},c=[d(),l(),p()];c.forEach(({before:r})=>r==null?void 0:r(o)),c.forEach(({after:r})=>r==null?void 0:r(o))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});a.subscribe(()=>{let e=a.getSnapshot(),n=new Map;for(let[t]of e)n.set(t,t.documentElement.style.overflow);for(let t of e.values()){let o=n.get(t.doc)===\"hidden\",c=t.count!==0;(c&&!o||!c&&o)&&a.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&a.dispatch(\"TEARDOWN\",t)}});export{a as overflows};\n","import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(r,e,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch(\"PUSH\",e,n),()=>t.dispatch(\"POP\",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};\n","import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,\"scroll-lock\");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};\n","import{useCallback as r,useState as b}from\"react\";function c(u=0){let[t,l]=b(u),g=r(e=>l(e),[t]),s=r(e=>l(a=>a|e),[t]),m=r(e=>(t&e)===e,[t]),n=r(e=>l(a=>a&~e),[l]),F=r(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}export{c as useFlags};\n","var T,b;import{useRef as c,useState as S}from\"react\";import{disposables as m}from'../utils/disposables.js';import{useDisposables as g}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as A}from'./use-iso-morphic-effect.js';typeof process!=\"undefined\"&&typeof globalThis!=\"undefined\"&&typeof Element!=\"undefined\"&&((T=process==null?void 0:process.env)==null?void 0:T[\"NODE_ENV\"])===\"test\"&&typeof((b=Element==null?void 0:Element.prototype)==null?void 0:b.getAnimations)==\"undefined\"&&(Element.prototype.getAnimations=function(){return console.warn([\"Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\",\"Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\",\"\",\"Example usage:\",\"```js\",\"import { mockAnimationsApi } from 'jsdom-testing-mocks'\",\"mockAnimationsApi()\",\"```\"].join(`\n`)),[]});var L=(r=>(r[r.None=0]=\"None\",r[r.Closed=1]=\"Closed\",r[r.Enter=2]=\"Enter\",r[r.Leave=4]=\"Leave\",r))(L||{});function R(t){let n={};for(let e in t)t[e]===!0&&(n[`data-${e}`]=\"\");return n}function x(t,n,e,i){let[r,o]=S(e),{hasFlag:s,addFlag:a,removeFlag:l}=y(t&&r?3:0),u=c(!1),f=c(!1),E=g();return A(()=>{var d;if(t){if(e&&o(!0),!n){e&&a(3);return}return(d=i==null?void 0:i.start)==null||d.call(i,e),C(n,{inFlight:u,prepare(){f.current?f.current=!1:f.current=u.current,u.current=!0,!f.current&&(e?(a(3),l(4)):(a(4),l(2)))},run(){f.current?e?(l(3),a(4)):(l(4),a(3)):e?l(1):a(1)},done(){var p;f.current&&typeof n.getAnimations==\"function\"&&n.getAnimations().length>0||(u.current=!1,l(7),e||o(!1),(p=i==null?void 0:i.end)==null||p.call(i,e))}})}},[t,e,n,E]),t?[r,{closed:s(1),enter:s(2),leave:s(4),transition:s(2)||s(4)}]:[e,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function C(t,{prepare:n,run:e,done:i,inFlight:r}){let o=m();return j(t,{prepare:n,inFlight:r}),o.nextFrame(()=>{e(),o.requestAnimationFrame(()=>{o.add(M(t,i))})}),o.dispose}function M(t,n){var o,s;let e=m();if(!t)return e.dispose;let i=!1;e.add(()=>{i=!0});let r=(s=(o=t.getAnimations)==null?void 0:o.call(t).filter(a=>a instanceof CSSTransition))!=null?s:[];return r.length===0?(n(),e.dispose):(Promise.allSettled(r.map(a=>a.finished)).then(()=>{i||n()}),e.dispose)}function j(t,{inFlight:n,prepare:e}){if(n!=null&&n.current){e();return}let i=t.style.transition;t.style.transition=\"none\",e(),t.offsetHeight,t.style.transition=i}export{R as transitionDataAttributes,x as useTransition};\n","import{useEffect as f,useRef as s}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=s([]),r=i(u);f(()=>{let o=[...e.current];for(let[a,l]of t.entries())if(e.current[a]!==l){let n=r(t,o);return e.current=t,n}},[r,...t])}export{m as useWatch};\n","import r,{createContext as l,useContext as d}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","import{onDocumentReady as d}from'./document-ready.js';import{focusableSelector as u}from'./focus-management.js';let r=[];d(()=>{function e(t){if(!(t.target instanceof HTMLElement)||t.target===document.body||r[0]===t.target)return;let n=t.target;n=n.closest(u),r.unshift(n!=null?n:t.target),r=r.filter(o=>o!=null&&o.isConnected),r.splice(10)}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});export{r as history};\n","import{useEffect as u,useRef as n}from\"react\";import{microTask as o}from'../utils/micro-task.js';import{useEvent as f}from'./use-event.js';function c(t){let r=f(t),e=n(!1);u(()=>(e.current=!1,()=>{e.current=!0,o(()=>{e.current&&r()})}),[r])}export{c as useOnUnmount};\n","import*as t from\"react\";import{env as f}from'../utils/env.js';function s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};\n","import t,{createContext as r,useContext as c}from\"react\";let e=r(!1);function a(){return c(e)}function l(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{l as ForcePortalRoot,a as usePortalRoot};\n","\"use client\";import f,{Fragment as R,createContext as g,useContext as T,useEffect as E,useMemo as c,useRef as A,useState as G}from\"react\";import{createPortal as O}from\"react-dom\";import{useEvent as L}from'../../hooks/use-event.js';import{useIsoMorphicEffect as x}from'../../hooks/use-iso-morphic-effect.js';import{useOnUnmount as h}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as _}from'../../hooks/use-owner.js';import{useServerHandoffComplete as F}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as U,useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{usePortalRoot as D}from'../../internal/portal-force-root.js';import{env as C}from'../../utils/env.js';import{forwardRefWithAs as m,useRender as d}from'../../utils/render.js';function N(u){let r=D(),n=T(v),e=_(u),[o,l]=G(()=>{var t;if(!r&&n!==null)return(t=n.current)!=null?t:null;if(C.isServer)return null;let p=e==null?void 0:e.getElementById(\"headlessui-portal-root\");if(p)return p;if(e===null)return null;let a=e.createElement(\"div\");return a.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(a)});return E(()=>{o!==null&&(e!=null&&e.body.contains(o)||e==null||e.body.appendChild(o))},[o,e]),E(()=>{r||n!==null&&l(n.current)},[n,l,r]),o}let M=R,S=m(function(r,n){let e=r,o=A(null),l=P(U(i=>{o.current=i}),n),p=_(o),a=N(o),[t]=G(()=>{var i;return C.isServer?null:(i=p==null?void 0:p.createElement(\"div\"))!=null?i:null}),s=T(y),b=F();x(()=>{!a||!t||a.contains(t)||(t.setAttribute(\"data-headlessui-portal\",\"\"),a.appendChild(t))},[a,t]),x(()=>{if(t&&s)return s.register(t)},[s,t]),h(()=>{var i;!a||!t||(t instanceof Node&&a.contains(t)&&a.removeChild(t),a.childNodes.length<=0&&((i=a.parentElement)==null||i.removeChild(a)))});let H=d();return b?!a||!t?null:O(H({ourProps:{ref:l},theirProps:e,slot:{},defaultTag:M,name:\"Portal\"}),t):null});function j(u,r){let n=P(r),{enabled:e=!0,...o}=u,l=d();return e?f.createElement(S,{...o,ref:n}):l({ourProps:{ref:n},theirProps:o,slot:{},defaultTag:M,name:\"Portal\"})}let W=R,v=g(null);function I(u,r){let{target:n,...e}=u,l={ref:P(r)},p=d();return f.createElement(v.Provider,{value:n},p({ourProps:l,theirProps:e,defaultTag:W,name:\"Popover.Group\"}))}let y=g(null);function te(){let u=T(y),r=A([]),n=L(l=>(r.current.push(l),u&&u.register(l),()=>e(l))),e=L(l=>{let p=r.current.indexOf(l);p!==-1&&r.current.splice(p,1),u&&u.unregister(l)}),o=c(()=>({register:n,unregister:e,portals:r}),[n,e,r]);return[r,c(()=>function({children:p}){return f.createElement(y.Provider,{value:o},p)},[o])]}let J=m(j),X=m(I),re=Object.assign(J,{Group:X});export{re as Portal,X as PortalGroup,te as useNestedPortals};\n","import{Keys as u}from'../components/keyboard.js';import{useEventListener as i}from'./use-event-listener.js';import{useIsTopLayer as f}from'./use-is-top-layer.js';function a(o,r=typeof document!=\"undefined\"?document.defaultView:null,t){let n=f(o,\"escape\");i(r,\"keydown\",e=>{n&&(e.defaultPrevented||e.key===u.Escape&&t(e))})}export{a as useEscape};\n","import{useState as i}from\"react\";import{useIsoMorphicEffect as s}from'./use-iso-morphic-effect.js';function f(){var t;let[e]=i(()=>typeof window!=\"undefined\"&&typeof window.matchMedia==\"function\"?window.matchMedia(\"(pointer: coarse)\"):null),[o,c]=i((t=e==null?void 0:e.matches)!=null?t:!1);return s(()=>{if(!e)return;function n(r){c(r.matches)}return e.addEventListener(\"change\",n),()=>e.removeEventListener(\"change\",n)},[e]),o}export{f as useIsTouchDevice};\n","import f,{createContext as M,useContext as d,useState as H}from\"react\";import{Hidden as E,HiddenFeatures as T}from'../internal/hidden.js';import{getOwnerDocument as L}from'../utils/owner.js';import{useEvent as s}from'./use-event.js';import{useOwnerDocument as h}from'./use-owner.js';function R({defaultContainers:l=[],portals:n,mainTreeNode:o}={}){let r=h(o),u=s(()=>{var i,c;let t=[];for(let e of l)e!==null&&(e instanceof HTMLElement?t.push(e):\"current\"in e&&e.current instanceof HTMLElement&&t.push(e.current));if(n!=null&&n.current)for(let e of n.current)t.push(e);for(let e of(i=r==null?void 0:r.querySelectorAll(\"html > *, body > *\"))!=null?i:[])e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e.id!==\"headlessui-portal-root\"&&(o&&(e.contains(o)||e.contains((c=o==null?void 0:o.getRootNode())==null?void 0:c.host))||t.some(m=>e.contains(m))||t.push(e));return t});return{resolveContainers:u,contains:s(t=>u().some(i=>i.contains(t)))}}let a=M(null);function O({children:l,node:n}){let[o,r]=H(null),u=b(n!=null?n:o);return f.createElement(a.Provider,{value:u},l,u===null&&f.createElement(E,{features:T.Hidden,ref:t=>{var i,c;if(t){for(let e of(c=(i=L(t))==null?void 0:i.querySelectorAll(\"html > *, body > *\"))!=null?c:[])if(e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e!=null&&e.contains(t)){r(e);break}}}}))}function b(l=null){var n;return(n=d(a))!=null?n:l}export{O as MainTreeProvider,b as useMainTreeNode,R as useRootContainers};\n","import{useRef as r}from\"react\";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};\n","import{useRef as o}from\"react\";import{useWindowEvent as t}from'./use-window-event.js';var a=(r=>(r[r.Forwards=0]=\"Forwards\",r[r.Backwards=1]=\"Backwards\",r))(a||{});function u(){let e=o(0);return t(!0,\"keydown\",r=>{r.key===\"Tab\"&&(e.current=r.shiftKey?1:0)},!0),e}export{a as Direction,u as useTabDirection};\n","\"use client\";import L,{useRef as M}from\"react\";import{useDisposables as W}from'../../hooks/use-disposables.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as K}from'../../hooks/use-event-listener.js';import{useIsMounted as P}from'../../hooks/use-is-mounted.js';import{useIsTopLayer as O}from'../../hooks/use-is-top-layer.js';import{useOnUnmount as V}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as q}from'../../hooks/use-owner.js';import{useServerHandoffComplete as J}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as X}from'../../hooks/use-sync-refs.js';import{Direction as H,useTabDirection as z}from'../../hooks/use-tab-direction.js';import{useWatch as y}from'../../hooks/use-watch.js';import{Hidden as C,HiddenFeatures as _}from'../../internal/hidden.js';import{history as b}from'../../utils/active-element-history.js';import{Focus as T,FocusResult as S,focusElement as p,focusIn as E}from'../../utils/focus-management.js';import{match as h}from'../../utils/match.js';import{microTask as j}from'../../utils/micro-task.js';import{forwardRefWithAs as Q,useRender as Y}from'../../utils/render.js';function U(o){if(!o)return new Set;if(typeof o==\"function\")return new Set(o());let e=new Set;for(let t of o.current)t.current instanceof HTMLElement&&e.add(t.current);return e}let Z=\"div\";var x=(n=>(n[n.None=0]=\"None\",n[n.InitialFocus=1]=\"InitialFocus\",n[n.TabLock=2]=\"TabLock\",n[n.FocusLock=4]=\"FocusLock\",n[n.RestoreFocus=8]=\"RestoreFocus\",n[n.AutoFocus=16]=\"AutoFocus\",n))(x||{});function $(o,e){let t=M(null),r=X(t,e),{initialFocus:s,initialFocusFallback:a,containers:n,features:u=15,...f}=o;J()||(u=0);let l=q(t);ee(u,{ownerDocument:l});let i=te(u,{ownerDocument:l,container:t,initialFocus:s,initialFocusFallback:a});re(u,{ownerDocument:l,container:t,containers:n,previousActiveElement:i});let R=z(),g=A(c=>{let m=t.current;if(!m)return;(G=>G())(()=>{h(R.current,{[H.Forwards]:()=>{E(m,T.First,{skipElements:[c.relatedTarget,a]})},[H.Backwards]:()=>{E(m,T.Last,{skipElements:[c.relatedTarget,a]})}})})}),v=O(!!(u&2),\"focus-trap#tab-lock\"),N=W(),F=M(!1),k={ref:r,onKeyDown(c){c.key==\"Tab\"&&(F.current=!0,N.requestAnimationFrame(()=>{F.current=!1}))},onBlur(c){if(!(u&4))return;let m=U(n);t.current instanceof HTMLElement&&m.add(t.current);let d=c.relatedTarget;d instanceof HTMLElement&&d.dataset.headlessuiFocusGuard!==\"true\"&&(I(m,d)||(F.current?E(t.current,h(R.current,{[H.Forwards]:()=>T.Next,[H.Backwards]:()=>T.Previous})|T.WrapAround,{relativeTo:c.target}):c.target instanceof HTMLElement&&p(c.target)))}},B=Y();return L.createElement(L.Fragment,null,v&&L.createElement(C,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:g,features:_.Focusable}),B({ourProps:k,theirProps:f,defaultTag:Z,name:\"FocusTrap\"}),v&&L.createElement(C,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:g,features:_.Focusable}))}let D=Q($),ye=Object.assign(D,{features:x});function w(o=!0){let e=M(b.slice());return y(([t],[r])=>{r===!0&&t===!1&&j(()=>{e.current.splice(0)}),r===!1&&t===!0&&(e.current=b.slice())},[o,b,e]),A(()=>{var t;return(t=e.current.find(r=>r!=null&&r.isConnected))!=null?t:null})}function ee(o,{ownerDocument:e}){let t=!!(o&8),r=w(t);y(()=>{t||(e==null?void 0:e.activeElement)===(e==null?void 0:e.body)&&p(r())},[t]),V(()=>{t&&p(r())})}function te(o,{ownerDocument:e,container:t,initialFocus:r,initialFocusFallback:s}){let a=M(null),n=O(!!(o&1),\"focus-trap#initial-focus\"),u=P();return y(()=>{if(o===0)return;if(!n){s!=null&&s.current&&p(s.current);return}let f=t.current;f&&j(()=>{if(!u.current)return;let l=e==null?void 0:e.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===l){a.current=l;return}}else if(f.contains(l)){a.current=l;return}if(r!=null&&r.current)p(r.current);else{if(o&16){if(E(f,T.First|T.AutoFocus)!==S.Error)return}else if(E(f,T.First)!==S.Error)return;if(s!=null&&s.current&&(p(s.current),(e==null?void 0:e.activeElement)===s.current))return;console.warn(\"There are no focusable elements inside the \")}a.current=e==null?void 0:e.activeElement})},[s,n,o]),a}function re(o,{ownerDocument:e,container:t,containers:r,previousActiveElement:s}){let a=P(),n=!!(o&4);K(e==null?void 0:e.defaultView,\"focus\",u=>{if(!n||!a.current)return;let f=U(r);t.current instanceof HTMLElement&&f.add(t.current);let l=s.current;if(!l)return;let i=u.target;i&&i instanceof HTMLElement?I(f,i)?(s.current=i,p(i)):(u.preventDefault(),u.stopPropagation(),p(l)):p(s.current)},!0)}function I(o,e){for(let t of o)if(t.contains(e))return!0;return!1}export{ye as FocusTrap,x as FocusTrapFeatures};\n","\"use client\";import m,{Fragment as O,createContext as ne,useContext as q,useEffect as ge,useMemo as ie,useRef as b,useState as V}from\"react\";import{useDisposables as ve}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useIsMounted as be}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as D}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Ee}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as re}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as oe}from'../../hooks/use-sync-refs.js';import{transitionDataAttributes as Se,useTransition as Re}from'../../hooks/use-transition.js';import{OpenClosedProvider as ye,State as x,useOpenClosed as se}from'../../internal/open-closed.js';import{classNames as Pe}from'../../utils/class-names.js';import{match as le}from'../../utils/match.js';import{RenderFeatures as xe,RenderStrategy as P,compact as Ne,forwardRefWithAs as J,useRender as ae}from'../../utils/render.js';function ue(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:de)!==O||m.Children.count(e.children)===1}let w=ne(null);w.displayName=\"TransitionContext\";var _e=(n=>(n.Visible=\"visible\",n.Hidden=\"hidden\",n))(_e||{});function De(){let e=q(w);if(e===null)throw new Error(\"A is used but it is missing a parent or .\");return e}function He(){let e=q(M);if(e===null)throw new Error(\"A is used but it is missing a parent or .\");return e}let M=ne(null);M.displayName=\"NestingContext\";function U(e){return\"children\"in e?U(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function Te(e,t){let n=Ee(e),l=b([]),S=be(),R=ve(),d=E((o,i=P.Hidden)=>{let a=l.current.findIndex(({el:s})=>s===o);a!==-1&&(le(i,{[P.Unmount](){l.current.splice(a,1)},[P.Hidden](){l.current[a].state=\"hidden\"}}),R.microTask(()=>{var s;!U(l)&&S.current&&((s=n.current)==null||s.call(n))}))}),y=E(o=>{let i=l.current.find(({el:a})=>a===o);return i?i.state!==\"visible\"&&(i.state=\"visible\"):l.current.push({el:o,state:\"visible\"}),()=>d(o,P.Unmount)}),p=b([]),c=b(Promise.resolve()),C=b({enter:[],leave:[]}),h=E((o,i,a)=>{p.current.splice(0),t&&(t.chains.current[i]=t.chains.current[i].filter(([s])=>s!==o)),t==null||t.chains.current[i].push([o,new Promise(s=>{p.current.push(s)})]),t==null||t.chains.current[i].push([o,new Promise(s=>{Promise.all(C.current[i].map(([r,f])=>f)).then(()=>s())})]),i===\"enter\"?c.current=c.current.then(()=>t==null?void 0:t.wait.current).then(()=>a(i)):a(i)}),g=E((o,i,a)=>{Promise.all(C.current[i].splice(0).map(([s,r])=>r)).then(()=>{var s;(s=p.current.shift())==null||s()}).then(()=>a(i))});return ie(()=>({children:l,register:y,unregister:d,onStart:h,onStop:g,wait:c,chains:C}),[y,d,l,h,g,C,c])}let de=O,fe=xe.RenderStrategy;function Ae(e,t){var ee,te;let{transition:n=!0,beforeEnter:l,afterEnter:S,beforeLeave:R,afterLeave:d,enter:y,enterFrom:p,enterTo:c,entered:C,leave:h,leaveFrom:g,leaveTo:o,...i}=e,[a,s]=V(null),r=b(null),f=ue(e),j=oe(...f?[r,t,s]:t===null?[]:[t]),H=(ee=i.unmount)==null||ee?P.Unmount:P.Hidden,{show:u,appear:z,initial:K}=De(),[v,G]=V(u?\"visible\":\"hidden\"),Q=He(),{register:A,unregister:I}=Q;D(()=>A(r),[A,r]),D(()=>{if(H===P.Hidden&&r.current){if(u&&v!==\"visible\"){G(\"visible\");return}return le(v,{[\"hidden\"]:()=>I(r),[\"visible\"]:()=>A(r)})}},[v,r,A,I,u,H]);let B=re();D(()=>{if(f&&B&&v===\"visible\"&&r.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[r,v,B,f]);let ce=K&&!z,Y=z&&u&&K,W=b(!1),L=Te(()=>{W.current||(G(\"hidden\"),I(r))},Q),Z=E(k=>{W.current=!0;let F=k?\"enter\":\"leave\";L.onStart(r,F,_=>{_===\"enter\"?l==null||l():_===\"leave\"&&(R==null||R())})}),$=E(k=>{let F=k?\"enter\":\"leave\";W.current=!1,L.onStop(r,F,_=>{_===\"enter\"?S==null||S():_===\"leave\"&&(d==null||d())}),F===\"leave\"&&!U(L)&&(G(\"hidden\"),I(r))});ge(()=>{f&&n||(Z(u),$(u))},[u,f,n]);let pe=(()=>!(!n||!f||!B||ce))(),[,T]=Re(pe,a,u,{start:Z,end:$}),Ce=Ne({ref:j,className:((te=Pe(i.className,Y&&y,Y&&p,T.enter&&y,T.enter&&T.closed&&p,T.enter&&!T.closed&&c,T.leave&&h,T.leave&&!T.closed&&g,T.leave&&T.closed&&o,!T.transition&&u&&C))==null?void 0:te.trim())||void 0,...Se(T)}),N=0;v===\"visible\"&&(N|=x.Open),v===\"hidden\"&&(N|=x.Closed),T.enter&&(N|=x.Opening),T.leave&&(N|=x.Closing);let he=ae();return m.createElement(M.Provider,{value:L},m.createElement(ye,{value:N},he({ourProps:Ce,theirProps:i,defaultTag:de,features:fe,visible:v===\"visible\",name:\"Transition.Child\"})))}function Ie(e,t){let{show:n,appear:l=!1,unmount:S=!0,...R}=e,d=b(null),y=ue(e),p=oe(...y?[d,t]:t===null?[]:[t]);re();let c=se();if(n===void 0&&c!==null&&(n=(c&x.Open)===x.Open),n===void 0)throw new Error(\"A is used but it is missing a `show={true | false}` prop.\");let[C,h]=V(n?\"visible\":\"hidden\"),g=Te(()=>{n||h(\"hidden\")}),[o,i]=V(!0),a=b([n]);D(()=>{o!==!1&&a.current[a.current.length-1]!==n&&(a.current.push(n),i(!1))},[a,n]);let s=ie(()=>({show:n,appear:l,initial:o}),[n,l,o]);D(()=>{n?h(\"visible\"):!U(g)&&d.current!==null&&h(\"hidden\")},[n,g]);let r={unmount:S},f=E(()=>{var u;o&&i(!1),(u=e.beforeEnter)==null||u.call(e)}),j=E(()=>{var u;o&&i(!1),(u=e.beforeLeave)==null||u.call(e)}),H=ae();return m.createElement(M.Provider,{value:g},m.createElement(w.Provider,{value:s},H({ourProps:{...r,as:O,children:m.createElement(me,{ref:p,...r,...R,beforeEnter:f,beforeLeave:j})},theirProps:{},defaultTag:O,features:fe,visible:C===\"visible\",name:\"Transition\"})))}function Le(e,t){let n=q(w)!==null,l=se()!==null;return m.createElement(m.Fragment,null,!n&&l?m.createElement(X,{ref:t,...e}):m.createElement(me,{ref:t,...e}))}let X=J(Ie),me=J(Ae),Fe=J(Le),ze=Object.assign(X,{Child:Fe,Root:X});export{ze as Transition,Fe as TransitionChild};\n","\"use client\";import n,{Fragment as N,createContext as ae,createRef as ie,useContext as pe,useEffect as se,useMemo as E,useReducer as de,useRef as W}from\"react\";import{useEscape as ue}from'../../hooks/use-escape.js';import{useEvent as A}from'../../hooks/use-event.js';import{useId as M}from'../../hooks/use-id.js';import{useInertOthers as Te}from'../../hooks/use-inert-others.js';import{useIsTouchDevice as fe}from'../../hooks/use-is-touch-device.js';import{useOnDisappear as ge}from'../../hooks/use-on-disappear.js';import{useOutsideClick as ce}from'../../hooks/use-outside-click.js';import{useOwnerDocument as me}from'../../hooks/use-owner.js';import{MainTreeProvider as $,useMainTreeNode as De,useRootContainers as Pe}from'../../hooks/use-root-containers.js';import{useScrollLock as ye}from'../../hooks/use-scroll-lock.js';import{useServerHandoffComplete as Ee}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as G}from'../../hooks/use-sync-refs.js';import{CloseProvider as Ae}from'../../internal/close-provider.js';import{ResetOpenClosedProvider as _e,State as x,useOpenClosed as j}from'../../internal/open-closed.js';import{ForcePortalRoot as Y}from'../../internal/portal-force-root.js';import{match as Ce}from'../../utils/match.js';import{RenderFeatures as J,forwardRefWithAs as _,useRender as L}from'../../utils/render.js';import{Description as K,useDescriptions as Re}from'../description/description.js';import{FocusTrap as Fe,FocusTrapFeatures as C}from'../focus-trap/focus-trap.js';import{Portal as be,PortalGroup as ve,useNestedPortals as xe}from'../portal/portal.js';import{Transition as Le,TransitionChild as X}from'../transition/transition.js';var Oe=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))(Oe||{}),he=(t=>(t[t.SetTitleId=0]=\"SetTitleId\",t))(he||{});let Se={[0](e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},k=ae(null);k.displayName=\"DialogContext\";function O(e){let t=pe(k);if(t===null){let o=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,O),o}return t}function Ie(e,t){return Ce(t.type,Se,e,t)}let V=_(function(t,o){let a=M(),{id:l=`headlessui-dialog-${a}`,open:i,onClose:p,initialFocus:d,role:s=\"dialog\",autoFocus:f=!0,__demoMode:u=!1,unmount:P=!1,...h}=t,R=W(!1);s=function(){return s===\"dialog\"||s===\"alertdialog\"?s:(R.current||(R.current=!0,console.warn(`Invalid role [${s}] passed to . Only \\`dialog\\` and and \\`alertdialog\\` are supported. Using \\`dialog\\` instead.`)),\"dialog\")}();let c=j();i===void 0&&c!==null&&(i=(c&x.Open)===x.Open);let T=W(null),S=G(T,o),F=me(T),g=i?0:1,[b,q]=de(Ie,{titleId:null,descriptionId:null,panelRef:ie()}),m=A(()=>p(!1)),w=A(r=>q({type:0,id:r})),D=Ee()?g===0:!1,[z,Q]=xe(),Z={get current(){var r;return(r=b.panelRef.current)!=null?r:T.current}},v=De(),{resolveContainers:I}=Pe({mainTreeNode:v,portals:z,defaultContainers:[Z]}),B=c!==null?(c&x.Closing)===x.Closing:!1;Te(u||B?!1:D,{allowed:A(()=>{var r,H;return[(H=(r=T.current)==null?void 0:r.closest(\"[data-headlessui-portal]\"))!=null?H:null]}),disallowed:A(()=>{var r;return[(r=v==null?void 0:v.closest(\"body > *:not(#headlessui-portal-root)\"))!=null?r:null]})}),ce(D,I,r=>{r.preventDefault(),m()}),ue(D,F==null?void 0:F.defaultView,r=>{r.preventDefault(),r.stopPropagation(),document.activeElement&&\"blur\"in document.activeElement&&typeof document.activeElement.blur==\"function\"&&document.activeElement.blur(),m()}),ye(u||B?!1:D,F,I),ge(D,T,m);let[ee,te]=Re(),oe=E(()=>[{dialogState:g,close:m,setTitleId:w,unmount:P},b],[g,b,m,w,P]),U=E(()=>({open:g===0}),[g]),ne={ref:S,id:l,role:s,tabIndex:-1,\"aria-modal\":u?void 0:g===0?!0:void 0,\"aria-labelledby\":b.titleId,\"aria-describedby\":ee,unmount:P},re=!fe(),y=C.None;D&&!u&&(y|=C.RestoreFocus,y|=C.TabLock,f&&(y|=C.AutoFocus),re&&(y|=C.InitialFocus));let le=L();return n.createElement(_e,null,n.createElement(Y,{force:!0},n.createElement(be,null,n.createElement(k.Provider,{value:oe},n.createElement(ve,{target:T},n.createElement(Y,{force:!1},n.createElement(te,{slot:U},n.createElement(Q,null,n.createElement(Fe,{initialFocus:d,initialFocusFallback:T,containers:I,features:y},n.createElement(Ae,{value:m},le({ourProps:ne,theirProps:h,slot:U,defaultTag:Me,features:Ge,visible:g===0,name:\"Dialog\"})))))))))))}),Me=\"div\",Ge=J.RenderStrategy|J.Static;function ke(e,t){let{transition:o=!1,open:a,...l}=e,i=j(),p=e.hasOwnProperty(\"open\")||i!==null,d=e.hasOwnProperty(\"onClose\");if(!p&&!d)throw new Error(\"You have to provide an `open` and an `onClose` prop to the `Dialog` component.\");if(!p)throw new Error(\"You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.\");if(!d)throw new Error(\"You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.\");if(!i&&typeof e.open!=\"boolean\")throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!=\"function\")throw new Error(`You provided an \\`onClose\\` prop to the \\`Dialog\\`, but the value is not a function. Received: ${e.onClose}`);return(a!==void 0||o)&&!l.static?n.createElement($,null,n.createElement(Le,{show:a,transition:o,unmount:l.unmount},n.createElement(V,{ref:t,...l}))):n.createElement($,null,n.createElement(V,{ref:t,open:a,...l}))}let we=\"div\";function Be(e,t){let o=M(),{id:a=`headlessui-dialog-panel-${o}`,transition:l=!1,...i}=e,[{dialogState:p,unmount:d},s]=O(\"Dialog.Panel\"),f=G(t,s.panelRef),u=E(()=>({open:p===0}),[p]),P=A(S=>{S.stopPropagation()}),h={ref:f,id:a,onClick:P},R=l?X:N,c=l?{unmount:d}:{},T=L();return n.createElement(R,{...c},T({ourProps:h,theirProps:i,slot:u,defaultTag:we,name:\"Dialog.Panel\"}))}let Ue=\"div\";function He(e,t){let{transition:o=!1,...a}=e,[{dialogState:l,unmount:i}]=O(\"Dialog.Backdrop\"),p=E(()=>({open:l===0}),[l]),d={ref:t,\"aria-hidden\":!0},s=o?X:N,f=o?{unmount:i}:{},u=L();return n.createElement(s,{...f},u({ourProps:d,theirProps:a,slot:p,defaultTag:Ue,name:\"Dialog.Backdrop\"}))}let Ne=\"h2\";function We(e,t){let o=M(),{id:a=`headlessui-dialog-title-${o}`,...l}=e,[{dialogState:i,setTitleId:p}]=O(\"Dialog.Title\"),d=G(t);se(()=>(p(a),()=>p(null)),[a,p]);let s=E(()=>({open:i===0}),[i]),f={ref:d,id:a};return L()({ourProps:f,theirProps:l,slot:s,defaultTag:Ne,name:\"Dialog.Title\"})}let $e=_(ke),je=_(Be),Dt=_(He),Ye=_(We),Pt=K,yt=Object.assign($e,{Panel:je,Title:Ye,Description:K});export{yt as Dialog,Dt as DialogBackdrop,Pt as DialogDescription,je as DialogPanel,Ye as DialogTitle};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport {\n Fragment,\n HTMLAttributes,\n MutableRefObject,\n PropsWithChildren,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport {\n ModalThemeProps,\n modalTheme,\n} from \"hardcover-ui/theme/components/modal\";\nimport classNames from \"lib/classNames\";\nimport {\n Dialog,\n DialogPanel,\n DialogBackdrop,\n Transition,\n TransitionChild,\n} from \"@headlessui/react\";\nimport { Capacitor } from \"@capacitor/core\";\n\ntype Props = {\n variant?: ModalThemeProps[\"variant\"];\n size?: ModalThemeProps[\"size\"];\n className?: string;\n open?: boolean;\n onClose: () => void;\n initialFocus?: MutableRefObject | undefined;\n position?: \"center\" | \"top\" | \"bottom\";\n zIndex?: number;\n disablePopState?: boolean;\n modalTitle?: string;\n} & Partial>;\n\n// Close the modal if navigating to a different page\nfunction ModalController({ onClose }: { onClose: () => void }) {\n const [initialPath] = useState(window.location.pathname);\n const [initialSearch] = useState(window.location.search);\n\n // Close the modal if navigating to a different page\n useEffect(() => {\n const handlePopState = () => {\n if (\n onClose &&\n (window.location.pathname !== initialPath ||\n window.location.search !== initialSearch)\n ) {\n onClose();\n }\n };\n\n window.addEventListener(\"popstate\", handlePopState);\n\n return () => {\n window.removeEventListener(\"popstate\", handlePopState);\n };\n }, [initialPath, initialSearch, onClose]);\n return <>;\n}\n\nconst Modal = forwardRef>(\n (\n {\n children,\n initialFocus,\n variant = \"primary\",\n size = \"sm\",\n open = false,\n onClose,\n position = \"center\",\n zIndex = 40,\n className,\n disablePopState,\n modalTitle = \"Modal\",\n ...rest\n },\n ref\n ) => {\n const finalClassName = classNames(\n modalTheme.variant[variant],\n modalTheme.size?.[size],\n className\n );\n\n const props = {\n ref,\n className: finalClassName,\n ...rest,\n };\n\n return (\n \n {\n if (!disablePopState) {\n onClose();\n }\n }}\n initialFocus={initialFocus}\n style={{ zIndex }}\n >\n
\n \n \n \n\n
\n \n {!disablePopState && onClose && (\n \n )}\n \n {children}\n \n
\n
\n \n
\n
\n );\n }\n);\n\nexport default Modal;\n","import { lazy, Suspense } from \"react\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Modal from \"hardcover-ui/components/Modal\";\nimport LoadingSpinner from \"hardcover-ui/components/LoadingSpinner\";\nimport { SearchContextType } from \"../../search/types\";\n\nconst QuickSearchForm = lazy(() => import(\"./QuickSearchForm\"));\n\ntype Props = {\n isOpen?: boolean;\n onClose: () => void;\n searchOptions?: SearchContextType;\n};\n\nexport function QuickSearchModal({\n isOpen = false,\n onClose,\n searchOptions,\n}: Props) {\n return (\n \n \n }>\n {isOpen && (\n \n )}\n \n \n \n );\n}\n","import { useSelector } from \"react-redux\";\nimport { createSelector } from \"reselect\";\nimport { RootState } from \"store\";\n\nconst getState = (state: RootState) => state;\n\nexport const getSearchChannel = createSelector(\n getState,\n (state) => state.search\n);\n\nexport const getSearchVisibleSelector = createSelector(\n getSearchChannel,\n ({ searchVisible }) => {\n return searchVisible;\n }\n);\n\nexport function useIsSearchVisibile(): boolean {\n return useSelector(getSearchVisibleSelector);\n}\n\nexport const getNextSearchTerm = createSelector(\n getSearchChannel,\n ({ nextSearchTerm }) => {\n return nextSearchTerm;\n }\n);\nexport function useNextSearchTerm(): string {\n return useSelector(getNextSearchTerm) || \"\";\n}\n\nexport const getSearchTerm = createSelector(\n getSearchChannel,\n ({ searchTerm }) => {\n return searchTerm;\n }\n);\nexport function useSearchTerm(): string {\n return useSelector(getSearchTerm) || \"\";\n}\n\nexport const getSearchType = createSelector(\n getSearchChannel,\n ({ activeSearchType }) => {\n return activeSearchType;\n }\n);\nexport const getNextSearchType = createSelector(\n getSearchChannel,\n ({ nextActiveSearchType }) => {\n return nextActiveSearchType;\n }\n);\n\nexport const getSearchSelected = createSelector(\n getSearchChannel,\n ({ searchSelected }) => {\n return searchSelected;\n }\n);\n\nexport const getSearchTypes = createSelector(\n getSearchChannel,\n ({ searchTypes }) => {\n return searchTypes;\n }\n);\n\nexport const getSearchIndex = createSelector(\n getSearchChannel,\n ({ indexName }) => {\n return indexName;\n }\n);\n\nexport const getSearchSetting = createSelector(\n getSearchChannel,\n ({ indexName, searchTypes }) => {\n return {\n indexName,\n searchTypes,\n };\n }\n);\n","import { QuickSearchModal } from \"components/search/QuickSearchModal/parts/QuickSearchModal\";\nimport { useCallback } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useIsSearchVisibile } from \"store/search/searchSelector\";\nimport { searchActions } from \"store/search/searchSlice\";\nimport { indexLookup } from \"lib/search/indexLookup\";\nimport { SearchContextType } from \"../search/types\";\n\nconst searchOptions: SearchContextType = {\n initialSearchType: \"Books\",\n searchTypes: [\n \"Books\",\n \"Authors\",\n \"Series\",\n \"Lists\",\n \"Prompts\",\n \"Characters\",\n \"Users\",\n \"Publishers\",\n ],\n searchMultipleSources: true,\n initialUiState: {\n [indexLookup(\"Books\")]: {\n query: \"\",\n },\n },\n};\n\nconst QuickSearchModalWrapper = () => {\n const isVisible = useIsSearchVisibile();\n const dispatch = useDispatch();\n const setShowQuickSearch = useCallback((visible = false) => {\n dispatch(searchActions.setSearchVisible(visible));\n }, [isVisible]);\n\n return (\n \n );\n};\n\nexport default QuickSearchModalWrapper;\n","import { Suspense, lazy, useCallback, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport Modal from \"hardcover-ui/components/Modal\";\nimport Container from \"hardcover-ui/components/Container\";\nimport { useIsLoginVisible } from \"store/ui/uiSelector\";\nimport { uiActions } from \"store/ui/uiSlice\";\nimport LoadingSpinner from \"hardcover-ui/components/LoadingSpinner\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\nimport { usePage } from \"@inertiajs/react\";\n\nconst JoinOrLoginForm = lazy(() => import(\"components/join/JoinOrLoginForm\"));\n\nexport default function LoginModal() {\n const isLoggedIn = useIsLoggedIn();\n const dispatch = useDispatch();\n const showModalTab = useIsLoginVisible();\n const { pathName } = usePage().props;\n const [initialPath] = useState(pathName);\n\n const closeModal = useCallback(() => {\n dispatch(uiActions.toggleLoginVisible(false));\n }, [showModalTab]);\n\n // Close the modal if they navigate to a different page\n useEffect(() => {\n if (initialPath !== pathName) {\n dispatch(uiActions.toggleLoginVisible(false));\n }\n }, [pathName]);\n\n if (isLoggedIn) {\n return <>;\n }\n\n return (\n \n \n {showModalTab && (\n }>\n \n \n )}\n \n \n );\n}\n","import { Suspense, lazy } from \"react\";\nimport { Capacitor } from \"@capacitor/core\";\nimport useMount from \"hooks/useMount\";\n\nconst MobileManager = lazy(() => import(\"./MobileManager\"));\n\nexport default function MobileManagerWrapper() {\n const isNative = Capacitor.isNativePlatform();\n const mounted = useMount();\n\n if (!mounted || !isNative) {\n return false;\n }\n\n return (\n \n \n \n );\n}\n","import { Suspense, lazy, useCallback, useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport Modal from \"hardcover-ui/components/Modal\";\nimport Container from \"hardcover-ui/components/Container\";\nimport { useReport } from \"store/ui/uiSelector\";\nimport { uiActions } from \"store/ui/uiSlice\";\nimport LoadingSpinner from \"hardcover-ui/components/LoadingSpinner\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\nimport { usePage } from \"@inertiajs/react\";\n\nconst ReportModalContent = lazy(() => import(\"./ReportModalContent\"));\n\nexport default function ReportModal() {\n const report = useReport();\n const showModalTab = report ? (typeof(report) !== \"undefined\") : false;\n\n const dispatch = useDispatch();\n const { pathName } = usePage().props;\n const [initialPath] = useState(pathName);\n\n const closeModal = useCallback(() => {\n dispatch(uiActions.endReport());\n }, [report]);\n\n // Close the modal if they navigate to a different page\n useEffect(() => {\n if (initialPath !== pathName) {\n dispatch(uiActions.endReport());\n }\n }, [pathName]);\n\n return (\n \n \n {showModalTab && (\n }>\n \n \n )}\n \n \n );\n}\n","import { usePage } from \"@inertiajs/react\";\nimport { useEffect } from \"react\";\nimport { toast } from \"sonner\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\n\nexport default function FlashManager() {\n const { flash } = usePage().props;\n\n useEffect(() => {\n if(flash) {\n if (flash.notice) {\n toast.success(flash.notice);\n }\n if (flash.error) {\n toast.error(flash.error);\n }\n }\n }, [flash?.notice, flash?.error]);\n\n return <>;\n}\n","import QuickSearchModal from \"components/search/QuickSearchModal\";\nimport { useIsScreenSizeBiggerThanTailwindSize } from \"hooks/useIsScreenSizeBiggerThanTailwindSize\";\nimport { Toaster } from \"sonner\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport LoginModal from \"components/join/LoginModal\";\nimport MobileManagerWrapper from \"components/background/MobileManagerWrapper\";\nimport ReportModal from \"components/ReportDropdown/Report/ReportModal\";\nimport { lazy, Suspense } from \"react\";\nimport FlashManager from \"components/background/FlashManager\";\n\nconst ResponsiveTooltip = lazy(() => import(\"./ResponsiveTooltip\"));\n\nconst SharedPlaceholders = () => {\n const isLoggedIn = useIsLoggedIn();\n const isLarge = useIsScreenSizeBiggerThanTailwindSize(\"lg\");\n\n return (\n <>\n \n {isLoggedIn === false && }\n \n {isLarge && (\n \n \n \n )}\n \n \n \n \n );\n};\n\nexport default SharedPlaceholders;\n","import Button from \"hardcover-ui/components/Button\";\nimport { ButtonThemeProps } from \"hardcover-ui/theme/components/button\";\nimport { ReactElement } from \"react\";\n\ntype BackLinkProps = {\n size?: ButtonThemeProps[\"size\"];\n variant?: ButtonThemeProps[\"variant\"];\n children: ReactElement;\n};\n\nexport function BackButton({\n size = \"lg\",\n variant = \"primary\",\n children,\n}: BackLinkProps) {\n function goBack() {\n window.history.back();\n }\n\n return (\n \n );\n}\n","import { ComponentTheme } from \"hardcover-ui/types/base\";\n\nexport type HeadingThemeProps = {\n variant: \"primary\" | \"section\" | \"none\" | \"title\";\n size: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"lxg\" | \"xl\" | \"xxl\";\n level: 1 | 2 | 3 | 4 | 5 | 6;\n};\n\nconst headingBaseStyles = \"font-serif text-gray-800 dark:text-gray-200\";\n\nexport const headingTheme: ComponentTheme = {\n variant: {\n primary: `${headingBaseStyles}`,\n section: \"font-semibold tracking-wider uppercase\",\n none: \"\",\n title: \"font-serif\",\n },\n size: {\n none: \"\",\n xs: \"text-lg\",\n sm: \"text-xl\",\n md: \"text-2xl\",\n lg: \"text-3xl\",\n lxg: \"text-4xl\",\n xl: \"text-5xl\",\n xxl: \"text-7xl\",\n },\n};\n","/* eslint-disable react/jsx-props-no-spreading */\nimport {\n headingTheme,\n HeadingThemeProps,\n} from \"hardcover-ui/theme/components/heading\";\nimport classNames from \"lib/classNames\";\nimport { forwardRef, HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype Props = {\n variant?: HeadingThemeProps[\"variant\"];\n size?: HeadingThemeProps[\"size\"];\n level?: HeadingThemeProps[\"level\"];\n className?: string;\n} & Partial>;\n\nconst Heading = forwardRef>(\n (\n {\n children,\n className,\n size = \"lg\",\n level = 1,\n variant = \"primary\",\n ...rest\n },\n ref\n ) => {\n const finalClassName = classNames(\n headingTheme.variant[variant],\n headingTheme.size?.[size],\n className\n );\n\n const props = {\n ref,\n className: finalClassName,\n ...rest,\n };\n\n switch (level) {\n case 1:\n return

{children}

;\n case 2:\n return

{children}

;\n case 3:\n return

{children}

;\n case 4:\n return

{children}

;\n case 5:\n return
{children}
;\n case 6:\n return
{children}
;\n default:\n return

{children}

;\n }\n }\n);\n\nexport default Heading;\n","import { BackButton } from \"components/ui/BackButton\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport Text from \"hardcover-ui/components/Text\";\nimport { enlargeUrl } from \"lib/imageTools\";\nimport { ReactNode } from \"react\";\n\ntype NotFoundViewProps = {\n children?: ReactNode;\n};\n\nexport default function NotFoundView({ children }: NotFoundViewProps) {\n return (\n \n \n\n What you're searching for isn't here.\n\n
\n {children ? (\n <>{children}\n ) : (\n \n We could not find this place on Hardcover.\n \n )}\n\n

\n \n <>Go back\n \n

\n
\n
\n );\n}\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\nvar _$breadcrumbTypes_17 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual'];\n\n// Array#reduce\nvar _$reduce_26 = function (arr, fn, accum) {\n var val = accum;\n for (var i = 0, len = arr.length; i < len; i++) val = fn(val, arr[i], i, arr);\n return val;\n};\n\n/* removed: var _$reduce_26 = require('./reduce'); */;\n\n// Array#filter\nvar _$filter_21 = function (arr, fn) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n};\n\n/* removed: var _$reduce_26 = require('./reduce'); */;\n// Array#includes\nvar _$includes_22 = function (arr, x) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n};\n\n// Array#isArray\nvar _$isArray_23 = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\n/* eslint-disable-next-line no-prototype-builtins */\nvar _hasDontEnumBug = !{\n toString: null\n}.propertyIsEnumerable('toString');\nvar _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n// Object#keys\nvar _$keys_24 = function (obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n if (!_hasDontEnumBug) return result;\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n return result;\n};\n\nvar _$intRange_33 = function (min, max) {\n if (min === void 0) {\n min = 1;\n }\n if (max === void 0) {\n max = Infinity;\n }\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n};\n\n/* removed: var _$filter_21 = require('../es-utils/filter'); */;\n/* removed: var _$isArray_23 = require('../es-utils/is-array'); */;\nvar _$listOfFunctions_34 = function (value) {\n return typeof value === 'function' || _$isArray_23(value) && _$filter_21(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n};\n\nvar _$stringWithLength_35 = function (value) {\n return typeof value === 'string' && !!value.length;\n};\n\nvar _$config_14 = {};\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$keys_24 = require('./lib/es-utils/keys'); */;\n/* removed: var _$isArray_23 = require('./lib/es-utils/is-array'); */;\n/* removed: var _$includes_22 = require('./lib/es-utils/includes'); */;\n/* removed: var _$intRange_33 = require('./lib/validators/int-range'); */;\n/* removed: var _$stringWithLength_35 = require('./lib/validators/string-with-length'); */;\n/* removed: var _$listOfFunctions_34 = require('./lib/validators/list-of-functions'); */;\n/* removed: var _$breadcrumbTypes_17 = require('./lib/breadcrumb-types'); */;\nvar defaultErrorTypes = function () {\n return {\n unhandledExceptions: true,\n unhandledRejections: true\n };\n};\n_$config_14.schema = {\n apiKey: {\n defaultValue: function () {\n return null;\n },\n message: 'is required',\n validate: _$stringWithLength_35\n },\n appVersion: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_35(value);\n }\n },\n appType: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_35(value);\n }\n },\n autoDetectErrors: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n },\n enabledErrorTypes: {\n defaultValue: function () {\n return defaultErrorTypes();\n },\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: function (value) {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false;\n var providedKeys = _$keys_24(value);\n var defaultKeys = _$keys_24(defaultErrorTypes());\n // ensure it only has a subset of the allowed keys\n if (_$filter_21(providedKeys, function (k) {\n return _$includes_22(defaultKeys, k);\n }).length < providedKeys.length) return false;\n // ensure all of the values are boolean\n if (_$filter_21(_$keys_24(value), function (k) {\n return typeof value[k] !== 'boolean';\n }).length > 0) return false;\n return true;\n }\n },\n onError: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n onSession: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n onBreadcrumb: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_34\n },\n endpoints: {\n defaultValue: function (endpoints) {\n // only apply the default value if no endpoints have been provided, otherwise prevent delivery by setting to null\n if (typeof endpoints === 'undefined') {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n } else {\n return {\n notify: null,\n sessions: null\n };\n }\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: function (val) {\n return (\n // first, ensure it's an object\n val && typeof val === 'object' &&\n // notify and sessions must always be set\n _$stringWithLength_35(val.notify) && _$stringWithLength_35(val.sessions) &&\n // ensure no keys other than notify/session are set on endpoints object\n _$filter_21(_$keys_24(val), function (k) {\n return !_$includes_22(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoTrackSessions: {\n defaultValue: function (val) {\n return true;\n },\n message: 'should be true|false',\n validate: function (val) {\n return val === true || val === false;\n }\n },\n enabledReleaseStages: {\n defaultValue: function () {\n return null;\n },\n message: 'should be an array of strings',\n validate: function (value) {\n return value === null || _$isArray_23(value) && _$filter_21(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function () {\n return 'production';\n },\n message: 'should be a string',\n validate: function (value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function () {\n return 25;\n },\n message: 'should be a number ≤100',\n validate: function (value) {\n return _$intRange_33(0, 100)(value);\n }\n },\n enabledBreadcrumbTypes: {\n defaultValue: function () {\n return _$breadcrumbTypes_17;\n },\n message: \"should be null or a list of available breadcrumb types (\" + _$breadcrumbTypes_17.join(',') + \")\",\n validate: function (value) {\n return value === null || _$isArray_23(value) && _$reduce_26(value, function (accum, maybeType) {\n if (accum === false) return accum;\n return _$includes_22(_$breadcrumbTypes_17, maybeType);\n }, true);\n }\n },\n context: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || typeof value === 'string';\n }\n },\n user: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object with { id, email, name } properties',\n validate: function (value) {\n return value === null || value && _$reduce_26(_$keys_24(value), function (accum, key) {\n return accum && _$includes_22(['id', 'email', 'name'], key);\n }, true);\n }\n },\n metadata: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object',\n validate: function (value) {\n return typeof value === 'object' && value !== null;\n }\n },\n logger: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function (value) {\n return !value || value && _$reduce_26(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n redactedKeys: {\n defaultValue: function () {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n },\n plugins: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of plugin objects',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (p) {\n return p && typeof p === 'object' && typeof p.load === 'function';\n }).length;\n }\n },\n featureFlags: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of objects that have a \"name\" property',\n validate: function (value) {\n return _$isArray_23(value) && value.length === _$filter_21(value, function (feature) {\n return feature && typeof feature === 'object' && typeof feature.name === 'string';\n }).length;\n }\n },\n reportUnhandledPromiseRejectionsAsHandled: {\n defaultValue: function () {\n return false;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n },\n sendPayloadChecksums: {\n defaultValue: function () {\n return false;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n};\n\n// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nvar _$assign_20 = 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\n/* removed: var _$reduce_26 = require('./reduce'); */;\n\n// Array#map\nvar _$map_25 = function (arr, fn) {\n return _$reduce_26(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n};\n\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); }\nvar schema = _$config_14.schema;\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\nvar _$config_10 = {\n releaseStage: _$assign_20({}, schema.releaseStage, {\n defaultValue: function () {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n }\n }),\n appType: _extends({}, schema.appType, {\n defaultValue: function () {\n return 'browser';\n }\n }),\n logger: _$assign_20({}, schema.logger, {\n defaultValue: function () {\n return (\n // set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n};\nvar getPrefixedConsole = function () {\n var logger = {};\n var consoleLog = console.log;\n _$map_25(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n return logger;\n};\n\nvar Breadcrumb = /*#__PURE__*/function () {\n function Breadcrumb(message, metadata, type, timestamp) {\n if (timestamp === void 0) {\n timestamp = new Date();\n }\n this.type = type;\n this.message = message;\n this.metadata = metadata;\n this.timestamp = timestamp;\n }\n var _proto = Breadcrumb.prototype;\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n };\n };\n return Breadcrumb;\n}();\nvar _$Breadcrumb_12 = Breadcrumb;\n\nvar _$stackframe_9 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof _$stackframe_9 === 'object') {\n _$stackframe_9 = factory();\n } else {\n root.StackFrame = factory();\n }\n})(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var objectProps = ['evalOrigin'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps, objectProps);\n function StackFrame(obj) {\n if (!obj) return;\n for (var i = 0; i < props.length; i++) {\n if (obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n StackFrame.prototype = {\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n getEvalOrigin: function () {\n return this.evalOrigin;\n },\n setEvalOrigin: function (v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function () {\n var fileName = this.getFileName() || '';\n var lineNumber = this.getLineNumber() || '';\n var columnNumber = this.getColumnNumber() || '';\n var functionName = this.getFunctionName() || '';\n if (this.getIsEval()) {\n if (fileName) {\n return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return '[eval]:' + lineNumber + ':' + columnNumber;\n }\n if (functionName) {\n return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n }\n return fileName + ':' + lineNumber + ':' + columnNumber;\n }\n };\n StackFrame.fromString = function StackFrame$$fromString(str) {\n var argsStartIndex = str.indexOf('(');\n var argsEndIndex = str.lastIndexOf(')');\n var functionName = str.substring(0, argsStartIndex);\n var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n var locationString = str.substring(argsEndIndex + 1);\n if (locationString.indexOf('@') === 0) {\n var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n var fileName = parts[1];\n var lineNumber = parts[2];\n var columnNumber = parts[3];\n }\n return new StackFrame({\n functionName: functionName,\n args: args || undefined,\n fileName: fileName,\n lineNumber: lineNumber || undefined,\n columnNumber: columnNumber || undefined\n });\n };\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n return StackFrame;\n});\n\nvar _$stackGenerator_8 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof _$stackGenerator_8 === 'object') {\n _$stackGenerator_8 = factory(_$stackframe_9);\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n})(this, function (StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n});\n\nvar _$errorStackParser_6 = {};\n(function (root, factory) {\n 'use strict';\n\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof _$errorStackParser_6 === 'object') {\n _$errorStackParser_6 = factory(_$stackframe_9);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n})(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1);\n // if a location was matched, pass it to extractLocation() otherwise pop the last token\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n});\n\nvar _$errorStackParser_19 = _$errorStackParser_6;\n\nvar _$safeJsonStringify_5 = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : [];\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space);\n};\nvar MAX_DEPTH = 20;\nvar MAX_EDGES = 25000;\nvar MIN_PRESERVED_DEPTH = 8;\nvar REPLACEMENT_NODE = '...';\nfunction isError(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n}\nfunction throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n}\nfunction find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n return false;\n}\n\n// returns true if the string `path` starts with any of the provided `paths`\nfunction isDescendent(paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true;\n }\n return false;\n}\nfunction shouldRedact(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n return false;\n}\nfunction __isArray_5(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\nfunction safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n}\nfunction prepareObjForSerialization(obj, redactedKeys, redactedPaths) {\n var seen = []; // store references to objects we have seen before\n var edges = 0;\n function visit(obj, path) {\n function edgesExceeded() {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES;\n }\n edges++;\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || typeof obj !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--;\n var fResult = visit(obj.toJSON(), path);\n seen.pop();\n return fResult;\n } catch (err) {\n return throwsMessage(err);\n }\n }\n var er = isError(obj);\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n if (__isArray_5(obj)) {\n var aResult = [];\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n seen.pop();\n return aResult;\n }\n var result = {};\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]';\n continue;\n }\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n seen.pop();\n return result;\n }\n return visit(obj, []);\n}\n\n/* removed: var _$map_25 = require('./es-utils/map'); */;\n/* removed: var _$filter_21 = require('./es-utils/filter'); */;\n/* removed: var _$isArray_23 = require('./es-utils/is-array'); */;\n/* removed: var _$safeJsonStringify_5 = require('@bugsnag/safe-json-stringify'); */;\nfunction add(existingFeatures, existingFeatureKeys, name, variant) {\n if (typeof name !== 'string') {\n return;\n }\n if (variant === undefined) {\n variant = null;\n } else if (variant !== null && typeof variant !== 'string') {\n variant = _$safeJsonStringify_5(variant);\n }\n var existingIndex = existingFeatureKeys[name];\n if (typeof existingIndex === 'number') {\n existingFeatures[existingIndex] = {\n name: name,\n variant: variant\n };\n return;\n }\n existingFeatures.push({\n name: name,\n variant: variant\n });\n existingFeatureKeys[name] = existingFeatures.length - 1;\n}\nfunction merge(existingFeatures, newFeatures, existingFeatureKeys) {\n if (!_$isArray_23(newFeatures)) {\n return;\n }\n for (var i = 0; i < newFeatures.length; ++i) {\n var feature = newFeatures[i];\n if (feature === null || typeof feature !== 'object') {\n continue;\n }\n\n // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n add(existingFeatures, existingFeatureKeys, feature.name, feature.variant);\n }\n return existingFeatures;\n}\n\n// convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\nfunction toEventApi(featureFlags) {\n return _$map_25(_$filter_21(featureFlags, Boolean), function (_ref) {\n var name = _ref.name,\n variant = _ref.variant;\n var flag = {\n featureFlag: name\n };\n\n // don't add a 'variant' property unless there's actually a value\n if (typeof variant === 'string') {\n flag.variant = variant;\n }\n return flag;\n });\n}\nfunction clear(features, featuresIndex, name) {\n var existingIndex = featuresIndex[name];\n if (typeof existingIndex === 'number') {\n features[existingIndex] = null;\n delete featuresIndex[name];\n }\n}\nvar _$featureFlagDelegate_27 = {\n add: add,\n clear: clear,\n merge: merge,\n toEventApi: toEventApi\n};\n\n// Given `err` which may be an error, does it have a stack property which is a string?\nvar _$hasStack_28 = function (err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n};\n\n/**\n * Expose `isError`.\n */\n\nvar _$isError_7 = __isError_7;\n\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction __isError_7(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return value instanceof Error;\n }\n}\n\nvar _$iserror_29 = _$isError_7;\n\n/* removed: var _$assign_20 = require('./es-utils/assign'); */;\nvar __add_31 = function (state, section, keyOrObj, maybeVal) {\n var _updates;\n if (!section) return;\n var updates;\n\n // addMetadata(\"section\", null) -> clears section\n if (keyOrObj === null) return __clear_31(state, section);\n\n // normalise the two supported input types into object form\n if (typeof keyOrObj === 'object') updates = keyOrObj;\n if (typeof keyOrObj === 'string') updates = (_updates = {}, _updates[keyOrObj] = maybeVal, _updates);\n\n // exit if we don't have an updates object at this point\n if (!updates) return;\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return;\n }\n\n // ensure a section with this name exists\n if (!state[section]) state[section] = {};\n\n // merge the updates with the existing section\n state[section] = _$assign_20({}, state[section], updates);\n};\nvar get = function (state, section, key) {\n if (typeof section !== 'string') return undefined;\n if (!key) {\n return state[section];\n }\n if (state[section]) {\n return state[section][key];\n }\n return undefined;\n};\nvar __clear_31 = function (state, section, key) {\n if (typeof section !== 'string') return;\n\n // clear an entire section\n if (!key) {\n delete state[section];\n return;\n }\n\n // preventing the __proto__ property from being used as a key\n if (section === '__proto__' || section === 'constructor' || section === 'prototype') {\n return;\n }\n\n // clear a single value from a section\n if (state[section]) {\n delete state[section][key];\n }\n};\nvar _$metadataDelegate_31 = {\n add: __add_31,\n get: get,\n clear: __clear_31\n};\n\nfunction ___extends_15() { ___extends_15 = 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_15.apply(this, arguments); }\n/* removed: var _$errorStackParser_19 = require('./lib/error-stack-parser'); */;\n/* removed: var _$stackGenerator_8 = require('stack-generator'); */;\n/* removed: var _$hasStack_28 = require('./lib/has-stack'); */;\n/* removed: var _$map_25 = require('./lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$assign_20 = require('./lib/es-utils/assign'); */;\n/* removed: var _$metadataDelegate_31 = require('./lib/metadata-delegate'); */;\n/* removed: var _$featureFlagDelegate_27 = require('./lib/feature-flag-delegate'); */;\n/* removed: var _$iserror_29 = require('./lib/iserror'); */;\nvar Event = /*#__PURE__*/function () {\n function Event(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n if (handledState === void 0) {\n handledState = defaultHandledState();\n }\n this.apiKey = undefined;\n this.context = undefined;\n this.groupingHash = undefined;\n this.originalError = originalError;\n this._handledState = handledState;\n this.severity = this._handledState.severity;\n this.unhandled = this._handledState.unhandled;\n this.app = {};\n this.device = {};\n this.request = {};\n this.breadcrumbs = [];\n this.threads = [];\n this._metadata = {};\n this._features = [];\n this._featuresIndex = {};\n this._user = {};\n this._session = undefined;\n this._correlation = undefined;\n this.errors = [createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)];\n\n // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n var _proto = Event.prototype;\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_31.add(this._metadata, section, keyOrObj, maybeVal);\n }\n\n /**\n * Associate this event with a specific trace. This is usually done automatically when\n * using bugsnag-js-performance, but can also be set manually if required.\n *\n * @param traceId the ID of the trace the event occurred within\n * @param spanId the ID of the span that the event occurred within\n */;\n _proto.setTraceCorrelation = function setTraceCorrelation(traceId, spanId) {\n if (typeof traceId === 'string') {\n this._correlation = ___extends_15({\n traceId: traceId\n }, typeof spanId === 'string' ? {\n spanId: spanId\n } : {});\n }\n };\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_31.get(this._metadata, section, key);\n };\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_31.clear(this._metadata, section, key);\n };\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n _$featureFlagDelegate_27.add(this._features, this._featuresIndex, name, variant);\n };\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n _$featureFlagDelegate_27.merge(this._features, featureFlags, this._featuresIndex);\n };\n _proto.getFeatureFlags = function getFeatureFlags() {\n return _$featureFlagDelegate_27.toEventApi(this._features);\n };\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n _$featureFlagDelegate_27.clear(this._features, this._featuresIndex, name);\n };\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = [];\n this._featuresIndex = {};\n };\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: _$map_25(this.errors, function (er) {\n return _$assign_20({}, er, {\n message: er.errorMessage\n });\n }),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: this.getFeatureFlags(),\n correlation: this._correlation\n };\n };\n return Event;\n}(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\nvar formatStackframe = function (frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n };\n // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n return f;\n};\nvar normaliseFunctionName = function (name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n};\nvar defaultHandledState = function () {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n};\nvar ensureString = function (str) {\n return typeof str === 'string' ? str : '';\n};\nfunction createBugsnagError(errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type: type,\n stacktrace: _$reduce_26(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame);\n // don't include a stackframe if none of its properties are defined\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\n }\n }, [])\n };\n}\nfunction getCauseStack(error) {\n if (error.cause) {\n return [error].concat(getCauseStack(error.cause));\n } else {\n return [error];\n }\n}\n\n// Helpers\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (_$hasStack_28(error)) return _$errorStackParser_19.parse(error).slice(errorFramesToSkip);\n // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n try {\n return _$filter_21(_$stackGenerator_8.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + backtraceFramesToSkip);\n } catch (e) {\n return [];\n }\n};\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip, logger) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger),\n error = _normaliseError[0],\n internalFrames = _normaliseError[1];\n var event;\n try {\n var stacktrace = Event.getStacktrace(error,\n // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0,\n // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip);\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError);\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError);\n }\n if (error.name === 'InvalidError') {\n event.addMetadata(\"\" + component, 'non-error parameter', makeSerialisable(maybeError));\n }\n if (error.cause) {\n var _event$errors;\n var causes = getCauseStack(error).slice(1);\n var normalisedCauses = _$map_25(causes, function (cause) {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n var stacktrace = _$iserror_29(cause) && _$hasStack_28(cause) ? _$errorStackParser_19.parse(cause) : [];\n var _normaliseError2 = normaliseError(cause, true, 'error cause'),\n error = _normaliseError2[0];\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause));\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace);\n });\n (_event$errors = event.errors).push.apply(_event$errors, normalisedCauses);\n }\n return event;\n};\nvar makeSerialisable = function (err) {\n if (err === null) return 'null';\n if (err === undefined) return 'undefined';\n return err;\n};\nvar normaliseError = function (maybeError, tolerateNonErrors, component, logger) {\n var error;\n var internalFrames = 0;\n var createAndLogInputError = function (reason) {\n var verb = component === 'error cause' ? 'was' : 'received';\n if (logger) logger.warn(component + \" \" + verb + \" a non-error: \\\"\" + reason + \"\\\"\");\n var err = new Error(component + \" \" + verb + \" a non-error. See \\\"\" + component + \"\\\" tab for more detail.\");\n err.name = 'InvalidError';\n return err;\n };\n\n // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n if (!tolerateNonErrors) {\n if (_$iserror_29(maybeError)) {\n error = maybeError;\n } else {\n error = createAndLogInputError(typeof maybeError);\n internalFrames += 2;\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError));\n internalFrames += 1;\n break;\n case 'function':\n error = createAndLogInputError('function');\n internalFrames += 2;\n break;\n case 'object':\n if (maybeError !== null && _$iserror_29(maybeError)) {\n error = maybeError;\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage);\n error.name = maybeError.name || maybeError.errorClass;\n internalFrames += 1;\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object');\n internalFrames += 2;\n }\n break;\n default:\n error = createAndLogInputError('nothing');\n internalFrames += 2;\n }\n }\n if (!_$hasStack_28(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error;\n } catch (e) {\n if (_$hasStack_28(e)) {\n error = e;\n // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n internalFrames = 1;\n }\n }\n }\n return [error, internalFrames];\n};\n\n// default value for stacktrace.type\nEvent.__type = 'browserjs';\nvar hasNecessaryFields = function (error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n};\nvar _$Event_15 = Event;\n\n// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nvar _$asyncEvery_16 = function (arr, fn, cb) {\n var index = 0;\n var next = function () {\n if (index >= arr.length) return cb(null, true);\n fn(arr[index], function (err, result) {\n if (err) return cb(err);\n if (result === false) return cb(null, false);\n index++;\n next();\n });\n };\n next();\n};\n\n/* removed: var _$asyncEvery_16 = require('./async-every'); */;\nvar _$callbackRunner_18 = function (callbacks, event, onCallbackError, cb) {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n var runMaybeAsyncCallback = function (fn, cb) {\n if (typeof fn !== 'function') return cb(null);\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(event);\n // check if it returned a \"thenable\" (promise)\n if (ret && typeof ret.then === 'function') {\n return ret.then(\n // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, val);\n });\n },\n // reject\n function (err) {\n setTimeout(function () {\n onCallbackError(err);\n return cb(null, true);\n });\n });\n }\n return cb(null, ret);\n }\n // if function is async…\n fn(event, function (err, result) {\n if (err) {\n onCallbackError(err);\n return cb(null);\n }\n cb(null, result);\n });\n } catch (e) {\n onCallbackError(e);\n cb(null);\n }\n };\n _$asyncEvery_16(callbacks, runMaybeAsyncCallback, cb);\n};\n\nvar _$syncCallbackRunner_32 = function (callbacks, callbackArg, callbackType, logger) {\n var ignore = false;\n var cbs = callbacks.slice();\n while (!ignore) {\n if (!cbs.length) break;\n try {\n ignore = cbs.pop()(callbackArg) === false;\n } catch (e) {\n logger.error(\"Error occurred in \" + callbackType + \" callback, continuing anyway\\u2026\");\n logger.error(e);\n }\n }\n return ignore;\n};\n\nvar _$pad_4 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n\n/* removed: var _$pad_4 = require('./pad.js'); */;\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = _$pad_4((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\nvar _$fingerprint_2 = function fingerprint() {\n return clientId;\n};\n\n/**\n * Check the provided value is a valid device id\n * @param {unknown} value\n * @returns\n */\nvar _$isCuid_3 = function isCuid(value) {\n return typeof value === 'string' && /^c[a-z0-9]{20,32}$/.test(value);\n};\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n\n/* removed: var _$fingerprint_2 = require('./lib/fingerprint.js'); */;\n/* removed: var _$isCuid_3 = require('./lib/is-cuid.js'); */;\n/* removed: var _$pad_4 = require('./lib/pad.js'); */;\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\nfunction randomBlock() {\n return _$pad_4((Math.random() * discreteValues << 0).toString(base), blockSize);\n}\nfunction safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n return c - 1;\n}\nfunction cuid() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_4(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_2(),\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n return letter + timestamp + counter + print + random;\n}\ncuid.fingerprint = _$fingerprint_2;\ncuid.isCuid = _$isCuid_3;\nvar _$cuid_1 = cuid;\n\n/* removed: var _$cuid_1 = require('@bugsnag/cuid'); */;\nvar Session = /*#__PURE__*/function () {\n function Session() {\n this.id = _$cuid_1();\n this.startedAt = new Date();\n this._handled = 0;\n this._unhandled = 0;\n this._user = {};\n this.app = {};\n this.device = {};\n }\n var _proto = Session.prototype;\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n _proto._track = function _track(event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n return Session;\n}();\nvar _$Session_36 = Session;\n\n/* removed: var _$config_14 = require('./config'); */;\n/* removed: var _$Event_15 = require('./event'); */;\n/* removed: var _$Breadcrumb_12 = require('./breadcrumb'); */;\n/* removed: var _$Session_36 = require('./session'); */;\n/* removed: var _$map_25 = require('./lib/es-utils/map'); */;\n/* removed: var _$includes_22 = require('./lib/es-utils/includes'); */;\n/* removed: var _$filter_21 = require('./lib/es-utils/filter'); */;\n/* removed: var _$reduce_26 = require('./lib/es-utils/reduce'); */;\n/* removed: var _$keys_24 = require('./lib/es-utils/keys'); */;\n/* removed: var _$assign_20 = require('./lib/es-utils/assign'); */;\n/* removed: var _$callbackRunner_18 = require('./lib/callback-runner'); */;\n/* removed: var _$metadataDelegate_31 = require('./lib/metadata-delegate'); */;\n/* removed: var _$syncCallbackRunner_32 = require('./lib/sync-callback-runner'); */;\n/* removed: var _$breadcrumbTypes_17 = require('./lib/breadcrumb-types'); */;\nvar __add_13 = _$featureFlagDelegate_27.add,\n __clear_13 = _$featureFlagDelegate_27.clear,\n __merge_13 = _$featureFlagDelegate_27.merge;\nvar noop = function () {};\nvar Client = /*#__PURE__*/function () {\n function Client(configuration, schema, internalPlugins, notifier) {\n var _this = this;\n if (schema === void 0) {\n schema = _$config_14.schema;\n }\n if (internalPlugins === void 0) {\n internalPlugins = [];\n }\n // notifier id\n this._notifier = notifier;\n\n // intialise opts and config\n this._config = {};\n this._schema = schema;\n\n // i/o\n this._delivery = {\n sendSession: noop,\n sendEvent: noop\n };\n this._logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n };\n\n // plugins\n this._plugins = {};\n\n // state\n this._breadcrumbs = [];\n this._session = null;\n this._metadata = {};\n this._featuresIndex = {};\n this._features = [];\n this._context = undefined;\n this._user = {};\n\n // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n };\n\n // expose internal constructors\n this.Client = Client;\n this.Event = _$Event_15;\n this.Breadcrumb = _$Breadcrumb_12;\n this.Session = _$Session_36;\n this._config = this._configure(configuration, internalPlugins);\n _$map_25(internalPlugins.concat(this._config.plugins), function (pl) {\n if (pl) _this._loadPlugin(pl);\n });\n\n // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n this._depth = 1;\n var self = this;\n var notify = this.notify;\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n var _proto = Client.prototype;\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_31.add(this._metadata, section, keyOrObj, maybeVal);\n };\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_31.get(this._metadata, section, key);\n };\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_31.clear(this._metadata, section, key);\n };\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n __add_13(this._features, this._featuresIndex, name, variant);\n };\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n __merge_13(this._features, featureFlags, this._featuresIndex);\n };\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n __clear_13(this._features, this._featuresIndex, name);\n };\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = [];\n this._featuresIndex = {};\n };\n _proto.getContext = function getContext() {\n return this._context;\n };\n _proto.setContext = function setContext(c) {\n this._context = c;\n };\n _proto._configure = function _configure(opts, internalPlugins) {\n var schema = _$reduce_26(internalPlugins, function (schema, plugin) {\n if (plugin && plugin.configSchema) return _$assign_20({}, schema, plugin.configSchema);\n return schema;\n }, this._schema);\n\n // sendPayloadChecksums is false by default unless custom endpoints are not specified\n if (!opts.endpoints) {\n opts.sendPayloadChecksums = 'sendPayloadChecksums' in opts ? opts.sendPayloadChecksums : true;\n }\n\n // accumulate configuration and error messages\n var _reduce = _$reduce_26(_$keys_24(schema), function (accum, key) {\n var defaultValue = schema[key].defaultValue(opts[key]);\n if (opts[key] !== undefined) {\n var valid = schema[key].validate(opts[key]);\n if (!valid) {\n accum.errors[key] = schema[key].message;\n accum.config[key] = defaultValue;\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = _$assign_20(defaultValue, opts[key]);\n } else {\n accum.config[key] = opts[key];\n }\n }\n } else {\n accum.config[key] = defaultValue;\n }\n return accum;\n }, {\n errors: {},\n config: {}\n }),\n errors = _reduce.errors,\n config = _reduce.config;\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set');\n // warn about an apikey that is not of the expected format\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters';\n }\n\n // update and elevate some options\n this._metadata = _$assign_20({}, config.metadata);\n __merge_13(this._features, config.featureFlags, this._featuresIndex);\n this._user = _$assign_20({}, config.user);\n this._context = config.context;\n if (config.logger) this._logger = config.logger;\n\n // add callbacks\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError);\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb);\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession);\n\n // finally warn about any invalid config where we fell back to the default\n if (_$keys_24(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts));\n }\n return config;\n };\n _proto.getUser = function getUser() {\n return this._user;\n };\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n _proto._loadPlugin = function _loadPlugin(plugin) {\n var result = plugin.load(this);\n // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n };\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n _proto._setDelivery = function _setDelivery(d) {\n this._delivery = d(this);\n };\n _proto.startSession = function startSession() {\n var session = new _$Session_36();\n session.app.releaseStage = this._config.releaseStage;\n session.app.version = this._config.appVersion;\n session.app.type = this._config.appType;\n session._user = _$assign_20({}, this._user);\n\n // run onSession callbacks\n var ignore = _$syncCallbackRunner_32(this._cbs.s, session, 'onSession', this._logger);\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback');\n return this;\n }\n return this._sessionDelegate.startSession(this, session);\n };\n _proto.addOnError = function addOnError(fn, front) {\n if (front === void 0) {\n front = false;\n }\n this._cbs.e[front ? 'unshift' : 'push'](fn);\n };\n _proto.removeOnError = function removeOnError(fn) {\n this._cbs.e = _$filter_21(this._cbs.e, function (f) {\n return f !== fn;\n });\n };\n _proto._addOnSessionPayload = function _addOnSessionPayload(fn) {\n this._cbs.sp.push(fn);\n };\n _proto.addOnSession = function addOnSession(fn) {\n this._cbs.s.push(fn);\n };\n _proto.removeOnSession = function removeOnSession(fn) {\n this._cbs.s = _$filter_21(this._cbs.s, function (f) {\n return f !== fn;\n });\n };\n _proto.addOnBreadcrumb = function addOnBreadcrumb(fn, front) {\n if (front === void 0) {\n front = false;\n }\n this._cbs.b[front ? 'unshift' : 'push'](fn);\n };\n _proto.removeOnBreadcrumb = function removeOnBreadcrumb(fn) {\n this._cbs.b = _$filter_21(this._cbs.b, function (f) {\n return f !== fn;\n });\n };\n _proto.pauseSession = function pauseSession() {\n return this._sessionDelegate.pauseSession(this);\n };\n _proto.resumeSession = function resumeSession() {\n return this._sessionDelegate.resumeSession(this);\n };\n _proto.leaveBreadcrumb = function leaveBreadcrumb(message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : '';\n type = typeof type === 'string' && _$includes_22(_$breadcrumbTypes_17, type) ? type : 'manual';\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {};\n\n // if no message, discard\n if (!message) return;\n var crumb = new _$Breadcrumb_12(message, metadata, type);\n\n // run onBreadcrumb callbacks\n var ignore = _$syncCallbackRunner_32(this._cbs.b, crumb, 'onBreadcrumb', this._logger);\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback');\n return;\n }\n\n // push the valid crumb onto the queue and maintain the length\n this._breadcrumbs.push(crumb);\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs);\n }\n };\n _proto._isBreadcrumbTypeEnabled = function _isBreadcrumbTypeEnabled(type) {\n var types = this._config.enabledBreadcrumbTypes;\n return types === null || _$includes_22(types, type);\n };\n _proto.notify = function notify(maybeError, onError, postReportCallback) {\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n var event = _$Event_15.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger);\n this._notify(event, onError, postReportCallback);\n };\n _proto._notify = function _notify(event, onError, postReportCallback) {\n var _this2 = this;\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n event.app = _$assign_20({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n });\n event.context = event.context || this._context;\n event._metadata = _$assign_20({}, event._metadata, this._metadata);\n event._user = _$assign_20({}, event._user, this._user);\n event.breadcrumbs = this._breadcrumbs.slice();\n __merge_13(event._features, this._features, event._featuresIndex);\n\n // exit early if events should not be sent on the current releaseStage\n if (this._config.enabledReleaseStages !== null && !_$includes_22(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration');\n return postReportCallback(null, event);\n }\n var originalSeverity = event.severity;\n var onCallbackError = function (err) {\n // errors in callbacks are tolerated but we want to log them out\n _this2._logger.error('Error occurred in onError callback, continuing anyway…');\n _this2._logger.error(err);\n };\n var callbacks = [].concat(this._cbs.e).concat(onError);\n _$callbackRunner_18(callbacks, event, onCallbackError, function (err, shouldSend) {\n if (err) onCallbackError(err);\n if (!shouldSend) {\n _this2._logger.debug('Event not sent due to onError callback');\n return postReportCallback(null, event);\n }\n if (_this2._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(_this2, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error');\n }\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true;\n event._handledState.unhandled = event.unhandled;\n }\n if (_this2._session) {\n _this2._session._track(event);\n event._session = _this2._session;\n }\n _this2._delivery.sendEvent({\n apiKey: event.apiKey || _this2._config.apiKey,\n notifier: _this2._notifier,\n events: [event]\n }, function (err) {\n return postReportCallback(err, event);\n });\n });\n };\n return Client;\n}();\nvar generateConfigErrorMessage = function (errors, rawInput) {\n var er = new Error(\"Invalid configuration\\n\" + _$map_25(_$keys_24(errors), function (key) {\n return \" - \" + key + \" \" + errors[key] + \", got \" + stringify(rawInput[key]);\n }).join('\\n\\n'));\n return er;\n};\nvar stringify = function (val) {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val);\n default:\n return String(val);\n }\n};\nvar _$Client_13 = Client;\n\nvar _$jsonPayload_30 = {};\n/* removed: var _$safeJsonStringify_5 = require('@bugsnag/safe-json-stringify'); */;\nvar EVENT_REDACTION_PATHS = ['events.[].metaData', 'events.[].breadcrumbs.[].metaData', 'events.[].request'];\n_$jsonPayload_30.event = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_5(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetadata was removed\"\n };\n payload = _$safeJsonStringify_5(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n }\n return payload;\n};\n_$jsonPayload_30.session = function (session, redactedKeys) {\n var payload = _$safeJsonStringify_5(session, null, null);\n return payload;\n};\n\nvar _$delivery_37 = {};\n/* removed: var _$jsonPayload_30 = require('@bugsnag/core/lib/json-payload'); */;\n_$delivery_37 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n if (client._config.endpoints.notify === null) {\n var err = new Error('Event not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var url = getApiUrl(client._config, 'notify', '4', win);\n var body = _$jsonPayload_30.event(event, client._config.redactedKeys);\n var req = new win.XDomainRequest();\n req.onload = function () {\n cb(null);\n };\n req.onerror = function () {\n var err = new Error('Event failed to send');\n client._logger.error('Event failed to send…', err);\n if (body.length > 10e5) {\n client._logger.warn(\"Event oversized (\" + (body.length / 10e5).toFixed(2) + \" MB)\");\n }\n cb(err);\n };\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(body);\n } catch (e) {\n client._logger.error(e);\n cb(e);\n }\n }, 0);\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n if (client._config.endpoints.sessions === null) {\n var err = new Error('Session not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var url = getApiUrl(client._config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n req.onload = function () {\n cb(null);\n };\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_30.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n cb(e);\n }\n }, 0);\n }\n };\n};\nvar getApiUrl = function (config, endpoint, version, win) {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n var isoDate = JSON.parse(JSON.stringify(new Date()));\n var url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol);\n return url + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(isoDate);\n};\nvar matchPageProtocol = _$delivery_37._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n};\n\n/* removed: var _$jsonPayload_30 = require('@bugsnag/core/lib/json-payload'); */;\nfunction getIntegrityHeaderValue(windowOrWorkerGlobalScope, requestBody) {\n if (windowOrWorkerGlobalScope.isSecureContext && windowOrWorkerGlobalScope.crypto && windowOrWorkerGlobalScope.crypto.subtle && windowOrWorkerGlobalScope.crypto.subtle.digest && typeof TextEncoder === 'function') {\n var msgUint8 = new TextEncoder().encode(requestBody);\n return windowOrWorkerGlobalScope.crypto.subtle.digest('SHA-1', msgUint8).then(function (hashBuffer) {\n var hashArray = Array.from(new Uint8Array(hashBuffer));\n var hashHex = hashArray.map(function (b) {\n return b.toString(16).padStart(2, '0');\n }).join('');\n return 'sha1 ' + hashHex;\n });\n }\n return Promise.resolve();\n}\nvar _$delivery_38 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n try {\n var url = client._config.endpoints.notify;\n if (url === null) {\n var err = new Error('Event not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var req = new win.XMLHttpRequest();\n var body = _$jsonPayload_30.event(event, client._config.redactedKeys);\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n var status = req.status;\n if (status === 0 || status >= 400) {\n var _err = new Error(\"Request failed with status \" + status);\n client._logger.error('Event failed to send…', _err);\n if (body.length > 10e5) {\n client._logger.warn(\"Event oversized (\" + (body.length / 10e5).toFixed(2) + \" MB)\");\n }\n cb(_err);\n } else {\n cb(null);\n }\n }\n };\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then(function (integrity) {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity);\n }\n req.send(body);\n })[\"catch\"](function (err) {\n client._logger.error(err);\n req.send(body);\n });\n } else {\n req.send(body);\n }\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n try {\n var url = client._config.endpoints.sessions;\n if (url === null) {\n var err = new Error('Session not sent due to incomplete endpoint configuration');\n return cb(err);\n }\n var req = new win.XMLHttpRequest();\n var body = _$jsonPayload_30.session(session, client._config.redactedKeys);\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) {\n var status = req.status;\n if (status === 0 || status >= 400) {\n var _err2 = new Error(\"Request failed with status \" + status);\n client._logger.error('Session failed to send…', _err2);\n cb(_err2);\n } else {\n cb(null);\n }\n }\n };\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n if (client._config.sendPayloadChecksums && typeof Promise !== 'undefined' && Promise.toString().indexOf('[native code]') !== -1) {\n getIntegrityHeaderValue(win, body).then(function (integrity) {\n if (integrity) {\n req.setRequestHeader('Bugsnag-Integrity', integrity);\n }\n req.send(body);\n })[\"catch\"](function (err) {\n client._logger.error(err);\n req.send(body);\n });\n } else {\n req.send(body);\n }\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n};\n\nvar appStart = new Date();\nvar reset = function () {\n appStart = new Date();\n};\nvar _$app_39 = {\n name: 'appDuration',\n load: function (client) {\n client.addOnError(function (event) {\n var now = new Date();\n event.app.duration = now - appStart;\n }, true);\n return {\n reset: reset\n };\n }\n};\n\n/*\n * Sets the default context to be the current URL\n */\nvar _$context_40 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.context !== undefined) return;\n event.context = win.location.pathname;\n }, true);\n }\n };\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\nvar BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id';\nvar getDeviceId = function (win) {\n try {\n var storage = win.localStorage;\n var id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY);\n\n // If we get an ID, make sure it looks like a valid cuid. The length can\n // fluctuate slightly, so some leeway is built in\n if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n return id;\n }\n /* removed: var _$cuid_1 = require('@bugsnag/cuid'); */;\n id = _$cuid_1();\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id);\n return id;\n } catch (err) {\n // If localStorage is not available (e.g. because it's disabled) then give up\n }\n};\n\n/*\n * Automatically detects browser device details\n */\nvar _$device_41 = function (nav, win) {\n if (nav === void 0) {\n nav = navigator;\n }\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n };\n if (win && win.screen && win.screen.orientation && win.screen.orientation.type) {\n device.orientation = win.screen.orientation.type;\n } else if (win && win.document) {\n device.orientation = win.document.documentElement.clientWidth > win.document.documentElement.clientHeight ? 'landscape' : 'portrait';\n }\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId(win);\n }\n client.addOnSession(function (session) {\n session.device = _$assign_20({}, session.device, device);\n // only set device id if collectUserIp is false\n if (!client._config.collectUserIp) setDefaultUserId(session);\n });\n\n // add time just as the event is sent\n client.addOnError(function (event) {\n event.device = _$assign_20({}, event.device, device, {\n time: new Date()\n });\n if (!client._config.collectUserIp) setDefaultUserId(event);\n }, true);\n },\n configSchema: {\n generateAnonymousId: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\nvar setDefaultUserId = function (eventOrSession) {\n // device id is also used to populate the user id field, if it's not already set\n var user = eventOrSession.getUser();\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id);\n }\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n/*\n * Sets the event request: { url } to be the current href\n */\nvar _$request_42 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.request && event.request.url) return;\n event.request = _$assign_20({}, event.request, {\n url: win.location.href\n });\n }, true);\n }\n };\n};\n\n/* removed: var _$includes_22 = require('@bugsnag/core/lib/es-utils/includes'); */;\nvar _$session_43 = {\n load: function (client) {\n client._sessionDelegate = sessionDelegate;\n }\n};\nvar sessionDelegate = {\n startSession: function (client, session) {\n var sessionClient = client;\n sessionClient._session = session;\n sessionClient._pausedSession = null;\n\n // exit early if the current releaseStage is not enabled\n if (sessionClient._config.enabledReleaseStages !== null && !_$includes_22(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration');\n return sessionClient;\n }\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [{\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }]\n });\n return sessionClient;\n },\n resumeSession: function (client) {\n // Do nothing if there's already an active session\n if (client._session) {\n return client;\n }\n\n // If we have a paused session then make it the active session\n if (client._pausedSession) {\n client._session = client._pausedSession;\n client._pausedSession = null;\n return client;\n }\n\n // Otherwise start a new session\n return client.startSession();\n },\n pauseSession: function (client) {\n client._pausedSession = client._session;\n client._session = null;\n }\n};\n\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n/*\n * Prevent collection of user IPs\n */\nvar _$clientIp_44 = {\n load: function (client) {\n if (client._config.collectUserIp) return;\n client.addOnError(function (event) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id;\n event._user = _$assign_20({\n id: '[REDACTED]'\n }, event._user);\n event.request = _$assign_20({\n clientIp: '[REDACTED]'\n }, event.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n }\n};\n\nvar _$consoleBreadcrumbs_45 = {};\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('@bugsnag/core/lib/es-utils/filter'); */;\n\n/*\n * Leaves breadcrumbs when console log methods are called\n */\n_$consoleBreadcrumbs_45.load = function (client) {\n var isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage);\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return;\n _$map_25(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n client.leaveBreadcrumb('Console output', _$reduce_26(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]';\n // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n try {\n stringified = String(arg);\n } catch (e) {}\n // if it stringifies to [object Object] attempt to JSON stringify\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n accum[\"[\" + i + \"]\"] = stringified;\n return accum;\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log');\n original.apply(console, args);\n };\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n};\nif (\"production\" !== 'production') {\n _$consoleBreadcrumbs_45.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n}\nvar CONSOLE_LOG_METHODS = _$filter_21(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n});\n\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n/* removed: var _$filter_21 = require('@bugsnag/core/lib/es-utils/filter'); */;\nvar MAX_LINE_LENGTH = 200;\nvar MAX_SCRIPT_LENGTH = 500000;\nvar _$inlineScriptContent_46 = function (doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n if (!client._config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = '';\n\n // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n var isOldIe = !!doc.attachEvent;\n var DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading';\n var getHtml = function () {\n return doc.documentElement.outerHTML;\n };\n\n // get whatever HTML exists at this point in time\n html = getHtml();\n var prev = doc.onreadystatechange;\n // then update it when the DOM content has loaded\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n var _lastScript = null;\n var updateLastScript = function (script) {\n _lastScript = script;\n };\n var getCurrentScript = function () {\n var script = doc.currentScript || _lastScript;\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n return script;\n };\n var addSurroundingCode = function (lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml();\n // simulate the raw html\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return _$reduce_26(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n client.addOnError(function (event) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = _$filter_21(event.errors[0].stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = event.errors[0].stacktrace[0];\n\n // remove hash and query string from url\n var cleanUrl = function (url) {\n return url.replace(/#.*$/, '').replace(/\\?.*$/, '');\n };\n\n // if frame.file exists and is not the original location of the page, this can't be an inline script\n if (frame && frame.file && cleanUrl(frame.file) !== cleanUrl(originalLocation)) return;\n\n // grab the last script known to have run\n var currentScript = getCurrentScript();\n if (currentScript) {\n var content = currentScript.innerHTML;\n event.addMetadata('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH));\n\n // only attempt to grab some surrounding code if we have a line number\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber);\n }\n }\n }, true);\n\n // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n var _map = _$map_25(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function () {\n return args[0];\n },\n replace: function (fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0];\n\n // Proxy all the host objects whose prototypes have an addEventListener function\n _$map_25(['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'], function (o) {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return;\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = [].slice.call(arguments);\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript();\n // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script);\n // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {\n // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n }\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n if (fn.apply) return fn.apply(this, args);\n switch (args.length) {\n case 1:\n return fn(args[0]);\n case 2:\n return fn(args[0], args[1]);\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\nfunction __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n}\nfunction eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n}\n\n/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nvar _$interactionBreadcrumbs_47 = function (win) {\n if (win === void 0) {\n win = window;\n }\n return {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('user')) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n }\n };\n};\nvar trim = /^\\s*([^\\s][\\s\\S]{0,139}[^\\s])?\\s*/;\nfunction getNodeText(el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) {\n text = el.value;\n }\n text = text.replace(trim, '$1');\n if (text.length > 140) {\n return text.slice(0, 135) + '(...)';\n }\n return text;\n}\n\n// Create a label from tagname, id and css class of the element\nfunction getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.'));\n // Can't get much more advanced with the current browser\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('');\n }\n // try to get a more specific selector if this one matches more than one element\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n // try prepending the parent node selector\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n}\n\nvar _$navigationBreadcrumbs_48 = {};\n/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\n_$navigationBreadcrumbs_48 = function (win) {\n if (win === void 0) {\n win = window;\n }\n var plugin = {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('navigation')) return;\n\n // returns a function that will drop a breadcrumb with a given name\n var drop = function (name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n };\n\n // simple drops – just names, no meta\n win.addEventListener('pagehide', drop('Page hidden'), true);\n win.addEventListener('pageshow', drop('Page shown'), true);\n win.addEventListener('load', drop('Page loaded'), true);\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true);\n // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n });\n\n // hashchange has some metadata that we care about\n win.addEventListener('hashchange', function (event) {\n var metadata = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation');\n }, true);\n\n // the only way to know about replaceState/pushState is to wrap them… >_<\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win, true);\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n win.history.replaceState._restore();\n win.history.pushState._restore();\n };\n }\n return plugin;\n};\nif (\"production\" !== 'production') {\n _$navigationBreadcrumbs_48.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n win.history.replaceState._restore();\n win.history.pushState._restore();\n };\n}\n\n// takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\nvar relativeLocation = function (url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n};\nvar stateChangeToMetadata = function (win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n};\nvar wrapHistoryFn = function (client, target, fn, win, resetEventCount) {\n if (resetEventCount === void 0) {\n resetEventCount = false;\n }\n var orig = target[fn];\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetadata(win, state, title, url), 'navigation');\n // if throttle plugin is in use, reset the event sent count\n if (resetEventCount && typeof client.resetEventCount === 'function') client.resetEventCount();\n // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n};\nvar getCurrentState = function (win) {\n try {\n return win.history.state;\n } catch (e) {}\n};\n\nvar BREADCRUMB_TYPE = 'request';\n/* removed: var _$includes_22 = require('@bugsnag/core/lib/es-utils/includes'); */;\n\n/*\n * Leaves breadcrumbs when network requests occur\n */\nvar _$networkBreadcrumbs_49 = function (_ignoredUrls, win) {\n if (_ignoredUrls === void 0) {\n _ignoredUrls = [];\n }\n if (win === void 0) {\n win = window;\n }\n var restoreFunctions = [];\n var plugin = {\n load: function (client) {\n if (!client._isBreadcrumbTypeEnabled('request')) return;\n var ignoredUrls = [client._config.endpoints.notify, client._config.endpoints.sessions].concat(_ignoredUrls);\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch();\n\n // XMLHttpRequest monkey patch\n function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype) || !('WeakMap' in win)) return;\n var trackedRequests = new WeakMap();\n var requestHandlers = new WeakMap();\n var originalOpen = win.XMLHttpRequest.prototype.open;\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n trackedRequests.set(this, {\n method: method,\n url: url\n });\n }\n originalOpen.apply(this, arguments);\n };\n var originalSend = win.XMLHttpRequest.prototype.send;\n win.XMLHttpRequest.prototype.send = function send(body) {\n var _this = this;\n var requestData = trackedRequests.get(this);\n if (requestData) {\n // if we have already setup listeners then this request instance is being reused,\n // so we need to remove the listeners from the previous send\n var listeners = requestHandlers.get(this);\n if (listeners) {\n this.removeEventListener('load', listeners.load);\n this.removeEventListener('error', listeners.error);\n }\n var requestStart = new Date();\n var error = function () {\n return handleXHRError(requestData.method, requestData.url, getDuration(requestStart));\n };\n var load = function () {\n return handleXHRLoad(requestData.method, requestData.url, _this.status, getDuration(requestStart));\n };\n this.addEventListener('load', load);\n this.addEventListener('error', error);\n // it's possible for `this` to be `undefined`, which is not a valid key for a WeakMap\n if (this) {\n requestHandlers.set(this, {\n load: load,\n error: error\n });\n }\n }\n originalSend.apply(this, arguments);\n };\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = originalOpen;\n win.XMLHttpRequest.prototype.send = originalSend;\n });\n }\n }\n function handleXHRLoad(method, url, status, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n return;\n }\n\n // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n if (typeof url === 'string' && _$includes_22(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n var metadata = {\n status: status,\n method: String(method),\n url: String(url),\n duration: duration\n };\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE);\n }\n }\n function handleXHRError(method, url, duration) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n return;\n }\n if (typeof url === 'string' && _$includes_22(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n // failed to contact server\n client.leaveBreadcrumb('XMLHttpRequest error', {\n method: String(method),\n url: String(url),\n duration: duration\n }, BREADCRUMB_TYPE);\n }\n\n // window.fetch monkey patch\n function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url;\n if (options && 'method' in options) {\n method = options.method;\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method;\n }\n } else {\n url = urlOrRequest;\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n if (method === undefined) {\n method = 'GET';\n }\n return new Promise(function (resolve, reject) {\n var requestStart = new Date();\n\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url, getDuration(requestStart));\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url, getDuration(requestStart));\n reject(error);\n });\n });\n };\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n }\n var handleFetchSuccess = function (response, method, url, duration) {\n var metadata = {\n method: String(method),\n status: response.status,\n url: String(url),\n duration: duration\n };\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE);\n }\n };\n var handleFetchError = function (method, url, duration) {\n client.leaveBreadcrumb('fetch() error', {\n method: String(method),\n url: String(url),\n duration: duration\n }, BREADCRUMB_TYPE);\n };\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n }\n return plugin;\n};\nvar getDuration = function (startTime) {\n return startTime && new Date() - startTime;\n};\n\n/* removed: var _$intRange_33 = require('@bugsnag/core/lib/validators/int-range'); */;\n\n/*\n * Throttles and dedupes events\n */\n\nvar _$throttle_50 = {\n load: function (client) {\n // track sent events for each init of the plugin\n var n = 0;\n\n // add onError hook\n client.addOnError(function (event) {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(\"Cancelling event send due to maxEvents per session limit of \" + client._config.maxEvents + \" being reached\");\n return false;\n }\n n++;\n });\n client.resetEventCount = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function () {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function (val) {\n return _$intRange_33(1, 100)(val);\n }\n }\n }\n};\n\nvar _$stripQueryString_51 = {};\n/*\n * Remove query strings (and fragments) from stacktraces\n */\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$reduce_26 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n_$stripQueryString_51 = {\n load: function (client) {\n client.addOnError(function (event) {\n var allFrames = _$reduce_26(event.errors, function (accum, er) {\n return accum.concat(er.stacktrace);\n }, []);\n _$map_25(allFrames, function (frame) {\n frame.file = strip(frame.file);\n });\n });\n }\n};\nvar strip = _$stripQueryString_51._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n};\n\n/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\n\nvar _$onerror_52 = function (win, component) {\n if (win === void 0) {\n win = window;\n }\n if (component === void 0) {\n component = 'window onerror';\n }\n return {\n load: function (client) {\n if (!client._config.autoDetectErrors) return;\n if (!client._config.enabledErrorTypes.unhandledExceptions) return;\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event;\n\n // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, component, 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n } else if (\n // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n typeof messageOrEvent === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'Error';\n // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n event = client.Event.create({\n name: name,\n message: message\n }, true, handledState, component, 1);\n\n // provide the original thing onerror received – not our error-like object we passed to _notify\n event.originalError = messageOrEvent;\n\n // include the raw input as metadata – it might contain more info than we extracted\n event.addMetadata(component, {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, component, 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n }\n client._notify(event);\n }\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n var prevOnError = win.onerror;\n win.onerror = onerror;\n }\n };\n};\n\n// Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\nvar decorateStack = function (stack, url, lineNo, charNo) {\n if (!stack[0]) stack.push({});\n var culprit = stack[0];\n if (!culprit.file && typeof url === 'string') culprit.file = url;\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo;\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo;\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter;\n }\n }\n};\nvar isActualNumber = function (n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n};\n\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$iserror_29 = require('@bugsnag/core/lib/iserror'); */;\nvar _listener;\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\nvar _$unhandledRejection_53 = function (win) {\n if (win === void 0) {\n win = window;\n }\n var plugin = {\n load: function (client) {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return;\n var listener = function (evt) {\n var error = evt.reason;\n var isBluebird = false;\n\n // accessing properties on evt.detail can throw errors (see #394)\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n // Report unhandled promise rejections as handled if the user has configured it\n var unhandled = !client._config.reportUnhandledPromiseRejectionsAsHandled;\n var event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: unhandled,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n }, 'unhandledrejection handler', 1, client._logger);\n if (isBluebird) {\n _$map_25(event.errors[0].stacktrace, fixBluebirdStacktrace(error));\n }\n client._notify(event, function (event) {\n if (_$iserror_29(event.originalError) && !event.originalError.stack) {\n var _event$addMetadata;\n event.addMetadata('unhandledRejection handler', (_event$addMetadata = {}, _event$addMetadata[Object.prototype.toString.call(event.originalError)] = {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }, _event$addMetadata));\n }\n });\n };\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n _listener = listener;\n }\n };\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n _listener = null;\n };\n }\n return plugin;\n};\n\n// The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\nvar fixBluebirdStacktrace = function (error) {\n return function (frame) {\n if (frame.file === error.toString()) return;\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n };\n};\n\nvar _$notifier_11 = {};\nvar name = 'Bugsnag JavaScript';\nvar version = '8.2.0';\nvar url = 'https://github.com/bugsnag/bugsnag-js';\n/* removed: var _$Client_13 = require('@bugsnag/core/client'); */;\n/* removed: var _$Event_15 = require('@bugsnag/core/event'); */;\n/* removed: var _$Session_36 = require('@bugsnag/core/session'); */;\n/* removed: var _$Breadcrumb_12 = require('@bugsnag/core/breadcrumb'); */;\n/* removed: var _$map_25 = require('@bugsnag/core/lib/es-utils/map'); */;\n/* removed: var _$keys_24 = require('@bugsnag/core/lib/es-utils/keys'); */;\n/* removed: var _$assign_20 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\n// extend the base config schema with some browser-specific options\nvar __schema_11 = _$assign_20({}, _$config_14.schema, _$config_10);\n/* removed: var _$onerror_52 = require('@bugsnag/plugin-window-onerror'); */;\n/* removed: var _$unhandledRejection_53 = require('@bugsnag/plugin-window-unhandled-rejection'); */;\n/* removed: var _$app_39 = require('@bugsnag/plugin-app-duration'); */;\n/* removed: var _$device_41 = require('@bugsnag/plugin-browser-device'); */;\n/* removed: var _$context_40 = require('@bugsnag/plugin-browser-context'); */;\n/* removed: var _$request_42 = require('@bugsnag/plugin-browser-request'); */;\n/* removed: var _$throttle_50 = require('@bugsnag/plugin-simple-throttle'); */;\n/* removed: var _$consoleBreadcrumbs_45 = require('@bugsnag/plugin-console-breadcrumbs'); */;\n/* removed: var _$networkBreadcrumbs_49 = require('@bugsnag/plugin-network-breadcrumbs'); */;\n/* removed: var _$navigationBreadcrumbs_48 = require('@bugsnag/plugin-navigation-breadcrumbs'); */;\n/* removed: var _$interactionBreadcrumbs_47 = require('@bugsnag/plugin-interaction-breadcrumbs'); */;\n/* removed: var _$inlineScriptContent_46 = require('@bugsnag/plugin-inline-script-content'); */;\n/* removed: var _$session_43 = require('@bugsnag/plugin-browser-session'); */;\n/* removed: var _$clientIp_44 = require('@bugsnag/plugin-client-ip'); */;\n/* removed: var _$stripQueryString_51 = require('@bugsnag/plugin-strip-query-string'); */;\n\n// delivery mechanisms\n/* removed: var _$delivery_37 = require('@bugsnag/delivery-x-domain-request'); */;\n/* removed: var _$delivery_38 = require('@bugsnag/delivery-xml-http-request'); */;\nvar Bugsnag = {\n _client: null,\n createClient: function (opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts\n };\n if (!opts) opts = {};\n var internalPlugins = [\n // add browser-specific plugins\n _$app_39, _$device_41(), _$context_40(), _$request_42(), _$throttle_50, _$session_43, _$clientIp_44, _$stripQueryString_51, _$onerror_52(), _$unhandledRejection_53(), _$navigationBreadcrumbs_48(), _$interactionBreadcrumbs_47(), _$networkBreadcrumbs_49(), _$consoleBreadcrumbs_45,\n // this one added last to avoid wrapping functionality before bugsnag uses it\n _$inlineScriptContent_46()];\n\n // configure a client with user supplied options\n var bugsnag = new _$Client_13(opts, __schema_11, internalPlugins, {\n name: name,\n version: version,\n url: url\n });\n\n // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n bugsnag._setDelivery(window.XDomainRequest ? _$delivery_37 : _$delivery_38);\n bugsnag._logger.debug('Loaded!');\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state');\n return bugsnag._config.autoTrackSessions ? bugsnag.startSession() : bugsnag;\n },\n start: function (opts) {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.');\n return Bugsnag._client;\n }\n Bugsnag._client = Bugsnag.createClient(opts);\n return Bugsnag._client;\n },\n isStarted: function () {\n return Bugsnag._client != null;\n }\n};\n_$map_25(['resetEventCount'].concat(_$keys_24(_$Client_13.prototype)), function (m) {\n if (/^_/.test(m)) return;\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(\"Bugsnag.\" + m + \"() was called before Bugsnag.start()\");\n Bugsnag._client._depth += 1;\n var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments);\n Bugsnag._client._depth -= 1;\n return ret;\n };\n});\n_$notifier_11 = Bugsnag;\n_$notifier_11.Client = _$Client_13;\n_$notifier_11.Event = _$Event_15;\n_$notifier_11.Session = _$Session_36;\n_$notifier_11.Breadcrumb = _$Breadcrumb_12;\n\n// Export a \"default\" property for compatibility with ESM imports\n_$notifier_11[\"default\"] = Bugsnag;\n\nreturn _$notifier_11;\n\n});\n//# sourceMappingURL=bugsnag.js.map\n","module.exports = require('@bugsnag/browser')\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.BugsnagPluginReact = f()}})(function(){var define,module,exports;\nvar _$src_1 = {};\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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n_$src_1 = /*#__PURE__*/function () {\n function BugsnagPluginReact() {\n // Fetch React from the window object, if it exists\n var globalReact = typeof window !== 'undefined' && window.React;\n this.name = 'react';\n this.lazy = arguments.length === 0 && !globalReact;\n if (!this.lazy) {\n this.React = (arguments.length <= 0 ? undefined : arguments[0]) || globalReact;\n if (!this.React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined');\n }\n }\n var _proto = BugsnagPluginReact.prototype;\n _proto.load = function load(client) {\n if (!this.lazy) {\n var ErrorBoundary = createClass(this.React, client);\n ErrorBoundary.createErrorBoundary = function () {\n return ErrorBoundary;\n };\n return ErrorBoundary;\n }\n var BugsnagPluginReactLazyInitializer = function () {\n throw new Error(\"@bugsnag/plugin-react was used incorrectly. Valid usage is as follows:\\nPass React to the plugin constructor\\n\\n `Bugsnag.start({ plugins: [new BugsnagPluginReact(React)] })`\\nand then call `const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary()`\\n\\nOr if React is not available until after Bugsnag has started,\\nconstruct the plugin with no arguments\\n `Bugsnag.start({ plugins: [new BugsnagPluginReact()] })`,\\nthen pass in React when available to construct your error boundary\\n `const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React)`\");\n };\n BugsnagPluginReactLazyInitializer.createErrorBoundary = function (React) {\n if (!React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined');\n return createClass(React, client);\n };\n return BugsnagPluginReactLazyInitializer;\n };\n return BugsnagPluginReact;\n}();\nvar formatComponentStack = function (str) {\n var lines = str.split(/\\n/g);\n var ret = '';\n for (var line = 0, len = lines.length; line < len; line++) {\n if (lines[line].length) ret += \"\" + (ret.length ? '\\n' : '') + lines[line].trim();\n }\n return ret;\n};\nvar createClass = function (React, client) {\n return /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n function ErrorBoundary(props) {\n var _this;\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n error: null,\n info: null\n };\n _this.handleClearError = _this.handleClearError.bind(_assertThisInitialized(_this));\n return _this;\n }\n var _proto2 = ErrorBoundary.prototype;\n _proto2.handleClearError = function handleClearError() {\n this.setState({\n error: null,\n info: null\n });\n };\n _proto2.componentDidCatch = function componentDidCatch(error, info) {\n var onError = this.props.onError;\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event = client.Event.create(error, true, handledState, 1);\n if (info && info.componentStack) info.componentStack = formatComponentStack(info.componentStack);\n event.addMetadata('react', info);\n client._notify(event, onError);\n this.setState({\n error: error,\n info: info\n });\n };\n _proto2.render = function render() {\n var error = this.state.error;\n if (error) {\n var FallbackComponent = this.props.FallbackComponent;\n if (FallbackComponent) return React.createElement(FallbackComponent, _extends({}, this.state, {\n clearError: this.handleClearError\n }));\n return null;\n }\n return this.props.children;\n };\n return ErrorBoundary;\n }(React.Component);\n};\n_$src_1.formatComponentStack = formatComponentStack;\n_$src_1[\"default\"] = _$src_1;\n\nreturn _$src_1;\n\n});\n//# sourceMappingURL=bugsnag-react.js.map\n","import React from \"react\";\nimport Bugsnag from \"@bugsnag/js\";\nimport BugsnagPluginReact from \"@bugsnag/plugin-react\";\n\nconst quietMode = import.meta.env.VITE_ENV === \"development\";\nconst quietLogger = {\n debug() {},\n info() {},\n warn() {},\n error() {},\n};\n\n\nBugsnag.start({\n apiKey: import.meta.env.VITE_BUGSNAG_KEY,\n plugins: [new BugsnagPluginReact()],\n enabledReleaseStages: [\"staging\",\"production\"],\n releaseStage: import.meta.env.VITE_ENV,\n generateAnonymousId: false,\n collectUserIp: false,\n ...(quietMode ? { logger: quietLogger } : {}),\n});\n\nexport default Bugsnag;\n\nexport const ErrorBoundary =\n Bugsnag.getPlugin(\"react\")?.createErrorBoundary(React);\n","import Button from \"hardcover-ui/components/Button\";\nimport { useEffect } from \"react\";\nimport Text from \"hardcover-ui/components/Text\";\nimport NotFoundView from \"./NotFoundView\";\nimport Bugsnag from \"lib/bugsnag\";\nimport Container from \"hardcover-ui/components/Container\";\nimport Heading from \"hardcover-ui/components/Heading\";\nimport { enlargeUrl } from \"lib/imageTools\";\nimport { router } from \"@inertiajs/react\";\n\nexport default function ServerErrorView({\n clearError,\n error,\n}: {\n error: Error;\n clearError: () => void;\n}) {\n\n useEffect(() => {\n if (error?.message !== \"NEXT_NOT_FOUND\") {\n Bugsnag.notify(error);\n }\n }, []);\n\n const retry = () => {\n clearError();\n router.reload();\n };\n\n const goBack = () => {\n window.history.back();\n setTimeout(() => {\n clearError();\n }, 500);\n };\n\n if (error?.message === \"NEXT_NOT_FOUND\") {\n return ;\n }\n\n return (\n \n \n\n Oops! Our servers are acting up!\n\n
\n \n We're very embarrassed by this, but something went wrong. Adam &\n Ste have been notified and they're on the case!\n \n

\n \n

\n\n

\n \n

\n
\n
\n );\n}","import { createSlice } from \"@reduxjs/toolkit\";\nimport { LetterbookSettingType } from \"features/Letterbooks/types\";\n\nexport type LetterBooksStateType = {\n isLetterbookList: boolean;\n open: boolean;\n settings: LetterbookSettingType | null;\n};\n\nexport const letterbooksState: LetterBooksStateType = {\n isLetterbookList: false,\n open: false,\n settings: null,\n};\n\nconst letterbooksSlice = createSlice({\n name: \"LetterbooksSlice\",\n initialState: letterbooksState,\n reducers: {\n setIsLetterbookList(state, { payload }) {\n state.isLetterbookList = payload;\n if (!payload) {\n state.settings = null;\n }\n },\n setIsLetterbooksDrawer(state, { payload }) {\n state.open = payload;\n },\n hideLetterbooksDrawer(state) {\n state.open = false;\n },\n setLetterbooksSettings(\n state,\n { payload }: { payload: LetterbookSettingType }\n ) {\n state.isLetterbookList = true;\n state.settings = payload;\n },\n },\n});\n\nexport const letterbookActions = letterbooksSlice.actions;\n\nexport default letterbooksSlice.reducer;\n","import { configureStore } from \"@reduxjs/toolkit\";\nimport bookButton from \"store/bookButton/bookButtonSlice\";\nimport currentUser from \"store/currentUser/currentUserSlice\";\nimport ui from \"store/ui/uiSlice\";\nimport letterbooks from \"store/letterbooks/letterbooksSlice\";\nimport search from \"store/search/searchSlice\";\nimport books from \"store/books/booksSlice\";\n\n// Define the RootState type based on the shape of your reducers\nexport type RootState = {\n currentUser: ReturnType;\n bookButton: ReturnType;\n books: ReturnType;\n letterbooks: ReturnType;\n search: ReturnType;\n ui: ReturnType;\n};\n\nconst createStore = (preloadedState?: Partial) => {\n return configureStore({\n reducer: {\n currentUser,\n bookButton,\n letterbooks,\n ui,\n search,\n books,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: false,\n }),\n preloadedState,\n });\n};\n\nexport { createStore };\nexport type AppDispatch = ReturnType['dispatch'];","import { usePage, useRemember } from \"@inertiajs/react\";\nimport { useEffect, useMemo } from \"react\";\nimport { DefaultPageType } from \"types/DefaultPageType\";\nimport { createStore, RootState } from \"./index\";\nimport { EnhancedStore } from \"@reduxjs/toolkit\";\n\ninterface SavedState {\n generatedAt: Date;\n rootState: RootState;\n}\n\n// Merge the states\nfunction generateState({\n generatedAt,\n rootState,\n rememberedState,\n}: {\n generatedAt: Date;\n rootState: RootState;\n rememberedState: SavedState;\n}): RootState {\n const rememberedDate = rememberedState.generatedAt;\n const newRootState = generatedAt >= rememberedDate;\n const canonicalState = newRootState ? rootState : rememberedState.rootState;\n\n \n const currentUser = {\n ...canonicalState.currentUser,\n session: rootState.currentUser.session,\n }\n const bookButton = {\n ...canonicalState.bookButton,\n ...rememberedState.rootState.bookButton,\n }\n\n return {\n currentUser,\n bookButton,\n books: canonicalState.books,\n letterbooks: canonicalState.letterbooks,\n search: rememberedState.rootState.search,\n ui: rememberedState.rootState.ui,\n }\n}\nexport function generateStore():EnhancedStore {\n const { generatedAt, rootState } = usePage().props;\n\n // Use `useRemember` for persisted state\n const [rememberedState, setRememberedState] = useRemember({\n generatedAt: new Date(generatedAt * 1000),\n rootState: rootState,\n });\n\n // Create Redux store with the initial state\n // This overrides changes to the initial state with remembered state with current state\n const store = useMemo(() => {\n const newState = generateState({\n generatedAt: new Date(generatedAt * 1000),\n rootState,\n rememberedState\n });\n return createStore(newState);\n }, [generatedAt]);\n\n // Subscribe to Redux store updates to sync with remembered state\n useEffect(() => {\n const unsubscribe = store.subscribe(() => {\n const currentState = store.getState();\n // Update remembered state\n setRememberedState({\n rootState: currentState,\n generatedAt: new Date()\n }); \n });\n\n return () => {\n unsubscribe(); // Cleanup subscription on unmount\n };\n }, [store, setRememberedState]);\n\n return store;\n}\n","import { ReactNode } from \"react\";\nimport { Provider as ReduxProvider } from \"react-redux\";\nimport ServerErrorView from \"components/views/ServerErrorView\";\nimport { ErrorBoundary } from \"lib/bugsnag\";\nimport { generateStore } from \"store/new\";\nimport { ApolloWrapper } from \"lib/apollo/client\";\n\nexport default function Providers({\n children,\n}: {\n children: ReactNode;\n}): JSX.Element {\n const store = generateStore();\n return (\n \n \n \n {children}\n \n \n \n );\n}\n","import { Suspense, lazy } from \"react\";\nimport useIsLoggedIn from \"hooks/user/useIsLoggedIn\";\nimport { useDispatch } from \"react-redux\";\nimport { bookButtonActions } from \"store/bookButton/bookButtonSlice\";\n\nconst UserBookStatusMapSync = lazy(() => import(\"./UserBookStatusMapSync\"));\n\nexport default function BootstrapCurrentUser() {\n const loggedIn = useIsLoggedIn();\n const dispatch = useDispatch();\n if(!loggedIn) {\n dispatch(bookButtonActions.setUserBookStatusMap({}));\n return false;\n }\n\n return ;\n}\n","import { ReactNode } from \"react\";\nimport Metadata from \"components/background/Metadata\";\nimport SharedPlaceholders from \"components/shared/SharedPlaceholders\";\nimport Providers from \"./providers\";\nimport BootstrapCurrentUser from \"components/background/CurrentUser/BootstrapCurrentUser\";\n\nexport default function GlobalLayout({\n children,\n}: {\n children: ReactNode;\n}) {\n return (\n \n \n \n {children}\n \n \n );\n}\n"],"file":"assets/GlobalLayout-DoFgr7Zl.js"}