vike 0.4.237 → 0.4.238

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 (288) hide show
  1. package/dist/cjs/__internal/index.js +3 -3
  2. package/dist/cjs/client/runtime-client-routing/globalContext.js +2 -2
  3. package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
  4. package/dist/cjs/client/runtime-server-routing/utils.js +1 -1
  5. package/dist/cjs/client/shared/createGetGlobalContextClient.js +5 -5
  6. package/dist/cjs/node/api/build.js +5 -31
  7. package/dist/cjs/node/api/context.js +13 -12
  8. package/dist/cjs/node/api/dev.js +0 -2
  9. package/dist/cjs/node/api/index.js +0 -2
  10. package/dist/cjs/node/api/onLoad.js +2 -2
  11. package/dist/cjs/node/api/prepareViteApiCall.js +2 -3
  12. package/dist/cjs/node/api/preview.js +2 -3
  13. package/dist/cjs/node/api/utils.js +1 -0
  14. package/dist/cjs/node/cli/index.js +2 -2
  15. package/dist/cjs/node/cli/onLoad.js +2 -2
  16. package/dist/cjs/node/prerender/runPrerender.js +7 -8
  17. package/dist/cjs/node/prerender/runPrerenderEntry.js +1 -1
  18. package/dist/cjs/node/runtime/globalContext.js +128 -112
  19. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/analyzePage.js +6 -4
  21. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +1 -1
  22. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
  23. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  24. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -6
  25. package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  26. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +5 -34
  27. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +42 -46
  28. package/dist/cjs/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +3 -4
  29. package/dist/cjs/node/runtime/renderPage.js +18 -16
  30. package/dist/cjs/node/runtime/utils.js +3 -2
  31. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -2
  32. package/dist/cjs/node/shared/virtualFileId.js +110 -0
  33. package/dist/cjs/node/vite/index.js +3 -3
  34. package/dist/cjs/node/vite/onLoad.js +5 -3
  35. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +29 -30
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +122 -10
  37. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -17
  38. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -10
  39. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -11
  40. package/dist/cjs/node/vite/plugins/pluginBuild/{pluginBuildEntry.js → pluginProdBuildEntry.js} +11 -11
  41. package/dist/cjs/node/vite/plugins/pluginBuild.js +2 -4
  42. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +2 -2
  43. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +6 -5
  44. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +6 -13
  45. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +7 -7
  46. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +6 -2
  47. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +4 -3
  48. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +11 -11
  49. package/dist/cjs/node/vite/plugins/pluginPreview.js +4 -7
  50. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
  51. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +1 -1
  52. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +5 -6
  53. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +12 -12
  54. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  55. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +51 -21
  56. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +14 -12
  57. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  58. package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +3 -3
  59. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +8 -6
  60. package/dist/cjs/node/vite/shared/getMagicString.js +1 -1
  61. package/dist/cjs/node/vite/shared/getOutDirs.js +21 -22
  62. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
  63. package/dist/cjs/node/vite/shared/isViteServerSide.js +68 -0
  64. package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +6 -4
  65. package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
  66. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +20 -36
  67. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +5 -4
  68. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +46 -48
  69. package/dist/cjs/shared/createGlobalContextShared.js +16 -14
  70. package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  71. package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +25 -0
  72. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +9 -4
  73. package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  74. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -3
  75. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -1
  76. package/dist/cjs/shared/route/index.js +0 -1
  77. package/dist/cjs/types/VikeGlobalInternal.js +2 -0
  78. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  79. package/dist/cjs/utils/assertSetup.js +2 -3
  80. package/dist/cjs/utils/assertVersion.js +2 -0
  81. package/dist/cjs/utils/debug.js +4 -4
  82. package/dist/cjs/utils/getGlobalObject.js +8 -15
  83. package/dist/cjs/utils/isNonRunnableDev.js +12 -0
  84. package/dist/cjs/utils/isScriptFile.js +1 -1
  85. package/dist/cjs/utils/path.js +5 -5
  86. package/dist/cjs/utils/requireResolve.js +13 -12
  87. package/dist/cjs/utils/{augmentType.js → updateType.js} +3 -3
  88. package/dist/esm/__internal/index.d.ts +2 -2
  89. package/dist/esm/__internal/index.js +3 -3
  90. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +2 -2
  91. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  92. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  93. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +12 -12
  94. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +2 -2
  95. package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
  96. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  97. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  98. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  99. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  100. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +6 -7
  101. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +6 -6
  102. package/dist/esm/client/runtime-client-routing/utils.d.ts +1 -1
  103. package/dist/esm/client/runtime-client-routing/utils.js +1 -1
  104. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +3 -3
  105. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +3 -3
  106. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +2 -2
  107. package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
  108. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  109. package/dist/esm/client/runtime-server-routing/utils.d.ts +1 -1
  110. package/dist/esm/client/runtime-server-routing/utils.js +1 -1
  111. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +3 -3
  112. package/dist/esm/client/shared/createGetGlobalContextClient.js +5 -5
  113. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  114. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  115. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
  116. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  117. package/dist/esm/node/api/build.d.ts +2 -2
  118. package/dist/esm/node/api/build.js +6 -32
  119. package/dist/esm/node/api/context.d.ts +10 -10
  120. package/dist/esm/node/api/context.js +13 -12
  121. package/dist/esm/node/api/dev.d.ts +2 -2
  122. package/dist/esm/node/api/dev.js +0 -2
  123. package/dist/esm/node/api/index.js +0 -2
  124. package/dist/esm/node/api/onLoad.js +1 -1
  125. package/dist/esm/node/api/prepareViteApiCall.d.ts +3 -5
  126. package/dist/esm/node/api/prepareViteApiCall.js +3 -4
  127. package/dist/esm/node/api/preview.d.ts +2 -2
  128. package/dist/esm/node/api/preview.js +2 -3
  129. package/dist/esm/node/api/types.d.ts +4 -4
  130. package/dist/esm/node/api/utils.d.ts +1 -0
  131. package/dist/esm/node/api/utils.js +1 -0
  132. package/dist/esm/node/cli/index.js +1 -1
  133. package/dist/esm/node/cli/onLoad.js +1 -1
  134. package/dist/esm/node/prerender/runPrerender.d.ts +13 -304
  135. package/dist/esm/node/prerender/runPrerender.js +8 -9
  136. package/dist/esm/node/prerender/runPrerenderEntry.js +1 -1
  137. package/dist/esm/node/runtime/globalContext.d.ts +13 -13
  138. package/dist/esm/node/runtime/globalContext.js +125 -109
  139. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  140. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +4 -3
  141. package/dist/esm/node/runtime/renderPage/analyzePage.js +6 -4
  142. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
  143. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  144. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +0 -1
  145. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +1 -11
  146. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  147. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
  148. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
  149. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -7
  150. package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
  151. package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
  152. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -10
  153. package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -33
  154. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +1 -1
  155. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +106 -20
  156. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +44 -48
  157. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  158. package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.d.ts → renderPageAfterRoute.d.ts} +26 -10
  159. package/dist/esm/node/runtime/renderPage/{renderPageAlreadyRouted.js → renderPageAfterRoute.js} +5 -6
  160. package/dist/esm/node/runtime/renderPage.d.ts +9 -6
  161. package/dist/esm/node/runtime/renderPage.js +20 -18
  162. package/dist/esm/node/runtime/utils.d.ts +3 -2
  163. package/dist/esm/node/runtime/utils.js +3 -2
  164. package/dist/esm/node/runtime-dev/createDevMiddleware.d.ts +2 -2
  165. package/dist/esm/node/runtime-dev/createDevMiddleware.js +0 -2
  166. package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
  167. package/dist/esm/node/shared/virtualFileId.js +107 -0
  168. package/dist/esm/node/vite/index.js +3 -3
  169. package/dist/esm/node/vite/onLoad.js +5 -3
  170. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +5 -6
  171. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -32
  172. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +119 -10
  173. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -17
  174. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -10
  175. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +5 -8
  176. package/dist/esm/node/vite/plugins/pluginBuild/{pluginBuildEntry.d.ts → pluginProdBuildEntry.d.ts} +2 -2
  177. package/dist/esm/node/vite/plugins/pluginBuild/{pluginBuildEntry.js → pluginProdBuildEntry.js} +12 -12
  178. package/dist/esm/node/vite/plugins/pluginBuild.js +2 -4
  179. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +3 -3
  180. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +6 -5
  181. package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
  182. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +5 -5
  183. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
  184. package/dist/esm/node/vite/plugins/pluginFileEnv.js +4 -3
  185. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +12 -12
  186. package/dist/esm/node/vite/plugins/pluginPreview.js +5 -8
  187. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
  188. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +2 -2
  189. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
  190. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +5 -6
  191. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
  192. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
  193. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +2 -0
  194. package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
  195. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +5 -1
  196. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +52 -22
  197. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +14 -12
  198. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  199. package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
  200. package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +4 -4
  201. package/dist/esm/node/vite/shared/getHttpRequestAsyncStore.js +9 -7
  202. package/dist/esm/node/vite/shared/getMagicString.js +1 -1
  203. package/dist/esm/node/vite/shared/getOutDirs.d.ts +4 -3
  204. package/dist/esm/node/vite/shared/getOutDirs.js +21 -22
  205. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
  206. package/dist/esm/node/vite/shared/isViteServerSide.d.ts +18 -0
  207. package/dist/esm/node/vite/shared/isViteServerSide.js +66 -0
  208. package/dist/esm/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +7 -5
  209. package/dist/esm/node/vite/shared/loggerVite.js +1 -1
  210. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +3 -2
  211. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +21 -37
  212. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +6 -5
  213. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -2
  214. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +49 -51
  215. package/dist/esm/shared/createGlobalContextShared.d.ts +7 -6
  216. package/dist/esm/shared/createGlobalContextShared.js +18 -16
  217. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
  218. package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -26
  219. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  220. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  221. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  222. package/dist/esm/shared/page-configs/loadAndParseVirtualFilePageEntry.d.ts +3 -0
  223. package/dist/esm/shared/page-configs/loadAndParseVirtualFilePageEntry.js +23 -0
  224. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
  225. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +9 -4
  226. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
  227. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
  228. package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
  229. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -3
  230. package/dist/esm/shared/route/execHookOnBeforeRoute.d.ts +3 -3
  231. package/dist/esm/shared/route/execHookOnBeforeRoute.js +0 -1
  232. package/dist/esm/shared/route/index.d.ts +5 -6
  233. package/dist/esm/shared/route/index.js +0 -1
  234. package/dist/esm/types/Config.d.ts +3 -7
  235. package/dist/esm/types/PageConfig.d.ts +11 -9
  236. package/dist/esm/types/VikeGlobalInternal.d.ts +4 -0
  237. package/dist/esm/types/VikeGlobalInternal.js +1 -0
  238. package/dist/esm/types/VikeNamespace.d.ts +13 -0
  239. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  240. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  241. package/dist/esm/utils/assertSetup.js +2 -3
  242. package/dist/esm/utils/assertVersion.js +2 -0
  243. package/dist/esm/utils/debug.js +3 -3
  244. package/dist/esm/utils/getGlobalObject.d.ts +6 -5
  245. package/dist/esm/utils/getGlobalObject.js +8 -15
  246. package/dist/esm/utils/isNonRunnableDev.d.ts +2 -0
  247. package/dist/esm/utils/isNonRunnableDev.js +10 -0
  248. package/dist/esm/utils/isScriptFile.d.ts +1 -1
  249. package/dist/esm/utils/isScriptFile.js +1 -1
  250. package/dist/esm/utils/path.d.ts +2 -0
  251. package/dist/esm/utils/path.js +5 -5
  252. package/dist/esm/utils/requireResolve.d.ts +4 -4
  253. package/dist/esm/utils/requireResolve.js +13 -12
  254. package/dist/esm/utils/updateType.d.ts +3 -0
  255. package/dist/esm/utils/updateType.js +7 -0
  256. package/package.json +6 -6
  257. package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +0 -52
  258. package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -31
  259. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -45
  260. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -149
  261. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -11
  262. package/dist/cjs/node/vite/shared/isViteServerBuild.js +0 -47
  263. package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
  264. package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +0 -23
  265. package/dist/esm/node/runtime/renderPage/debugPageFiles.js +0 -47
  266. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
  267. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
  268. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
  269. package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -28
  270. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
  271. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -43
  272. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.d.ts +0 -5
  273. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +0 -144
  274. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
  275. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
  276. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
  277. package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
  278. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -9
  279. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +0 -15
  280. package/dist/esm/node/vite/shared/isViteServerBuild.js +0 -45
  281. package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
  282. package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
  283. package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
  284. package/dist/esm/utils/augmentType.d.ts +0 -3
  285. package/dist/esm/utils/augmentType.js +0 -7
  286. /package/dist/cjs/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
  287. /package/dist/esm/utils/{getTerminWidth.d.ts → getTerminalWidth.d.ts} +0 -0
  288. /package/dist/esm/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
@@ -15,8 +15,8 @@ import { handleAssetsManifest_isFixEnabled } from './pluginBuild/handleAssetsMan
15
15
  import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
16
16
  import { assertV1Design } from '../../shared/assertV1Design.js';
17
17
  import { normalizeId } from '../shared/normalizeId.js';
18
- import { isViteServerBuild_safe } from '../shared/isViteServerBuild.js';
19
- import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets.js';
18
+ import { isViteServerSide_extraSafe } from '../shared/isViteServerSide.js';
19
+ import { resolveIncludeAssetsImportedByServer } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js';
20
20
  const extractAssetsRE = /(\?|&)extractAssets(?:&|$)/;
21
21
  const rawRE = /(\?|&)raw(?:&|$)/;
22
22
  const urlRE = /(\?|&)url(?:&|$)/;
@@ -45,7 +45,7 @@ function pluginExtractAssets() {
45
45
  }
46
46
  const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(vikeConfig.config);
47
47
  assert(includeAssetsImportedByServer);
48
- assert(!isViteServerBuild_safe(config, options));
48
+ assert(!isViteServerSide_extraSafe(config, this.environment, options));
49
49
  const importStatements = await getImportStatements(src);
50
50
  const moduleNames = getImportedModules(importStatements);
51
51
  const code = moduleNames.map((moduleName) => `import '${moduleName}';`).join('\n');
@@ -62,7 +62,7 @@ function pluginExtractAssets() {
62
62
  // - Vite's `vite:resolve` plugin; https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/resolve.ts#L105
63
63
  enforce: 'pre',
64
64
  async resolveId(source, importer, options) {
65
- if (isViteServerBuild_safe(config, options)) {
65
+ if (isViteServerSide_extraSafe(config, this.environment, options)) {
66
66
  // When building for the server, there should never be a `?extractAssets` query
67
67
  assert(!extractAssetsRE.test(source));
68
68
  assert(importer === undefined || !extractAssetsRE.test(importer));
@@ -139,7 +139,7 @@ function pluginExtractAssets() {
139
139
  async configResolved(config_) {
140
140
  config = config_;
141
141
  vikeConfig = await getVikeConfigInternal();
142
- isFixEnabled = handleAssetsManifest_isFixEnabled(config);
142
+ isFixEnabled = handleAssetsManifest_isFixEnabled();
143
143
  if (!isFixEnabled) {
144
144
  // https://github.com/vikejs/vike/issues/1060
145
145
  assertUsage(!config.plugins.find((p) => p.name === 'vite-tsconfig-paths'), 'vite-tsconfig-paths not supported, remove it and use vite.config.js#resolve.alias instead');
@@ -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 { isViteServerSide_extraSafe } from '../shared/isViteServerSide.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 = !isViteServerSide_extraSafe(config, this.environment, options);
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' };
@@ -7,6 +7,7 @@ import { getModuleFilePathAbsolute } from '../shared/getFilePath.js';
7
7
  import { getExportNames } from '../shared/parseEsModule.js';
8
8
  import { normalizeId } from '../shared/normalizeId.js';
9
9
  import { isV1Design } from '../shared/resolveVikeConfigInternal.js';
10
+ import { isViteServerSide, isViteServerSide_extraSafe } from '../shared/isViteServerSide.js';
10
11
  function pluginFileEnv() {
11
12
  let config;
12
13
  let viteDevServer;
@@ -28,7 +29,7 @@ function pluginFileEnv() {
28
29
  const importers = Array.from(moduleInfo.importers)
29
30
  .map((m) => m.id)
30
31
  .filter((id) => id !== null);
31
- assertFileEnv(id, !!options?.ssr, importers,
32
+ assertFileEnv(id, isViteServerSide_extraSafe(config, this.environment, options), importers,
32
33
  // In dev, we only show a warning because we don't want to disrupt when the user plays with settings such as [ssr](https://vike.dev/ssr).
33
34
  true);
34
35
  },
@@ -40,7 +41,7 @@ function pluginFileEnv() {
40
41
  return;
41
42
  if (skip(id))
42
43
  return;
43
- const isServerSide = !!options?.ssr;
44
+ const isServerSide = isViteServerSide_extraSafe(config, this.environment, options);
44
45
  if (!isWrongEnv(id, isServerSide))
45
46
  return;
46
47
  const { importers } = this.getModuleInfo(id);
@@ -66,7 +67,7 @@ function pluginFileEnv() {
66
67
  */
67
68
  return;
68
69
  }
69
- assertFileEnv(moduleId, !!config.build.ssr, importers, false);
70
+ assertFileEnv(moduleId, isViteServerSide(config, this.environment), importers, false);
70
71
  });
71
72
  },
72
73
  configResolved(config_) {
@@ -1,7 +1,6 @@
1
1
  export { pluginNonRunnableDev };
2
- import { createViteRPC, assertIsNotProductionRuntime, requireResolveVikeDistFile, isRunnableDevEnvironment, } from '../utils.js';
3
- import { resolveClientEntriesDev } from '../shared/resolveClientEntriesDev.js';
4
- import { retrieveAssetsDev } from '../../runtime/renderPage/getPageAssets/retrieveAssetsDev.js';
2
+ import { createViteRPC, assertIsNotProductionRuntime, requireResolveDistFile, isRunnableDevEnvironment, } from '../utils.js';
3
+ import { retrievePageAssetsDev } from '../../runtime/renderPage/getPageAssets/retrievePageAssetsDev.js';
5
4
  import { getViteConfigRuntime } from '../shared/getViteConfigRuntime.js';
6
5
  import { getMagicString } from '../shared/getMagicString.js';
7
6
  assertIsNotProductionRuntime();
@@ -10,11 +9,8 @@ function getViteRpcFunctions(viteDevServer) {
10
9
  async transformIndexHtmlRPC(html) {
11
10
  return await viteDevServer.transformIndexHtml('/', html);
12
11
  },
13
- // TODO/now: dedupe retrievePageAssetsDevRPC and retrievePageAssetsDev()
14
12
  async retrievePageAssetsDevRPC(clientDependencies, clientEntries) {
15
- const clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesDev(clientEntry, viteDevServer));
16
- const assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
17
- return { clientEntriesSrc, assetUrls };
13
+ return await retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries);
18
14
  },
19
15
  async getViteConfigRuntimeRPC() {
20
16
  return getViteConfigRuntime(viteDevServer.config);
@@ -22,7 +18,8 @@ function getViteRpcFunctions(viteDevServer) {
22
18
  };
23
19
  }
24
20
  function pluginNonRunnableDev() {
25
- const runtimeGlobalContextFilePath = requireResolveVikeDistFile('dist/esm/node/runtime/globalContext.js');
21
+ const distFileIsNonRunnableDev = requireResolveDistFile('dist/esm/utils/isNonRunnableDev.js');
22
+ const distFileGlobalContext = requireResolveDistFile('dist/esm/node/runtime/globalContext.js');
26
23
  let config;
27
24
  return {
28
25
  name: 'vike:pluginNonRunnableDev',
@@ -35,14 +32,17 @@ function pluginNonRunnableDev() {
35
32
  transform(code, id) {
36
33
  if (!config._isDev)
37
34
  return;
38
- if (id !== runtimeGlobalContextFilePath)
35
+ if (id !== distFileIsNonRunnableDev && id !== distFileGlobalContext)
36
+ return;
37
+ if (isRunnableDevEnvironment(this.environment))
39
38
  return;
40
- const isNonRunnableDev = !isRunnableDevEnvironment(this.environment);
41
39
  const { magicString, getMagicStringResult } = getMagicString(code, id);
42
- if (isNonRunnableDev) {
40
+ if (id === distFileIsNonRunnableDev) {
41
+ magicString.replaceAll('__VIKE__IS_NON_RUNNABLE_DEV', JSON.stringify(true));
42
+ }
43
+ if (id === distFileGlobalContext) {
43
44
  magicString.replaceAll('__VIKE__DYNAMIC_IMPORT', 'import');
44
45
  }
45
- magicString.replaceAll('__VIKE__IS_NON_RUNNABLE_DEV', JSON.stringify(isNonRunnableDev));
46
46
  return getMagicStringResult();
47
47
  },
48
48
  };
@@ -5,7 +5,7 @@ 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 } from '../shared/getOutDirs.js';
9
9
  import sirv from 'sirv';
10
10
  import { getVikeConfigInternal } from '../shared/resolveVikeConfigInternal.js';
11
11
  function pluginPreview() {
@@ -14,12 +14,9 @@ function pluginPreview() {
14
14
  return {
15
15
  name: 'vike:pluginPreview',
16
16
  apply: applyPreview,
17
- config(config) {
17
+ config() {
18
18
  return {
19
19
  appType: 'custom',
20
- build: {
21
- outDir: resolveOutDir(config),
22
- },
23
20
  };
24
21
  },
25
22
  async configResolved(config_) {
@@ -46,7 +43,7 @@ function pluginPreview() {
46
43
  },
47
44
  };
48
45
  function assertDist(isPrerenderingEnabledForAllPages) {
49
- const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config);
46
+ const { outDirRoot, outDirClient, outDirServer } = getOutDirs(config, undefined);
50
47
  const dirS = [outDirRoot, outDirClient];
51
48
  if (!isPrerenderingEnabledForAllPages)
52
49
  dirS.push(outDirServer);
@@ -55,11 +52,11 @@ function pluginPreview() {
55
52
  });
56
53
  }
57
54
  function addStaticAssetsMiddleware(middlewares) {
58
- const { outDirClient } = getOutDirs(config);
55
+ const { outDirClient } = getOutDirs(config, undefined);
59
56
  middlewares.use(sirv(outDirClient));
60
57
  }
61
58
  function addStatic404Middleware(middlewares) {
62
- const { outDirClient } = getOutDirs(config);
59
+ const { outDirClient } = getOutDirs(config, undefined);
63
60
  middlewares.use(config.base, (_, res, next) => {
64
61
  const file = path.posix.join(outDirClient, './404.html');
65
62
  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 { isViteServerSide_extraSafe } from '../shared/isViteServerSide.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: !isViteServerSide_extraSafe(config, this.environment, options),
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
  }
@@ -1,5 +1,5 @@
1
1
  export { pluginSetGlobalContext };
2
- import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProduction, } from '../../runtime/globalContext.js';
2
+ import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProductionAccordingToVite, } from '../../runtime/globalContext.js';
3
3
  import { isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.js';
4
4
  import { reloadVikeConfig } from '../shared/resolveVikeConfigInternal.js';
5
5
  import { getViteConfigRuntime } from '../shared/getViteConfigRuntime.js';
@@ -27,7 +27,7 @@ function pluginSetGlobalContext() {
27
27
  order: 'pre',
28
28
  handler(_, env) {
29
29
  const isViteDev = isDevCheck(env);
30
- setGlobalContext_isProduction(!isViteDev);
30
+ setGlobalContext_isProductionAccordingToVite(!isViteDev);
31
31
  markSetup_isViteDev(isViteDev);
32
32
  },
33
33
  },
@@ -0,0 +1,2 @@
1
+ export { generateVirtualFileGlobalEntry };
2
+ declare function generateVirtualFileGlobalEntry(isForClientSide: boolean, isDev: boolean, id: string, isClientRouting: boolean): Promise<string>;
@@ -1,9 +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
5
  import { serializeConfigValues } from '../../../../shared/page-configs/serialize/serializeConfigValues.js';
6
- async function getVirtualFilePageConfigsEager(isForClientSide, isDev, id, isClientRouting) {
6
+ async function generateVirtualFileGlobalEntry(isForClientSide, isDev, id, isClientRouting) {
7
7
  const vikeConfig = await getVikeConfigInternal(true);
8
8
  const { _pageConfigs: pageConfigs, _pageConfigGlobal: pageConfigGlobal } = vikeConfig;
9
9
  return getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting);
@@ -34,9 +34,8 @@ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRout
34
34
  lines.push(` pageId: ${JSON.stringify(pageId)},`);
35
35
  lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
36
36
  lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
37
- const virtualFileId = JSON.stringify(getVirtualFileIdPageConfigLazy(pageId, isForClientSide));
38
- const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`;
39
- lines.push(` loadConfigLazy: ${load},`);
37
+ const virtualFileId = JSON.stringify(generateVirtualFileId({ type: 'page-entry', pageId, isForClientSide }));
38
+ lines.push(` loadVirtualFilePageEntry: () => ({ moduleId: ${virtualFileId}, moduleExportsPromise: import(${virtualFileId}) }),`);
40
39
  lines.push(` configValuesSerialized: {`);
41
40
  lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, ' ', true));
42
41
  lines.push(` },`);
@@ -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>;
@@ -1,19 +1,19 @@
1
- export { getVirtualFileEntry };
1
+ export { generateVirtualFileGlobalEntryWithOldDesign };
2
2
  import { assert, assertPosixPath, scriptFileExtensionPattern, debugGlob, isVersionOrAbove, assertWarning, } from '../../utils.js';
3
- import { isVirtualFileIdEntry } from '../../../shared/virtualFiles/virtualFileEntry.js';
3
+ import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
4
4
  import { version as viteVersion } from 'vite';
5
5
  import { fileTypes } from '../../../../shared/getPageFiles/fileTypes.js';
6
6
  import path from 'node:path';
7
- import { getVirtualFilePageConfigsEager } from './getVirtualFilePageConfigsEager.js';
7
+ import { generateVirtualFileGlobalEntry } from './generateVirtualFileGlobalEntry.js';
8
8
  import { getVikeConfigInternal, isV1Design as isV1Design_ } from '../../shared/resolveVikeConfigInternal.js';
9
9
  import { getOutDirs } from '../../shared/getOutDirs.js';
10
- import { isViteServerBuild_options } from '../../shared/isViteServerBuild.js';
11
- import { resolveIncludeAssetsImportedByServer } from '../../../runtime/renderPage/getPageAssets.js';
12
- async function getVirtualFileEntry(id, options, config, isDev) {
13
- const idParsed = isVirtualFileIdEntry(id);
14
- assert(idParsed);
10
+ import { isViteServerSide_extraSafe } from '../../shared/isViteServerSide.js';
11
+ import { resolveIncludeAssetsImportedByServer } from '../../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js';
12
+ async function generateVirtualFileGlobalEntryWithOldDesign(id, options, config, env, isDev) {
13
+ const idParsed = parseVirtualFileId(id);
14
+ assert(idParsed && idParsed.type === 'global-entry');
15
15
  const { isForClientSide, isClientRouting } = idParsed;
16
- assert(isForClientSide === !isViteServerBuild_options(options));
16
+ assert(isForClientSide === !isViteServerSide_extraSafe(config, env, options));
17
17
  const code = await getCode(config, isForClientSide, isClientRouting, isDev, id);
18
18
  return code;
19
19
  }
@@ -66,7 +66,7 @@ export const pageFilesExportNamesEager = {};
66
66
  export const pageFilesList = [];
67
67
  export const neverLoaded = {};
68
68
 
69
- ${await getVirtualFilePageConfigsEager(isForClientSide, isDev, id, isClientRouting)}
69
+ ${await generateVirtualFileGlobalEntry(isForClientSide, isDev, id, isClientRouting)}
70
70
 
71
71
  `;
72
72
  // We still use import.meta.glob() when using th V1 design in order to not break the V1 design deprecation warning
@@ -168,7 +168,7 @@ function getGlobRoots(config) {
168
168
  const globRoots = [
169
169
  {
170
170
  includeDir: '/',
171
- excludeDir: path.posix.relative(config.root, getOutDirs(config).outDirRoot),
171
+ excludeDir: path.posix.relative(config.root, getOutDirs(config, undefined).outDirRoot),
172
172
  },
173
173
  ];
174
174
  return globRoots;
@@ -0,0 +1,2 @@
1
+ export { generateVirtualFilePageEntry };
2
+ declare function generateVirtualFilePageEntry(id: string, isDev: boolean): Promise<string>;
@@ -1,17 +1,16 @@
1
- export { getVirtualFilePageConfigLazy };
2
- // TODO/now: rename file to generateVirtualFileEntryPage.ts
1
+ export { generateVirtualFilePageEntry };
3
2
  import { assert, getProjectError } from '../../utils.js';
4
- import { getVirtualFileIdPageConfigLazy, isVirtualFileIdPageConfigLazy, } from '../../../shared/virtualFiles/virtualFilePageConfigLazy.js';
3
+ import { parseVirtualFileId, generateVirtualFileId } from '../../../shared/virtualFileId.js';
5
4
  import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
6
5
  import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
7
6
  import { debug } from './debug.js';
8
7
  import { serializeConfigValues } from '../../../../shared/page-configs/serialize/serializeConfigValues.js';
9
8
  import { handleAssetsManifest_isFixEnabled } from '../pluginBuild/handleAssetsManifest.js';
10
9
  import { getConfigValueBuildTime } from '../../../../shared/page-configs/getConfigValueBuildTime.js';
11
- import { resolveIncludeAssetsImportedByServer } from '../../../runtime/renderPage/getPageAssets.js';
12
- async function getVirtualFilePageConfigLazy(id, isDev, config) {
13
- const result = isVirtualFileIdPageConfigLazy(id);
14
- assert(result);
10
+ import { resolveIncludeAssetsImportedByServer } from '../../../runtime/renderPage/getPageAssets/retrievePageAssetsProd.js';
11
+ async function generateVirtualFilePageEntry(id, isDev) {
12
+ const result = parseVirtualFileId(id);
13
+ assert(result && result.type === 'page-entry');
15
14
  /* This assertion fails when using includeAssetsImportedByServer
16
15
  {
17
16
  const isForClientSide = !config.build.ssr
@@ -33,11 +32,11 @@ async function getVirtualFilePageConfigLazy(id, isDev, config) {
33
32
  throw getProjectError('Outdated request');
34
33
  //*/
35
34
  }
36
- const code = getLoadConfigLazy(pageConfig, isForClientSide, pageId, resolveIncludeAssetsImportedByServer(vikeConfig.config), config, isDev);
35
+ const code = getCode(pageConfig, isForClientSide, pageId, resolveIncludeAssetsImportedByServer(vikeConfig.config), isDev);
37
36
  debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
38
37
  return code;
39
38
  }
40
- function getLoadConfigLazy(pageConfig, isForClientSide, pageId, includeAssetsImportedByServer, config, isDev) {
39
+ function getCode(pageConfig, isForClientSide, pageId, includeAssetsImportedByServer, isDev) {
41
40
  const lines = [];
42
41
  const importStatements = [];
43
42
  const filesEnv = new Map();
@@ -45,8 +44,8 @@ function getLoadConfigLazy(pageConfig, isForClientSide, pageId, includeAssetsImp
45
44
  lines.push('export const configValuesSerialized = {');
46
45
  lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, { isForClientSide, isClientRouting, isDev }, '', false));
47
46
  lines.push('};');
48
- if (!handleAssetsManifest_isFixEnabled(config) && includeAssetsImportedByServer && isForClientSide && !isDev) {
49
- importStatements.push(`import '${extractAssetsAddQuery(getVirtualFileIdPageConfigLazy(pageId, false))}'`);
47
+ if (!handleAssetsManifest_isFixEnabled() && includeAssetsImportedByServer && isForClientSide && !isDev) {
48
+ importStatements.push(`import '${extractAssetsAddQuery(generateVirtualFileId({ type: 'page-entry', pageId, isForClientSide: false }))}'`);
50
49
  }
51
50
  const code = [...importStatements, ...lines].join('\n');
52
51
  return code;
@@ -1,5 +1,7 @@
1
1
  export { getConfigValueSourcesRelevant };
2
+ export { getConfigValueSourceRelevantAnyEnv };
2
3
  export { isRuntimeEnvMatch };
4
+ export { isConfigSourceValueNull };
3
5
  export type { RuntimeEnv };
4
6
  import type { ConfigEnvInternal, ConfigValueSource, PageConfigBuildTime, PageConfigGlobalBuildTime } from '../../../../types/PageConfig.js';
5
7
  type RuntimeEnv = {
@@ -9,6 +11,8 @@ type RuntimeEnv = {
9
11
  } | {
10
12
  isForConfig: true;
11
13
  };
14
+ type PageConfigPartial = Pick<PageConfigBuildTime | PageConfigGlobalBuildTime, 'configValueSources' | 'configDefinitions'>;
12
15
  declare function getConfigValueSourcesRelevant(configName: string, runtimeEnv: RuntimeEnv, pageConfig: PageConfigPartial): ConfigValueSource[];
16
+ declare function getConfigValueSourceRelevantAnyEnv(configName: string, pageConfig: PageConfigPartial): null | ConfigValueSource;
13
17
  declare function isRuntimeEnvMatch(configEnv: ConfigEnvInternal, runtimeEnv: RuntimeEnv): boolean;
14
- type PageConfigPartial = Pick<PageConfigBuildTime | PageConfigGlobalBuildTime, 'configValueSources' | 'configDefinitions'>;
18
+ declare function isConfigSourceValueNull(source: ConfigValueSource): boolean | null;
@@ -1,28 +1,47 @@
1
1
  export { getConfigValueSourcesRelevant };
2
+ export { getConfigValueSourceRelevantAnyEnv };
2
3
  export { isRuntimeEnvMatch };
3
- import { assert } from '../../utils.js';
4
+ export { isConfigSourceValueNull };
5
+ import { assert, assertIsNotBrowser } from '../../utils.js';
6
+ assertIsNotBrowser();
4
7
  function getConfigValueSourcesRelevant(configName, runtimeEnv, pageConfig) {
5
8
  const configDef = pageConfig.configDefinitions[configName];
6
9
  assert(configDef);
7
10
  let sourcesRelevant = pageConfig.configValueSources[configName];
8
11
  if (!sourcesRelevant)
9
12
  return [];
10
- if (!configDef.cumulative) {
13
+ // Ignore configs with value `undefined`
14
+ sourcesRelevant = sourcesRelevant.filter((source) => !isConfigSourceValueUndefined(source));
15
+ // Environment filtering
16
+ sourcesRelevant = sourcesRelevant.filter((source) => isRuntimeEnvMatch(source.configEnv, runtimeEnv));
17
+ // Overriding - non-cumulative configs
18
+ if (!configDef.cumulative && sourcesRelevant.length > 1) {
11
19
  const source = sourcesRelevant[0];
12
- if (source) {
13
- sourcesRelevant = [source];
14
- }
15
- else {
16
- assert(sourcesRelevant.length === 0);
17
- }
20
+ assert(source);
21
+ sourcesRelevant = [source];
18
22
  }
19
- else {
20
- // isOverridden() must be called before isRuntimeEnvMatch() is called (otherwise isOverridden() will return a wrong value)
21
- sourcesRelevant = sourcesRelevant.filter((source) => !isOverridden(source, configName, pageConfig));
23
+ // Overriding - cumulative configs
24
+ if (configDef.cumulative && sourcesRelevant.length > 0) {
25
+ sourcesRelevant = applyFilenameSuffix(sourcesRelevant);
22
26
  }
23
- sourcesRelevant = sourcesRelevant.filter((source) => isRuntimeEnvMatch(source.configEnv, runtimeEnv));
24
27
  return sourcesRelevant;
25
28
  }
29
+ function getConfigValueSourceRelevantAnyEnv(configName, pageConfig) {
30
+ const configDef = pageConfig.configDefinitions[configName];
31
+ assert(configDef);
32
+ assert(!configDef.cumulative); // So far, this function is only used by non-cumulative configs
33
+ let sourcesRelevant = pageConfig.configValueSources[configName];
34
+ if (!sourcesRelevant)
35
+ return null;
36
+ // Ignore configs with value `undefined`
37
+ sourcesRelevant = sourcesRelevant.filter((source) => !isConfigSourceValueUndefined(source));
38
+ const source = sourcesRelevant[0];
39
+ if (!source)
40
+ return null;
41
+ if (isConfigSourceValueNull(source))
42
+ return null;
43
+ return source;
44
+ }
26
45
  function isRuntimeEnvMatch(configEnv, runtimeEnv) {
27
46
  if ('isForConfig' in runtimeEnv)
28
47
  return !!configEnv.config;
@@ -52,14 +71,25 @@ function isRuntimeEnvMatch(configEnv, runtimeEnv) {
52
71
  }
53
72
  return true;
54
73
  }
55
- function isOverridden(source, configName, pageConfig) {
56
- const configDef = pageConfig.configDefinitions[configName];
57
- assert(configDef);
58
- if (configDef.cumulative)
59
- return false;
60
- const sources = pageConfig.configValueSources[configName];
61
- assert(sources);
62
- const idx = sources.indexOf(source);
63
- assert(idx >= 0);
64
- return idx > 0;
74
+ // Setting a config to `undefined` should be equivalent to not setting it at all
75
+ function isConfigSourceValueUndefined(source) {
76
+ if (!source.valueIsLoaded)
77
+ return null;
78
+ return source.value === undefined;
79
+ }
80
+ // Setting a config to `null` enables the user to suppress inherited config by overriding it with `null` (this only works when setting the config value to `null` inside a +config.js file — it doesn't work when setting the config value to `null` with a +{configName}.js file).
81
+ function isConfigSourceValueNull(source) {
82
+ if (!source.valueIsLoaded)
83
+ return null;
84
+ return source.value === null;
85
+ }
86
+ function applyFilenameSuffix(sourcesRelevant) {
87
+ const getFileName = (source) => source.plusFile?.filePath.fileName ?? '';
88
+ // Apply `clear`: truncate at first clear file
89
+ const clearIndex = sourcesRelevant.findIndex((source) => getFileName(source).includes('.clear.'));
90
+ if (clearIndex !== -1)
91
+ sourcesRelevant = sourcesRelevant.slice(0, clearIndex + 1);
92
+ // Apply `default`: exclude defaults if any non-defaults exist, otherwise keep only first default
93
+ const nonDefaults = sourcesRelevant.filter((source) => !getFileName(source).includes('.default.'));
94
+ return nonDefaults.length > 0 ? nonDefaults : sourcesRelevant.slice(0, 1);
65
95
  }
@@ -1,10 +1,9 @@
1
1
  export { pluginVirtualFiles };
2
2
  import { normalizePath } from 'vite';
3
- import { getVirtualFilePageConfigLazy } from './pluginVirtualFiles/getVirtualFilePageConfigLazy.js';
4
- import { getVirtualFileEntry } from './pluginVirtualFiles/getVirtualFileEntry.js';
3
+ import { generateVirtualFilePageEntry } from './pluginVirtualFiles/generateVirtualFilePageEntry.js';
4
+ import { generateVirtualFileGlobalEntryWithOldDesign } from './pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js';
5
5
  import { assert, assertPosixPath, isScriptFile, addVirtualFileIdPrefix, isVirtualFileId, removeVirtualFileIdPrefix, } from '../utils.js';
6
- import { isVirtualFileIdPageConfigLazy } from '../../shared/virtualFiles/virtualFilePageConfigLazy.js';
7
- import { isVirtualFileIdEntry } from '../../shared/virtualFiles/virtualFileEntry.js';
6
+ import { parseVirtualFileId } from '../../shared/virtualFileId.js';
8
7
  import { reloadVikeConfig, isV1Design, getVikeConfigInternalOptional } from '../shared/resolveVikeConfigInternal.js';
9
8
  import pc from '@brillout/picocolors';
10
9
  import { logConfigInfo } from '../shared/loggerNotProd.js';
@@ -44,13 +43,16 @@ function pluginVirtualFiles() {
44
43
  id = removeVirtualFileIdPrefix(id);
45
44
  const isDev = config._isDev;
46
45
  assert(typeof isDev === 'boolean');
47
- if (isVirtualFileIdPageConfigLazy(id)) {
48
- const code = await getVirtualFilePageConfigLazy(id, isDev, config);
49
- return code;
50
- }
51
- if (isVirtualFileIdEntry(id)) {
52
- const code = await getVirtualFileEntry(id, options, config, isDev);
53
- return code;
46
+ const idParsed = parseVirtualFileId(id);
47
+ if (idParsed) {
48
+ if (idParsed.type === 'page-entry') {
49
+ const code = await generateVirtualFilePageEntry(id, isDev);
50
+ return code;
51
+ }
52
+ if (idParsed.type === 'global-entry') {
53
+ const code = await generateVirtualFileGlobalEntryWithOldDesign(id, options, config, this.environment, isDev);
54
+ return code;
55
+ }
54
56
  }
55
57
  },
56
58
  configureServer(server) {
@@ -163,7 +165,7 @@ function reloadConfig(filePath, config, op, server) {
163
165
  }
164
166
  function getVikeVirtualFiles(server) {
165
167
  const vikeVirtualFiles = Array.from(server.moduleGraph.urlToModuleMap.keys())
166
- .filter((url) => isVirtualFileIdPageConfigLazy(url) || isVirtualFileIdEntry(url))
168
+ .filter((url) => parseVirtualFileId(url))
167
169
  .map((url) => {
168
170
  const mod = server.moduleGraph.urlToModuleMap.get(url);
169
171
  assert(mod);
@@ -5,7 +5,7 @@ import pc from '@brillout/picocolors';
5
5
  import { getOutDirs } from './getOutDirs.js';
6
6
  async function findPageFiles(config, fileTypes, isDev) {
7
7
  const cwd = config.root;
8
- const { outDirRoot } = getOutDirs(config);
8
+ const { outDirRoot } = getOutDirs(config, undefined);
9
9
  const timeBase = new Date().getTime();
10
10
  let pageFiles = await glob(fileTypes.map((fileType) => `**/*${fileType}.${scriptFileExtensionPattern}`), { ignore: ['**/node_modules/**', `${outDirRoot}/**`], cwd, dot: false, expandDirectories: false });
11
11
  pageFiles = pageFiles.map((p) => '/' + toPosixPath(p));
@@ -0,0 +1,4 @@
1
+ export { getClientEntrySrcDev };
2
+ export type GetClientEntrySrcDev = typeof getClientEntrySrcDev;
3
+ import type { ViteDevServer } from 'vite';
4
+ declare function getClientEntrySrcDev(clientEntry: string, viteDevServer: ViteDevServer): string;
@@ -1,7 +1,7 @@
1
- export { resolveClientEntriesDev };
2
- import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsImportPathNpmPackage, assertIsNotProductionRuntime, requireResolveNpmPackage, requireResolveVikeDistFile, } from '../utils.js';
1
+ export { getClientEntrySrcDev };
2
+ import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsImportPathNpmPackage, assertIsNotProductionRuntime, requireResolveNpmPackage, requireResolveDistFile, } from '../utils.js';
3
3
  assertIsNotProductionRuntime();
4
- function resolveClientEntriesDev(clientEntry, viteDevServer) {
4
+ function getClientEntrySrcDev(clientEntry, viteDevServer) {
5
5
  let userRootDir = viteDevServer.config.root;
6
6
  assert(userRootDir);
7
7
  userRootDir = toPosixPath(userRootDir);
@@ -23,7 +23,7 @@ function resolveClientEntriesDev(clientEntry, viteDevServer) {
23
23
  else {
24
24
  if (clientEntry.startsWith('@@vike/')) {
25
25
  assert(clientEntry.endsWith('.js'));
26
- filePath = requireResolveVikeDistFile(`dist/esm/${clientEntry.replace('@@vike/dist/esm/', '')}`);
26
+ filePath = requireResolveDistFile(`dist/esm/${clientEntry.replace('@@vike/dist/esm/', '')}`);
27
27
  }
28
28
  else {
29
29
  assertIsImportPathNpmPackage(clientEntry);