From 55b45375e3b6d6e958606c022c7398bd0fe7ceb0 Mon Sep 17 00:00:00 2001 From: Alexandre Maillard Date: Fri, 26 Apr 2024 11:04:18 +0200 Subject: [PATCH] Updates --- asset-manifest.json | 14 ++++ favicon.ico | Bin 0 -> 3870 bytes img/G1.png | Bin 0 -> 56313 bytes img/G2.png | Bin 0 -> 464221 bytes img/change.png | Bin 0 -> 10815 bytes index.html | 1 + logo192.png | Bin 0 -> 5347 bytes logo512.png | Bin 0 -> 9664 bytes manifest.json | 25 ++++++ robots.txt | 3 + static/css/main.25df2235.css | 2 + static/css/main.25df2235.css.map | 1 + static/js/main.aa2dbcca.js | 3 + static/js/main.aa2dbcca.js.LICENSE.txt | 72 ++++++++++++++++++ static/js/main.aa2dbcca.js.map | 1 + .../ciel_etoile.63ea6824479139a16a1d.avif | Bin 0 -> 50271 bytes 16 files changed, 122 insertions(+) create mode 100644 asset-manifest.json create mode 100644 favicon.ico create mode 100644 img/G1.png create mode 100644 img/G2.png create mode 100644 img/change.png create mode 100644 index.html create mode 100644 logo192.png create mode 100644 logo512.png create mode 100644 manifest.json create mode 100644 robots.txt create mode 100644 static/css/main.25df2235.css create mode 100644 static/css/main.25df2235.css.map create mode 100644 static/js/main.aa2dbcca.js create mode 100644 static/js/main.aa2dbcca.js.LICENSE.txt create mode 100644 static/js/main.aa2dbcca.js.map create mode 100644 static/media/ciel_etoile.63ea6824479139a16a1d.avif diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 000000000..73661e1cd --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,14 @@ +{ + "files": { + "main.css": "/static/css/main.25df2235.css", + "main.js": "/static/js/main.aa2dbcca.js", + "static/media/ciel_etoile.avif": "/static/media/ciel_etoile.63ea6824479139a16a1d.avif", + "index.html": "/index.html", + "main.25df2235.css.map": "/static/css/main.25df2235.css.map", + "main.aa2dbcca.js.map": "/static/js/main.aa2dbcca.js.map" + }, + "entrypoints": [ + "static/css/main.25df2235.css", + "static/js/main.aa2dbcca.js" + ] +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/img/G1.png b/img/G1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1d857ef026c8e91241caa121d6d5cb7d70b893 GIT binary patch literal 56313 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 z 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%0DrQ958+ky~&!SL8-S8e2m14j6hS84~#_21*Mxv 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 B?K}Vg literal 0 HcmV?d00001 diff --git a/img/G2.png b/img/G2.png new file mode 100644 index 0000000000000000000000000000000000000000..496e17d0ed99c9df277fbb6c490f602761a2edc5 GIT binary patch literal 464221 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 z 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

!Zj-wiNosR3KUS{LB&EPxAicvyQV=WF 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

^KBg% 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 z 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®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

JJ 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 SaeNBJNdb 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 000000000..ca08e1749 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +React App

\ No newline at end of file diff --git a/logo192.png b/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json new file mode 100644 index 000000000..080d6c77a --- /dev/null +++ b/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/robots.txt b/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/static/css/main.25df2235.css b/static/css/main.25df2235.css new file mode 100644 index 000000000..89299dabf --- /dev/null +++ b/static/css/main.25df2235.css @@ -0,0 +1,2 @@ +body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body{background-attachment:fixed;background-image:url(/static/media/ciel_etoile.63ea6824479139a16a1d.avif);background-repeat:no-repeat;background-size:cover;color:#fff;font-family:Arial,sans-serif}.home-container{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center}h1,h2,p{margin:10px 0;text-align:center}h1{font-size:60px}h1,h2{color:#f0f0f0}h2{font-size:30px}p{color:#f0f0f0;margin:10px 20px}.begin-button{background-color:#fff6;border-radius:5px;color:#fff;gap:20 px;margin-top:20px;padding:10px 20px;text-decoration:none;transition:background-color .3s}.arrow-left{left:45%}.arrow-left,.arrow-right{background-color:#fff6;border-radius:5px;bottom:20px;color:#fff;cursor:pointer;display:flex;gap:20 px;margin-top:20px;padding:10px 20px;position:absolute;text-decoration:none;transform:translateX(-50%);transition:background-color .9s}.arrow-right{left:55%}.arrow-left:hover,.arrow-right:hover,.begin-button:hover{background-color:#ffffff80}.content{align-items:center;display:flex;justify-content:center}.shifted{transform:translateX(-30%);transition:transform .5s ease-in-out}.popup{padding:5px;position:absolute;right:5%;top:10%}.popup img{display:block;height:auto;margin-bottom:20px} +/*# sourceMappingURL=main.25df2235.css.map*/ \ No newline at end of file diff --git a/static/css/main.25df2235.css.map b/static/css/main.25df2235.css.map new file mode 100644 index 000000000..581835daf --- /dev/null +++ b/static/css/main.25df2235.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.25df2235.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CCZA,KAKI,2BAA4B,CAH5B,yEAA6C,CAE7C,2BAA4B,CAD5B,qBAAsB,CAGtB,UAAY,CALZ,4BAMJ,CAEA,gBAGI,kBAAmB,CAFnB,YAAa,CACb,qBAAsB,CAGtB,YAAa,CADb,sBAEJ,CAEA,QAEI,aAAc,CADd,iBAEJ,CAEA,GACI,cAEJ,CAEA,MAHI,aAMJ,CAHA,GACI,cAEJ,CAEA,EAEI,aAAc,CADd,gBAEJ,CAEA,cAII,sBAA0C,CAG1C,iBAAkB,CAFlB,UAAY,CAFZ,SAAU,CAFV,eAAgB,CAChB,iBAAkB,CAIlB,oBAAqB,CAErB,+BACJ,CAEA,YAaI,QAEJ,CACA,yBAVI,sBAA0C,CAG1C,iBAAkB,CAGlB,WAAY,CALZ,UAAY,CAHZ,cAAe,CAHf,YAAa,CAIb,SAAU,CAHV,eAAgB,CAChB,iBAAkB,CAQlB,iBAAkB,CAHlB,oBAAqB,CAMrB,0BAA2B,CAJ3B,+BAqBJ,CAfA,aAaI,QAEJ,CAEA,yDACI,0BACJ,CAEA,SAII,kBAAmB,CAFnB,YAAa,CACb,sBAEJ,CAEA,SACI,0BAA2B,CAC3B,oCACF,CAEF,OAII,WAAY,CAHZ,iBAAkB,CAElB,QAAS,CADT,OAGF,CAEA,WAEE,aAAc,CADd,WAAY,CAEZ,kBACF","sources":["index.css","styles.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","body {\n font-family: Arial, sans-serif;\n background-image: url('img/ciel_etoile.avif');\n background-size: cover;\n background-repeat: no-repeat;\n background-attachment: fixed;\n color: white;\n}\n\n.home-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100vh;\n}\n\nh1, h2, p {\n text-align: center;\n margin: 10px 0;\n}\n\nh1 {\n font-size: 60px;\n color: #f0f0f0;\n}\n\nh2 {\n font-size: 30px;\n color: #f0f0f0;\n}\n\np {\n margin: 10px 20px;\n color: #f0f0f0;\n}\n\n.begin-button {\n margin-top: 20px;\n padding: 10px 20px;\n gap: 20 px;\n background-color: rgba(255, 255, 255, 0.4);\n color: white;\n text-decoration: none;\n border-radius: 5px;\n transition: background-color 0.3s;\n}\n\n.arrow-left {\n display: flex;\n margin-top: 20px;\n padding: 10px 20px;\n cursor: pointer;\n gap: 20 px;\n background-color: rgba(255, 255, 255, 0.4);\n color: white;\n text-decoration: none;\n border-radius: 5px;\n transition: background-color 0.9s;\n position: absolute; \n bottom: 20px; \n left: 45%; \n transform: translateX(-50%);\n}\n.arrow-right {\n display: flex;\n margin-top: 20px;\n padding: 10px 20px;\n cursor: pointer;\n gap: 20 px;\n background-color: rgba(255, 255, 255, 0.4);\n color: white;\n text-decoration: none;\n border-radius: 5px;\n transition: background-color 0.9s;\n position: absolute; \n bottom: 20px; \n left: 55%; \n transform: translateX(-50%);\n}\n\n.begin-button:hover, .arrow-left:hover, .arrow-right:hover {\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.content\n{\n display: flex;\n justify-content: center; \n align-items: center; \n}\n\n.shifted {\n transform: translateX(-30%);\n transition: transform 0.5s ease-in-out;\n }\n\n.popup{\n position: absolute;\n top: 10%; \n right: 5%; \n padding: 5px;\n }\n \n .popup img {\n height: auto;\n display: block;\n margin-bottom: 20px;\n }"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.aa2dbcca.js b/static/js/main.aa2dbcca.js new file mode 100644 index 000000000..dcb4a1606 --- /dev/null +++ b/static/js/main.aa2dbcca.js @@ -0,0 +1,3 @@ +/*! For license information please see main.aa2dbcca.js.LICENSE.txt */ +(()=>{"use strict";var e={730:(e,t,n)=>{var r=n(43),a=n(853);function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n
attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_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\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: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, 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 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(branches[i], decoded);\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\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): 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 if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\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\nfunction 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 === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\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 * 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 unstable_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_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?: { routeId?: string; requestContext?: unknown }\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 * 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 * 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 // 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 unstable_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) {\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 let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\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 (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // 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 if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\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 { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = 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 { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\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,\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 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 // 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 are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\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 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 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.unstable_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 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 if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\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\n let actionData: 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 actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\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 loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\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 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 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 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 flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.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;\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 // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\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.unstable_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 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 // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function 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 _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\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 _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 }: { requestContext?: unknown; routeId?: string } = {}\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 null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: 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 * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\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 (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 isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\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_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, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

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