{"version":3,"sources":["../node_modules/react/index.js","../node_modules/axios/lib/utils.js","../../history.ts","../../utils.ts","../../router.ts","../../lib/context.ts","../../lib/hooks.tsx","../../lib/components.tsx","../../index.ts","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../../dom.ts","../../index.tsx","../node_modules/webpack/buildin/global.js","../node_modules/react-dom/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/null.js","../node_modules/timers-browserify/main.js","../node_modules/process/browser.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/setimmediate/setImmediate.js","../node_modules/buffer/index.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js"],"names":["module","exports","require","toString","Object","prototype","getPrototypeOf","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","map","forEach","obj","fn","i","l","allOwnKeys","arguments","length","undefined","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","_ref","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","ret","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","setImmediate","token","Math","random","callbacks","addEventListener","_ref2","source","data","shift","cb","push","postMessage","setTimeout","asap","queueMicrotask","bind","process","nextTick","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","a","b","thisArg","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","target","reducedValue","isThenable","then","catch","Action","createMemoryHistory","options","entries","initialEntries","initialIndex","v5Compat","entry","index","createMemoryLocation","state","clampIndex","action","Pop","listener","n","min","max","getCurrentLocation","to","location","createLocation","pathname","warning","charAt","JSON","stringify","createHref","createPath","createURL","URL","encodeLocation","path","parsePath","search","hash","Push","nextLocation","splice","delta","Replace","go","nextIndex","listen","createBrowserHistory","getUrlBasedHistory","globalHistory","usr","createHashHistory","substr","startsWith","base","document","querySelector","href","getAttribute","url","hashIndex","invariant","message","cond","console","warn","e","getHistoryState","idx","current","_extends","parsedPath","searchIndex","getLocation","validateLocation","defaultView","history","getIndex","handlePop","origin","replaceState","removeEventListener","historyState","pushState","error","DOMException","ResultType","immutableRouteKeys","Set","convertRoutesToDataRoutes","routes","mapRouteProperties","parentPath","manifest","route","treePath","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","_route$path","includes","exploded","explodeOptionalSegments","segments","first","rest","isOptional","required","restExploded","subpath","sort","every","compareIndexes","rankRouteBranches","decoded","decodePath","matchRouteBranch","convertRouteMatchToUiMatch","match","loaderData","params","handle","paramRe","isSplat","s","initialScore","some","reduce","segment","test","branch","matchedParams","matchedPathname","end","remainingPathname","matchPath","pathnameBase","normalizePathname","pattern","matcher","compiledParams","regexpSource","_","paramName","RegExp","compilePath","captureGroups","memo","splatValue","v","decodeURIComponent","startIndex","nextChar","getInvalidPathError","char","field","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","from","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","pop","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","AbortedDeferredError","ErrorResponseImpl","status","statusText","internal","isRouteErrorResponse","validMutationMethodsArr","validMutationMethods","validRequestMethodsArr","validRequestMethods","redirectStatusCodes","redirectPreserveMethodStatusCodes","IDLE_NAVIGATION","formMethod","formAction","formEncType","formData","json","text","IDLE_FETCHER","IDLE_BLOCKER","proceed","reset","ABSOLUTE_URL_REGEX","defaultMapRouteProperties","hasErrorBoundary","Boolean","createRouter","init","routerWindow","isBrowser","createElement","isServer","detectErrorBoundary","inFlightDataRoutes","initialized","router","dataRoutes","dataStrategyImpl","unstable_dataStrategy","defaultDataStrategy","patchRoutesOnMissImpl","unstable_patchRoutesOnMiss","future","v7_fetcherPersist","v7_normalizeFormMethod","v7_partialHydration","v7_prependBasename","v7_skipActionErrorRevalidation","unlistenHistory","subscribers","savedScrollPositions","getScrollRestorationKey","getScrollPosition","initialScrollRestored","hydrationData","initialMatches","initialErrors","getInternalRouterError","getShortCircuitMatches","checkFogOfWar","active","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","ignoreNextHistoryUpdate","updateState","newState","opts","completedFetchers","deletedFetchersKeys","fetcher","has","subscriber","unstable_viewTransitionOpts","viewTransitionOpts","unstable_flushSync","flushSync","delete","deleteFetcher","completeNavigation","_temp","_location$state","_location$state2","isActionReload","isMutationMethod","_isRedirect","mergeLoaderData","k","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","actionResult","isFogOfWar","interruptActiveLoads","getSubmittingNavigation","discoverResult","discoverRoutes","shortCircuited","boundaryId","handleDiscoverRouteError","partialMatches","actionMatch","getTargetMatch","results","callDataStrategy","aborted","method","routeId","isRedirectResult","normalizeRedirectLocation","response","headers","startRedirectNavigation","isDeferredResult","isErrorResult","boundaryMatch","handleAction","getLoadingNavigation","updatedMatches","fetcherSubmission","initialHydration","activeSubmission","getSubmissionFromNavigation","shouldUpdateNavigationState","getUpdatedActionData","matchesToLoad","revalidatingFetchers","getMatchesToLoad","cancelActiveDeferreds","updatedFetchers","markFetchRedirectsDone","getActionDataForCommit","updates","rf","revalidatingFetcher","getLoadingFetcher","getUpdatedRevalidatingFetchers","abortFetcher","controller","abortPendingFetchRevalidations","f","loaderResults","fetcherResults","callLoadersAndMaybeResolveData","redirect","findRedirect","fetcherKey","processLoaderData","deferredData","subscribe","_ref3","didAbortFetchLoads","abortStaleFetchLoads","shouldUpdateFetchers","handleLoaders","_temp2","redirectLocation","isDocumentReload","redirectHistoryAction","callDataStrategyImpl","Promise","all","isRedirectHandlerResult","normalizeRelativeRoutingRedirectResponse","convertHandlerResultToDataResult","currentMatches","fetchersToLoad","r","resolve","resolveDeferredResults","updateFetcherState","setFetcherError","getFetcher","markFetchersDone","doneFetcher","getDoneFetcher","doneKeys","landedId","yeetedKeys","deleteBlocker","updateBlocker","newBlocker","blocker","shouldBlockNavigation","_ref4","blockerKey","blockerFunction","predicate","cancelledRouteIds","dfd","cancel","y","leafRoute","isNonHMR","loadLazyRouteChildren","newMatches","matchedSplat","newPartialMatches","initialize","_window","transitions","sessionPositions","sessionStorage","getItem","parse","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","prependBasename","contextualMatches","activeRouteMatch","hasNakedIndexQuery","normalizeFormMethod","isFetcher","body","isSubmissionNavigation","isValidMethod","searchParams","getInvalidBodyError","rawFormMethod","stripHashFromPath","URLSearchParams","acc","_ref5","convertFormDataToSearchParams","convertSearchParamsToFormData","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","_route$children","dataChildren","loadLazyRouteModule","lazyRoute","routeToUpdate","routeUpdates","lazyRouteProperty","isPropertyStaticallyDefined","requestContext","routeIdsToLoad","loadedMatches","shouldLoad","handlerOverride","staticContext","onReject","runHandler","handler","reject","abortPromise","handlerPromise","actualHandler","ctx","race","handlerError","callLoaderOrAction","handlerResult","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","reverse","find","_temp5","errorMessage","signals","isRevalidatingLoader","unwrap","unwrappedData","getAll","DataRouterContext","React","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useHref","useInRouterContext","UNSAFE_invariant","navigator","useResolvedPath","joinedPathname","useLocation","useIsomorphicLayoutEffect","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","preStyles","padding","backgroundColor","style","fontStyle","defaultErrorElement","RenderErrorBoundary","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","Navigate","isStatic","jsonPath","Route","_props","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","useRoutes","createRoutesFromChildren","apply","AxiosError","code","config","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","toFormData","TypeError","PlatformFormData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","isFlatArray","el","exposedHelpers","build","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","setState","g","Function","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","err","scope","Timeout","clearFn","_id","_clearFn","clearTimeout","setInterval","clearInterval","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","array","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","for","p","q","t","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","defaultProps","$$typeof","_owner","O","P","Q","escape","R","N","A","S","T","_status","_result","default","U","V","transition","W","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","X","Children","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","act","cloneElement","createContext","_currentValue","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","_context","createFactory","createRef","forwardRef","isValidElement","_payload","_init","compare","startTransition","unstable_act","useCallback","useContext","useDebugValue","useDeferredValue","useEffect","useId","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useSyncExternalStore","useTransition","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","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","tag","Ra","Qa","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","configurable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_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","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","setProperty","substring","tb","menuitem","area","br","col","embed","hr","img","input","keygen","link","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","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","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","Od","Alt","Control","Meta","Shift","Pd","Rd","fromCharCode","repeat","locale","which","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","tel","time","week","me","ne","oe","event","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","node","offset","nextSibling","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","Le","contains","compareDocumentPosition","documentElement","start","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","of","pf","qf","sf","capture","passive","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","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","tagName","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","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useMutableSource","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","_reactInternals","Fi","shouldComponentUpdate","Gi","contextType","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","digest","Ki","Li","Mi","WeakMap","Ni","Oi","Pi","Qi","getDerivedStateFromError","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","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","display","Wj","insertBefore","Vj","_reactRootContainer","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","src","Vk","lk","ceil","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","pendingSuspenseBoundaries","cl","dl","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","querySelectorAll","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","createRoot","unstable_strictMode","findDOMNode","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","sortIndex","performance","startTime","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","channel","installMessageChannelImplementation","html","script","onreadystatechange","installReadyStateChangeImplementation","task","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","encodingOrOffset","allocUnsafe","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","fill","allocUnsafeSlow","_isBuffer","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","encode","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","classes","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","rawValue","parser","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","tokens","tokensRE","parseTokens","deleted","deleteHeader","normalize","format","normalized","formatHeader","_len","targets","asStrings","computed","_len2","_key2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","speedometer","samplesCount","timestamps","firstSampleTS","head","chunkLength","startedAt","bytesCount","passed","round","throttle","freq","lastArgs","timer","timestamp","threshold","invoke","flush","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","msie","userAgent","urlParsingNode","originURL","resolveURL","host","hostname","port","requestURL","expires","domain","secure","cookie","toGMTString","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","username","unescape","isURLSameOrigin","xsrfValue","cookies","isXHRAdapterSupported","XMLHttpRequest","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","onloadend","responseHeaders","getAllResponseHeaders","responseText","open","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","upload","parseProtocol","send","composeSignals","reason","streamChunk","chunk","chunkSize","trackStream","stream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","loadedBytes","enqueue","highWaterMark","isFetchSupported","Response","isReadableStreamSupported","encodeText","TextEncoder","arrayBuffer","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","getBodyLength","fetchOptions","finished","composedSignal","stopTimeout","requestContentLength","contentTypeHeader","_request","duplex","credentials","isStreamResponse","responseContentLength","responseData","knownAdapters","http","httpAdapter","xhr","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","opt","desc","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","VERSION","Cancel","promises","spread","isAxiosError","formToJSON","getAdapter"],"mappings":"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","file":"static/js/2.6d6591e2.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","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnMissFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport 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 HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnMissFunction,\n 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_patchRoutesOnMiss?: AgnosticPatchRoutesOnMissFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnMissImpl = init.unstable_patchRoutesOnMiss;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnMissImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnMiss implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !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 // `patchRoutesOnMiss` 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 patchRoutesOnMiss() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || 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 this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.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 (patchRoutesOnMissImpl) {\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n let leafRoute = matches[matches.length - 1].route;\n if (\n leafRoute.path &&\n (leafRoute.path === \"*\" || leafRoute.path.endsWith(\"/*\"))\n ) {\n // If we matched a splat, it might only be because we haven't yet fetched\n // the children that would match with a higher score, so let's fetch\n // around and find out\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n let route =\n partialMatches.length > 0\n ? partialMatches[partialMatches.length - 1].route\n : null;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnMissImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n let matchedSplat = false;\n if (newMatches) {\n let leafRoute = newMatches[newMatches.length - 1].route;\n\n if (leafRoute.index) {\n // If we found an index route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n\n if (leafRoute.path && leafRoute.path.length > 0) {\n if (leafRoute.path === \"*\") {\n // If we found a splat route, we can't be sure there's not a\n // higher-scoring route down some partial matches trail so we need\n // to check that out\n matchedSplat = true;\n } else {\n // If we found a non-splat route, we can stop\n return { type: \"success\", matches: newMatches };\n }\n }\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // If we are no longer partially matching anything, this was either a\n // legit splat match above, or it's a 404. Also avoid loops if the\n // second pass results in the same partial matches\n if (\n !newPartialMatches ||\n partialMatches.map((m) => m.route.id).join(\"-\") ===\n newPartialMatches.map((m) => m.route.id).join(\"-\")\n ) {\n return { type: \"success\", matches: matchedSplat ? newMatches : null };\n }\n\n partialMatches = newPartialMatches;\n route = partialMatches[partialMatches.length - 1].route;\n if (route.path === \"*\") {\n // The splat is still our most accurate partial, so run with it\n return { type: \"success\", matches: partialMatches };\n }\n }\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: 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 patchRoutesOnMiss() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnMissImpl: AgnosticPatchRoutesOnMissFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map>,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnMissImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n 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 matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnMiss()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function 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 resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\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 `patchRoutesOnMiss`\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