{"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","../../dom.ts","../../index.tsx","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/webpack/buildin/global.js","../node_modules/classnames/index.js","../node_modules/react-dom/index.js","../node_modules/react-slick/lib/default-props.js","../node_modules/enquire.js/src/Util.js","../node_modules/react-dom/client.js","../node_modules/react-slick/lib/index.js","../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-slick/lib/slider.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/lodash.debounce/index.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/arrows.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/json2mq/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/enquire.js/src/index.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/QueryHandler.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","patchRoutesOnNavigationImpl","unstable_patchRoutesOnNavigation","future","v7_fetcherPersist","v7_normalizeFormMethod","v7_partialHydration","v7_prependBasename","v7_skipActionErrorRevalidation","unlistenHistory","subscribers","discoveredRoutes","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","active","m","lazy","loader","errors","isRouteInitialized","hydrate","findIndex","fogOfWar","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","unblockBlockerHistoryUpdate","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","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","processLoaderData","deferredData","subscribe","done","_ref2","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","handleLoaders","isNavigation","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","fetcherKey","dataResults","callDataStrategyImpl","isRedirectDataStrategyResultResult","normalizeRelativeRoutingRedirectResponse","convertDataStrategyResultToDataResult","fetchersToLoad","currentMatches","loaderResultsPromise","fetcherResultsPromise","Promise","all","resolve","acc","r","resolveNavigationDeferredResults","resolveFetcherDeferredResults","updateFetcherState","setFetcherError","getFetcher","markFetchersDone","doneFetcher","getDoneFetcher","doneKeys","landedId","yeetedKeys","deleteBlocker","updateBlocker","newBlocker","blocker","shouldBlockNavigation","_ref4","Array","blockerKey","blockerFunction","predicate","cancelledRouteIds","dfd","cancel","y","isNonHMR","loadLazyRouteChildren","newMatches","addToFifoQueue","newPartialMatches","queue","values","next","initialize","nextHistoryUpdatePromise","then","_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","_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","_ref6","shouldLoad","requestContext","loadRouteDefinitionsPromises","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","loadLazyRouteModule","dsMatches","loadRoutePromise","handlerOverride","staticContext","onReject","runHandler","handler","reject","abortPromise","actualHandler","ctx","context","handlerPromise","race","handlerError","catch","callLoaderOrAction","dataStrategyResult","isResponse","contentType","isDataWithResponseInit","_result$init2","_result$init","_result$init3","_result$init4","_result$init5","_result$init6","deferred","resolveData","isDeferredData","Headers","trimmedMatches","normalizedLocation","protocol","isSameBasename","Request","processRouteLoaderData","skipLoaderErrorBubbling","foundError","loaderHeaders","newLoaderData","mergedLoaderData","hasOwnProperty","reverse","find","_temp5","errorMessage","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","_dataRouterState","_future","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","useRoutes","createRoutesFromChildren","apply","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","setState","Link","_ref7","ref","absoluteHref","onClick","reloadDocument","target","_objectWithoutPropertiesLoose","_excluded","UNSAFE_NavigationContext","isExternal","targetUrl","internalOnClick","replaceProp","event","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","shouldProcessLinkClick","preventDefault","useLinkClickHandler","defaultPrevented","defineProperty","checkSpecKeys","checkNavigable","changeSlide","canUseDOM","canGoNext","clamp","extractObject","filterSettings","settings","validSettings","settingName","swipeStart","swipeMove","swipeEnd","slidesOnRight","slidesOnLeft","slideHandler","siblingDirection","safePreventDefault","lazyStartIndex","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","keyHandler","initializedState","getWidth","getTrackLeft","getTrackCSS","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getPreClones","getPostClones","getOnDemandLazySlides","getNavigableIndexes","getHeight","_react","_interopRequireDefault","_defaultProps","obj","__esModule","_typeof","o","iterator","prototype","ownKeys","t","getOwnPropertySymbols","getOwnPropertyDescriptor","enumerable","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","toPrimitive","call","TypeError","Number","_toPrimitive","_toPropertyKey","configurable","writable","number","lowerBound","upperBound","_reactName","spec","onDemandSlides","endIndex","slideIndex","lazyLoadedList","requiredSlides","currentSlide","centerMode","floor","slidesToShow","parseInt","centerPadding","elem","offsetWidth","offsetHeight","touchObject","xDist","yDist","swipeAngle","verticalSwiping","startX","curX","startY","curY","atan2","round","PI","abs","canGo","infinite","slideCount","newObject","slideWidth","Children","listNode","listRef","listWidth","ceil","trackNode","trackRef","node","trackWidth","vertical","centerPaddingAdj","slideHeight","listHeight","initialSlide","rtl","slidesToLoad","autoplaying","autoplay","waitForAnimate","animating","fade","lazyLoad","slidesToScroll","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","nextState","targetSlide","trackStyle","left","swipeLeft","indexOffset","previousInt","slideOffset","previousTargetSlide","direction","accessibility","tagName","keyCode","swipe","draggable","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","counter","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","querySelectorAll","slide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","opacity","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","width","height","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","targetLeft","variableWidth","slidesToOffset","targetSlideIndex","trackElem","childNodes","right","g","Function","hasOwn","classNames","classes","appendClass","parseValue","newClass","default","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","err","defaultProps","adaptiveHeight","afterChange","appendDots","dots","display","arrows","autoplaySpeed","beforeChange","className","customPaging","dotsClass","easing","focusOnSelect","nextArrow","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","prevArrow","responsive","rows","slidesPerRow","touchMove","asNavFor","isFunction","each","collection","createRoot","hydrateRoot","_slider","l","for","p","q","u","w","x","z","B","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","C","D","E","refs","updater","F","G","isReactComponent","forceUpdate","H","isPureReactComponent","I","J","K","L","__self","__source","M","d","c","h","$$typeof","_owner","O","P","Q","escape","R","N","A","S","T","_status","_result","U","V","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","X","toArray","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","bind","createRef","forwardRef","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","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","isNaN","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","trim","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","tag","Ra","Qa","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","valueOf","firstChild","removeChild","appendChild","ob","lastChild","nodeType","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","fontWeight","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","source","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","parentNode","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","child","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","log","LN2","rc","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","charCode","pd","qd","rd","_targetInst","currentTarget","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","getModifierState","zd","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","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","password","range","tel","time","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","offset","nextSibling","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","Le","contains","compareDocumentPosition","documentElement","start","selectionStart","selectionEnd","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","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","setTimeout","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","callback","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","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","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","autoFocus","createTextNode","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","Wj","insertBefore","Vj","_reactRootContainer","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","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","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","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","html","script","onreadystatechange","installReadyStateChangeImplementation","args","task","run","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","len","marker","runClearTimeout","Item","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","_innerSlider","_json2mq","_innerSliderUtils","_defineProperties","descriptor","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","enquire","_React$Component","subClass","superClass","_inherits","Slider","Constructor","protoProps","staticProps","_super","_this","_classCallCheck","innerSlider","slickPrev","slickNext","dontAnimate","slickGoTo","pause","autoPlay","_responsiveMediaHandlers","query","register","_this2","breakpoints","breakpt","bQuery","minWidth","maxWidth","media","unregister","newProps","_this3","resp","newChildren","currentWidth","j","row","tabIndex","InnerSlider","innerSliderRefHandler","_initialState","_lodash","_classnames","_track","_dots","_arrows","_resizeObserverPolyfill","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","list","prevState","onLazyLoad","adaptHeight","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","observe","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","timer","autoplayTimer","disconnect","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","debouncedResize","resizeWindow","isTrackMounted","updatedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i","_i2","_trackStyle","childrenCount","trackLeft","images","imagesCount","loadedCount","image","prevClickHandler","onload","onerror","_index","_this$props","_slideHandler","asNavForIndex","firstBatch","nodes","clickable","ontouchmove","disableBodyScroll","triggerSlideHandler","enableBodyScroll","playType","play","pauseType","trackProps","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dotProps","clickHandler","onDotsLeave","onDotsOver","Dots","arrowProps","PrevArrow","NextArrow","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","currentDirection","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","root","objectToString","nativeMax","nativeMin","isObject","toNumber","isObjectLike","isSymbol","other","isBinary","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","flush","getSlideClasses","slickActive","slickCenter","slickCloned","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","position","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_React$PureComponent","_len","_key","mouseEvents","handleRef","_rightBound","rightBound","_leftBound","leftBound","dotOptions","_createClass","prevClasses","prevHandler","prevArrowProps","customProps","_React$PureComponent2","_super2","nextClasses","nextHandler","nextArrowProps","MapShim","arr","class_1","__entries__","_a","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","characterData","subtree","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","bottom","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","observation","ResizeObserver","camel2hyphen","obj2mq","mq","features","feature","isDimension","str","MediaQueryDispatch","MediaQuery","Util","matchMedia","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","handlers","mql","assess","constuctor","equals","deferSetup","setup","initialised","unmatch"],"mappings":"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","file":"static/js/2.7734df3f.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\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

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