vike 0.4.220 → 0.4.221-commit-ab9e52a

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 (296) hide show
  1. package/dist/cjs/__internal/index.js +5 -23
  2. package/dist/cjs/node/api/build.js +33 -24
  3. package/dist/cjs/node/api/context.js +6 -8
  4. package/dist/cjs/node/api/prepareViteApiCall.js +23 -21
  5. package/dist/cjs/node/api/prerender.js +1 -0
  6. package/dist/cjs/node/api/utils.js +2 -1
  7. package/dist/cjs/node/cli/context.js +16 -0
  8. package/dist/cjs/node/cli/entry.js +2 -0
  9. package/dist/cjs/node/cli/utils.js +1 -0
  10. package/dist/cjs/node/plugin/index.js +4 -8
  11. package/dist/cjs/node/plugin/onLoad.js +6 -1
  12. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +34 -33
  13. package/dist/cjs/node/plugin/plugins/baseUrls.js +2 -2
  14. package/dist/cjs/node/plugin/plugins/buildApp.js +72 -0
  15. package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +12 -12
  16. package/dist/cjs/node/plugin/plugins/buildConfig.js +17 -12
  17. package/dist/cjs/node/plugin/plugins/buildEntry/index.js +28 -24
  18. package/dist/cjs/node/plugin/plugins/commonConfig.js +9 -7
  19. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +7 -4
  20. package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
  21. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +15 -10
  22. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +11 -6
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +59 -22
  25. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
  26. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +159 -0
  27. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +40 -23
  28. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +9 -64
  29. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -5
  30. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +403 -590
  31. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
  32. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
  33. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
  34. package/dist/cjs/node/plugin/plugins/packageJsonFile.js +2 -2
  35. package/dist/cjs/node/plugin/plugins/previewConfig.js +7 -7
  36. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +3 -5
  37. package/dist/cjs/node/plugin/shared/findPageFiles.js +2 -1
  38. package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +20 -0
  39. package/dist/cjs/{utils → node/plugin/shared}/getOutDirs.js +70 -61
  40. package/dist/cjs/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
  41. package/dist/cjs/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
  42. package/dist/cjs/node/plugin/utils.js +1 -2
  43. package/dist/cjs/node/prerender/context.js +31 -0
  44. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +46 -0
  45. package/dist/cjs/node/prerender/runPrerender.js +89 -68
  46. package/dist/cjs/node/prerender/utils.js +2 -2
  47. package/dist/cjs/node/runtime/globalContext.js +222 -150
  48. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
  49. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
  50. package/dist/cjs/node/runtime/html/injectAssets.js +4 -4
  51. package/dist/cjs/node/runtime/html/renderHtml.js +4 -5
  52. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  53. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -3
  54. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +2 -27
  55. package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
  56. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +4 -4
  57. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
  58. package/dist/cjs/node/runtime/renderPage/isFontFallback.js +29 -0
  59. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +5 -4
  60. package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -2
  61. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
  62. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +6 -5
  63. package/dist/cjs/node/runtime/renderPage.js +31 -29
  64. package/dist/cjs/node/runtime/utils.js +3 -3
  65. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +5 -3
  66. package/dist/cjs/node/shared/resolveBase.js +7 -0
  67. package/dist/cjs/shared/getPageConfigsRuntime.js +20 -0
  68. package/dist/cjs/shared/getPageContextUrlComputed.js +6 -1
  69. package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -1
  70. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -3
  71. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -5
  72. package/dist/cjs/shared/getPageFiles/parseGlobResults.js +4 -3
  73. package/dist/cjs/shared/getPageFiles.js +1 -3
  74. package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +15 -6
  75. package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
  76. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +69 -18
  77. package/dist/cjs/shared/route/loadPageRoutes.js +1 -0
  78. package/dist/cjs/shared/utils.js +0 -1
  79. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  80. package/dist/cjs/utils/assertSetup.js +1 -1
  81. package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
  82. package/dist/cjs/utils/debug.js +8 -6
  83. package/dist/cjs/utils/findFile.js +4 -3
  84. package/dist/cjs/utils/isDev.js +2 -2
  85. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +2 -2
  86. package/dist/cjs/utils/makePublicCopy.js +32 -0
  87. package/dist/cjs/utils/objectAssignSafe.js +7 -0
  88. package/dist/cjs/utils/path.js +48 -0
  89. package/dist/cjs/utils/requireResolve.js +3 -3
  90. package/dist/esm/__internal/index.d.ts +2 -2
  91. package/dist/esm/__internal/index.js +7 -26
  92. package/dist/esm/client/client-routing-runtime/createPageContext.js +5 -9
  93. package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
  94. package/dist/esm/client/client-routing-runtime/history.js +23 -18
  95. package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
  96. package/dist/esm/client/client-routing-runtime/index.js +0 -1
  97. package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
  98. package/dist/esm/client/client-routing-runtime/initOnLinkClick.d.ts +0 -4
  99. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +0 -11
  100. package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
  101. package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -70
  102. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
  103. package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
  104. package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
  105. package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
  106. package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
  107. package/dist/esm/client/client-routing-runtime/skipLink.d.ts +0 -2
  108. package/dist/esm/client/client-routing-runtime/skipLink.js +0 -1
  109. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  110. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  111. package/dist/esm/client/server-routing-runtime/getPageContext.js +3 -4
  112. package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -2
  113. package/dist/esm/node/api/build.d.ts +1 -6
  114. package/dist/esm/node/api/build.js +31 -25
  115. package/dist/esm/node/api/context.d.ts +4 -4
  116. package/dist/esm/node/api/context.js +6 -9
  117. package/dist/esm/node/api/prepareViteApiCall.d.ts +4 -3
  118. package/dist/esm/node/api/prepareViteApiCall.js +24 -22
  119. package/dist/esm/node/api/prerender.js +1 -0
  120. package/dist/esm/node/api/utils.d.ts +2 -1
  121. package/dist/esm/node/api/utils.js +2 -1
  122. package/dist/esm/node/cli/context.d.ts +5 -0
  123. package/dist/esm/node/cli/context.js +14 -0
  124. package/dist/esm/node/cli/entry.js +2 -0
  125. package/dist/esm/node/cli/parseCli.d.ts +3 -1
  126. package/dist/esm/node/cli/utils.d.ts +1 -0
  127. package/dist/esm/node/cli/utils.js +1 -0
  128. package/dist/esm/node/plugin/index.d.ts +29 -1
  129. package/dist/esm/node/plugin/index.js +5 -9
  130. package/dist/esm/node/plugin/onLoad.js +7 -2
  131. package/dist/esm/node/plugin/plugins/autoFullBuild.js +35 -34
  132. package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
  133. package/dist/esm/node/plugin/plugins/buildApp.d.ts +3 -0
  134. package/dist/esm/node/plugin/plugins/buildApp.js +70 -0
  135. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -2
  136. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +11 -11
  137. package/dist/esm/node/plugin/plugins/buildConfig.js +16 -11
  138. package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +3 -3
  139. package/dist/esm/node/plugin/plugins/buildEntry/index.js +28 -24
  140. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +8 -2
  141. package/dist/esm/node/plugin/plugins/commonConfig.js +7 -5
  142. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +6 -3
  143. package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
  144. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
  145. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +14 -9
  146. package/dist/esm/node/plugin/plugins/importUserCode/index.js +11 -6
  147. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.d.ts +6 -0
  148. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
  149. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -2
  150. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +58 -21
  151. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
  152. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.d.ts +39 -0
  153. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +154 -0
  154. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +15 -9
  155. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +41 -24
  156. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +8 -18
  157. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +10 -65
  158. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +6 -2
  159. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +12 -6
  160. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +10 -122
  161. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +407 -594
  162. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
  163. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
  164. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
  165. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.d.ts → virtual-files/isRuntimeEnvMatch.d.ts} +1 -1
  166. package/dist/esm/node/plugin/plugins/packageJsonFile.js +1 -1
  167. package/dist/esm/node/plugin/plugins/previewConfig.js +5 -5
  168. package/dist/esm/node/plugin/plugins/setGlobalContext.js +4 -6
  169. package/dist/esm/node/plugin/shared/findPageFiles.js +2 -1
  170. package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +2 -0
  171. package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +17 -0
  172. package/dist/esm/{utils → node/plugin/shared}/getOutDirs.d.ts +1 -1
  173. package/dist/esm/{utils → node/plugin/shared}/getOutDirs.js +52 -43
  174. package/dist/esm/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
  175. package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.d.ts +2 -5
  176. package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
  177. package/dist/esm/node/plugin/utils.d.ts +0 -1
  178. package/dist/esm/node/plugin/utils.js +1 -2
  179. package/dist/esm/node/prerender/context.d.ts +11 -0
  180. package/dist/esm/node/prerender/context.js +29 -0
  181. package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +12 -0
  182. package/dist/esm/node/prerender/resolvePrerenderConfig.js +44 -0
  183. package/dist/esm/node/prerender/runPrerender.d.ts +42 -1
  184. package/dist/esm/node/prerender/runPrerender.js +90 -69
  185. package/dist/esm/node/prerender/utils.d.ts +2 -2
  186. package/dist/esm/node/prerender/utils.js +2 -2
  187. package/dist/esm/node/runtime/globalContext.d.ts +44 -36
  188. package/dist/esm/node/runtime/globalContext.js +223 -151
  189. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.d.ts +1 -1
  190. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
  191. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +4 -1
  192. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
  193. package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -0
  194. package/dist/esm/node/runtime/html/injectAssets.js +4 -4
  195. package/dist/esm/node/runtime/html/renderHtml.js +4 -5
  196. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  197. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -1
  198. package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -3
  199. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -26
  200. package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts +1 -1
  201. package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
  202. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +3 -1
  203. package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -4
  204. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -0
  205. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
  206. package/dist/esm/node/runtime/renderPage/isFontFallback.d.ts +3 -0
  207. package/dist/esm/node/runtime/renderPage/isFontFallback.js +27 -0
  208. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -0
  209. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +6 -5
  210. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -0
  211. package/dist/esm/node/runtime/renderPage/log404/index.js +1 -2
  212. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -0
  213. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +26 -10
  214. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
  215. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
  216. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +5 -5
  217. package/dist/esm/node/runtime/renderPage.js +32 -30
  218. package/dist/esm/node/runtime/utils.d.ts +3 -3
  219. package/dist/esm/node/runtime/utils.js +3 -3
  220. package/dist/esm/node/runtime-dev/createDevMiddleware.js +5 -3
  221. package/dist/esm/node/shared/resolveBase.d.ts +5 -1
  222. package/dist/esm/node/shared/resolveBase.js +7 -0
  223. package/dist/esm/shared/getPageConfigsRuntime.d.ts +13 -0
  224. package/dist/esm/shared/getPageConfigsRuntime.js +18 -0
  225. package/dist/esm/shared/getPageContextUrlComputed.js +6 -1
  226. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -2
  227. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +0 -3
  228. package/dist/esm/shared/getPageFiles/getPageFileObject.js +0 -5
  229. package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +1 -1
  230. package/dist/esm/shared/getPageFiles/parseGlobResults.js +4 -3
  231. package/dist/esm/shared/getPageFiles.d.ts +0 -1
  232. package/dist/esm/shared/getPageFiles.js +0 -1
  233. package/dist/esm/shared/page-configs/Config.d.ts +83 -3
  234. package/dist/esm/shared/page-configs/PageConfig.d.ts +30 -18
  235. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +6 -8
  236. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +15 -6
  237. package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
  238. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +7 -1
  239. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +70 -19
  240. package/dist/esm/shared/route/loadPageRoutes.js +1 -0
  241. package/dist/esm/shared/utils.d.ts +0 -1
  242. package/dist/esm/shared/utils.js +0 -1
  243. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  244. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  245. package/dist/esm/utils/assertSetup.js +1 -1
  246. package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
  247. package/dist/esm/utils/catchInfiniteLoop.js +32 -0
  248. package/dist/esm/utils/debug.d.ts +1 -1
  249. package/dist/esm/utils/debug.js +8 -6
  250. package/dist/esm/utils/findFile.js +2 -1
  251. package/dist/esm/utils/isDev.js +3 -3
  252. package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
  253. package/dist/esm/utils/makePublicCopy.d.ts +3 -0
  254. package/dist/esm/utils/makePublicCopy.js +30 -0
  255. package/dist/esm/utils/objectAssignSafe.d.ts +1 -0
  256. package/dist/esm/utils/objectAssignSafe.js +4 -0
  257. package/dist/esm/utils/path.d.ts +14 -0
  258. package/dist/esm/utils/path.js +46 -0
  259. package/dist/esm/utils/projectInfo.d.ts +1 -1
  260. package/dist/esm/utils/requireResolve.js +1 -1
  261. package/package.json +2 -2
  262. package/dist/cjs/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -17
  263. package/dist/cjs/node/plugin/plugins/importUserCode/addImportStatement.js +0 -29
  264. package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +0 -16
  265. package/dist/cjs/node/shared/assertPluginManifest.js +0 -20
  266. package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -16
  267. package/dist/cjs/shared/assertPageFilePath.js +0 -11
  268. package/dist/cjs/shared/getPageFiles/getPageFiles.js +0 -48
  269. package/dist/cjs/utils/filesystemPathHandling.js +0 -18
  270. package/dist/cjs/utils/path-shim.js +0 -19
  271. package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.d.ts +0 -5
  272. package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -15
  273. package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +0 -14
  274. package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.js +0 -27
  275. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.d.ts +0 -5
  276. package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +0 -5
  277. package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +0 -14
  278. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -12
  279. package/dist/esm/node/shared/assertPluginManifest.js +0 -18
  280. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -10
  281. package/dist/esm/node/shared/assertRuntimeManifest.js +0 -14
  282. package/dist/esm/shared/assertPageFilePath.d.ts +0 -2
  283. package/dist/esm/shared/assertPageFilePath.js +0 -9
  284. package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +0 -15
  285. package/dist/esm/shared/getPageFiles/getPageFiles.js +0 -46
  286. package/dist/esm/utils/filesystemPathHandling.d.ts +0 -4
  287. package/dist/esm/utils/filesystemPathHandling.js +0 -16
  288. package/dist/esm/utils/path-shim.d.ts +0 -2
  289. package/dist/esm/utils/path-shim.js +0 -17
  290. /package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
  291. /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.d.ts → getVikeConfig/getConfigFileExport.d.ts} +0 -0
  292. /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.d.ts → virtual-files/debug.d.ts} +0 -0
  293. /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.d.ts → virtual-files/getVirtualFilePageConfigValuesAll.d.ts} +0 -0
  294. /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.d.ts → virtual-files/getVirtualFilePageConfigs.d.ts} +0 -0
  295. /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
  296. /package/dist/esm/node/plugin/{resolveClientEntriesDev.d.ts → shared/resolveClientEntriesDev.d.ts} +0 -0
@@ -1,2 +1,2 @@
1
- import { createDebugger } from '../../../utils.js';
1
+ import { createDebugger } from '../../../../utils.js';
2
2
  export const debug = createDebugger('vike:virtual-files');
@@ -1,13 +1,13 @@
1
1
  export { getVirtualFilePageConfigValuesAll };
2
- import { assert } from '../../../utils.js';
3
- import { getVirtualFileIdPageConfigValuesAll, isVirtualFileIdPageConfigValuesAll } from '../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
4
- import { getVikeConfig } from './getVikeConfig.js';
5
- import { extractAssetsAddQuery } from '../../../../shared/extractAssetsQuery.js';
2
+ import { assert } from '../../../../utils.js';
3
+ import { getVirtualFileIdPageConfigValuesAll, isVirtualFileIdPageConfigValuesAll } from '../../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
4
+ import { getVikeConfig } from '../getVikeConfig.js';
5
+ import { extractAssetsAddQuery } from '../../../../../shared/extractAssetsQuery.js';
6
6
  import { debug } from './debug.js';
7
7
  import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
8
- import { serializeConfigValues } from '../../../../../shared/page-configs/serialize/serializeConfigValues.js';
9
- import { fixServerAssets_isEnabled } from '../../buildConfig/fixServerAssets.js';
10
- import { getConfigValueBuildTime } from '../../../../../shared/page-configs/getConfigValueBuildTime.js';
8
+ import { serializeConfigValues } from '../../../../../../shared/page-configs/serialize/serializeConfigValues.js';
9
+ import { fixServerAssets_isEnabled } from '../../../buildConfig/fixServerAssets.js';
10
+ import { getConfigValueBuildTime } from '../../../../../../shared/page-configs/getConfigValueBuildTime.js';
11
11
  async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
12
12
  const result = isVirtualFileIdPageConfigValuesAll(id);
13
13
  assert(result);
@@ -22,16 +22,19 @@ async function getVirtualFilePageConfigValuesAll(id, isDev, config) {
22
22
  const { pageConfigs } = vikeConfig;
23
23
  const pageConfig = pageConfigs.find((pageConfig) => pageConfig.pageId === pageId);
24
24
  assert(pageConfig, { id, pageId });
25
- const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId, vikeConfig.vikeConfigGlobal.includeAssetsImportedByServer, isDev);
25
+ const code = getLoadConfigValuesAll(pageConfig, isForClientSide, pageId,
26
+ // TODO/now: add meta.default
27
+ vikeConfig.global.config.includeAssetsImportedByServer ?? true, isDev);
26
28
  debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
27
29
  return code;
28
30
  }
29
31
  function getLoadConfigValuesAll(pageConfig, isForClientSide, pageId, includeAssetsImportedByServer, isDev) {
30
32
  const lines = [];
31
33
  const importStatements = [];
34
+ const filesEnv = new Map();
32
35
  const isClientRouting = getConfigValueBuildTime(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
33
36
  lines.push('export const configValuesSerialized = {');
34
- lines.push(...serializeConfigValues(pageConfig, importStatements, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), '', false));
37
+ lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), '', false));
35
38
  lines.push('};');
36
39
  if (!fixServerAssets_isEnabled() && includeAssetsImportedByServer && isForClientSide && !isDev) {
37
40
  importStatements.push(`import '${extractAssetsAddQuery(getVirtualFileIdPageConfigValuesAll(pageId, false))}'`);
@@ -1,9 +1,9 @@
1
1
  export { getVirtualFilePageConfigs };
2
- import { getVirtualFileIdPageConfigValuesAll } from '../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
2
+ import { getVirtualFileIdPageConfigValuesAll } from '../../../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
3
3
  import { debug } from './debug.js';
4
- import { getVikeConfig } from './getVikeConfig.js';
4
+ import { getVikeConfig } from '../getVikeConfig.js';
5
5
  import { isRuntimeEnvMatch } from './isRuntimeEnvMatch.js';
6
- import { serializeConfigValues } from '../../../../../shared/page-configs/serialize/serializeConfigValues.js';
6
+ import { serializeConfigValues } from '../../../../../../shared/page-configs/serialize/serializeConfigValues.js';
7
7
  async function getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRouting, config) {
8
8
  const vikeConfig = await getVikeConfig(config, { doNotRestartViteOnError: true });
9
9
  const { pageConfigs, pageConfigGlobal } = vikeConfig;
@@ -12,38 +12,40 @@ async function getVirtualFilePageConfigs(isForClientSide, isDev, id, isClientRou
12
12
  function getCode(pageConfigs, pageConfigGlobal, isForClientSide, isDev, id, isClientRouting) {
13
13
  const lines = [];
14
14
  const importStatements = [];
15
+ const filesEnv = new Map();
15
16
  lines.push('export const pageConfigsSerialized = [');
16
- lines.push(getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements));
17
+ lines.push(getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements, filesEnv));
17
18
  lines.push('];');
18
19
  lines.push('export const pageConfigGlobalSerialized = {');
19
- lines.push(getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements));
20
+ lines.push(getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv));
20
21
  lines.push('};');
21
22
  const code = [...importStatements, ...lines].join('\n');
22
23
  debug(id, isForClientSide ? 'CLIENT-SIDE' : 'SERVER-SIDE', code);
23
24
  return code;
24
25
  }
25
- function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements) {
26
+ function getCodePageConfigsSerialized(pageConfigs, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) {
26
27
  const lines = [];
27
28
  pageConfigs.forEach((pageConfig) => {
28
29
  const { pageId, routeFilesystem, isErrorPage } = pageConfig;
29
- const virtualFileIdPageConfigValuesAll = getVirtualFileIdPageConfigValuesAll(pageId, isForClientSide);
30
30
  lines.push(` {`);
31
31
  lines.push(` pageId: ${JSON.stringify(pageId)},`);
32
32
  lines.push(` isErrorPage: ${JSON.stringify(isErrorPage)},`);
33
33
  lines.push(` routeFilesystem: ${JSON.stringify(routeFilesystem)},`);
34
- lines.push(` loadConfigValuesAll: () => import(${JSON.stringify(virtualFileIdPageConfigValuesAll)}),`);
34
+ const virtualFileId = JSON.stringify(getVirtualFileIdPageConfigValuesAll(pageId, isForClientSide));
35
+ const load = `() => ({ moduleId: ${virtualFileId}, moduleExports: import(${virtualFileId}) })`;
36
+ lines.push(` loadConfigValuesAll: ${load},`);
35
37
  lines.push(` configValuesSerialized: {`);
36
- lines.push(...serializeConfigValues(pageConfig, importStatements, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true));
38
+ lines.push(...serializeConfigValues(pageConfig, importStatements, filesEnv, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', true));
37
39
  lines.push(` },`);
38
40
  lines.push(` },`);
39
41
  });
40
42
  const code = lines.join('\n');
41
43
  return code;
42
44
  }
43
- function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements) {
45
+ function getCodePageConfigGlobalSerialized(pageConfigGlobal, isForClientSide, isClientRouting, isDev, importStatements, filesEnv) {
44
46
  const lines = [];
45
47
  lines.push(` configValuesSerialized: {`);
46
- lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', null));
48
+ lines.push(...serializeConfigValues(pageConfigGlobal, importStatements, filesEnv, (configEnv) => isRuntimeEnvMatch(configEnv, { isForClientSide, isClientRouting, isDev }), ' ', null));
47
49
  lines.push(` },`);
48
50
  const code = lines.join('\n');
49
51
  return code;
@@ -1,5 +1,5 @@
1
1
  export { isRuntimeEnvMatch };
2
- import type { ConfigEnvInternal } from '../../../../../shared/page-configs/PageConfig.js';
2
+ import type { ConfigEnvInternal } from '../../../../../../shared/page-configs/PageConfig.js';
3
3
  declare function isRuntimeEnvMatch(configEnv: ConfigEnvInternal, runtime: {
4
4
  isForClientSide: boolean;
5
5
  isClientRouting: boolean;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export { packageJsonFile };
10
10
  import { rollupIsEsm } from '../shared/rollupIsEsm.js';
11
- import { viteIsSSR } from '../utils.js';
11
+ import { viteIsSSR } from '../shared/viteIsSSR.js';
12
12
  function packageJsonFile() {
13
13
  let config;
14
14
  return {
@@ -1,13 +1,14 @@
1
1
  export { previewConfig };
2
- import { assertUsage, getOutDirs, resolveOutDir, applyPreview } from '../utils.js';
2
+ import { assertUsage, applyPreview } from '../utils.js';
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
5
  import { addSsrMiddleware } from '../shared/addSsrMiddleware.js';
6
6
  import pc from '@brillout/picocolors';
7
7
  import { logDockerHint } from './devConfig/index.js';
8
+ import { getOutDirs, resolveOutDir } from '../shared/getOutDirs.js';
8
9
  function previewConfig() {
9
10
  let config;
10
- // let vikeConfigGlobal: VikeConfigGlobal
11
+ // let vikeConfig: VikeConfigObject
11
12
  return {
12
13
  name: 'vike:previewConfig',
13
14
  apply: applyPreview,
@@ -22,8 +23,7 @@ function previewConfig() {
22
23
  async configResolved(config_) {
23
24
  config = config_;
24
25
  logDockerHint(config.preview.host);
25
- // const vikeConfig = await getVikeConfig(config)
26
- // vikeConfigGlobal = vikeConfig.vikeConfigGlobal
26
+ // vikeConfig = await getVikeConfig(config)
27
27
  },
28
28
  configurePreviewServer(server) {
29
29
  /* - Couldn't make `appType: 'mpa'` work as of npm:@brillout/vite@5.0.0-beta.14.0426910c
@@ -33,7 +33,7 @@ function previewConfig() {
33
33
  return () => {
34
34
  assertDist();
35
35
  /* We don't use this condition (we wrongfully always use the SSR middleware) because of the regression introduced by https://github.com/vitejs/vite/pull/14756 which stops servering .html files when `appType: 'custom'`.
36
- if (!vikeConfigGlobal.prerender || vikeConfigGlobal.prerender.partial) {
36
+ if (!vikeConfig.global.config.prerender || vikeConfig.global.config.prerender.partial) {
37
37
  addSsrMiddleware(server.middlewares, config, true)
38
38
  }
39
39
  /*/
@@ -1,7 +1,7 @@
1
1
  export { setGlobalContext };
2
- import { setGlobalContext_isViteDev, setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_vikeConfig } from '../../runtime/globalContext.js';
3
- import { assertFilePathAbsoluteFilesystem, getOutDirs, isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.js';
4
- import { getVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
2
+ import { setGlobalContext_viteDevServer, setGlobalContext_viteConfig, setGlobalContext_isProduction } from '../../runtime/globalContext.js';
3
+ import { assertFilePathAbsoluteFilesystem, isDevCheck, markSetup_isViteDev, markSetup_viteDevServer, markSetup_vitePreviewServer } from '../utils.js';
4
+ import { getOutDirs } from '../shared/getOutDirs.js';
5
5
  function setGlobalContext() {
6
6
  return [
7
7
  {
@@ -21,7 +21,7 @@ function setGlobalContext() {
21
21
  order: 'pre',
22
22
  handler(_, env) {
23
23
  const isViteDev = isDevCheck(env);
24
- setGlobalContext_isViteDev(isViteDev);
24
+ setGlobalContext_isProduction(!isViteDev);
25
25
  markSetup_isViteDev(isViteDev);
26
26
  }
27
27
  }
@@ -35,8 +35,6 @@ function setGlobalContext() {
35
35
  const { outDirRoot } = getOutDirs(config);
36
36
  assertFilePathAbsoluteFilesystem(outDirRoot); // Needed for `importServerProductionEntry({ outDir })` of @brillout/vite-plugin-server-entry
37
37
  setGlobalContext_viteConfig(config, outDirRoot);
38
- const vikeConfig = await getVikeConfig(config);
39
- setGlobalContext_vikeConfig(vikeConfig);
40
38
  }
41
39
  }
42
40
  }
@@ -1,7 +1,8 @@
1
1
  export { findPageFiles };
2
2
  import glob from 'fast-glob';
3
- import { assertWarning, toPosixPath, scriptFileExtensions, getOutDirs } from '../utils.js';
3
+ import { assertWarning, toPosixPath, scriptFileExtensions } from '../utils.js';
4
4
  import pc from '@brillout/picocolors';
5
+ import { getOutDirs } from './getOutDirs.js';
5
6
  async function findPageFiles(config, fileTypes, isDev) {
6
7
  const cwd = config.root;
7
8
  const { outDirRoot } = getOutDirs(config);
@@ -0,0 +1,2 @@
1
+ import type { InlineConfig, ResolvedConfig } from 'vite';
2
+ export declare function getFullBuildInlineConfig(config: ResolvedConfig): InlineConfig;
@@ -0,0 +1,17 @@
1
+ import { getViteConfigFromCli, isViteCliCall } from './isViteCliCall.js';
2
+ export function getFullBuildInlineConfig(config) {
3
+ const configFromCli = !isViteCliCall() ? null : getViteConfigFromCli();
4
+ if (config._viteConfigEnhanced) {
5
+ return config._viteConfigEnhanced;
6
+ }
7
+ else {
8
+ return {
9
+ ...configFromCli,
10
+ configFile: configFromCli?.configFile || config.configFile,
11
+ root: config.root,
12
+ build: {
13
+ ...configFromCli?.build
14
+ }
15
+ };
16
+ }
17
+ }
@@ -12,4 +12,4 @@ type OutDirs = {
12
12
  };
13
13
  declare function getOutDirs(config: ResolvedConfig): OutDirs;
14
14
  /** Appends `client/` or `server/` to `config.build.outDir` */
15
- declare function resolveOutDir(config: UserConfig): string;
15
+ declare function resolveOutDir(config: UserConfig, isSSR?: true): string;
@@ -1,57 +1,39 @@
1
1
  export { getOutDirs };
2
2
  export { resolveOutDir };
3
- import { viteIsSSR } from './viteIsSSR.js';
4
- import { assert, assertUsage } from './assert.js';
5
- import { pathJoin } from './path-shim.js';
6
- import { assertPosixPath, toPosixPath } from './filesystemPathHandling.js';
7
3
  import pc from '@brillout/picocolors';
8
- import { createDebugger } from './debug.js';
4
+ import { assert, assertPosixPath, assertUsage, createDebugger, pathJoin, toPosixPath } from '../utils.js';
5
+ import { viteIsSSR } from './viteIsSSR.js';
9
6
  const debug = createDebugger('vike:outDir');
10
7
  function getOutDirs(config) {
11
8
  debug('getOutDirs()', new Error().stack);
12
- let outDirRoot;
13
- {
14
- const outDir = getOutDirFromViteResolvedConfig(config);
15
- if (isOutDirRoot(outDir)) {
16
- outDirRoot = outDir;
17
- }
18
- else {
19
- assertOutDirResolved(outDir, config);
20
- assert(outDir.endsWith('/server') || outDir.endsWith('/client'));
21
- assert('/client'.length === '/server'.length);
22
- outDirRoot = outDir.slice(0, -1 * '/client'.length);
23
- }
24
- }
25
- const outDirs = getOutDirsAll(outDirRoot, config.root);
26
- debug('outDirRoot', outDirRoot);
27
- debug('outDirs', outDirs);
9
+ const outDir = getOutDirFromViteResolvedConfig(config);
10
+ if (!isOutDirRoot(outDir))
11
+ assertOutDirResolved(outDir, config);
12
+ const outDirs = getOutDirsAll(outDir, config.root);
28
13
  return outDirs;
29
14
  }
30
15
  /** Appends `client/` or `server/` to `config.build.outDir` */
31
- function resolveOutDir(config) {
16
+ function resolveOutDir(config, isSSR) {
32
17
  debug('resolveOutDir()', new Error().stack);
18
+ const isServerSide = viteIsSSR(config) || isSSR;
19
+ debug('isServerSide', isServerSide);
33
20
  const outDir = getOutDirFromViteUserConfig(config) || 'dist';
34
- debug('outDir', 'outDir');
35
- // outDir may already be resolved when using Telefunc + vike (because both Telefunc and vike use this logic)
36
- if (!isOutDirRoot(outDir)) {
37
- assertOutDirResolved(outDir, config);
38
- return outDir;
21
+ debug('outDir', outDir);
22
+ /* outDir may already be resolved when using Telefunc + Vike (because both Telefunc and Vike use this logic)
23
+ assert(isOutDirRoot(outDir))
24
+ */
25
+ const { outDirClient, outDirServer } = getOutDirsAll(outDir);
26
+ if (isServerSide) {
27
+ debug('outDirServer', 'outDirServer');
28
+ return outDirServer;
39
29
  }
40
30
  else {
41
- const { outDirClient, outDirServer } = determineOutDirs(outDir);
42
- if (viteIsSSR(config)) {
43
- debug('outDirServer', 'outDirServer');
44
- return outDirServer;
45
- }
46
- else {
47
- debug('outDirClient', 'outDirClient');
48
- return outDirClient;
49
- }
31
+ debug('outDirClient', 'outDirClient');
32
+ return outDirClient;
50
33
  }
51
34
  }
52
35
  function determineOutDirs(outDirRoot) {
53
36
  assertPosixPath(outDirRoot);
54
- assert(!outDirRoot.endsWith('/'));
55
37
  assert(isOutDirRoot(outDirRoot));
56
38
  const outDirClient = pathJoin(outDirRoot, 'client');
57
39
  const outDirServer = pathJoin(outDirRoot, 'server');
@@ -59,8 +41,35 @@ function determineOutDirs(outDirRoot) {
59
41
  assertIsNotOutDirRoot(outDirServer);
60
42
  return { outDirClient, outDirServer };
61
43
  }
62
- function getOutDirsAll(outDirRoot, root) {
63
- if (!outDirIsAbsolutePath(outDirRoot)) {
44
+ function getOutDirsAll(outDir, root) {
45
+ let outDirRoot;
46
+ {
47
+ if (isOutDirRoot(outDir)) {
48
+ outDirRoot = outDir;
49
+ }
50
+ else {
51
+ assert(outDir.endsWith('/server') || outDir.endsWith('/client'));
52
+ assert('/client'.length === '/server'.length);
53
+ outDirRoot = outDir.slice(0, -1 * '/client'.length);
54
+ }
55
+ }
56
+ debug('outDirRoot', outDirRoot);
57
+ let outDirs;
58
+ if (root) {
59
+ outDirs = getOutDirsAllFromRootNormalized(outDirRoot, root);
60
+ }
61
+ else {
62
+ outDirs = getOutDirsAllFromRoot(outDirRoot);
63
+ }
64
+ debug('outDirs', outDirs);
65
+ return outDirs;
66
+ }
67
+ function getOutDirsAllFromRoot(outDirRoot) {
68
+ let { outDirClient, outDirServer } = determineOutDirs(outDirRoot);
69
+ return { outDirRoot, outDirClient, outDirServer };
70
+ }
71
+ function getOutDirsAllFromRootNormalized(outDirRoot, root) {
72
+ if (root && !outDirIsAbsolutePath(outDirRoot)) {
64
73
  assertPosixPath(outDirRoot);
65
74
  assertPosixPath(root);
66
75
  outDirRoot = pathJoin(root, outDirRoot);
@@ -88,7 +97,7 @@ function isOutDirRoot(outDirRot) {
88
97
  function assertIsNotOutDirRoot(outDir) {
89
98
  assert(outDir.endsWith('/client') || outDir.endsWith('/server'));
90
99
  }
91
- /** `outDir` ends with `/server` or `/client` */
100
+ /** Assert that `outDir` ends with `/server` or `/client` */
92
101
  function assertOutDirResolved(outDir, config) {
93
102
  assertPosixPath(outDir);
94
103
  assertIsNotOutDirRoot(outDir);
@@ -106,16 +115,16 @@ function getOutDirFromViteUserConfig(config) {
106
115
  let outDir = config.build?.outDir;
107
116
  if (outDir === undefined)
108
117
  return undefined;
109
- outDir = normalize(outDir);
118
+ outDir = normalizeOutDir(outDir);
110
119
  return outDir;
111
120
  }
112
121
  function getOutDirFromViteResolvedConfig(config) {
113
122
  let outDir = config.build.outDir;
114
123
  assert(outDir);
115
- outDir = normalize(outDir);
124
+ outDir = normalizeOutDir(outDir);
116
125
  return outDir;
117
126
  }
118
- function normalize(outDir) {
127
+ function normalizeOutDir(outDir) {
119
128
  outDir = toPosixPath(outDir);
120
129
  outDir = outDir.replace(/\/+$/, ''); // remove trailing slashes
121
130
  return outDir;
@@ -1,12 +1,9 @@
1
1
  export { resolveClientEntriesDev };
2
- import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsNpmPackageImport, assertIsNotProductionRuntime } from './utils.js';
2
+ import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsNpmPackageImport, assertIsNotProductionRuntime } from '../utils.js';
3
3
  import { createRequire } from 'module';
4
- import { dirname } from 'path';
5
- import { fileURLToPath } from 'url';
6
4
  // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
7
5
  const importMetaUrl = import.meta.url;
8
6
  const require_ = createRequire(importMetaUrl);
9
- const __dirname_ = dirname(fileURLToPath(importMetaUrl));
10
7
  assertIsNotProductionRuntime();
11
8
  async function resolveClientEntriesDev(clientEntry, viteDevServer) {
12
9
  let root = viteDevServer.config.root;
@@ -32,13 +29,13 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
32
29
  assert(clientEntry.endsWith('.js'));
33
30
  try {
34
31
  // For Vitest (which doesn't resolve vike to its dist but to its source files)
35
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/plugin/resolveClientEntriesDev.js
36
- filePath = toPosixPath(require_.resolve(clientEntry.replace('@@vike/dist/esm/client/', '../../client/').replace('.js', '.ts')));
32
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/plugin/shared/resolveClientEntriesDev.js
33
+ filePath = toPosixPath(require_.resolve(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts')));
37
34
  }
38
35
  catch {
39
36
  // For users
40
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/resolveClientEntriesDev.js
41
- filePath = toPosixPath(require_.resolve(clientEntry.replace('@@vike/dist/esm/client/', '../../../../dist/esm/client/')));
37
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/plugin/shared/resolveClientEntriesDev.js
38
+ filePath = toPosixPath(require_.resolve(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
42
39
  }
43
40
  }
44
41
  else {
@@ -1,10 +1,7 @@
1
+ import type { ResolvedConfig, UserConfig } from 'vite';
1
2
  export { viteIsSSR };
2
3
  export { viteIsSSR_options };
3
- declare function viteIsSSR(config: {
4
- build?: {
5
- ssr?: boolean | string;
6
- };
7
- }): boolean;
4
+ declare function viteIsSSR(config: ResolvedConfig | UserConfig): boolean;
8
5
  type Options = undefined | boolean | {
9
6
  ssr?: boolean;
10
7
  };
@@ -1,5 +1,5 @@
1
- import { assert } from './assert.js';
2
- import { isObject } from './isObject.js';
1
+ import { assert } from '../../../utils/assert.js';
2
+ import { isObject } from '../../../utils/isObject.js';
3
3
  export { viteIsSSR };
4
4
  export { viteIsSSR_options };
5
5
  function viteIsSSR(config) {
@@ -1,5 +1,4 @@
1
1
  export * from '../runtime/utils.js';
2
- export * from '../../utils/viteIsSSR.js';
3
2
  export * from '../../utils/requireResolve.js';
4
3
  export * from '../../utils/includes.js';
5
4
  export * from '../../utils/isDev.js';
@@ -2,10 +2,9 @@
2
2
  // We call onLoad() here so that it's called even when only a subset of the plugin is loaded. (Making the assert() calls inside onLoad() a lot stronger.)
3
3
  import { onLoad } from './onLoad.js';
4
4
  onLoad();
5
- // We tolerate the fact that we load all of the runtime utils even though some of it isn't needed
5
+ // It's common practice for Vike's Vite plugin to import from Vike's sever runtime
6
6
  export * from '../runtime/utils.js';
7
7
  // Utils only needed by `plugin/*`
8
- export * from '../../utils/viteIsSSR.js';
9
8
  export * from '../../utils/requireResolve.js';
10
9
  export * from '../../utils/includes.js';
11
10
  export * from '../../utils/isDev.js';
@@ -0,0 +1,11 @@
1
+ export { isPrerenderEnabled };
2
+ export { isPrerenderAutoRunEnabled };
3
+ export { temp_disablePrerenderAutoRun };
4
+ export { isPrerendering };
5
+ export { setContextIsPrerendering };
6
+ import type { VikeConfigObject } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
7
+ declare function isPrerenderEnabled(vikeConfig: VikeConfigObject): boolean;
8
+ declare function isPrerenderAutoRunEnabled(vikeConfig: VikeConfigObject): boolean;
9
+ declare function temp_disablePrerenderAutoRun(): void;
10
+ declare function isPrerendering(): boolean;
11
+ declare function setContextIsPrerendering(): void;
@@ -0,0 +1,29 @@
1
+ export { isPrerenderEnabled };
2
+ export { isPrerenderAutoRunEnabled };
3
+ export { temp_disablePrerenderAutoRun };
4
+ export { isPrerendering };
5
+ export { setContextIsPrerendering };
6
+ import { getGlobalObject } from '../../utils/getGlobalObject.js';
7
+ import { resolvePrerenderConfig } from './resolvePrerenderConfig.js';
8
+ const globalObject = getGlobalObject('prerender/context.ts', {});
9
+ function isPrerenderEnabled(vikeConfig) {
10
+ const prerenderConfig = resolvePrerenderConfig(vikeConfig);
11
+ return !!prerenderConfig;
12
+ }
13
+ function isPrerenderAutoRunEnabled(vikeConfig) {
14
+ const prerenderConfig = resolvePrerenderConfig(vikeConfig);
15
+ return (isPrerenderEnabled(vikeConfig) &&
16
+ !(prerenderConfig || {}).disableAutoRun &&
17
+ !globalObject.isDisabled &&
18
+ vikeConfig.global.config.disableAutoFullBuild !== 'prerender');
19
+ }
20
+ // TODO/v1-release: remove
21
+ function temp_disablePrerenderAutoRun() {
22
+ globalObject.isDisabled = true;
23
+ }
24
+ function isPrerendering() {
25
+ return !!globalObject.isPrerendering;
26
+ }
27
+ function setContextIsPrerendering() {
28
+ globalObject.isPrerendering = true;
29
+ }
@@ -0,0 +1,12 @@
1
+ export { resolvePrerenderConfig };
2
+ export { resolvePrerenderConfigLocal };
3
+ import type { ConfigResolved } from '../../shared/page-configs/Config/PageContextConfig.js';
4
+ import { VikeConfigObject } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
5
+ import type { PageConfigBuildTime } from '../../shared/page-configs/PageConfig.js';
6
+ type PrerenderConfigSemiResolved = ConfigResolved['prerender'];
7
+ type PrerenderConfig = false | Exclude<Required<NonNullable<PrerenderConfigSemiResolved>[number]>, boolean>;
8
+ declare function resolvePrerenderConfig(vikeConfig: VikeConfigObject): PrerenderConfig;
9
+ declare function resolvePrerenderConfigLocal(pageConfig: PageConfigBuildTime): {
10
+ value: boolean;
11
+ configValueFilePathToShowToUser: string;
12
+ } | null;
@@ -0,0 +1,44 @@
1
+ export { resolvePrerenderConfig };
2
+ export { resolvePrerenderConfigLocal };
3
+ import { assert, isArray } from './utils.js';
4
+ import { getConfigValueBuildTime } from '../../shared/page-configs/getConfigValueBuildTime.js';
5
+ import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
6
+ // TODO/now:
7
+ // - prerender.value
8
+ function resolvePrerenderConfig(vikeConfig) {
9
+ const prerenderConfigs = vikeConfig.global.config.prerender;
10
+ if (!prerenderConfigs &&
11
+ !vikeConfig.pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value)) {
12
+ return false;
13
+ }
14
+ let prerenderSettings = prerenderConfigs || [];
15
+ // Needed because of backwards compatibility of `vike({prerender:true})` in `vite.config.js`; after we remove it we can remove this line.
16
+ prerenderSettings = prerenderSettings.filter(isObject2);
17
+ assert(prerenderSettings.every(isObject2));
18
+ const prerenderConfig = {
19
+ partial: pickFirst(prerenderSettings.map((c) => c.partial)) ?? false,
20
+ noExtraDir: pickFirst(prerenderSettings.map((c) => c.noExtraDir)) ?? false,
21
+ parallel: pickFirst(prerenderSettings.map((c) => c.parallel)) ?? true,
22
+ disableAutoRun: pickFirst(prerenderSettings.map((c) => c.disableAutoRun)) ?? false
23
+ };
24
+ return prerenderConfig;
25
+ }
26
+ function resolvePrerenderConfigLocal(pageConfig) {
27
+ const configValue = getConfigValueBuildTime(pageConfig, 'prerender');
28
+ if (!configValue)
29
+ return null;
30
+ const values = configValue.value;
31
+ assert(isArray(values));
32
+ const value = values[0];
33
+ assert(typeof value === 'boolean');
34
+ assert(isArray(configValue.definedAtData));
35
+ const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(configValue.definedAtData[0]);
36
+ assert(configValueFilePathToShowToUser);
37
+ return { value, configValueFilePathToShowToUser };
38
+ }
39
+ function isObject2(p) {
40
+ return typeof p === 'object' && p !== null;
41
+ }
42
+ function pickFirst(arr) {
43
+ return arr.filter((v) => v !== undefined)[0];
44
+ }
@@ -3,8 +3,47 @@ export { runPrerenderFromCLIPrerenderCommand };
3
3
  export { runPrerenderFromAutoRun };
4
4
  export { runPrerender_forceExit };
5
5
  export type { PrerenderOptions };
6
+ export type { PrerenderContextPublic };
7
+ import { PageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
6
8
  import type { InlineConfig, ResolvedConfig } from 'vite';
9
+ import { PageContextUrlInternal } from '../../shared/getPageContextUrlComputed.js';
7
10
  import type { APIOptions } from '../api/types.js';
11
+ type ProvidedByHook = null | {
12
+ hookFilePath: string;
13
+ hookName: 'onBeforePrerenderStart' | 'prerender';
14
+ };
15
+ type TransformerHook = {
16
+ hookFilePath: string;
17
+ hookName: 'onPrerenderStart' | 'onBeforePrerender';
18
+ };
19
+ type PageContextPrerendered = {
20
+ urlOriginal: string;
21
+ _providedByHook?: ProvidedByHook;
22
+ };
23
+ type PrerenderedPageContexts = Record<string, PageContextPrerendered>;
24
+ type PrerenderContext = {
25
+ pageContexts: PageContext[];
26
+ pageContextInit: Record<string, unknown> | null;
27
+ noExtraDir: boolean;
28
+ prerenderedPageContexts: PrerenderedPageContexts;
29
+ output: Output;
30
+ };
31
+ type Output = {
32
+ filePath: string;
33
+ fileType: FileType;
34
+ fileContent: string;
35
+ pageContext: PageContextPrerendered;
36
+ }[];
37
+ type FileType = 'HTML' | 'JSON';
38
+ type PrerenderContextPublic = Pick<PrerenderContext, 'pageContexts'>;
39
+ type PageContext = PageContextInitEnhanced & {
40
+ _urlRewrite: null;
41
+ _urlHandler: null;
42
+ _urlOriginalBeforeHook?: string;
43
+ _urlOriginalModifiedByHook?: TransformerHook;
44
+ _providedByHook: ProvidedByHook;
45
+ _pageContextAlreadyProvidedByOnPrerenderHook?: true;
46
+ } & PageContextUrlInternal;
8
47
  type PrerenderOptions = APIOptions & {
9
48
  /** Initial `pageContext` values */
10
49
  pageContextInit?: Record<string, unknown>;
@@ -29,5 +68,7 @@ declare function runPrerenderFromAPI(options?: PrerenderOptions): Promise<{
29
68
  viteConfig: ResolvedConfig;
30
69
  }>;
31
70
  declare function runPrerenderFromCLIPrerenderCommand(): Promise<void>;
32
- declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined): Promise<void>;
71
+ declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined, config: ResolvedConfig): Promise<{
72
+ forceExit: boolean;
73
+ }>;
33
74
  declare function runPrerender_forceExit(): void;