vite-plugin-react-server 0.3.10 → 0.3.12

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 (318) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +1 -1
  4. package/dist/index.d.ts +3 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/package.json +16 -14
  9. package/dist/plugin/assertServerCondition.d.ts +5 -1
  10. package/dist/plugin/assertServerCondition.d.ts.map +1 -1
  11. package/dist/plugin/assertServerCondition.js +1 -3
  12. package/dist/plugin/checkFilesExist.d.ts +2 -2
  13. package/dist/plugin/checkFilesExist.d.ts.map +1 -1
  14. package/dist/plugin/checkFilesExist.js +43 -58
  15. package/dist/plugin/checkFilesExist.js.map +1 -1
  16. package/dist/plugin/collect-css-manifest.d.ts.map +1 -1
  17. package/dist/plugin/collect-css-manifest.js +5 -0
  18. package/dist/plugin/collect-css-manifest.js.map +1 -1
  19. package/dist/plugin/components.js +10 -15
  20. package/dist/plugin/config/createModuleIdGenerator.d.ts +11 -0
  21. package/dist/plugin/config/createModuleIdGenerator.d.ts.map +1 -0
  22. package/dist/plugin/config/createModuleIdGenerator.js +44 -0
  23. package/dist/plugin/config/createModuleIdGenerator.js.map +1 -0
  24. package/dist/plugin/config/defaults.d.ts +27 -24
  25. package/dist/plugin/config/defaults.d.ts.map +1 -1
  26. package/dist/plugin/config/defaults.js +26 -31
  27. package/dist/plugin/config/defaults.js.map +1 -1
  28. package/dist/plugin/config/getPaths.js +1 -1
  29. package/dist/plugin/config/resolveOptions.d.ts +1 -1
  30. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  31. package/dist/plugin/config/resolveOptions.js +223 -16
  32. package/dist/plugin/config/resolveOptions.js.map +1 -1
  33. package/dist/plugin/config/resolvePages.d.ts +2 -0
  34. package/dist/plugin/config/resolvePages.d.ts.map +1 -1
  35. package/dist/plugin/config/resolvePages.js.map +1 -1
  36. package/dist/plugin/config/resolveUserConfig.d.ts +2 -2
  37. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  38. package/dist/plugin/config/resolveUserConfig.js +149 -50
  39. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  40. package/dist/plugin/helpers/getBundleManifest.d.ts +25 -0
  41. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -0
  42. package/dist/plugin/helpers/getBundleManifest.js +72 -0
  43. package/dist/plugin/helpers/getBundleManifest.js.map +1 -0
  44. package/dist/plugin/helpers/inputNormalizer.d.ts +14 -1
  45. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  46. package/dist/plugin/helpers/inputNormalizer.js +128 -16
  47. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  48. package/dist/plugin/helpers/tryManifest.d.ts +3 -1
  49. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  50. package/dist/plugin/helpers/tryManifest.js +1 -1
  51. package/dist/plugin/helpers/tryManifest.js.map +1 -1
  52. package/dist/plugin/loader/createBuildLoader.d.ts +6 -2
  53. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  54. package/dist/plugin/loader/createBuildLoader.js +37 -9
  55. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  56. package/dist/plugin/loader/createPageLoader.d.ts.map +1 -1
  57. package/dist/plugin/loader/createPageLoader.js +0 -7
  58. package/dist/plugin/loader/css-loader.d.ts +16 -0
  59. package/dist/plugin/loader/css-loader.d.ts.map +1 -0
  60. package/dist/plugin/loader/css-loader.js +70 -0
  61. package/dist/plugin/loader/css-loader.js.map +1 -0
  62. package/dist/plugin/loader/react-loader.d.ts +17 -0
  63. package/dist/plugin/loader/react-loader.d.ts.map +1 -0
  64. package/dist/plugin/loader/react-loader.js +647 -0
  65. package/dist/plugin/loader/react-loader.js.map +1 -0
  66. package/dist/plugin/loader/rsc/messageHandler.d.ts +2 -0
  67. package/dist/plugin/loader/rsc/messageHandler.d.ts.map +1 -0
  68. package/dist/plugin/loader/rsc/messageHandler.js +1 -0
  69. package/dist/plugin/loader/rsc/rsc-worker.development.d.ts +2 -0
  70. package/dist/plugin/loader/rsc/rsc-worker.development.d.ts.map +1 -0
  71. package/dist/plugin/loader/rsc/rsc-worker.development.js +1 -0
  72. package/dist/plugin/plugin.d.ts +0 -1
  73. package/dist/plugin/plugin.d.ts.map +1 -1
  74. package/dist/plugin/plugin.js +2 -1
  75. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  76. package/dist/plugin/preserver/plugin.js +3 -2
  77. package/dist/plugin/preserver/plugin.js.map +1 -1
  78. package/dist/plugin/react-client/index.d.ts +2 -1
  79. package/dist/plugin/react-client/index.d.ts.map +1 -1
  80. package/dist/plugin/react-client/index.js +19 -1
  81. package/dist/plugin/react-client/index.js.map +1 -0
  82. package/dist/plugin/react-client/plugin.d.ts +2 -2
  83. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  84. package/dist/plugin/react-client/plugin.js +283 -10
  85. package/dist/plugin/react-client/plugin.js.map +1 -1
  86. package/dist/plugin/react-server/createHandler.d.ts +2 -2
  87. package/dist/plugin/react-server/createHandler.d.ts.map +1 -1
  88. package/dist/plugin/react-server/createHandler.js +15 -9
  89. package/dist/plugin/react-server/createHandler.js.map +1 -1
  90. package/dist/plugin/react-server/createRscStream.d.ts +15 -3
  91. package/dist/plugin/react-server/createRscStream.d.ts.map +1 -1
  92. package/dist/plugin/react-server/createRscStream.js +53 -36
  93. package/dist/plugin/react-server/createRscStream.js.map +1 -1
  94. package/dist/plugin/react-server/createSsrHandler.d.ts +2 -2
  95. package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -1
  96. package/dist/plugin/react-server/createSsrHandler.js +5 -12
  97. package/dist/plugin/react-server/index.js +18 -9
  98. package/dist/plugin/react-server/index.js.map +1 -0
  99. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  100. package/dist/plugin/react-server/plugin.js +147 -137
  101. package/dist/plugin/react-server/plugin.js.map +1 -1
  102. package/dist/plugin/transformer/plugin.d.ts +2 -1
  103. package/dist/plugin/transformer/plugin.d.ts.map +1 -1
  104. package/dist/plugin/transformer/plugin.js +68 -75
  105. package/dist/plugin/transformer/plugin.js.map +1 -1
  106. package/dist/plugin/transformer/types.d.ts +4 -0
  107. package/dist/plugin/transformer/types.d.ts.map +1 -1
  108. package/dist/plugin/types.d.ts +56 -20
  109. package/dist/plugin/types.d.ts.map +1 -1
  110. package/dist/plugin/utils/logger.d.ts +9 -0
  111. package/dist/plugin/utils/logger.d.ts.map +1 -0
  112. package/dist/plugin/utils/logger.js +68 -0
  113. package/dist/plugin/utils/logger.js.map +1 -0
  114. package/dist/plugin/worker/createWorker.d.ts +1 -0
  115. package/dist/plugin/worker/createWorker.d.ts.map +1 -1
  116. package/dist/plugin/worker/createWorker.js +23 -36
  117. package/dist/plugin/worker/createWorker.js.map +1 -1
  118. package/dist/plugin/worker/html/html-worker.production.js +5 -1
  119. package/dist/plugin/worker/html/html-worker.production.js.map +1 -1
  120. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  121. package/dist/plugin/worker/html/messageHandler.js +33 -28
  122. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  123. package/dist/plugin/worker/html/plugin.d.ts.map +1 -1
  124. package/dist/plugin/worker/html/plugin.js +10 -5
  125. package/dist/plugin/worker/html/renderPages.d.ts +7 -6
  126. package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
  127. package/dist/plugin/worker/html/renderPages.js +147 -93
  128. package/dist/plugin/worker/html/renderPages.js.map +1 -1
  129. package/dist/plugin/worker/loader.d.ts +1 -11
  130. package/dist/plugin/worker/loader.d.ts.map +1 -1
  131. package/dist/plugin/worker/loader.js +2 -2
  132. package/dist/plugin/worker/loader.js.map +1 -1
  133. package/dist/plugin/worker/plugin.d.ts +10 -1
  134. package/dist/plugin/worker/plugin.d.ts.map +1 -1
  135. package/dist/plugin/worker/plugin.js +10 -1
  136. package/dist/plugin/worker/rsc/index.d.ts +1 -3
  137. package/dist/plugin/worker/rsc/index.d.ts.map +1 -1
  138. package/dist/plugin/worker/rsc/index.js +1 -9
  139. package/dist/plugin/worker/rsc/index.js.map +1 -1
  140. package/dist/plugin/worker/rsc/messageHandler.d.ts +3 -0
  141. package/dist/plugin/worker/rsc/messageHandler.d.ts.map +1 -0
  142. package/dist/plugin/worker/rsc/messageHandler.js +107 -0
  143. package/dist/plugin/worker/rsc/messageHandler.js.map +1 -0
  144. package/dist/plugin/worker/rsc/plugin.d.ts.map +1 -1
  145. package/dist/plugin/worker/rsc/plugin.js +74 -80
  146. package/dist/plugin/worker/rsc/rsc-worker.development.d.ts +32 -0
  147. package/dist/plugin/worker/rsc/rsc-worker.development.d.ts.map +1 -0
  148. package/dist/plugin/worker/rsc/rsc-worker.development.js +43 -0
  149. package/dist/plugin/worker/rsc/rsc-worker.development.js.map +1 -0
  150. package/dist/plugin/worker/rsc/rsc-worker.js +4 -106
  151. package/dist/plugin/worker/rsc/rsc-worker.production.d.ts +2 -0
  152. package/dist/plugin/worker/rsc/rsc-worker.production.d.ts.map +1 -0
  153. package/dist/plugin/worker/rsc/rsc-worker.production.js +14 -0
  154. package/dist/plugin/worker/rsc/rsc-worker.production.js.map +1 -0
  155. package/dist/plugin/worker/rsc/state.d.ts +11 -0
  156. package/dist/plugin/worker/rsc/state.d.ts.map +1 -0
  157. package/dist/plugin/worker/rsc/state.js +12 -0
  158. package/dist/plugin/worker/rsc/state.js.map +1 -0
  159. package/dist/plugin/worker/types.d.ts +62 -35
  160. package/dist/plugin/worker/types.d.ts.map +1 -1
  161. package/dist/server.d.ts +1 -3
  162. package/dist/server.d.ts.map +1 -1
  163. package/dist/server.js +1 -3
  164. package/dist/server.js.map +1 -1
  165. package/dist/tsconfig.tsbuildinfo +1 -1
  166. package/package.json +16 -14
  167. package/plugin/assertServerCondition.ts +2 -3
  168. package/plugin/checkFilesExist.ts +46 -66
  169. package/plugin/collect-css-manifest.ts +5 -1
  170. package/plugin/config/createModuleIdGenerator.ts +52 -0
  171. package/plugin/config/defaults.ts +27 -20
  172. package/plugin/config/resolveOptions.ts +311 -25
  173. package/plugin/config/resolvePages.ts +1 -1
  174. package/plugin/config/resolveUserConfig.ts +195 -61
  175. package/plugin/helpers/getBundleManifest.ts +113 -0
  176. package/plugin/helpers/inputNormalizer.ts +186 -25
  177. package/plugin/helpers/tryManifest.ts +3 -1
  178. package/plugin/loader/createBuildLoader.ts +50 -9
  179. package/plugin/loader/createPageLoader.ts +1 -7
  180. package/plugin/loader/css-loader.ts +96 -0
  181. package/plugin/loader/react-loader.ts +945 -0
  182. package/plugin/loader/rsc/messageHandler.tsx +1 -0
  183. package/plugin/loader/rsc/rsc-worker.development.ts +1 -0
  184. package/plugin/plugin.ts +2 -1
  185. package/plugin/preserver/plugin.ts +2 -1
  186. package/plugin/react-client/index.ts +12 -1
  187. package/plugin/react-client/plugin.ts +351 -11
  188. package/plugin/react-server/createHandler.ts +16 -18
  189. package/plugin/react-server/createRscStream.ts +75 -42
  190. package/plugin/react-server/createSsrHandler.ts +7 -26
  191. package/plugin/react-server/plugin.ts +192 -155
  192. package/plugin/transformer/plugin.ts +70 -104
  193. package/plugin/transformer/types.ts +4 -0
  194. package/plugin/types/global.d.ts +8 -0
  195. package/plugin/types.ts +120 -64
  196. package/plugin/utils/logger.ts +52 -0
  197. package/plugin/worker/createWorker.ts +43 -44
  198. package/plugin/worker/html/html-worker.production.tsx +7 -2
  199. package/plugin/worker/html/messageHandler.ts +42 -35
  200. package/plugin/worker/html/plugin.ts +15 -11
  201. package/plugin/worker/html/renderPages.ts +177 -123
  202. package/plugin/worker/loader.ts +4 -13
  203. package/plugin/worker/plugin.ts +10 -1
  204. package/plugin/worker/rsc/index.ts +4 -13
  205. package/plugin/worker/rsc/messageHandler.tsx +143 -0
  206. package/plugin/worker/rsc/plugin.ts +38 -37
  207. package/plugin/worker/rsc/rsc-worker.development.ts +107 -0
  208. package/plugin/worker/rsc/rsc-worker.production.ts +13 -0
  209. package/plugin/worker/rsc/rsc-worker.tsx +5 -128
  210. package/plugin/worker/rsc/state.ts +37 -0
  211. package/plugin/worker/types.ts +83 -38
  212. package/scripts/check-react-version.mjs +17 -7
  213. package/scripts/react+0.0.0-experimental-b3a95caf-20250113.patch +143 -4170
  214. package/scripts/react-dom+0.0.0-experimental-b3a95caf-20250113.patch +14271 -90079
  215. package/dist/node_modules/magic-string/dist/magic-string.es.js +0 -1283
  216. package/dist/node_modules/magic-string/dist/magic-string.es.js.map +0 -1
  217. package/dist/plugin/build/createClientBuildConfig.d.ts +0 -3
  218. package/dist/plugin/build/createClientBuildConfig.d.ts.map +0 -1
  219. package/dist/plugin/build/createClientBuildConfig.js +0 -14
  220. package/dist/plugin/build/createServerBuildConfig.d.ts +0 -12
  221. package/dist/plugin/build/createServerBuildConfig.d.ts.map +0 -1
  222. package/dist/plugin/build/createServerBuildConfig.js +0 -40
  223. package/dist/plugin/build/createSharedBuildConfig.d.ts +0 -5
  224. package/dist/plugin/build/createSharedBuildConfig.d.ts.map +0 -1
  225. package/dist/plugin/build/createSharedBuildConfig.js +0 -28
  226. package/dist/plugin/build/mergeInputs.d.ts +0 -9
  227. package/dist/plugin/build/mergeInputs.d.ts.map +0 -1
  228. package/dist/plugin/build/mergeInputs.js +0 -56
  229. package/dist/plugin/components.js.map +0 -1
  230. package/dist/plugin/config/moduleIdDefault.d.ts +0 -8
  231. package/dist/plugin/config/moduleIdDefault.d.ts.map +0 -1
  232. package/dist/plugin/config/moduleIdDefault.js +0 -23
  233. package/dist/plugin/config/moduleIdDefault.js.map +0 -1
  234. package/dist/plugin/helpers/createClientInputNormalizer.d.ts +0 -8
  235. package/dist/plugin/helpers/createClientInputNormalizer.d.ts.map +0 -1
  236. package/dist/plugin/helpers/createClientInputNormalizer.js +0 -35
  237. package/dist/plugin/helpers/createServerInputNormalizer.d.ts +0 -9
  238. package/dist/plugin/helpers/createServerInputNormalizer.d.ts.map +0 -1
  239. package/dist/plugin/helpers/createServerInputNormalizer.js +0 -37
  240. package/dist/plugin/helpers/createStaticInputNormalizer.d.ts +0 -7
  241. package/dist/plugin/helpers/createStaticInputNormalizer.d.ts.map +0 -1
  242. package/dist/plugin/helpers/createStaticInputNormalizer.js +0 -18
  243. package/dist/plugin/helpers/getModuleManifest.d.ts +0 -12
  244. package/dist/plugin/helpers/getModuleManifest.d.ts.map +0 -1
  245. package/dist/plugin/helpers/getModuleManifest.js +0 -24
  246. package/dist/plugin/helpers/getModuleManifest.js.map +0 -1
  247. package/dist/plugin/helpers/inputNormalizerWorker.d.ts +0 -11
  248. package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +0 -1
  249. package/dist/plugin/helpers/inputNormalizerWorker.js +0 -30
  250. package/dist/plugin/helpers/normalizedRelativePath.d.ts +0 -11
  251. package/dist/plugin/helpers/normalizedRelativePath.d.ts.map +0 -1
  252. package/dist/plugin/helpers/normalizedRelativePath.js +0 -36
  253. package/dist/plugin/helpers/resolveFilePath.d.ts +0 -13
  254. package/dist/plugin/helpers/resolveFilePath.d.ts.map +0 -1
  255. package/dist/plugin/helpers/resolveFilePath.js +0 -74
  256. package/dist/plugin/helpers/resolveWorkerModule.d.ts +0 -6
  257. package/dist/plugin/helpers/resolveWorkerModule.d.ts.map +0 -1
  258. package/dist/plugin/helpers/resolveWorkerModule.js +0 -24
  259. package/dist/plugin/helpers/validateModuleBase.d.ts +0 -3
  260. package/dist/plugin/helpers/validateModuleBase.d.ts.map +0 -1
  261. package/dist/plugin/helpers/validateModuleBase.js +0 -16
  262. package/dist/plugin/helpers/validateResolvedConfig.d.ts +0 -3
  263. package/dist/plugin/helpers/validateResolvedConfig.d.ts.map +0 -1
  264. package/dist/plugin/helpers/validateResolvedConfig.js +0 -17
  265. package/dist/plugin/react-server/createDevMiddleware.d.ts +0 -8
  266. package/dist/plugin/react-server/createDevMiddleware.d.ts.map +0 -1
  267. package/dist/plugin/react-server/createDevMiddleware.js +0 -68
  268. package/dist/plugin/react-server/createDevServer.d.ts +0 -4
  269. package/dist/plugin/react-server/createDevServer.d.ts.map +0 -1
  270. package/dist/plugin/react-server/createDevServer.js +0 -4
  271. package/dist/plugin/react-server/createReactNodeStreamer.d.ts +0 -10
  272. package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +0 -1
  273. package/dist/plugin/react-server/createReactNodeStreamer.js +0 -7
  274. package/dist/plugin/transformer/transformer-client-components.d.ts +0 -21
  275. package/dist/plugin/transformer/transformer-client-components.d.ts.map +0 -1
  276. package/dist/plugin/transformer/transformer-client-components.js +0 -61
  277. package/dist/plugin/transformer/transformer-client-components.js.map +0 -1
  278. package/dist/plugin/transformer/transformer-server-actions.d.ts +0 -29
  279. package/dist/plugin/transformer/transformer-server-actions.d.ts.map +0 -1
  280. package/dist/plugin/transformer/transformer-server-actions.js +0 -76
  281. package/dist/plugin/transformer/transformer-server-actions.js.map +0 -1
  282. package/dist/plugin/worker/rsc/createRscStream.d.ts +0 -5
  283. package/dist/plugin/worker/rsc/createRscStream.d.ts.map +0 -1
  284. package/dist/plugin/worker/rsc/createRscStream.js +0 -39
  285. package/dist/plugin/worker/rsc/createRscStream.js.map +0 -1
  286. package/dist/plugin/worker/rsc/development.d.ts +0 -5
  287. package/dist/plugin/worker/rsc/development.d.ts.map +0 -1
  288. package/dist/plugin/worker/rsc/development.js +0 -13
  289. package/dist/plugin/worker/rsc/development.js.map +0 -1
  290. package/dist/plugin/worker/rsc/plugin.js.map +0 -1
  291. package/dist/plugin/worker/rsc/production.d.ts +0 -5
  292. package/dist/plugin/worker/rsc/production.d.ts.map +0 -1
  293. package/dist/plugin/worker/rsc/production.js +0 -13
  294. package/dist/plugin/worker/rsc/production.js.map +0 -1
  295. package/plugin/build/createClientBuildConfig.ts +0 -21
  296. package/plugin/build/createServerBuildConfig.ts +0 -66
  297. package/plugin/build/createSharedBuildConfig.ts +0 -35
  298. package/plugin/build/mergeInputs.ts +0 -58
  299. package/plugin/config/moduleIdDefault.ts +0 -23
  300. package/plugin/helpers/createClientInputNormalizer.ts +0 -48
  301. package/plugin/helpers/createServerInputNormalizer.ts +0 -52
  302. package/plugin/helpers/createStaticInputNormalizer.ts +0 -26
  303. package/plugin/helpers/getModuleManifest.ts +0 -31
  304. package/plugin/helpers/inputNormalizerWorker.ts +0 -47
  305. package/plugin/helpers/normalizedRelativePath.ts +0 -59
  306. package/plugin/helpers/resolveFilePath.ts +0 -108
  307. package/plugin/helpers/resolveWorkerModule.ts +0 -41
  308. package/plugin/helpers/validateModuleBase.ts +0 -30
  309. package/plugin/helpers/validateResolvedConfig.ts +0 -21
  310. package/plugin/react-server/createDevMiddleware.ts +0 -91
  311. package/plugin/react-server/createDevServer.ts +0 -9
  312. package/plugin/react-server/createReactNodeStreamer.ts +0 -26
  313. package/plugin/transformer/transformer-client-components.ts +0 -94
  314. package/plugin/transformer/transformer-server-actions.ts +0 -110
  315. package/plugin/worker/rsc/createRscStream.ts +0 -42
  316. package/plugin/worker/rsc/development.ts +0 -6
  317. package/plugin/worker/rsc/production.ts +0 -6
  318. package/scripts/react-server-dom-esm+0.0.1.patch +0 -24775
@@ -3,11 +3,12 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { DEFAULT_CONFIG } from './defaults.js';
7
6
  import { createInputNormalizer } from '../helpers/inputNormalizer.js';
7
+ import { join } from 'path';
8
+ import { globSync } from 'fs';
8
9
 
9
10
  function resolveUserConfig({
10
- condition,
11
+ isClient = false,
11
12
  config,
12
13
  configEnv,
13
14
  userOptions,
@@ -15,61 +16,159 @@ function resolveUserConfig({
15
16
  }) {
16
17
  try {
17
18
  const root = config.root ?? userOptions.projectRoot ?? process.cwd();
18
- const existingInput = config.build?.rollupOptions?.input || {};
19
- const currentInputs = typeof existingInput === "string" ? { default: existingInput } : existingInput;
20
- const normalizer = createInputNormalizer(root);
21
- const serverEntry = userOptions.serverEntry ? [userOptions.serverEntry, userOptions.serverEntry] : [];
22
- const inputs = {
23
- ...currentInputs,
24
- ...condition === "react-server" && files ? {
25
- "index.html": "/index.html",
26
- ...Object.fromEntries([
27
- ...serverEntry,
28
- ...Array.from(files.pageMap.entries()),
29
- ...Array.from(files.propsMap.entries())
30
- ].map(normalizer))
31
- } : {
32
- client: userOptions.clientEntry
19
+ const normalizer = createInputNormalizer({
20
+ root,
21
+ preserveModulesRoot: userOptions.build.preserveModulesRoot ? userOptions.moduleBase : void 0,
22
+ removeExtension: true
23
+ });
24
+ const serverEntry = userOptions.serverEntry ? Object.fromEntries([
25
+ normalizer([userOptions.serverEntry, userOptions.serverEntry])
26
+ ]) : null;
27
+ const clientEntry = userOptions.clientEntry ? Object.fromEntries(
28
+ [
29
+ [userOptions.clientEntry, userOptions.clientEntry],
30
+ ["index.html", "index.html"]
31
+ ].map(normalizer)
32
+ ) : { "index.html": "index.html" };
33
+ const autoDiscoveredClientFiles = (inputs2) => {
34
+ const allFiles = globSync(`**/*.client.*`, {
35
+ cwd: join(root, userOptions.moduleBase)
36
+ });
37
+ for (const file of allFiles) {
38
+ const [key, value] = normalizer(join(userOptions.moduleBase, file));
39
+ if (!inputs2[key]) {
40
+ inputs2[key] = value;
41
+ } else {
42
+ console.warn(`[RSC] Client file already exists: ${key}`);
43
+ }
33
44
  }
45
+ return inputs2;
34
46
  };
35
- const userConfig = {
36
- ...config,
37
- root,
38
- mode: configEnv.command === "build" ? "production" : "development",
39
- build: {
40
- ...config.build,
41
- outDir: condition === "react-server" ? userOptions.build.server : userOptions.build.client,
42
- assetsDir: condition === "react-server" ? "" : DEFAULT_CONFIG.CLIENT_ASSETS_DIR,
43
- ssr: condition === "react-server",
44
- target: condition === "react-server" ? "node18" : "es2020",
45
- minify: condition === "react-server" ? false : true,
46
- manifest: true,
47
- ssrManifest: false,
48
- ssrEmitAssets: true,
49
- rollupOptions: {
50
- ...config.build?.rollupOptions,
51
- input: inputs,
52
- preserveEntrySignatures: "strict",
53
- output: condition === "react-server" ? {
54
- preserveModules: true,
55
- entryFileNames: "[name].js",
56
- assetFileNames: "[name].[ext]",
57
- chunkFileNames: "[name].[ext]",
58
- format: "esm",
59
- exports: "named",
60
- hoistTransitiveImports: false,
61
- generatedCode: {
62
- constBindings: true,
63
- objectShorthand: true
64
- },
65
- interop: "auto"
66
- } : void 0
47
+ const autoDiscoveredServerFiles = (inputs2) => {
48
+ const allFiles = globSync(`${userOptions.moduleBase}/**/*.server.*`, {
49
+ cwd: join(root, userOptions.moduleBase)
50
+ });
51
+ for (const file of allFiles) {
52
+ const [key, value] = normalizer(join(userOptions.moduleBase, file));
53
+ if (!inputs2[key]) {
54
+ inputs2[key] = value;
55
+ } else {
56
+ console.warn(`[RSC] Server file already exists: ${key}`);
57
+ }
58
+ }
59
+ return inputs2;
60
+ };
61
+ const autoDiscoveredFiles = (inputs2) => {
62
+ if (!files) return inputs2;
63
+ for (const [key, value] of files.pageMap) {
64
+ if (!inputs2[key]) {
65
+ inputs2[key] = value;
66
+ } else {
67
+ console.warn(`[RSC] Page file already exists: ${key}`);
67
68
  }
68
69
  }
70
+ for (const [key, value] of files.propsMap) {
71
+ if (!inputs2[key]) {
72
+ inputs2[key] = value;
73
+ } else {
74
+ console.warn(`[RSC] Props file already exists: ${key}`);
75
+ }
76
+ }
77
+ return inputs2;
78
+ };
79
+ let inputs = isClient ? autoDiscoveredClientFiles(clientEntry) : autoDiscoveredServerFiles(autoDiscoveredFiles(serverEntry ?? {}));
80
+ const envDir = isClient ? userOptions.build.client : userOptions.build.server;
81
+ const pluginOutput = {
82
+ preserveModules: !isClient,
83
+ preserveModulesRoot: userOptions.build.preserveModulesRoot ? userOptions.moduleBase : void 0,
84
+ entryFileNames: userOptions.build.entryFile,
85
+ assetFileNames: userOptions.build.assetFile,
86
+ chunkFileNames: userOptions.build.chunkFile,
87
+ format: "esm",
88
+ exports: "named",
89
+ hoistTransitiveImports: false,
90
+ generatedCode: {
91
+ constBindings: true,
92
+ objectShorthand: true
93
+ },
94
+ interop: "auto"
69
95
  };
96
+ const newOutput = Array.isArray(config.build?.rollupOptions?.output) ? [...config.build?.rollupOptions?.output, pluginOutput] : typeof config.build?.rollupOptions?.output === "object" && config.build?.rollupOptions?.output !== null ? [config.build?.rollupOptions?.output, pluginOutput] : pluginOutput;
97
+ if (isClient) {
98
+ return {
99
+ type: "success",
100
+ userConfig: {
101
+ ...config,
102
+ root,
103
+ mode: configEnv.command === "build" ? "production" : "development",
104
+ resolve: {
105
+ external: ["react", "react-dom"],
106
+ alias: {}
107
+ },
108
+ ssr: {
109
+ target: "node",
110
+ external: [
111
+ "react",
112
+ "react-dom",
113
+ "react-server-dom-esm/client.browser"
114
+ ],
115
+ resolve: {
116
+ externalConditions: ["react-server"]
117
+ }
118
+ },
119
+ // client build options
120
+ build: {
121
+ ...config.build,
122
+ emptyOutDir: config.build?.emptyOutDir ?? true,
123
+ outDir: join(userOptions.build.outDir, envDir),
124
+ assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,
125
+ // modern browsers
126
+ target: ["esnext"],
127
+ minify: true,
128
+ ssr: typeof configEnv.isSsrBuild === "boolean" ? configEnv.isSsrBuild : true,
129
+ manifest: config.build?.manifest ?? `.vite/manifest.json`,
130
+ ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,
131
+ ssrEmitAssets: config.build?.ssrEmitAssets ?? true,
132
+ rollupOptions: {
133
+ ...config.build?.rollupOptions,
134
+ input: inputs,
135
+ output: newOutput,
136
+ preserveEntrySignatures: "exports-only"
137
+ }
138
+ }
139
+ }
140
+ };
141
+ }
70
142
  return {
71
143
  type: "success",
72
- userConfig
144
+ userConfig: {
145
+ ...config,
146
+ root,
147
+ mode: configEnv.command === "build" ? "production" : "development",
148
+ resolve: {
149
+ alias: {},
150
+ externalConditions: ["react-server"]
151
+ },
152
+ // server build options
153
+ build: {
154
+ ...config.build,
155
+ emptyOutDir: config.build?.emptyOutDir ?? true,
156
+ outDir: join(userOptions.build.outDir, envDir),
157
+ target: config.build?.target ?? "node18",
158
+ minify: config.build?.minify ?? true,
159
+ ssr: config.build?.ssr ?? configEnv.isSsrBuild ?? true,
160
+ manifest: config.build?.manifest ?? `.vite/manifest.json`,
161
+ ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,
162
+ ssrEmitAssets: config.build?.ssrEmitAssets ?? true,
163
+ assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,
164
+ rollupOptions: {
165
+ ...config.build?.rollupOptions,
166
+ input: inputs,
167
+ preserveEntrySignatures: config.build?.rollupOptions?.preserveEntrySignatures ?? "strict",
168
+ output: newOutput
169
+ }
170
+ }
171
+ }
73
172
  };
74
173
  } catch (error) {
75
174
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type { CheckFilesExistReturn, ResolvedUserConfig, ResolvedUserOptions } from \"../types.js\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\n\nexport type ResolveUserConfigProps = {\n condition: \"react-client\" | \"react-server\" | \"\";\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions;\n files?: CheckFilesExistReturn;\n};\n\nexport type ResolveUserConfigReturn = \n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig({\n condition,\n config,\n configEnv,\n userOptions,\n files\n}: ResolveUserConfigProps): ResolveUserConfigReturn {\n\n\n try {\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n const existingInput = config.build?.rollupOptions?.input || {};\n const currentInputs = typeof existingInput === 'string' ? { default: existingInput } : existingInput;\n const normalizer = createInputNormalizer(root);\n\n const serverEntry = userOptions.serverEntry ? [userOptions.serverEntry, userOptions.serverEntry] : [];\n // Add inputs based on condition\n const inputs = {\n ...currentInputs,\n ...(condition === 'react-server' && files ? {\n 'index.html': '/index.html',\n ...Object.fromEntries([\n ...serverEntry,\n ...Array.from(files.pageMap.entries()),\n ...Array.from(files.propsMap.entries())\n ].map(normalizer))\n } : {\n client: userOptions.clientEntry\n })\n };\n\n const userConfig = {\n ...config,\n root: root,\n mode: configEnv.command === 'build' ? 'production' : 'development',\n build: {\n ...config.build,\n outDir: condition === 'react-server' ? userOptions.build.server : userOptions.build.client,\n assetsDir: condition === 'react-server' ? \"\" : DEFAULT_CONFIG.CLIENT_ASSETS_DIR,\n ssr: condition === 'react-server',\n target: condition === 'react-server' ? 'node18' : 'es2020',\n minify: condition === 'react-server' ? false : true,\n manifest: true,\n ssrManifest: false,\n ssrEmitAssets: true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n preserveEntrySignatures: 'strict',\n output: condition === 'react-server' ? {\n preserveModules: true,\n entryFileNames: '[name].js',\n assetFileNames: '[name].[ext]',\n chunkFileNames: '[name].[ext]',\n format: 'esm',\n exports: 'named',\n hoistTransitiveImports: false,\n generatedCode: {\n constBindings: true,\n objectShorthand: true\n },\n interop: 'auto'\n } : undefined\n }\n }\n };\n\n return {\n type: \"success\",\n userConfig: userConfig as ResolvedUserConfig\n };\n } catch (error) {\n return {\n type: \"error\",\n error: error instanceof Error ? error : new Error(\"Failed to resolve config\")\n };\n }\n} "],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type {\n CheckFilesExistReturn,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { join } from \"path\";\n// @ts-ignore\nimport { globSync } from \"fs\";\nimport type { OutputOptions } from \"rollup\";\nexport type ResolveUserConfigProps = {\n isClient?: boolean;\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions;\n files?: CheckFilesExistReturn;\n};\n\nexport type ResolveUserConfigReturn =\n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig({\n isClient = false,\n config,\n configEnv,\n userOptions,\n files,\n}: ResolveUserConfigProps): ResolveUserConfigReturn {\n try {\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n\n const normalizer = createInputNormalizer({\n root,\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n removeExtension: true,\n });\n\n const serverEntry = userOptions.serverEntry\n ? Object.fromEntries([\n normalizer([userOptions.serverEntry, userOptions.serverEntry]),\n ])\n : null;\n const clientEntry = userOptions.clientEntry\n ? Object.fromEntries(\n [\n [userOptions.clientEntry, userOptions.clientEntry],\n [\"index.html\", \"index.html\"],\n ].map(normalizer)\n )\n : { \"index.html\": \"index.html\" };\n\n const autoDiscoveredClientFiles = (inputs: Record<string, string>) => {\n const allFiles = globSync(`**/*.client.*`, {\n cwd: join(root, userOptions.moduleBase),\n });\n\n for (const file of allFiles) {\n const [key, value] = normalizer(join(userOptions.moduleBase, file));\n if (!inputs[key]) {\n inputs[key] = value;\n } else {\n console.warn(`[RSC] Client file already exists: ${key}`);\n }\n }\n return inputs;\n };\n const autoDiscoveredServerFiles = (inputs: Record<string, string>) => {\n const allFiles = globSync(`${userOptions.moduleBase}/**/*.server.*`, {\n cwd: join(root, userOptions.moduleBase),\n });\n for (const file of allFiles) {\n const [key, value] = normalizer(join(userOptions.moduleBase, file));\n if (!inputs[key]) {\n inputs[key] = value;\n } else {\n console.warn(`[RSC] Server file already exists: ${key}`);\n }\n }\n return inputs;\n };\n const autoDiscoveredFiles = (inputs: Record<string, string>) => {\n if (!files) return inputs;\n\n // Add page files without extra prefix\n for (const [key, value] of files.pageMap) {\n if (!inputs[key]) {\n inputs[key] = value;\n } else {\n console.warn(`[RSC] Page file already exists: ${key}`);\n }\n }\n // Add props files without extra prefix\n for (const [key, value] of files.propsMap) {\n if (!inputs[key]) {\n inputs[key] = value;\n } else {\n console.warn(`[RSC] Props file already exists: ${key}`);\n }\n }\n return inputs;\n };\n\n // Add inputs based on condition\n let inputs = isClient\n ? autoDiscoveredClientFiles(clientEntry)\n : autoDiscoveredServerFiles(autoDiscoveredFiles(serverEntry ?? {}));\n\n const envDir = isClient\n ? userOptions.build.client\n : userOptions.build.server;\n\n const pluginOutput = {\n preserveModules: !isClient,\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n entryFileNames: userOptions.build.entryFile,\n assetFileNames: userOptions.build.assetFile,\n chunkFileNames: userOptions.build.chunkFile,\n format: \"esm\",\n exports: \"named\",\n hoistTransitiveImports: false,\n generatedCode: {\n constBindings: true,\n objectShorthand: true,\n },\n interop: \"auto\",\n } satisfies OutputOptions;\n \n const newOutput = Array.isArray(config.build?.rollupOptions?.output)\n ? [...config.build?.rollupOptions?.output, pluginOutput]\n : typeof config.build?.rollupOptions?.output === \"object\" &&\n config.build?.rollupOptions?.output !== null\n ? [config.build?.rollupOptions?.output, pluginOutput]\n : pluginOutput;\n\n if (isClient) {\n // client build options\n return {\n type: \"success\",\n userConfig: {\n ...config,\n root: root,\n mode: configEnv.command === \"build\" ? \"production\" : \"development\",\n resolve: {\n external: [\"react\", \"react-dom\"],\n alias: {},\n },\n ssr: {\n target: \"node\",\n external: [\n \"react\",\n \"react-dom\",\n \"react-server-dom-esm/client.browser\",\n ],\n resolve: {\n externalConditions: [\"react-server\"],\n },\n },\n // client build options\n build: {\n ...config.build,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: join(userOptions.build.outDir, envDir),\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n // modern browsers\n target: [\"esnext\"],\n minify: true,\n ssr:\n typeof configEnv.isSsrBuild === \"boolean\"\n ? configEnv.isSsrBuild\n : true,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: config.build?.ssrEmitAssets ?? true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n output: newOutput,\n preserveEntrySignatures: \"exports-only\",\n },\n },\n },\n };\n }\n // server build options\n return {\n type: \"success\",\n userConfig: {\n ...config,\n root: root,\n mode: configEnv.command === \"build\" ? \"production\" : \"development\",\n resolve: {\n alias: {},\n externalConditions: [\"react-server\"],\n },\n // server build options\n build: {\n ...config.build,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: join(userOptions.build.outDir, envDir),\n target: config.build?.target ?? \"node18\",\n minify: config.build?.minify ?? true,\n ssr: config.build?.ssr ?? configEnv.isSsrBuild ?? true,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: config.build?.ssrEmitAssets ?? true,\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n preserveEntrySignatures: config.build?.rollupOptions?.preserveEntrySignatures ?? \"strict\",\n output: newOutput,\n },\n },\n },\n };\n } catch (error) {\n return {\n type: \"error\",\n error:\n error instanceof Error ? error : new Error(\"Failed to resolve config\"),\n };\n }\n}\n"],"names":["inputs"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { OutputBundle, PluginContext } from "rollup";
2
+ interface BundleManifestEntry {
3
+ file: string;
4
+ name: string;
5
+ src?: string;
6
+ isEntry?: boolean;
7
+ imports?: string[];
8
+ dynamicImports?: string[];
9
+ css?: string[];
10
+ }
11
+ /**
12
+ * Get the bundle manifest from the plugin context. Will only work during production build
13
+ * @param pluginContext - The plugin context
14
+ * @param bundle - The bundle
15
+ * @param preserveModulesRoot - The preserve modules root
16
+ * @returns The bundle manifest
17
+ */
18
+ export declare function getBundleManifest({ pluginContext, bundle, moduleBase, preserveModulesRoot, }: {
19
+ pluginContext: PluginContext;
20
+ bundle: OutputBundle;
21
+ moduleBase?: string;
22
+ preserveModulesRoot?: boolean;
23
+ }): Record<string, BundleManifestEntry>;
24
+ export {};
25
+ //# sourceMappingURL=getBundleManifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBundleManifest.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/getBundleManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,QAAQ,CAAC;AAKhB,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,aAAa,EACb,MAAM,EACN,UAAU,EACV,mBAAmB,GACpB,EAAE;IACD,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA4EtC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * vite-plugin-react-server
3
+ * Copyright (c) Nico Brinkkemper
4
+ * MIT License
5
+ */
6
+ import { createInputNormalizer } from './inputNormalizer.js';
7
+ import 'path';
8
+ import { DEFAULT_CONFIG } from '../config/defaults.js';
9
+
10
+ function getBundleManifest({
11
+ pluginContext,
12
+ bundle,
13
+ moduleBase,
14
+ preserveModulesRoot
15
+ }) {
16
+ const normalizer = createInputNormalizer({
17
+ root: pluginContext.environment.config.root,
18
+ removeExtension: DEFAULT_CONFIG.FILE_REGEX,
19
+ preserveModulesRoot: preserveModulesRoot === true ? moduleBase : undefined
20
+ });
21
+ if (!bundle) return {};
22
+ const virtualModules = /* @__PURE__ */ new Map();
23
+ const bundleManifest = Object.fromEntries(
24
+ Object.entries(bundle).map(([fileName, chunk]) => {
25
+ if (chunk.type !== "chunk") return null;
26
+ const chunkWithFacade = chunk;
27
+ const moduleId = chunkWithFacade.facadeModuleId || chunkWithFacade.moduleIds[0] || fileName;
28
+ if (moduleId.includes("commonjsHelpers")) {
29
+ return [
30
+ moduleId,
31
+ {
32
+ file: "commonjs-runtime.js",
33
+ name: "commonjsHelpers",
34
+ src: moduleId,
35
+ isEntry: false
36
+ }
37
+ ];
38
+ }
39
+ const [normalizedId, sourcePath] = normalizer(moduleId);
40
+ let finalFileName = fileName;
41
+ if (moduleId.includes("?")) {
42
+ const [basePath, query] = moduleId.split("?");
43
+ const virtualPath = basePath.includes("node_modules") ? basePath.split("node_modules/")[1] : basePath;
44
+ const virtualKey = `${virtualPath}?${query}`;
45
+ if (!virtualModules.has(virtualKey)) {
46
+ const virtualFileName = `${virtualPath.replace(/\.js$/, "")}.${query}.js`;
47
+ virtualModules.set(virtualKey, virtualFileName);
48
+ }
49
+ finalFileName = virtualModules.get(virtualKey);
50
+ }
51
+ const bundleManifestEntry = [
52
+ sourcePath,
53
+ {
54
+ file: finalFileName,
55
+ name: normalizedId.startsWith("\0") ? normalizedId.replace("\0", "") : normalizedId,
56
+ src: sourcePath.startsWith("/") ? sourcePath.slice(1) : sourcePath,
57
+ isEntry: chunk.isEntry,
58
+ ...chunk.imports?.length > 0 ? { imports: chunk.imports } : {},
59
+ ...chunk.dynamicImports?.length > 0 ? { dynamicImports: chunk.dynamicImports } : {},
60
+ ...chunk.viteMetadata?.importedCss?.size ? {
61
+ css: Array.from(chunk.viteMetadata.importedCss)
62
+ } : {}
63
+ }
64
+ ];
65
+ return bundleManifestEntry;
66
+ }).filter(Boolean)
67
+ );
68
+ return bundleManifest;
69
+ }
70
+
71
+ export { getBundleManifest };
72
+ //# sourceMappingURL=getBundleManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBundleManifest.js","sources":["../../../plugin/helpers/getBundleManifest.ts"],"sourcesContent":["import type {\n OutputBundle,\n PluginContext,\n OutputChunk,\n} from \"rollup\";\nimport { createInputNormalizer } from \"./inputNormalizer.js\";\nimport { join } from \"path\";\nimport { DEFAULT_CONFIG, resolveOptions } from \"../config/index.js\";\n\ninterface BundleManifestEntry {\n file: string;\n name: string;\n src?: string;\n isEntry?: boolean;\n imports?: string[];\n dynamicImports?: string[];\n css?: string[];\n}\n\n/**\n * Get the bundle manifest from the plugin context. Will only work during production build\n * @param pluginContext - The plugin context\n * @param bundle - The bundle\n * @param preserveModulesRoot - The preserve modules root\n * @returns The bundle manifest\n */\nexport function getBundleManifest({\n pluginContext,\n bundle,\n moduleBase,\n preserveModulesRoot,\n}: {\n pluginContext: PluginContext,\n bundle: OutputBundle,\n moduleBase?: string,\n preserveModulesRoot?: boolean,\n}): Record<string, BundleManifestEntry> {\n\n const normalizer = createInputNormalizer({\n root: pluginContext.environment.config.root,\n removeExtension: DEFAULT_CONFIG.FILE_REGEX,\n preserveModulesRoot: preserveModulesRoot === true ? moduleBase : undefined,\n });\n\n if (!bundle) return {};\n\n // Track virtual modules to prevent duplicates\n const virtualModules = new Map<string, string>();\n\n const bundleManifest = Object.fromEntries(\n Object.entries(bundle)\n .map(([fileName, chunk]) => {\n if (chunk.type !== \"chunk\") return null as never;\n const chunkWithFacade = chunk as OutputChunk;\n \n // Get the module ID, preferring facadeModuleId\n const moduleId = chunkWithFacade.facadeModuleId || chunkWithFacade.moduleIds[0] || fileName;\n \n // Handle commonjs helpers specially - must be done before normalization\n if (moduleId.includes('commonjsHelpers')) {\n return [\n moduleId,\n {\n file: 'commonjs-runtime.js',\n name: 'commonjsHelpers',\n src: moduleId,\n isEntry: false\n }\n ];\n }\n \n // Normalize both paths, removing the root prefix\n const [normalizedId, sourcePath] = normalizer(moduleId);\n\n // For virtual modules, use a consistent naming scheme\n let finalFileName = fileName;\n if (moduleId.includes('?')) {\n const [basePath, query] = moduleId.split('?');\n const virtualPath = basePath.includes('node_modules') \n ? basePath.split('node_modules/')[1] \n : basePath;\n \n // Create a unique key for this virtual module\n const virtualKey = `${virtualPath}?${query}`;\n \n if (!virtualModules.has(virtualKey)) {\n // First time seeing this virtual module\n const virtualFileName = `${virtualPath.replace(/\\.js$/, '')}.${query}.js`;\n virtualModules.set(virtualKey, virtualFileName);\n }\n \n finalFileName = virtualModules.get(virtualKey)!;\n }\n const bundleManifestEntry = [\n sourcePath,\n {\n file: finalFileName,\n name: normalizedId.startsWith('\\x00') ? normalizedId.replace('\\x00', '') : normalizedId,\n src: sourcePath.startsWith('/') ? sourcePath.slice(1) : sourcePath,\n isEntry: chunk.isEntry,\n ...(chunk.imports?.length > 0 ? { imports: chunk.imports } : {}),\n ...(chunk.dynamicImports?.length > 0 ? { dynamicImports: chunk.dynamicImports } : {}),\n ...(chunk.viteMetadata?.importedCss?.size ? {\n css: Array.from(chunk.viteMetadata.importedCss),\n } : {}),\n },\n ];\n return bundleManifestEntry;\n })\n .filter(Boolean)\n );\n return bundleManifest;\n}\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
1
  import type { InputNormalizer } from "../types.js";
2
- export declare function createInputNormalizer(root: string): InputNormalizer;
2
+ type CreateInputNormalizerProps = {
3
+ root: string;
4
+ preserveModulesRoot?: string | undefined;
5
+ removeExtension?: boolean | RegExp | string | ((path: string) => boolean);
6
+ };
7
+ /**
8
+ * @description Create a function that normalizes the input
9
+ * @param root - The root of the project
10
+ * @param preserveModulesRoot - The root of the preserve modules
11
+ * @param removeExtension - Whether to remove the extension of the file
12
+ * @returns A function that normalizes the input
13
+ */
14
+ export declare function createInputNormalizer({ root, preserveModulesRoot, removeExtension, }: CreateInputNormalizerProps): InputNormalizer;
15
+ export {};
3
16
  //# sourceMappingURL=inputNormalizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputNormalizer.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/inputNormalizer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AAEpE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA+BnE"}
1
+ {"version":3,"file":"inputNormalizer.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/inputNormalizer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AAIpE,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CAC3E,CAAC;AAmHF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,mBAA+B,EAC/B,eAA2C,GAC5C,EAAE,0BAA0B,GAAG,eAAe,CA8D9C"}
@@ -3,29 +3,141 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { join } from 'path';
7
6
  import { normalizePath } from 'vite';
7
+ import { join } from 'path';
8
8
  import { DEFAULT_CONFIG } from '../config/defaults.js';
9
9
 
10
- function createInputNormalizer(root) {
11
- const normalizeKey = (key) => {
12
- return key.replace(DEFAULT_CONFIG.FILE_REGEX, "").replace(/^\/+/, "");
13
- };
14
- return (input) => {
15
- if (Array.isArray(input)) {
16
- const [key, path] = input;
10
+ const resolveExtensionOptions = (removeExtension) => {
11
+ if (typeof removeExtension === "boolean") {
12
+ if (removeExtension) {
13
+ return (path) => {
14
+ const extensionIndex = path.lastIndexOf(".");
15
+ return extensionIndex !== -1 ? path.slice(0, extensionIndex) : path;
16
+ };
17
+ }
18
+ return (path) => path;
19
+ }
20
+ if (typeof removeExtension === "string") {
21
+ return (path) => path.replace(removeExtension, "");
22
+ }
23
+ if (removeExtension instanceof RegExp) {
24
+ return (path) => removeExtension.test(path) ? path.replace(removeExtension, "") : path;
25
+ }
26
+ if (typeof removeExtension === "function") {
27
+ return (path) => {
28
+ const extIndex = path.lastIndexOf(".");
29
+ if (extIndex !== -1) {
30
+ const extension = path.slice(extIndex);
31
+ if (removeExtension(extension)) {
32
+ return path.slice(0, extIndex);
33
+ }
34
+ }
35
+ return path;
36
+ };
37
+ }
38
+ return (path) => path;
39
+ };
40
+ const resolveRootOption = (root, preserveModulesRoot) => {
41
+ if (typeof preserveModulesRoot === "string" && typeof root === "string") {
42
+ const normalizedPreserveModulesRoot = normalizePath(preserveModulesRoot);
43
+ if (normalizedPreserveModulesRoot.startsWith(root)) {
44
+ return normalizedPreserveModulesRoot.slice(root.length + 1);
45
+ }
46
+ return "";
47
+ } else if (typeof preserveModulesRoot === "string" && typeof root !== "string") {
48
+ return normalizePath(preserveModulesRoot);
49
+ }
50
+ return "";
51
+ };
52
+ const createKeyNormalizer = ({
53
+ root: normalizedRoot,
54
+ preserveModulesRoot,
55
+ handleExtension
56
+ }) => (key) => {
57
+ const virtualPrefix = key.match(/^\0+/)?.[0] || "";
58
+ const actualKey = key.slice(virtualPrefix.length);
59
+ let moduleId = normalizePath(actualKey);
60
+ if (moduleId.startsWith(normalizedRoot)) {
61
+ moduleId = moduleId.slice(normalizedRoot.length);
62
+ }
63
+ moduleId = handleExtension(moduleId);
64
+ while (moduleId.startsWith("/") || moduleId.startsWith(".")) {
65
+ moduleId = moduleId.slice(1);
66
+ }
67
+ while (moduleId.endsWith("/")) {
68
+ moduleId = moduleId.slice(0, -1);
69
+ }
70
+ if (typeof preserveModulesRoot === "string" && preserveModulesRoot !== "") {
71
+ moduleId = moduleId.startsWith(preserveModulesRoot) ? moduleId.slice(preserveModulesRoot.length) : moduleId;
72
+ }
73
+ return virtualPrefix + moduleId;
74
+ };
75
+ const createPathNormalizer = ({
76
+ root,
77
+ preserveModulesRoot
78
+ }) => (path) => {
79
+ if (typeof path !== "string") {
80
+ throw new Error(`Invalid path: ${JSON.stringify(path)}`);
81
+ }
82
+ let normalPath = normalizePath(path);
83
+ if (normalPath.startsWith(root)) {
84
+ normalPath = normalPath.slice(root.length);
85
+ }
86
+ if (typeof preserveModulesRoot === "string" && preserveModulesRoot !== "") {
87
+ normalPath = normalPath.startsWith(preserveModulesRoot) ? normalPath.slice(preserveModulesRoot.length) : normalPath;
88
+ }
89
+ while (normalPath.endsWith("/")) {
90
+ normalPath = normalPath.slice(0, -1);
91
+ }
92
+ return normalPath;
93
+ };
94
+ function createInputNormalizer({
95
+ root,
96
+ preserveModulesRoot = undefined,
97
+ removeExtension = DEFAULT_CONFIG.FILE_REGEX
98
+ }) {
99
+ const relativeRoot = resolveRootOption(root, preserveModulesRoot);
100
+ const handleExtension = resolveExtensionOptions(removeExtension);
101
+ const normalizeEntryKey = createKeyNormalizer({
102
+ root,
103
+ preserveModulesRoot: relativeRoot,
104
+ handleExtension
105
+ });
106
+ const normalizeEntryPath = createPathNormalizer({
107
+ root,
108
+ preserveModulesRoot: relativeRoot
109
+ });
110
+ function normalizeInput(id) {
111
+ if (Array.isArray(id)) {
112
+ const [key, path] = id;
113
+ if (typeof key === "string" && Array.isArray(path) && path.length === 2) {
114
+ const isNumber = !isNaN(Number(key));
115
+ if (isNumber) {
116
+ return normalizeInput([path[0], path[1]]);
117
+ }
118
+ return normalizeInput([join(key, path[0]), path[1]]);
119
+ }
120
+ if (typeof key !== "string" || typeof path !== "string") {
121
+ throw new Error(`Invalid input: ${JSON.stringify(id)}`);
122
+ }
123
+ return [normalizeEntryKey(key), normalizeEntryPath(path)];
124
+ } else if (typeof id === "string") {
125
+ return [normalizeEntryKey(id), normalizeEntryPath(id)];
126
+ } else if (typeof id === "object" && id !== null && "$$typeof" in id && "$$id" in id && typeof id.$$id === "string") {
17
127
  const normalized = [
18
- normalizeKey(key),
19
- normalizePath(join(root, path))
128
+ normalizeEntryKey(id.$$id),
129
+ normalizeEntryPath(id.$$id)
20
130
  ];
21
131
  return normalized;
22
132
  }
23
- if (typeof input === "string") {
24
- const key = normalizeKey(input);
25
- const path = normalizePath(join(root, input));
26
- return [key, path];
27
- }
28
- throw new Error(`Invalid input type: ${typeof input}`);
133
+ throw new Error(`Invalid input type: ${typeof id}`);
134
+ }
135
+ return (input) => {
136
+ const [key, path] = normalizeInput(input);
137
+ const normalizedPath = path.startsWith("/") ? path.slice(1) : path;
138
+ const virtualPrefix = key.match(/^\0+/)?.[0] || "";
139
+ const finalPath = virtualPrefix ? normalizedPath.startsWith(virtualPrefix) ? normalizedPath : virtualPrefix + normalizedPath : normalizedPath;
140
+ return [key, finalPath];
29
141
  };
30
142
  }
31
143
 
@@ -1 +1 @@
1
- {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { join } from \"path\";\nimport { normalizePath } from \"vite\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\nimport type { InputNormalizer, NormalizerInput } from \"../types.js\";\n\nexport function createInputNormalizer(root: string): InputNormalizer {\n\n // Normalize a key by removing file extensions and leading slashes\n const normalizeKey = (key: string): string => {\n return key\n .replace(DEFAULT_CONFIG.FILE_REGEX, \"\") // Remove TypeScript/JavaScript extensions\n .replace(/^\\/+/, \"\"); // Remove leading slashes\n };\n\n // Main normalize function\n return (input: NormalizerInput): [string, string] => {\n \n // Handle tuple input [key, path]\n if (Array.isArray(input)) {\n const [key, path] = input;\n const normalized: [string, string] = [\n normalizeKey(key),\n normalizePath(join(root, path))\n ] \n return normalized;\n }\n\n // Handle string input\n if (typeof input === \"string\") {\n const key = normalizeKey(input);\n const path = normalizePath(join(root, input)); \n return [key, path];\n }\n\n throw new Error(`Invalid input type: ${typeof input}`);\n };\n}\n"],"names":[],"mappings":";;;;;;;;;AAKO,SAAS,sBAAsB,IAA+B,EAAA;AAGnE,EAAM,MAAA,YAAA,GAAe,CAAC,GAAwB,KAAA;AAC5C,IAAO,OAAA,GAAA,CACJ,QAAQ,cAAe,CAAA,UAAA,EAAY,EAAE,CACrC,CAAA,OAAA,CAAQ,QAAQ,EAAE,CAAA;AAAA,GACvB;AAGA,EAAA,OAAO,CAAC,KAA6C,KAAA;AAGnD,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,CAAC,GAAK,EAAA,IAAI,CAAI,GAAA,KAAA;AACpB,MAAA,MAAM,UAA+B,GAAA;AAAA,QACnC,aAAa,GAAG,CAAA;AAAA,QAChB,aAAc,CAAA,IAAA,CAAK,IAAM,EAAA,IAAI,CAAC;AAAA,OAChC;AACA,MAAO,OAAA,UAAA;AAAA;AAIT,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAM,MAAA,GAAA,GAAM,aAAa,KAAK,CAAA;AAC9B,MAAA,MAAM,IAAO,GAAA,aAAA,CAAc,IAAK,CAAA,IAAA,EAAM,KAAK,CAAC,CAAA;AAC5C,MAAO,OAAA,CAAC,KAAK,IAAI,CAAA;AAAA;AAGnB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAuB,oBAAA,EAAA,OAAO,KAAK,CAAE,CAAA,CAAA;AAAA,GACvD;AACF;;;;"}
1
+ {"version":3,"file":"inputNormalizer.js","sources":["../../../plugin/helpers/inputNormalizer.ts"],"sourcesContent":["import { normalizePath } from \"vite\";\nimport type { InputNormalizer, NormalizerInput } from \"../types.js\";\nimport { join } from \"path\";\nimport { DEFAULT_CONFIG } from \"../config/defaults.js\";\n\ntype CreateInputNormalizerProps = {\n root: string;\n preserveModulesRoot?: string | undefined;\n removeExtension?: boolean | RegExp | string | ((path: string) => boolean);\n};\n\nconst resolveExtensionOptions = (\n removeExtension: CreateInputNormalizerProps[\"removeExtension\"]\n) => {\n if (typeof removeExtension === \"boolean\") {\n if (removeExtension) {\n return (path: string) => {\n const extensionIndex = path.lastIndexOf(\".\");\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 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 (normalizedPreserveModulesRoot.startsWith(root)) {\n return normalizedPreserveModulesRoot.slice(root.length + 1);\n }\n return \"\";\n } else if (typeof preserveModulesRoot === \"string\" && typeof root !== \"string\") {\n return normalizePath(preserveModulesRoot);\n }\n return \"\";\n};\nconst createKeyNormalizer =\n ({\n root: normalizedRoot,\n preserveModulesRoot,\n handleExtension,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n handleExtension: (path: string) => string;\n }) =>\n (key: string) => {\n // Handle virtual modules first\n const virtualPrefix = key.match(/^\\0+/)?.[0] || '';\n const actualKey = key.slice(virtualPrefix.length);\n \n let moduleId = normalizePath(actualKey);\n \n if (moduleId.startsWith(normalizedRoot)) {\n moduleId = moduleId.slice(normalizedRoot.length);\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)\n : moduleId;\n }\n \n // Add virtual prefix back\n return virtualPrefix + moduleId;\n };\n\nconst createPathNormalizer =\n ({\n root,\n preserveModulesRoot,\n }: {\n root: string;\n preserveModulesRoot: string | undefined;\n }) =>\n (path: string) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n let normalPath = normalizePath(path);\n if(normalPath.startsWith(root)) {\n normalPath = normalPath.slice(root.length);\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 preserveModulesRoot = undefined,\n removeExtension = DEFAULT_CONFIG.FILE_REGEX,\n}: CreateInputNormalizerProps): InputNormalizer {\n const relativeRoot = resolveRootOption(root, preserveModulesRoot);\n const handleExtension = resolveExtensionOptions(removeExtension);\n\n const normalizeEntryKey = createKeyNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\n handleExtension,\n });\n\n const normalizeEntryPath = createPathNormalizer({\n root: root,\n preserveModulesRoot: relativeRoot,\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 return (input: NormalizerInput): [string, string] => {\n const [key, path] = normalizeInput(input);\n // Apply the same normalization to both key and path\n const normalizedPath = path.startsWith('/') ? path.slice(1) : path;\n const virtualPrefix = key.match(/^\\0+/)?.[0] || '';\n \n // If key has virtual prefix, ensure path has it too\n const finalPath = virtualPrefix ? \n (normalizedPath.startsWith(virtualPrefix) ? normalizedPath : virtualPrefix + normalizedPath) : \n normalizedPath;\n \n return [key, finalPath];\n };\n}\n"],"names":[],"mappings":"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"}
@@ -2,14 +2,16 @@ import type { Manifest } from "vite";
2
2
  type TryManifestOptions<SSR extends boolean> = {
3
3
  root: string;
4
4
  outDir: string;
5
- ssrManifest: SSR;
5
+ ssrManifest?: SSR;
6
6
  };
7
7
  export declare function tryManifest<SSR extends boolean>(options: TryManifestOptions<SSR>): {
8
8
  type: "success";
9
9
  manifest: SSR extends true ? Record<string, string[]> : Manifest;
10
+ error?: never;
10
11
  } | {
11
12
  type: "error";
12
13
  error: Error;
14
+ manifest?: never;
13
15
  };
14
16
  export {};
15
17
  //# 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;AAErC,KAAK,kBAAkB,CAAC,GAAG,SAAS,OAAO,IAAI;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,SAAS,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG;IAClF,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC;CAClE,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;CACd,CAoBA"}
1
+ {"version":3,"file":"tryManifest.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/tryManifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,KAAK,kBAAkB,CAAC,GAAG,SAAS,OAAO,IAAI;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,SAAS,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG;IAClF,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,GAAG,SAAS,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC;IACjE,KAAK,CAAC,EAAC,KAAK,CAAA;CACb,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAC,KAAK,CAAA;CAChB,CAoBA"}
@@ -11,7 +11,7 @@ function tryManifest(options) {
11
11
  options.root,
12
12
  options.outDir,
13
13
  ".vite",
14
- "manifest.json"
14
+ options.ssrManifest ? "ssr-manifest.json" : "manifest.json"
15
15
  );
16
16
  try {
17
17
  const result = JSON.parse(readFileSync(manifestPath, "utf-8"));