vite-plugin-react-server 1.1.16 → 1.1.18

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 (140) hide show
  1. package/README.md +2 -2
  2. package/dist/package.json +5 -3
  3. package/dist/plugin/components/css-collector-elements.d.ts.map +1 -1
  4. package/dist/plugin/components/html.d.ts.map +1 -1
  5. package/dist/plugin/config/autoDiscover/createGlobAutoDiscover.d.ts.map +1 -1
  6. package/dist/plugin/config/autoDiscover/customWorkerFiles.d.ts.map +1 -1
  7. package/dist/plugin/config/autoDiscover/pageAndPropFiles.d.ts.map +1 -1
  8. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.d.ts.map +1 -1
  9. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js +7 -12
  10. package/dist/plugin/config/autoDiscover/resolveAutoDiscover.js.map +1 -1
  11. package/dist/plugin/config/autoDiscover/resolveBuildPages.js +2 -2
  12. package/dist/plugin/config/autoDiscover/resolveBuildPages.js.map +1 -1
  13. package/dist/plugin/config/createModuleID.d.ts +8 -0
  14. package/dist/plugin/config/createModuleID.d.ts.map +1 -0
  15. package/dist/plugin/config/createModuleID.js +33 -0
  16. package/dist/plugin/config/defaults.d.ts +5 -0
  17. package/dist/plugin/config/defaults.d.ts.map +1 -1
  18. package/dist/plugin/config/defaults.js +22 -3
  19. package/dist/plugin/config/defaults.js.map +1 -1
  20. package/dist/plugin/config/extMap.d.ts +1 -1
  21. package/dist/plugin/config/extMap.d.ts.map +1 -1
  22. package/dist/plugin/config/extMap.js +56 -26
  23. package/dist/plugin/config/extMap.js.map +1 -0
  24. package/dist/plugin/config/getCondition.d.ts.map +1 -1
  25. package/dist/plugin/config/getPaths.d.ts.map +1 -1
  26. package/dist/plugin/config/mimeTypes.d.ts.map +1 -1
  27. package/dist/plugin/config/mimeTypes.js +67 -0
  28. package/dist/plugin/config/mimeTypes.js.map +1 -1
  29. package/dist/plugin/config/resolveAutoDiscoverMatcher.d.ts.map +1 -1
  30. package/dist/plugin/config/resolveEnv.d.ts.map +1 -1
  31. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  32. package/dist/plugin/config/resolveOptions.js +24 -8
  33. package/dist/plugin/config/resolveOptions.js.map +1 -1
  34. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  35. package/dist/plugin/config/resolveUserConfig.js +39 -23
  36. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  37. package/dist/plugin/env/plugin.d.ts.map +1 -1
  38. package/dist/plugin/env/plugin.js +35 -2
  39. package/dist/plugin/env.js +37 -3
  40. package/dist/plugin/env.js.map +1 -1
  41. package/dist/plugin/error/toError.js +4 -4
  42. package/dist/plugin/error/toError.js.map +1 -1
  43. package/dist/plugin/helpers/cleanObject.js +2 -2
  44. package/dist/plugin/helpers/cleanObject.js.map +1 -1
  45. package/dist/plugin/helpers/collectManifestCss.js +2 -2
  46. package/dist/plugin/helpers/collectManifestCss.js.map +1 -1
  47. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts +1 -1
  48. package/dist/plugin/helpers/collectViteModuleGraphCss.d.ts.map +1 -1
  49. package/dist/plugin/helpers/collectViteModuleGraphCss.js +3 -1
  50. package/dist/plugin/helpers/collectViteModuleGraphCss.js.map +1 -1
  51. package/dist/plugin/helpers/createCssProps.d.ts +1 -1
  52. package/dist/plugin/helpers/createCssProps.d.ts.map +1 -1
  53. package/dist/plugin/helpers/createCssProps.js +12 -1
  54. package/dist/plugin/helpers/createCssProps.js.map +1 -1
  55. package/dist/plugin/helpers/createEventHandler.d.ts.map +1 -1
  56. package/dist/plugin/helpers/createEventHandler.js +1 -1
  57. package/dist/plugin/helpers/getBundleManifest.js +1 -1
  58. package/dist/plugin/helpers/getRouteFiles.d.ts.map +1 -1
  59. package/dist/plugin/helpers/getRouteFiles.js +2 -2
  60. package/dist/plugin/helpers/getRouteFiles.js.map +1 -1
  61. package/dist/plugin/helpers/inputNormalizer.js +1 -1
  62. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  63. package/dist/plugin/helpers/requestInfo.d.ts +2 -2
  64. package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
  65. package/dist/plugin/helpers/requestInfo.js +10 -9
  66. package/dist/plugin/helpers/requestInfo.js.map +1 -1
  67. package/dist/plugin/helpers/resolvePage.d.ts.map +1 -1
  68. package/dist/plugin/helpers/resolveProps.d.ts.map +1 -1
  69. package/dist/plugin/helpers/serializeUserOptions.d.ts.map +1 -1
  70. package/dist/plugin/helpers/sourceMap.d.ts.map +1 -1
  71. package/dist/plugin/helpers/stashReturnValue.d.ts.map +1 -1
  72. package/dist/plugin/helpers/tryManifest.d.ts +3 -1
  73. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  74. package/dist/plugin/helpers/tryManifest.js +14 -8
  75. package/dist/plugin/helpers/tryManifest.js.map +1 -1
  76. package/dist/plugin/loader/transformModuleIfNeeded.d.ts.map +1 -1
  77. package/dist/plugin/loader/transformModuleIfNeeded.js +1 -2
  78. package/dist/plugin/loader/transformModuleIfNeeded.js.map +1 -1
  79. package/dist/plugin/metrics/formatMetrics.d.ts.map +1 -1
  80. package/dist/plugin/react-client/configureWorkerRequestHandler.d.ts.map +1 -1
  81. package/dist/plugin/react-client/configureWorkerRequestHandler.js +14 -18
  82. package/dist/plugin/react-client/configureWorkerRequestHandler.js.map +1 -1
  83. package/dist/plugin/react-client/createMessageHandlers.d.ts.map +1 -1
  84. package/dist/plugin/react-server/configureReactServer.d.ts.map +1 -1
  85. package/dist/plugin/react-server/configureReactServer.js +0 -12
  86. package/dist/plugin/react-server/configureReactServer.js.map +1 -1
  87. package/dist/plugin/react-static/configurePreviewServer.d.ts.map +1 -1
  88. package/dist/plugin/react-static/configurePreviewServer.js +1 -1
  89. package/dist/plugin/react-static/configurePreviewServer.js.map +1 -1
  90. package/dist/plugin/react-static/plugin.d.ts.map +1 -1
  91. package/dist/plugin/react-static/plugin.js +5 -14
  92. package/dist/plugin/react-static/plugin.js.map +1 -1
  93. package/dist/plugin/react-static/renderPages.js +1 -1
  94. package/dist/plugin/react-static/renderPages.js.map +1 -1
  95. package/dist/plugin/source-map/createMappingsSerializer.d.ts.map +1 -1
  96. package/dist/plugin/transformer/plugin.server.d.ts +24 -0
  97. package/dist/plugin/transformer/plugin.server.d.ts.map +1 -1
  98. package/dist/plugin/transformer/plugin.server.js +18 -15
  99. package/dist/plugin/transformer/plugin.server.js.map +1 -1
  100. package/dist/plugin/types.d.ts +4 -2
  101. package/dist/plugin/types.d.ts.map +1 -1
  102. package/dist/plugin/utils/createCallServer.d.ts.map +1 -1
  103. package/dist/plugin/utils/createCallServer.js +1 -2
  104. package/dist/plugin/utils/createCallServer.js.map +1 -1
  105. package/dist/plugin/utils/envUrls.node.d.ts.map +1 -1
  106. package/dist/plugin/utils/urls.d.ts.map +1 -1
  107. package/dist/plugin/vendor/types.d.ts +2 -0
  108. package/dist/plugin/vendor/types.d.ts.map +1 -0
  109. package/dist/plugin/vendor/types.js +1 -0
  110. package/dist/plugin/worker/createWorker.js +1 -1
  111. package/dist/plugin/worker/createWorker.js.map +1 -1
  112. package/dist/plugin/worker/rsc/state.d.ts +1 -10
  113. package/dist/plugin/worker/rsc/state.d.ts.map +1 -1
  114. package/dist/plugin/worker/rsc/state.js +31 -17
  115. package/dist/plugin/worker/rsc/state.js.map +1 -1
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/package.json +5 -5
  118. package/plugin/config/autoDiscover/resolveAutoDiscover.ts +6 -14
  119. package/plugin/config/createModuleID.ts +51 -0
  120. package/plugin/config/defaults.tsx +5 -0
  121. package/plugin/config/extMap.ts +56 -44
  122. package/plugin/config/mimeTypes.ts +75 -1
  123. package/plugin/config/resolveOptions.ts +44 -24
  124. package/plugin/config/resolveUserConfig.ts +46 -22
  125. package/plugin/env/plugin.ts +39 -3
  126. package/plugin/helpers/collectManifestCss.ts +2 -2
  127. package/plugin/helpers/collectViteModuleGraphCss.ts +3 -0
  128. package/plugin/helpers/createCssProps.tsx +20 -3
  129. package/plugin/helpers/requestInfo.ts +30 -22
  130. package/plugin/helpers/tryManifest.ts +20 -10
  131. package/plugin/loader/transformModuleIfNeeded.ts +1 -4
  132. package/plugin/react-client/configureWorkerRequestHandler.ts +16 -20
  133. package/plugin/react-server/configureReactServer.ts +1 -13
  134. package/plugin/react-static/configurePreviewServer.ts +1 -2
  135. package/plugin/react-static/plugin.ts +20 -27
  136. package/plugin/transformer/plugin.server.ts +22 -15
  137. package/plugin/types.ts +8 -6
  138. package/plugin/utils/createCallServer.ts +1 -2
  139. package/plugin/vendor/types.ts +0 -0
  140. package/plugin/worker/rsc/state.ts +52 -62
@@ -1 +1 @@
1
- {"version":3,"file":"getRouteFiles.js","sources":["../../../plugin/helpers/getRouteFiles.ts"],"sourcesContent":["import type { ResolvedUserOptions } from \"../types.js\";\n\nimport { resolveUrlOption } from \"../config/resolveUrlOption.js\";\nimport type { AutoDiscoveredFiles } from \"../types.js\";\n\ntype GetRouteFilesSuccess = {\n type: \"success\";\n page: string;\n props?: string | undefined;\n};\n\ntype GetRouteFilesError = {\n type: \"error\";\n error: Error;\n};\n\nexport const getRouteFiles = async (\n route: string,\n autoDiscoveredFiles: AutoDiscoveredFiles,\n userOptions: Pick<ResolvedUserOptions, \"Page\" | \"props\" | \"moduleBasePath\">\n): Promise<GetRouteFilesSuccess | GetRouteFilesError> => {\n if (autoDiscoveredFiles.urlMap.has(route)) {\n const { page, props } = autoDiscoveredFiles.urlMap.get(route)!;\n return { type: \"success\", page, props };\n }\n const { type, error, Page } = await resolveUrlOption(\n userOptions,\n \"Page\",\n route\n );\n if(type === \"error\") {\n return { type: \"error\", error };\n }\n if (!userOptions.props) {\n autoDiscoveredFiles.urlMap.set(route, { page: Page, props: undefined });\n return { type: \"success\", page: Page, props: undefined };\n }\n const {\n type: propsType,\n error: propsError,\n props,\n } = await resolveUrlOption(userOptions, \"props\", route);\n\n if (propsType === \"error\") {\n return { type: \"error\", error: propsError };\n }\n autoDiscoveredFiles.urlMap.set(route, { page: Page, props });\n return { type: \"success\", page: Page, props };\n};\n"],"names":["props"],"mappings":";;;;;;;AAgBO,MAAM,aAAgB,GAAA,OAC3B,KACA,EAAA,mBAAA,EACA,WACuD,KAAA;AACvD,EAAA,IAAI,mBAAoB,CAAA,MAAA,CAAO,GAAI,CAAA,KAAK,CAAG,EAAA;AACzC,IAAM,MAAA,EAAE,MAAM,KAAAA,EAAAA,MAAAA,KAAU,mBAAoB,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAC5D,IAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,IAAA,EAAM,OAAAA,MAAM,EAAA;AAAA;AAExC,EAAA,MAAM,EAAE,IAAA,EAAM,KAAO,EAAA,IAAA,KAAS,MAAM,gBAAA;AAAA,IAClC,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,IAAG,SAAS,OAAS,EAAA;AACnB,IAAO,OAAA,EAAE,IAAM,EAAA,OAAA,EAAS,KAAM,EAAA;AAAA;AAEhC,EAAI,IAAA,CAAC,YAAY,KAAO,EAAA;AACtB,IAAoB,mBAAA,CAAA,MAAA,CAAO,IAAI,KAAO,EAAA,EAAE,MAAM,IAAM,EAAA,KAAA,EAAO,WAAW,CAAA;AACtE,IAAA,OAAO,EAAE,IAAM,EAAA,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,OAAO,SAAU,EAAA;AAAA;AAEzD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,UAAA;AAAA,IACP;AAAA,GACE,GAAA,MAAM,gBAAiB,CAAA,WAAA,EAAa,SAAS,KAAK,CAAA;AAEtD,EAAA,IAAI,cAAc,OAAS,EAAA;AACzB,IAAA,OAAO,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA;AAE5C,EAAA,mBAAA,CAAoB,OAAO,GAAI,CAAA,KAAA,EAAO,EAAE,IAAM,EAAA,IAAA,EAAM,OAAO,CAAA;AAC3D,EAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,IAAA,EAAM,MAAM,KAAM,EAAA;AAC9C;;;;"}
1
+ {"version":3,"file":"getRouteFiles.js","sources":["../../../plugin/helpers/getRouteFiles.ts"],"sourcesContent":["import type { ResolvedUserOptions } from \"../types.js\";\n\nimport { resolveUrlOption } from \"../config/resolveUrlOption.js\";\nimport type { AutoDiscoveredFiles } from \"../types.js\";\n\ntype GetRouteFilesSuccess = {\n type: \"success\";\n page: string;\n props?: string | undefined;\n};\n\ntype GetRouteFilesError = {\n type: \"error\";\n error: Error;\n};\n\nexport const getRouteFiles = async (\n route: string,\n autoDiscoveredFiles: AutoDiscoveredFiles,\n userOptions: Pick<ResolvedUserOptions, \"Page\" | \"props\" | \"moduleBasePath\">\n): Promise<GetRouteFilesSuccess | GetRouteFilesError> => {\n if (autoDiscoveredFiles.urlMap.has(route)) {\n const { page, props } = autoDiscoveredFiles.urlMap.get(route)!;\n return { type: \"success\", page, props };\n }\n const { type, error, Page } = await resolveUrlOption(\n userOptions,\n \"Page\",\n route\n );\n if(type === \"error\") {\n return { type: \"error\", error };\n }\n if (!userOptions.props) {\n autoDiscoveredFiles.urlMap.set(route, { page: Page, props: undefined });\n return { type: \"success\", page: Page, props: undefined };\n }\n const {\n type: propsType,\n error: propsError,\n props,\n } = await resolveUrlOption(userOptions, \"props\", route);\n\n if (propsType === \"error\") {\n return { type: \"error\", error: propsError };\n }\n autoDiscoveredFiles.urlMap.set(route, { page: Page, props });\n return { type: \"success\", page: Page, props };\n};\n"],"names":["props"],"mappings":";;;;;;;AAgBO,MAAM,aAAgB,GAAA,OAC3B,KACA,EAAA,mBAAA,EACA,WACuD,KAAA;AACvD,EAAA,IAAI,mBAAoB,CAAA,MAAA,CAAO,GAAI,CAAA,KAAK,CAAG,EAAA;AACzC,IAAM,MAAA,EAAE,MAAM,KAAAA,EAAAA,MAAAA,KAAU,mBAAoB,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAC5D,IAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,IAAA,EAAM,OAAAA,MAAM,EAAA;AAAA;AAExC,EAAA,MAAM,EAAE,IAAA,EAAM,KAAO,EAAA,IAAA,KAAS,MAAM,gBAAA;AAAA,IAClC,WAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,IAAG,SAAS,OAAS,EAAA;AACnB,IAAO,OAAA,EAAE,IAAM,EAAA,OAAA,EAAS,KAAM,EAAA;AAAA;AAEhC,EAAI,IAAA,CAAC,YAAY,KAAO,EAAA;AACtB,IAAoB,mBAAA,CAAA,MAAA,CAAO,IAAI,KAAO,EAAA,EAAE,MAAM,IAAM,EAAA,KAAA,EAAO,QAAW,CAAA;AACtE,IAAA,OAAO,EAAE,IAAM,EAAA,SAAA,EAAW,IAAM,EAAA,IAAA,EAAM,OAAO,MAAU,EAAA;AAAA;AAEzD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,SAAA;AAAA,IACN,KAAO,EAAA,UAAA;AAAA,IACP;AAAA,GACE,GAAA,MAAM,gBAAiB,CAAA,WAAA,EAAa,SAAS,KAAK,CAAA;AAEtD,EAAA,IAAI,cAAc,OAAS,EAAA;AACzB,IAAA,OAAO,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA;AAE5C,EAAA,mBAAA,CAAoB,OAAO,GAAI,CAAA,KAAA,EAAO,EAAE,IAAM,EAAA,IAAA,EAAM,OAAO,CAAA;AAC3D,EAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,IAAA,EAAM,MAAM,KAAM,EAAA;AAC9C;;;;"}
@@ -124,7 +124,7 @@ const createPathNormalizer = ({
124
124
  function createInputNormalizer({
125
125
  root,
126
126
  moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH,
127
- preserveModulesRoot = undefined,
127
+ preserveModulesRoot = void 0,
128
128
  removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension
129
129
  }) {
130
130
  if (stashedNormalizer) {
@@ -1 +1 @@
1
- {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { normalizePath } from \"vite\";\nimport type {\n CreateInputNormalizerProps,\n InputNormalizer,\n NormalizerInput,\n} from \"../types.js\";\nimport path, { join, sep } from \"path\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nlet stashedNormalizer: InputNormalizer | null = null;\n\nconst resolveExtensionOptions = (\n removeExtension: CreateInputNormalizerProps[\"removeExtension\"]\n) => {\n if (typeof removeExtension === \"boolean\") {\n if (removeExtension) {\n return (path: string) => {\n // if extension is client or server, don't remove it\n if (path.endsWith(\".client\") || path.endsWith(\".server\")) {\n return path;\n }\n const extensionIndex = path.lastIndexOf(\".\");\n\n return extensionIndex !== -1 ? path.slice(0, extensionIndex) : path;\n };\n }\n return (path: string) => path;\n }\n if (typeof removeExtension === \"string\") {\n return (path: string) => path.replace(removeExtension, \"\");\n }\n if (removeExtension instanceof RegExp) {\n return (path: string) =>\n removeExtension.test(path) ? path.replace(removeExtension, \"\") : path;\n }\n if (typeof removeExtension === \"function\") {\n return (path: string) => {\n if (path.endsWith(\".client\") || path.endsWith(\".server\")) {\n return path;\n }\n const extIndex = path.lastIndexOf(\".\");\n if (extIndex !== -1) {\n const extension = path.slice(extIndex);\n if (removeExtension(extension)) {\n return path.slice(0, extIndex);\n }\n }\n return path;\n };\n }\n return (path: string) => path;\n};\n\nconst resolveRootOption = (\n root: CreateInputNormalizerProps[\"root\"],\n preserveModulesRoot: CreateInputNormalizerProps[\"preserveModulesRoot\"]\n) => {\n if (typeof preserveModulesRoot === \"string\" && typeof root === \"string\") {\n const normalizedPreserveModulesRoot = normalizePath(preserveModulesRoot);\n if (root !== \"\" && normalizedPreserveModulesRoot.startsWith(root)) {\n return normalizedPreserveModulesRoot.slice(root.length + 1);\n }\n return \"\";\n } else if (\n typeof preserveModulesRoot === \"string\" &&\n typeof root !== \"string\"\n ) {\n return normalizePath(preserveModulesRoot);\n }\n return \"\";\n};\n\nconst createKeyNormalizer =\n ({\n root: normalizedRoot,\n preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n handleExtension: (path: string) => string;\n moduleBasePath: string | undefined;\n }) =>\n (key: string) => {\n if (key.includes(\"?\")) {\n key = key.split(\"?\")[0];\n }\n\n // Handle virtual modules first\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n const actualKey = virtualPrefix ? key.slice(virtualPrefix[0].length) : key;\n\n let moduleId = normalizePath(actualKey);\n\n // Normalize root path to handle both absolute and relative paths\n const normalizedRootPath = normalizePath(normalizedRoot);\n if (moduleId.startsWith(normalizedRootPath)) {\n moduleId = moduleId.slice(normalizedRootPath.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n moduleId = moduleId.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? moduleId.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : moduleId;\n }\n\n moduleId = handleExtension(moduleId);\n while (moduleId.startsWith(\"/\") || moduleId.startsWith(\".\")) {\n moduleId = moduleId.slice(1);\n }\n while (moduleId.endsWith(\"/\")) {\n moduleId = moduleId.slice(0, -1);\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n moduleId = moduleId.startsWith(preserveModulesRoot)\n ? moduleId.slice(preserveModulesRoot.length + path.sep.length)\n : moduleId;\n }\n\n // Add virtual prefix back\n return virtualPrefix + moduleId;\n };\n\nconst createPathNormalizer =\n ({\n root,\n preserveModulesRoot,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n moduleBasePath: string | undefined;\n }) =>\n (path: string) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n if (path.includes(\"?\")) {\n path = path.split(\"?\")[0];\n }\n let normalPath = normalizePath(path);\n if (normalPath.startsWith(root)) {\n normalPath = normalPath.slice(root.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n normalPath = normalPath.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? normalPath.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : normalPath;\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n normalPath = normalPath.startsWith(preserveModulesRoot)\n ? normalPath.slice(preserveModulesRoot.length)\n : normalPath;\n }\n while (normalPath.endsWith(\"/\")) {\n normalPath = normalPath.slice(0, -1);\n }\n return normalPath;\n };\n/**\n * @description Create a function that normalizes the input\n * @param root - The root of the project\n * @param preserveModulesRoot - The root of the preserve modules\n * @param removeExtension - Whether to remove the extension of the file\n * @returns A function that normalizes the input\n */\nexport function createInputNormalizer({\n root,\n moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH,\n preserveModulesRoot = undefined,\n removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension,\n}: CreateInputNormalizerProps): InputNormalizer {\n if (stashedNormalizer) {\n return stashedNormalizer;\n }\n const relativeRoot = resolveRootOption(root, preserveModulesRoot);\n const handleExtension = resolveExtensionOptions(removeExtension);\n const normalizeEntryKey = createKeyNormalizer({\n root: root,\n preserveModulesRoot: preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n });\n const normalizeEntryPath = createPathNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\n moduleBasePath,\n });\n function normalizeInput(id: NormalizerInput): [string, string] {\n // Normalize both paths to use POSIX separators\n if (Array.isArray(id)) {\n const [key, path] = id;\n if (typeof key === \"string\" && Array.isArray(path) && path.length === 2) {\n const isNumber = !isNaN(Number(key));\n if (isNumber) {\n // ignore it\n return normalizeInput([path[0], path[1]]);\n }\n return normalizeInput([join(key, path[0]), path[1]]);\n }\n if (typeof key !== \"string\" || typeof path !== \"string\") {\n throw new Error(`Invalid input: ${JSON.stringify(id)}`);\n }\n return [normalizeEntryKey(key), normalizeEntryPath(path)];\n } else if (typeof id === \"string\") {\n // Return both the normalized ID and original normalized path\n return [normalizeEntryKey(id), normalizeEntryPath(id)];\n } else if (\n typeof id === \"object\" &&\n id !== null &&\n \"$$typeof\" in id &&\n \"$$id\" in id &&\n typeof id.$$id === \"string\"\n ) {\n const normalized: [string, string] = [\n normalizeEntryKey(id.$$id),\n normalizeEntryPath(id.$$id),\n ];\n return normalized;\n }\n throw new Error(`Invalid input type: ${typeof id}`);\n }\n\n stashedNormalizer = (input: NormalizerInput): [string, string] => {\n const [key, path] = normalizeInput(input);\n let normalizedPath = path.startsWith(moduleBasePath)\n ? path.slice(moduleBasePath.length)\n : path;\n normalizedPath = normalizedPath.startsWith(\"/\")\n ? normalizedPath.slice(1)\n : normalizedPath;\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n // If key has virtual prefix, ensure path has it too\n const finalPath = virtualPrefix\n ? virtualPrefix.length && normalizedPath.startsWith(virtualPrefix[0])\n ? normalizedPath\n : virtualPrefix.length\n ? virtualPrefix[0] + normalizedPath\n : normalizedPath\n : normalizedPath;\n return [key, finalPath];\n };\n return stashedNormalizer;\n}\n"],"names":["path"],"mappings":"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"}
1
+ {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { normalizePath } from \"vite\";\nimport type {\n CreateInputNormalizerProps,\n InputNormalizer,\n NormalizerInput,\n} from \"../types.js\";\nimport path, { join, sep } from \"path\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nlet stashedNormalizer: InputNormalizer | null = null;\n\nconst resolveExtensionOptions = (\n removeExtension: CreateInputNormalizerProps[\"removeExtension\"]\n) => {\n if (typeof removeExtension === \"boolean\") {\n if (removeExtension) {\n return (path: string) => {\n // if extension is client or server, don't remove it\n if (path.endsWith(\".client\") || path.endsWith(\".server\")) {\n return path;\n }\n const extensionIndex = path.lastIndexOf(\".\");\n\n return extensionIndex !== -1 ? path.slice(0, extensionIndex) : path;\n };\n }\n return (path: string) => path;\n }\n if (typeof removeExtension === \"string\") {\n return (path: string) => path.replace(removeExtension, \"\");\n }\n if (removeExtension instanceof RegExp) {\n return (path: string) =>\n removeExtension.test(path) ? path.replace(removeExtension, \"\") : path;\n }\n if (typeof removeExtension === \"function\") {\n return (path: string) => {\n if (path.endsWith(\".client\") || path.endsWith(\".server\")) {\n return path;\n }\n const extIndex = path.lastIndexOf(\".\");\n if (extIndex !== -1) {\n const extension = path.slice(extIndex);\n if (removeExtension(extension)) {\n return path.slice(0, extIndex);\n }\n }\n return path;\n };\n }\n return (path: string) => path;\n};\n\nconst resolveRootOption = (\n root: CreateInputNormalizerProps[\"root\"],\n preserveModulesRoot: CreateInputNormalizerProps[\"preserveModulesRoot\"]\n) => {\n if (typeof preserveModulesRoot === \"string\" && typeof root === \"string\") {\n const normalizedPreserveModulesRoot = normalizePath(preserveModulesRoot);\n if (root !== \"\" && normalizedPreserveModulesRoot.startsWith(root)) {\n return normalizedPreserveModulesRoot.slice(root.length + 1);\n }\n return \"\";\n } else if (\n typeof preserveModulesRoot === \"string\" &&\n typeof root !== \"string\"\n ) {\n return normalizePath(preserveModulesRoot);\n }\n return \"\";\n};\n\nconst createKeyNormalizer =\n ({\n root: normalizedRoot,\n preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n handleExtension: (path: string) => string;\n moduleBasePath: string | undefined;\n }) =>\n (key: string) => {\n if (key.includes(\"?\")) {\n key = key.split(\"?\")[0];\n }\n\n // Handle virtual modules first\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n const actualKey = virtualPrefix ? key.slice(virtualPrefix[0].length) : key;\n\n let moduleId = normalizePath(actualKey);\n\n // Normalize root path to handle both absolute and relative paths\n const normalizedRootPath = normalizePath(normalizedRoot);\n if (moduleId.startsWith(normalizedRootPath)) {\n moduleId = moduleId.slice(normalizedRootPath.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n moduleId = moduleId.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? moduleId.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : moduleId;\n }\n\n moduleId = handleExtension(moduleId);\n while (moduleId.startsWith(\"/\") || moduleId.startsWith(\".\")) {\n moduleId = moduleId.slice(1);\n }\n while (moduleId.endsWith(\"/\")) {\n moduleId = moduleId.slice(0, -1);\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n moduleId = moduleId.startsWith(preserveModulesRoot)\n ? moduleId.slice(preserveModulesRoot.length + path.sep.length)\n : moduleId;\n }\n\n // Add virtual prefix back\n return virtualPrefix + moduleId;\n };\n\nconst createPathNormalizer =\n ({\n root,\n preserveModulesRoot,\n moduleBasePath,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n moduleBasePath: string | undefined;\n }) =>\n (path: string) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n if (path.includes(\"?\")) {\n path = path.split(\"?\")[0];\n }\n let normalPath = normalizePath(path);\n if (normalPath.startsWith(root)) {\n normalPath = normalPath.slice(root.length);\n }\n if (\n typeof moduleBasePath === \"string\" &&\n moduleBasePath !== \"\" &&\n moduleBasePath !== \"/\"\n ) {\n normalPath = normalPath.startsWith(\n moduleBasePath.endsWith(sep) ? moduleBasePath : moduleBasePath + sep\n )\n ? normalPath.slice(\n moduleBasePath.length +\n (moduleBasePath.endsWith(sep) ? 0 : sep.length)\n )\n : normalPath;\n }\n if (typeof preserveModulesRoot === \"string\" && preserveModulesRoot !== \"\") {\n normalPath = normalPath.startsWith(preserveModulesRoot)\n ? normalPath.slice(preserveModulesRoot.length)\n : normalPath;\n }\n while (normalPath.endsWith(\"/\")) {\n normalPath = normalPath.slice(0, -1);\n }\n return normalPath;\n };\n/**\n * @description Create a function that normalizes the input\n * @param root - The root of the project\n * @param preserveModulesRoot - The root of the preserve modules\n * @param removeExtension - Whether to remove the extension of the file\n * @returns A function that normalizes the input\n */\nexport function createInputNormalizer({\n root,\n moduleBasePath = DEFAULT_CONFIG.MODULE_BASE_PATH,\n preserveModulesRoot = undefined,\n removeExtension = DEFAULT_CONFIG.AUTO_DISCOVER.moduleExtension,\n}: CreateInputNormalizerProps): InputNormalizer {\n if (stashedNormalizer) {\n return stashedNormalizer;\n }\n const relativeRoot = resolveRootOption(root, preserveModulesRoot);\n const handleExtension = resolveExtensionOptions(removeExtension);\n const normalizeEntryKey = createKeyNormalizer({\n root: root,\n preserveModulesRoot: preserveModulesRoot,\n handleExtension,\n moduleBasePath,\n });\n const normalizeEntryPath = createPathNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\n moduleBasePath,\n });\n function normalizeInput(id: NormalizerInput): [string, string] {\n // Normalize both paths to use POSIX separators\n if (Array.isArray(id)) {\n const [key, path] = id;\n if (typeof key === \"string\" && Array.isArray(path) && path.length === 2) {\n const isNumber = !isNaN(Number(key));\n if (isNumber) {\n // ignore it\n return normalizeInput([path[0], path[1]]);\n }\n return normalizeInput([join(key, path[0]), path[1]]);\n }\n if (typeof key !== \"string\" || typeof path !== \"string\") {\n throw new Error(`Invalid input: ${JSON.stringify(id)}`);\n }\n return [normalizeEntryKey(key), normalizeEntryPath(path)];\n } else if (typeof id === \"string\") {\n // Return both the normalized ID and original normalized path\n return [normalizeEntryKey(id), normalizeEntryPath(id)];\n } else if (\n typeof id === \"object\" &&\n id !== null &&\n \"$$typeof\" in id &&\n \"$$id\" in id &&\n typeof id.$$id === \"string\"\n ) {\n const normalized: [string, string] = [\n normalizeEntryKey(id.$$id),\n normalizeEntryPath(id.$$id),\n ];\n return normalized;\n }\n throw new Error(`Invalid input type: ${typeof id}`);\n }\n\n stashedNormalizer = (input: NormalizerInput): [string, string] => {\n const [key, path] = normalizeInput(input);\n let normalizedPath = path.startsWith(moduleBasePath)\n ? path.slice(moduleBasePath.length)\n : path;\n normalizedPath = normalizedPath.startsWith(\"/\")\n ? normalizedPath.slice(1)\n : normalizedPath;\n const virtualPrefix = key.match(/^\\0+/) ?? \"\";\n // If key has virtual prefix, ensure path has it too\n const finalPath = virtualPrefix\n ? virtualPrefix.length && normalizedPath.startsWith(virtualPrefix[0])\n ? normalizedPath\n : virtualPrefix.length\n ? virtualPrefix[0] + normalizedPath\n : normalizedPath\n : normalizedPath;\n return [key, finalPath];\n };\n return stashedNormalizer;\n}\n"],"names":["path"],"mappings":"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"}
@@ -33,8 +33,8 @@ export declare function requestInfo(req: Connect.IncomingMessage, userOptions: P
33
33
  hasJsonHeader: boolean | undefined;
34
34
  hasHtmlHeader: boolean | undefined;
35
35
  hasRscHeader: boolean | undefined;
36
- hasServerActionHeaders: boolean | undefined;
37
- isServerActionRequest: boolean | undefined;
36
+ hasServerActionHeaders: boolean;
37
+ isServerActionRequest: boolean;
38
38
  isFormContentType: boolean;
39
39
  isFormActionRequest: boolean;
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAG/D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CACpD,EACD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkKhC"}
1
+ {"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAG/D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,WAAW,EAAE,IAAI,CACf,mBAAmB,EACnB,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CACpD,EACD,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0KhC"}
@@ -24,16 +24,17 @@ function requestInfo(req, userOptions, hostDir, logger = createLogger()) {
24
24
  const hasRscHeader = req.headers.accept?.includes("text/x-component");
25
25
  const hasCssHeader = req.headers.accept?.includes("text/css");
26
26
  const isFolder = !ext;
27
- const isJsRequest = !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);
27
+ const isFormContentType = req.headers["content-type"]?.includes(
28
+ "application/x-www-form-urlencoded"
29
+ ) || !!req.headers["content-type"]?.includes("multipart/form-data");
30
+ const hasServerActionHeaders = req.method === "POST" && (req.headers["sec-fetch-dest"] === "empty" || req.headers["sec-fetch-dest"] === "") && req.headers["sec-fetch-mode"] === "cors";
31
+ const isServerActionRequest = hasServerActionHeaders;
32
+ const isFormActionRequest = !isServerActionRequest && (req.method === "POST" || isFormContentType && req.headers["sec-fetch-dest"] === "document" && req.headers["sec-fetch-mode"] === "navigate");
33
+ const isJsRequest = !isFormActionRequest && !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);
28
34
  const isJsonRequest = isJson || hasJsonHeader && !isJsRequest;
29
- const isHtmlRequest = isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !isRsc && !isJsRequest;
35
+ const isHtmlRequest = isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !isRsc && !isJsRequest && !isFormActionRequest;
30
36
  const isRscRequest = !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);
31
37
  const isCssRequest = !isHtmlRequest && !isRscRequest && !isJsRequest && !isJsonRequest && (isCss || hasCssHeader);
32
- const formContentType = req.headers["content-type"] ?? "";
33
- const isFormContentType = formContentType.includes("application/x-www-form-urlencoded") || formContentType.includes("multipart/form-data");
34
- const isFormActionRequest = isFormContentType && req.headers["sec-fetch-dest"] === "document" && req.headers["sec-fetch-mode"] === "navigate";
35
- const hasServerActionHeaders = isJsonRequest && (req.headers["sec-fetch-dest"] === "empty" || req.headers["sec-fetch-dest"] === "") && req.headers["sec-fetch-mode"] === "cors";
36
- const isServerActionRequest = hasServerActionHeaders;
37
38
  let filePath = join(hostDir, value);
38
39
  let contentType;
39
40
  if (isServerActionRequest) {
@@ -67,7 +68,7 @@ function requestInfo(req, userOptions, hostDir, logger = createLogger()) {
67
68
  } else {
68
69
  const mimeType = MIME_TYPES[ext];
69
70
  if (mimeType) {
70
- contentType = mimeType;
71
+ contentType = mimeType + "; charset=utf-8";
71
72
  } else {
72
73
  contentType = "application/octet-stream";
73
74
  }
@@ -85,7 +86,7 @@ function requestInfo(req, userOptions, hostDir, logger = createLogger()) {
85
86
  } else if (isHtmlRequest) {
86
87
  logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);
87
88
  } else if (isRscRequest) {
88
- logger.info(`[react-dev-server] (rsc.) ${routeWithLeadingSlash}`);
89
+ logger.info(`[react-dev-server] (rsc) ${routeWithLeadingSlash}`);
89
90
  } else if (isCssRequest) {
90
91
  logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);
91
92
  } else if (isJsRequest) {
@@ -1 +1 @@
1
- {"version":3,"file":"requestInfo.js","sources":["../../../plugin/helpers/requestInfo.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\nimport type { ResolvedUserOptions } from \"../types.js\";\nimport { createLogger, type Connect, type Logger } from \"vite\";\nimport { MIME_TYPES } from \"../config/mimeTypes.js\";\n\n/**\n * # Request info\n *\n * Does the initial work to check if the request is for html, rsc, json, js, css, server-action, or something else not handled by this plugin.\n *\n * @param req\n * @param userOptions\n * @param hostDir\n * @returns\n */\nexport function requestInfo(\n req: Connect.IncomingMessage,\n userOptions: Pick<\n ResolvedUserOptions,\n \"normalizer\" | \"build\" | \"autoDiscover\" | \"verbose\"\n >,\n hostDir: string,\n logger: Logger = createLogger()\n) {\n const [, value] = userOptions.normalizer(req.url);\n const dotIndex = value.lastIndexOf(\".\");\n const ext = dotIndex === -1 ? \"\" : value.slice(dotIndex);\n // handle index.html\n const isVendor = userOptions.autoDiscover.vendorPattern(value);\n const isVirtual = userOptions.autoDiscover.virtualPattern(value);\n const isJS = userOptions.autoDiscover.modulePattern(value);\n const isHtml = userOptions.autoDiscover.htmlPattern(value);\n const isCss = userOptions.autoDiscover.cssPattern(value);\n const isJson = userOptions.autoDiscover.jsonPattern(value);\n const isRsc = userOptions.autoDiscover.rscPattern(value);\n const hasJsHeader =\n req.headers[\"sec-fetch-dest\"] === \"script\" ||\n req.headers[\"accept\"]?.includes(\"*/*\") ||\n req.headers[\"accept\"]?.includes(\"text/javascript\");\n const hasJsonHeader = req.headers[\"accept\"]?.includes(\"application/json\");\n const hasHtmlHeader = req.headers.accept?.includes(\"text/html\");\n const hasRscHeader = req.headers.accept?.includes(\"text/x-component\");\n const hasCssHeader = req.headers.accept?.includes(\"text/css\");\n const isFolder = !ext;\n const isJsRequest =\n !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);\n const isJsonRequest = isJson || (hasJsonHeader && !isJsRequest);\n const isHtmlRequest =\n isHtml ||\n hasHtmlHeader ||\n (isFolder && !hasRscHeader && !isRsc && !isJsRequest);\n const isRscRequest =\n !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);\n const isCssRequest =\n !isHtmlRequest &&\n !isRscRequest &&\n !isJsRequest &&\n !isJsonRequest &&\n (isCss || hasCssHeader);\n\n // Form action detection\n const formContentType = req.headers[\"content-type\"] ?? \"\";\n const isFormContentType =\n formContentType.includes(\"application/x-www-form-urlencoded\") ||\n formContentType.includes(\"multipart/form-data\");\n const isFormActionRequest =\n isFormContentType &&\n req.headers[\"sec-fetch-dest\"] === \"document\" &&\n req.headers[\"sec-fetch-mode\"] === \"navigate\";\n\n // Server action detection\n const hasServerActionHeaders =\n isJsonRequest &&\n (req.headers[\"sec-fetch-dest\"] === \"empty\" ||\n req.headers[\"sec-fetch-dest\"] === \"\") &&\n req.headers[\"sec-fetch-mode\"] === \"cors\";\n const isServerActionRequest = hasServerActionHeaders;\n\n let filePath = join(hostDir, value);\n let contentType;\n if (isServerActionRequest) {\n // For server actions, we'll get the actual file path from the request body\n // The route is just a placeholder\n filePath = value;\n contentType = \"application/json; charset=utf-8\";\n } else if (isHtmlRequest) {\n if (!isHtml) {\n filePath = join(hostDir, value, userOptions.build.htmlOutputPath);\n }\n contentType = \"text/html; charset=utf-8\";\n } else if (isRscRequest) {\n if (!isRsc) {\n filePath = join(hostDir, value, userOptions.build.rscOutputPath);\n }\n contentType = \"text/x-component; charset=utf-8\";\n } else if (isCssRequest) {\n if (!isCss) {\n filePath = join(hostDir, value + \".css\");\n }\n contentType = \"text/css; charset=utf-8\";\n } else if (isJsRequest) {\n if (!isJS) {\n filePath = resolve(hostDir, value + \".js\");\n }\n contentType = \"application/javascript; charset=utf-8\";\n } else if (isJsonRequest) {\n if (!isJson) {\n filePath = join(hostDir, value + \".json\");\n }\n contentType = \"application/json; charset=utf-8\";\n } else {\n const mimeType = MIME_TYPES[ext];\n if (mimeType) {\n contentType = mimeType;\n } else {\n contentType = \"application/octet-stream\";\n }\n }\n const route = value\n .replace(userOptions.build.rscOutputPath, \"\")\n .replace(userOptions.build.htmlOutputPath, \"\");\n\n const routeWithoutTrailingSlash =\n route === \"\" || route === \"/\"\n ? \"/\"\n : route.endsWith(\"/\")\n ? route.slice(0, -1)\n : route;\n\n const routeWithLeadingSlash = !routeWithoutTrailingSlash\n ? \"/\"\n : routeWithoutTrailingSlash.startsWith(\"/\")\n ? routeWithoutTrailingSlash\n : `/${routeWithoutTrailingSlash}`;\n\n if (userOptions.verbose) {\n if (isFormActionRequest) {\n logger.info(`[react-dev-server] (form-action) ${routeWithLeadingSlash}`);\n } else if (isServerActionRequest) {\n logger.info(\n `[react-dev-server] (server-action) ${routeWithLeadingSlash}`\n );\n } else if (isHtmlRequest) {\n logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);\n } else if (isRscRequest) {\n logger.info(`[react-dev-server] (rsc.) ${routeWithLeadingSlash}`);\n } else if (isCssRequest) {\n logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);\n } else if (isJsRequest) {\n logger.info(`[react-dev-server] (js) ${routeWithLeadingSlash}`);\n } else if (isJsonRequest) {\n logger.info(`[react-dev-server] (json) ${routeWithLeadingSlash}`);\n } else {\n logger.info(`[react-dev-server] (other) ${routeWithLeadingSlash}`);\n }\n }\n return {\n route: routeWithLeadingSlash,\n ext,\n isHtmlRequest,\n isRscRequest,\n isCssRequest,\n isCss,\n isHtml,\n isRsc,\n isFolder,\n contentType,\n filePath,\n isJS,\n isVendor,\n isVirtual,\n hasJsHeader,\n isJsRequest,\n isJson,\n isJsonRequest,\n hasCssHeader,\n hasJsonHeader,\n hasHtmlHeader,\n hasRscHeader,\n hasServerActionHeaders,\n isServerActionRequest,\n isFormContentType,\n isFormActionRequest,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestInfo.js","sources":["../../../plugin/helpers/requestInfo.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\nimport type { ResolvedUserOptions } from \"../types.js\";\nimport { createLogger, type Connect, type Logger } from \"vite\";\nimport { MIME_TYPES } from \"../config/mimeTypes.js\";\n\n/**\n * # Request info\n *\n * Does the initial work to check if the request is for html, rsc, json, js, css, server-action, or something else not handled by this plugin.\n *\n * @param req\n * @param userOptions\n * @param hostDir\n * @returns\n */\nexport function requestInfo(\n req: Connect.IncomingMessage,\n userOptions: Pick<\n ResolvedUserOptions,\n \"normalizer\" | \"build\" | \"autoDiscover\" | \"verbose\"\n >,\n hostDir: string,\n logger: Logger = createLogger()\n) {\n const [, value] = userOptions.normalizer(req.url);\n const dotIndex = value.lastIndexOf(\".\");\n const ext = dotIndex === -1 ? \"\" : value.slice(dotIndex);\n // handle index.html\n const isVendor = userOptions.autoDiscover.vendorPattern(value);\n const isVirtual = userOptions.autoDiscover.virtualPattern(value);\n const isJS = userOptions.autoDiscover.modulePattern(value);\n const isHtml = userOptions.autoDiscover.htmlPattern(value);\n const isCss = userOptions.autoDiscover.cssPattern(value);\n const isJson = userOptions.autoDiscover.jsonPattern(value);\n const isRsc = userOptions.autoDiscover.rscPattern(value);\n const hasJsHeader =\n req.headers[\"sec-fetch-dest\"] === \"script\" ||\n req.headers[\"accept\"]?.includes(\"*/*\") ||\n req.headers[\"accept\"]?.includes(\"text/javascript\");\n const hasJsonHeader = req.headers[\"accept\"]?.includes(\"application/json\");\n const hasHtmlHeader = req.headers.accept?.includes(\"text/html\");\n const hasRscHeader = req.headers.accept?.includes(\"text/x-component\");\n const hasCssHeader = req.headers.accept?.includes(\"text/css\");\n const isFolder = !ext;\n const isFormContentType =\n req.headers[\"content-type\"]?.includes(\n \"application/x-www-form-urlencoded\"\n ) || !!req.headers[\"content-type\"]?.includes(\"multipart/form-data\");\n \n // Server action detection\n const hasServerActionHeaders =\n req.method === \"POST\" &&\n (req.headers[\"sec-fetch-dest\"] === \"empty\" ||\n req.headers[\"sec-fetch-dest\"] === \"\") &&\n req.headers[\"sec-fetch-mode\"] === \"cors\";\n const isServerActionRequest = hasServerActionHeaders;\n\n const isFormActionRequest = !isServerActionRequest && (\n req.method === \"POST\" ||\n (isFormContentType &&\n req.headers[\"sec-fetch-dest\"] === \"document\" &&\n req.headers[\"sec-fetch-mode\"] === \"navigate\")\n );\n\n const isJsRequest =\n !isFormActionRequest && !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);\n const isJsonRequest = isJson || (hasJsonHeader && !isJsRequest);\n // Form action detection\n \n const isHtmlRequest =\n isHtml ||\n hasHtmlHeader ||\n (isFolder &&\n !hasRscHeader &&\n !isRsc &&\n !isJsRequest &&\n !isFormActionRequest);\n const isRscRequest =\n !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);\n const isCssRequest =\n !isHtmlRequest &&\n !isRscRequest &&\n !isJsRequest &&\n !isJsonRequest &&\n (isCss || hasCssHeader);\n\n let filePath = join(hostDir, value);\n let contentType;\n if (isServerActionRequest) {\n // For server actions, we'll get the actual file path from the request body\n // The route is just a placeholder\n filePath = value;\n contentType = \"application/json; charset=utf-8\";\n } else if (isHtmlRequest) {\n if (!isHtml) {\n filePath = join(hostDir, value, userOptions.build.htmlOutputPath);\n }\n contentType = \"text/html; charset=utf-8\";\n } else if (isRscRequest) {\n if (!isRsc) {\n filePath = join(hostDir, value, userOptions.build.rscOutputPath);\n }\n contentType = \"text/x-component; charset=utf-8\";\n } else if (isCssRequest) {\n if (!isCss) {\n filePath = join(hostDir, value + \".css\");\n }\n contentType = \"text/css; charset=utf-8\";\n } else if (isJsRequest) {\n if (!isJS) {\n filePath = resolve(hostDir, value + \".js\");\n }\n contentType = \"application/javascript; charset=utf-8\";\n } else if (isJsonRequest) {\n if (!isJson) {\n filePath = join(hostDir, value + \".json\");\n }\n contentType = \"application/json; charset=utf-8\";\n } else {\n const mimeType = MIME_TYPES[ext];\n if (mimeType) {\n contentType = mimeType + \"; charset=utf-8\";\n } else {\n contentType = \"application/octet-stream\";\n }\n }\n const route = value\n .replace(userOptions.build.rscOutputPath, \"\")\n .replace(userOptions.build.htmlOutputPath, \"\");\n\n const routeWithoutTrailingSlash =\n route === \"\" || route === \"/\"\n ? \"/\"\n : route.endsWith(\"/\")\n ? route.slice(0, -1)\n : route;\n\n const routeWithLeadingSlash = !routeWithoutTrailingSlash\n ? \"/\"\n : routeWithoutTrailingSlash.startsWith(\"/\")\n ? routeWithoutTrailingSlash\n : `/${routeWithoutTrailingSlash}`;\n\n if (userOptions.verbose) {\n if (isFormActionRequest) {\n logger.info(`[react-dev-server] (form-action) ${routeWithLeadingSlash}`);\n } else if (isServerActionRequest) {\n logger.info(\n `[react-dev-server] (server-action) ${routeWithLeadingSlash}`\n );\n } else if (isHtmlRequest) {\n logger.info(`[react-dev-server] (html) ${routeWithLeadingSlash}`);\n } else if (isRscRequest) {\n logger.info(`[react-dev-server] (rsc) ${routeWithLeadingSlash}`);\n } else if (isCssRequest) {\n logger.info(`[react-dev-server] (css) ${routeWithLeadingSlash}`);\n } else if (isJsRequest) {\n logger.info(`[react-dev-server] (js) ${routeWithLeadingSlash}`);\n } else if (isJsonRequest) {\n logger.info(`[react-dev-server] (json) ${routeWithLeadingSlash}`);\n } else {\n logger.info(`[react-dev-server] (other) ${routeWithLeadingSlash}`);\n }\n }\n return {\n route: routeWithLeadingSlash,\n ext,\n isHtmlRequest,\n isRscRequest,\n isCssRequest,\n isCss,\n isHtml,\n isRsc,\n isFolder,\n contentType,\n filePath,\n isJS,\n isVendor,\n isVirtual,\n hasJsHeader,\n isJsRequest,\n isJson,\n isJsonRequest,\n hasCssHeader,\n hasJsonHeader,\n hasHtmlHeader,\n hasRscHeader,\n hasServerActionHeaders,\n isServerActionRequest,\n isFormContentType,\n isFormActionRequest,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/resolvePage.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,+BAIlD,kBAAkB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAgEzD,CAAC"}
1
+ {"version":3,"file":"resolvePage.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/resolvePage.ts"],"names":[],"mappings":"AAEA,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACtC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,6BAIpD,kBAAkB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAgEzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveProps.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/resolveProps.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAG;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,oCAKnD,mBAAmB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CA+H3D,CAAC"}
1
+ {"version":3,"file":"resolveProps.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/resolveProps.ts"],"names":[],"mappings":"AAEA,KAAK,mBAAmB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,CAAC,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IACvC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,MAAM,CAAC,EAAG;SAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,YAAY,GAAU,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,kCAKrD,mBAAmB,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CA+H3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializeUserOptions.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/serializeUserOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAqGrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAe/C;AAGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAerD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAC9D,MAAM,EAAE,CAAC,EACT,6BAA6B,GAAE,GAAG,CAAC,MAAM,CAAmC,OAY7E;AAGD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,aAAa,CAAC,QAAQ,CAAC,UACjE,CAAC,mCACuB,GAAG,CAAC,MAAM,CAAC,QAa5C,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,gBAAgB,SAAS,SAAS,YAAY,8BACtF,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,uBACzB,mBAAmB,mCACR,GAAG,CAAC,MAAM,CAAC,QA8B5C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,GAAG,OAclD"}
1
+ {"version":3,"file":"serializeUserOptions.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/serializeUserOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1D,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACb,MAAM,aAAa,CAAC;AAqGrB,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAe/C;AAGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAerD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,cAAc,EAC9D,MAAM,EAAE,CAAC,EACT,6BAA6B,GAAE,GAAG,CAAC,MAAM,CAAmC,OAY7E;AAGD,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,aAAa,CAAC,QAAQ,CAAC,EACzE,QAAQ,CAAC,EACT,iCAAgC,GAAG,CAAC,MAAM,CAAqC,QAahF,CAAC;AAGF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,SAAS,SAAS,YAAY,GAAG,YAAY,EAClH,aAAa,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,EAC9C,qBAAqB,mBAAmB,EACxC,iCAAgC,GAAG,CAAC,MAAM,CAAqC,QA8BhF,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,GAAG,OAclD"}
@@ -1 +1 @@
1
- {"version":3,"file":"sourceMap.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/sourceMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBnD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB/C;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CACR,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,KACd,IAAI,QA4CV;AAED,wBAAgB,wBAAwB,oBASrB,MAAM,mBACJ,MAAM,gBACT,MAAM,gBACN,MAAM,kBACJ,MAAM,aACX,MAAM,KAChB,MAAM,CAiCV;AAED,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAUjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAI3E"}
1
+ {"version":3,"file":"sourceMap.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/sourceMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBnD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAyB/C;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CACR,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,KACd,IAAI,QA4CV;AAED,wBAAgB,wBAAwB,KASpC,eAAe,MAAM,EACrB,iBAAiB,MAAM,EACvB,cAAc,MAAM,EACpB,cAAc,MAAM,EACpB,gBAAgB,MAAM,EACtB,WAAW,MAAM,KAChB,MAAM,CAiCV;AAED,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAUjE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAI3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"stashReturnValue.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/stashReturnValue.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,GAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,MACjE,EAAE,KACL,EAYF,CAAC"}
1
+ {"version":3,"file":"stashReturnValue.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/stashReturnValue.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,GAAI,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,EACrE,IAAI,EAAE,KACL,EAYF,CAAC"}
@@ -4,7 +4,7 @@ type TryManifestOptions<SSR extends boolean = false> = {
4
4
  outDir: string;
5
5
  ssrManifest?: SSR;
6
6
  preserveModulesRoot?: string;
7
- manifestPath?: string | undefined;
7
+ manifestPath?: string | boolean | undefined;
8
8
  };
9
9
  export declare function tryManifest<SSR extends boolean>(options: TryManifestOptions<SSR>): Promise<{
10
10
  type: "success";
@@ -14,6 +14,8 @@ export declare function tryManifest<SSR extends boolean>(options: TryManifestOpt
14
14
  type: "error";
15
15
  error: Error;
16
16
  manifest?: never;
17
+ } | {
18
+ type: "skip";
17
19
  }>;
18
20
  export {};
19
21
  //# sourceMappingURL=tryManifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tryManifest.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/tryManifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,KAAK,kBAAkB,CAAC,GAAG,SAAS,OAAO,GAAG,KAAK,IAAI;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,wBAAsB,WAAW,CAAC,GAAG,SAAS,OAAO,EACnD,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAC/B,OAAO,CACN;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC,CAoBL"}
1
+ {"version":3,"file":"tryManifest.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/tryManifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,KAAK,kBAAkB,CAAC,GAAG,SAAS,OAAO,GAAG,KAAK,IAAI;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC7C,CAAC;AAEF,wBAAsB,WAAW,CAAC,GAAG,SAAS,OAAO,EACnD,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAC/B,OAAO,CACN;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC;IACjE,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;CACd,CACJ,CA0BA"}
@@ -7,15 +7,21 @@ import { join, resolve } from 'node:path';
7
7
  import { readFile } from 'node:fs/promises';
8
8
 
9
9
  async function tryManifest(options) {
10
- const localSsrManifestPath = !options.ssrManifest ? undefined : options.manifestPath ? options.manifestPath : join(".vite", "ssr-manifest.json");
11
- const localManifestPath = options.ssrManifest ? undefined : options.manifestPath ? options.manifestPath : join(".vite", "manifest.json");
12
- const manifestPath = resolve(
13
- options.root,
14
- options.outDir,
15
- options.ssrManifest ? localSsrManifestPath : localManifestPath
16
- );
10
+ let path = options.manifestPath;
11
+ if (path === false) {
12
+ return {
13
+ type: "skip"
14
+ };
15
+ }
16
+ if (options.ssrManifest) {
17
+ path = join(".vite", "ssr-manifest.json");
18
+ } else {
19
+ path = join(".vite", "manifest.json");
20
+ }
17
21
  try {
18
- const result = JSON.parse(await readFile(manifestPath, "utf-8"));
22
+ const result = JSON.parse(
23
+ await readFile(resolve(options.root, options.outDir, path), "utf-8")
24
+ );
19
25
  return {
20
26
  type: "success",
21
27
  manifest: result
@@ -1 +1 @@
1
- {"version":3,"file":"tryManifest.js","sources":["../../../plugin/helpers/tryManifest.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\n\nimport type { Manifest } from \"vite\";\nimport { readFile } from \"node:fs/promises\";\n\ntype TryManifestOptions<SSR extends boolean = false> = {\n root: string;\n outDir: string;\n ssrManifest?: SSR;\n preserveModulesRoot?: string;\n manifestPath?: string | undefined;\n};\n\nexport async function tryManifest<SSR extends boolean>(\n options: TryManifestOptions<SSR>\n): Promise<\n | {\n type: \"success\";\n manifest: SSR extends true ? Record<string, string[]> : Manifest;\n error?: never;\n }\n | {\n type: \"error\";\n error: Error;\n manifest?: never;\n }> {\n const localSsrManifestPath = !options.ssrManifest ? undefined : options.manifestPath ? options.manifestPath : join('.vite', 'ssr-manifest.json');\n const localManifestPath = options.ssrManifest ? undefined : options.manifestPath ? options.manifestPath : join('.vite', 'manifest.json');\n const manifestPath = resolve(\n options.root,\n options.outDir,\n options.ssrManifest ? localSsrManifestPath as string : localManifestPath as string\n );\n try {\n const result = JSON.parse(await readFile(manifestPath, \"utf-8\"));\n return {\n type: \"success\",\n manifest: result,\n };\n } catch (e) {\n return {\n type: \"error\",\n error: e as Error,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAaA,eAAsB,YACpB,OAWK,EAAA;AACL,EAAM,MAAA,oBAAA,GAAuB,CAAC,OAAA,CAAQ,WAAc,GAAA,SAAA,GAAY,OAAQ,CAAA,YAAA,GAAe,OAAQ,CAAA,YAAA,GAAe,IAAK,CAAA,OAAA,EAAS,mBAAmB,CAAA;AAC/I,EAAM,MAAA,iBAAA,GAAoB,OAAQ,CAAA,WAAA,GAAc,SAAY,GAAA,OAAA,CAAQ,eAAe,OAAQ,CAAA,YAAA,GAAe,IAAK,CAAA,OAAA,EAAS,eAAe,CAAA;AACvI,EAAA,MAAM,YAAe,GAAA,OAAA;AAAA,IACnB,OAAQ,CAAA,IAAA;AAAA,IACR,OAAQ,CAAA,MAAA;AAAA,IACR,OAAA,CAAQ,cAAc,oBAAiC,GAAA;AAAA,GACzD;AACA,EAAI,IAAA;AACF,IAAA,MAAM,SAAS,IAAK,CAAA,KAAA,CAAM,MAAM,QAAS,CAAA,YAAA,EAAc,OAAO,CAAC,CAAA;AAC/D,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,WACO,CAAG,EAAA;AACV,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"tryManifest.js","sources":["../../../plugin/helpers/tryManifest.ts"],"sourcesContent":["import { join, resolve } from \"node:path\";\n\nimport type { Manifest } from \"vite\";\nimport { readFile } from \"node:fs/promises\";\n\ntype TryManifestOptions<SSR extends boolean = false> = {\n root: string;\n outDir: string;\n ssrManifest?: SSR;\n preserveModulesRoot?: string;\n manifestPath?: string | boolean | undefined;\n};\n\nexport async function tryManifest<SSR extends boolean>(\n options: TryManifestOptions<SSR>\n): Promise<\n | {\n type: \"success\";\n manifest: SSR extends true ? Record<string, string[]> : Manifest;\n error?: never;\n }\n | {\n type: \"error\";\n error: Error;\n manifest?: never;\n }\n | {\n type: \"skip\";\n }\n> {\n let path = options.manifestPath;\n if (path === false) {\n return {\n type: \"skip\",\n };\n }\n if (options.ssrManifest) {\n path = join(\".vite\", \"ssr-manifest.json\");\n } else {\n path = join(\".vite\", \"manifest.json\");\n }\n try {\n const result = JSON.parse(\n await readFile(resolve(options.root, options.outDir, path), \"utf-8\")\n );\n return {\n type: \"success\",\n manifest: result,\n };\n } catch (e) {\n return {\n type: \"error\",\n error: e as Error,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAaA,eAAsB,YACpB,OAeA,EAAA;AACA,EAAA,IAAI,OAAO,OAAQ,CAAA,YAAA;AACnB,EAAA,IAAI,SAAS,KAAO,EAAA;AAClB,IAAO,OAAA;AAAA,MACL,IAAM,EAAA;AAAA,KACR;AAAA;AAEF,EAAA,IAAI,QAAQ,WAAa,EAAA;AACvB,IAAO,IAAA,GAAA,IAAA,CAAK,SAAS,mBAAmB,CAAA;AAAA,GACnC,MAAA;AACL,IAAO,IAAA,GAAA,IAAA,CAAK,SAAS,eAAe,CAAA;AAAA;AAEtC,EAAI,IAAA;AACF,IAAA,MAAM,SAAS,IAAK,CAAA,KAAA;AAAA,MAClB,MAAM,SAAS,OAAQ,CAAA,OAAA,CAAQ,MAAM,OAAQ,CAAA,MAAA,EAAQ,IAAI,CAAA,EAAG,OAAO;AAAA,KACrE;AACA,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,WACO,CAAG,EAAA;AACV,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,KAAO,EAAA;AAAA,KACT;AAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"transformModuleIfNeeded.d.ts","sourceRoot":"","sources":["../../../plugin/loader/transformModuleIfNeeded.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,GAAE,OAAO,GAAG,gBAAgB,GAAG,IAA0E,EACzH,iBAAiB,GAAE,OAAO,GAAG,gBAAgB,GAAG,IAAiE,EACjH,mBAAmB,UAAoC,UAsBxD"}
1
+ {"version":3,"file":"transformModuleIfNeeded.d.ts","sourceRoot":"","sources":["../../../plugin/loader/transformModuleIfNeeded.ts"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,GAAE,OAAO,GAAG,gBAAgB,GAAG,IAA0E,EACzH,iBAAiB,GAAE,OAAO,GAAG,gBAAgB,GAAG,IAAiE,EACjH,mBAAmB,UAAoC,UAmBxD"}
@@ -9,14 +9,13 @@ import { parse } from './parse.js';
9
9
  import { DEFAULT_CONFIG } from '../config/defaults.js';
10
10
 
11
11
  function transformModuleIfNeeded(source, moduleId, isServerFunction = DEFAULT_CONFIG.AUTO_DISCOVER.isServerFunctionCode(source, moduleId), isClientComponent = DEFAULT_CONFIG.AUTO_DISCOVER.isClientComponentCode(source), isServerEnvironment = getCondition() === "react-server") {
12
- const ast = parse(source);
13
12
  if (isServerEnvironment && !isServerFunction && !isClientComponent || !isServerEnvironment && isClientComponent) {
14
13
  return source;
15
14
  }
16
15
  const result = transformModuleWithPreservedFunctions(
17
16
  source,
18
17
  moduleId,
19
- ast,
18
+ parse(source),
20
19
  isServerFunction,
21
20
  isClientComponent
22
21
  );
@@ -1 +1 @@
1
- {"version":3,"file":"transformModuleIfNeeded.js","sources":["../../../plugin/loader/transformModuleIfNeeded.ts"],"sourcesContent":["import { getCondition } from \"../config/getCondition.js\";\nimport { transformModuleWithPreservedFunctions } from \"./transformModuleWithPreservedFunctions.js\";\nimport { parse } from \"./parse.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nexport function transformModuleIfNeeded(\n source: string,\n moduleId: string,\n isServerFunction: boolean | RegExpMatchArray | null = DEFAULT_CONFIG.AUTO_DISCOVER.isServerFunctionCode(source, moduleId),\n isClientComponent: boolean | RegExpMatchArray | null = DEFAULT_CONFIG.AUTO_DISCOVER.isClientComponentCode(source),\n isServerEnvironment = getCondition() === \"react-server\"\n) {\n // Parse source and handle source maps\n const ast = parse(source); \n\n // Handle environment-specific cases\n if (\n (isServerEnvironment && !isServerFunction && !isClientComponent) ||\n (!isServerEnvironment && isClientComponent)\n ) {\n return source\n }\n\n const result = transformModuleWithPreservedFunctions(\n source,\n moduleId,\n ast,\n isServerFunction,\n isClientComponent\n );\n\n return result\n}\n"],"names":[],"mappings":";;;;;;;;;;AAKO,SAAS,wBACd,MACA,EAAA,QAAA,EACA,mBAAsD,cAAe,CAAA,aAAA,CAAc,qBAAqB,MAAQ,EAAA,QAAQ,GACxH,iBAAuD,GAAA,cAAA,CAAe,cAAc,qBAAsB,CAAA,MAAM,GAChH,mBAAsB,GAAA,YAAA,OAAmB,cACzC,EAAA;AAEA,EAAM,MAAA,GAAA,GAAM,MAAM,MAAM,CAAA;AAGxB,EAAA,IACG,uBAAuB,CAAC,gBAAA,IAAoB,CAAC,iBAC7C,IAAA,CAAC,uBAAuB,iBACzB,EAAA;AACA,IAAO,OAAA,MAAA;AAAA;AAGT,EAAA,MAAM,MAAS,GAAA,qCAAA;AAAA,IACb,MAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAO,OAAA,MAAA;AACT;;;;"}
1
+ {"version":3,"file":"transformModuleIfNeeded.js","sources":["../../../plugin/loader/transformModuleIfNeeded.ts"],"sourcesContent":["import { getCondition } from \"../config/getCondition.js\";\nimport { transformModuleWithPreservedFunctions } from \"./transformModuleWithPreservedFunctions.js\";\nimport { parse } from \"./parse.js\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\nexport function transformModuleIfNeeded(\n source: string,\n moduleId: string,\n isServerFunction: boolean | RegExpMatchArray | null = DEFAULT_CONFIG.AUTO_DISCOVER.isServerFunctionCode(source, moduleId),\n isClientComponent: boolean | RegExpMatchArray | null = DEFAULT_CONFIG.AUTO_DISCOVER.isClientComponentCode(source),\n isServerEnvironment = getCondition() === \"react-server\"\n) {\n // Handle environment-specific cases\n if (\n (isServerEnvironment && !isServerFunction && !isClientComponent) ||\n (!isServerEnvironment && isClientComponent)\n ) {\n return source\n }\n\n const result = transformModuleWithPreservedFunctions(\n source,\n moduleId,\n parse(source),\n isServerFunction,\n isClientComponent\n );\n\n return result\n}\n"],"names":[],"mappings":";;;;;;;;;;AAKO,SAAS,wBACd,MACA,EAAA,QAAA,EACA,mBAAsD,cAAe,CAAA,aAAA,CAAc,qBAAqB,MAAQ,EAAA,QAAQ,GACxH,iBAAuD,GAAA,cAAA,CAAe,cAAc,qBAAsB,CAAA,MAAM,GAChH,mBAAsB,GAAA,YAAA,OAAmB,cACzC,EAAA;AAEA,EAAA,IACG,uBAAuB,CAAC,gBAAA,IAAoB,CAAC,iBAC7C,IAAA,CAAC,uBAAuB,iBACzB,EAAA;AACA,IAAO,OAAA,MAAA;AAAA;AAGT,EAAA,MAAM,MAAS,GAAA,qCAAA;AAAA,IACb,MAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAM,MAAM,CAAA;AAAA,IACZ,gBAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAO,OAAA,MAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatMetrics.d.ts","sourceRoot":"","sources":["../../../plugin/metrics/formatMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA+B5D;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAa,EACb,QAAgB,EAChB,IAAmB,EACnB,IAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjC,aACkB,aAAa,UAe/B"}
1
+ {"version":3,"file":"formatMetrics.d.ts","sourceRoot":"","sources":["../../../plugin/metrics/formatMetrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA+B5D;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAa,EACb,QAAgB,EAChB,IAAmB,EACnB,IAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACjC,IACS,SAAS,aAAa,UAe/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"configureWorkerRequestHandler.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/configureWorkerRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EAEb,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAYlE;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,MAAM,EACN,mBAAmB,EACnB,WAAW,EAAE,YAAY,EACzB,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C,iBAwRA"}
1
+ {"version":3,"file":"configureWorkerRequestHandler.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/configureWorkerRequestHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,aAAa,EAEb,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAe,MAAM,qBAAqB,CAAC;AAalE;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,MAAM,EACN,mBAAmB,EACnB,WAAW,EAAE,YAAY,EACzB,UAAU,EACV,SAAS,GACV,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC9C,iBAmRA"}
@@ -11,6 +11,7 @@ import { restartWorker } from './restartWorker.js';
11
11
  import { handleWorkerRscStream } from './handleWorkerRscStream.js';
12
12
  import { getRouteFiles } from '../helpers/getRouteFiles.js';
13
13
  import { PassThrough, Readable } from 'node:stream';
14
+ import { logError, toError } from '../error/toError.js';
14
15
 
15
16
  async function configureWorkerRequestHandler({
16
17
  server,
@@ -105,33 +106,28 @@ async function configureWorkerRequestHandler({
105
106
  } else if (message.type === "ERROR") {
106
107
  passThrough.end();
107
108
  currentWorker.removeListener("message", messageHandler);
108
- server.config.logger.error(message.error.message + (message.error.stack ?? ""), {
109
- error: message.error
110
- });
109
+ logError(message.error, server.config.logger);
111
110
  }
112
111
  };
113
112
  currentWorker.on("message", messageHandler);
114
113
  passThrough.on("error", (error) => {
115
- server.config.logger.error(error.message + (error.stack ?? ""), {
116
- error
117
- });
114
+ logError(error, server.config.logger);
118
115
  res.end();
119
116
  });
120
117
  return;
121
118
  } catch (error) {
122
- if (error instanceof Error) {
123
- server.config.logger.error(error.message + (error.stack ?? ""), {
124
- error
125
- });
126
- }
119
+ const err = toError(error);
120
+ logError(err, server.config.logger);
127
121
  res.statusCode = 500;
128
- res.end(JSON.stringify({
129
- type: "server-action-response",
130
- returnValue: {
131
- success: false,
132
- error: error instanceof Error ? error.message : String(error)
133
- }
134
- }));
122
+ res.end(
123
+ JSON.stringify({
124
+ type: "server-action-response",
125
+ returnValue: {
126
+ success: false,
127
+ error: err.message
128
+ }
129
+ })
130
+ );
135
131
  return;
136
132
  }
137
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configureWorkerRequestHandler.js","sources":["../../../plugin/react-client/configureWorkerRequestHandler.ts"],"sourcesContent":["import type { ViteDevServer } from \"vite\";\nimport type {\n AutoDiscoveredFiles,\n InlineCssOpt,\n PagePropOpt,\n RenderMetrics,\n RequestHandler,\n ResolvedUserOptions,\n StreamMetrics,\n} from \"../types.js\";\nimport { MessageChannel, type Worker } from \"node:worker_threads\";\nimport { serializedOptions } from \"../helpers/serializeUserOptions.js\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\nimport { performance } from \"node:perf_hooks\";\nimport { restartWorker } from \"./restartWorker.js\";\nimport { handleWorkerRscStream } from \"./handleWorkerRscStream.js\";\nimport { getRouteFiles } from \"../helpers/getRouteFiles.js\";\nimport type { RscWorkerInputMessage } from \"../worker/types.js\";\nimport { Readable } from \"node:stream\";\nimport type { ReadableStream } from \"node:stream/web\";\nimport { PassThrough } from \"node:stream\";\n\n/**\n * Configures the worker request handler.\n * @param server - The Vite dev server\n * @param autoDiscoveredFiles - The auto discovered files\n * @param userOptions - The user options\n */\nexport async function configureWorkerRequestHandler<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n server,\n autoDiscoveredFiles,\n userOptions: _userOptions,\n hmrChannel,\n onMetrics,\n}: {\n server: ViteDevServer;\n autoDiscoveredFiles: AutoDiscoveredFiles;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n hmrChannel: MessageChannel;\n onMetrics?: (metrics: RenderMetrics) => void;\n}) {\n let {\n // remove these\n projectRoot: _projectRoot,\n moduleBaseURL: _moduleBaseURL,\n ...handlerUserOptions\n } = _userOptions;\n const handlerOptions = Object.assign({}, handlerUserOptions, {\n moduleBaseURL: server.config.base,\n moduleBasePath: server.config.base,\n projectRoot: server.config.root,\n });\n\n // Start the worker\n let currentWorker: Worker | null = null;\n const logger = server.config.logger;\n\n // Handle server restarts\n server.ws.on(\"restart\", async () => {\n logger.info(\"[react-client] Server restarting, shutting down worker...\");\n if (currentWorker) {\n currentWorker.postMessage({\n type: \"SHUTDOWN\",\n id: \"*\",\n } satisfies RscWorkerInputMessage);\n await new Promise((resolve, reject) => {\n currentWorker?.on(\"message\", (message) => {\n if (message.type === \"SHUTDOWN_COMPLETE\") {\n resolve(true);\n } else {\n reject(\"Did not receive SHUTDOWN_COMPLETE\");\n }\n });\n });\n currentWorker.removeAllListeners();\n currentWorker = null;\n }\n });\n\n // Create the request handler\n const handler: RequestHandler = async (req, res, next) => {\n if (!req.url) return next();\n\n const info = requestInfo(req, handlerOptions, \"\", server.config.logger);\n\n // Serialize user options for worker\n const serializedUserOptions = serializedOptions<T, InlineCSS>(\n handlerOptions,\n autoDiscoveredFiles\n );\n\n // Handle server action requests\n if (info.isServerActionRequest) {\n try {\n // Read request body\n const chunks: Buffer[] = [];\n for await (const chunk of req) {\n chunks.push(chunk);\n }\n const body = Buffer.concat(chunks).toString();\n const parsed = JSON.parse(body);\n \n // Get action ID and args from the request body\n let id: string;\n let args: unknown[];\n if (Array.isArray(parsed)) {\n // Format 1: Direct args array\n args = parsed;\n id = req.url?.split(\"?\")[0] ?? \"\";\n } else if (parsed && typeof parsed === \"object\" && \"id\" in parsed) {\n // Format 2: Object with id and args\n id = parsed.id;\n args = parsed.args ?? [];\n } else {\n throw new Error(\"Invalid server action request format\");\n }\n\n // Set up response headers for streaming\n res.setHeader(\"Content-Type\", \"text/x-component; charset=utf-8\");\n res.setHeader(\"Transfer-Encoding\", \"chunked\");\n res.setHeader(\"Connection\", \"keep-alive\");\n\n if (!currentWorker) {\n currentWorker = await restartWorker({\n server,\n autoDiscoveredFiles,\n userOptions: serializedUserOptions,\n hmrChannel,\n });\n }\n\n // Send server action request to worker\n currentWorker!.postMessage({\n type: \"SERVER_ACTION\",\n id,\n args,\n } satisfies RscWorkerInputMessage);\n\n // Create a pass-through stream for the response\n const passThrough = new PassThrough();\n passThrough.pipe(res);\n\n // Handle worker messages\n const messageHandler = (message: any) => {\n if (message.type === \"RSC_CHUNK\") {\n passThrough.write(message.chunk);\n } else if (message.type === \"RSC_END\") {\n passThrough.end();\n currentWorker!.removeListener(\"message\", messageHandler);\n } else if (message.type === \"ERROR\") {\n passThrough.end();\n currentWorker!.removeListener(\"message\", messageHandler);\n server.config.logger.error(message.error.message + (message.error.stack ?? \"\"), {\n error: message.error,\n });\n }\n };\n\n currentWorker!.on(\"message\", messageHandler);\n\n // Handle errors\n passThrough.on(\"error\", (error) => {\n server.config.logger.error(error.message + (error.stack ?? \"\"), {\n error,\n });\n res.end();\n });\n\n return;\n } catch (error) {\n if (error instanceof Error) {\n server.config.logger.error(error.message + (error.stack ?? \"\"), {\n error,\n });\n }\n res.statusCode = 500;\n res.end(JSON.stringify({\n type: \"server-action-response\",\n returnValue: {\n success: false,\n error: error instanceof Error ? error.message : String(error)\n }\n }));\n return;\n }\n }\n\n // Handle RSC requests\n if (!info.isRscRequest) {\n return next();\n }\n\n const routeFiles = await getRouteFiles(\n info.route,\n autoDiscoveredFiles,\n handlerOptions\n );\n if (routeFiles.type === \"error\") {\n logger.error(routeFiles.error.message);\n return next();\n }\n const pagePath = routeFiles.page;\n const propsPath = routeFiles.props;\n try {\n // Set up response headers for streaming\n res.setHeader(\"Content-Type\", info.contentType);\n res.setHeader(\"Transfer-Encoding\", \"chunked\");\n res.setHeader(\"Connection\", \"keep-alive\");\n\n const userOnMetrics =\n typeof onMetrics === \"function\"\n ? (metrics: StreamMetrics) => {\n const elapsedTime = performance.now() - startTime;\n const formattedMetrics = {\n route: info.route,\n htmlSize: 0,\n rscSize: metrics.bytes,\n processingTime: elapsedTime,\n chunks: metrics.chunks,\n chunkRate: metrics.chunks / (elapsedTime / 1000),\n memoryUsage: process.memoryUsage(),\n streamMetrics: {\n ...metrics,\n duration: elapsedTime,\n },\n htmlSizes: new Map(),\n rscSizes: new Map([[info.route, metrics.bytes]]),\n } satisfies RenderMetrics;\n onMetrics(formattedMetrics);\n }\n : () => {};\n const startTime = performance.now();\n if (!currentWorker) {\n currentWorker = await restartWorker({\n server,\n autoDiscoveredFiles,\n userOptions: serializedUserOptions,\n hmrChannel,\n });\n }\n const stream = handleWorkerRscStream({\n worker: currentWorker!,\n message: {\n ...serializedUserOptions,\n id: info.route,\n type: \"RSC_RENDER\",\n // we make the worker stream aware of the route, pagePath, propsPath\n route: info.route,\n pagePath: pagePath,\n propsPath: propsPath,\n // override these at all times to ensure the settings will work for the dev server\n projectRoot: server.config.root,\n build: serializedUserOptions.build,\n manifest: autoDiscoveredFiles.staticManifest,\n cssFiles: new Map(),\n globalCss: new Map(),\n },\n logger,\n handlers: {\n onMetrics: (id, metrics) => {\n metrics.route = id;\n userOnMetrics(metrics);\n },\n onHmrAccept: () => {\n // TODO: implement\n // console.log(\"onHmrAccept\", routes);\n },\n onHmrUpdate: () => {\n // TODO: implement\n // console.log(\"onHmrUpdate\", routes);\n },\n },\n verbose: handlerOptions.verbose,\n });\n\n // Pipe the stream to the response\n if (res.writable) {\n Readable.fromWeb(stream as unknown as ReadableStream).pipe(res);\n }\n // wait for timeout\n } catch (error) {\n if (error instanceof Error) {\n server.config.logger.error(error.message + (error.stack ?? \"\"), {\n error,\n });\n }\n }\n let timeout: NodeJS.Timeout;\n try {\n await new Promise((reject) => {\n timeout = setTimeout(() => {\n clearTimeout(timeout);\n reject(new Error(\"RSC Render timeout\"));\n }, 5000);\n });\n } catch {\n if (currentWorker) {\n currentWorker.postMessage({\n type: \"SHUTDOWN\",\n id: \"*\",\n } satisfies RscWorkerInputMessage);\n await new Promise((resolve, reject) => {\n currentWorker?.on(\"message\", (message) => {\n if (message.type === \"SHUTDOWN_COMPLETE\") {\n resolve(true);\n } else {\n reject(\"Dit not receive SHUTDOWN_COMPLETE\");\n }\n });\n });\n currentWorker.removeAllListeners();\n }\n server.config.logger.error(\"RSC render timeout.\");\n clearTimeout(timeout!);\n res.end();\n }\n };\n // attach handler to the server\n server.middlewares.use(handler);\n // done\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA4BA,eAAsB,6BAGpB,CAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,WAAa,EAAA,YAAA;AAAA,EACb,UAAA;AAAA,EACA;AACF,CAMG,EAAA;AACD,EAAI,IAAA;AAAA;AAAA,IAEF,WAAa,EAAA,YAAA;AAAA,IACb,aAAe,EAAA,cAAA;AAAA,IACf,GAAG;AAAA,GACD,GAAA,YAAA;AACJ,EAAA,MAAM,cAAiB,GAAA,MAAA,CAAO,MAAO,CAAA,IAAI,kBAAoB,EAAA;AAAA,IAC3D,aAAA,EAAe,OAAO,MAAO,CAAA,IAAA;AAAA,IAC7B,cAAA,EAAgB,OAAO,MAAO,CAAA,IAAA;AAAA,IAC9B,WAAA,EAAa,OAAO,MAAO,CAAA;AAAA,GAC5B,CAAA;AAGD,EAAA,IAAI,aAA+B,GAAA,IAAA;AACnC,EAAM,MAAA,MAAA,GAAS,OAAO,MAAO,CAAA,MAAA;AAG7B,EAAO,MAAA,CAAA,EAAA,CAAG,EAAG,CAAA,SAAA,EAAW,YAAY;AAClC,IAAA,MAAA,CAAO,KAAK,2DAA2D,CAAA;AACvE,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,aAAA,CAAc,WAAY,CAAA;AAAA,QACxB,IAAM,EAAA,UAAA;AAAA,QACN,EAAI,EAAA;AAAA,OAC2B,CAAA;AACjC,MAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACrC,QAAe,aAAA,EAAA,EAAA,CAAG,SAAW,EAAA,CAAC,OAAY,KAAA;AACxC,UAAI,IAAA,OAAA,CAAQ,SAAS,mBAAqB,EAAA;AACxC,YAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,WACP,MAAA;AACL,YAAA,MAAA,CAAO,mCAAmC,CAAA;AAAA;AAC5C,SACD,CAAA;AAAA,OACF,CAAA;AACD,MAAA,aAAA,CAAc,kBAAmB,EAAA;AACjC,MAAgB,aAAA,GAAA,IAAA;AAAA;AAClB,GACD,CAAA;AAGD,EAAA,MAAM,OAA0B,GAAA,OAAO,GAAK,EAAA,GAAA,EAAK,IAAS,KAAA;AACxD,IAAA,IAAI,CAAC,GAAA,CAAI,GAAK,EAAA,OAAO,IAAK,EAAA;AAE1B,IAAA,MAAM,OAAO,WAAY,CAAA,GAAA,EAAK,gBAAgB,EAAI,EAAA,MAAA,CAAO,OAAO,MAAM,CAAA;AAGtE,IAAA,MAAM,qBAAwB,GAAA,iBAAA;AAAA,MAC5B,cAAA;AAAA,MACA;AAAA,KACF;AAGA,IAAA,IAAI,KAAK,qBAAuB,EAAA;AAC9B,MAAI,IAAA;AAEF,QAAA,MAAM,SAAmB,EAAC;AAC1B,QAAA,WAAA,MAAiB,SAAS,GAAK,EAAA;AAC7B,UAAA,MAAA,CAAO,KAAK,KAAK,CAAA;AAAA;AAEnB,QAAA,MAAM,IAAO,GAAA,MAAA,CAAO,MAAO,CAAA,MAAM,EAAE,QAAS,EAAA;AAC5C,QAAM,MAAA,MAAA,GAAS,IAAK,CAAA,KAAA,CAAM,IAAI,CAAA;AAG9B,QAAI,IAAA,EAAA;AACJ,QAAI,IAAA,IAAA;AACJ,QAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,MAAM,CAAG,EAAA;AAEzB,UAAO,IAAA,GAAA,MAAA;AACP,UAAA,EAAA,GAAK,IAAI,GAAK,EAAA,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAK,IAAA,EAAA;AAAA,mBACtB,MAAU,IAAA,OAAO,MAAW,KAAA,QAAA,IAAY,QAAQ,MAAQ,EAAA;AAEjE,UAAA,EAAA,GAAK,MAAO,CAAA,EAAA;AACZ,UAAO,IAAA,GAAA,MAAA,CAAO,QAAQ,EAAC;AAAA,SAClB,MAAA;AACL,UAAM,MAAA,IAAI,MAAM,sCAAsC,CAAA;AAAA;AAIxD,QAAI,GAAA,CAAA,SAAA,CAAU,gBAAgB,iCAAiC,CAAA;AAC/D,QAAI,GAAA,CAAA,SAAA,CAAU,qBAAqB,SAAS,CAAA;AAC5C,QAAI,GAAA,CAAA,SAAA,CAAU,cAAc,YAAY,CAAA;AAExC,QAAA,IAAI,CAAC,aAAe,EAAA;AAClB,UAAA,aAAA,GAAgB,MAAM,aAAc,CAAA;AAAA,YAClC,MAAA;AAAA,YACA,mBAAA;AAAA,YACA,WAAa,EAAA,qBAAA;AAAA,YACb;AAAA,WACD,CAAA;AAAA;AAIH,QAAA,aAAA,CAAe,WAAY,CAAA;AAAA,UACzB,IAAM,EAAA,eAAA;AAAA,UACN,EAAA;AAAA,UACA;AAAA,SAC+B,CAAA;AAGjC,QAAM,MAAA,WAAA,GAAc,IAAI,WAAY,EAAA;AACpC,QAAA,WAAA,CAAY,KAAK,GAAG,CAAA;AAGpB,QAAM,MAAA,cAAA,GAAiB,CAAC,OAAiB,KAAA;AACvC,UAAI,IAAA,OAAA,CAAQ,SAAS,WAAa,EAAA;AAChC,YAAY,WAAA,CAAA,KAAA,CAAM,QAAQ,KAAK,CAAA;AAAA,WACjC,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,SAAW,EAAA;AACrC,YAAA,WAAA,CAAY,GAAI,EAAA;AAChB,YAAe,aAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AAAA,WACzD,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,OAAS,EAAA;AACnC,YAAA,WAAA,CAAY,GAAI,EAAA;AAChB,YAAe,aAAA,CAAA,cAAA,CAAe,WAAW,cAAc,CAAA;AACvD,YAAO,MAAA,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,OAAA,CAAQ,MAAM,OAAW,IAAA,OAAA,CAAQ,KAAM,CAAA,KAAA,IAAS,EAAK,CAAA,EAAA;AAAA,cAC9E,OAAO,OAAQ,CAAA;AAAA,aAChB,CAAA;AAAA;AACH,SACF;AAEA,QAAe,aAAA,CAAA,EAAA,CAAG,WAAW,cAAc,CAAA;AAG3C,QAAY,WAAA,CAAA,EAAA,CAAG,OAAS,EAAA,CAAC,KAAU,KAAA;AACjC,UAAA,MAAA,CAAO,OAAO,MAAO,CAAA,KAAA,CAAM,MAAM,OAAW,IAAA,KAAA,CAAM,SAAS,EAAK,CAAA,EAAA;AAAA,YAC9D;AAAA,WACD,CAAA;AACD,UAAA,GAAA,CAAI,GAAI,EAAA;AAAA,SACT,CAAA;AAED,QAAA;AAAA,eACO,KAAO,EAAA;AACd,QAAA,IAAI,iBAAiB,KAAO,EAAA;AAC1B,UAAA,MAAA,CAAO,OAAO,MAAO,CAAA,KAAA,CAAM,MAAM,OAAW,IAAA,KAAA,CAAM,SAAS,EAAK,CAAA,EAAA;AAAA,YAC9D;AAAA,WACD,CAAA;AAAA;AAEH,QAAA,GAAA,CAAI,UAAa,GAAA,GAAA;AACjB,QAAI,GAAA,CAAA,GAAA,CAAI,KAAK,SAAU,CAAA;AAAA,UACrB,IAAM,EAAA,wBAAA;AAAA,UACN,WAAa,EAAA;AAAA,YACX,OAAS,EAAA,KAAA;AAAA,YACT,OAAO,KAAiB,YAAA,KAAA,GAAQ,KAAM,CAAA,OAAA,GAAU,OAAO,KAAK;AAAA;AAC9D,SACD,CAAC,CAAA;AACF,QAAA;AAAA;AACF;AAIF,IAAI,IAAA,CAAC,KAAK,YAAc,EAAA;AACtB,MAAA,OAAO,IAAK,EAAA;AAAA;AAGd,IAAA,MAAM,aAAa,MAAM,aAAA;AAAA,MACvB,IAAK,CAAA,KAAA;AAAA,MACL,mBAAA;AAAA,MACA;AAAA,KACF;AACA,IAAI,IAAA,UAAA,CAAW,SAAS,OAAS,EAAA;AAC/B,MAAO,MAAA,CAAA,KAAA,CAAM,UAAW,CAAA,KAAA,CAAM,OAAO,CAAA;AACrC,MAAA,OAAO,IAAK,EAAA;AAAA;AAEd,IAAA,MAAM,WAAW,UAAW,CAAA,IAAA;AAC5B,IAAA,MAAM,YAAY,UAAW,CAAA,KAAA;AAC7B,IAAI,IAAA;AAEF,MAAI,GAAA,CAAA,SAAA,CAAU,cAAgB,EAAA,IAAA,CAAK,WAAW,CAAA;AAC9C,MAAI,GAAA,CAAA,SAAA,CAAU,qBAAqB,SAAS,CAAA;AAC5C,MAAI,GAAA,CAAA,SAAA,CAAU,cAAc,YAAY,CAAA;AAExC,MAAA,MAAM,aACJ,GAAA,OAAO,SAAc,KAAA,UAAA,GACjB,CAAC,OAA2B,KAAA;AAC1B,QAAM,MAAA,WAAA,GAAc,WAAY,CAAA,GAAA,EAAQ,GAAA,SAAA;AACxC,QAAA,MAAM,gBAAmB,GAAA;AAAA,UACvB,OAAO,IAAK,CAAA,KAAA;AAAA,UACZ,QAAU,EAAA,CAAA;AAAA,UACV,SAAS,OAAQ,CAAA,KAAA;AAAA,UACjB,cAAgB,EAAA,WAAA;AAAA,UAChB,QAAQ,OAAQ,CAAA,MAAA;AAAA,UAChB,SAAA,EAAW,OAAQ,CAAA,MAAA,IAAU,WAAc,GAAA,GAAA,CAAA;AAAA,UAC3C,WAAA,EAAa,QAAQ,WAAY,EAAA;AAAA,UACjC,aAAe,EAAA;AAAA,YACb,GAAG,OAAA;AAAA,YACH,QAAU,EAAA;AAAA,WACZ;AAAA,UACA,SAAA,sBAAe,GAAI,EAAA;AAAA,UACnB,QAAA,kBAAc,IAAA,GAAA,CAAI,CAAC,CAAC,KAAK,KAAO,EAAA,OAAA,CAAQ,KAAK,CAAC,CAAC;AAAA,SACjD;AACA,QAAA,SAAA,CAAU,gBAAgB,CAAA;AAAA,UAE5B,MAAM;AAAA,OAAC;AACb,MAAM,MAAA,SAAA,GAAY,YAAY,GAAI,EAAA;AAClC,MAAA,IAAI,CAAC,aAAe,EAAA;AAClB,QAAA,aAAA,GAAgB,MAAM,aAAc,CAAA;AAAA,UAClC,MAAA;AAAA,UACA,mBAAA;AAAA,UACA,WAAa,EAAA,qBAAA;AAAA,UACb;AAAA,SACD,CAAA;AAAA;AAEH,MAAA,MAAM,SAAS,qBAAsB,CAAA;AAAA,QACnC,MAAQ,EAAA,aAAA;AAAA,QACR,OAAS,EAAA;AAAA,UACP,GAAG,qBAAA;AAAA,UACH,IAAI,IAAK,CAAA,KAAA;AAAA,UACT,IAAM,EAAA,YAAA;AAAA;AAAA,UAEN,OAAO,IAAK,CAAA,KAAA;AAAA,UACZ,QAAA;AAAA,UACA,SAAA;AAAA;AAAA,UAEA,WAAA,EAAa,OAAO,MAAO,CAAA,IAAA;AAAA,UAC3B,OAAO,qBAAsB,CAAA,KAAA;AAAA,UAC7B,UAAU,mBAAoB,CAAA,cAAA;AAAA,UAC9B,QAAA,sBAAc,GAAI,EAAA;AAAA,UAClB,SAAA,sBAAe,GAAI;AAAA,SACrB;AAAA,QACA,MAAA;AAAA,QACA,QAAU,EAAA;AAAA,UACR,SAAA,EAAW,CAAC,EAAA,EAAI,OAAY,KAAA;AAC1B,YAAA,OAAA,CAAQ,KAAQ,GAAA,EAAA;AAChB,YAAA,aAAA,CAAc,OAAO,CAAA;AAAA,WACvB;AAAA,UACA,aAAa,MAAM;AAAA,WAGnB;AAAA,UACA,aAAa,MAAM;AAAA;AAGnB,SACF;AAAA,QACA,SAAS,cAAe,CAAA;AAAA,OACzB,CAAA;AAGD,MAAA,IAAI,IAAI,QAAU,EAAA;AAChB,QAAA,QAAA,CAAS,OAAQ,CAAA,MAAmC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA;AAChE,aAEO,KAAO,EAAA;AACd,MAAA,IAAI,iBAAiB,KAAO,EAAA;AAC1B,QAAA,MAAA,CAAO,OAAO,MAAO,CAAA,KAAA,CAAM,MAAM,OAAW,IAAA,KAAA,CAAM,SAAS,EAAK,CAAA,EAAA;AAAA,UAC9D;AAAA,SACD,CAAA;AAAA;AACH;AAEF,IAAI,IAAA,OAAA;AACJ,IAAI,IAAA;AACF,MAAM,MAAA,IAAI,OAAQ,CAAA,CAAC,MAAW,KAAA;AAC5B,QAAA,OAAA,GAAU,WAAW,MAAM;AACzB,UAAA,YAAA,CAAa,OAAO,CAAA;AACpB,UAAO,MAAA,CAAA,IAAI,KAAM,CAAA,oBAAoB,CAAC,CAAA;AAAA,WACrC,GAAI,CAAA;AAAA,OACR,CAAA;AAAA,KACK,CAAA,MAAA;AACN,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,aAAA,CAAc,WAAY,CAAA;AAAA,UACxB,IAAM,EAAA,UAAA;AAAA,UACN,EAAI,EAAA;AAAA,SAC2B,CAAA;AACjC,QAAA,MAAM,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;AACrC,UAAe,aAAA,EAAA,EAAA,CAAG,SAAW,EAAA,CAAC,OAAY,KAAA;AACxC,YAAI,IAAA,OAAA,CAAQ,SAAS,mBAAqB,EAAA;AACxC,cAAA,OAAA,CAAQ,IAAI,CAAA;AAAA,aACP,MAAA;AACL,cAAA,MAAA,CAAO,mCAAmC,CAAA;AAAA;AAC5C,WACD,CAAA;AAAA,SACF,CAAA;AACD,QAAA,aAAA,CAAc,kBAAmB,EAAA;AAAA;AAEnC,MAAO,MAAA,CAAA,MAAA,CAAO,MAAO,CAAA,KAAA,CAAM,qBAAqB,CAAA;AAChD,MAAA,YAAA,CAAa,OAAQ,CAAA;AACrB,MAAA,GAAA,CAAI,GAAI,EAAA;AAAA;AACV,GACF;AAEA,EAAO,MAAA,CAAA,WAAA,CAAY,IAAI,OAAO,CAAA;AAEhC;;;;"}
1
+ {"version":3,"file":"configureWorkerRequestHandler.js","sources":["../../../plugin/react-client/configureWorkerRequestHandler.ts"],"sourcesContent":["import type { ViteDevServer } from \"vite\";\nimport type {\n AutoDiscoveredFiles,\n InlineCssOpt,\n PagePropOpt,\n RenderMetrics,\n RequestHandler,\n ResolvedUserOptions,\n StreamMetrics,\n} from \"../types.js\";\nimport { MessageChannel, type Worker } from \"node:worker_threads\";\nimport { serializedOptions } from \"../helpers/serializeUserOptions.js\";\nimport { requestInfo } from \"../helpers/requestInfo.js\";\nimport { performance } from \"node:perf_hooks\";\nimport { restartWorker } from \"./restartWorker.js\";\nimport { handleWorkerRscStream } from \"./handleWorkerRscStream.js\";\nimport { getRouteFiles } from \"../helpers/getRouteFiles.js\";\nimport type { RscWorkerInputMessage } from \"../worker/types.js\";\nimport { Readable } from \"node:stream\";\nimport type { ReadableStream } from \"node:stream/web\";\nimport { PassThrough } from \"node:stream\";\nimport { logError, toError } from \"../error/toError.js\";\n\n/**\n * Configures the worker request handler.\n * @param server - The Vite dev server\n * @param autoDiscoveredFiles - The auto discovered files\n * @param userOptions - The user options\n */\nexport async function configureWorkerRequestHandler<\n T extends PagePropOpt = PagePropOpt,\n InlineCSS extends InlineCssOpt = InlineCssOpt\n>({\n server,\n autoDiscoveredFiles,\n userOptions: _userOptions,\n hmrChannel,\n onMetrics,\n}: {\n server: ViteDevServer;\n autoDiscoveredFiles: AutoDiscoveredFiles;\n userOptions: ResolvedUserOptions<T, InlineCSS>;\n hmrChannel: MessageChannel;\n onMetrics?: (metrics: RenderMetrics) => void;\n}) {\n let {\n // remove these\n projectRoot: _projectRoot,\n moduleBaseURL: _moduleBaseURL,\n ...handlerUserOptions\n } = _userOptions;\n const handlerOptions = Object.assign({}, handlerUserOptions, {\n moduleBaseURL: server.config.base,\n moduleBasePath: server.config.base,\n projectRoot: server.config.root,\n });\n\n // Start the worker\n let currentWorker: Worker | null = null;\n const logger = server.config.logger;\n\n // Handle server restarts\n server.ws.on(\"restart\", async () => {\n logger.info(\"[react-client] Server restarting, shutting down worker...\");\n if (currentWorker) {\n currentWorker.postMessage({\n type: \"SHUTDOWN\",\n id: \"*\",\n } satisfies RscWorkerInputMessage);\n await new Promise((resolve, reject) => {\n currentWorker?.on(\"message\", (message) => {\n if (message.type === \"SHUTDOWN_COMPLETE\") {\n resolve(true);\n } else {\n reject(\"Did not receive SHUTDOWN_COMPLETE\");\n }\n });\n });\n currentWorker.removeAllListeners();\n currentWorker = null;\n }\n });\n\n // Create the request handler\n const handler: RequestHandler = async (req, res, next) => {\n if (!req.url) return next();\n\n const info = requestInfo(req, handlerOptions, \"\", server.config.logger);\n\n // Serialize user options for worker\n const serializedUserOptions = serializedOptions<T, InlineCSS>(\n handlerOptions,\n autoDiscoveredFiles\n );\n\n // Handle server action requests\n if (info.isServerActionRequest) {\n try {\n // Read request body\n const chunks: Buffer[] = [];\n for await (const chunk of req) {\n chunks.push(chunk);\n }\n const body = Buffer.concat(chunks).toString();\n const parsed = JSON.parse(body);\n\n // Get action ID and args from the request body\n let id: string;\n let args: unknown[];\n if (Array.isArray(parsed)) {\n // Format 1: Direct args array\n args = parsed;\n id = req.url?.split(\"?\")[0] ?? \"\";\n } else if (parsed && typeof parsed === \"object\" && \"id\" in parsed) {\n // Format 2: Object with id and args\n id = parsed.id;\n args = parsed.args ?? [];\n } else {\n throw new Error(\"Invalid server action request format\");\n }\n\n // Set up response headers for streaming\n res.setHeader(\"Content-Type\", \"text/x-component; charset=utf-8\");\n res.setHeader(\"Transfer-Encoding\", \"chunked\");\n res.setHeader(\"Connection\", \"keep-alive\");\n\n if (!currentWorker) {\n currentWorker = await restartWorker({\n server,\n autoDiscoveredFiles,\n userOptions: serializedUserOptions,\n hmrChannel,\n });\n }\n\n // Send server action request to worker\n currentWorker!.postMessage({\n type: \"SERVER_ACTION\",\n id,\n args,\n } satisfies RscWorkerInputMessage);\n\n // Create a pass-through stream for the response\n const passThrough = new PassThrough();\n passThrough.pipe(res);\n\n // Handle worker messages\n const messageHandler = (message: any) => {\n if (message.type === \"RSC_CHUNK\") {\n passThrough.write(message.chunk);\n } else if (message.type === \"RSC_END\") {\n passThrough.end();\n currentWorker!.removeListener(\"message\", messageHandler);\n } else if (message.type === \"ERROR\") {\n passThrough.end();\n currentWorker!.removeListener(\"message\", messageHandler);\n logError(message.error, server.config.logger);\n }\n };\n\n currentWorker!.on(\"message\", messageHandler);\n\n // Handle errors\n passThrough.on(\"error\", (error) => {\n logError(error, server.config.logger);\n res.end();\n });\n\n return;\n } catch (error) {\n const err = toError(error);\n logError(err, server.config.logger);\n res.statusCode = 500;\n res.end(\n JSON.stringify({\n type: \"server-action-response\",\n returnValue: {\n success: false,\n error: err.message,\n },\n })\n );\n return;\n }\n }\n\n // Handle RSC requests\n if (!info.isRscRequest) {\n return next();\n }\n\n const routeFiles = await getRouteFiles(\n info.route,\n autoDiscoveredFiles,\n handlerOptions\n );\n if (routeFiles.type === \"error\") {\n logger.error(routeFiles.error.message);\n return next();\n }\n const pagePath = routeFiles.page;\n const propsPath = routeFiles.props;\n try {\n // Set up response headers for streaming\n res.setHeader(\"Content-Type\", info.contentType);\n res.setHeader(\"Transfer-Encoding\", \"chunked\");\n res.setHeader(\"Connection\", \"keep-alive\");\n\n const userOnMetrics =\n typeof onMetrics === \"function\"\n ? (metrics: StreamMetrics) => {\n const elapsedTime = performance.now() - startTime;\n const formattedMetrics = {\n route: info.route,\n htmlSize: 0,\n rscSize: metrics.bytes,\n processingTime: elapsedTime,\n chunks: metrics.chunks,\n chunkRate: metrics.chunks / (elapsedTime / 1000),\n memoryUsage: process.memoryUsage(),\n streamMetrics: {\n ...metrics,\n duration: elapsedTime,\n },\n htmlSizes: new Map(),\n rscSizes: new Map([[info.route, metrics.bytes]]),\n } satisfies RenderMetrics;\n onMetrics(formattedMetrics);\n }\n : () => {};\n const startTime = performance.now();\n if (!currentWorker) {\n currentWorker = await restartWorker({\n server,\n autoDiscoveredFiles,\n userOptions: serializedUserOptions,\n hmrChannel,\n });\n }\n const stream = handleWorkerRscStream({\n worker: currentWorker!,\n message: {\n ...serializedUserOptions,\n id: info.route,\n type: \"RSC_RENDER\",\n // we make the worker stream aware of the route, pagePath, propsPath\n route: info.route,\n pagePath: pagePath,\n propsPath: propsPath,\n // override these at all times to ensure the settings will work for the dev server\n projectRoot: server.config.root,\n build: serializedUserOptions.build,\n manifest: autoDiscoveredFiles.staticManifest,\n cssFiles: new Map(),\n globalCss: new Map(),\n },\n logger,\n handlers: {\n onMetrics: (id, metrics) => {\n metrics.route = id;\n userOnMetrics(metrics);\n },\n onHmrAccept: () => {\n // TODO: implement\n // console.log(\"onHmrAccept\", routes);\n },\n onHmrUpdate: () => {\n // TODO: implement\n // console.log(\"onHmrUpdate\", routes);\n },\n },\n verbose: handlerOptions.verbose,\n });\n\n // Pipe the stream to the response\n if (res.writable) {\n Readable.fromWeb(stream as unknown as ReadableStream).pipe(res);\n }\n // wait for timeout\n } catch (error) {\n if (error instanceof Error) {\n server.config.logger.error(error.message + (error.stack ?? \"\"), {\n error,\n });\n }\n }\n let timeout: NodeJS.Timeout;\n try {\n await new Promise((reject) => {\n timeout = setTimeout(() => {\n clearTimeout(timeout);\n reject(new Error(\"RSC Render timeout\"));\n }, 5000);\n });\n } catch {\n if (currentWorker) {\n currentWorker.postMessage({\n type: \"SHUTDOWN\",\n id: \"*\",\n } satisfies RscWorkerInputMessage);\n await new Promise((resolve, reject) => {\n currentWorker?.on(\"message\", (message) => {\n if (message.type === \"SHUTDOWN_COMPLETE\") {\n resolve(true);\n } else {\n reject(\"Dit not receive SHUTDOWN_COMPLETE\");\n }\n });\n });\n currentWorker.removeAllListeners();\n }\n server.config.logger.error(\"RSC render timeout.\");\n clearTimeout(timeout!);\n res.end();\n }\n };\n // attach handler to the server\n server.middlewares.use(handler);\n // port check, should be handled by strictPort\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMessageHandlers.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/createMessageHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,EACN,OAAe,GAChB,EAAE,qBAAqB,aACL,sBAAsB,GAAG,SAAS,UA4CpD"}
1
+ {"version":3,"file":"createMessageHandlers.d.ts","sourceRoot":"","sources":["../../../plugin/react-client/createMessageHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,EACN,OAAe,GAChB,EAAE,qBAAqB,IACd,SAAS,sBAAsB,GAAG,SAAS,UA4CpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"configureReactServer.d.ts","sourceRoot":"","sources":["../../../plugin/react-server/configureReactServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAWrB,wBAAsB,oBAAoB,CACxC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,MAAM,EACN,mBAAmB,EACnB,WAAW,EAAE,YAAY,EACzB,cAAc,GACf,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,cAAc,EAAE,QAAQ,CAAC;CAC1B,iBAyJA"}
1
+ {"version":3,"file":"configureReactServer.d.ts","sourceRoot":"","sources":["../../../plugin/react-server/configureReactServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAWrB,wBAAsB,oBAAoB,CACxC,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,YAAY,GAAG,YAAY,EAC7C,EACA,MAAM,EACN,mBAAmB,EACnB,WAAW,EAAE,YAAY,EACzB,cAAc,GACf,EAAE;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC/C,cAAc,EAAE,QAAQ,CAAC;CAC1B,iBA6IA"}
@@ -144,18 +144,6 @@ async function configureReactServer({
144
144
  res.end();
145
145
  }
146
146
  });
147
- server.httpServer?.once("listening", () => {
148
- const address = server.httpServer?.address();
149
- if (address && typeof address !== "string") {
150
- const port = address.port;
151
- const host = server.config.server.host ?? "localhost";
152
- const protocol = server.config.server.https ? "https" : "http";
153
- handlerOptions.publicOrigin = `${protocol}://${host}:${port}`;
154
- if (handlerOptions.publicOrigin !== process.env.VITE_PUBLIC_ORIGIN) {
155
- process.env.VITE_PUBLIC_ORIGIN = handlerOptions.publicOrigin;
156
- }
157
- }
158
- });
159
147
  }
160
148
 
161
149
  export { configureReactServer };