zudoku 0.66.3 → 0.66.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/lib/authentication/components/CallbackHandler.js +1 -1
  2. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  3. package/dist/lib/authentication/components/SignIn.js +4 -2
  4. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  5. package/dist/lib/authentication/components/SignUp.js +4 -2
  6. package/dist/lib/authentication/components/SignUp.js.map +1 -1
  7. package/dist/lib/core/RouteGuard.js +12 -7
  8. package/dist/lib/core/RouteGuard.js.map +1 -1
  9. package/dist/lib/oas/graphql/index.js +7 -3
  10. package/dist/lib/oas/graphql/index.js.map +1 -1
  11. package/dist/lib/plugins/api-keys/index.d.ts +9 -5
  12. package/dist/lib/plugins/api-keys/index.js +20 -11
  13. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  14. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +3 -0
  15. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -1
  16. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  17. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  18. package/dist/lib/plugins/openapi/Sidecar.js +3 -2
  19. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  20. package/dist/lib/plugins/openapi/schema/SchemaView.js +1 -1
  21. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  22. package/dist/lib/plugins/openapi/util/createHttpSnippet.js +24 -1
  23. package/dist/lib/plugins/openapi/util/createHttpSnippet.js.map +1 -1
  24. package/dist/lib/ui/Button.js +1 -1
  25. package/dist/lib/ui/Button.js.map +1 -1
  26. package/dist/lib/util/invariant.d.ts +1 -1
  27. package/dist/lib/util/invariant.js +2 -2
  28. package/dist/lib/util/invariant.js.map +1 -1
  29. package/dist/vite/mdx/remark-link-rewrite.js +1 -1
  30. package/dist/vite/plugin-api-keys.js +1 -0
  31. package/dist/vite/plugin-api-keys.js.map +1 -1
  32. package/dist/vite/plugin-markdown-export.js +1 -1
  33. package/dist/vite/plugin-markdown-export.js.map +1 -1
  34. package/dist/vite/prerender/worker.js +3 -0
  35. package/dist/vite/prerender/worker.js.map +1 -1
  36. package/lib/{ActionButton-DUgvSylL.js → ActionButton-B0CXL1Lq.js} +3 -3
  37. package/lib/{ActionButton-DUgvSylL.js.map → ActionButton-B0CXL1Lq.js.map} +1 -1
  38. package/lib/{Button-CynVW1JV.js → Button-GUVe7pmt.js} +8 -7
  39. package/lib/{Button-CynVW1JV.js.map → Button-GUVe7pmt.js.map} +1 -1
  40. package/lib/{Card-KFniaZn5.js → Card-DCdq37aA.js} +2 -2
  41. package/lib/{Card-KFniaZn5.js.map → Card-DCdq37aA.js.map} +1 -1
  42. package/lib/{ClaudeLogo-BZslN9XF.js → ClaudeLogo-ByzA8TYR.js} +3 -3
  43. package/lib/{ClaudeLogo-BZslN9XF.js.map → ClaudeLogo-ByzA8TYR.js.map} +1 -1
  44. package/lib/{Command-BpT1iBE6.js → Command-N6VujV30.js} +3 -3
  45. package/lib/{Command-BpT1iBE6.js.map → Command-N6VujV30.js.map} +1 -1
  46. package/lib/{Dialog-BQciPiHN.js → Dialog-hlvmmQ_c.js} +2 -2
  47. package/lib/{Dialog-BQciPiHN.js.map → Dialog-hlvmmQ_c.js.map} +1 -1
  48. package/lib/{Drawer-BRMcpfuF.js → Drawer-Ch7927PF.js} +2 -2
  49. package/lib/{Drawer-BRMcpfuF.js.map → Drawer-Ch7927PF.js.map} +1 -1
  50. package/lib/{DropdownMenu-C8SX_-S_.js → DropdownMenu-DN0jNrjj.js} +2 -2
  51. package/lib/{DropdownMenu-C8SX_-S_.js.map → DropdownMenu-DN0jNrjj.js.map} +1 -1
  52. package/lib/{Frame-DxlznfVd.js → Frame-DKlOmSkU.js} +2 -2
  53. package/lib/{Frame-DxlznfVd.js.map → Frame-DKlOmSkU.js.map} +1 -1
  54. package/lib/{IndexingDialog-B5zCiUKr.js → IndexingDialog-D0YdGfbn.js} +3 -3
  55. package/lib/{IndexingDialog-B5zCiUKr.js.map → IndexingDialog-D0YdGfbn.js.map} +1 -1
  56. package/lib/{Input-D-kqEQ5M.js → Input-nskrp_mj.js} +39 -18
  57. package/lib/Input-nskrp_mj.js.map +1 -0
  58. package/lib/{MdxPage-B4zZq5aR.js → MdxPage-Bh5YNRV9.js} +10 -10
  59. package/lib/{MdxPage-B4zZq5aR.js.map → MdxPage-Bh5YNRV9.js.map} +1 -1
  60. package/lib/{Mermaid-BjSczjLW.js → Mermaid-CGRoylZf.js} +4 -4
  61. package/lib/{Mermaid-BjSczjLW.js.map → Mermaid-CGRoylZf.js.map} +1 -1
  62. package/lib/{OAuthErrorPage-DRY2hlga.js → OAuthErrorPage-CsTKz5hX.js} +8 -8
  63. package/lib/OAuthErrorPage-CsTKz5hX.js.map +1 -0
  64. package/lib/{OasProvider-lMwTD76Y.js → OasProvider-BBAbJiYa.js} +3 -3
  65. package/lib/{OasProvider-lMwTD76Y.js.map → OasProvider-BBAbJiYa.js.map} +1 -1
  66. package/lib/{OperationList-Bm76b4vl.js → OperationList-DUxrNisd.js} +1104 -1089
  67. package/lib/{OperationList-Bm76b4vl.js.map → OperationList-DUxrNisd.js.map} +1 -1
  68. package/lib/RouteGuard-CIN9Ou-r.js +77 -0
  69. package/lib/RouteGuard-CIN9Ou-r.js.map +1 -0
  70. package/lib/{SchemaList-DX4FPogg.js → SchemaList-BbnkfjIe.js} +9 -9
  71. package/lib/{SchemaList-DX4FPogg.js.map → SchemaList-BbnkfjIe.js.map} +1 -1
  72. package/lib/{SchemaView-CjXvSRxy.js → SchemaView-BrUf6_nP.js} +112 -111
  73. package/lib/SchemaView-BrUf6_nP.js.map +1 -0
  74. package/lib/{Secret-BxGpIhDP.js → Secret-BDBqq4p3.js} +2 -2
  75. package/lib/{Secret-BxGpIhDP.js.map → Secret-BDBqq4p3.js.map} +1 -1
  76. package/lib/{Separator-CTPSeW1S.js → Separator-BXt1LYnm.js} +2 -2
  77. package/lib/{Separator-CTPSeW1S.js.map → Separator-BXt1LYnm.js.map} +1 -1
  78. package/lib/SignUp-AlaaduyY.js +50 -0
  79. package/lib/SignUp-AlaaduyY.js.map +1 -0
  80. package/lib/{SyntaxHighlight-Dgd0AaaX.js → SyntaxHighlight-DveJcTOQ.js} +4 -4
  81. package/lib/{SyntaxHighlight-Dgd0AaaX.js.map → SyntaxHighlight-DveJcTOQ.js.map} +1 -1
  82. package/lib/{Toc-L1vGGHA1.js → Toc-B4ShtN-I.js} +3 -3
  83. package/lib/{Toc-L1vGGHA1.js.map → Toc-B4ShtN-I.js.map} +1 -1
  84. package/lib/{ZudokuContext-DNHMZfcP.js → ZudokuContext-CDJYKqMY.js} +542 -469
  85. package/lib/ZudokuContext-CDJYKqMY.js.map +1 -0
  86. package/lib/{___vite-browser-external_commonjs-proxy-Cga3HsWk.js → ___vite-browser-external_commonjs-proxy-BttVsNON.js} +2 -2
  87. package/lib/___vite-browser-external_commonjs-proxy-BttVsNON.js.map +1 -0
  88. package/lib/chunk-PVWAREVJ-ClM0m2aJ.js.map +1 -1
  89. package/lib/{circular-BIN_WQ0c.js → circular-CuSWVYOZ.js} +2 -2
  90. package/lib/{circular-BIN_WQ0c.js.map → circular-CuSWVYOZ.js.map} +1 -1
  91. package/lib/{cn-dYga0KKN.js → cn-5-Gd1Dss.js} +531 -498
  92. package/lib/cn-5-Gd1Dss.js.map +1 -0
  93. package/lib/{createServer-BEl12QFw.js → createServer-B1_RUTJP.js} +12 -12
  94. package/lib/{createServer-BEl12QFw.js.map → createServer-B1_RUTJP.js.map} +1 -1
  95. package/lib/{createVariantComponent-CQVt-H3r.js → createVariantComponent-Dc0vtOvr.js} +2 -2
  96. package/lib/{createVariantComponent-CQVt-H3r.js.map → createVariantComponent-Dc0vtOvr.js.map} +1 -1
  97. package/lib/{errors-CtBbD47A.js → errors-iDfQAr_v.js} +3 -3
  98. package/lib/{errors-CtBbD47A.js.map → errors-iDfQAr_v.js.map} +1 -1
  99. package/lib/{firebase-CT38ugg4.js → firebase-I54w2ZsH.js} +20 -20
  100. package/lib/{firebase-CT38ugg4.js.map → firebase-I54w2ZsH.js.map} +1 -1
  101. package/lib/{hook-CHw_R_xu.js → hook-BxWvqzB0.js} +2 -2
  102. package/lib/{hook-CHw_R_xu.js.map → hook-BxWvqzB0.js.map} +1 -1
  103. package/lib/{index-CG2v-T7-.js → index-A5Cre871.js} +11 -11
  104. package/lib/{index-CG2v-T7-.js.map → index-A5Cre871.js.map} +1 -1
  105. package/lib/{index-jI2Fjpy-.js → index-B4puReRo.js} +20 -20
  106. package/lib/{index-jI2Fjpy-.js.map → index-B4puReRo.js.map} +1 -1
  107. package/lib/{index-DXXZDuSJ.js → index-CjTisMeX.js} +3 -3
  108. package/lib/{index-DXXZDuSJ.js.map → index-CjTisMeX.js.map} +1 -1
  109. package/lib/index-CrcNWbel.js.map +1 -1
  110. package/lib/{index-CISwSpdT.js → index-Dbrv6d94.js} +2 -2
  111. package/lib/{index-CISwSpdT.js.map → index-Dbrv6d94.js.map} +1 -1
  112. package/lib/index.esm-BYObtETB.js.map +1 -1
  113. package/lib/{index.esm-DtzT_KoE.js → index.esm-B_0dvNjB.js} +2 -2
  114. package/lib/{index.esm-DtzT_KoE.js.map → index.esm-B_0dvNjB.js.map} +1 -1
  115. package/lib/{index.esm-Bu35TNgg.js → index.esm-BxIXRKtj.js} +2 -2
  116. package/lib/index.esm-BxIXRKtj.js.map +1 -0
  117. package/lib/{invariant-CGOLuIIz.js → invariant-BJAl77rw.js} +4 -4
  118. package/lib/invariant-BJAl77rw.js.map +1 -0
  119. package/lib/jsx-runtime-BzflLqGi.js.map +1 -1
  120. package/lib/{mutation-DMHWqmFp.js → mutation-Cq0wKBqW.js} +70 -44
  121. package/lib/mutation-Cq0wKBqW.js.map +1 -0
  122. package/lib/ui/Accordion.js +1 -1
  123. package/lib/ui/ActionButton.js +2 -2
  124. package/lib/ui/Alert.js +1 -1
  125. package/lib/ui/AlertDialog.js +1 -1
  126. package/lib/ui/Badge.js +1 -1
  127. package/lib/ui/Breadcrumb.js +1 -1
  128. package/lib/ui/Button.js +7 -6
  129. package/lib/ui/Button.js.map +1 -1
  130. package/lib/ui/ButtonGroup.js +1 -1
  131. package/lib/ui/Callout.js +1 -1
  132. package/lib/ui/Card.js +1 -1
  133. package/lib/ui/Carousel.js +1 -1
  134. package/lib/ui/Carousel.js.map +1 -1
  135. package/lib/ui/Checkbox.js +1 -1
  136. package/lib/ui/CodeBlock.js +1 -1
  137. package/lib/ui/Command.js +2 -2
  138. package/lib/ui/Dialog.js +1 -1
  139. package/lib/ui/Drawer.js +2 -2
  140. package/lib/ui/DropdownMenu.js +1 -1
  141. package/lib/ui/EmbeddedCodeBlock.js +1 -1
  142. package/lib/ui/Form.js +1 -1
  143. package/lib/ui/Frame.js +1 -1
  144. package/lib/ui/HoverCard.js +1 -1
  145. package/lib/ui/Input.js +1 -1
  146. package/lib/ui/Item.js +1 -1
  147. package/lib/ui/Label.js +1 -1
  148. package/lib/ui/NativeSelect.js +1 -1
  149. package/lib/ui/Pagination.js +1 -1
  150. package/lib/ui/Popover.js +1 -1
  151. package/lib/ui/Progress.js +1 -1
  152. package/lib/ui/RadioGroup.js +1 -1
  153. package/lib/ui/ScrollArea.js +1 -1
  154. package/lib/ui/Secret.js +1 -1
  155. package/lib/ui/Separator.js +1 -1
  156. package/lib/ui/Skeleton.js +1 -1
  157. package/lib/ui/Slider.js +1 -1
  158. package/lib/ui/Switch.js +1 -1
  159. package/lib/ui/SyntaxHighlight.js +3 -3
  160. package/lib/ui/Tabs.js +1 -1
  161. package/lib/ui/Textarea.js +1 -1
  162. package/lib/ui/Toggle.js +1 -1
  163. package/lib/ui/ToggleGroup.js +1 -1
  164. package/lib/ui/Value.js +1 -1
  165. package/lib/ui/util.js +1 -1
  166. package/lib/zudoku.__internal.js +576 -574
  167. package/lib/zudoku.__internal.js.map +1 -1
  168. package/lib/zudoku.auth-auth0.js +1 -1
  169. package/lib/zudoku.auth-azureb2c.js +4 -4
  170. package/lib/zudoku.auth-clerk.js +2 -2
  171. package/lib/zudoku.auth-firebase.js +5 -5
  172. package/lib/zudoku.auth-openid.js +5 -5
  173. package/lib/zudoku.auth-supabase.js +4 -4
  174. package/lib/zudoku.components.js +5 -5
  175. package/lib/zudoku.hooks.js +3 -3
  176. package/lib/zudoku.mermaid.js +3 -3
  177. package/lib/zudoku.plugin-api-catalog.js +4 -4
  178. package/lib/zudoku.plugin-api-keys.js +258 -242
  179. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  180. package/lib/zudoku.plugin-custom-pages.js +1 -1
  181. package/lib/zudoku.plugin-markdown.js +1 -1
  182. package/lib/zudoku.plugin-openapi.js +2 -2
  183. package/lib/zudoku.plugin-search-pagefind.js +6 -6
  184. package/lib/zudoku.router.js.map +1 -1
  185. package/package.json +6 -6
  186. package/src/lib/authentication/components/CallbackHandler.tsx +1 -1
  187. package/src/lib/authentication/components/SignIn.tsx +5 -2
  188. package/src/lib/authentication/components/SignUp.tsx +5 -2
  189. package/src/lib/core/RouteGuard.tsx +30 -24
  190. package/src/lib/oas/graphql/index.ts +7 -3
  191. package/src/lib/plugins/api-keys/index.tsx +48 -19
  192. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +3 -0
  193. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  194. package/src/lib/plugins/openapi/Sidecar.tsx +3 -2
  195. package/src/lib/plugins/openapi/schema/SchemaView.tsx +6 -4
  196. package/src/lib/plugins/openapi/util/createHttpSnippet.ts +29 -1
  197. package/src/lib/ui/Button.tsx +1 -0
  198. package/src/lib/util/invariant.ts +2 -1
  199. package/lib/Input-D-kqEQ5M.js.map +0 -1
  200. package/lib/OAuthErrorPage-DRY2hlga.js.map +0 -1
  201. package/lib/RouteGuard-DGc32XJV.js +0 -77
  202. package/lib/RouteGuard-DGc32XJV.js.map +0 -1
  203. package/lib/SchemaView-CjXvSRxy.js.map +0 -1
  204. package/lib/SignUp-CntxjFGS.js +0 -50
  205. package/lib/SignUp-CntxjFGS.js.map +0 -1
  206. package/lib/ZudokuContext-DNHMZfcP.js.map +0 -1
  207. package/lib/___vite-browser-external_commonjs-proxy-Cga3HsWk.js.map +0 -1
  208. package/lib/cn-dYga0KKN.js.map +0 -1
  209. package/lib/index.esm-Bu35TNgg.js.map +0 -1
  210. package/lib/invariant-CGOLuIIz.js.map +0 -1
  211. package/lib/mutation-DMHWqmFp.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.router.js","sources":["../../../node_modules/.pnpm/cookie@1.0.2/node_modules/cookie/dist/index.js","../../../node_modules/.pnpm/set-cookie-parser@2.7.1/node_modules/set-cookie-parser/lib/set-cookie.js","../../../node_modules/.pnpm/react-router@7.8.2_react-dom@19.2.1_react@19.2.1__react@19.2.1/node_modules/react-router/dist/development/chunk-5UALIXAM.mjs"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\nconst __toString = Object.prototype.toString;\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nfunction parse(str, options) {\n const obj = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2)\n return obj;\n const dec = options?.decode || decode;\n let index = 0;\n do {\n const eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1)\n break; // No more cookie pairs.\n const colonIdx = str.indexOf(\";\", index);\n const endIdx = colonIdx === -1 ? len : colonIdx;\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n const keyStartIdx = startIndex(str, index, eqIdx);\n const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n const key = str.slice(keyStartIdx, keyEndIdx);\n // only assign once\n if (obj[key] === undefined) {\n let valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n let valEndIdx = endIndex(str, endIdx, valStartIdx);\n const value = dec(str.slice(valStartIdx, valEndIdx));\n obj[key] = value;\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n}\nfunction startIndex(str, index, max) {\n do {\n const code = str.charCodeAt(index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index;\n } while (++index < max);\n return max;\n}\nfunction endIndex(str, index, min) {\n while (index > min) {\n const code = str.charCodeAt(--index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index + 1;\n }\n return min;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nfunction serialize(name, val, options) {\n const enc = options?.encode || encodeURIComponent;\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`argument name is invalid: ${name}`);\n }\n const value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${val}`);\n }\n let str = name + \"=\" + value;\n if (!options)\n return str;\n if (options.maxAge !== undefined) {\n if (!Number.isInteger(options.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);\n }\n str += \"; Max-Age=\" + options.maxAge;\n }\n if (options.domain) {\n if (!domainValueRegExp.test(options.domain)) {\n throw new TypeError(`option domain is invalid: ${options.domain}`);\n }\n str += \"; Domain=\" + options.domain;\n }\n if (options.path) {\n if (!pathValueRegExp.test(options.path)) {\n throw new TypeError(`option path is invalid: ${options.path}`);\n }\n str += \"; Path=\" + options.path;\n }\n if (options.expires) {\n if (!isDate(options.expires) ||\n !Number.isFinite(options.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${options.expires}`);\n }\n str += \"; Expires=\" + options.expires.toUTCString();\n }\n if (options.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (options.secure) {\n str += \"; Secure\";\n }\n if (options.partitioned) {\n str += \"; Partitioned\";\n }\n if (options.priority) {\n const priority = typeof options.priority === \"string\"\n ? options.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${options.priority}`);\n }\n }\n if (options.sameSite) {\n const sameSite = typeof options.sameSite === \"string\"\n ? options.sameSite.toLowerCase()\n : options.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);\n }\n }\n return str;\n}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str) {\n if (str.indexOf(\"%\") === -1)\n return str;\n try {\n return decodeURIComponent(str);\n }\n catch (e) {\n return str;\n }\n}\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else if (key === \"partitioned\") {\n cookie.partitioned = true;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","/**\n * react-router v7.8.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n ENABLE_DEV_WARNINGS,\n ErrorResponseImpl,\n FrameworkContext,\n NO_BODY_STATUS_CODES,\n Outlet,\n RSCRouterContext,\n RemixErrorBoundary,\n RouterProvider,\n SINGLE_FETCH_REDIRECT_STATUS,\n SingleFetchRedirectSymbol,\n StaticRouterProvider,\n StreamTransfer,\n convertRoutesToDataRoutes,\n createBrowserHistory,\n createMemoryRouter,\n createRequestInit,\n createRouter,\n createServerRoutes,\n createStaticHandler,\n createStaticRouter,\n decodeViaTurboStream,\n encode,\n getManifestPath,\n getSingleFetchDataStrategyImpl,\n getStaticContextFromError,\n invariant,\n isDataWithResponseInit,\n isMutationMethod,\n isRedirectResponse,\n isRedirectStatusCode,\n isResponse,\n isRouteErrorResponse,\n matchRoutes,\n noActionDefinedError,\n redirect,\n redirectDocument,\n replace,\n setIsHydrated,\n shouldHydrateRouteLoader,\n singleFetchUrl,\n stripBasename,\n stripIndexParam,\n unstable_RouterContextProvider,\n unstable_createContext,\n useRouteError,\n warnOnce,\n withComponentProps,\n withErrorBoundaryProps,\n withHydrateFallbackProps\n} from \"./chunk-PVWAREVJ.mjs\";\n\n// lib/dom/ssr/server.tsx\nimport * as React from \"react\";\nfunction ServerRouter({\n context,\n url,\n nonce\n}) {\n if (typeof url === \"string\") {\n url = new URL(url);\n }\n let { manifest, routeModules, criticalCss, serverHandoffString } = context;\n let routes = createServerRoutes(\n manifest.routes,\n routeModules,\n context.future,\n context.isSpaMode\n );\n context.staticHandlerContext.loaderData = {\n ...context.staticHandlerContext.loaderData\n };\n for (let match of context.staticHandlerContext.matches) {\n let routeId = match.route.id;\n let route = routeModules[routeId];\n let manifestRoute = context.manifest.routes[routeId];\n if (route && manifestRoute && shouldHydrateRouteLoader(\n routeId,\n route.clientLoader,\n manifestRoute.hasLoader,\n context.isSpaMode\n ) && (route.HydrateFallback || !manifestRoute.hasLoader)) {\n delete context.staticHandlerContext.loaderData[routeId];\n }\n }\n let router = createStaticRouter(routes, context.staticHandlerContext);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest,\n routeModules,\n criticalCss,\n serverHandoffString,\n future: context.future,\n ssr: context.ssr,\n isSpaMode: context.isSpaMode,\n routeDiscovery: context.routeDiscovery,\n serializeError: context.serializeError,\n renderMeta: context.renderMeta\n }\n },\n /* @__PURE__ */ React.createElement(RemixErrorBoundary, { location: router.state.location }, /* @__PURE__ */ React.createElement(\n StaticRouterProvider,\n {\n router,\n context: context.staticHandlerContext,\n hydrate: false\n }\n ))\n ), context.serverHandoffStream ? /* @__PURE__ */ React.createElement(React.Suspense, null, /* @__PURE__ */ React.createElement(\n StreamTransfer,\n {\n context,\n identifier: 0,\n reader: context.serverHandoffStream.getReader(),\n textDecoder: new TextDecoder(),\n nonce\n }\n )) : null);\n}\n\n// lib/dom/ssr/routes-test-stub.tsx\nimport * as React2 from \"react\";\nfunction createRoutesStub(routes, _context) {\n return function RoutesTestStub({\n initialEntries,\n initialIndex,\n hydrationData,\n future\n }) {\n let routerRef = React2.useRef();\n let frameworkContextRef = React2.useRef();\n if (routerRef.current == null) {\n frameworkContextRef.current = {\n future: {\n unstable_subResourceIntegrity: future?.unstable_subResourceIntegrity === true,\n unstable_middleware: future?.unstable_middleware === true\n },\n manifest: {\n routes: {},\n entry: { imports: [], module: \"\" },\n url: \"\",\n version: \"\"\n },\n routeModules: {},\n ssr: false,\n isSpaMode: false,\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" }\n };\n let patched = processRoutes(\n // @ts-expect-error `StubRouteObject` is stricter about `loader`/`action`\n // types compared to `AgnosticRouteObject`\n convertRoutesToDataRoutes(routes, (r) => r),\n _context !== void 0 ? _context : future?.unstable_middleware ? new unstable_RouterContextProvider() : {},\n frameworkContextRef.current.manifest,\n frameworkContextRef.current.routeModules\n );\n routerRef.current = createMemoryRouter(patched, {\n initialEntries,\n initialIndex,\n hydrationData\n });\n }\n return /* @__PURE__ */ React2.createElement(FrameworkContext.Provider, { value: frameworkContextRef.current }, /* @__PURE__ */ React2.createElement(RouterProvider, { router: routerRef.current }));\n };\n}\nfunction processRoutes(routes, context, manifest, routeModules, parentId) {\n return routes.map((route) => {\n if (!route.id) {\n throw new Error(\n \"Expected a route.id in react-router processRoutes() function\"\n );\n }\n let newRoute = {\n id: route.id,\n path: route.path,\n index: route.index,\n Component: route.Component ? withComponentProps(route.Component) : void 0,\n HydrateFallback: route.HydrateFallback ? withHydrateFallbackProps(route.HydrateFallback) : void 0,\n ErrorBoundary: route.ErrorBoundary ? withErrorBoundaryProps(route.ErrorBoundary) : void 0,\n action: route.action ? (args) => route.action({ ...args, context }) : void 0,\n loader: route.loader ? (args) => route.loader({ ...args, context }) : void 0,\n handle: route.handle,\n shouldRevalidate: route.shouldRevalidate\n };\n let entryRoute = {\n id: route.id,\n path: route.path,\n index: route.index,\n parentId,\n hasAction: route.action != null,\n hasLoader: route.loader != null,\n // When testing routes, you should be stubbing loader/action/middleware,\n // not trying to re-implement the full loader/clientLoader/SSR/hydration\n // flow. That is better tested via E2E tests.\n hasClientAction: false,\n hasClientLoader: false,\n hasClientMiddleware: false,\n hasErrorBoundary: route.ErrorBoundary != null,\n // any need for these?\n module: \"build/stub-path-to-module.js\",\n clientActionModule: void 0,\n clientLoaderModule: void 0,\n clientMiddlewareModule: void 0,\n hydrateFallbackModule: void 0\n };\n manifest.routes[newRoute.id] = entryRoute;\n routeModules[route.id] = {\n default: newRoute.Component || Outlet,\n ErrorBoundary: newRoute.ErrorBoundary || void 0,\n handle: route.handle,\n links: route.links,\n meta: route.meta,\n shouldRevalidate: route.shouldRevalidate\n };\n if (route.children) {\n newRoute.children = processRoutes(\n route.children,\n context,\n manifest,\n routeModules,\n newRoute.id\n );\n }\n return newRoute;\n });\n}\n\n// lib/server-runtime/cookies.ts\nimport { parse, serialize } from \"cookie\";\n\n// lib/server-runtime/crypto.ts\nvar encoder = /* @__PURE__ */ new TextEncoder();\nvar sign = async (value, secret) => {\n let data2 = encoder.encode(value);\n let key = await createKey(secret, [\"sign\"]);\n let signature = await crypto.subtle.sign(\"HMAC\", key, data2);\n let hash = btoa(String.fromCharCode(...new Uint8Array(signature))).replace(\n /=+$/,\n \"\"\n );\n return value + \".\" + hash;\n};\nvar unsign = async (cookie, secret) => {\n let index = cookie.lastIndexOf(\".\");\n let value = cookie.slice(0, index);\n let hash = cookie.slice(index + 1);\n let data2 = encoder.encode(value);\n let key = await createKey(secret, [\"verify\"]);\n try {\n let signature = byteStringToUint8Array(atob(hash));\n let valid = await crypto.subtle.verify(\"HMAC\", key, signature, data2);\n return valid ? value : false;\n } catch (error) {\n return false;\n }\n};\nvar createKey = async (secret, usages) => crypto.subtle.importKey(\n \"raw\",\n encoder.encode(secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n usages\n);\nfunction byteStringToUint8Array(byteString) {\n let array = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n array[i] = byteString.charCodeAt(i);\n }\n return array;\n}\n\n// lib/server-runtime/cookies.ts\nvar createCookie = (name, cookieOptions = {}) => {\n let { secrets = [], ...options } = {\n path: \"/\",\n sameSite: \"lax\",\n ...cookieOptions\n };\n warnOnceAboutExpiresCookie(name, options.expires);\n return {\n get name() {\n return name;\n },\n get isSigned() {\n return secrets.length > 0;\n },\n get expires() {\n return typeof options.maxAge !== \"undefined\" ? new Date(Date.now() + options.maxAge * 1e3) : options.expires;\n },\n async parse(cookieHeader, parseOptions) {\n if (!cookieHeader) return null;\n let cookies = parse(cookieHeader, { ...options, ...parseOptions });\n if (name in cookies) {\n let value = cookies[name];\n if (typeof value === \"string\" && value !== \"\") {\n let decoded = await decodeCookieValue(value, secrets);\n return decoded;\n } else {\n return \"\";\n }\n } else {\n return null;\n }\n },\n async serialize(value, serializeOptions) {\n return serialize(\n name,\n value === \"\" ? \"\" : await encodeCookieValue(value, secrets),\n {\n ...options,\n ...serializeOptions\n }\n );\n }\n };\n};\nvar isCookie = (object) => {\n return object != null && typeof object.name === \"string\" && typeof object.isSigned === \"boolean\" && typeof object.parse === \"function\" && typeof object.serialize === \"function\";\n};\nasync function encodeCookieValue(value, secrets) {\n let encoded = encodeData(value);\n if (secrets.length > 0) {\n encoded = await sign(encoded, secrets[0]);\n }\n return encoded;\n}\nasync function decodeCookieValue(value, secrets) {\n if (secrets.length > 0) {\n for (let secret of secrets) {\n let unsignedValue = await unsign(value, secret);\n if (unsignedValue !== false) {\n return decodeData(unsignedValue);\n }\n }\n return null;\n }\n return decodeData(value);\n}\nfunction encodeData(value) {\n return btoa(myUnescape(encodeURIComponent(JSON.stringify(value))));\n}\nfunction decodeData(value) {\n try {\n return JSON.parse(decodeURIComponent(myEscape(atob(value))));\n } catch (error) {\n return {};\n }\n}\nfunction myEscape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, code;\n while (index < str.length) {\n chr = str.charAt(index++);\n if (/[\\w*+\\-./@]/.exec(chr)) {\n result += chr;\n } else {\n code = chr.charCodeAt(0);\n if (code < 256) {\n result += \"%\" + hex(code, 2);\n } else {\n result += \"%u\" + hex(code, 4).toUpperCase();\n }\n }\n }\n return result;\n}\nfunction hex(code, length) {\n let result = code.toString(16);\n while (result.length < length) result = \"0\" + result;\n return result;\n}\nfunction myUnescape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, part;\n while (index < str.length) {\n chr = str.charAt(index++);\n if (chr === \"%\") {\n if (str.charAt(index) === \"u\") {\n part = str.slice(index + 1, index + 5);\n if (/^[\\da-f]{4}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = str.slice(index, index + 2);\n if (/^[\\da-f]{2}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n }\n return result;\n}\nfunction warnOnceAboutExpiresCookie(name, expires) {\n warnOnce(\n !expires,\n `The \"${name}\" cookie has an \"expires\" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \\`commitSession(session, { expires })\\` if using a session storage object, or \\`cookie.serialize(\"value\", { expires })\\` if you're using the cookie directly.`\n );\n}\n\n// lib/server-runtime/entry.ts\nfunction createEntryRouteModules(manifest) {\n return Object.keys(manifest).reduce((memo, routeId) => {\n let route = manifest[routeId];\n if (route) {\n memo[routeId] = route.module;\n }\n return memo;\n }, {});\n}\n\n// lib/server-runtime/mode.ts\nvar ServerMode = /* @__PURE__ */ ((ServerMode2) => {\n ServerMode2[\"Development\"] = \"development\";\n ServerMode2[\"Production\"] = \"production\";\n ServerMode2[\"Test\"] = \"test\";\n return ServerMode2;\n})(ServerMode || {});\nfunction isServerMode(value) {\n return value === \"development\" /* Development */ || value === \"production\" /* Production */ || value === \"test\" /* Test */;\n}\n\n// lib/server-runtime/errors.ts\nfunction sanitizeError(error, serverMode) {\n if (error instanceof Error && serverMode !== \"development\" /* Development */) {\n let sanitized = new Error(\"Unexpected Server Error\");\n sanitized.stack = void 0;\n return sanitized;\n }\n return error;\n}\nfunction sanitizeErrors(errors, serverMode) {\n return Object.entries(errors).reduce((acc, [routeId, error]) => {\n return Object.assign(acc, { [routeId]: sanitizeError(error, serverMode) });\n }, {});\n}\nfunction serializeError(error, serverMode) {\n let sanitized = sanitizeError(error, serverMode);\n return {\n message: sanitized.message,\n stack: sanitized.stack\n };\n}\nfunction serializeErrors(errors, serverMode) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (isRouteErrorResponse(val)) {\n serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n } else if (val instanceof Error) {\n let sanitized = sanitizeError(val, serverMode);\n serialized[key] = {\n message: sanitized.message,\n stack: sanitized.stack,\n __type: \"Error\",\n // If this is a subclass (i.e., ReferenceError), send up the type so we\n // can re-create the same type during hydration. This will only apply\n // in dev mode since all production errors are sanitized to normal\n // Error instances\n ...sanitized.name !== \"Error\" ? {\n __subType: sanitized.name\n } : {}\n };\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n// lib/server-runtime/routeMatching.ts\nfunction matchServerRoutes(routes, pathname, basename) {\n let matches = matchRoutes(\n routes,\n pathname,\n basename\n );\n if (!matches) return null;\n return matches.map((match) => ({\n params: match.params,\n pathname: match.pathname,\n route: match.route\n }));\n}\n\n// lib/server-runtime/data.ts\nasync function callRouteHandler(handler, args) {\n let result = await handler({\n request: stripRoutesParam(stripIndexParam2(args.request)),\n params: args.params,\n context: args.context\n });\n if (isDataWithResponseInit(result) && result.init && result.init.status && isRedirectStatusCode(result.init.status)) {\n throw new Response(null, result.init);\n }\n return result;\n}\nfunction stripIndexParam2(request) {\n let url = new URL(request.url);\n let indexValues = url.searchParams.getAll(\"index\");\n url.searchParams.delete(\"index\");\n let indexValuesToKeep = [];\n for (let indexValue of indexValues) {\n if (indexValue) {\n indexValuesToKeep.push(indexValue);\n }\n }\n for (let toKeep of indexValuesToKeep) {\n url.searchParams.append(\"index\", toKeep);\n }\n let init = {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal\n };\n if (init.body) {\n init.duplex = \"half\";\n }\n return new Request(url.href, init);\n}\nfunction stripRoutesParam(request) {\n let url = new URL(request.url);\n url.searchParams.delete(\"_routes\");\n let init = {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal\n };\n if (init.body) {\n init.duplex = \"half\";\n }\n return new Request(url.href, init);\n}\n\n// lib/server-runtime/invariant.ts\nfunction invariant2(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n console.error(\n \"The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose\"\n );\n throw new Error(message);\n }\n}\n\n// lib/server-runtime/dev.ts\nvar globalDevServerHooksKey = \"__reactRouterDevServerHooks\";\nfunction setDevServerHooks(devServerHooks) {\n globalThis[globalDevServerHooksKey] = devServerHooks;\n}\nfunction getDevServerHooks() {\n return globalThis[globalDevServerHooksKey];\n}\nfunction getBuildTimeHeader(request, headerName) {\n if (typeof process !== \"undefined\") {\n try {\n if (process.env?.IS_RR_BUILD_REQUEST === \"yes\") {\n return request.headers.get(headerName);\n }\n } catch (e) {\n }\n }\n return null;\n}\n\n// lib/server-runtime/routes.ts\nfunction groupRoutesByParentId(manifest) {\n let routes = {};\n Object.values(manifest).forEach((route) => {\n if (route) {\n let parentId = route.parentId || \"\";\n if (!routes[parentId]) {\n routes[parentId] = [];\n }\n routes[parentId].push(route);\n }\n });\n return routes;\n}\nfunction createRoutes(manifest, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest)) {\n return (routesByParentId[parentId] || []).map((route) => ({\n ...route,\n children: createRoutes(manifest, route.id, routesByParentId)\n }));\n}\nfunction createStaticHandlerDataRoutes(manifest, future, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest)) {\n return (routesByParentId[parentId] || []).map((route) => {\n let commonRoute = {\n // Always include root due to default boundaries\n hasErrorBoundary: route.id === \"root\" || route.module.ErrorBoundary != null,\n id: route.id,\n path: route.path,\n unstable_middleware: route.module.unstable_middleware,\n // Need to use RR's version in the param typed here to permit the optional\n // context even though we know it'll always be provided in remix\n loader: route.module.loader ? async (args) => {\n let preRenderedData = getBuildTimeHeader(\n args.request,\n \"X-React-Router-Prerender-Data\"\n );\n if (preRenderedData != null) {\n let encoded = preRenderedData ? decodeURI(preRenderedData) : preRenderedData;\n invariant2(encoded, \"Missing prerendered data for route\");\n let uint8array = new TextEncoder().encode(encoded);\n let stream = new ReadableStream({\n start(controller) {\n controller.enqueue(uint8array);\n controller.close();\n }\n });\n let decoded = await decodeViaTurboStream(stream, global);\n let data2 = decoded.value;\n if (data2 && SingleFetchRedirectSymbol in data2) {\n let result = data2[SingleFetchRedirectSymbol];\n let init = { status: result.status };\n if (result.reload) {\n throw redirectDocument(result.redirect, init);\n } else if (result.replace) {\n throw replace(result.redirect, init);\n } else {\n throw redirect(result.redirect, init);\n }\n } else {\n invariant2(\n data2 && route.id in data2,\n \"Unable to decode prerendered data\"\n );\n let result = data2[route.id];\n invariant2(\n \"data\" in result,\n \"Unable to process prerendered data\"\n );\n return result.data;\n }\n }\n let val = await callRouteHandler(route.module.loader, args);\n return val;\n } : void 0,\n action: route.module.action ? (args) => callRouteHandler(route.module.action, args) : void 0,\n handle: route.module.handle\n };\n return route.index ? {\n index: true,\n ...commonRoute\n } : {\n caseSensitive: route.caseSensitive,\n children: createStaticHandlerDataRoutes(\n manifest,\n future,\n route.id,\n routesByParentId\n ),\n ...commonRoute\n };\n });\n}\n\n// lib/server-runtime/markup.ts\nvar ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);\n}\n\n// lib/server-runtime/serverHandoff.ts\nfunction createServerHandoffString(serverHandoff) {\n return escapeHtml(JSON.stringify(serverHandoff));\n}\n\n// lib/server-runtime/headers.ts\nimport { splitCookiesString } from \"set-cookie-parser\";\nfunction getDocumentHeaders(context, build) {\n return getDocumentHeadersImpl(context, (m) => {\n let route = build.routes[m.route.id];\n invariant2(route, `Route with id \"${m.route.id}\" not found in build`);\n return route.module.headers;\n });\n}\nfunction getDocumentHeadersImpl(context, getRouteHeadersFn, _defaultHeaders) {\n let boundaryIdx = context.errors ? context.matches.findIndex((m) => context.errors[m.route.id]) : -1;\n let matches = boundaryIdx >= 0 ? context.matches.slice(0, boundaryIdx + 1) : context.matches;\n let errorHeaders;\n if (boundaryIdx >= 0) {\n let { actionHeaders, actionData, loaderHeaders, loaderData } = context;\n context.matches.slice(boundaryIdx).some((match) => {\n let id = match.route.id;\n if (actionHeaders[id] && (!actionData || !actionData.hasOwnProperty(id))) {\n errorHeaders = actionHeaders[id];\n } else if (loaderHeaders[id] && !loaderData.hasOwnProperty(id)) {\n errorHeaders = loaderHeaders[id];\n }\n return errorHeaders != null;\n });\n }\n const defaultHeaders = new Headers(_defaultHeaders);\n return matches.reduce((parentHeaders, match, idx) => {\n let { id } = match.route;\n let loaderHeaders = context.loaderHeaders[id] || new Headers();\n let actionHeaders = context.actionHeaders[id] || new Headers();\n let includeErrorHeaders = errorHeaders != null && idx === matches.length - 1;\n let includeErrorCookies = includeErrorHeaders && errorHeaders !== loaderHeaders && errorHeaders !== actionHeaders;\n let headersFn = getRouteHeadersFn(match);\n if (headersFn == null) {\n let headers2 = new Headers(parentHeaders);\n if (includeErrorCookies) {\n prependCookies(errorHeaders, headers2);\n }\n prependCookies(actionHeaders, headers2);\n prependCookies(loaderHeaders, headers2);\n return headers2;\n }\n let headers = new Headers(\n typeof headersFn === \"function\" ? headersFn({\n loaderHeaders,\n parentHeaders,\n actionHeaders,\n errorHeaders: includeErrorHeaders ? errorHeaders : void 0\n }) : headersFn\n );\n if (includeErrorCookies) {\n prependCookies(errorHeaders, headers);\n }\n prependCookies(actionHeaders, headers);\n prependCookies(loaderHeaders, headers);\n prependCookies(parentHeaders, headers);\n return headers;\n }, new Headers(defaultHeaders));\n}\nfunction prependCookies(parentHeaders, childHeaders) {\n let parentSetCookieString = parentHeaders.get(\"Set-Cookie\");\n if (parentSetCookieString) {\n let cookies = splitCookiesString(parentSetCookieString);\n let childCookies = new Set(childHeaders.getSetCookie());\n cookies.forEach((cookie) => {\n if (!childCookies.has(cookie)) {\n childHeaders.append(\"Set-Cookie\", cookie);\n }\n });\n }\n}\n\n// lib/server-runtime/single-fetch.ts\nvar SERVER_NO_BODY_STATUS_CODES = /* @__PURE__ */ new Set([\n ...NO_BODY_STATUS_CODES,\n 304\n]);\nasync function singleFetchAction(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n try {\n let handlerRequest = new Request(handlerUrl, {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal,\n ...request.body ? { duplex: \"half\" } : void 0\n });\n let result = await staticHandler.query(handlerRequest, {\n requestContext: loadContext,\n skipLoaderErrorBubbling: true,\n skipRevalidation: true,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(handlerRequest);\n return handleQueryResult(innerResult);\n } catch (error) {\n return handleQueryError(error);\n }\n } : void 0\n });\n return handleQueryResult(result);\n } catch (error) {\n return handleQueryError(error);\n }\n function handleQueryResult(result) {\n return isResponse(result) ? result : staticContextToResponse(result);\n }\n function handleQueryError(error) {\n handleError(error);\n return generateSingleFetchResponse(request, build, serverMode, {\n result: { error },\n headers: new Headers(),\n status: 500\n });\n }\n function staticContextToResponse(context) {\n let headers = getDocumentHeaders(context, build);\n if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let singleFetchResult;\n if (context.errors) {\n singleFetchResult = { error: Object.values(context.errors)[0] };\n } else {\n singleFetchResult = {\n data: Object.values(context.actionData || {})[0]\n };\n }\n return generateSingleFetchResponse(request, build, serverMode, {\n result: singleFetchResult,\n headers,\n status: context.statusCode\n });\n }\n}\nasync function singleFetchLoaders(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n let routesParam = new URL(request.url).searchParams.get(\"_routes\");\n let loadRouteIds = routesParam ? new Set(routesParam.split(\",\")) : null;\n try {\n let handlerRequest = new Request(handlerUrl, {\n headers: request.headers,\n signal: request.signal\n });\n let result = await staticHandler.query(handlerRequest, {\n requestContext: loadContext,\n filterMatchesToLoad: (m) => !loadRouteIds || loadRouteIds.has(m.route.id),\n skipLoaderErrorBubbling: true,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(handlerRequest);\n return handleQueryResult(innerResult);\n } catch (error) {\n return handleQueryError(error);\n }\n } : void 0\n });\n return handleQueryResult(result);\n } catch (error) {\n return handleQueryError(error);\n }\n function handleQueryResult(result) {\n return isResponse(result) ? result : staticContextToResponse(result);\n }\n function handleQueryError(error) {\n handleError(error);\n return generateSingleFetchResponse(request, build, serverMode, {\n result: { error },\n headers: new Headers(),\n status: 500\n });\n }\n function staticContextToResponse(context) {\n let headers = getDocumentHeaders(context, build);\n if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let results = {};\n let loadedMatches = new Set(\n context.matches.filter(\n (m) => loadRouteIds ? loadRouteIds.has(m.route.id) : m.route.loader != null\n ).map((m) => m.route.id)\n );\n if (context.errors) {\n for (let [id, error] of Object.entries(context.errors)) {\n results[id] = { error };\n }\n }\n for (let [id, data2] of Object.entries(context.loaderData)) {\n if (!(id in results) && loadedMatches.has(id)) {\n results[id] = { data: data2 };\n }\n }\n return generateSingleFetchResponse(request, build, serverMode, {\n result: results,\n headers,\n status: context.statusCode\n });\n }\n}\nfunction generateSingleFetchResponse(request, build, serverMode, {\n result,\n headers,\n status\n}) {\n let resultHeaders = new Headers(headers);\n resultHeaders.set(\"X-Remix-Response\", \"yes\");\n if (SERVER_NO_BODY_STATUS_CODES.has(status)) {\n return new Response(null, { status, headers: resultHeaders });\n }\n resultHeaders.set(\"Content-Type\", \"text/x-script\");\n resultHeaders.delete(\"Content-Length\");\n return new Response(\n encodeViaTurboStream(\n result,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n {\n status: status || 200,\n headers: resultHeaders\n }\n );\n}\nfunction generateSingleFetchRedirectResponse(redirectResponse, request, build, serverMode) {\n let redirect2 = getSingleFetchRedirect(\n redirectResponse.status,\n redirectResponse.headers,\n build.basename\n );\n let headers = new Headers(redirectResponse.headers);\n headers.delete(\"Location\");\n headers.set(\"Content-Type\", \"text/x-script\");\n return generateSingleFetchResponse(request, build, serverMode, {\n result: request.method === \"GET\" ? { [SingleFetchRedirectSymbol]: redirect2 } : redirect2,\n headers,\n status: SINGLE_FETCH_REDIRECT_STATUS\n });\n}\nfunction getSingleFetchRedirect(status, headers, basename) {\n let redirect2 = headers.get(\"Location\");\n if (basename) {\n redirect2 = stripBasename(redirect2, basename) || redirect2;\n }\n return {\n redirect: redirect2,\n status,\n revalidate: (\n // Technically X-Remix-Revalidate isn't needed here - that was an implementation\n // detail of ?_data requests as our way to tell the front end to revalidate when\n // we didn't have a response body to include that information in.\n // With single fetch, we tell the front end via this revalidate boolean field.\n // However, we're respecting it for now because it may be something folks have\n // used in their own responses\n // TODO(v3): Consider removing or making this official public API\n headers.has(\"X-Remix-Revalidate\") || headers.has(\"Set-Cookie\")\n ),\n reload: headers.has(\"X-Remix-Reload-Document\"),\n replace: headers.has(\"X-Remix-Replace\")\n };\n}\nfunction encodeViaTurboStream(data2, requestSignal, streamTimeout, serverMode) {\n let controller = new AbortController();\n let timeoutId = setTimeout(\n () => controller.abort(new Error(\"Server Timeout\")),\n typeof streamTimeout === \"number\" ? streamTimeout : 4950\n );\n requestSignal.addEventListener(\"abort\", () => clearTimeout(timeoutId));\n return encode(data2, {\n signal: controller.signal,\n plugins: [\n (value) => {\n if (value instanceof Error) {\n let { name, message, stack } = serverMode === \"production\" /* Production */ ? sanitizeError(value, serverMode) : value;\n return [\"SanitizedError\", name, message, stack];\n }\n if (value instanceof ErrorResponseImpl) {\n let { data: data3, status, statusText } = value;\n return [\"ErrorResponse\", data3, status, statusText];\n }\n if (value && typeof value === \"object\" && SingleFetchRedirectSymbol in value) {\n return [\"SingleFetchRedirect\", value[SingleFetchRedirectSymbol]];\n }\n }\n ],\n postPlugins: [\n (value) => {\n if (!value) return;\n if (typeof value !== \"object\") return;\n return [\n \"SingleFetchClassInstance\",\n Object.fromEntries(Object.entries(value))\n ];\n },\n () => [\"SingleFetchFallback\"]\n ]\n });\n}\n\n// lib/server-runtime/server.ts\nfunction derive(build, mode) {\n let routes = createRoutes(build.routes);\n let dataRoutes = createStaticHandlerDataRoutes(build.routes, build.future);\n let serverMode = isServerMode(mode) ? mode : \"production\" /* Production */;\n let staticHandler = createStaticHandler(dataRoutes, {\n basename: build.basename\n });\n let errorHandler = build.entry.module.handleError || ((error, { request }) => {\n if (serverMode !== \"test\" /* Test */ && !request.signal.aborted) {\n console.error(\n // @ts-expect-error This is \"private\" from users but intended for internal use\n isRouteErrorResponse(error) && error.error ? error.error : error\n );\n }\n });\n return {\n routes,\n dataRoutes,\n serverMode,\n staticHandler,\n errorHandler\n };\n}\nvar createRequestHandler = (build, mode) => {\n let _build;\n let routes;\n let serverMode;\n let staticHandler;\n let errorHandler;\n return async function requestHandler(request, initialContext) {\n _build = typeof build === \"function\" ? await build() : build;\n if (typeof build === \"function\") {\n let derived = derive(_build, mode);\n routes = derived.routes;\n serverMode = derived.serverMode;\n staticHandler = derived.staticHandler;\n errorHandler = derived.errorHandler;\n } else if (!routes || !serverMode || !staticHandler || !errorHandler) {\n let derived = derive(_build, mode);\n routes = derived.routes;\n serverMode = derived.serverMode;\n staticHandler = derived.staticHandler;\n errorHandler = derived.errorHandler;\n }\n let params = {};\n let loadContext;\n let handleError = (error) => {\n if (mode === \"development\" /* Development */) {\n getDevServerHooks()?.processRequestError?.(error);\n }\n errorHandler(error, {\n context: loadContext,\n params,\n request\n });\n };\n if (_build.future.unstable_middleware) {\n if (initialContext && !(initialContext instanceof unstable_RouterContextProvider)) {\n let error = new Error(\n \"Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `unstable_RouterContextProvider` from your `getLoadContext` function.\"\n );\n handleError(error);\n return returnLastResortErrorResponse(error, serverMode);\n }\n loadContext = initialContext || new unstable_RouterContextProvider();\n } else {\n loadContext = initialContext || {};\n }\n let url = new URL(request.url);\n let normalizedBasename = _build.basename || \"/\";\n let normalizedPath = url.pathname;\n if (stripBasename(normalizedPath, normalizedBasename) === \"/_root.data\") {\n normalizedPath = normalizedBasename;\n } else if (normalizedPath.endsWith(\".data\")) {\n normalizedPath = normalizedPath.replace(/\\.data$/, \"\");\n }\n if (stripBasename(normalizedPath, normalizedBasename) !== \"/\" && normalizedPath.endsWith(\"/\")) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n let isSpaMode = getBuildTimeHeader(request, \"X-React-Router-SPA-Mode\") === \"yes\";\n if (!_build.ssr) {\n let decodedPath = decodeURI(normalizedPath);\n if (normalizedBasename !== \"/\") {\n let strippedPath = stripBasename(decodedPath, normalizedBasename);\n if (strippedPath == null) {\n errorHandler(\n new ErrorResponseImpl(\n 404,\n \"Not Found\",\n `Refusing to prerender the \\`${decodedPath}\\` path because it does not start with the basename \\`${normalizedBasename}\\``\n ),\n {\n context: loadContext,\n params,\n request\n }\n );\n return new Response(\"Not Found\", {\n status: 404,\n statusText: \"Not Found\"\n });\n }\n decodedPath = strippedPath;\n }\n if (_build.prerender.length === 0) {\n isSpaMode = true;\n } else if (!_build.prerender.includes(decodedPath) && !_build.prerender.includes(decodedPath + \"/\")) {\n if (url.pathname.endsWith(\".data\")) {\n errorHandler(\n new ErrorResponseImpl(\n 404,\n \"Not Found\",\n `Refusing to SSR the path \\`${decodedPath}\\` because \\`ssr:false\\` is set and the path is not included in the \\`prerender\\` config, so in production the path will be a 404.`\n ),\n {\n context: loadContext,\n params,\n request\n }\n );\n return new Response(\"Not Found\", {\n status: 404,\n statusText: \"Not Found\"\n });\n } else {\n isSpaMode = true;\n }\n }\n }\n let manifestUrl = getManifestPath(\n _build.routeDiscovery.manifestPath,\n normalizedBasename\n );\n if (url.pathname === manifestUrl) {\n try {\n let res = await handleManifestRequest(_build, routes, url);\n return res;\n } catch (e) {\n handleError(e);\n return new Response(\"Unknown Server Error\", { status: 500 });\n }\n }\n let matches = matchServerRoutes(routes, normalizedPath, _build.basename);\n if (matches && matches.length > 0) {\n Object.assign(params, matches[0].params);\n }\n let response;\n if (url.pathname.endsWith(\".data\")) {\n let handlerUrl = new URL(request.url);\n handlerUrl.pathname = normalizedPath;\n let singleFetchMatches = matchServerRoutes(\n routes,\n handlerUrl.pathname,\n _build.basename\n );\n response = await handleSingleFetchRequest(\n serverMode,\n _build,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n );\n if (isRedirectResponse(response)) {\n response = generateSingleFetchRedirectResponse(\n response,\n request,\n _build,\n serverMode\n );\n }\n if (_build.entry.module.handleDataRequest) {\n response = await _build.entry.module.handleDataRequest(response, {\n context: loadContext,\n params: singleFetchMatches ? singleFetchMatches[0].params : {},\n request\n });\n if (isRedirectResponse(response)) {\n response = generateSingleFetchRedirectResponse(\n response,\n request,\n _build,\n serverMode\n );\n }\n }\n } else if (!isSpaMode && matches && matches[matches.length - 1].route.module.default == null && matches[matches.length - 1].route.module.ErrorBoundary == null) {\n response = await handleResourceRequest(\n serverMode,\n _build,\n staticHandler,\n matches.slice(-1)[0].route.id,\n request,\n loadContext,\n handleError\n );\n } else {\n let { pathname } = url;\n let criticalCss = void 0;\n if (_build.unstable_getCriticalCss) {\n criticalCss = await _build.unstable_getCriticalCss({ pathname });\n } else if (mode === \"development\" /* Development */ && getDevServerHooks()?.getCriticalCss) {\n criticalCss = await getDevServerHooks()?.getCriticalCss?.(pathname);\n }\n response = await handleDocumentRequest(\n serverMode,\n _build,\n staticHandler,\n request,\n loadContext,\n handleError,\n isSpaMode,\n criticalCss\n );\n }\n if (request.method === \"HEAD\") {\n return new Response(null, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n });\n }\n return response;\n };\n};\nasync function handleManifestRequest(build, routes, url) {\n if (build.assets.version !== url.searchParams.get(\"version\")) {\n return new Response(null, {\n status: 204,\n headers: {\n \"X-Remix-Reload-Document\": \"true\"\n }\n });\n }\n let patches = {};\n if (url.searchParams.has(\"p\")) {\n let paths = /* @__PURE__ */ new Set();\n url.searchParams.getAll(\"p\").forEach((path) => {\n if (!path.startsWith(\"/\")) {\n path = `/${path}`;\n }\n let segments = path.split(\"/\").slice(1);\n segments.forEach((_, i) => {\n let partialPath = segments.slice(0, i + 1).join(\"/\");\n paths.add(`/${partialPath}`);\n });\n });\n for (let path of paths) {\n let matches = matchServerRoutes(routes, path, build.basename);\n if (matches) {\n for (let match of matches) {\n let routeId = match.route.id;\n let route = build.assets.routes[routeId];\n if (route) {\n patches[routeId] = route;\n }\n }\n }\n }\n return Response.json(patches, {\n headers: {\n \"Cache-Control\": \"public, max-age=31536000, immutable\"\n }\n });\n }\n return new Response(\"Invalid Request\", { status: 400 });\n}\nasync function handleSingleFetchRequest(serverMode, build, staticHandler, request, handlerUrl, loadContext, handleError) {\n let response = request.method !== \"GET\" ? await singleFetchAction(\n build,\n serverMode,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n ) : await singleFetchLoaders(\n build,\n serverMode,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n );\n return response;\n}\nasync function handleDocumentRequest(serverMode, build, staticHandler, request, loadContext, handleError, isSpaMode, criticalCss) {\n try {\n let result = await staticHandler.query(request, {\n requestContext: loadContext,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(request);\n if (!isResponse(innerResult)) {\n innerResult = await renderHtml(innerResult, isSpaMode);\n }\n return innerResult;\n } catch (error) {\n handleError(error);\n return new Response(null, { status: 500 });\n }\n } : void 0\n });\n if (!isResponse(result)) {\n result = await renderHtml(result, isSpaMode);\n }\n return result;\n } catch (error) {\n handleError(error);\n return new Response(null, { status: 500 });\n }\n async function renderHtml(context, isSpaMode2) {\n let headers = getDocumentHeaders(context, build);\n if (SERVER_NO_BODY_STATUS_CODES.has(context.statusCode)) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let state = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors, serverMode)\n };\n let baseServerHandoff = {\n basename: build.basename,\n future: build.future,\n routeDiscovery: build.routeDiscovery,\n ssr: build.ssr,\n isSpaMode: isSpaMode2\n };\n let entryContext = {\n manifest: build.assets,\n routeModules: createEntryRouteModules(build.routes),\n staticHandlerContext: context,\n criticalCss,\n serverHandoffString: createServerHandoffString({\n ...baseServerHandoff,\n criticalCss\n }),\n serverHandoffStream: encodeViaTurboStream(\n state,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n renderMeta: {},\n future: build.future,\n ssr: build.ssr,\n routeDiscovery: build.routeDiscovery,\n isSpaMode: isSpaMode2,\n serializeError: (err) => serializeError(err, serverMode)\n };\n let handleDocumentRequestFunction = build.entry.module.default;\n try {\n return await handleDocumentRequestFunction(\n request,\n context.statusCode,\n headers,\n entryContext,\n loadContext\n );\n } catch (error) {\n handleError(error);\n let errorForSecondRender = error;\n if (isResponse(error)) {\n try {\n let data2 = await unwrapResponse(error);\n errorForSecondRender = new ErrorResponseImpl(\n error.status,\n error.statusText,\n data2\n );\n } catch (e) {\n }\n }\n context = getStaticContextFromError(\n staticHandler.dataRoutes,\n context,\n errorForSecondRender\n );\n if (context.errors) {\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let state2 = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors, serverMode)\n };\n entryContext = {\n ...entryContext,\n staticHandlerContext: context,\n serverHandoffString: createServerHandoffString(baseServerHandoff),\n serverHandoffStream: encodeViaTurboStream(\n state2,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n renderMeta: {}\n };\n try {\n return await handleDocumentRequestFunction(\n request,\n context.statusCode,\n headers,\n entryContext,\n loadContext\n );\n } catch (error2) {\n handleError(error2);\n return returnLastResortErrorResponse(error2, serverMode);\n }\n }\n }\n}\nasync function handleResourceRequest(serverMode, build, staticHandler, routeId, request, loadContext, handleError) {\n try {\n let result = await staticHandler.queryRoute(request, {\n routeId,\n requestContext: loadContext,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (queryRoute) => {\n try {\n let innerResult = await queryRoute(request);\n return handleQueryRouteResult(innerResult);\n } catch (error) {\n return handleQueryRouteError(error);\n }\n } : void 0\n });\n return handleQueryRouteResult(result);\n } catch (error) {\n return handleQueryRouteError(error);\n }\n function handleQueryRouteResult(result) {\n if (isResponse(result)) {\n return result;\n }\n if (typeof result === \"string\") {\n return new Response(result);\n }\n return Response.json(result);\n }\n function handleQueryRouteError(error) {\n if (isResponse(error)) {\n error.headers.set(\"X-Remix-Catch\", \"yes\");\n return error;\n }\n if (isRouteErrorResponse(error)) {\n handleError(error);\n return errorResponseToJson(error, serverMode);\n }\n if (error instanceof Error && error.message === \"Expected a response from queryRoute\") {\n let newError = new Error(\n \"Expected a Response to be returned from resource route handler\"\n );\n handleError(newError);\n return returnLastResortErrorResponse(newError, serverMode);\n }\n handleError(error);\n return returnLastResortErrorResponse(error, serverMode);\n }\n}\nfunction errorResponseToJson(errorResponse, serverMode) {\n return Response.json(\n serializeError(\n // @ts-expect-error This is \"private\" from users but intended for internal use\n errorResponse.error || new Error(\"Unexpected Server Error\"),\n serverMode\n ),\n {\n status: errorResponse.status,\n statusText: errorResponse.statusText,\n headers: {\n \"X-Remix-Error\": \"yes\"\n }\n }\n );\n}\nfunction returnLastResortErrorResponse(error, serverMode) {\n let message = \"Unexpected Server Error\";\n if (serverMode !== \"production\" /* Production */) {\n message += `\n\n${String(error)}`;\n }\n return new Response(message, {\n status: 500,\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n}\nfunction unwrapResponse(response) {\n let contentType = response.headers.get(\"Content-Type\");\n return contentType && /\\bapplication\\/json\\b/.test(contentType) ? response.body == null ? null : response.json() : response.text();\n}\n\n// lib/server-runtime/sessions.ts\nfunction flash(name) {\n return `__flash_${name}__`;\n}\nvar createSession = (initialData = {}, id = \"\") => {\n let map = new Map(Object.entries(initialData));\n return {\n get id() {\n return id;\n },\n get data() {\n return Object.fromEntries(map);\n },\n has(name) {\n return map.has(name) || map.has(flash(name));\n },\n get(name) {\n if (map.has(name)) return map.get(name);\n let flashName = flash(name);\n if (map.has(flashName)) {\n let value = map.get(flashName);\n map.delete(flashName);\n return value;\n }\n return void 0;\n },\n set(name, value) {\n map.set(name, value);\n },\n flash(name, value) {\n map.set(flash(name), value);\n },\n unset(name) {\n map.delete(name);\n }\n };\n};\nvar isSession = (object) => {\n return object != null && typeof object.id === \"string\" && typeof object.data !== \"undefined\" && typeof object.has === \"function\" && typeof object.get === \"function\" && typeof object.set === \"function\" && typeof object.flash === \"function\" && typeof object.unset === \"function\";\n};\nfunction createSessionStorage({\n cookie: cookieArg,\n createData,\n readData,\n updateData,\n deleteData\n}) {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n let id = cookieHeader && await cookie.parse(cookieHeader, options);\n let data2 = id && await readData(id);\n return createSession(data2 || {}, id || \"\");\n },\n async commitSession(session, options) {\n let { id, data: data2 } = session;\n let expires = options?.maxAge != null ? new Date(Date.now() + options.maxAge * 1e3) : options?.expires != null ? options.expires : cookie.expires;\n if (id) {\n await updateData(id, data2, expires);\n } else {\n id = await createData(data2, expires);\n }\n return cookie.serialize(id, options);\n },\n async destroySession(session, options) {\n await deleteData(session.id);\n return cookie.serialize(\"\", {\n ...options,\n maxAge: void 0,\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n };\n}\nfunction warnOnceAboutSigningSessionCookie(cookie) {\n warnOnce(\n cookie.isSigned,\n `The \"${cookie.name}\" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`\n );\n}\n\n// lib/server-runtime/sessions/cookieStorage.ts\nfunction createCookieSessionStorage({ cookie: cookieArg } = {}) {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n return createSession(\n cookieHeader && await cookie.parse(cookieHeader, options) || {}\n );\n },\n async commitSession(session, options) {\n let serializedCookie = await cookie.serialize(session.data, options);\n if (serializedCookie.length > 4096) {\n throw new Error(\n \"Cookie length will exceed browser maximum. Length: \" + serializedCookie.length\n );\n }\n return serializedCookie;\n },\n async destroySession(_session, options) {\n return cookie.serialize(\"\", {\n ...options,\n maxAge: void 0,\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n };\n}\n\n// lib/server-runtime/sessions/memoryStorage.ts\nfunction createMemorySessionStorage({ cookie } = {}) {\n let map = /* @__PURE__ */ new Map();\n return createSessionStorage({\n cookie,\n async createData(data2, expires) {\n let id = Math.random().toString(36).substring(2, 10);\n map.set(id, { data: data2, expires });\n return id;\n },\n async readData(id) {\n if (map.has(id)) {\n let { data: data2, expires } = map.get(id);\n if (!expires || expires > /* @__PURE__ */ new Date()) {\n return data2;\n }\n if (expires) map.delete(id);\n }\n return null;\n },\n async updateData(id, data2, expires) {\n map.set(id, { data: data2, expires });\n },\n async deleteData(id) {\n map.delete(id);\n }\n });\n}\n\n// lib/href.ts\nfunction href(path, ...args) {\n let params = args[0];\n return path.split(\"/\").map((segment) => {\n if (segment === \"*\") {\n return params ? params[\"*\"] : void 0;\n }\n const match = segment.match(/^:([\\w-]+)(\\?)?/);\n if (!match) return segment;\n const param = match[1];\n const value = params ? params[param] : void 0;\n const isRequired = match[2] === void 0;\n if (isRequired && value === void 0) {\n throw Error(\n `Path '${path}' requires param '${param}' but it was not provided`\n );\n }\n return value;\n }).filter((segment) => segment !== void 0).join(\"/\");\n}\n\n// lib/rsc/browser.tsx\nimport * as React4 from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\n// lib/dom/ssr/hydration.tsx\nfunction getHydrationData(state, routes, getRouteInfo, location2, basename, isSpaMode) {\n let hydrationData = {\n ...state,\n loaderData: { ...state.loaderData }\n };\n let initialMatches = matchRoutes(routes, location2, basename);\n if (initialMatches) {\n for (let match of initialMatches) {\n let routeId = match.route.id;\n let routeInfo = getRouteInfo(routeId);\n if (shouldHydrateRouteLoader(\n routeId,\n routeInfo.clientLoader,\n routeInfo.hasLoader,\n isSpaMode\n ) && (routeInfo.hasHydrateFallback || !routeInfo.hasLoader)) {\n delete hydrationData.loaderData[routeId];\n } else if (!routeInfo.hasLoader) {\n hydrationData.loaderData[routeId] = null;\n }\n }\n }\n return hydrationData;\n}\n\n// lib/rsc/errorBoundaries.tsx\nimport React3 from \"react\";\nvar RSCRouterGlobalErrorBoundary = class extends React3.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, location: props.location };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\n if (state.location !== props.location) {\n return { error: null, location: props.location };\n }\n return { error: state.error, location: state.location };\n }\n render() {\n if (this.state.error) {\n return /* @__PURE__ */ React3.createElement(\n RSCDefaultRootErrorBoundaryImpl,\n {\n error: this.state.error,\n renderAppShell: true\n }\n );\n } else {\n return this.props.children;\n }\n }\n};\nfunction ErrorWrapper({\n renderAppShell,\n title,\n children\n}) {\n if (!renderAppShell) {\n return children;\n }\n return /* @__PURE__ */ React3.createElement(\"html\", { lang: \"en\" }, /* @__PURE__ */ React3.createElement(\"head\", null, /* @__PURE__ */ React3.createElement(\"meta\", { charSet: \"utf-8\" }), /* @__PURE__ */ React3.createElement(\n \"meta\",\n {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }\n ), /* @__PURE__ */ React3.createElement(\"title\", null, title)), /* @__PURE__ */ React3.createElement(\"body\", null, /* @__PURE__ */ React3.createElement(\"main\", { style: { fontFamily: \"system-ui, sans-serif\", padding: \"2rem\" } }, children)));\n}\nfunction RSCDefaultRootErrorBoundaryImpl({\n error,\n renderAppShell\n}) {\n console.error(error);\n let heyDeveloper = /* @__PURE__ */ React3.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information.\"\n );\n `\n }\n }\n );\n if (isRouteErrorResponse(error)) {\n return /* @__PURE__ */ React3.createElement(\n ErrorWrapper,\n {\n renderAppShell,\n title: \"Unhandled Thrown Response!\"\n },\n /* @__PURE__ */ React3.createElement(\"h1\", { style: { fontSize: \"24px\" } }, error.status, \" \", error.statusText),\n ENABLE_DEV_WARNINGS ? heyDeveloper : null\n );\n }\n let errorInstance;\n if (error instanceof Error) {\n errorInstance = error;\n } else {\n let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n errorInstance = new Error(errorString);\n }\n return /* @__PURE__ */ React3.createElement(ErrorWrapper, { renderAppShell, title: \"Application Error!\" }, /* @__PURE__ */ React3.createElement(\"h1\", { style: { fontSize: \"24px\" } }, \"Application Error\"), /* @__PURE__ */ React3.createElement(\n \"pre\",\n {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n },\n errorInstance.stack\n ), heyDeveloper);\n}\nfunction RSCDefaultRootErrorBoundary({\n hasRootLayout\n}) {\n let error = useRouteError();\n if (hasRootLayout === void 0) {\n throw new Error(\"Missing 'hasRootLayout' prop\");\n }\n return /* @__PURE__ */ React3.createElement(\n RSCDefaultRootErrorBoundaryImpl,\n {\n renderAppShell: !hasRootLayout,\n error\n }\n );\n}\n\n// lib/rsc/route-modules.ts\nfunction createRSCRouteModules(payload) {\n const routeModules = {};\n for (const match of payload.matches) {\n populateRSCRouteModules(routeModules, match);\n }\n return routeModules;\n}\nfunction populateRSCRouteModules(routeModules, matches) {\n matches = Array.isArray(matches) ? matches : [matches];\n for (const match of matches) {\n routeModules[match.id] = {\n links: match.links,\n meta: match.meta,\n default: noopComponent\n };\n }\n}\nvar noopComponent = () => null;\n\n// lib/rsc/browser.tsx\nfunction createCallServer({\n createFromReadableStream,\n createTemporaryReferenceSet,\n encodeReply,\n fetch: fetchImplementation = fetch\n}) {\n const globalVar = window;\n let landedActionId = 0;\n return async (id, args) => {\n let actionId = globalVar.__routerActionID = (globalVar.__routerActionID ?? (globalVar.__routerActionID = 0)) + 1;\n const temporaryReferences = createTemporaryReferenceSet();\n const response = await fetchImplementation(\n new Request(location.href, {\n body: await encodeReply(args, { temporaryReferences }),\n method: \"POST\",\n headers: {\n Accept: \"text/x-component\",\n \"rsc-action-id\": id\n }\n })\n );\n if (!response.body) {\n throw new Error(\"No response body\");\n }\n const payload = await createFromReadableStream(response.body, {\n temporaryReferences\n });\n if (payload.type === \"redirect\") {\n if (payload.reload) {\n window.location.href = payload.location;\n return;\n }\n globalVar.__reactRouterDataRouter.navigate(payload.location, {\n replace: payload.replace\n });\n return payload.actionResult;\n }\n if (payload.type !== \"action\") {\n throw new Error(\"Unexpected payload type\");\n }\n if (payload.rerender) {\n React4.startTransition(\n // @ts-expect-error - We have old react types that don't know this can be async\n async () => {\n const rerender = await payload.rerender;\n if (!rerender) return;\n if (landedActionId < actionId && globalVar.__routerActionID <= actionId) {\n landedActionId = actionId;\n if (rerender.type === \"redirect\") {\n if (rerender.reload) {\n window.location.href = rerender.location;\n return;\n }\n globalVar.__reactRouterDataRouter.navigate(rerender.location, {\n replace: rerender.replace\n });\n return;\n }\n let lastMatch;\n for (const match of rerender.matches) {\n globalVar.__reactRouterDataRouter.patchRoutes(\n lastMatch?.id ?? null,\n [createRouteFromServerManifest(match)],\n true\n );\n lastMatch = match;\n }\n window.__reactRouterDataRouter._internalSetStateDoNotUseOrYouWillBreakYourApp(\n {}\n );\n React4.startTransition(() => {\n window.__reactRouterDataRouter._internalSetStateDoNotUseOrYouWillBreakYourApp(\n {\n loaderData: Object.assign(\n {},\n globalVar.__reactRouterDataRouter.state.loaderData,\n rerender.loaderData\n ),\n errors: rerender.errors ? Object.assign(\n {},\n globalVar.__reactRouterDataRouter.state.errors,\n rerender.errors\n ) : null\n }\n );\n });\n }\n }\n );\n }\n return payload.actionResult;\n };\n}\nfunction createRouterFromPayload({\n fetchImplementation,\n createFromReadableStream,\n unstable_getContext,\n payload\n}) {\n const globalVar = window;\n if (globalVar.__reactRouterDataRouter && globalVar.__reactRouterRouteModules)\n return {\n router: globalVar.__reactRouterDataRouter,\n routeModules: globalVar.__reactRouterRouteModules\n };\n if (payload.type !== \"render\") throw new Error(\"Invalid payload type\");\n globalVar.__reactRouterRouteModules = globalVar.__reactRouterRouteModules ?? {};\n populateRSCRouteModules(globalVar.__reactRouterRouteModules, payload.matches);\n let patches = /* @__PURE__ */ new Map();\n payload.patches?.forEach((patch) => {\n invariant(patch.parentId, \"Invalid patch parentId\");\n if (!patches.has(patch.parentId)) {\n patches.set(patch.parentId, []);\n }\n patches.get(patch.parentId)?.push(patch);\n });\n let routes = payload.matches.reduceRight((previous, match) => {\n const route = createRouteFromServerManifest(\n match,\n payload\n );\n if (previous.length > 0) {\n route.children = previous;\n let childrenToPatch = patches.get(match.id);\n if (childrenToPatch) {\n route.children.push(\n ...childrenToPatch.map((r) => createRouteFromServerManifest(r))\n );\n }\n }\n return [route];\n }, []);\n globalVar.__reactRouterDataRouter = createRouter({\n routes,\n unstable_getContext,\n basename: payload.basename,\n history: createBrowserHistory(),\n hydrationData: getHydrationData(\n {\n loaderData: payload.loaderData,\n actionData: payload.actionData,\n errors: payload.errors\n },\n routes,\n (routeId) => {\n let match = payload.matches.find((m) => m.id === routeId);\n invariant(match, \"Route not found in payload\");\n return {\n clientLoader: match.clientLoader,\n hasLoader: match.hasLoader,\n hasHydrateFallback: match.hydrateFallbackElement != null\n };\n },\n payload.location,\n void 0,\n false\n ),\n async patchRoutesOnNavigation({ path, signal }) {\n if (discoveredPaths.has(path)) {\n return;\n }\n await fetchAndApplyManifestPatches(\n [path],\n createFromReadableStream,\n fetchImplementation,\n signal\n );\n },\n // FIXME: Pass `build.ssr` into this function\n dataStrategy: getRSCSingleFetchDataStrategy(\n () => globalVar.__reactRouterDataRouter,\n true,\n payload.basename,\n createFromReadableStream,\n fetchImplementation\n )\n });\n if (globalVar.__reactRouterDataRouter.state.initialized) {\n globalVar.__routerInitialized = true;\n globalVar.__reactRouterDataRouter.initialize();\n } else {\n globalVar.__routerInitialized = false;\n }\n let lastLoaderData = void 0;\n globalVar.__reactRouterDataRouter.subscribe(({ loaderData, actionData }) => {\n if (lastLoaderData !== loaderData) {\n globalVar.__routerActionID = (globalVar.__routerActionID ?? (globalVar.__routerActionID = 0)) + 1;\n }\n });\n globalVar.__reactRouterDataRouter._updateRoutesForHMR = (routeUpdateByRouteId) => {\n const oldRoutes = window.__reactRouterDataRouter.routes;\n const newRoutes = [];\n function walkRoutes(routes2, parentId) {\n return routes2.map((route) => {\n const routeUpdate = routeUpdateByRouteId.get(route.id);\n if (routeUpdate) {\n const {\n routeModule,\n hasAction,\n hasComponent,\n hasErrorBoundary,\n hasLoader\n } = routeUpdate;\n const newRoute = createRouteFromServerManifest({\n clientAction: routeModule.clientAction,\n clientLoader: routeModule.clientLoader,\n element: route.element,\n errorElement: route.errorElement,\n handle: route.handle,\n hasAction,\n hasComponent,\n hasErrorBoundary,\n hasLoader,\n hydrateFallbackElement: route.hydrateFallbackElement,\n id: route.id,\n index: route.index,\n links: routeModule.links,\n meta: routeModule.meta,\n parentId,\n path: route.path,\n shouldRevalidate: routeModule.shouldRevalidate\n });\n if (route.children) {\n newRoute.children = walkRoutes(route.children, route.id);\n }\n return newRoute;\n }\n const updatedRoute = { ...route };\n if (route.children) {\n updatedRoute.children = walkRoutes(route.children, route.id);\n }\n return updatedRoute;\n });\n }\n newRoutes.push(\n ...walkRoutes(oldRoutes, void 0)\n );\n window.__reactRouterDataRouter._internalSetRoutes(newRoutes);\n };\n return {\n router: globalVar.__reactRouterDataRouter,\n routeModules: globalVar.__reactRouterRouteModules\n };\n}\nvar renderedRoutesContext = unstable_createContext();\nfunction getRSCSingleFetchDataStrategy(getRouter, ssr, basename, createFromReadableStream, fetchImplementation) {\n let dataStrategy = getSingleFetchDataStrategyImpl(\n getRouter,\n (match) => {\n let M = match;\n return {\n hasLoader: M.route.hasLoader,\n hasClientLoader: M.route.hasClientLoader,\n hasComponent: M.route.hasComponent,\n hasAction: M.route.hasAction,\n hasClientAction: M.route.hasClientAction,\n hasShouldRevalidate: M.route.hasShouldRevalidate\n };\n },\n // pass map into fetchAndDecode so it can add payloads\n getFetchAndDecodeViaRSC(createFromReadableStream, fetchImplementation),\n ssr,\n basename,\n // If the route has a component but we don't have an element, we need to hit\n // the server loader flow regardless of whether the client loader calls\n // `serverLoader` or not, otherwise we'll have nothing to render.\n (match) => {\n let M = match;\n return M.route.hasComponent && !M.route.element;\n }\n );\n return async (args) => args.unstable_runClientMiddleware(async () => {\n let context = args.context;\n context.set(renderedRoutesContext, []);\n let results = await dataStrategy(args);\n const renderedRoutesById = /* @__PURE__ */ new Map();\n for (const route of context.get(renderedRoutesContext)) {\n if (!renderedRoutesById.has(route.id)) {\n renderedRoutesById.set(route.id, []);\n }\n renderedRoutesById.get(route.id).push(route);\n }\n for (const match of args.matches) {\n const renderedRoutes = renderedRoutesById.get(match.route.id);\n if (renderedRoutes) {\n for (const rendered of renderedRoutes) {\n window.__reactRouterDataRouter.patchRoutes(\n rendered.parentId ?? null,\n [createRouteFromServerManifest(rendered)],\n true\n );\n }\n }\n }\n return results;\n });\n}\nfunction getFetchAndDecodeViaRSC(createFromReadableStream, fetchImplementation) {\n return async (args, basename, targetRoutes) => {\n let { request, context } = args;\n let url = singleFetchUrl(request.url, basename, \"rsc\");\n if (request.method === \"GET\") {\n url = stripIndexParam(url);\n if (targetRoutes) {\n url.searchParams.set(\"_routes\", targetRoutes.join(\",\"));\n }\n }\n let res = await fetchImplementation(\n new Request(url, await createRequestInit(request))\n );\n if (res.status === 404 && !res.headers.has(\"X-Remix-Response\")) {\n throw new ErrorResponseImpl(404, \"Not Found\", true);\n }\n invariant(res.body, \"No response body to decode\");\n try {\n const payload = await createFromReadableStream(res.body, {\n temporaryReferences: void 0\n });\n if (payload.type === \"redirect\") {\n return {\n status: res.status,\n data: {\n redirect: {\n redirect: payload.location,\n reload: payload.reload,\n replace: payload.replace,\n revalidate: false,\n status: payload.status\n }\n }\n };\n }\n if (payload.type !== \"render\") {\n throw new Error(\"Unexpected payload type\");\n }\n context.get(renderedRoutesContext).push(...payload.matches);\n let results = { routes: {} };\n const dataKey = isMutationMethod(request.method) ? \"actionData\" : \"loaderData\";\n for (let [routeId, data2] of Object.entries(payload[dataKey] || {})) {\n results.routes[routeId] = { data: data2 };\n }\n if (payload.errors) {\n for (let [routeId, error] of Object.entries(payload.errors)) {\n results.routes[routeId] = { error };\n }\n }\n return { status: res.status, data: results };\n } catch (e) {\n throw new Error(\"Unable to decode RSC response\");\n }\n };\n}\nfunction RSCHydratedRouter({\n createFromReadableStream,\n fetch: fetchImplementation = fetch,\n payload,\n routeDiscovery = \"eager\",\n unstable_getContext\n}) {\n if (payload.type !== \"render\") throw new Error(\"Invalid payload type\");\n let { router, routeModules } = React4.useMemo(\n () => createRouterFromPayload({\n payload,\n fetchImplementation,\n unstable_getContext,\n createFromReadableStream\n }),\n [\n createFromReadableStream,\n payload,\n fetchImplementation,\n unstable_getContext\n ]\n );\n React4.useEffect(() => {\n setIsHydrated();\n }, []);\n React4.useLayoutEffect(() => {\n const globalVar = window;\n if (!globalVar.__routerInitialized) {\n globalVar.__routerInitialized = true;\n globalVar.__reactRouterDataRouter.initialize();\n }\n }, []);\n let [location2, setLocation] = React4.useState(router.state.location);\n React4.useLayoutEffect(\n () => router.subscribe((newState) => {\n if (newState.location !== location2) {\n setLocation(newState.location);\n }\n }),\n [router, location2]\n );\n React4.useEffect(() => {\n if (routeDiscovery === \"lazy\" || // @ts-expect-error - TS doesn't know about this yet\n window.navigator?.connection?.saveData === true) {\n return;\n }\n function registerElement(el) {\n let path = el.tagName === \"FORM\" ? el.getAttribute(\"action\") : el.getAttribute(\"href\");\n if (!path) {\n return;\n }\n let pathname = el.tagName === \"A\" ? el.pathname : new URL(path, window.location.origin).pathname;\n if (!discoveredPaths.has(pathname)) {\n nextPaths.add(pathname);\n }\n }\n async function fetchPatches() {\n document.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach(registerElement);\n let paths = Array.from(nextPaths.keys()).filter((path) => {\n if (discoveredPaths.has(path)) {\n nextPaths.delete(path);\n return false;\n }\n return true;\n });\n if (paths.length === 0) {\n return;\n }\n try {\n await fetchAndApplyManifestPatches(\n paths,\n createFromReadableStream,\n fetchImplementation\n );\n } catch (e) {\n console.error(\"Failed to fetch manifest patches\", e);\n }\n }\n let debouncedFetchPatches = debounce(fetchPatches, 100);\n fetchPatches();\n let observer = new MutationObserver(() => debouncedFetchPatches());\n observer.observe(document.documentElement, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"data-discover\", \"href\", \"action\"]\n });\n }, [routeDiscovery, createFromReadableStream, fetchImplementation]);\n const frameworkContext = {\n future: {\n // These flags have no runtime impact so can always be false. If we add\n // flags that drive runtime behavior they'll need to be proxied through.\n unstable_middleware: false,\n unstable_subResourceIntegrity: false\n },\n isSpaMode: false,\n ssr: true,\n criticalCss: \"\",\n manifest: {\n routes: {},\n version: \"1\",\n url: \"\",\n entry: {\n module: \"\",\n imports: []\n }\n },\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" },\n routeModules\n };\n return /* @__PURE__ */ React4.createElement(RSCRouterContext.Provider, { value: true }, /* @__PURE__ */ React4.createElement(RSCRouterGlobalErrorBoundary, { location: location2 }, /* @__PURE__ */ React4.createElement(FrameworkContext.Provider, { value: frameworkContext }, /* @__PURE__ */ React4.createElement(RouterProvider, { router, flushSync: ReactDOM.flushSync }))));\n}\nfunction createRouteFromServerManifest(match, payload) {\n let hasInitialData = payload && match.id in payload.loaderData;\n let initialData = payload?.loaderData[match.id];\n let hasInitialError = payload?.errors && match.id in payload.errors;\n let initialError = payload?.errors?.[match.id];\n let isHydrationRequest = match.clientLoader?.hydrate === true || !match.hasLoader || // If the route has a component but we don't have an element, we need to hit\n // the server loader flow regardless of whether the client loader calls\n // `serverLoader` or not, otherwise we'll have nothing to render.\n match.hasComponent && !match.element;\n invariant(window.__reactRouterRouteModules);\n populateRSCRouteModules(window.__reactRouterRouteModules, match);\n let dataRoute = {\n id: match.id,\n element: match.element,\n errorElement: match.errorElement,\n handle: match.handle,\n hasErrorBoundary: match.hasErrorBoundary,\n hydrateFallbackElement: match.hydrateFallbackElement,\n index: match.index,\n loader: match.clientLoader ? async (args, singleFetch) => {\n try {\n let result = await match.clientLoader({\n ...args,\n serverLoader: () => {\n preventInvalidServerHandlerCall(\n \"loader\",\n match.id,\n match.hasLoader\n );\n if (isHydrationRequest) {\n if (hasInitialData) {\n return initialData;\n }\n if (hasInitialError) {\n throw initialError;\n }\n }\n return callSingleFetch(singleFetch);\n }\n });\n return result;\n } finally {\n isHydrationRequest = false;\n }\n } : (\n // We always make the call in this RSC world since even if we don't\n // have a `loader` we may need to get the `element` implementation\n (_, singleFetch) => callSingleFetch(singleFetch)\n ),\n action: match.clientAction ? (args, singleFetch) => match.clientAction({\n ...args,\n serverAction: async () => {\n preventInvalidServerHandlerCall(\n \"action\",\n match.id,\n match.hasLoader\n );\n return await callSingleFetch(singleFetch);\n }\n }) : match.hasAction ? (_, singleFetch) => callSingleFetch(singleFetch) : () => {\n throw noActionDefinedError(\"action\", match.id);\n },\n path: match.path,\n shouldRevalidate: match.shouldRevalidate,\n // We always have a \"loader\" in this RSC world since even if we don't\n // have a `loader` we may need to get the `element` implementation\n hasLoader: true,\n hasClientLoader: match.clientLoader != null,\n hasAction: match.hasAction,\n hasClientAction: match.clientAction != null,\n hasShouldRevalidate: match.shouldRevalidate != null\n };\n if (typeof dataRoute.loader === \"function\") {\n dataRoute.loader.hydrate = shouldHydrateRouteLoader(\n match.id,\n match.clientLoader,\n match.hasLoader,\n false\n );\n }\n return dataRoute;\n}\nfunction callSingleFetch(singleFetch) {\n invariant(typeof singleFetch === \"function\", \"Invalid singleFetch parameter\");\n return singleFetch();\n}\nfunction preventInvalidServerHandlerCall(type, routeId, hasHandler) {\n if (!hasHandler) {\n let fn = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: \"${routeId}\")`;\n console.error(msg);\n throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg), true);\n }\n}\nvar nextPaths = /* @__PURE__ */ new Set();\nvar discoveredPathsMaxSize = 1e3;\nvar discoveredPaths = /* @__PURE__ */ new Set();\nvar URL_LIMIT = 7680;\nfunction getManifestUrl(paths) {\n if (paths.length === 0) {\n return null;\n }\n if (paths.length === 1) {\n return new URL(`${paths[0]}.manifest`, window.location.origin);\n }\n const globalVar = window;\n let basename = (globalVar.__reactRouterDataRouter.basename ?? \"\").replace(\n /^\\/|\\/$/g,\n \"\"\n );\n let url = new URL(`${basename}/.manifest`, window.location.origin);\n paths.sort().forEach((path) => url.searchParams.append(\"p\", path));\n return url;\n}\nasync function fetchAndApplyManifestPatches(paths, createFromReadableStream, fetchImplementation, signal) {\n let url = getManifestUrl(paths);\n if (url == null) {\n return;\n }\n if (url.toString().length > URL_LIMIT) {\n nextPaths.clear();\n return;\n }\n let response = await fetchImplementation(new Request(url, { signal }));\n if (!response.body || response.status < 200 || response.status >= 300) {\n throw new Error(\"Unable to fetch new route matches from the server\");\n }\n let payload = await createFromReadableStream(response.body, {\n temporaryReferences: void 0\n });\n if (payload.type !== \"manifest\") {\n throw new Error(\"Failed to patch routes\");\n }\n paths.forEach((p) => addToFifoQueue(p, discoveredPaths));\n payload.patches.forEach((p) => {\n window.__reactRouterDataRouter.patchRoutes(\n p.parentId ?? null,\n [createRouteFromServerManifest(p)]\n );\n });\n}\nfunction addToFifoQueue(path, queue) {\n if (queue.size >= discoveredPathsMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n}\nfunction debounce(callback, wait) {\n let timeoutId;\n return (...args) => {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(() => callback(...args), wait);\n };\n}\n\n// lib/rsc/server.ssr.tsx\nimport * as React5 from \"react\";\n\n// lib/rsc/html-stream/server.ts\nvar encoder2 = new TextEncoder();\nvar trailer = \"</body></html>\";\nfunction injectRSCPayload(rscStream) {\n let decoder = new TextDecoder();\n let resolveFlightDataPromise;\n let flightDataPromise = new Promise(\n (resolve) => resolveFlightDataPromise = resolve\n );\n let startedRSC = false;\n let buffered = [];\n let timeout = null;\n function flushBufferedChunks(controller) {\n for (let chunk of buffered) {\n let buf = decoder.decode(chunk, { stream: true });\n if (buf.endsWith(trailer)) {\n buf = buf.slice(0, -trailer.length);\n }\n controller.enqueue(encoder2.encode(buf));\n }\n buffered.length = 0;\n timeout = null;\n }\n return new TransformStream({\n transform(chunk, controller) {\n buffered.push(chunk);\n if (timeout) {\n return;\n }\n timeout = setTimeout(async () => {\n flushBufferedChunks(controller);\n if (!startedRSC) {\n startedRSC = true;\n writeRSCStream(rscStream, controller).catch((err) => controller.error(err)).then(resolveFlightDataPromise);\n }\n }, 0);\n },\n async flush(controller) {\n await flightDataPromise;\n if (timeout) {\n clearTimeout(timeout);\n flushBufferedChunks(controller);\n }\n controller.enqueue(encoder2.encode(\"</body></html>\"));\n }\n });\n}\nasync function writeRSCStream(rscStream, controller) {\n let decoder = new TextDecoder(\"utf-8\", { fatal: true });\n const reader = rscStream.getReader();\n try {\n let read;\n while ((read = await reader.read()) && !read.done) {\n const chunk = read.value;\n try {\n writeChunk(\n JSON.stringify(decoder.decode(chunk, { stream: true })),\n controller\n );\n } catch (err) {\n let base64 = JSON.stringify(btoa(String.fromCodePoint(...chunk)));\n writeChunk(\n `Uint8Array.from(atob(${base64}), m => m.codePointAt(0))`,\n controller\n );\n }\n }\n } finally {\n reader.releaseLock();\n }\n let remaining = decoder.decode();\n if (remaining.length) {\n writeChunk(JSON.stringify(remaining), controller);\n }\n}\nfunction writeChunk(chunk, controller) {\n controller.enqueue(\n encoder2.encode(\n `<script>${escapeScript(\n `(self.__FLIGHT_DATA||=[]).push(${chunk})`\n )}</script>`\n )\n );\n}\nfunction escapeScript(script) {\n return script.replace(/<!--/g, \"<\\\\!--\").replace(/<\\/(script)/gi, \"</\\\\$1\");\n}\n\n// lib/rsc/server.ssr.tsx\nvar REACT_USE = \"use\";\nvar useImpl = React5[REACT_USE];\nfunction useSafe(promise) {\n if (useImpl) {\n return useImpl(promise);\n }\n throw new Error(\"React Router v7 requires React 19+ for RSC features.\");\n}\nasync function routeRSCServerRequest({\n request,\n fetchServer,\n createFromReadableStream,\n renderHTML,\n hydrate = true\n}) {\n const url = new URL(request.url);\n const isDataRequest = isReactServerRequest(url);\n const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has(\"rsc-action-id\");\n const serverResponse = await fetchServer(request);\n if (respondWithRSCPayload || serverResponse.headers.get(\"React-Router-Resource\") === \"true\") {\n return serverResponse;\n }\n if (!serverResponse.body) {\n throw new Error(\"Missing body in server response\");\n }\n let serverResponseB = null;\n if (hydrate) {\n serverResponseB = serverResponse.clone();\n }\n const body = serverResponse.body;\n let payloadPromise;\n const getPayload = async () => {\n if (payloadPromise) return payloadPromise;\n payloadPromise = createFromReadableStream(body);\n return payloadPromise;\n };\n try {\n const payload = await getPayload();\n if (serverResponse.status === SINGLE_FETCH_REDIRECT_STATUS && payload.type === \"redirect\") {\n const headers2 = new Headers(serverResponse.headers);\n headers2.delete(\"Content-Encoding\");\n headers2.delete(\"Content-Length\");\n headers2.delete(\"Content-Type\");\n headers2.delete(\"x-remix-response\");\n headers2.set(\"Location\", payload.location);\n return new Response(serverResponseB?.body || \"\", {\n headers: headers2,\n status: payload.status,\n statusText: serverResponse.statusText\n });\n }\n const html = await renderHTML(getPayload);\n const headers = new Headers(serverResponse.headers);\n headers.set(\"Content-Type\", \"text/html\");\n if (!hydrate) {\n return new Response(html, {\n status: serverResponse.status,\n headers\n });\n }\n if (!serverResponseB?.body) {\n throw new Error(\"Failed to clone server response\");\n }\n const body2 = html.pipeThrough(injectRSCPayload(serverResponseB.body));\n return new Response(body2, {\n status: serverResponse.status,\n headers\n });\n } catch (reason) {\n if (reason instanceof Response) {\n return reason;\n }\n throw reason;\n }\n}\nfunction RSCStaticRouter({ getPayload }) {\n const payload = useSafe(getPayload());\n if (payload.type === \"redirect\") {\n throw new Response(null, {\n status: payload.status,\n headers: {\n Location: payload.location\n }\n });\n }\n if (payload.type !== \"render\") return null;\n let patchedLoaderData = { ...payload.loaderData };\n for (const match of payload.matches) {\n if (shouldHydrateRouteLoader(\n match.id,\n match.clientLoader,\n match.hasLoader,\n false\n ) && (match.hydrateFallbackElement || !match.hasLoader)) {\n delete patchedLoaderData[match.id];\n }\n }\n const context = {\n actionData: payload.actionData,\n actionHeaders: {},\n basename: payload.basename,\n errors: payload.errors,\n loaderData: patchedLoaderData,\n loaderHeaders: {},\n location: payload.location,\n statusCode: 200,\n matches: payload.matches.map((match) => ({\n params: match.params,\n pathname: match.pathname,\n pathnameBase: match.pathnameBase,\n route: {\n id: match.id,\n action: match.hasAction || !!match.clientAction,\n handle: match.handle,\n hasErrorBoundary: match.hasErrorBoundary,\n loader: match.hasLoader || !!match.clientLoader,\n index: match.index,\n path: match.path,\n shouldRevalidate: match.shouldRevalidate\n }\n }))\n };\n const router = createStaticRouter(\n payload.matches.reduceRight((previous, match) => {\n const route = {\n id: match.id,\n action: match.hasAction || !!match.clientAction,\n element: match.element,\n errorElement: match.errorElement,\n handle: match.handle,\n hasErrorBoundary: !!match.errorElement,\n hydrateFallbackElement: match.hydrateFallbackElement,\n index: match.index,\n loader: match.hasLoader || !!match.clientLoader,\n path: match.path,\n shouldRevalidate: match.shouldRevalidate\n };\n if (previous.length > 0) {\n route.children = previous;\n }\n return [route];\n }, []),\n context\n );\n const frameworkContext = {\n future: {\n // These flags have no runtime impact so can always be false. If we add\n // flags that drive runtime behavior they'll need to be proxied through.\n unstable_middleware: false,\n unstable_subResourceIntegrity: false\n },\n isSpaMode: false,\n ssr: true,\n criticalCss: \"\",\n manifest: {\n routes: {},\n version: \"1\",\n url: \"\",\n entry: {\n module: \"\",\n imports: []\n }\n },\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" },\n routeModules: createRSCRouteModules(payload)\n };\n return /* @__PURE__ */ React5.createElement(RSCRouterContext.Provider, { value: true }, /* @__PURE__ */ React5.createElement(RSCRouterGlobalErrorBoundary, { location: payload.location }, /* @__PURE__ */ React5.createElement(FrameworkContext.Provider, { value: frameworkContext }, /* @__PURE__ */ React5.createElement(\n StaticRouterProvider,\n {\n context,\n router,\n hydrate: false,\n nonce: payload.nonce\n }\n ))));\n}\nfunction isReactServerRequest(url) {\n return url.pathname.endsWith(\".rsc\");\n}\nfunction isManifestRequest(url) {\n return url.pathname.endsWith(\".manifest\");\n}\n\n// lib/rsc/html-stream/browser.ts\nfunction getRSCStream() {\n let encoder3 = new TextEncoder();\n let streamController = null;\n let rscStream = new ReadableStream({\n start(controller) {\n if (typeof window === \"undefined\") {\n return;\n }\n let handleChunk = (chunk) => {\n if (typeof chunk === \"string\") {\n controller.enqueue(encoder3.encode(chunk));\n } else {\n controller.enqueue(chunk);\n }\n };\n window.__FLIGHT_DATA || (window.__FLIGHT_DATA = []);\n window.__FLIGHT_DATA.forEach(handleChunk);\n window.__FLIGHT_DATA.push = (chunk) => {\n handleChunk(chunk);\n return 0;\n };\n streamController = controller;\n }\n });\n if (typeof document !== \"undefined\" && document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n streamController?.close();\n });\n } else {\n streamController?.close();\n }\n return rscStream;\n}\n\n// lib/dom/ssr/errors.ts\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n let error = new ErrorConstructor(val.message);\n error.stack = val.stack;\n serialized[key] = error;\n } catch (e) {\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n error.stack = val.stack;\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\nexport {\n ServerRouter,\n createRoutesStub,\n createCookie,\n isCookie,\n ServerMode,\n setDevServerHooks,\n createRequestHandler,\n createSession,\n isSession,\n createSessionStorage,\n createCookieSessionStorage,\n createMemorySessionStorage,\n href,\n getHydrationData,\n RSCDefaultRootErrorBoundary,\n createCallServer,\n RSCHydratedRouter,\n routeRSCServerRequest,\n RSCStaticRouter,\n getRSCStream,\n deserializeErrors\n};\n"],"names":["dist","parse","serialize","cookieNameRegExp","cookieValueRegExp","domainValueRegExp","pathValueRegExp","__toString","NullObject","C","str","options","obj","len","dec","decode","index","eqIdx","colonIdx","endIdx","keyStartIdx","startIndex","keyEndIdx","endIndex","key","valStartIdx","valEndIdx","value","max","code","min","name","val","enc","isDate","defaultParseOptions","isNonEmptyString","parseString","setCookieValue","parts","nameValuePairStr","parsed","parseNameValuePair","e","cookie","part","sides","nameValueArr","input","sch","cookies","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","notSpecialChar","setCookieModule","ServerRouter","context","url","nonce","manifest","routeModules","criticalCss","serverHandoffString","routes","createServerRoutes","match","routeId","route","manifestRoute","shouldHydrateRouteLoader","router","createStaticRouter","React","FrameworkContext","RemixErrorBoundary","StaticRouterProvider","StreamTransfer","createRoutesStub","_context","initialEntries","initialIndex","hydrationData","future","routerRef","React2","frameworkContextRef","patched","processRoutes","convertRoutesToDataRoutes","r","unstable_RouterContextProvider","createMemoryRouter","RouterProvider","parentId","newRoute","withComponentProps","withHydrateFallbackProps","withErrorBoundaryProps","args","entryRoute","Outlet","encoder","sign","secret","data2","createKey","signature","hash","unsign","byteStringToUint8Array","usages","byteString","array","i","createCookie","cookieOptions","secrets","warnOnceAboutExpiresCookie","cookieHeader","parseOptions","decodeCookieValue","serializeOptions","encodeCookieValue","isCookie","object","encoded","encodeData","unsignedValue","decodeData","myUnescape","myEscape","result","chr","hex","length","expires","warnOnce","createEntryRouteModules","memo","ServerMode","ServerMode2","isServerMode","sanitizeError","error","serverMode","sanitized","sanitizeErrors","errors","acc","serializeError","serializeErrors","entries","serialized","isRouteErrorResponse","matchServerRoutes","pathname","basename","matches","matchRoutes","callRouteHandler","handler","stripRoutesParam","stripIndexParam2","isDataWithResponseInit","isRedirectStatusCode","request","indexValues","indexValuesToKeep","indexValue","toKeep","init","invariant2","message","globalDevServerHooksKey","setDevServerHooks","devServerHooks","getDevServerHooks","getBuildTimeHeader","headerName","groupRoutesByParentId","createRoutes","routesByParentId","createStaticHandlerDataRoutes","commonRoute","preRenderedData","uint8array","stream","controller","decodeViaTurboStream","SingleFetchRedirectSymbol","redirectDocument","replace","redirect","ESCAPE_LOOKUP","ESCAPE_REGEX","escapeHtml","html","createServerHandoffString","serverHandoff","getDocumentHeaders","build","getDocumentHeadersImpl","m","getRouteHeadersFn","_defaultHeaders","boundaryIdx","errorHeaders","actionHeaders","actionData","loaderHeaders","loaderData","id","defaultHeaders","parentHeaders","idx","includeErrorHeaders","includeErrorCookies","headersFn","headers2","prependCookies","headers","childHeaders","parentSetCookieString","childCookies","SERVER_NO_BODY_STATUS_CODES","NO_BODY_STATUS_CODES","singleFetchAction","staticHandler","handlerUrl","loadContext","handleError","handlerRequest","query","innerResult","handleQueryResult","handleQueryError","isResponse","staticContextToResponse","generateSingleFetchResponse","err","singleFetchResult","singleFetchLoaders","routesParam","loadRouteIds","results","loadedMatches","status","resultHeaders","encodeViaTurboStream","generateSingleFetchRedirectResponse","redirectResponse","redirect2","getSingleFetchRedirect","SINGLE_FETCH_REDIRECT_STATUS","stripBasename","requestSignal","streamTimeout","timeoutId","encode","stack","ErrorResponseImpl","data3","statusText","derive","mode","dataRoutes","createStaticHandler","errorHandler","createRequestHandler","_build","initialContext","derived","params","returnLastResortErrorResponse","normalizedBasename","normalizedPath","isSpaMode","decodedPath","strippedPath","manifestUrl","getManifestPath","handleManifestRequest","response","singleFetchMatches","handleSingleFetchRequest","isRedirectResponse","handleResourceRequest","handleDocumentRequest","patches","paths","path","segments","_","partialPath","renderHtml","isSpaMode2","state","baseServerHandoff","entryContext","handleDocumentRequestFunction","errorForSecondRender","unwrapResponse","getStaticContextFromError","state2","error2","queryRoute","handleQueryRouteResult","handleQueryRouteError","errorResponseToJson","newError","errorResponse","contentType","flash","createSession","initialData","map","flashName","isSession","createSessionStorage","cookieArg","createData","readData","updateData","deleteData","warnOnceAboutSigningSessionCookie","session","createCookieSessionStorage","serializedCookie","_session","createMemorySessionStorage","href","segment","param","getHydrationData","getRouteInfo","location2","initialMatches","routeInfo","RSCRouterGlobalErrorBoundary","React3","props","RSCDefaultRootErrorBoundaryImpl","ErrorWrapper","renderAppShell","title","children","heyDeveloper","errorInstance","errorString","RSCDefaultRootErrorBoundary","hasRootLayout","useRouteError","createRSCRouteModules","payload","populateRSCRouteModules","noopComponent","createCallServer","createFromReadableStream","createTemporaryReferenceSet","encodeReply","fetchImplementation","globalVar","landedActionId","actionId","temporaryReferences","React4","rerender","lastMatch","createRouteFromServerManifest","createRouterFromPayload","unstable_getContext","patch","invariant","previous","childrenToPatch","createRouter","createBrowserHistory","signal","discoveredPaths","fetchAndApplyManifestPatches","getRSCSingleFetchDataStrategy","lastLoaderData","routeUpdateByRouteId","oldRoutes","newRoutes","walkRoutes","routes2","routeUpdate","routeModule","hasAction","hasComponent","hasErrorBoundary","hasLoader","updatedRoute","renderedRoutesContext","unstable_createContext","getRouter","ssr","dataStrategy","getSingleFetchDataStrategyImpl","M","getFetchAndDecodeViaRSC","renderedRoutesById","renderedRoutes","rendered","targetRoutes","singleFetchUrl","stripIndexParam","res","createRequestInit","dataKey","isMutationMethod","RSCHydratedRouter","routeDiscovery","setIsHydrated","setLocation","newState","registerElement","el","nextPaths","fetchPatches","debouncedFetchPatches","debounce","frameworkContext","RSCRouterContext","ReactDOM","hasInitialData","hasInitialError","initialError","isHydrationRequest","dataRoute","singleFetch","preventInvalidServerHandlerCall","callSingleFetch","noActionDefinedError","type","hasHandler","msg","discoveredPathsMaxSize","URL_LIMIT","getManifestUrl","p","addToFifoQueue","queue","first","callback","wait","encoder2","trailer","injectRSCPayload","rscStream","decoder","resolveFlightDataPromise","flightDataPromise","resolve","startedRSC","buffered","timeout","flushBufferedChunks","chunk","buf","writeRSCStream","reader","read","writeChunk","base64","remaining","escapeScript","script","REACT_USE","useImpl","React5","useSafe","promise","routeRSCServerRequest","fetchServer","renderHTML","hydrate","respondWithRSCPayload","isReactServerRequest","isManifestRequest","serverResponse","serverResponseB","body","payloadPromise","getPayload","body2","reason","RSCStaticRouter","patchedLoaderData","getRSCStream","encoder3","streamController","handleChunk","deserializeErrors","ErrorConstructor"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"zudoku.router.js","sources":["../../../node_modules/.pnpm/cookie@1.0.2/node_modules/cookie/dist/index.js","../../../node_modules/.pnpm/set-cookie-parser@2.7.1/node_modules/set-cookie-parser/lib/set-cookie.js","../../../node_modules/.pnpm/react-router@7.8.2_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/react-router/dist/development/chunk-5UALIXAM.mjs"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parse = parse;\nexports.serialize = serialize;\n/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name = token\n * token = 1*tchar\n * tchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n * \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n * \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n * ; US-ASCII characters excluding CTLs,\n * ; whitespace DQUOTE, comma, semicolon,\n * ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value = <subdomain>\n * ; defined in [RFC1034], Section 3.5, as\n * ; enhanced by [RFC1123], Section 2.1\n * <subdomain> = <label> | <subdomain> \".\" <label>\n * <label> = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n * Labels must be 63 characters or less.\n * 'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str> = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp> = <let-dig> | \"-\"\n * <let-dig> = <letter> | <digit>\n * <letter> = any one of the 52 alphabetic characters A through Z in\n * upper case and a through z in lower case\n * <digit> = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value = <any CHAR except CTLs or \";\">\n * CHAR = %x01-7F\n * ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\nconst __toString = Object.prototype.toString;\nconst NullObject = /* @__PURE__ */ (() => {\n const C = function () { };\n C.prototype = Object.create(null);\n return C;\n})();\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nfunction parse(str, options) {\n const obj = new NullObject();\n const len = str.length;\n // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n if (len < 2)\n return obj;\n const dec = options?.decode || decode;\n let index = 0;\n do {\n const eqIdx = str.indexOf(\"=\", index);\n if (eqIdx === -1)\n break; // No more cookie pairs.\n const colonIdx = str.indexOf(\";\", index);\n const endIdx = colonIdx === -1 ? len : colonIdx;\n if (eqIdx > endIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n continue;\n }\n const keyStartIdx = startIndex(str, index, eqIdx);\n const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n const key = str.slice(keyStartIdx, keyEndIdx);\n // only assign once\n if (obj[key] === undefined) {\n let valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n let valEndIdx = endIndex(str, endIdx, valStartIdx);\n const value = dec(str.slice(valStartIdx, valEndIdx));\n obj[key] = value;\n }\n index = endIdx + 1;\n } while (index < len);\n return obj;\n}\nfunction startIndex(str, index, max) {\n do {\n const code = str.charCodeAt(index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index;\n } while (++index < max);\n return max;\n}\nfunction endIndex(str, index, min) {\n while (index > min) {\n const code = str.charCodeAt(--index);\n if (code !== 0x20 /* */ && code !== 0x09 /* \\t */)\n return index + 1;\n }\n return min;\n}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n */\nfunction serialize(name, val, options) {\n const enc = options?.encode || encodeURIComponent;\n if (!cookieNameRegExp.test(name)) {\n throw new TypeError(`argument name is invalid: ${name}`);\n }\n const value = enc(val);\n if (!cookieValueRegExp.test(value)) {\n throw new TypeError(`argument val is invalid: ${val}`);\n }\n let str = name + \"=\" + value;\n if (!options)\n return str;\n if (options.maxAge !== undefined) {\n if (!Number.isInteger(options.maxAge)) {\n throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);\n }\n str += \"; Max-Age=\" + options.maxAge;\n }\n if (options.domain) {\n if (!domainValueRegExp.test(options.domain)) {\n throw new TypeError(`option domain is invalid: ${options.domain}`);\n }\n str += \"; Domain=\" + options.domain;\n }\n if (options.path) {\n if (!pathValueRegExp.test(options.path)) {\n throw new TypeError(`option path is invalid: ${options.path}`);\n }\n str += \"; Path=\" + options.path;\n }\n if (options.expires) {\n if (!isDate(options.expires) ||\n !Number.isFinite(options.expires.valueOf())) {\n throw new TypeError(`option expires is invalid: ${options.expires}`);\n }\n str += \"; Expires=\" + options.expires.toUTCString();\n }\n if (options.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (options.secure) {\n str += \"; Secure\";\n }\n if (options.partitioned) {\n str += \"; Partitioned\";\n }\n if (options.priority) {\n const priority = typeof options.priority === \"string\"\n ? options.priority.toLowerCase()\n : undefined;\n switch (priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n default:\n throw new TypeError(`option priority is invalid: ${options.priority}`);\n }\n }\n if (options.sameSite) {\n const sameSite = typeof options.sameSite === \"string\"\n ? options.sameSite.toLowerCase()\n : options.sameSite;\n switch (sameSite) {\n case true:\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n default:\n throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);\n }\n }\n return str;\n}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str) {\n if (str.indexOf(\"%\") === -1)\n return str;\n try {\n return decodeURIComponent(str);\n }\n catch (e) {\n return str;\n }\n}\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val) {\n return __toString.call(val) === \"[object Date]\";\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else if (key === \"partitioned\") {\n cookie.partitioned = true;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers) {\n if (typeof input.headers.getSetCookie === \"function\") {\n // for fetch responses - they combine headers of the same type in the headers array,\n // but getSetCookie returns an uncombined array\n input = input.headers.getSetCookie();\n } else if (input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","/**\n * react-router v7.8.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport {\n ENABLE_DEV_WARNINGS,\n ErrorResponseImpl,\n FrameworkContext,\n NO_BODY_STATUS_CODES,\n Outlet,\n RSCRouterContext,\n RemixErrorBoundary,\n RouterProvider,\n SINGLE_FETCH_REDIRECT_STATUS,\n SingleFetchRedirectSymbol,\n StaticRouterProvider,\n StreamTransfer,\n convertRoutesToDataRoutes,\n createBrowserHistory,\n createMemoryRouter,\n createRequestInit,\n createRouter,\n createServerRoutes,\n createStaticHandler,\n createStaticRouter,\n decodeViaTurboStream,\n encode,\n getManifestPath,\n getSingleFetchDataStrategyImpl,\n getStaticContextFromError,\n invariant,\n isDataWithResponseInit,\n isMutationMethod,\n isRedirectResponse,\n isRedirectStatusCode,\n isResponse,\n isRouteErrorResponse,\n matchRoutes,\n noActionDefinedError,\n redirect,\n redirectDocument,\n replace,\n setIsHydrated,\n shouldHydrateRouteLoader,\n singleFetchUrl,\n stripBasename,\n stripIndexParam,\n unstable_RouterContextProvider,\n unstable_createContext,\n useRouteError,\n warnOnce,\n withComponentProps,\n withErrorBoundaryProps,\n withHydrateFallbackProps\n} from \"./chunk-PVWAREVJ.mjs\";\n\n// lib/dom/ssr/server.tsx\nimport * as React from \"react\";\nfunction ServerRouter({\n context,\n url,\n nonce\n}) {\n if (typeof url === \"string\") {\n url = new URL(url);\n }\n let { manifest, routeModules, criticalCss, serverHandoffString } = context;\n let routes = createServerRoutes(\n manifest.routes,\n routeModules,\n context.future,\n context.isSpaMode\n );\n context.staticHandlerContext.loaderData = {\n ...context.staticHandlerContext.loaderData\n };\n for (let match of context.staticHandlerContext.matches) {\n let routeId = match.route.id;\n let route = routeModules[routeId];\n let manifestRoute = context.manifest.routes[routeId];\n if (route && manifestRoute && shouldHydrateRouteLoader(\n routeId,\n route.clientLoader,\n manifestRoute.hasLoader,\n context.isSpaMode\n ) && (route.HydrateFallback || !manifestRoute.hasLoader)) {\n delete context.staticHandlerContext.loaderData[routeId];\n }\n }\n let router = createStaticRouter(routes, context.staticHandlerContext);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n FrameworkContext.Provider,\n {\n value: {\n manifest,\n routeModules,\n criticalCss,\n serverHandoffString,\n future: context.future,\n ssr: context.ssr,\n isSpaMode: context.isSpaMode,\n routeDiscovery: context.routeDiscovery,\n serializeError: context.serializeError,\n renderMeta: context.renderMeta\n }\n },\n /* @__PURE__ */ React.createElement(RemixErrorBoundary, { location: router.state.location }, /* @__PURE__ */ React.createElement(\n StaticRouterProvider,\n {\n router,\n context: context.staticHandlerContext,\n hydrate: false\n }\n ))\n ), context.serverHandoffStream ? /* @__PURE__ */ React.createElement(React.Suspense, null, /* @__PURE__ */ React.createElement(\n StreamTransfer,\n {\n context,\n identifier: 0,\n reader: context.serverHandoffStream.getReader(),\n textDecoder: new TextDecoder(),\n nonce\n }\n )) : null);\n}\n\n// lib/dom/ssr/routes-test-stub.tsx\nimport * as React2 from \"react\";\nfunction createRoutesStub(routes, _context) {\n return function RoutesTestStub({\n initialEntries,\n initialIndex,\n hydrationData,\n future\n }) {\n let routerRef = React2.useRef();\n let frameworkContextRef = React2.useRef();\n if (routerRef.current == null) {\n frameworkContextRef.current = {\n future: {\n unstable_subResourceIntegrity: future?.unstable_subResourceIntegrity === true,\n unstable_middleware: future?.unstable_middleware === true\n },\n manifest: {\n routes: {},\n entry: { imports: [], module: \"\" },\n url: \"\",\n version: \"\"\n },\n routeModules: {},\n ssr: false,\n isSpaMode: false,\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" }\n };\n let patched = processRoutes(\n // @ts-expect-error `StubRouteObject` is stricter about `loader`/`action`\n // types compared to `AgnosticRouteObject`\n convertRoutesToDataRoutes(routes, (r) => r),\n _context !== void 0 ? _context : future?.unstable_middleware ? new unstable_RouterContextProvider() : {},\n frameworkContextRef.current.manifest,\n frameworkContextRef.current.routeModules\n );\n routerRef.current = createMemoryRouter(patched, {\n initialEntries,\n initialIndex,\n hydrationData\n });\n }\n return /* @__PURE__ */ React2.createElement(FrameworkContext.Provider, { value: frameworkContextRef.current }, /* @__PURE__ */ React2.createElement(RouterProvider, { router: routerRef.current }));\n };\n}\nfunction processRoutes(routes, context, manifest, routeModules, parentId) {\n return routes.map((route) => {\n if (!route.id) {\n throw new Error(\n \"Expected a route.id in react-router processRoutes() function\"\n );\n }\n let newRoute = {\n id: route.id,\n path: route.path,\n index: route.index,\n Component: route.Component ? withComponentProps(route.Component) : void 0,\n HydrateFallback: route.HydrateFallback ? withHydrateFallbackProps(route.HydrateFallback) : void 0,\n ErrorBoundary: route.ErrorBoundary ? withErrorBoundaryProps(route.ErrorBoundary) : void 0,\n action: route.action ? (args) => route.action({ ...args, context }) : void 0,\n loader: route.loader ? (args) => route.loader({ ...args, context }) : void 0,\n handle: route.handle,\n shouldRevalidate: route.shouldRevalidate\n };\n let entryRoute = {\n id: route.id,\n path: route.path,\n index: route.index,\n parentId,\n hasAction: route.action != null,\n hasLoader: route.loader != null,\n // When testing routes, you should be stubbing loader/action/middleware,\n // not trying to re-implement the full loader/clientLoader/SSR/hydration\n // flow. That is better tested via E2E tests.\n hasClientAction: false,\n hasClientLoader: false,\n hasClientMiddleware: false,\n hasErrorBoundary: route.ErrorBoundary != null,\n // any need for these?\n module: \"build/stub-path-to-module.js\",\n clientActionModule: void 0,\n clientLoaderModule: void 0,\n clientMiddlewareModule: void 0,\n hydrateFallbackModule: void 0\n };\n manifest.routes[newRoute.id] = entryRoute;\n routeModules[route.id] = {\n default: newRoute.Component || Outlet,\n ErrorBoundary: newRoute.ErrorBoundary || void 0,\n handle: route.handle,\n links: route.links,\n meta: route.meta,\n shouldRevalidate: route.shouldRevalidate\n };\n if (route.children) {\n newRoute.children = processRoutes(\n route.children,\n context,\n manifest,\n routeModules,\n newRoute.id\n );\n }\n return newRoute;\n });\n}\n\n// lib/server-runtime/cookies.ts\nimport { parse, serialize } from \"cookie\";\n\n// lib/server-runtime/crypto.ts\nvar encoder = /* @__PURE__ */ new TextEncoder();\nvar sign = async (value, secret) => {\n let data2 = encoder.encode(value);\n let key = await createKey(secret, [\"sign\"]);\n let signature = await crypto.subtle.sign(\"HMAC\", key, data2);\n let hash = btoa(String.fromCharCode(...new Uint8Array(signature))).replace(\n /=+$/,\n \"\"\n );\n return value + \".\" + hash;\n};\nvar unsign = async (cookie, secret) => {\n let index = cookie.lastIndexOf(\".\");\n let value = cookie.slice(0, index);\n let hash = cookie.slice(index + 1);\n let data2 = encoder.encode(value);\n let key = await createKey(secret, [\"verify\"]);\n try {\n let signature = byteStringToUint8Array(atob(hash));\n let valid = await crypto.subtle.verify(\"HMAC\", key, signature, data2);\n return valid ? value : false;\n } catch (error) {\n return false;\n }\n};\nvar createKey = async (secret, usages) => crypto.subtle.importKey(\n \"raw\",\n encoder.encode(secret),\n { name: \"HMAC\", hash: \"SHA-256\" },\n false,\n usages\n);\nfunction byteStringToUint8Array(byteString) {\n let array = new Uint8Array(byteString.length);\n for (let i = 0; i < byteString.length; i++) {\n array[i] = byteString.charCodeAt(i);\n }\n return array;\n}\n\n// lib/server-runtime/cookies.ts\nvar createCookie = (name, cookieOptions = {}) => {\n let { secrets = [], ...options } = {\n path: \"/\",\n sameSite: \"lax\",\n ...cookieOptions\n };\n warnOnceAboutExpiresCookie(name, options.expires);\n return {\n get name() {\n return name;\n },\n get isSigned() {\n return secrets.length > 0;\n },\n get expires() {\n return typeof options.maxAge !== \"undefined\" ? new Date(Date.now() + options.maxAge * 1e3) : options.expires;\n },\n async parse(cookieHeader, parseOptions) {\n if (!cookieHeader) return null;\n let cookies = parse(cookieHeader, { ...options, ...parseOptions });\n if (name in cookies) {\n let value = cookies[name];\n if (typeof value === \"string\" && value !== \"\") {\n let decoded = await decodeCookieValue(value, secrets);\n return decoded;\n } else {\n return \"\";\n }\n } else {\n return null;\n }\n },\n async serialize(value, serializeOptions) {\n return serialize(\n name,\n value === \"\" ? \"\" : await encodeCookieValue(value, secrets),\n {\n ...options,\n ...serializeOptions\n }\n );\n }\n };\n};\nvar isCookie = (object) => {\n return object != null && typeof object.name === \"string\" && typeof object.isSigned === \"boolean\" && typeof object.parse === \"function\" && typeof object.serialize === \"function\";\n};\nasync function encodeCookieValue(value, secrets) {\n let encoded = encodeData(value);\n if (secrets.length > 0) {\n encoded = await sign(encoded, secrets[0]);\n }\n return encoded;\n}\nasync function decodeCookieValue(value, secrets) {\n if (secrets.length > 0) {\n for (let secret of secrets) {\n let unsignedValue = await unsign(value, secret);\n if (unsignedValue !== false) {\n return decodeData(unsignedValue);\n }\n }\n return null;\n }\n return decodeData(value);\n}\nfunction encodeData(value) {\n return btoa(myUnescape(encodeURIComponent(JSON.stringify(value))));\n}\nfunction decodeData(value) {\n try {\n return JSON.parse(decodeURIComponent(myEscape(atob(value))));\n } catch (error) {\n return {};\n }\n}\nfunction myEscape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, code;\n while (index < str.length) {\n chr = str.charAt(index++);\n if (/[\\w*+\\-./@]/.exec(chr)) {\n result += chr;\n } else {\n code = chr.charCodeAt(0);\n if (code < 256) {\n result += \"%\" + hex(code, 2);\n } else {\n result += \"%u\" + hex(code, 4).toUpperCase();\n }\n }\n }\n return result;\n}\nfunction hex(code, length) {\n let result = code.toString(16);\n while (result.length < length) result = \"0\" + result;\n return result;\n}\nfunction myUnescape(value) {\n let str = value.toString();\n let result = \"\";\n let index = 0;\n let chr, part;\n while (index < str.length) {\n chr = str.charAt(index++);\n if (chr === \"%\") {\n if (str.charAt(index) === \"u\") {\n part = str.slice(index + 1, index + 5);\n if (/^[\\da-f]{4}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 5;\n continue;\n }\n } else {\n part = str.slice(index, index + 2);\n if (/^[\\da-f]{2}$/i.exec(part)) {\n result += String.fromCharCode(parseInt(part, 16));\n index += 2;\n continue;\n }\n }\n }\n result += chr;\n }\n return result;\n}\nfunction warnOnceAboutExpiresCookie(name, expires) {\n warnOnce(\n !expires,\n `The \"${name}\" cookie has an \"expires\" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \\`commitSession(session, { expires })\\` if using a session storage object, or \\`cookie.serialize(\"value\", { expires })\\` if you're using the cookie directly.`\n );\n}\n\n// lib/server-runtime/entry.ts\nfunction createEntryRouteModules(manifest) {\n return Object.keys(manifest).reduce((memo, routeId) => {\n let route = manifest[routeId];\n if (route) {\n memo[routeId] = route.module;\n }\n return memo;\n }, {});\n}\n\n// lib/server-runtime/mode.ts\nvar ServerMode = /* @__PURE__ */ ((ServerMode2) => {\n ServerMode2[\"Development\"] = \"development\";\n ServerMode2[\"Production\"] = \"production\";\n ServerMode2[\"Test\"] = \"test\";\n return ServerMode2;\n})(ServerMode || {});\nfunction isServerMode(value) {\n return value === \"development\" /* Development */ || value === \"production\" /* Production */ || value === \"test\" /* Test */;\n}\n\n// lib/server-runtime/errors.ts\nfunction sanitizeError(error, serverMode) {\n if (error instanceof Error && serverMode !== \"development\" /* Development */) {\n let sanitized = new Error(\"Unexpected Server Error\");\n sanitized.stack = void 0;\n return sanitized;\n }\n return error;\n}\nfunction sanitizeErrors(errors, serverMode) {\n return Object.entries(errors).reduce((acc, [routeId, error]) => {\n return Object.assign(acc, { [routeId]: sanitizeError(error, serverMode) });\n }, {});\n}\nfunction serializeError(error, serverMode) {\n let sanitized = sanitizeError(error, serverMode);\n return {\n message: sanitized.message,\n stack: sanitized.stack\n };\n}\nfunction serializeErrors(errors, serverMode) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (isRouteErrorResponse(val)) {\n serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n } else if (val instanceof Error) {\n let sanitized = sanitizeError(val, serverMode);\n serialized[key] = {\n message: sanitized.message,\n stack: sanitized.stack,\n __type: \"Error\",\n // If this is a subclass (i.e., ReferenceError), send up the type so we\n // can re-create the same type during hydration. This will only apply\n // in dev mode since all production errors are sanitized to normal\n // Error instances\n ...sanitized.name !== \"Error\" ? {\n __subType: sanitized.name\n } : {}\n };\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n// lib/server-runtime/routeMatching.ts\nfunction matchServerRoutes(routes, pathname, basename) {\n let matches = matchRoutes(\n routes,\n pathname,\n basename\n );\n if (!matches) return null;\n return matches.map((match) => ({\n params: match.params,\n pathname: match.pathname,\n route: match.route\n }));\n}\n\n// lib/server-runtime/data.ts\nasync function callRouteHandler(handler, args) {\n let result = await handler({\n request: stripRoutesParam(stripIndexParam2(args.request)),\n params: args.params,\n context: args.context\n });\n if (isDataWithResponseInit(result) && result.init && result.init.status && isRedirectStatusCode(result.init.status)) {\n throw new Response(null, result.init);\n }\n return result;\n}\nfunction stripIndexParam2(request) {\n let url = new URL(request.url);\n let indexValues = url.searchParams.getAll(\"index\");\n url.searchParams.delete(\"index\");\n let indexValuesToKeep = [];\n for (let indexValue of indexValues) {\n if (indexValue) {\n indexValuesToKeep.push(indexValue);\n }\n }\n for (let toKeep of indexValuesToKeep) {\n url.searchParams.append(\"index\", toKeep);\n }\n let init = {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal\n };\n if (init.body) {\n init.duplex = \"half\";\n }\n return new Request(url.href, init);\n}\nfunction stripRoutesParam(request) {\n let url = new URL(request.url);\n url.searchParams.delete(\"_routes\");\n let init = {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal\n };\n if (init.body) {\n init.duplex = \"half\";\n }\n return new Request(url.href, init);\n}\n\n// lib/server-runtime/invariant.ts\nfunction invariant2(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n console.error(\n \"The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose\"\n );\n throw new Error(message);\n }\n}\n\n// lib/server-runtime/dev.ts\nvar globalDevServerHooksKey = \"__reactRouterDevServerHooks\";\nfunction setDevServerHooks(devServerHooks) {\n globalThis[globalDevServerHooksKey] = devServerHooks;\n}\nfunction getDevServerHooks() {\n return globalThis[globalDevServerHooksKey];\n}\nfunction getBuildTimeHeader(request, headerName) {\n if (typeof process !== \"undefined\") {\n try {\n if (process.env?.IS_RR_BUILD_REQUEST === \"yes\") {\n return request.headers.get(headerName);\n }\n } catch (e) {\n }\n }\n return null;\n}\n\n// lib/server-runtime/routes.ts\nfunction groupRoutesByParentId(manifest) {\n let routes = {};\n Object.values(manifest).forEach((route) => {\n if (route) {\n let parentId = route.parentId || \"\";\n if (!routes[parentId]) {\n routes[parentId] = [];\n }\n routes[parentId].push(route);\n }\n });\n return routes;\n}\nfunction createRoutes(manifest, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest)) {\n return (routesByParentId[parentId] || []).map((route) => ({\n ...route,\n children: createRoutes(manifest, route.id, routesByParentId)\n }));\n}\nfunction createStaticHandlerDataRoutes(manifest, future, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest)) {\n return (routesByParentId[parentId] || []).map((route) => {\n let commonRoute = {\n // Always include root due to default boundaries\n hasErrorBoundary: route.id === \"root\" || route.module.ErrorBoundary != null,\n id: route.id,\n path: route.path,\n unstable_middleware: route.module.unstable_middleware,\n // Need to use RR's version in the param typed here to permit the optional\n // context even though we know it'll always be provided in remix\n loader: route.module.loader ? async (args) => {\n let preRenderedData = getBuildTimeHeader(\n args.request,\n \"X-React-Router-Prerender-Data\"\n );\n if (preRenderedData != null) {\n let encoded = preRenderedData ? decodeURI(preRenderedData) : preRenderedData;\n invariant2(encoded, \"Missing prerendered data for route\");\n let uint8array = new TextEncoder().encode(encoded);\n let stream = new ReadableStream({\n start(controller) {\n controller.enqueue(uint8array);\n controller.close();\n }\n });\n let decoded = await decodeViaTurboStream(stream, global);\n let data2 = decoded.value;\n if (data2 && SingleFetchRedirectSymbol in data2) {\n let result = data2[SingleFetchRedirectSymbol];\n let init = { status: result.status };\n if (result.reload) {\n throw redirectDocument(result.redirect, init);\n } else if (result.replace) {\n throw replace(result.redirect, init);\n } else {\n throw redirect(result.redirect, init);\n }\n } else {\n invariant2(\n data2 && route.id in data2,\n \"Unable to decode prerendered data\"\n );\n let result = data2[route.id];\n invariant2(\n \"data\" in result,\n \"Unable to process prerendered data\"\n );\n return result.data;\n }\n }\n let val = await callRouteHandler(route.module.loader, args);\n return val;\n } : void 0,\n action: route.module.action ? (args) => callRouteHandler(route.module.action, args) : void 0,\n handle: route.module.handle\n };\n return route.index ? {\n index: true,\n ...commonRoute\n } : {\n caseSensitive: route.caseSensitive,\n children: createStaticHandlerDataRoutes(\n manifest,\n future,\n route.id,\n routesByParentId\n ),\n ...commonRoute\n };\n });\n}\n\n// lib/server-runtime/markup.ts\nvar ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n return html.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);\n}\n\n// lib/server-runtime/serverHandoff.ts\nfunction createServerHandoffString(serverHandoff) {\n return escapeHtml(JSON.stringify(serverHandoff));\n}\n\n// lib/server-runtime/headers.ts\nimport { splitCookiesString } from \"set-cookie-parser\";\nfunction getDocumentHeaders(context, build) {\n return getDocumentHeadersImpl(context, (m) => {\n let route = build.routes[m.route.id];\n invariant2(route, `Route with id \"${m.route.id}\" not found in build`);\n return route.module.headers;\n });\n}\nfunction getDocumentHeadersImpl(context, getRouteHeadersFn, _defaultHeaders) {\n let boundaryIdx = context.errors ? context.matches.findIndex((m) => context.errors[m.route.id]) : -1;\n let matches = boundaryIdx >= 0 ? context.matches.slice(0, boundaryIdx + 1) : context.matches;\n let errorHeaders;\n if (boundaryIdx >= 0) {\n let { actionHeaders, actionData, loaderHeaders, loaderData } = context;\n context.matches.slice(boundaryIdx).some((match) => {\n let id = match.route.id;\n if (actionHeaders[id] && (!actionData || !actionData.hasOwnProperty(id))) {\n errorHeaders = actionHeaders[id];\n } else if (loaderHeaders[id] && !loaderData.hasOwnProperty(id)) {\n errorHeaders = loaderHeaders[id];\n }\n return errorHeaders != null;\n });\n }\n const defaultHeaders = new Headers(_defaultHeaders);\n return matches.reduce((parentHeaders, match, idx) => {\n let { id } = match.route;\n let loaderHeaders = context.loaderHeaders[id] || new Headers();\n let actionHeaders = context.actionHeaders[id] || new Headers();\n let includeErrorHeaders = errorHeaders != null && idx === matches.length - 1;\n let includeErrorCookies = includeErrorHeaders && errorHeaders !== loaderHeaders && errorHeaders !== actionHeaders;\n let headersFn = getRouteHeadersFn(match);\n if (headersFn == null) {\n let headers2 = new Headers(parentHeaders);\n if (includeErrorCookies) {\n prependCookies(errorHeaders, headers2);\n }\n prependCookies(actionHeaders, headers2);\n prependCookies(loaderHeaders, headers2);\n return headers2;\n }\n let headers = new Headers(\n typeof headersFn === \"function\" ? headersFn({\n loaderHeaders,\n parentHeaders,\n actionHeaders,\n errorHeaders: includeErrorHeaders ? errorHeaders : void 0\n }) : headersFn\n );\n if (includeErrorCookies) {\n prependCookies(errorHeaders, headers);\n }\n prependCookies(actionHeaders, headers);\n prependCookies(loaderHeaders, headers);\n prependCookies(parentHeaders, headers);\n return headers;\n }, new Headers(defaultHeaders));\n}\nfunction prependCookies(parentHeaders, childHeaders) {\n let parentSetCookieString = parentHeaders.get(\"Set-Cookie\");\n if (parentSetCookieString) {\n let cookies = splitCookiesString(parentSetCookieString);\n let childCookies = new Set(childHeaders.getSetCookie());\n cookies.forEach((cookie) => {\n if (!childCookies.has(cookie)) {\n childHeaders.append(\"Set-Cookie\", cookie);\n }\n });\n }\n}\n\n// lib/server-runtime/single-fetch.ts\nvar SERVER_NO_BODY_STATUS_CODES = /* @__PURE__ */ new Set([\n ...NO_BODY_STATUS_CODES,\n 304\n]);\nasync function singleFetchAction(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n try {\n let handlerRequest = new Request(handlerUrl, {\n method: request.method,\n body: request.body,\n headers: request.headers,\n signal: request.signal,\n ...request.body ? { duplex: \"half\" } : void 0\n });\n let result = await staticHandler.query(handlerRequest, {\n requestContext: loadContext,\n skipLoaderErrorBubbling: true,\n skipRevalidation: true,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(handlerRequest);\n return handleQueryResult(innerResult);\n } catch (error) {\n return handleQueryError(error);\n }\n } : void 0\n });\n return handleQueryResult(result);\n } catch (error) {\n return handleQueryError(error);\n }\n function handleQueryResult(result) {\n return isResponse(result) ? result : staticContextToResponse(result);\n }\n function handleQueryError(error) {\n handleError(error);\n return generateSingleFetchResponse(request, build, serverMode, {\n result: { error },\n headers: new Headers(),\n status: 500\n });\n }\n function staticContextToResponse(context) {\n let headers = getDocumentHeaders(context, build);\n if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let singleFetchResult;\n if (context.errors) {\n singleFetchResult = { error: Object.values(context.errors)[0] };\n } else {\n singleFetchResult = {\n data: Object.values(context.actionData || {})[0]\n };\n }\n return generateSingleFetchResponse(request, build, serverMode, {\n result: singleFetchResult,\n headers,\n status: context.statusCode\n });\n }\n}\nasync function singleFetchLoaders(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n let routesParam = new URL(request.url).searchParams.get(\"_routes\");\n let loadRouteIds = routesParam ? new Set(routesParam.split(\",\")) : null;\n try {\n let handlerRequest = new Request(handlerUrl, {\n headers: request.headers,\n signal: request.signal\n });\n let result = await staticHandler.query(handlerRequest, {\n requestContext: loadContext,\n filterMatchesToLoad: (m) => !loadRouteIds || loadRouteIds.has(m.route.id),\n skipLoaderErrorBubbling: true,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(handlerRequest);\n return handleQueryResult(innerResult);\n } catch (error) {\n return handleQueryError(error);\n }\n } : void 0\n });\n return handleQueryResult(result);\n } catch (error) {\n return handleQueryError(error);\n }\n function handleQueryResult(result) {\n return isResponse(result) ? result : staticContextToResponse(result);\n }\n function handleQueryError(error) {\n handleError(error);\n return generateSingleFetchResponse(request, build, serverMode, {\n result: { error },\n headers: new Headers(),\n status: 500\n });\n }\n function staticContextToResponse(context) {\n let headers = getDocumentHeaders(context, build);\n if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let results = {};\n let loadedMatches = new Set(\n context.matches.filter(\n (m) => loadRouteIds ? loadRouteIds.has(m.route.id) : m.route.loader != null\n ).map((m) => m.route.id)\n );\n if (context.errors) {\n for (let [id, error] of Object.entries(context.errors)) {\n results[id] = { error };\n }\n }\n for (let [id, data2] of Object.entries(context.loaderData)) {\n if (!(id in results) && loadedMatches.has(id)) {\n results[id] = { data: data2 };\n }\n }\n return generateSingleFetchResponse(request, build, serverMode, {\n result: results,\n headers,\n status: context.statusCode\n });\n }\n}\nfunction generateSingleFetchResponse(request, build, serverMode, {\n result,\n headers,\n status\n}) {\n let resultHeaders = new Headers(headers);\n resultHeaders.set(\"X-Remix-Response\", \"yes\");\n if (SERVER_NO_BODY_STATUS_CODES.has(status)) {\n return new Response(null, { status, headers: resultHeaders });\n }\n resultHeaders.set(\"Content-Type\", \"text/x-script\");\n resultHeaders.delete(\"Content-Length\");\n return new Response(\n encodeViaTurboStream(\n result,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n {\n status: status || 200,\n headers: resultHeaders\n }\n );\n}\nfunction generateSingleFetchRedirectResponse(redirectResponse, request, build, serverMode) {\n let redirect2 = getSingleFetchRedirect(\n redirectResponse.status,\n redirectResponse.headers,\n build.basename\n );\n let headers = new Headers(redirectResponse.headers);\n headers.delete(\"Location\");\n headers.set(\"Content-Type\", \"text/x-script\");\n return generateSingleFetchResponse(request, build, serverMode, {\n result: request.method === \"GET\" ? { [SingleFetchRedirectSymbol]: redirect2 } : redirect2,\n headers,\n status: SINGLE_FETCH_REDIRECT_STATUS\n });\n}\nfunction getSingleFetchRedirect(status, headers, basename) {\n let redirect2 = headers.get(\"Location\");\n if (basename) {\n redirect2 = stripBasename(redirect2, basename) || redirect2;\n }\n return {\n redirect: redirect2,\n status,\n revalidate: (\n // Technically X-Remix-Revalidate isn't needed here - that was an implementation\n // detail of ?_data requests as our way to tell the front end to revalidate when\n // we didn't have a response body to include that information in.\n // With single fetch, we tell the front end via this revalidate boolean field.\n // However, we're respecting it for now because it may be something folks have\n // used in their own responses\n // TODO(v3): Consider removing or making this official public API\n headers.has(\"X-Remix-Revalidate\") || headers.has(\"Set-Cookie\")\n ),\n reload: headers.has(\"X-Remix-Reload-Document\"),\n replace: headers.has(\"X-Remix-Replace\")\n };\n}\nfunction encodeViaTurboStream(data2, requestSignal, streamTimeout, serverMode) {\n let controller = new AbortController();\n let timeoutId = setTimeout(\n () => controller.abort(new Error(\"Server Timeout\")),\n typeof streamTimeout === \"number\" ? streamTimeout : 4950\n );\n requestSignal.addEventListener(\"abort\", () => clearTimeout(timeoutId));\n return encode(data2, {\n signal: controller.signal,\n plugins: [\n (value) => {\n if (value instanceof Error) {\n let { name, message, stack } = serverMode === \"production\" /* Production */ ? sanitizeError(value, serverMode) : value;\n return [\"SanitizedError\", name, message, stack];\n }\n if (value instanceof ErrorResponseImpl) {\n let { data: data3, status, statusText } = value;\n return [\"ErrorResponse\", data3, status, statusText];\n }\n if (value && typeof value === \"object\" && SingleFetchRedirectSymbol in value) {\n return [\"SingleFetchRedirect\", value[SingleFetchRedirectSymbol]];\n }\n }\n ],\n postPlugins: [\n (value) => {\n if (!value) return;\n if (typeof value !== \"object\") return;\n return [\n \"SingleFetchClassInstance\",\n Object.fromEntries(Object.entries(value))\n ];\n },\n () => [\"SingleFetchFallback\"]\n ]\n });\n}\n\n// lib/server-runtime/server.ts\nfunction derive(build, mode) {\n let routes = createRoutes(build.routes);\n let dataRoutes = createStaticHandlerDataRoutes(build.routes, build.future);\n let serverMode = isServerMode(mode) ? mode : \"production\" /* Production */;\n let staticHandler = createStaticHandler(dataRoutes, {\n basename: build.basename\n });\n let errorHandler = build.entry.module.handleError || ((error, { request }) => {\n if (serverMode !== \"test\" /* Test */ && !request.signal.aborted) {\n console.error(\n // @ts-expect-error This is \"private\" from users but intended for internal use\n isRouteErrorResponse(error) && error.error ? error.error : error\n );\n }\n });\n return {\n routes,\n dataRoutes,\n serverMode,\n staticHandler,\n errorHandler\n };\n}\nvar createRequestHandler = (build, mode) => {\n let _build;\n let routes;\n let serverMode;\n let staticHandler;\n let errorHandler;\n return async function requestHandler(request, initialContext) {\n _build = typeof build === \"function\" ? await build() : build;\n if (typeof build === \"function\") {\n let derived = derive(_build, mode);\n routes = derived.routes;\n serverMode = derived.serverMode;\n staticHandler = derived.staticHandler;\n errorHandler = derived.errorHandler;\n } else if (!routes || !serverMode || !staticHandler || !errorHandler) {\n let derived = derive(_build, mode);\n routes = derived.routes;\n serverMode = derived.serverMode;\n staticHandler = derived.staticHandler;\n errorHandler = derived.errorHandler;\n }\n let params = {};\n let loadContext;\n let handleError = (error) => {\n if (mode === \"development\" /* Development */) {\n getDevServerHooks()?.processRequestError?.(error);\n }\n errorHandler(error, {\n context: loadContext,\n params,\n request\n });\n };\n if (_build.future.unstable_middleware) {\n if (initialContext && !(initialContext instanceof unstable_RouterContextProvider)) {\n let error = new Error(\n \"Invalid `context` value provided to `handleRequest`. When middleware is enabled you must return an instance of `unstable_RouterContextProvider` from your `getLoadContext` function.\"\n );\n handleError(error);\n return returnLastResortErrorResponse(error, serverMode);\n }\n loadContext = initialContext || new unstable_RouterContextProvider();\n } else {\n loadContext = initialContext || {};\n }\n let url = new URL(request.url);\n let normalizedBasename = _build.basename || \"/\";\n let normalizedPath = url.pathname;\n if (stripBasename(normalizedPath, normalizedBasename) === \"/_root.data\") {\n normalizedPath = normalizedBasename;\n } else if (normalizedPath.endsWith(\".data\")) {\n normalizedPath = normalizedPath.replace(/\\.data$/, \"\");\n }\n if (stripBasename(normalizedPath, normalizedBasename) !== \"/\" && normalizedPath.endsWith(\"/\")) {\n normalizedPath = normalizedPath.slice(0, -1);\n }\n let isSpaMode = getBuildTimeHeader(request, \"X-React-Router-SPA-Mode\") === \"yes\";\n if (!_build.ssr) {\n let decodedPath = decodeURI(normalizedPath);\n if (normalizedBasename !== \"/\") {\n let strippedPath = stripBasename(decodedPath, normalizedBasename);\n if (strippedPath == null) {\n errorHandler(\n new ErrorResponseImpl(\n 404,\n \"Not Found\",\n `Refusing to prerender the \\`${decodedPath}\\` path because it does not start with the basename \\`${normalizedBasename}\\``\n ),\n {\n context: loadContext,\n params,\n request\n }\n );\n return new Response(\"Not Found\", {\n status: 404,\n statusText: \"Not Found\"\n });\n }\n decodedPath = strippedPath;\n }\n if (_build.prerender.length === 0) {\n isSpaMode = true;\n } else if (!_build.prerender.includes(decodedPath) && !_build.prerender.includes(decodedPath + \"/\")) {\n if (url.pathname.endsWith(\".data\")) {\n errorHandler(\n new ErrorResponseImpl(\n 404,\n \"Not Found\",\n `Refusing to SSR the path \\`${decodedPath}\\` because \\`ssr:false\\` is set and the path is not included in the \\`prerender\\` config, so in production the path will be a 404.`\n ),\n {\n context: loadContext,\n params,\n request\n }\n );\n return new Response(\"Not Found\", {\n status: 404,\n statusText: \"Not Found\"\n });\n } else {\n isSpaMode = true;\n }\n }\n }\n let manifestUrl = getManifestPath(\n _build.routeDiscovery.manifestPath,\n normalizedBasename\n );\n if (url.pathname === manifestUrl) {\n try {\n let res = await handleManifestRequest(_build, routes, url);\n return res;\n } catch (e) {\n handleError(e);\n return new Response(\"Unknown Server Error\", { status: 500 });\n }\n }\n let matches = matchServerRoutes(routes, normalizedPath, _build.basename);\n if (matches && matches.length > 0) {\n Object.assign(params, matches[0].params);\n }\n let response;\n if (url.pathname.endsWith(\".data\")) {\n let handlerUrl = new URL(request.url);\n handlerUrl.pathname = normalizedPath;\n let singleFetchMatches = matchServerRoutes(\n routes,\n handlerUrl.pathname,\n _build.basename\n );\n response = await handleSingleFetchRequest(\n serverMode,\n _build,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n );\n if (isRedirectResponse(response)) {\n response = generateSingleFetchRedirectResponse(\n response,\n request,\n _build,\n serverMode\n );\n }\n if (_build.entry.module.handleDataRequest) {\n response = await _build.entry.module.handleDataRequest(response, {\n context: loadContext,\n params: singleFetchMatches ? singleFetchMatches[0].params : {},\n request\n });\n if (isRedirectResponse(response)) {\n response = generateSingleFetchRedirectResponse(\n response,\n request,\n _build,\n serverMode\n );\n }\n }\n } else if (!isSpaMode && matches && matches[matches.length - 1].route.module.default == null && matches[matches.length - 1].route.module.ErrorBoundary == null) {\n response = await handleResourceRequest(\n serverMode,\n _build,\n staticHandler,\n matches.slice(-1)[0].route.id,\n request,\n loadContext,\n handleError\n );\n } else {\n let { pathname } = url;\n let criticalCss = void 0;\n if (_build.unstable_getCriticalCss) {\n criticalCss = await _build.unstable_getCriticalCss({ pathname });\n } else if (mode === \"development\" /* Development */ && getDevServerHooks()?.getCriticalCss) {\n criticalCss = await getDevServerHooks()?.getCriticalCss?.(pathname);\n }\n response = await handleDocumentRequest(\n serverMode,\n _build,\n staticHandler,\n request,\n loadContext,\n handleError,\n isSpaMode,\n criticalCss\n );\n }\n if (request.method === \"HEAD\") {\n return new Response(null, {\n headers: response.headers,\n status: response.status,\n statusText: response.statusText\n });\n }\n return response;\n };\n};\nasync function handleManifestRequest(build, routes, url) {\n if (build.assets.version !== url.searchParams.get(\"version\")) {\n return new Response(null, {\n status: 204,\n headers: {\n \"X-Remix-Reload-Document\": \"true\"\n }\n });\n }\n let patches = {};\n if (url.searchParams.has(\"p\")) {\n let paths = /* @__PURE__ */ new Set();\n url.searchParams.getAll(\"p\").forEach((path) => {\n if (!path.startsWith(\"/\")) {\n path = `/${path}`;\n }\n let segments = path.split(\"/\").slice(1);\n segments.forEach((_, i) => {\n let partialPath = segments.slice(0, i + 1).join(\"/\");\n paths.add(`/${partialPath}`);\n });\n });\n for (let path of paths) {\n let matches = matchServerRoutes(routes, path, build.basename);\n if (matches) {\n for (let match of matches) {\n let routeId = match.route.id;\n let route = build.assets.routes[routeId];\n if (route) {\n patches[routeId] = route;\n }\n }\n }\n }\n return Response.json(patches, {\n headers: {\n \"Cache-Control\": \"public, max-age=31536000, immutable\"\n }\n });\n }\n return new Response(\"Invalid Request\", { status: 400 });\n}\nasync function handleSingleFetchRequest(serverMode, build, staticHandler, request, handlerUrl, loadContext, handleError) {\n let response = request.method !== \"GET\" ? await singleFetchAction(\n build,\n serverMode,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n ) : await singleFetchLoaders(\n build,\n serverMode,\n staticHandler,\n request,\n handlerUrl,\n loadContext,\n handleError\n );\n return response;\n}\nasync function handleDocumentRequest(serverMode, build, staticHandler, request, loadContext, handleError, isSpaMode, criticalCss) {\n try {\n let result = await staticHandler.query(request, {\n requestContext: loadContext,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (query) => {\n try {\n let innerResult = await query(request);\n if (!isResponse(innerResult)) {\n innerResult = await renderHtml(innerResult, isSpaMode);\n }\n return innerResult;\n } catch (error) {\n handleError(error);\n return new Response(null, { status: 500 });\n }\n } : void 0\n });\n if (!isResponse(result)) {\n result = await renderHtml(result, isSpaMode);\n }\n return result;\n } catch (error) {\n handleError(error);\n return new Response(null, { status: 500 });\n }\n async function renderHtml(context, isSpaMode2) {\n let headers = getDocumentHeaders(context, build);\n if (SERVER_NO_BODY_STATUS_CODES.has(context.statusCode)) {\n return new Response(null, { status: context.statusCode, headers });\n }\n if (context.errors) {\n Object.values(context.errors).forEach((err) => {\n if (!isRouteErrorResponse(err) || err.error) {\n handleError(err);\n }\n });\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let state = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors, serverMode)\n };\n let baseServerHandoff = {\n basename: build.basename,\n future: build.future,\n routeDiscovery: build.routeDiscovery,\n ssr: build.ssr,\n isSpaMode: isSpaMode2\n };\n let entryContext = {\n manifest: build.assets,\n routeModules: createEntryRouteModules(build.routes),\n staticHandlerContext: context,\n criticalCss,\n serverHandoffString: createServerHandoffString({\n ...baseServerHandoff,\n criticalCss\n }),\n serverHandoffStream: encodeViaTurboStream(\n state,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n renderMeta: {},\n future: build.future,\n ssr: build.ssr,\n routeDiscovery: build.routeDiscovery,\n isSpaMode: isSpaMode2,\n serializeError: (err) => serializeError(err, serverMode)\n };\n let handleDocumentRequestFunction = build.entry.module.default;\n try {\n return await handleDocumentRequestFunction(\n request,\n context.statusCode,\n headers,\n entryContext,\n loadContext\n );\n } catch (error) {\n handleError(error);\n let errorForSecondRender = error;\n if (isResponse(error)) {\n try {\n let data2 = await unwrapResponse(error);\n errorForSecondRender = new ErrorResponseImpl(\n error.status,\n error.statusText,\n data2\n );\n } catch (e) {\n }\n }\n context = getStaticContextFromError(\n staticHandler.dataRoutes,\n context,\n errorForSecondRender\n );\n if (context.errors) {\n context.errors = sanitizeErrors(context.errors, serverMode);\n }\n let state2 = {\n loaderData: context.loaderData,\n actionData: context.actionData,\n errors: serializeErrors(context.errors, serverMode)\n };\n entryContext = {\n ...entryContext,\n staticHandlerContext: context,\n serverHandoffString: createServerHandoffString(baseServerHandoff),\n serverHandoffStream: encodeViaTurboStream(\n state2,\n request.signal,\n build.entry.module.streamTimeout,\n serverMode\n ),\n renderMeta: {}\n };\n try {\n return await handleDocumentRequestFunction(\n request,\n context.statusCode,\n headers,\n entryContext,\n loadContext\n );\n } catch (error2) {\n handleError(error2);\n return returnLastResortErrorResponse(error2, serverMode);\n }\n }\n }\n}\nasync function handleResourceRequest(serverMode, build, staticHandler, routeId, request, loadContext, handleError) {\n try {\n let result = await staticHandler.queryRoute(request, {\n routeId,\n requestContext: loadContext,\n unstable_generateMiddlewareResponse: build.future.unstable_middleware ? async (queryRoute) => {\n try {\n let innerResult = await queryRoute(request);\n return handleQueryRouteResult(innerResult);\n } catch (error) {\n return handleQueryRouteError(error);\n }\n } : void 0\n });\n return handleQueryRouteResult(result);\n } catch (error) {\n return handleQueryRouteError(error);\n }\n function handleQueryRouteResult(result) {\n if (isResponse(result)) {\n return result;\n }\n if (typeof result === \"string\") {\n return new Response(result);\n }\n return Response.json(result);\n }\n function handleQueryRouteError(error) {\n if (isResponse(error)) {\n error.headers.set(\"X-Remix-Catch\", \"yes\");\n return error;\n }\n if (isRouteErrorResponse(error)) {\n handleError(error);\n return errorResponseToJson(error, serverMode);\n }\n if (error instanceof Error && error.message === \"Expected a response from queryRoute\") {\n let newError = new Error(\n \"Expected a Response to be returned from resource route handler\"\n );\n handleError(newError);\n return returnLastResortErrorResponse(newError, serverMode);\n }\n handleError(error);\n return returnLastResortErrorResponse(error, serverMode);\n }\n}\nfunction errorResponseToJson(errorResponse, serverMode) {\n return Response.json(\n serializeError(\n // @ts-expect-error This is \"private\" from users but intended for internal use\n errorResponse.error || new Error(\"Unexpected Server Error\"),\n serverMode\n ),\n {\n status: errorResponse.status,\n statusText: errorResponse.statusText,\n headers: {\n \"X-Remix-Error\": \"yes\"\n }\n }\n );\n}\nfunction returnLastResortErrorResponse(error, serverMode) {\n let message = \"Unexpected Server Error\";\n if (serverMode !== \"production\" /* Production */) {\n message += `\n\n${String(error)}`;\n }\n return new Response(message, {\n status: 500,\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n });\n}\nfunction unwrapResponse(response) {\n let contentType = response.headers.get(\"Content-Type\");\n return contentType && /\\bapplication\\/json\\b/.test(contentType) ? response.body == null ? null : response.json() : response.text();\n}\n\n// lib/server-runtime/sessions.ts\nfunction flash(name) {\n return `__flash_${name}__`;\n}\nvar createSession = (initialData = {}, id = \"\") => {\n let map = new Map(Object.entries(initialData));\n return {\n get id() {\n return id;\n },\n get data() {\n return Object.fromEntries(map);\n },\n has(name) {\n return map.has(name) || map.has(flash(name));\n },\n get(name) {\n if (map.has(name)) return map.get(name);\n let flashName = flash(name);\n if (map.has(flashName)) {\n let value = map.get(flashName);\n map.delete(flashName);\n return value;\n }\n return void 0;\n },\n set(name, value) {\n map.set(name, value);\n },\n flash(name, value) {\n map.set(flash(name), value);\n },\n unset(name) {\n map.delete(name);\n }\n };\n};\nvar isSession = (object) => {\n return object != null && typeof object.id === \"string\" && typeof object.data !== \"undefined\" && typeof object.has === \"function\" && typeof object.get === \"function\" && typeof object.set === \"function\" && typeof object.flash === \"function\" && typeof object.unset === \"function\";\n};\nfunction createSessionStorage({\n cookie: cookieArg,\n createData,\n readData,\n updateData,\n deleteData\n}) {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n let id = cookieHeader && await cookie.parse(cookieHeader, options);\n let data2 = id && await readData(id);\n return createSession(data2 || {}, id || \"\");\n },\n async commitSession(session, options) {\n let { id, data: data2 } = session;\n let expires = options?.maxAge != null ? new Date(Date.now() + options.maxAge * 1e3) : options?.expires != null ? options.expires : cookie.expires;\n if (id) {\n await updateData(id, data2, expires);\n } else {\n id = await createData(data2, expires);\n }\n return cookie.serialize(id, options);\n },\n async destroySession(session, options) {\n await deleteData(session.id);\n return cookie.serialize(\"\", {\n ...options,\n maxAge: void 0,\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n };\n}\nfunction warnOnceAboutSigningSessionCookie(cookie) {\n warnOnce(\n cookie.isSigned,\n `The \"${cookie.name}\" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://reactrouter.com/explanation/sessions-and-cookies#signing-cookies for more information.`\n );\n}\n\n// lib/server-runtime/sessions/cookieStorage.ts\nfunction createCookieSessionStorage({ cookie: cookieArg } = {}) {\n let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n warnOnceAboutSigningSessionCookie(cookie);\n return {\n async getSession(cookieHeader, options) {\n return createSession(\n cookieHeader && await cookie.parse(cookieHeader, options) || {}\n );\n },\n async commitSession(session, options) {\n let serializedCookie = await cookie.serialize(session.data, options);\n if (serializedCookie.length > 4096) {\n throw new Error(\n \"Cookie length will exceed browser maximum. Length: \" + serializedCookie.length\n );\n }\n return serializedCookie;\n },\n async destroySession(_session, options) {\n return cookie.serialize(\"\", {\n ...options,\n maxAge: void 0,\n expires: /* @__PURE__ */ new Date(0)\n });\n }\n };\n}\n\n// lib/server-runtime/sessions/memoryStorage.ts\nfunction createMemorySessionStorage({ cookie } = {}) {\n let map = /* @__PURE__ */ new Map();\n return createSessionStorage({\n cookie,\n async createData(data2, expires) {\n let id = Math.random().toString(36).substring(2, 10);\n map.set(id, { data: data2, expires });\n return id;\n },\n async readData(id) {\n if (map.has(id)) {\n let { data: data2, expires } = map.get(id);\n if (!expires || expires > /* @__PURE__ */ new Date()) {\n return data2;\n }\n if (expires) map.delete(id);\n }\n return null;\n },\n async updateData(id, data2, expires) {\n map.set(id, { data: data2, expires });\n },\n async deleteData(id) {\n map.delete(id);\n }\n });\n}\n\n// lib/href.ts\nfunction href(path, ...args) {\n let params = args[0];\n return path.split(\"/\").map((segment) => {\n if (segment === \"*\") {\n return params ? params[\"*\"] : void 0;\n }\n const match = segment.match(/^:([\\w-]+)(\\?)?/);\n if (!match) return segment;\n const param = match[1];\n const value = params ? params[param] : void 0;\n const isRequired = match[2] === void 0;\n if (isRequired && value === void 0) {\n throw Error(\n `Path '${path}' requires param '${param}' but it was not provided`\n );\n }\n return value;\n }).filter((segment) => segment !== void 0).join(\"/\");\n}\n\n// lib/rsc/browser.tsx\nimport * as React4 from \"react\";\nimport * as ReactDOM from \"react-dom\";\n\n// lib/dom/ssr/hydration.tsx\nfunction getHydrationData(state, routes, getRouteInfo, location2, basename, isSpaMode) {\n let hydrationData = {\n ...state,\n loaderData: { ...state.loaderData }\n };\n let initialMatches = matchRoutes(routes, location2, basename);\n if (initialMatches) {\n for (let match of initialMatches) {\n let routeId = match.route.id;\n let routeInfo = getRouteInfo(routeId);\n if (shouldHydrateRouteLoader(\n routeId,\n routeInfo.clientLoader,\n routeInfo.hasLoader,\n isSpaMode\n ) && (routeInfo.hasHydrateFallback || !routeInfo.hasLoader)) {\n delete hydrationData.loaderData[routeId];\n } else if (!routeInfo.hasLoader) {\n hydrationData.loaderData[routeId] = null;\n }\n }\n }\n return hydrationData;\n}\n\n// lib/rsc/errorBoundaries.tsx\nimport React3 from \"react\";\nvar RSCRouterGlobalErrorBoundary = class extends React3.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, location: props.location };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n static getDerivedStateFromProps(props, state) {\n if (state.location !== props.location) {\n return { error: null, location: props.location };\n }\n return { error: state.error, location: state.location };\n }\n render() {\n if (this.state.error) {\n return /* @__PURE__ */ React3.createElement(\n RSCDefaultRootErrorBoundaryImpl,\n {\n error: this.state.error,\n renderAppShell: true\n }\n );\n } else {\n return this.props.children;\n }\n }\n};\nfunction ErrorWrapper({\n renderAppShell,\n title,\n children\n}) {\n if (!renderAppShell) {\n return children;\n }\n return /* @__PURE__ */ React3.createElement(\"html\", { lang: \"en\" }, /* @__PURE__ */ React3.createElement(\"head\", null, /* @__PURE__ */ React3.createElement(\"meta\", { charSet: \"utf-8\" }), /* @__PURE__ */ React3.createElement(\n \"meta\",\n {\n name: \"viewport\",\n content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n }\n ), /* @__PURE__ */ React3.createElement(\"title\", null, title)), /* @__PURE__ */ React3.createElement(\"body\", null, /* @__PURE__ */ React3.createElement(\"main\", { style: { fontFamily: \"system-ui, sans-serif\", padding: \"2rem\" } }, children)));\n}\nfunction RSCDefaultRootErrorBoundaryImpl({\n error,\n renderAppShell\n}) {\n console.error(error);\n let heyDeveloper = /* @__PURE__ */ React3.createElement(\n \"script\",\n {\n dangerouslySetInnerHTML: {\n __html: `\n console.log(\n \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information.\"\n );\n `\n }\n }\n );\n if (isRouteErrorResponse(error)) {\n return /* @__PURE__ */ React3.createElement(\n ErrorWrapper,\n {\n renderAppShell,\n title: \"Unhandled Thrown Response!\"\n },\n /* @__PURE__ */ React3.createElement(\"h1\", { style: { fontSize: \"24px\" } }, error.status, \" \", error.statusText),\n ENABLE_DEV_WARNINGS ? heyDeveloper : null\n );\n }\n let errorInstance;\n if (error instanceof Error) {\n errorInstance = error;\n } else {\n let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n errorInstance = new Error(errorString);\n }\n return /* @__PURE__ */ React3.createElement(ErrorWrapper, { renderAppShell, title: \"Application Error!\" }, /* @__PURE__ */ React3.createElement(\"h1\", { style: { fontSize: \"24px\" } }, \"Application Error\"), /* @__PURE__ */ React3.createElement(\n \"pre\",\n {\n style: {\n padding: \"2rem\",\n background: \"hsla(10, 50%, 50%, 0.1)\",\n color: \"red\",\n overflow: \"auto\"\n }\n },\n errorInstance.stack\n ), heyDeveloper);\n}\nfunction RSCDefaultRootErrorBoundary({\n hasRootLayout\n}) {\n let error = useRouteError();\n if (hasRootLayout === void 0) {\n throw new Error(\"Missing 'hasRootLayout' prop\");\n }\n return /* @__PURE__ */ React3.createElement(\n RSCDefaultRootErrorBoundaryImpl,\n {\n renderAppShell: !hasRootLayout,\n error\n }\n );\n}\n\n// lib/rsc/route-modules.ts\nfunction createRSCRouteModules(payload) {\n const routeModules = {};\n for (const match of payload.matches) {\n populateRSCRouteModules(routeModules, match);\n }\n return routeModules;\n}\nfunction populateRSCRouteModules(routeModules, matches) {\n matches = Array.isArray(matches) ? matches : [matches];\n for (const match of matches) {\n routeModules[match.id] = {\n links: match.links,\n meta: match.meta,\n default: noopComponent\n };\n }\n}\nvar noopComponent = () => null;\n\n// lib/rsc/browser.tsx\nfunction createCallServer({\n createFromReadableStream,\n createTemporaryReferenceSet,\n encodeReply,\n fetch: fetchImplementation = fetch\n}) {\n const globalVar = window;\n let landedActionId = 0;\n return async (id, args) => {\n let actionId = globalVar.__routerActionID = (globalVar.__routerActionID ?? (globalVar.__routerActionID = 0)) + 1;\n const temporaryReferences = createTemporaryReferenceSet();\n const response = await fetchImplementation(\n new Request(location.href, {\n body: await encodeReply(args, { temporaryReferences }),\n method: \"POST\",\n headers: {\n Accept: \"text/x-component\",\n \"rsc-action-id\": id\n }\n })\n );\n if (!response.body) {\n throw new Error(\"No response body\");\n }\n const payload = await createFromReadableStream(response.body, {\n temporaryReferences\n });\n if (payload.type === \"redirect\") {\n if (payload.reload) {\n window.location.href = payload.location;\n return;\n }\n globalVar.__reactRouterDataRouter.navigate(payload.location, {\n replace: payload.replace\n });\n return payload.actionResult;\n }\n if (payload.type !== \"action\") {\n throw new Error(\"Unexpected payload type\");\n }\n if (payload.rerender) {\n React4.startTransition(\n // @ts-expect-error - We have old react types that don't know this can be async\n async () => {\n const rerender = await payload.rerender;\n if (!rerender) return;\n if (landedActionId < actionId && globalVar.__routerActionID <= actionId) {\n landedActionId = actionId;\n if (rerender.type === \"redirect\") {\n if (rerender.reload) {\n window.location.href = rerender.location;\n return;\n }\n globalVar.__reactRouterDataRouter.navigate(rerender.location, {\n replace: rerender.replace\n });\n return;\n }\n let lastMatch;\n for (const match of rerender.matches) {\n globalVar.__reactRouterDataRouter.patchRoutes(\n lastMatch?.id ?? null,\n [createRouteFromServerManifest(match)],\n true\n );\n lastMatch = match;\n }\n window.__reactRouterDataRouter._internalSetStateDoNotUseOrYouWillBreakYourApp(\n {}\n );\n React4.startTransition(() => {\n window.__reactRouterDataRouter._internalSetStateDoNotUseOrYouWillBreakYourApp(\n {\n loaderData: Object.assign(\n {},\n globalVar.__reactRouterDataRouter.state.loaderData,\n rerender.loaderData\n ),\n errors: rerender.errors ? Object.assign(\n {},\n globalVar.__reactRouterDataRouter.state.errors,\n rerender.errors\n ) : null\n }\n );\n });\n }\n }\n );\n }\n return payload.actionResult;\n };\n}\nfunction createRouterFromPayload({\n fetchImplementation,\n createFromReadableStream,\n unstable_getContext,\n payload\n}) {\n const globalVar = window;\n if (globalVar.__reactRouterDataRouter && globalVar.__reactRouterRouteModules)\n return {\n router: globalVar.__reactRouterDataRouter,\n routeModules: globalVar.__reactRouterRouteModules\n };\n if (payload.type !== \"render\") throw new Error(\"Invalid payload type\");\n globalVar.__reactRouterRouteModules = globalVar.__reactRouterRouteModules ?? {};\n populateRSCRouteModules(globalVar.__reactRouterRouteModules, payload.matches);\n let patches = /* @__PURE__ */ new Map();\n payload.patches?.forEach((patch) => {\n invariant(patch.parentId, \"Invalid patch parentId\");\n if (!patches.has(patch.parentId)) {\n patches.set(patch.parentId, []);\n }\n patches.get(patch.parentId)?.push(patch);\n });\n let routes = payload.matches.reduceRight((previous, match) => {\n const route = createRouteFromServerManifest(\n match,\n payload\n );\n if (previous.length > 0) {\n route.children = previous;\n let childrenToPatch = patches.get(match.id);\n if (childrenToPatch) {\n route.children.push(\n ...childrenToPatch.map((r) => createRouteFromServerManifest(r))\n );\n }\n }\n return [route];\n }, []);\n globalVar.__reactRouterDataRouter = createRouter({\n routes,\n unstable_getContext,\n basename: payload.basename,\n history: createBrowserHistory(),\n hydrationData: getHydrationData(\n {\n loaderData: payload.loaderData,\n actionData: payload.actionData,\n errors: payload.errors\n },\n routes,\n (routeId) => {\n let match = payload.matches.find((m) => m.id === routeId);\n invariant(match, \"Route not found in payload\");\n return {\n clientLoader: match.clientLoader,\n hasLoader: match.hasLoader,\n hasHydrateFallback: match.hydrateFallbackElement != null\n };\n },\n payload.location,\n void 0,\n false\n ),\n async patchRoutesOnNavigation({ path, signal }) {\n if (discoveredPaths.has(path)) {\n return;\n }\n await fetchAndApplyManifestPatches(\n [path],\n createFromReadableStream,\n fetchImplementation,\n signal\n );\n },\n // FIXME: Pass `build.ssr` into this function\n dataStrategy: getRSCSingleFetchDataStrategy(\n () => globalVar.__reactRouterDataRouter,\n true,\n payload.basename,\n createFromReadableStream,\n fetchImplementation\n )\n });\n if (globalVar.__reactRouterDataRouter.state.initialized) {\n globalVar.__routerInitialized = true;\n globalVar.__reactRouterDataRouter.initialize();\n } else {\n globalVar.__routerInitialized = false;\n }\n let lastLoaderData = void 0;\n globalVar.__reactRouterDataRouter.subscribe(({ loaderData, actionData }) => {\n if (lastLoaderData !== loaderData) {\n globalVar.__routerActionID = (globalVar.__routerActionID ?? (globalVar.__routerActionID = 0)) + 1;\n }\n });\n globalVar.__reactRouterDataRouter._updateRoutesForHMR = (routeUpdateByRouteId) => {\n const oldRoutes = window.__reactRouterDataRouter.routes;\n const newRoutes = [];\n function walkRoutes(routes2, parentId) {\n return routes2.map((route) => {\n const routeUpdate = routeUpdateByRouteId.get(route.id);\n if (routeUpdate) {\n const {\n routeModule,\n hasAction,\n hasComponent,\n hasErrorBoundary,\n hasLoader\n } = routeUpdate;\n const newRoute = createRouteFromServerManifest({\n clientAction: routeModule.clientAction,\n clientLoader: routeModule.clientLoader,\n element: route.element,\n errorElement: route.errorElement,\n handle: route.handle,\n hasAction,\n hasComponent,\n hasErrorBoundary,\n hasLoader,\n hydrateFallbackElement: route.hydrateFallbackElement,\n id: route.id,\n index: route.index,\n links: routeModule.links,\n meta: routeModule.meta,\n parentId,\n path: route.path,\n shouldRevalidate: routeModule.shouldRevalidate\n });\n if (route.children) {\n newRoute.children = walkRoutes(route.children, route.id);\n }\n return newRoute;\n }\n const updatedRoute = { ...route };\n if (route.children) {\n updatedRoute.children = walkRoutes(route.children, route.id);\n }\n return updatedRoute;\n });\n }\n newRoutes.push(\n ...walkRoutes(oldRoutes, void 0)\n );\n window.__reactRouterDataRouter._internalSetRoutes(newRoutes);\n };\n return {\n router: globalVar.__reactRouterDataRouter,\n routeModules: globalVar.__reactRouterRouteModules\n };\n}\nvar renderedRoutesContext = unstable_createContext();\nfunction getRSCSingleFetchDataStrategy(getRouter, ssr, basename, createFromReadableStream, fetchImplementation) {\n let dataStrategy = getSingleFetchDataStrategyImpl(\n getRouter,\n (match) => {\n let M = match;\n return {\n hasLoader: M.route.hasLoader,\n hasClientLoader: M.route.hasClientLoader,\n hasComponent: M.route.hasComponent,\n hasAction: M.route.hasAction,\n hasClientAction: M.route.hasClientAction,\n hasShouldRevalidate: M.route.hasShouldRevalidate\n };\n },\n // pass map into fetchAndDecode so it can add payloads\n getFetchAndDecodeViaRSC(createFromReadableStream, fetchImplementation),\n ssr,\n basename,\n // If the route has a component but we don't have an element, we need to hit\n // the server loader flow regardless of whether the client loader calls\n // `serverLoader` or not, otherwise we'll have nothing to render.\n (match) => {\n let M = match;\n return M.route.hasComponent && !M.route.element;\n }\n );\n return async (args) => args.unstable_runClientMiddleware(async () => {\n let context = args.context;\n context.set(renderedRoutesContext, []);\n let results = await dataStrategy(args);\n const renderedRoutesById = /* @__PURE__ */ new Map();\n for (const route of context.get(renderedRoutesContext)) {\n if (!renderedRoutesById.has(route.id)) {\n renderedRoutesById.set(route.id, []);\n }\n renderedRoutesById.get(route.id).push(route);\n }\n for (const match of args.matches) {\n const renderedRoutes = renderedRoutesById.get(match.route.id);\n if (renderedRoutes) {\n for (const rendered of renderedRoutes) {\n window.__reactRouterDataRouter.patchRoutes(\n rendered.parentId ?? null,\n [createRouteFromServerManifest(rendered)],\n true\n );\n }\n }\n }\n return results;\n });\n}\nfunction getFetchAndDecodeViaRSC(createFromReadableStream, fetchImplementation) {\n return async (args, basename, targetRoutes) => {\n let { request, context } = args;\n let url = singleFetchUrl(request.url, basename, \"rsc\");\n if (request.method === \"GET\") {\n url = stripIndexParam(url);\n if (targetRoutes) {\n url.searchParams.set(\"_routes\", targetRoutes.join(\",\"));\n }\n }\n let res = await fetchImplementation(\n new Request(url, await createRequestInit(request))\n );\n if (res.status === 404 && !res.headers.has(\"X-Remix-Response\")) {\n throw new ErrorResponseImpl(404, \"Not Found\", true);\n }\n invariant(res.body, \"No response body to decode\");\n try {\n const payload = await createFromReadableStream(res.body, {\n temporaryReferences: void 0\n });\n if (payload.type === \"redirect\") {\n return {\n status: res.status,\n data: {\n redirect: {\n redirect: payload.location,\n reload: payload.reload,\n replace: payload.replace,\n revalidate: false,\n status: payload.status\n }\n }\n };\n }\n if (payload.type !== \"render\") {\n throw new Error(\"Unexpected payload type\");\n }\n context.get(renderedRoutesContext).push(...payload.matches);\n let results = { routes: {} };\n const dataKey = isMutationMethod(request.method) ? \"actionData\" : \"loaderData\";\n for (let [routeId, data2] of Object.entries(payload[dataKey] || {})) {\n results.routes[routeId] = { data: data2 };\n }\n if (payload.errors) {\n for (let [routeId, error] of Object.entries(payload.errors)) {\n results.routes[routeId] = { error };\n }\n }\n return { status: res.status, data: results };\n } catch (e) {\n throw new Error(\"Unable to decode RSC response\");\n }\n };\n}\nfunction RSCHydratedRouter({\n createFromReadableStream,\n fetch: fetchImplementation = fetch,\n payload,\n routeDiscovery = \"eager\",\n unstable_getContext\n}) {\n if (payload.type !== \"render\") throw new Error(\"Invalid payload type\");\n let { router, routeModules } = React4.useMemo(\n () => createRouterFromPayload({\n payload,\n fetchImplementation,\n unstable_getContext,\n createFromReadableStream\n }),\n [\n createFromReadableStream,\n payload,\n fetchImplementation,\n unstable_getContext\n ]\n );\n React4.useEffect(() => {\n setIsHydrated();\n }, []);\n React4.useLayoutEffect(() => {\n const globalVar = window;\n if (!globalVar.__routerInitialized) {\n globalVar.__routerInitialized = true;\n globalVar.__reactRouterDataRouter.initialize();\n }\n }, []);\n let [location2, setLocation] = React4.useState(router.state.location);\n React4.useLayoutEffect(\n () => router.subscribe((newState) => {\n if (newState.location !== location2) {\n setLocation(newState.location);\n }\n }),\n [router, location2]\n );\n React4.useEffect(() => {\n if (routeDiscovery === \"lazy\" || // @ts-expect-error - TS doesn't know about this yet\n window.navigator?.connection?.saveData === true) {\n return;\n }\n function registerElement(el) {\n let path = el.tagName === \"FORM\" ? el.getAttribute(\"action\") : el.getAttribute(\"href\");\n if (!path) {\n return;\n }\n let pathname = el.tagName === \"A\" ? el.pathname : new URL(path, window.location.origin).pathname;\n if (!discoveredPaths.has(pathname)) {\n nextPaths.add(pathname);\n }\n }\n async function fetchPatches() {\n document.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach(registerElement);\n let paths = Array.from(nextPaths.keys()).filter((path) => {\n if (discoveredPaths.has(path)) {\n nextPaths.delete(path);\n return false;\n }\n return true;\n });\n if (paths.length === 0) {\n return;\n }\n try {\n await fetchAndApplyManifestPatches(\n paths,\n createFromReadableStream,\n fetchImplementation\n );\n } catch (e) {\n console.error(\"Failed to fetch manifest patches\", e);\n }\n }\n let debouncedFetchPatches = debounce(fetchPatches, 100);\n fetchPatches();\n let observer = new MutationObserver(() => debouncedFetchPatches());\n observer.observe(document.documentElement, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [\"data-discover\", \"href\", \"action\"]\n });\n }, [routeDiscovery, createFromReadableStream, fetchImplementation]);\n const frameworkContext = {\n future: {\n // These flags have no runtime impact so can always be false. If we add\n // flags that drive runtime behavior they'll need to be proxied through.\n unstable_middleware: false,\n unstable_subResourceIntegrity: false\n },\n isSpaMode: false,\n ssr: true,\n criticalCss: \"\",\n manifest: {\n routes: {},\n version: \"1\",\n url: \"\",\n entry: {\n module: \"\",\n imports: []\n }\n },\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" },\n routeModules\n };\n return /* @__PURE__ */ React4.createElement(RSCRouterContext.Provider, { value: true }, /* @__PURE__ */ React4.createElement(RSCRouterGlobalErrorBoundary, { location: location2 }, /* @__PURE__ */ React4.createElement(FrameworkContext.Provider, { value: frameworkContext }, /* @__PURE__ */ React4.createElement(RouterProvider, { router, flushSync: ReactDOM.flushSync }))));\n}\nfunction createRouteFromServerManifest(match, payload) {\n let hasInitialData = payload && match.id in payload.loaderData;\n let initialData = payload?.loaderData[match.id];\n let hasInitialError = payload?.errors && match.id in payload.errors;\n let initialError = payload?.errors?.[match.id];\n let isHydrationRequest = match.clientLoader?.hydrate === true || !match.hasLoader || // If the route has a component but we don't have an element, we need to hit\n // the server loader flow regardless of whether the client loader calls\n // `serverLoader` or not, otherwise we'll have nothing to render.\n match.hasComponent && !match.element;\n invariant(window.__reactRouterRouteModules);\n populateRSCRouteModules(window.__reactRouterRouteModules, match);\n let dataRoute = {\n id: match.id,\n element: match.element,\n errorElement: match.errorElement,\n handle: match.handle,\n hasErrorBoundary: match.hasErrorBoundary,\n hydrateFallbackElement: match.hydrateFallbackElement,\n index: match.index,\n loader: match.clientLoader ? async (args, singleFetch) => {\n try {\n let result = await match.clientLoader({\n ...args,\n serverLoader: () => {\n preventInvalidServerHandlerCall(\n \"loader\",\n match.id,\n match.hasLoader\n );\n if (isHydrationRequest) {\n if (hasInitialData) {\n return initialData;\n }\n if (hasInitialError) {\n throw initialError;\n }\n }\n return callSingleFetch(singleFetch);\n }\n });\n return result;\n } finally {\n isHydrationRequest = false;\n }\n } : (\n // We always make the call in this RSC world since even if we don't\n // have a `loader` we may need to get the `element` implementation\n (_, singleFetch) => callSingleFetch(singleFetch)\n ),\n action: match.clientAction ? (args, singleFetch) => match.clientAction({\n ...args,\n serverAction: async () => {\n preventInvalidServerHandlerCall(\n \"action\",\n match.id,\n match.hasLoader\n );\n return await callSingleFetch(singleFetch);\n }\n }) : match.hasAction ? (_, singleFetch) => callSingleFetch(singleFetch) : () => {\n throw noActionDefinedError(\"action\", match.id);\n },\n path: match.path,\n shouldRevalidate: match.shouldRevalidate,\n // We always have a \"loader\" in this RSC world since even if we don't\n // have a `loader` we may need to get the `element` implementation\n hasLoader: true,\n hasClientLoader: match.clientLoader != null,\n hasAction: match.hasAction,\n hasClientAction: match.clientAction != null,\n hasShouldRevalidate: match.shouldRevalidate != null\n };\n if (typeof dataRoute.loader === \"function\") {\n dataRoute.loader.hydrate = shouldHydrateRouteLoader(\n match.id,\n match.clientLoader,\n match.hasLoader,\n false\n );\n }\n return dataRoute;\n}\nfunction callSingleFetch(singleFetch) {\n invariant(typeof singleFetch === \"function\", \"Invalid singleFetch parameter\");\n return singleFetch();\n}\nfunction preventInvalidServerHandlerCall(type, routeId, hasHandler) {\n if (!hasHandler) {\n let fn = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: \"${routeId}\")`;\n console.error(msg);\n throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg), true);\n }\n}\nvar nextPaths = /* @__PURE__ */ new Set();\nvar discoveredPathsMaxSize = 1e3;\nvar discoveredPaths = /* @__PURE__ */ new Set();\nvar URL_LIMIT = 7680;\nfunction getManifestUrl(paths) {\n if (paths.length === 0) {\n return null;\n }\n if (paths.length === 1) {\n return new URL(`${paths[0]}.manifest`, window.location.origin);\n }\n const globalVar = window;\n let basename = (globalVar.__reactRouterDataRouter.basename ?? \"\").replace(\n /^\\/|\\/$/g,\n \"\"\n );\n let url = new URL(`${basename}/.manifest`, window.location.origin);\n paths.sort().forEach((path) => url.searchParams.append(\"p\", path));\n return url;\n}\nasync function fetchAndApplyManifestPatches(paths, createFromReadableStream, fetchImplementation, signal) {\n let url = getManifestUrl(paths);\n if (url == null) {\n return;\n }\n if (url.toString().length > URL_LIMIT) {\n nextPaths.clear();\n return;\n }\n let response = await fetchImplementation(new Request(url, { signal }));\n if (!response.body || response.status < 200 || response.status >= 300) {\n throw new Error(\"Unable to fetch new route matches from the server\");\n }\n let payload = await createFromReadableStream(response.body, {\n temporaryReferences: void 0\n });\n if (payload.type !== \"manifest\") {\n throw new Error(\"Failed to patch routes\");\n }\n paths.forEach((p) => addToFifoQueue(p, discoveredPaths));\n payload.patches.forEach((p) => {\n window.__reactRouterDataRouter.patchRoutes(\n p.parentId ?? null,\n [createRouteFromServerManifest(p)]\n );\n });\n}\nfunction addToFifoQueue(path, queue) {\n if (queue.size >= discoveredPathsMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n}\nfunction debounce(callback, wait) {\n let timeoutId;\n return (...args) => {\n window.clearTimeout(timeoutId);\n timeoutId = window.setTimeout(() => callback(...args), wait);\n };\n}\n\n// lib/rsc/server.ssr.tsx\nimport * as React5 from \"react\";\n\n// lib/rsc/html-stream/server.ts\nvar encoder2 = new TextEncoder();\nvar trailer = \"</body></html>\";\nfunction injectRSCPayload(rscStream) {\n let decoder = new TextDecoder();\n let resolveFlightDataPromise;\n let flightDataPromise = new Promise(\n (resolve) => resolveFlightDataPromise = resolve\n );\n let startedRSC = false;\n let buffered = [];\n let timeout = null;\n function flushBufferedChunks(controller) {\n for (let chunk of buffered) {\n let buf = decoder.decode(chunk, { stream: true });\n if (buf.endsWith(trailer)) {\n buf = buf.slice(0, -trailer.length);\n }\n controller.enqueue(encoder2.encode(buf));\n }\n buffered.length = 0;\n timeout = null;\n }\n return new TransformStream({\n transform(chunk, controller) {\n buffered.push(chunk);\n if (timeout) {\n return;\n }\n timeout = setTimeout(async () => {\n flushBufferedChunks(controller);\n if (!startedRSC) {\n startedRSC = true;\n writeRSCStream(rscStream, controller).catch((err) => controller.error(err)).then(resolveFlightDataPromise);\n }\n }, 0);\n },\n async flush(controller) {\n await flightDataPromise;\n if (timeout) {\n clearTimeout(timeout);\n flushBufferedChunks(controller);\n }\n controller.enqueue(encoder2.encode(\"</body></html>\"));\n }\n });\n}\nasync function writeRSCStream(rscStream, controller) {\n let decoder = new TextDecoder(\"utf-8\", { fatal: true });\n const reader = rscStream.getReader();\n try {\n let read;\n while ((read = await reader.read()) && !read.done) {\n const chunk = read.value;\n try {\n writeChunk(\n JSON.stringify(decoder.decode(chunk, { stream: true })),\n controller\n );\n } catch (err) {\n let base64 = JSON.stringify(btoa(String.fromCodePoint(...chunk)));\n writeChunk(\n `Uint8Array.from(atob(${base64}), m => m.codePointAt(0))`,\n controller\n );\n }\n }\n } finally {\n reader.releaseLock();\n }\n let remaining = decoder.decode();\n if (remaining.length) {\n writeChunk(JSON.stringify(remaining), controller);\n }\n}\nfunction writeChunk(chunk, controller) {\n controller.enqueue(\n encoder2.encode(\n `<script>${escapeScript(\n `(self.__FLIGHT_DATA||=[]).push(${chunk})`\n )}</script>`\n )\n );\n}\nfunction escapeScript(script) {\n return script.replace(/<!--/g, \"<\\\\!--\").replace(/<\\/(script)/gi, \"</\\\\$1\");\n}\n\n// lib/rsc/server.ssr.tsx\nvar REACT_USE = \"use\";\nvar useImpl = React5[REACT_USE];\nfunction useSafe(promise) {\n if (useImpl) {\n return useImpl(promise);\n }\n throw new Error(\"React Router v7 requires React 19+ for RSC features.\");\n}\nasync function routeRSCServerRequest({\n request,\n fetchServer,\n createFromReadableStream,\n renderHTML,\n hydrate = true\n}) {\n const url = new URL(request.url);\n const isDataRequest = isReactServerRequest(url);\n const respondWithRSCPayload = isDataRequest || isManifestRequest(url) || request.headers.has(\"rsc-action-id\");\n const serverResponse = await fetchServer(request);\n if (respondWithRSCPayload || serverResponse.headers.get(\"React-Router-Resource\") === \"true\") {\n return serverResponse;\n }\n if (!serverResponse.body) {\n throw new Error(\"Missing body in server response\");\n }\n let serverResponseB = null;\n if (hydrate) {\n serverResponseB = serverResponse.clone();\n }\n const body = serverResponse.body;\n let payloadPromise;\n const getPayload = async () => {\n if (payloadPromise) return payloadPromise;\n payloadPromise = createFromReadableStream(body);\n return payloadPromise;\n };\n try {\n const payload = await getPayload();\n if (serverResponse.status === SINGLE_FETCH_REDIRECT_STATUS && payload.type === \"redirect\") {\n const headers2 = new Headers(serverResponse.headers);\n headers2.delete(\"Content-Encoding\");\n headers2.delete(\"Content-Length\");\n headers2.delete(\"Content-Type\");\n headers2.delete(\"x-remix-response\");\n headers2.set(\"Location\", payload.location);\n return new Response(serverResponseB?.body || \"\", {\n headers: headers2,\n status: payload.status,\n statusText: serverResponse.statusText\n });\n }\n const html = await renderHTML(getPayload);\n const headers = new Headers(serverResponse.headers);\n headers.set(\"Content-Type\", \"text/html\");\n if (!hydrate) {\n return new Response(html, {\n status: serverResponse.status,\n headers\n });\n }\n if (!serverResponseB?.body) {\n throw new Error(\"Failed to clone server response\");\n }\n const body2 = html.pipeThrough(injectRSCPayload(serverResponseB.body));\n return new Response(body2, {\n status: serverResponse.status,\n headers\n });\n } catch (reason) {\n if (reason instanceof Response) {\n return reason;\n }\n throw reason;\n }\n}\nfunction RSCStaticRouter({ getPayload }) {\n const payload = useSafe(getPayload());\n if (payload.type === \"redirect\") {\n throw new Response(null, {\n status: payload.status,\n headers: {\n Location: payload.location\n }\n });\n }\n if (payload.type !== \"render\") return null;\n let patchedLoaderData = { ...payload.loaderData };\n for (const match of payload.matches) {\n if (shouldHydrateRouteLoader(\n match.id,\n match.clientLoader,\n match.hasLoader,\n false\n ) && (match.hydrateFallbackElement || !match.hasLoader)) {\n delete patchedLoaderData[match.id];\n }\n }\n const context = {\n actionData: payload.actionData,\n actionHeaders: {},\n basename: payload.basename,\n errors: payload.errors,\n loaderData: patchedLoaderData,\n loaderHeaders: {},\n location: payload.location,\n statusCode: 200,\n matches: payload.matches.map((match) => ({\n params: match.params,\n pathname: match.pathname,\n pathnameBase: match.pathnameBase,\n route: {\n id: match.id,\n action: match.hasAction || !!match.clientAction,\n handle: match.handle,\n hasErrorBoundary: match.hasErrorBoundary,\n loader: match.hasLoader || !!match.clientLoader,\n index: match.index,\n path: match.path,\n shouldRevalidate: match.shouldRevalidate\n }\n }))\n };\n const router = createStaticRouter(\n payload.matches.reduceRight((previous, match) => {\n const route = {\n id: match.id,\n action: match.hasAction || !!match.clientAction,\n element: match.element,\n errorElement: match.errorElement,\n handle: match.handle,\n hasErrorBoundary: !!match.errorElement,\n hydrateFallbackElement: match.hydrateFallbackElement,\n index: match.index,\n loader: match.hasLoader || !!match.clientLoader,\n path: match.path,\n shouldRevalidate: match.shouldRevalidate\n };\n if (previous.length > 0) {\n route.children = previous;\n }\n return [route];\n }, []),\n context\n );\n const frameworkContext = {\n future: {\n // These flags have no runtime impact so can always be false. If we add\n // flags that drive runtime behavior they'll need to be proxied through.\n unstable_middleware: false,\n unstable_subResourceIntegrity: false\n },\n isSpaMode: false,\n ssr: true,\n criticalCss: \"\",\n manifest: {\n routes: {},\n version: \"1\",\n url: \"\",\n entry: {\n module: \"\",\n imports: []\n }\n },\n routeDiscovery: { mode: \"lazy\", manifestPath: \"/__manifest\" },\n routeModules: createRSCRouteModules(payload)\n };\n return /* @__PURE__ */ React5.createElement(RSCRouterContext.Provider, { value: true }, /* @__PURE__ */ React5.createElement(RSCRouterGlobalErrorBoundary, { location: payload.location }, /* @__PURE__ */ React5.createElement(FrameworkContext.Provider, { value: frameworkContext }, /* @__PURE__ */ React5.createElement(\n StaticRouterProvider,\n {\n context,\n router,\n hydrate: false,\n nonce: payload.nonce\n }\n ))));\n}\nfunction isReactServerRequest(url) {\n return url.pathname.endsWith(\".rsc\");\n}\nfunction isManifestRequest(url) {\n return url.pathname.endsWith(\".manifest\");\n}\n\n// lib/rsc/html-stream/browser.ts\nfunction getRSCStream() {\n let encoder3 = new TextEncoder();\n let streamController = null;\n let rscStream = new ReadableStream({\n start(controller) {\n if (typeof window === \"undefined\") {\n return;\n }\n let handleChunk = (chunk) => {\n if (typeof chunk === \"string\") {\n controller.enqueue(encoder3.encode(chunk));\n } else {\n controller.enqueue(chunk);\n }\n };\n window.__FLIGHT_DATA || (window.__FLIGHT_DATA = []);\n window.__FLIGHT_DATA.forEach(handleChunk);\n window.__FLIGHT_DATA.push = (chunk) => {\n handleChunk(chunk);\n return 0;\n };\n streamController = controller;\n }\n });\n if (typeof document !== \"undefined\" && document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n streamController?.close();\n });\n } else {\n streamController?.close();\n }\n return rscStream;\n}\n\n// lib/dom/ssr/errors.ts\nfunction deserializeErrors(errors) {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized = {};\n for (let [key, val] of entries) {\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n let error = new ErrorConstructor(val.message);\n error.stack = val.stack;\n serialized[key] = error;\n } catch (e) {\n }\n }\n }\n if (serialized[key] == null) {\n let error = new Error(val.message);\n error.stack = val.stack;\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\nexport {\n ServerRouter,\n createRoutesStub,\n createCookie,\n isCookie,\n ServerMode,\n setDevServerHooks,\n createRequestHandler,\n createSession,\n isSession,\n createSessionStorage,\n createCookieSessionStorage,\n createMemorySessionStorage,\n href,\n getHydrationData,\n RSCDefaultRootErrorBoundary,\n createCallServer,\n RSCHydratedRouter,\n routeRSCServerRequest,\n RSCStaticRouter,\n getRSCStream,\n deserializeErrors\n};\n"],"names":["dist","parse","serialize","cookieNameRegExp","cookieValueRegExp","domainValueRegExp","pathValueRegExp","__toString","NullObject","C","str","options","obj","len","dec","decode","index","eqIdx","colonIdx","endIdx","keyStartIdx","startIndex","keyEndIdx","endIndex","key","valStartIdx","valEndIdx","value","max","code","min","name","val","enc","isDate","defaultParseOptions","isNonEmptyString","parseString","setCookieValue","parts","nameValuePairStr","parsed","parseNameValuePair","e","cookie","part","sides","nameValueArr","input","sch","cookies","splitCookiesString","cookiesString","cookiesStrings","pos","start","ch","lastComma","nextStart","cookiesSeparatorFound","skipWhitespace","notSpecialChar","setCookieModule","ServerRouter","context","url","nonce","manifest","routeModules","criticalCss","serverHandoffString","routes","createServerRoutes","match","routeId","route","manifestRoute","shouldHydrateRouteLoader","router","createStaticRouter","React","FrameworkContext","RemixErrorBoundary","StaticRouterProvider","StreamTransfer","createRoutesStub","_context","initialEntries","initialIndex","hydrationData","future","routerRef","React2","frameworkContextRef","patched","processRoutes","convertRoutesToDataRoutes","r","unstable_RouterContextProvider","createMemoryRouter","RouterProvider","parentId","newRoute","withComponentProps","withHydrateFallbackProps","withErrorBoundaryProps","args","entryRoute","Outlet","encoder","sign","secret","data2","createKey","signature","hash","unsign","byteStringToUint8Array","usages","byteString","array","i","createCookie","cookieOptions","secrets","warnOnceAboutExpiresCookie","cookieHeader","parseOptions","decodeCookieValue","serializeOptions","encodeCookieValue","isCookie","object","encoded","encodeData","unsignedValue","decodeData","myUnescape","myEscape","result","chr","hex","length","expires","warnOnce","createEntryRouteModules","memo","ServerMode","ServerMode2","isServerMode","sanitizeError","error","serverMode","sanitized","sanitizeErrors","errors","acc","serializeError","serializeErrors","entries","serialized","isRouteErrorResponse","matchServerRoutes","pathname","basename","matches","matchRoutes","callRouteHandler","handler","stripRoutesParam","stripIndexParam2","isDataWithResponseInit","isRedirectStatusCode","request","indexValues","indexValuesToKeep","indexValue","toKeep","init","invariant2","message","globalDevServerHooksKey","setDevServerHooks","devServerHooks","getDevServerHooks","getBuildTimeHeader","headerName","groupRoutesByParentId","createRoutes","routesByParentId","createStaticHandlerDataRoutes","commonRoute","preRenderedData","uint8array","stream","controller","decodeViaTurboStream","SingleFetchRedirectSymbol","redirectDocument","replace","redirect","ESCAPE_LOOKUP","ESCAPE_REGEX","escapeHtml","html","createServerHandoffString","serverHandoff","getDocumentHeaders","build","getDocumentHeadersImpl","m","getRouteHeadersFn","_defaultHeaders","boundaryIdx","errorHeaders","actionHeaders","actionData","loaderHeaders","loaderData","id","defaultHeaders","parentHeaders","idx","includeErrorHeaders","includeErrorCookies","headersFn","headers2","prependCookies","headers","childHeaders","parentSetCookieString","childCookies","SERVER_NO_BODY_STATUS_CODES","NO_BODY_STATUS_CODES","singleFetchAction","staticHandler","handlerUrl","loadContext","handleError","handlerRequest","query","innerResult","handleQueryResult","handleQueryError","isResponse","staticContextToResponse","generateSingleFetchResponse","err","singleFetchResult","singleFetchLoaders","routesParam","loadRouteIds","results","loadedMatches","status","resultHeaders","encodeViaTurboStream","generateSingleFetchRedirectResponse","redirectResponse","redirect2","getSingleFetchRedirect","SINGLE_FETCH_REDIRECT_STATUS","stripBasename","requestSignal","streamTimeout","timeoutId","encode","stack","ErrorResponseImpl","data3","statusText","derive","mode","dataRoutes","createStaticHandler","errorHandler","createRequestHandler","_build","initialContext","derived","params","returnLastResortErrorResponse","normalizedBasename","normalizedPath","isSpaMode","decodedPath","strippedPath","manifestUrl","getManifestPath","handleManifestRequest","response","singleFetchMatches","handleSingleFetchRequest","isRedirectResponse","handleResourceRequest","handleDocumentRequest","patches","paths","path","segments","_","partialPath","renderHtml","isSpaMode2","state","baseServerHandoff","entryContext","handleDocumentRequestFunction","errorForSecondRender","unwrapResponse","getStaticContextFromError","state2","error2","queryRoute","handleQueryRouteResult","handleQueryRouteError","errorResponseToJson","newError","errorResponse","contentType","flash","createSession","initialData","map","flashName","isSession","createSessionStorage","cookieArg","createData","readData","updateData","deleteData","warnOnceAboutSigningSessionCookie","session","createCookieSessionStorage","serializedCookie","_session","createMemorySessionStorage","href","segment","param","getHydrationData","getRouteInfo","location2","initialMatches","routeInfo","RSCRouterGlobalErrorBoundary","React3","props","RSCDefaultRootErrorBoundaryImpl","ErrorWrapper","renderAppShell","title","children","heyDeveloper","errorInstance","errorString","RSCDefaultRootErrorBoundary","hasRootLayout","useRouteError","createRSCRouteModules","payload","populateRSCRouteModules","noopComponent","createCallServer","createFromReadableStream","createTemporaryReferenceSet","encodeReply","fetchImplementation","globalVar","landedActionId","actionId","temporaryReferences","React4","rerender","lastMatch","createRouteFromServerManifest","createRouterFromPayload","unstable_getContext","patch","invariant","previous","childrenToPatch","createRouter","createBrowserHistory","signal","discoveredPaths","fetchAndApplyManifestPatches","getRSCSingleFetchDataStrategy","lastLoaderData","routeUpdateByRouteId","oldRoutes","newRoutes","walkRoutes","routes2","routeUpdate","routeModule","hasAction","hasComponent","hasErrorBoundary","hasLoader","updatedRoute","renderedRoutesContext","unstable_createContext","getRouter","ssr","dataStrategy","getSingleFetchDataStrategyImpl","M","getFetchAndDecodeViaRSC","renderedRoutesById","renderedRoutes","rendered","targetRoutes","singleFetchUrl","stripIndexParam","res","createRequestInit","dataKey","isMutationMethod","RSCHydratedRouter","routeDiscovery","setIsHydrated","setLocation","newState","registerElement","el","nextPaths","fetchPatches","debouncedFetchPatches","debounce","frameworkContext","RSCRouterContext","ReactDOM","hasInitialData","hasInitialError","initialError","isHydrationRequest","dataRoute","singleFetch","preventInvalidServerHandlerCall","callSingleFetch","noActionDefinedError","type","hasHandler","msg","discoveredPathsMaxSize","URL_LIMIT","getManifestUrl","p","addToFifoQueue","queue","first","callback","wait","encoder2","trailer","injectRSCPayload","rscStream","decoder","resolveFlightDataPromise","flightDataPromise","resolve","startedRSC","buffered","timeout","flushBufferedChunks","chunk","buf","writeRSCStream","reader","read","writeChunk","base64","remaining","escapeScript","script","REACT_USE","useImpl","React5","useSafe","promise","routeRSCServerRequest","fetchServer","renderHTML","hydrate","respondWithRSCPayload","isReactServerRequest","isManifestRequest","serverResponse","serverResponseB","body","payloadPromise","getPayload","body2","reason","RSCStaticRouter","patchedLoaderData","getRSCStream","encoder3","streamController","handleChunk","deserializeErrors","ErrorConstructor"],"mappings":"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","x_google_ignoreList":[0,1,2]}