{"version":3,"sources":["../node_modules/react/index.js","../../history.ts","../../utils.ts","../../router.ts","../../lib/context.ts","../../lib/hooks.tsx","../../lib/components.tsx","../../index.ts","../node_modules/prop-types/index.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/react-dom/index.js","../node_modules/webpack/buildin/global.js","../node_modules/react-dom/client.js","../node_modules/react-gtm-module/dist/index.js","../../dom.ts","../../index.tsx","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/process/browser.js","../node_modules/react-anchor-link-smooth-scroll/lib/anchor-link.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/react-gtm-module/dist/Snippets.js","../node_modules/react-gtm-module/dist/utils/warn.js"],"names":["module","exports","require","Action","createMemoryHistory","options","entries","initialEntries","initialIndex","v5Compat","map","entry","index","createMemoryLocation","state","undefined","clampIndex","length","action","Pop","listener","n","Math","min","max","getCurrentLocation","to","key","location","createLocation","pathname","warning","charAt","JSON","stringify","createHref","createPath","createURL","URL","encodeLocation","path","parsePath","search","hash","push","Push","nextLocation","splice","delta","replace","Replace","go","nextIndex","listen","fn","createBrowserHistory","getUrlBasedHistory","window","globalHistory","usr","createHashHistory","substr","startsWith","base","document","querySelector","href","getAttribute","url","hashIndex","indexOf","slice","invariant","value","message","Error","cond","console","warn","e","getHistoryState","idx","current","_extends","random","toString","_ref","parsedPath","searchIndex","getLocation","validateLocation","defaultView","history","getIndex","handlePop","origin","replaceState","addEventListener","removeEventListener","historyState","pushState","error","DOMException","name","assign","ResultType","immutableRouteKeys","Set","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","route","treePath","String","id","join","children","isIndexRoute","indexRoute","pathOrLayoutRoute","matchRoutes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","parentsMeta","flattenRoute","relativePath","meta","caseSensitive","childrenIndex","joinPaths","routesMeta","concat","score","computeScore","forEach","_route$path","includes","exploded","explodeOptionalSegments","segments","split","first","rest","isOptional","endsWith","required","restExploded","result","subpath","sort","a","b","every","i","compareIndexes","rankRouteBranches","matches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","data","handle","paramRe","isSplat","s","initialScore","some","filter","reduce","segment","test","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","Object","pathnameBase","normalizePathname","pattern","matcher","compiledParams","regexpSource","_","paramName","RegExp","compilePath","captureGroups","memo","splatValue","v","decodeURIComponent","toLowerCase","startIndex","nextChar","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","from","isEmptyPath","toPathname","routePathnameIndex","toSegments","shift","fromPathname","pop","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","ErrorResponseImpl","constructor","status","statusText","internal","this","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","json","text","IDLE_FETCHER","IDLE_BLOCKER","proceed","reset","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","Boolean","createRouter","init","routerWindow","isBrowser","createElement","isServer","detectErrorBoundary","inFlightDataRoutes","initialized","router","dataRoutes","dataStrategyImpl","unstable_dataStrategy","defaultDataStrategy","patchRoutesOnMissImpl","unstable_patchRoutesOnMiss","future","v7_fetcherPersist","v7_normalizeFormMethod","v7_partialHydration","v7_prependBasename","v7_skipActionErrorRevalidation","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","active","m","lazy","loader","errors","isRouteInitialized","hydrate","findIndex","pendingNavigationController","historyAction","navigation","restoreScrollPosition","preventScrollReset","revalidation","actionData","fetchers","Map","blockers","pendingAction","pendingPreventScrollReset","pendingViewTransitionEnabled","appliedViewTransitions","removePageHideEventListener","isUninterruptedRevalidation","isRevalidationRequired","cancelledDeferredRoutes","cancelledFetcherLoads","fetchControllers","incrementingLoadId","pendingNavigationLoadId","fetchReloadIds","fetchRedirectIds","fetchLoadMatches","activeFetchers","deletedFetchers","activeDeferreds","blockerFunctions","pendingPatchRoutes","ignoreNextHistoryUpdate","updateState","newState","opts","completedFetchers","deletedFetchersKeys","fetcher","has","subscriber","unstable_viewTransitionOpts","viewTransitionOpts","unstable_flushSync","flushSync","delete","deleteFetcher","completeNavigation","_temp","_location$state","_location$state2","isActionReload","isMutationMethod","_isRedirect","keys","mergeLoaderData","size","k","set","priorPaths","get","currentLocation","toPaths","add","getSavedScrollPosition","async","startNavigation","abort","startUninterruptedRevalidation","getScrollKey","saveScrollPosition","enableViewTransition","routesToUse","loadingNavigation","overrideNavigation","fogOfWar","notFoundMatches","handleNavigational404","isHashChangeOnly","submission","AbortController","pendingActionResult","request","createClientSideRequest","signal","pendingError","findNearestBoundary","type","actionResult","isFogOfWar","interruptActiveLoads","getSubmittingNavigation","discoverResult","discoverRoutes","shortCircuited","boundaryId","handleDiscoverRouteError","partialMatches","actionMatch","getTargetMatch","results","callDataStrategy","aborted","method","routeId","isRedirectResult","normalizeRedirectLocation","response","headers","startRedirectNavigation","isDeferredResult","isErrorResult","boundaryMatch","handleAction","getLoadingNavigation","updatedMatches","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","shouldUpdateNavigationState","getUpdatedActionData","matchesToLoad","revalidatingFetchers","getMatchesToLoad","cancelActiveDeferreds","updatedFetchers","markFetchRedirectsDone","getActionDataForCommit","updates","rf","revalidatingFetcher","getLoadingFetcher","getUpdatedRevalidatingFetchers","abortFetcher","controller","abortPendingFetchRevalidations","f","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","subscribe","done","_ref2","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","handleLoaders","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","callDataStrategyImpl","Promise","all","isRedirectHandlerResult","normalizeRelativeRoutingRedirectResponse","convertHandlerResultToDataResult","currentMatches","fetchersToLoad","then","r","resolve","resolveDeferredResults","updateFetcherState","setFetcherError","getFetcher","markFetchersDone","doneFetcher","getDoneFetcher","doneKeys","landedId","yeetedKeys","deleteBlocker","updateBlocker","newBlocker","blocker","shouldBlockNavigation","_ref4","Array","blockerKey","blockerFunction","predicate","cancelledRouteIds","dfd","cancel","y","leafRoute","isNonHMR","loadLazyRouteChildren","newMatches","matchedSplat","newPartialMatches","initialize","_window","transitions","sessionPositions","sessionStorage","getItem","parse","isArray","restoreAppliedTransitions","_saveAppliedTransitions","setItem","persistAppliedTransitions","enableScrollRestoration","positions","getPosition","getKey","navigate","normalizedPath","normalizeTo","fromRouteId","relative","normalizeNavigateOptions","userReplace","unstable_viewTransition","fetch","requestMatches","detectAndHandle405Error","existingFetcher","getSubmittingFetcher","abortController","fetchRequest","originatingLoadId","revalidationRequest","loadId","loadFetcher","staleKey","handleFetcherAction","resolveDeferredData","handleFetcherLoader","revalidate","count","dispose","clear","getBlocker","patchRoutes","patchRoutesImpl","_internalFetchControllers","_internalActiveDeferreds","_internalSetRoutes","newRoutes","Symbol","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","body","isSubmissionNavigation","isValidMethod","searchParams","getInvalidBodyError","rawFormMethod","toUpperCase","stripHashFromPath","FormData","URLSearchParams","acc","_ref5","convertFormDataToSearchParams","convertSearchParamsToFormData","append","getLoaderMatchesUntilBoundary","boundaryMatches","isInitialLoad","skipActionErrorRevalidation","currentUrl","nextUrl","actionStatus","statusCode","shouldSkipRevalidation","navigationMatches","currentLoaderData","currentMatch","isNew","isMissingData","isNewLoader","currentRouteMatch","nextRouteMatch","shouldRevalidateLoader","currentParams","nextParams","defaultShouldRevalidate","isNewRouteInstance","fetcherMatches","fetcherMatch","shouldRevalidate","currentPath","loaderMatch","arg","routeChoice","pendingRouteChildren","pending","patch","val","_route$children","dataChildren","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","requestContext","routeIdsToLoad","loadedMatches","shouldLoad","handlerOverride","staticContext","onReject","runHandler","handler","reject","abortPromise","handlerPromise","actualHandler","ctx","context","race","handlerError","catch","callLoaderOrAction","handlerResult","isResponse","contentType","deferred","resolveData","isDeferredData","_result$init","_result$init2","Headers","trimmedMatches","normalizedLocation","protocol","isSameBasename","Request","processRouteLoaderData","skipLoaderErrorBubbling","foundError","loaderHeaders","newLoaderData","mergedLoaderData","hasOwnProperty","reverse","find","_temp5","errorMessage","signals","isRevalidatingLoader","unwrap","unwrappedData","getAll","DataRouterContext","React","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","cb","static","useNavigate","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","useNavigateStable","dataRouterContext","routePathnamesJson","UNSAFE_getResolveToMatches","useNavigateUnstable","useRoutesImpl","dataRouterState","parentMatches","routeMatch","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","Provider","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","useRouteError","stack","preStyles","padding","backgroundColor","style","fontStyle","defaultErrorElement","RenderErrorBoundary","props","super","componentDidCatch","errorInfo","render","routeContext","component","RenderedRoute","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState2","_dataRouterState","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","needsToRunLoader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","Component","element","hookName","useRouteContext","thisRoute","useRouteId","UseRouteId","useNavigation","UseNavigation","useMatches","UseMatches","UNSAFE_convertRouteMatchToUiMatch","blockerId","useBlocker","shouldBlock","UseBlocker","setBlockerKey","Route","_props","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","useRoutes","createRoutesFromChildren","apply","faChevronRight","prefix","iconName","icon","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","MutationObserver","performance","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","IS_IE","t","o","c","bt","fak","fakd","ho","classic","fa","fas","far","fal","fat","fad","fab","sharp","fass","fasr","fasl","fast","fasds","u$1","m$1","t$1","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","yo","So","kit","UNITS_IN_GRID","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","process","e$$1","FAMILIES","familyProxy","obj","Proxy","target","prop","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","solid","regular","light","thin","duotone","brands","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","FONT_FAMILY_PATTERN","ATTRIBUTES_WATCHED_FOR_MUTATION","900","400","normal","300","100","DUOTONE_CLASSES","prefixes","bind","RESERVED_CLASSES","initial","FontAwesomeConfig","attr","coerce","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","defineProperty","enumerable","_onChangeCb","d$2","meaninglessTransform","x","rotate","flipX","flipY","nextUniqueId","toArray","array","classArray","node","classList","htmlEscape","str","joinStyles","styles","styleName","trim","transformIsMeaningful","transform","css","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w$1","shims","namespace","functions","loaded","domready","setTimeout","toHtml","abstractNodes","tag","attributes","attributeName","joinAttributes","iconFromMapping","mapping","doScroll","readyState","subject","initialValue","thisContext","iterator","func","d","call","bindInternal4","toHex","unicode","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","arguments","skipHooks","normalized","addPack","LONG_STYLE","values","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","PREFIXES","getIconName","cls","parts","build","lookup","reducer","o$$1","a$$1","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","c$$1","styleOrPrefix","defined","PREFIXES_FOR_FAMILY","getCanonicalIcon","skipLookups","famProps","givenPrefix","nonDuotoneFamilyIds","familyId","v$$1","canonical","familyName","aliasIconName","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","_len","args","_key","hookFns","hookFn","callHooks","_len2","_key2","callProvided","prototype","findIconDefinition","iconLookup","library","definitions","additions","_pullDefinitions","longPrefix","definition","0","i2svg","watch","autoReplaceSvgRoot","autoReplace","api","noAuto","canonicalIcon","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","main","mask","symbol","title","maskId","titleId","watchable","width","height","found","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","startCentered","transformForCss","styleString","class","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","maybeNotifyMissing","noop$1","p$2","perf","noop$2","isWatched","createElementNS","mutators","mutation","parentNode","convertSVG","abstractObj","ceFn","createTextNode","appendChild","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo$1","observe","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","defaultPrefix","mutationRecord","addedNodes","hasPrefixAndIcon","contains","childList","characterData","subtree","styleParser","classParser","existingPrefix","existingIconName","innerText","ligature","firstChild","nodeType","Node","TEXT_NODE","attributesParser","extraAttributes","parseMeta","parser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","knownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","f$$1","prefixesDomQuery","p$$1","candidates","querySelectorAll","resolvedMutations","onNode","iconDefinition","ReplaceElements","next","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","generateSvgReplacementMutation","generateAbstractIcon","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","makeLayersCounterAbstract","LayersText","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FontAwesome","FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_FALLBACK","fontFamily","weights","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","getPropertyValue","fontFamilyMatch","fontWeight","removeChild","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","isNaN","getPrefix","hexValue","isSecondary","cleaned","codePoint","second","codePointAt","isPrependTen","isDoubled","hexValueFromContent","isV4","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","processable","operations","_unwatched","parseTransformString","transformString","parseFloat","ALL_SPACE","fillBlack","force","nextPlugins","mixoutsTo","plugin","tk","sk","registerPlugins","pseudoElements2svg","unwatch","bootstrap","disconnect","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","reduceMotion","matchMedia","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","symbolData","parse$1","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","TypeError","_nonIterableSpread","len","arr2","camelize","chr","_excluded","styleToObject","pair","normalizeIconArgs","objectWithKey","defaultProps","border","className","fixedWidth","inverse","flip","listItem","pull","pulse","rotation","spin","spinPulse","spinReverse","beat","fade","beatFade","bounce","shake","swapOpacity","FontAwesomeIcon","forwardRef","ref","allProps","iconArgs","maskArgs","_classes","flash","renderedIcon","_console","log","extraProps","convertCurry","displayName","propTypes","PropTypes","bool","oneOfType","oneOf","convert","mixins","attrs","_extraProps$style","existingStyle","remaining","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","g","Function","createRoot","hydrateRoot","_TagManager","_TagManager2","__esModule","default","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","setState","l","for","p","q","u","w","z","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","E","refs","updater","F","G","isReactComponent","forceUpdate","H","isPureReactComponent","I","J","K","L","__self","__source","M","h","$$typeof","_owner","O","P","Q","escape","R","N","A","S","T","_status","_result","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","X","Children","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","act","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","_context","createFactory","createRef","isValidElement","_payload","_init","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","version","aa","ca","encodeURIComponent","da","ea","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Ra","Qa","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","MSApp","execUnsafeLocalFunction","namespaceURI","valueOf","ob","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","setProperty","substring","tb","menuitem","area","br","col","embed","hr","img","input","keygen","link","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","LN2","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","fromCharCode","code","repeat","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","tel","time","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","Le","compareDocumentPosition","start","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","of","pf","qf","sf","capture","passive","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","elementType","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","effects","lh","mh","eventTime","lane","payload","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","create","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","_reactInternals","Fi","shouldComponentUpdate","Gi","contextType","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","Gj","Hj","Ij","Jj","Kj","WeakSet","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","display","Wj","Vj","_reactRootContainer","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","mk","nk","ok","Y","Z","pk","qk","rk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","cl","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","vl","isDisabled","supportsFiber","inject","createPortal","unstable_strictMode","findDOMNode","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","scope","global","self","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","timeout","close","unref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","getPrototypeOf","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","script","onreadystatechange","installReadyStateChangeImplementation","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","factory","__WEBPACK_EXTERNAL_MODULE_2__","modules","installedModules","__webpack_require__","moduleId","getter","property","_anchorLink","_anchorLink2","_createClass","descriptor","Constructor","protoProps","staticProps","_react","_react2","AnchorLink","_Component","_classCallCheck","_this","ReferenceError","_possibleConstructorReturn","__proto__","smoothScroll","subClass","superClass","setPrototypeOf","_inherits","polyfill","_this2","offsetTop","getElementById","pageYOffset","scroll","behavior","__forceSmoothScrollPolyfill__","Element","HTMLElement","original","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","shouldBailOut","scrollX","pageXOffset","scrollY","SyntaxError","scrollableParent","findScrollableParent","parentRects","clientRects","firstArg","hasScrollableSpace","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","isScrollable","isScrollableY","isScrollableX","isBody","step","currentX","currentY","elapsed","cos","PI","startX","startY","scrollable","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","any","arrayOf","instanceOf","objectOf","shape","exact","checkPropTypes","_Snippets","_Snippets2","TagManager","dataScript","dataLayer","gtm","snippets","tags","noScript","noscript","iframe","dataLayerVar","gtmId","_ref$events","events","_ref$dataLayerName","dataLayerName","_ref$auth","auth","_ref$preview","preview","_dataLayer","_ref2$dataLayerName","_warn","_warn2","Snippets","gtm_auth","gtm_preview"],"mappings":"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","file":"static/js/2.70e014d7.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && patchRoutesOnMissImpl && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n // We need to run patchRoutesOnMiss in initialize()\n initialized = false;\n initialMatches = [];\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

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