vike 0.4.236 → 0.4.237-commit-85e89b1

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 (261) hide show
  1. package/dist/cjs/client/runtime-client-routing/globalContext.js +2 -2
  2. package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
  3. package/dist/cjs/client/shared/createGetGlobalContextClient.js +21 -13
  4. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +10 -1
  5. package/dist/cjs/client/shared/utils.js +1 -0
  6. package/dist/cjs/node/api/preview.js +1 -1
  7. package/dist/cjs/node/prerender/runPrerender.js +4 -4
  8. package/dist/cjs/node/runtime/globalContext.js +127 -41
  9. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  10. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
  11. package/dist/cjs/node/runtime/html/serializeContext.js +25 -64
  12. package/dist/cjs/node/runtime/html/stream.js +1 -1
  13. package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
  14. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  15. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  16. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -2
  17. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  18. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +8 -34
  19. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
  20. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +23 -9
  21. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
  22. package/dist/cjs/node/runtime/renderPage.js +9 -8
  23. package/dist/cjs/node/runtime/utils.js +4 -0
  24. package/dist/cjs/node/shared/utils.js +1 -0
  25. package/dist/cjs/node/shared/virtualFileId.js +110 -0
  26. package/dist/cjs/node/vite/index.js +5 -3
  27. package/dist/cjs/node/vite/onLoad.js +5 -3
  28. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -23
  29. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
  30. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
  31. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -14
  32. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  33. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
  34. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +6 -12
  36. package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
  37. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +119 -73
  38. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +8 -15
  39. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +8 -9
  40. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +7 -3
  41. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +47 -0
  42. package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
  43. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
  44. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
  45. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  46. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  47. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
  48. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +18 -17
  49. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  50. package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  51. package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
  52. package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
  53. package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
  54. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
  55. package/dist/cjs/node/vite/shared/isViteServerBuild.js +54 -31
  56. package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
  57. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  58. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  59. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
  60. package/dist/cjs/node/vite/utils.js +1 -0
  61. package/dist/cjs/shared/createGlobalContextShared.js +36 -15
  62. package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
  63. package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
  64. package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
  65. package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
  66. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  67. package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  68. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -16
  69. package/dist/cjs/shared/utils.js +2 -0
  70. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  71. package/dist/cjs/utils/assertSetup.js +7 -5
  72. package/dist/cjs/utils/cast.js +1 -1
  73. package/dist/cjs/utils/debug.js +1 -0
  74. package/dist/cjs/utils/getViteRPC.js +79 -0
  75. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -0
  76. package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
  77. package/dist/cjs/utils/virtualFileId.js +39 -0
  78. package/dist/esm/client/node.js +1 -1
  79. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +3 -3
  80. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  81. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +14 -14
  82. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
  83. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +3 -3
  84. package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
  85. package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
  86. package/dist/esm/client/runtime-client-routing/history.js +39 -22
  87. package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
  88. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  89. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  90. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  91. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  92. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +5 -5
  93. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +43 -30
  94. package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
  95. package/dist/esm/client/runtime-client-routing/utils.js +2 -0
  96. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +4 -4
  97. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +3 -3
  98. package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
  99. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  100. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +4 -4
  101. package/dist/esm/client/shared/createGetGlobalContextClient.js +21 -13
  102. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  103. package/dist/esm/client/shared/getJsonSerializedInHtml.js +10 -1
  104. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  105. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  106. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  107. package/dist/esm/client/shared/utils.d.ts +1 -0
  108. package/dist/esm/client/shared/utils.js +1 -0
  109. package/dist/esm/node/api/preview.js +1 -1
  110. package/dist/esm/node/prerender/runPrerender.d.ts +49 -141
  111. package/dist/esm/node/prerender/runPrerender.js +4 -4
  112. package/dist/esm/node/runtime/globalContext.d.ts +43 -63
  113. package/dist/esm/node/runtime/globalContext.js +128 -42
  114. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  115. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
  116. package/dist/esm/node/runtime/html/serializeContext.d.ts +11 -6
  117. package/dist/esm/node/runtime/html/serializeContext.js +25 -64
  118. package/dist/esm/node/runtime/html/stream.js +1 -1
  119. package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
  120. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +13 -36
  121. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
  122. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  123. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  124. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
  125. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -3
  126. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
  127. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  128. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
  129. package/dist/esm/node/runtime/renderPage/getPageAssets.js +8 -34
  130. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  131. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
  132. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
  133. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
  134. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +26 -12
  135. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  136. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
  137. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +30 -77
  138. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
  139. package/dist/esm/node/runtime/renderPage.d.ts +13 -35
  140. package/dist/esm/node/runtime/renderPage.js +9 -8
  141. package/dist/esm/node/runtime/utils.d.ts +4 -0
  142. package/dist/esm/node/runtime/utils.js +4 -0
  143. package/dist/esm/node/shared/utils.d.ts +1 -0
  144. package/dist/esm/node/shared/utils.js +1 -0
  145. package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
  146. package/dist/esm/node/shared/virtualFileId.js +107 -0
  147. package/dist/esm/node/vite/index.js +5 -3
  148. package/dist/esm/node/vite/onLoad.js +5 -3
  149. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -3
  150. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +32 -24
  151. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
  152. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
  153. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
  154. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -14
  155. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
  156. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
  157. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
  158. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +7 -10
  159. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  160. package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
  161. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +121 -75
  162. package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
  163. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +7 -8
  164. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
  165. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
  166. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +45 -0
  167. package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
  168. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
  169. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
  170. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
  171. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
  172. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  173. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
  174. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  175. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
  176. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
  177. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +17 -16
  178. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  179. package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
  180. package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
  181. package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
  182. package/dist/esm/node/vite/shared/getMagicString.js +13 -0
  183. package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
  184. package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
  185. package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
  186. package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
  187. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
  188. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
  189. package/dist/esm/node/vite/shared/isViteServerBuild.js +55 -31
  190. package/dist/esm/node/vite/shared/loggerVite.js +1 -1
  191. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
  192. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
  193. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  194. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
  195. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
  196. package/dist/esm/node/vite/utils.d.ts +1 -0
  197. package/dist/esm/node/vite/utils.js +1 -0
  198. package/dist/esm/shared/createGlobalContextShared.d.ts +8 -8
  199. package/dist/esm/shared/createGlobalContextShared.js +38 -17
  200. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
  201. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
  202. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  203. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  204. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  205. package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
  206. package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
  207. package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
  208. package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
  209. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
  210. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
  211. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
  212. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
  213. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  214. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
  215. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +17 -17
  216. package/dist/esm/shared/utils.d.ts +2 -0
  217. package/dist/esm/shared/utils.js +2 -0
  218. package/dist/esm/types/Config.d.ts +33 -98
  219. package/dist/esm/types/PageConfig.d.ts +9 -7
  220. package/dist/esm/types/VikeNamespace.d.ts +13 -0
  221. package/dist/esm/types/index.d.ts +3 -1
  222. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  223. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  224. package/dist/esm/utils/assertSetup.js +7 -5
  225. package/dist/esm/utils/cast.d.ts +2 -2
  226. package/dist/esm/utils/cast.js +1 -1
  227. package/dist/esm/utils/debug.d.ts +1 -1
  228. package/dist/esm/utils/debug.js +1 -0
  229. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  230. package/dist/esm/utils/getViteRPC.js +77 -0
  231. package/dist/esm/utils/isFilePathAbsoluteFilesystem.d.ts +7 -0
  232. package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -0
  233. package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
  234. package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
  235. package/dist/esm/utils/objectFilter.d.ts +1 -1
  236. package/dist/esm/utils/virtualFileId.d.ts +6 -0
  237. package/dist/esm/{node/shared/virtualFiles.js → utils/virtualFileId.js} +15 -17
  238. package/package.json +16 -7
  239. package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -29
  240. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -39
  241. package/dist/cjs/node/shared/virtualFiles.js +0 -41
  242. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
  243. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -10
  244. package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
  245. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
  246. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
  247. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
  248. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -26
  249. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
  250. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -37
  251. package/dist/esm/node/shared/virtualFiles.d.ts +0 -8
  252. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
  253. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
  254. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
  255. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
  256. package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
  257. package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
  258. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -8
  259. package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
  260. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
  261. package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
@@ -1,74 +1,113 @@
1
1
  export { determineOptimizeDeps };
2
2
  import { findPageFiles } from '../../shared/findPageFiles.js';
3
- import { assert, assertIsImportPathNpmPackage, createDebugger, getNpmPackageName, isArray, unique, } from '../../utils.js';
4
- import { getVikeConfigInternal, isOverridden } from '../../shared/resolveVikeConfigInternal.js';
3
+ import { assert, assertIsImportPathNpmPackage, createDebugger, getNpmPackageName, isArray, isFilePathAbsoluteFilesystem, isVirtualFileId, } from '../../utils.js';
4
+ import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
5
5
  import { analyzeClientEntries } from '../pluginBuild/pluginBuildConfig.js';
6
- import { virtualFileIdEntryClientCR, virtualFileIdEntryClientSR, } from '../../../shared/virtualFiles/virtualFileEntry.js';
6
+ import { virtualFileIdGlobalEntryClientCR, virtualFileIdGlobalEntryClientSR } from '../../../shared/virtualFileId.js';
7
7
  import { getFilePathResolved } from '../../shared/getFilePath.js';
8
+ import { getConfigValueSourcesRelevant } from '../pluginVirtualFiles/getConfigValueSourcesRelevant.js';
8
9
  const debug = createDebugger('vike:optimizeDeps');
9
10
  async function determineOptimizeDeps(config) {
10
11
  const vikeConfig = await getVikeConfigInternal();
11
12
  const { _pageConfigs: pageConfigs } = vikeConfig;
12
- const { entries, include } = await getPageDeps(config, pageConfigs);
13
- {
14
- // This actually doesn't work: Vite's dep optimizer doesn't seem to be able to crawl virtual files.
15
- // - Should we make it work? E.g. by creating a temporary file at node_modules/.vike/virtualFiles.js
16
- // - Or should we remove it? And make sure getPageDeps() also works for aliased import paths
17
- // - If we do, then we need to adjust include/entries (maybe by making include === entries -> will Vite complain?)
18
- const entriesVirtualFiles = getVirtualFiles(config, pageConfigs);
19
- entries.push(...entriesVirtualFiles);
13
+ const { entriesClient, entriesServer, includeClient, includeServer } = await getPageDeps(config, pageConfigs);
14
+ config.optimizeDeps.include = add(config.optimizeDeps.include, includeClient);
15
+ config.optimizeDeps.entries = add(config.optimizeDeps.entries, entriesClient);
16
+ // Workaround until https://github.com/vitejs/vite-plugin-react/issues/650
17
+ // - TODO/soon: remove workaround once https://github.com/vitejs/vite/pull/20495 is released
18
+ includeServer.push('react/jsx-dev-runtime');
19
+ for (const envName in config.environments) {
20
+ const env = config.environments[envName];
21
+ if (env.consumer === 'server' && env.optimizeDeps.noDiscovery === false) {
22
+ env.optimizeDeps.include = add(env.optimizeDeps.include, includeServer);
23
+ env.optimizeDeps.entries = add(env.optimizeDeps.entries, entriesServer);
24
+ }
20
25
  }
21
- /* Other Vite plugins may populate optimizeDeps, e.g. Cypress: https://github.com/vikejs/vike/issues/386
22
- assert(config.optimizeDeps.entries === undefined)
23
- */
24
- config.optimizeDeps.include = [...include, ...normalizeInclude(config.optimizeDeps.include)];
25
- config.optimizeDeps.entries = [...entries, ...normalizeEntries(config.optimizeDeps.entries)];
26
26
  if (debug.isActivated)
27
- debug('config.optimizeDeps', {
27
+ debug('optimizeDeps', {
28
28
  'config.optimizeDeps.entries': config.optimizeDeps.entries,
29
29
  'config.optimizeDeps.include': config.optimizeDeps.include,
30
+ 'config.optimizeDeps.exclude': config.optimizeDeps.exclude,
31
+ // @ts-ignore Vite doesn't seem to support ssr.optimizeDeps.entries (vite@7.0.6, July 2025)
32
+ 'config.ssr.optimizeDeps.entries': config.ssr.optimizeDeps.entries,
33
+ 'config.ssr.optimizeDeps.include': config.ssr.optimizeDeps.include,
34
+ 'config.ssr.optimizeDeps.exclude': config.ssr.optimizeDeps.exclude,
30
35
  });
31
36
  }
32
37
  async function getPageDeps(config, pageConfigs) {
33
- let entries = [];
34
- let include = [];
35
- const addEntry = (e) => {
38
+ let entriesClient = [];
39
+ let entriesServer = [];
40
+ let includeClient = [];
41
+ let includeServer = [];
42
+ const addEntry = (e, isForClientSide, definedAt) => {
36
43
  assert(e);
37
- entries.push(e);
44
+ // optimizeDeps.entries expects filesystem absolute paths
45
+ assert(isVirtualFileId(e) || isFilePathAbsoluteFilesystem(e));
46
+ if (isExcluded(e, isForClientSide, definedAt))
47
+ return;
48
+ if (isForClientSide) {
49
+ entriesClient.push(e);
50
+ }
51
+ else {
52
+ entriesServer.push(e);
53
+ }
38
54
  };
39
- const addInclude = (e) => {
55
+ const addInclude = (e, isForClientSide, definedAt) => {
40
56
  assert(e);
41
- // Shouldn't be a path alias, as path aliases would need to be added to config.optimizeDeps.entries instead of config.optimizeDeps.include
57
+ // optimizeDeps.include expects npm packages
58
+ assert(!e.startsWith('/'));
59
+ // Shouldn't be a path alias, as path aliases would need to be added to optimizeDeps.entries instead of optimizeDeps.include
42
60
  assertIsImportPathNpmPackage(e);
43
- include.push(e);
61
+ if (isExcluded(e, isForClientSide, definedAt))
62
+ return;
63
+ if (isForClientSide) {
64
+ includeClient.push(e);
65
+ }
66
+ else {
67
+ includeServer.push(e);
68
+ }
69
+ };
70
+ const isExcluded = (e, isForClientSide, definedAt) => {
71
+ const exclude = isForClientSide ? config.optimizeDeps.exclude : config.ssr.optimizeDeps.exclude;
72
+ if (!exclude)
73
+ return false;
74
+ if (definedAt?.importPathAbsolute) {
75
+ const npmPackageName = getNpmPackageName(definedAt.importPathAbsolute);
76
+ if (npmPackageName && exclude.includes(npmPackageName))
77
+ return true;
78
+ }
79
+ return exclude.includes(e);
44
80
  };
45
81
  // V1 design
46
82
  {
47
- pageConfigs.forEach((pageConfig) => {
48
- Object.entries(pageConfig.configValueSources).forEach(([configName, sources]) => {
49
- sources
50
- .filter((source) => !isOverridden(source, configName, pageConfig))
51
- .forEach((configValueSource) => {
52
- if (!configValueSource.valueIsLoadedWithImport && !configValueSource.valueIsFilePath)
53
- return;
54
- const { definedAt, configEnv } = configValueSource;
55
- if (!configEnv.client)
56
- return;
57
- if (definedAt.definedBy)
58
- return;
59
- if (definedAt.importPathAbsolute) {
60
- const npmPackageName = getNpmPackageName(definedAt.importPathAbsolute);
61
- if (npmPackageName && config.optimizeDeps.exclude?.includes(npmPackageName))
83
+ ;
84
+ [true, false].forEach((isForClientSide) => {
85
+ pageConfigs.forEach((pageConfig) => {
86
+ Object.entries(pageConfig.configValueSources).forEach(([configName]) => {
87
+ const runtimeEnv = {
88
+ isForClientSide,
89
+ isDev: true,
90
+ // TO-DO/eventually/remove-server-router: let's eventually remove support for Server Routing
91
+ isClientRouting: true,
92
+ };
93
+ const sourcesRelevant = getConfigValueSourcesRelevant(configName, runtimeEnv, pageConfig);
94
+ sourcesRelevant.forEach((configValueSource) => {
95
+ if (!configValueSource.valueIsLoadedWithImport && !configValueSource.valueIsFilePath)
62
96
  return;
63
- }
64
- if (definedAt.filePathAbsoluteUserRootDir !== null) {
65
- // Vite expects entries to be filesystem absolute paths (surprisingly so).
66
- addEntry(definedAt.filePathAbsoluteFilesystem);
67
- }
68
- else {
69
- // Adding definedAtFilePath.filePathAbsoluteFilesystem doesn't work for npm packages, I guess because of Vite's config.server.fs.allow
70
- addInclude(definedAt.importPathAbsolute);
71
- }
97
+ const { definedAt } = configValueSource;
98
+ if (definedAt.definedBy)
99
+ return;
100
+ if (definedAt.filePathAbsoluteUserRootDir !== null) {
101
+ addEntry(
102
+ // optimizeDeps.entries expects filesystem absolute paths
103
+ definedAt.filePathAbsoluteFilesystem, isForClientSide, definedAt);
104
+ }
105
+ else {
106
+ addInclude(
107
+ // optimizeDeps.include expects npm packages
108
+ definedAt.importPathAbsolute, isForClientSide, definedAt);
109
+ }
110
+ });
72
111
  });
73
112
  });
74
113
  });
@@ -80,35 +119,42 @@ async function getPageDeps(config, pageConfigs) {
80
119
  pageFiles.forEach((filePathAbsoluteUserRootDir) => {
81
120
  const entry = getFilePathResolved({ filePathAbsoluteUserRootDir, userRootDir });
82
121
  const { filePathAbsoluteFilesystem } = entry;
83
- addEntry(filePathAbsoluteFilesystem);
122
+ addEntry(filePathAbsoluteFilesystem, true);
84
123
  });
85
124
  }
86
- entries = unique(entries);
87
- include = unique(include);
88
- return { entries, include };
89
- }
90
- function getVirtualFiles(config, pageConfigs) {
91
- const { hasClientRouting, hasServerRouting, clientEntries } = analyzeClientEntries(pageConfigs, config);
92
- const entriesVirtualFiles = Object.values(clientEntries);
93
- if (hasClientRouting)
94
- entriesVirtualFiles.push(virtualFileIdEntryClientCR);
95
- if (hasServerRouting)
96
- entriesVirtualFiles.push(virtualFileIdEntryClientSR);
97
- return entriesVirtualFiles;
125
+ // Add virtual files.
126
+ // - This doesn't work: Vite's dep optimizer doesn't seem to be able to crawl virtual files.
127
+ // - Should we make it work? E.g. by creating a temporary file at node_modules/.vike/virtualFiles.js
128
+ // - Or should we remove it? And make sure getPageDeps() also works for aliased import paths
129
+ // - If we do, then we need to adjust include/entries (maybe by making include === entries -> will Vite complain?)
130
+ {
131
+ const { hasClientRouting, hasServerRouting, clientEntries } = analyzeClientEntries(pageConfigs, config);
132
+ Object.values(clientEntries).forEach((e) => addEntry(e, true));
133
+ if (hasClientRouting)
134
+ addEntry(virtualFileIdGlobalEntryClientCR, true);
135
+ if (hasServerRouting)
136
+ addEntry(virtualFileIdGlobalEntryClientSR, true);
137
+ }
138
+ entriesClient = entriesClient;
139
+ entriesServer = entriesServer;
140
+ includeClient = includeClient;
141
+ includeServer = includeServer;
142
+ return {
143
+ entriesClient,
144
+ entriesServer,
145
+ includeClient,
146
+ includeServer,
147
+ };
98
148
  }
99
- function normalizeEntries(entries) {
100
- if (isArray(entries))
101
- return entries;
102
- if (typeof entries === 'string')
103
- return [entries];
104
- if (entries === undefined)
105
- return [];
106
- assert(false);
149
+ function add(input, listAddendum) {
150
+ const list = !input ? [] : isArray(input) ? unique(input) : [input];
151
+ listAddendum.forEach((e) => {
152
+ if (!list.includes(e))
153
+ list.push(e);
154
+ });
155
+ return list;
107
156
  }
108
- function normalizeInclude(include) {
109
- if (isArray(include))
110
- return include;
111
- if (include === undefined)
112
- return [];
113
- assert(false);
157
+ function unique(arr) {
158
+ const arrUnique = Array.from(new Set(arr));
159
+ return arr.length !== arrUnique.length ? arrUnique : arr;
114
160
  }
@@ -1,11 +1,10 @@
1
1
  export { pluginEnvVars };
2
- import MagicString from 'magic-string';
3
2
  import { loadEnv } from 'vite';
4
3
  import { assert, assertPosixPath, assertUsage, assertWarning, escapeRegex, isArray, isNotNullish, lowerFirst, } from '../utils.js';
5
4
  import { getModuleFilePathAbsolute } from '../shared/getFilePath.js';
6
5
  import { normalizeId } from '../shared/normalizeId.js';
7
- import { isViteServerBuild_safe } from '../shared/isViteServerBuild.js';
8
- import { applyRegExpWithMagicString } from '../shared/applyRegExWithMagicString.js';
6
+ import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
7
+ import { getMagicString } from '../shared/getMagicString.js';
9
8
  // TO-DO/eventually:
10
9
  // - Make import.meta.env work inside +config.js
11
10
  // - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
@@ -37,8 +36,8 @@ function pluginEnvVars() {
37
36
  if (!code.includes('import.meta.env.'))
38
37
  return;
39
38
  const isBuild = config.command === 'build';
40
- const isClientSide = !isViteServerBuild_safe(config, options);
41
- const magicString = new MagicString(code);
39
+ const isClientSide = !isViteServerBuild_extraSafe(config, options, this.environment);
40
+ const { magicString, getMagicStringResult } = getMagicString(code, id);
42
41
  // Find & check
43
42
  const replacements = Object.entries(envsAll)
44
43
  .filter(([key]) => {
@@ -76,14 +75,11 @@ function pluginEnvVars() {
76
75
  .filter(isNotNullish);
77
76
  // Apply
78
77
  replacements.forEach(({ regExpStr, replacement }) => {
79
- applyRegExpWithMagicString(magicString, regExpStr, replacement);
78
+ magicString.replaceAll(new RegExp(regExpStr, 'g'), JSON.stringify(replacement));
80
79
  });
81
80
  if (!magicString.hasChanged())
82
81
  return null;
83
- return {
84
- code: magicString.toString(),
85
- map: magicString.generateMap({ hires: true, source: id }),
86
- };
82
+ return getMagicStringResult();
87
83
  },
88
84
  };
89
85
  }
@@ -6,8 +6,7 @@
6
6
  // - This approach supports import path aliases `vite.config.js#resolve.alias` https://vitejs.dev/config/#resolve-alias
7
7
  export { pluginExtractAssets };
8
8
  export { extractAssetsRE };
9
- import { assert, assertPosixPath, styleFileRE, createDebugger, isScriptFile, assertUsage, rollupSourceMapRemove, } from '../utils.js';
10
- import { resolveVirtualFileId, isVirtualFileId, getVirtualFileId } from '../../shared/virtualFiles.js';
9
+ import { assert, assertPosixPath, styleFileRE, createDebugger, isScriptFile, assertUsage, rollupSourceMapRemove, addVirtualFileIdPrefix, isVirtualFileId, removeVirtualFileIdPrefix, } from '../utils.js';
11
10
  import { extractAssetsAddQuery } from '../../shared/extractAssetsQuery.js';
12
11
  import { isAsset } from '../shared/isAsset.js';
13
12
  import { getImportStatements } from '../shared/parseEsModule.js';
@@ -16,8 +15,8 @@ import { handleAssetsManifest_isFixEnabled } from './pluginBuild/handleAssetsMan
16
15
  import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
17
16
  import { assertV1Design } from '../../shared/assertV1Design.js';
18
17
  import { normalizeId } from '../shared/normalizeId.js';
19
- import { isViteServerBuild_safe } from '../shared/isViteServerBuild.js';
20
- import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets.js';
18
+ import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
19
+ import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js';
21
20
  const extractAssetsRE = /(\?|&)extractAssets(?:&|$)/;
22
21
  const rawRE = /(\?|&)raw(?:&|$)/;
23
22
  const urlRE = /(\?|&)url(?:&|$)/;
@@ -46,7 +45,7 @@ function pluginExtractAssets() {
46
45
  }
47
46
  const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(vikeConfig.config);
48
47
  assert(includeAssetsImportedByServer);
49
- assert(!isViteServerBuild_safe(config, options));
48
+ assert(!isViteServerBuild_extraSafe(config, options, this.environment));
50
49
  const importStatements = await getImportStatements(src);
51
50
  const moduleNames = getImportedModules(importStatements);
52
51
  const code = moduleNames.map((moduleName) => `import '${moduleName}';`).join('\n');
@@ -63,7 +62,7 @@ function pluginExtractAssets() {
63
62
  // - Vite's `vite:resolve` plugin; https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
64
63
  enforce: 'pre',
65
64
  async resolveId(source, importer, options) {
66
- if (isViteServerBuild_safe(config, options)) {
65
+ if (isViteServerBuild_extraSafe(config, options, this.environment)) {
67
66
  // When building for the server, there should never be a `?extractAssets` query
68
67
  assert(!extractAssetsRE.test(source));
69
68
  assert(importer === undefined || !extractAssetsRE.test(importer));
@@ -124,7 +123,7 @@ function pluginExtractAssets() {
124
123
  load(id) {
125
124
  if (!isVirtualFileId(id))
126
125
  return undefined;
127
- id = getVirtualFileId(id);
126
+ id = removeVirtualFileIdPrefix(id);
128
127
  if (id === EMPTY_MODULE_ID) {
129
128
  return '// Erased by vike:pluginExtractAssets';
130
129
  }
@@ -151,7 +150,7 @@ function pluginExtractAssets() {
151
150
  }
152
151
  function emptyModule(file, importer) {
153
152
  debugOperation('NUKED', file, importer);
154
- return resolveVirtualFileId(EMPTY_MODULE_ID);
153
+ return addVirtualFileIdPrefix(EMPTY_MODULE_ID);
155
154
  }
156
155
  function appendExtractAssetsQuery(file, importer) {
157
156
  debugOperation('TRANSFORMED', file, importer);
@@ -4,18 +4,19 @@ export { extractExportNamesRE };
4
4
  import { assert, getFileExtension, createDebugger, getGlobalObject, assertUsage, rollupSourceMapRemove, } from '../utils.js';
5
5
  import { getExportNames } from '../shared/parseEsModule.js';
6
6
  import { normalizeId } from '../shared/normalizeId.js';
7
- import { isViteServerBuild_options } from '../shared/isViteServerBuild.js';
7
+ import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
8
8
  const extractExportNamesRE = /(\?|&)extractExportNames(?:&|$)/;
9
9
  const debug = createDebugger('vike:pluginExtractExportNames');
10
10
  const globalObject = getGlobalObject('plugins/pluginExtractExportNames.ts', {});
11
11
  function pluginExtractExportNames() {
12
12
  let isDev = false;
13
+ let config;
13
14
  return {
14
15
  name: 'vike:pluginExtractExportNames',
15
16
  enforce: 'post',
16
17
  async transform(src, id, options) {
17
18
  id = normalizeId(id);
18
- const isClientSide = !isViteServerBuild_options(options);
19
+ const isClientSide = !isViteServerBuild_extraSafe(config, options, this.environment);
19
20
  if (extractExportNamesRE.test(id)) {
20
21
  const code = await getExtractExportNamesCode(src, isClientSide, !isDev, id);
21
22
  debug('id ' + id, ['result:\n' + code.code.trim(), 'src:\n' + src.trim()]);
@@ -25,6 +26,9 @@ function pluginExtractExportNames() {
25
26
  configureServer() {
26
27
  isDev = true;
27
28
  },
29
+ configResolved(config_) {
30
+ config = config_;
31
+ },
28
32
  config() {
29
33
  if (debug.isActivated) {
30
34
  return { logLevel: 'silent' };
@@ -0,0 +1,26 @@
1
+ export { pluginNonRunnableDev };
2
+ import type { Plugin, ViteDevServer } from 'vite';
3
+ import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
4
+ export type ViteRPC = ReturnType<typeof getViteRpcFunctions>;
5
+ declare function getViteRpcFunctions(viteDevServer: ViteDevServer): {
6
+ transformIndexHtmlRPC(html: string): Promise<string>;
7
+ retrievePageAssetsDevRPC(clientDependencies: ClientDependency[], clientEntries: string[]): Promise<{
8
+ clientEntriesSrc: string[];
9
+ assetUrls: string[];
10
+ }>;
11
+ getViteConfigRuntimeRPC(): Promise<{
12
+ root: string;
13
+ build: {
14
+ outDir: string;
15
+ };
16
+ _baseViteOriginal: string;
17
+ vitePluginServerEntry: {
18
+ inject: boolean | undefined;
19
+ };
20
+ }>;
21
+ };
22
+ declare global {
23
+ var __VIKE__DYNAMIC_IMPORT: (module: string) => Promise<Record<string, unknown>>;
24
+ var __VIKE__IS_NON_RUNNABLE_DEV: undefined | boolean;
25
+ }
26
+ declare function pluginNonRunnableDev(): Plugin;
@@ -0,0 +1,45 @@
1
+ export { pluginNonRunnableDev };
2
+ import { createViteRPC, assertIsNotProductionRuntime, requireResolveVikeDistFile, isRunnableDevEnvironment, } from '../utils.js';
3
+ import { retrievePageAssetsDev } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsDev.js';
4
+ import { getViteConfigRuntime } from '../shared/getViteConfigRuntime.js';
5
+ import { getMagicString } from '../shared/getMagicString.js';
6
+ assertIsNotProductionRuntime();
7
+ function getViteRpcFunctions(viteDevServer) {
8
+ return {
9
+ async transformIndexHtmlRPC(html) {
10
+ return await viteDevServer.transformIndexHtml('/', html);
11
+ },
12
+ async retrievePageAssetsDevRPC(clientDependencies, clientEntries) {
13
+ return await retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries);
14
+ },
15
+ async getViteConfigRuntimeRPC() {
16
+ return getViteConfigRuntime(viteDevServer.config);
17
+ },
18
+ };
19
+ }
20
+ function pluginNonRunnableDev() {
21
+ const runtimeGlobalContextFilePath = requireResolveVikeDistFile('dist/esm/node/runtime/globalContext.js');
22
+ let config;
23
+ return {
24
+ name: 'vike:pluginNonRunnableDev',
25
+ configureServer(viteDevServer) {
26
+ createViteRPC(viteDevServer, getViteRpcFunctions);
27
+ },
28
+ configResolved(config_) {
29
+ config = config_;
30
+ },
31
+ transform(code, id) {
32
+ if (!config._isDev)
33
+ return;
34
+ if (id !== runtimeGlobalContextFilePath)
35
+ return;
36
+ const isNonRunnableDev = !isRunnableDevEnvironment(this.environment);
37
+ const { magicString, getMagicStringResult } = getMagicString(code, id);
38
+ if (isNonRunnableDev) {
39
+ magicString.replaceAll('__VIKE__DYNAMIC_IMPORT', 'import');
40
+ }
41
+ magicString.replaceAll('__VIKE__IS_NON_RUNNABLE_DEV', JSON.stringify(isNonRunnableDev));
42
+ return getMagicStringResult();
43
+ },
44
+ };
45
+ }
@@ -1,24 +1,31 @@
1
1
  export { pluginPreview };
2
- import { assertUsage, applyPreview } from '../utils.js';
2
+ import { assertUsage, applyPreview, assert } from '../utils.js';
3
3
  import fs from 'node:fs';
4
4
  import path from 'node:path';
5
5
  import { addSsrMiddleware } from '../shared/addSsrMiddleware.js';
6
6
  import pc from '@brillout/picocolors';
7
7
  import { logDockerHint } from './pluginDev.js';
8
- import { getOutDirs, resolveOutDir } from '../shared/getOutDirs.js';
8
+ import { getOutDirs, resolveOutDir_configEnvironment } from '../shared/getOutDirs.js';
9
9
  import sirv from 'sirv';
10
10
  import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
11
11
  function pluginPreview() {
12
12
  let config;
13
+ let configUnresolved;
13
14
  let vikeConfig;
14
15
  return {
15
16
  name: 'vike:pluginPreview',
16
17
  apply: applyPreview,
17
18
  config(config) {
19
+ configUnresolved = config;
18
20
  return {
19
21
  appType: 'custom',
22
+ };
23
+ },
24
+ configEnvironment(envName, configEnv) {
25
+ assert(configUnresolved);
26
+ return {
20
27
  build: {
21
- outDir: resolveOutDir(config),
28
+ outDir: resolveOutDir_configEnvironment(configUnresolved, envName, configEnv),
22
29
  },
23
30
  };
24
31
  },
@@ -46,7 +53,7 @@ function pluginPreview() {
46
53
  },
47
54
  };
48
55
  function assertDist(isPrerenderingEnabledForAllPages) {
49
- const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config);
56
+ const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config, undefined);
50
57
  const dirS = [outDirRoot, outDirClient];
51
58
  if (!isPrerenderingEnabledForAllPages)
52
59
  dirS.push(outDirServer);
@@ -55,11 +62,11 @@ function pluginPreview() {
55
62
  });
56
63
  }
57
64
  function addStaticAssetsMiddleware(middlewares) {
58
- const { outDirClient } = getOutDirs(config);
65
+ const { outDirClient } = getOutDirs(config, undefined);
59
66
  middlewares.use(sirv(outDirClient));
60
67
  }
61
68
  function addStatic404Middleware(middlewares) {
62
- const { outDirClient } = getOutDirs(config);
69
+ const { outDirClient } = getOutDirs(config, undefined);
63
70
  middlewares.use(config.base, (_, res, next) => {
64
71
  const file = path.posix.join(outDirClient, './404.html');
65
72
  if (fs.existsSync(file)) {
@@ -1,9 +1,8 @@
1
1
  export { pluginReplaceConstants };
2
- import MagicString from 'magic-string';
3
2
  import { assert, assertPosixPath } from '../utils.js';
4
3
  import { normalizeId } from '../shared/normalizeId.js';
5
- import { isViteServerBuild_safe } from '../shared/isViteServerBuild.js';
6
- import { applyRegExpWithMagicString } from '../shared/applyRegExWithMagicString.js';
4
+ import { isViteServerBuild_extraSafe } from '../shared/isViteServerBuild.js';
5
+ import { getMagicString } from '../shared/getMagicString.js';
7
6
  function pluginReplaceConstants() {
8
7
  let config;
9
8
  return {
@@ -30,24 +29,21 @@ function pluginReplaceConstants() {
30
29
  // @ts-expect-error
31
30
  if (config._skipVikeReplaceConstants?.(id))
32
31
  return;
33
- const magicString = new MagicString(code);
32
+ const { magicString, getMagicStringResult } = getMagicString(code, id);
34
33
  const constantsMap = [];
35
34
  constantsMap.push({
36
35
  constants: ['pageContext.isClientSide', 'globalContext.isClientSide', 'pageContext.globalContext.isClientSide'],
37
- replacement: !isViteServerBuild_safe(config, options),
36
+ replacement: !isViteServerBuild_extraSafe(config, options, this.environment),
38
37
  });
39
38
  constantsMap.forEach(({ constants, replacement }) => {
40
39
  if (!constants.some((c) => code.includes(c)))
41
40
  return;
42
41
  const regExp = getConstantRegExp(constants);
43
- applyRegExpWithMagicString(magicString, regExp, replacement);
42
+ magicString.replaceAll(regExp, JSON.stringify(replacement));
44
43
  });
45
44
  if (!magicString.hasChanged())
46
45
  return null;
47
- return {
48
- code: magicString.toString(),
49
- map: magicString.generateMap({ hires: true, source: id }),
50
- };
46
+ return getMagicStringResult();
51
47
  },
52
48
  };
53
49
  }
@@ -0,0 +1,2 @@
1
+ export { generateVirtualFileGlobalEntry };
2
+ declare function generateVirtualFileGlobalEntry(isForClientSide: boolean, isDev: boolean, id: string, isClientRouting: boolean): Promise<string>;
@@ -1,10 +1,9 @@
1
- export { getVirtualFilePageConfigsEager };
2
- import { getVirtualFileIdPageConfigLazy } from '../../../shared/virtualFiles/virtualFilePageConfigLazy.js';
1
+ export { generateVirtualFileGlobalEntry };
2
+ import { generateVirtualFileId } from '../../../shared/virtualFileId.js';
3
3
  import { debug } from './debug.js';
4
4
  import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
5
- import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
6
5
  import { serializeConfigValues } from '../../../../shared/page-configs/serialize/serializeConfigValues.js';
7
- async function getVirtualFilePageConfigsEager(isForClientSide, isDev, id, isClientRouting) {
6
+ async function generateVirtualFileGlobalEntry(isForClientSide, isDev, id, isClientRouting) {
8
7
  const vikeConfig = await getVikeConfigInternal(true);
9
8
  const { _pageConfigs: pageConfigs, _pageConfigGlobal: pageConfigGlobal } = vikeConfig;
10
9
  return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting);
@@ -19,6 +18,10 @@ function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isCl
19
18
  lines.push('export const pageConfigGlobalSerialized = {');
20
19
  lines.push(getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv));
21
20
  lines.push('};');
21
+ if (!isForClientSide && isDev) {
22
+ // https://vite.dev/guide/api-environment-frameworks.html
23
+ lines.push('if (import.meta.hot) import.meta.hot.accept();');
24
+ }
22
25
  const code = [...importStatements, ...lines].join('\n');
23
26
  debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
24
27
  return code;
@@ -31,11 +34,10 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
31
34
  lines.push(` pageId: ${JSON.stringify(pageId)},`);
32
35
  lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
33
36
  lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
34
- const virtualFileId = JSON.stringify(getVirtualFileIdPageConfigLazy(pageId, isForClientSide));
35
- const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`;
36
- lines.push(` loadConfigLazy: ${load},`);
37
+ const virtualFileId = JSON.stringify(generateVirtualFileId({ type: 'page-entry', pageId, isForClientSide }));
38
+ lines.push(` loadVirtualFilePageEntry: () => ({ moduleId: ${virtualFileId}, moduleExportsPromise: import(${virtualFileId}) }),`);
37
39
  lines.push(` configValuesSerialized: {`);
38
- lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true));
40
+ lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, ' ', true));
39
41
  lines.push(` },`);
40
42
  lines.push(` },`);
41
43
  });
@@ -45,7 +47,7 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
45
47
  function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) {
46
48
  const lines = [];
47
49
  lines.push(` configValuesSerialized: {`);
48
- lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, filesEnv, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', null));
50
+ lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, ' ', null));
49
51
  lines.push(` },`);
50
52
  const code = lines.join('\n');
51
53
  return code;
@@ -0,0 +1,6 @@
1
+ export { generateVirtualFileGlobalEntryWithOldDesign };
2
+ import type { ResolvedConfig } from 'vite';
3
+ import type { Environment } from 'vite';
4
+ declare function generateVirtualFileGlobalEntryWithOldDesign(id: string, options: {
5
+ ssr?: boolean;
6
+ } | undefined, config: ResolvedConfig, env: Environment, isDev: boolean): Promise<string>;