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
@@ -4,7 +4,7 @@ import { getPageContextInitEnhanced, renderPageAlreadyRouted } from './renderPag
4
4
  import { route } from '../../shared/route/index.js';
5
5
  import { assert, hasProp, objectAssign, isUrl, parseUrl, onSetupRuntime, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, setUrlOrigin, createUrlFromComponents, isUri, getUrlPretty } from './utils.js';
6
6
  import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled } from '../../shared/route/abort.js';
7
- import { getGlobalContext, initGlobalContext_renderPage } from './globalContext.js';
7
+ import { getGlobalContextInternal, initGlobalContext_renderPage } from './globalContext.js';
8
8
  import { handlePageContextRequestUrl } from './renderPage/handlePageContextRequestUrl.js';
9
9
  import { createHttpResponseFavicon404, createHttpResponseRedirect, createHttpResponsePageContextJson, createHttpResponseError } from './renderPage/createHttpResponse.js';
10
10
  import { logRuntimeError, logRuntimeInfo } from './renderPage/loggerRuntime.js';
@@ -18,6 +18,7 @@ import { getErrorPageId } from '../../shared/error-page.js';
18
18
  import { handleErrorWithoutErrorPage } from './renderPage/handleErrorWithoutErrorPage.js';
19
19
  import { loadUserFilesServerSide } from './renderPage/loadUserFilesServerSide.js';
20
20
  import { resolveRedirects } from './renderPage/resolveRedirects.js';
21
+ import { resolveBaseRuntime } from '../shared/resolveBase.js';
21
22
  const globalObject = getGlobalObject('runtime/renderPage.ts', {
22
23
  httpRequestsCount: 0
23
24
  });
@@ -75,25 +76,26 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
75
76
  return handleInvalidConfig(isConfigInvalid.err);
76
77
  }
77
78
  else {
78
- // From now on, gloablContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
79
+ // From now on, globalContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
79
80
  }
81
+ const globalContext = await getGlobalContextInternal();
80
82
  // Check Base URL
81
- assertBaseUrl(pageContextInit);
83
+ await assertBaseUrl(pageContextInit, globalContext);
82
84
  // Normalize URL
83
85
  {
84
- const pageContextHttpResponse = normalizeUrl(pageContextInit, httpRequestId);
86
+ const pageContextHttpResponse = await normalizeUrl(pageContextInit, globalContext, httpRequestId);
85
87
  if (pageContextHttpResponse)
86
88
  return pageContextHttpResponse;
87
89
  }
88
90
  // Permanent redirects (HTTP status code `301`)
89
91
  {
90
- const pageContextHttpResponse = getPermanentRedirect(pageContextInit, httpRequestId);
92
+ const pageContextHttpResponse = await getPermanentRedirect(pageContextInit, globalContext, httpRequestId);
91
93
  if (pageContextHttpResponse)
92
94
  return pageContextHttpResponse;
93
95
  }
94
- return await renderPageAlreadyPrepared(pageContextInit, httpRequestId, []);
96
+ return await renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, []);
95
97
  }
96
- async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageContextsFromRewrite) {
98
+ async function renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, pageContextsFromRewrite) {
97
99
  assertNoInfiniteAbortLoop(pageContextsFromRewrite.length,
98
100
  // There doesn't seem to be a way to count the number of HTTP redirects (vike don't have access to the HTTP request headers/cookies)
99
101
  // https://stackoverflow.com/questions/9683007/detect-infinite-http-redirect-loop-on-server-side
@@ -105,7 +107,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
105
107
  objectAssign(pageContextNominalPageInit, pageContextFromAllRewrites);
106
108
  }
107
109
  {
108
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, pageContextNominalPageInit._urlRewrite, httpRequestId);
110
+ const pageContextInitEnhanced = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, pageContextNominalPageInit._urlRewrite, httpRequestId);
109
111
  objectAssign(pageContextNominalPageInit, pageContextInitEnhanced);
110
112
  }
111
113
  let errNominalPage;
@@ -137,10 +139,10 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
137
139
  assert(pageContextNominalPageSuccess === undefined);
138
140
  assert(pageContextNominalPageInit);
139
141
  assert(hasProp(pageContextNominalPageInit, 'urlOriginal', 'string'));
140
- const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit, httpRequestId);
142
+ const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, globalContext, errNominalPage, pageContextNominalPageInit, httpRequestId);
141
143
  // Handle `throw redirect()` and `throw render()` while rendering nominal page
142
144
  if (isAbortError(errNominalPage)) {
143
- const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
145
+ const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext);
144
146
  if (handled.pageContextReturn) {
145
147
  // - throw redirect()
146
148
  // - throw render(url)
@@ -153,7 +155,6 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
153
155
  Object.assign(pageContextErrorPageInit, handled.pageContextAbort);
154
156
  }
155
157
  {
156
- const globalContext = getGlobalContext();
157
158
  const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
158
159
  if (!errorPageId) {
159
160
  objectAssign(pageContextErrorPageInit, { pageId: null });
@@ -170,7 +171,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
170
171
  catch (errErrorPage) {
171
172
  // Handle `throw redirect()` and `throw render()` while rendering error page
172
173
  if (isAbortError(errErrorPage)) {
173
- const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
174
+ const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext);
174
175
  // throw render(abortStatusCode)
175
176
  if (!handled.pageContextReturn) {
176
177
  const pageContextAbort = errErrorPage._pageContextAbort;
@@ -286,8 +287,8 @@ async function renderPageNominal(pageContext) {
286
287
  assert(pageContext === pageContextAfterRender);
287
288
  return pageContextAfterRender;
288
289
  }
289
- async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
290
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, null, httpRequestId);
290
+ async function getPageContextErrorPageInit(pageContextInit, globalContext, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
291
+ const pageContextInitEnhanced = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, null, httpRequestId);
291
292
  assert(errNominalPage);
292
293
  const pageContext = {};
293
294
  objectAssign(pageContext, pageContextInitEnhanced);
@@ -302,9 +303,9 @@ async function getPageContextErrorPageInit(pageContextInit, errNominalPage, page
302
303
  assert(pageContext.errorWhileRendering);
303
304
  return pageContext;
304
305
  }
305
- function getPageContextInitEnhancedSSR(pageContextInit, urlRewrite, httpRequestId) {
306
+ async function getPageContextInitEnhancedSSR(pageContextInit, globalContext, urlRewrite, httpRequestId) {
306
307
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
307
- const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit, {
308
+ const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext, {
308
309
  ssr: {
309
310
  urlRewrite,
310
311
  urlHandler: _urlHandler,
@@ -335,15 +336,16 @@ function assertIsNotViteRequest(urlPathname, urlOriginal) {
335
336
  return;
336
337
  assertUsage(false, `${pc.code('renderPage(pageContextInit)')} called with ${pc.code(`pageContextInit.urlOriginal===${JSON.stringify(urlOriginal)}`)} which is unexpected because the URL ${pc.bold(urlOriginal)} should have already been handled by the development middleware: make sure the ${pc.cyan('createDevMiddleware()')} middleware is executed *before* the ${pc.cyan('renderPage()')} middleware, see ${pc.underline('https://vike.dev/renderPage')}`);
337
338
  }
338
- function normalizeUrl(pageContextInit, httpRequestId) {
339
- const { trailingSlash, disableUrlNormalization, baseServer } = getGlobalContext();
339
+ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
340
+ const { baseServer } = resolveBaseRuntime(globalContext);
341
+ const { trailingSlash, disableUrlNormalization } = globalContext.config;
340
342
  if (disableUrlNormalization)
341
343
  return null;
342
344
  const { urlOriginal } = pageContextInit;
343
345
  const { isPageContextRequest } = handlePageContextRequestUrl(urlOriginal);
344
346
  if (isPageContextRequest)
345
347
  return null;
346
- const urlNormalized = normalizeUrlPathname(urlOriginal, trailingSlash, baseServer);
348
+ const urlNormalized = normalizeUrlPathname(urlOriginal, trailingSlash ?? false, baseServer);
347
349
  if (!urlNormalized)
348
350
  return null;
349
351
  logRuntimeInfo?.(`URL normalized from ${pc.cyan(urlOriginal)} to ${pc.cyan(urlNormalized)} (https://vike.dev/url-normalization)`, httpRequestId, 'info');
@@ -352,13 +354,13 @@ function normalizeUrl(pageContextInit, httpRequestId) {
352
354
  objectAssign(pageContextHttpResponse, { httpResponse });
353
355
  return pageContextHttpResponse;
354
356
  }
355
- function getPermanentRedirect(pageContextInit, httpRequestId) {
356
- const globalContext = getGlobalContext();
357
- const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, globalContext.baseServer);
357
+ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestId) {
358
+ const { baseServer } = resolveBaseRuntime(globalContext);
359
+ const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, baseServer);
358
360
  let origin = null;
359
361
  let urlTargetExternal = null;
360
362
  let urlTarget = modifyUrlPathname(urlWithoutBase, (urlPathname) => {
361
- const urlTarget = resolveRedirects(globalContext.vikeConfig.global.config.redirects ?? [], urlPathname);
363
+ const urlTarget = resolveRedirects(globalContext.config.redirects ?? [], urlPathname);
362
364
  if (urlTarget === null)
363
365
  return null;
364
366
  if (!isUrl(urlTarget)) {
@@ -385,8 +387,9 @@ function getPermanentRedirect(pageContextInit, httpRequestId) {
385
387
  }
386
388
  if (normalize(urlTarget) === normalize(urlWithoutBase))
387
389
  return null;
390
+ const { baseServer } = resolveBaseRuntime(globalContext);
388
391
  if (!originChanged)
389
- urlTarget = prependBase(urlTarget, globalContext.baseServer);
392
+ urlTarget = prependBase(urlTarget, baseServer);
390
393
  assert(urlTarget !== pageContextInit.urlOriginal);
391
394
  }
392
395
  logRuntimeInfo?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
@@ -400,13 +403,12 @@ function normalize(url) {
400
403
  }
401
404
  async function handleAbortError(errAbort, pageContextsFromRewrite, pageContextInit,
402
405
  // handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
403
- pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
404
- logAbortErrorHandled(errAbort, getGlobalContext().isProduction, pageContextNominalPageInit);
406
+ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext) {
407
+ logAbortErrorHandled(errAbort, globalContext.isProduction, pageContextNominalPageInit);
405
408
  const pageContextAbort = errAbort._pageContextAbort;
406
409
  let pageContextSerialized;
407
410
  if (pageContextNominalPageInit.isClientSideNavigation) {
408
411
  if (pageContextAbort.abortStatusCode) {
409
- const globalContext = getGlobalContext();
410
412
  const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
411
413
  const abortCall = pageContextAbort._abortCall;
412
414
  assert(abortCall);
@@ -427,7 +429,7 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
427
429
  return { pageContextReturn };
428
430
  }
429
431
  if (pageContextAbort._urlRewrite) {
430
- const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId, [
432
+ const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, [
431
433
  ...pageContextsFromRewrite,
432
434
  pageContextAbort
433
435
  ]);
@@ -450,8 +452,8 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
450
452
  assert(pageContextAbort.abortStatusCode);
451
453
  return { pageContextAbort };
452
454
  }
453
- function assertBaseUrl(pageContextInit) {
454
- const { baseServer } = getGlobalContext();
455
+ async function assertBaseUrl(pageContextInit, globalContext) {
456
+ const { baseServer } = resolveBaseRuntime(globalContext);
455
457
  const { urlOriginal } = pageContextInit;
456
458
  const { urlWithoutPageContextRequestSuffix } = handlePageContextRequestUrl(urlOriginal);
457
459
  const { hasBaseServer } = parseUrl(urlWithoutPageContextRequestSuffix, baseServer);
@@ -15,14 +15,13 @@ export * from '../../utils/projectInfo.js';
15
15
  export * from '../../utils/isArray.js';
16
16
  export * from '../../utils/isObject.js';
17
17
  export * from '../../utils/objectAssign.js';
18
+ export * from '../../utils/objectAssignSafe.js';
18
19
  export * from '../../utils/objectReplace.js';
19
20
  export * from '../../utils/PromiseType.js';
20
21
  export * from '../../utils/compareString.js';
21
22
  export * from '../../utils/isObjectWithKeys.js';
22
23
  export * from '../../utils/stringifyStringArray.js';
23
24
  export * from '../../utils/unique.js';
24
- export * from '../../utils/filesystemPathHandling.js';
25
- export * from '../../utils/getOutDirs.js';
26
25
  export * from '../../utils/capitalizeFirstLetter.js';
27
26
  export * from '../../utils/debugGlob.js';
28
27
  export * from '../../utils/isSameErrorMessage.js';
@@ -41,7 +40,7 @@ export * from '../../utils/objectEntries.js';
41
40
  export * from '../../utils/objectFromEntries.js';
42
41
  export * from '../../utils/getFileExtension.js';
43
42
  export * from '../../utils/assertSetup.js';
44
- export * from '../../utils/path-shim.js';
43
+ export * from '../../utils/path.js';
45
44
  export * from '../../utils/isHtml.js';
46
45
  export * from '../../utils/warnIfErrorIsNotObject.js';
47
46
  export * from '../../utils/stripAnsi.js';
@@ -56,3 +55,4 @@ export * from '../../utils/isVikeReactApp.js';
56
55
  export * from '../../utils/getPropAccessNotation.js';
57
56
  export * from '../../utils/PROJECT_VERSION.js';
58
57
  export * from '../../utils/genPromise.js';
58
+ export * from '../../utils/makePublicCopy.js';
@@ -19,14 +19,13 @@ export * from '../../utils/projectInfo.js';
19
19
  export * from '../../utils/isArray.js';
20
20
  export * from '../../utils/isObject.js';
21
21
  export * from '../../utils/objectAssign.js';
22
+ export * from '../../utils/objectAssignSafe.js';
22
23
  export * from '../../utils/objectReplace.js';
23
24
  export * from '../../utils/PromiseType.js';
24
25
  export * from '../../utils/compareString.js';
25
26
  export * from '../../utils/isObjectWithKeys.js';
26
27
  export * from '../../utils/stringifyStringArray.js';
27
28
  export * from '../../utils/unique.js';
28
- export * from '../../utils/filesystemPathHandling.js';
29
- export * from '../../utils/getOutDirs.js';
30
29
  export * from '../../utils/capitalizeFirstLetter.js';
31
30
  export * from '../../utils/debugGlob.js';
32
31
  export * from '../../utils/isSameErrorMessage.js';
@@ -45,7 +44,7 @@ export * from '../../utils/objectEntries.js';
45
44
  export * from '../../utils/objectFromEntries.js';
46
45
  export * from '../../utils/getFileExtension.js';
47
46
  export * from '../../utils/assertSetup.js';
48
- export * from '../../utils/path-shim.js';
47
+ export * from '../../utils/path.js';
49
48
  export * from '../../utils/isHtml.js';
50
49
  export * from '../../utils/warnIfErrorIsNotObject.js';
51
50
  export * from '../../utils/stripAnsi.js';
@@ -60,3 +59,4 @@ export * from '../../utils/isVikeReactApp.js';
60
59
  export * from '../../utils/getPropAccessNotation.js';
61
60
  export * from '../../utils/PROJECT_VERSION.js';
62
61
  export * from '../../utils/genPromise.js';
62
+ export * from '../../utils/makePublicCopy.js';
@@ -1,13 +1,15 @@
1
1
  export { createDevMiddleware };
2
2
  import { createServer } from 'vite';
3
3
  import { prepareViteApiCall } from '../api/prepareViteApiCall.js';
4
+ import { setGlobalContext_isProduction } from '../runtime/globalContext.js';
4
5
  /*
5
6
  * Create server middleware for development with HMR and lazy-transpiling.
6
7
  *
7
8
  * https://vike.dev/createDevMiddleware
8
9
  */
9
10
  async function createDevMiddleware(options = {}) {
10
- const viteConfig = {
11
+ setGlobalContext_isProduction(false);
12
+ const viteConfigFromOptions = {
11
13
  ...options.viteConfig,
12
14
  server: {
13
15
  ...options.viteConfig?.server,
@@ -15,8 +17,8 @@ async function createDevMiddleware(options = {}) {
15
17
  }
16
18
  };
17
19
  if (options.root)
18
- viteConfig.root = options.root;
19
- const { viteConfigEnhanced } = await prepareViteApiCall(viteConfig, 'dev');
20
+ viteConfigFromOptions.root = options.root;
21
+ const { viteConfigEnhanced } = await prepareViteApiCall(viteConfigFromOptions, 'dev');
20
22
  const server = await createServer(viteConfigEnhanced);
21
23
  const devMiddleware = server.middlewares;
22
24
  return { devMiddleware, viteServer: server, viteConfig: server.config };
@@ -1,11 +1,15 @@
1
1
  export { resolveBase };
2
+ export { resolveBaseRuntime };
2
3
  export { resolveBaseFromResolvedConfig };
3
4
  import type { ResolvedConfig } from 'vite';
5
+ import type { GlobalContext } from '../runtime/globalContext.js';
4
6
  declare function resolveBaseFromResolvedConfig(baseServer: string | null, baseAssets: string | null, config: ResolvedConfig): {
5
7
  baseServer: string;
6
8
  baseAssets: string;
7
9
  };
8
- declare function resolveBase(baseViteOriginal: string | null, baseServerUnresolved: string | null, baseAssetsUnresolved: string | null): {
10
+ type BaseUrlsResolved = {
9
11
  baseServer: string;
10
12
  baseAssets: string;
11
13
  };
14
+ declare function resolveBaseRuntime(globalContext: GlobalContext): BaseUrlsResolved;
15
+ declare function resolveBase(baseViteOriginal: string | null, baseServerUnresolved: string | null, baseAssetsUnresolved: string | null): BaseUrlsResolved;
@@ -1,4 +1,5 @@
1
1
  export { resolveBase };
2
+ export { resolveBaseRuntime };
2
3
  export { resolveBaseFromResolvedConfig };
3
4
  import { assert, assertUsage, isBaseServer, isBaseAssets } from './utils.js';
4
5
  import pc from '@brillout/picocolors';
@@ -7,6 +8,12 @@ function resolveBaseFromResolvedConfig(baseServer, baseAssets, config) {
7
8
  assert(baseViteOriginal === null || typeof baseViteOriginal == 'string');
8
9
  return resolveBase(baseViteOriginal, baseServer, baseAssets);
9
10
  }
11
+ function resolveBaseRuntime(globalContext) {
12
+ const baseViteOriginal = globalContext.viteConfigRuntime._baseViteOriginal;
13
+ const baseServerUnresolved = globalContext.config.baseServer ?? null;
14
+ const baseAssetsUnresolved = globalContext.config.baseAssets ?? null;
15
+ return resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
16
+ }
10
17
  function resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved) {
11
18
  if (baseViteOriginal === '/__UNSET__')
12
19
  baseViteOriginal = null;
@@ -0,0 +1,13 @@
1
+ export { getPageConfigsRuntime };
2
+ export { getAllPageIds };
3
+ import type { PageFile } from './getPageFiles.js';
4
+ import { type ConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
5
+ import type { PageConfigGlobalRuntime, PageConfigRuntime } from './page-configs/PageConfig.js';
6
+ declare function getPageConfigsRuntime(virtualFileExports: unknown): {
7
+ pageFilesAll: PageFile[];
8
+ allPageIds: string[];
9
+ pageConfigs: PageConfigRuntime[];
10
+ pageConfigGlobal: PageConfigGlobalRuntime;
11
+ globalConfig: ConfigUserFriendly;
12
+ };
13
+ declare function getAllPageIds(pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[]): string[];
@@ -0,0 +1,18 @@
1
+ export { getPageConfigsRuntime };
2
+ export { getAllPageIds };
3
+ import { parseGlobResults } from './getPageFiles/parseGlobResults.js';
4
+ import { getPageConfigUserFriendlyNew } from './page-configs/getPageConfigUserFriendly.js';
5
+ import { unique } from './utils.js';
6
+ function getPageConfigsRuntime(virtualFileExports) {
7
+ const { pageFilesAll, pageConfigs, pageConfigGlobal } = parseGlobResults(virtualFileExports);
8
+ const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
9
+ // TODO/now: re-use this call, instead of calling it twice
10
+ const globalConfig = getPageConfigUserFriendlyNew(pageConfigGlobal);
11
+ return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig };
12
+ }
13
+ function getAllPageIds(pageFilesAll, pageConfigs) {
14
+ const fileIds = pageFilesAll.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
15
+ const allPageIds = unique(fileIds);
16
+ const allPageIds2 = pageConfigs.map((p) => p.pageId);
17
+ return [...allPageIds, ...allPageIds2];
18
+ }
@@ -37,24 +37,29 @@ function getUrlParsed(pageContext) {
37
37
  // 6. The value of pageContext.urlPathname is now '/login': the pathname of `pageContext.urlLogical`. (While pageContext.urlOriginal is still '/fr-FR/admin'.)
38
38
  // Reproduction: https://github.com/vikejs/vike/discussions/1436#discussioncomment-8142023
39
39
  // Determine logical URL
40
+ // TODO/soon: revert https://github.com/vikejs/vike/issues/2138#issuecomment-2631713411
41
+ const assertUrlResolved = (src) => assert(urlResolved && typeof urlResolved === 'string', { src, urlResolved });
40
42
  let urlResolved;
41
43
  let baseToBeRemoved;
42
44
  if (pageContext.urlLogical) {
43
45
  // Set by onBeforeRoute()
44
46
  urlResolved = pageContext.urlLogical;
45
47
  baseToBeRemoved = false;
48
+ assertUrlResolved(1);
46
49
  }
47
50
  else if (pageContext._urlRewrite) {
48
51
  // Set by `throw render()`
49
52
  urlResolved = pageContext._urlRewrite;
50
53
  baseToBeRemoved = false;
54
+ assertUrlResolved(2);
51
55
  }
52
56
  else {
53
57
  // Set by renderPage()
54
58
  urlResolved = pageContext.urlOriginal;
55
59
  baseToBeRemoved = true;
60
+ assertUrlResolved(3);
56
61
  }
57
- assert(urlResolved && typeof urlResolved === 'string');
62
+ assertUrlResolved(4);
58
63
  // Remove .pageContext.json
59
64
  let urlHandler = pageContext._urlHandler;
60
65
  if (!urlHandler)
@@ -2,7 +2,7 @@
2
2
  export { fileTypes };
3
3
  export { isValidFileType };
4
4
  export { determineFileType };
5
- import { assert, assertPosixPath } from '../utils.js';
5
+ import { assert } from '../utils.js';
6
6
  import { isScriptFile } from '../../utils/isScriptFile.js';
7
7
  const fileTypes = [
8
8
  '.page',
@@ -18,7 +18,6 @@ function isValidFileType(filePath) {
18
18
  return ['.js', '.mjs', '.cjs', '.css'].some((ext) => filePath.endsWith(ext));
19
19
  }
20
20
  function determineFileType(filePath) {
21
- assertPosixPath(filePath);
22
21
  {
23
22
  const isCSS = filePath.endsWith('.css');
24
23
  if (isCSS) {
@@ -2,7 +2,6 @@
2
2
  export { getPageFilesClientSide };
3
3
  export { getPageFilesServerSide };
4
4
  import { assert, assertUsage, isNotNullish } from '../utils.js';
5
- import { assertPageFilePath } from '../assertPageFilePath.js';
6
5
  function getPageFilesClientSide(pageFilesAll, pageId) {
7
6
  return determine(pageFilesAll, pageId, true);
8
7
  }
@@ -86,8 +85,6 @@ function getPageFilesSorter(envIsClient, pageId) {
86
85
  };
87
86
  }
88
87
  function getPathDistance(pathA, pathB) {
89
- assertPageFilePath(pathA);
90
- assertPageFilePath(pathB);
91
88
  // Index of first different character
92
89
  let idx = 0;
93
90
  for (; idx < pathA.length && idx < pathB.length; idx++) {
@@ -1,7 +1,6 @@
1
1
  // TODO/v1-release: remove
2
2
  export { getPageFileObject };
3
3
  import { determinePageIdOld } from '../determinePageIdOld.js';
4
- import { assertPageFilePath } from '../assertPageFilePath.js';
5
4
  import { isErrorPageId } from '../error-page.js';
6
5
  import { assert, slice } from '../utils.js';
7
6
  import { determineFileType } from './fileTypes.js';
@@ -36,19 +35,15 @@ function getPageFileObject(filePath) {
36
35
  return pageFile;
37
36
  }
38
37
  function isDefaultFilePath(filePath) {
39
- assertPageFilePath(filePath);
40
38
  if (isErrorPageId(filePath, false)) {
41
39
  return false;
42
40
  }
43
41
  return filePath.includes('/_default');
44
42
  }
45
43
  function isRendererFilePath(filePath) {
46
- assertPageFilePath(filePath);
47
44
  return filePath.includes('/renderer/');
48
45
  }
49
46
  function isAncestorDefaultPage(pageId, defaultPageFilePath) {
50
- assertPageFilePath(pageId);
51
- assertPageFilePath(defaultPageFilePath);
52
47
  assert(!pageId.endsWith('/'));
53
48
  assert(!defaultPageFilePath.endsWith('/'));
54
49
  assert(isDefaultFilePath(defaultPageFilePath));
@@ -2,7 +2,7 @@ export { parseGlobResults };
2
2
  import { type PageFile } from './getPageFileObject.js';
3
3
  import type { PageConfigRuntime, PageConfigGlobalRuntime } from '../page-configs/PageConfig.js';
4
4
  declare function parseGlobResults(pageFilesExports: unknown): {
5
- pageFiles: PageFile[];
5
+ pageFilesAll: PageFile[];
6
6
  pageConfigs: PageConfigRuntime[];
7
7
  pageConfigGlobal: PageConfigGlobalRuntime;
8
8
  };
@@ -5,6 +5,7 @@ import { assertExportValues } from './assert_exports_old_design.js';
5
5
  import { getPageFileObject } from './getPageFileObject.js';
6
6
  import { fileTypes } from './fileTypes.js';
7
7
  import { parsePageConfigs } from '../page-configs/serialize/parsePageConfigs.js';
8
+ // TODO/now: rename
8
9
  function parseGlobResults(pageFilesExports) {
9
10
  assert(hasProp(pageFilesExports, 'pageFilesLazy', 'object'));
10
11
  assert(hasProp(pageFilesExports, 'pageFilesEager', 'object'));
@@ -60,11 +61,11 @@ function parseGlobResults(pageFilesExports) {
60
61
  pageFilesExports.pageFilesList.forEach((filePath) => {
61
62
  pageFilesMap[filePath] = pageFilesMap[filePath] ?? getPageFileObject(filePath);
62
63
  });
63
- const pageFiles = Object.values(pageFilesMap);
64
- pageFiles.forEach(({ filePath }) => {
64
+ const pageFilesAll = Object.values(pageFilesMap);
65
+ pageFilesAll.forEach(({ filePath }) => {
65
66
  assert(!filePath.includes('\\'));
66
67
  });
67
- return { pageFiles, pageConfigs, pageConfigGlobal };
68
+ return { pageFilesAll, pageConfigs, pageConfigGlobal };
68
69
  }
69
70
  function parseGlobResult(globObject) {
70
71
  const ret = [];
@@ -2,4 +2,3 @@ export type { PageFile } from './getPageFiles/getPageFileObject.js';
2
2
  export type { ExportsAll, PageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
3
3
  export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
4
4
  export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
5
- export { getPageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
@@ -1,3 +1,2 @@
1
1
  export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
2
2
  export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
3
- export { getPageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
@@ -37,7 +37,7 @@ import type { PrefetchSetting, PrefetchStaticAssets } from '../../client/client-
37
37
  import type { ConfigDefinition } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js';
38
38
  import type { DocumentHtml } from '../../node/runtime/html/renderHtml.js';
39
39
  import type { InjectFilterEntry } from '../../types/index.js';
40
- import type { VikeVitePluginOptions } from '../../node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
40
+ import type { VikeVitePluginOptions } from '../../node/plugin/index.js';
41
41
  import type { Vike, VikePackages } from '../VikeNamespace.js';
42
42
  import type { HooksTimeoutProvidedByUser } from '../hooks/getHook.js';
43
43
  import type { PageContextClient, PageContextServer } from '../types.js';
@@ -246,11 +246,55 @@ type ConfigBuiltIn = {
246
246
  */
247
247
  guard?: GuardAsync | GuardSync | ImportString;
248
248
  /**
249
- * Whether to pre-render the page(s).
249
+ * Pre-render page(s).
250
250
  *
251
251
  * https://vike.dev/pre-rendering
252
+ * https://vike.dev/prerender
253
+ *
254
+ * @default false
252
255
  */
253
- prerender?: boolean | ImportString;
256
+ prerender?: boolean | ImportString | {
257
+ /**
258
+ * Allow only some of your pages to be pre-rendered.
259
+ *
260
+ * This setting doesn't affect the pre-rendering process: it merely suppresses the warnings when some of your pages cannot be pre-rendered.
261
+ *
262
+ * https://vike.dev/prerender#partial
263
+ *
264
+ * @default false
265
+ */
266
+ partial?: boolean;
267
+ /**
268
+ * Don't create a new directory for each HTML file.
269
+ *
270
+ * For example, generate `dist/client/about.html` instead of `dist/client/about/index.html`.
271
+ *
272
+ * https://vike.dev/prerender#noextradir
273
+ *
274
+ * @default false
275
+ */
276
+ noExtraDir?: boolean;
277
+ /**
278
+ * Number of concurrent pre-render jobs.
279
+ *
280
+ * Set to `false` to disable concurrency.
281
+ *
282
+ * https://vike.dev/prerender#parallel
283
+ *
284
+ * @default os.cpus().length
285
+ */
286
+ parallel?: boolean | number;
287
+ /**
288
+ * Disable the automatic initiation of the pre-rendering process when running `$ vike build`.
289
+ *
290
+ * Use this if you want to programmatically initiate the pre-rendering process instead.
291
+ *
292
+ * https://vike.dev/prerender#disableautorun
293
+ *
294
+ * @default false
295
+ */
296
+ disableAutoRun?: boolean;
297
+ };
254
298
  /**
255
299
  * Install Vike extensions.
256
300
  *
@@ -358,6 +402,38 @@ type ConfigBuiltIn = {
358
402
  * https://vike.dev/redirects
359
403
  */
360
404
  redirects?: Record<string, string>;
405
+ /** Whether URLs should end with a trailing slash.
406
+ *
407
+ * https://vike.dev/url-normalization
408
+ *
409
+ * @default false
410
+ */
411
+ trailingSlash?: boolean;
412
+ /** Disable automatic URL normalization.
413
+ *
414
+ * https://vike.dev/url-normalization
415
+ *
416
+ * @default false
417
+ */
418
+ disableUrlNormalization?: boolean;
419
+ /** @deprecated It's now `true` by default. You can remove this option. */
420
+ includeAssetsImportedByServer?: boolean;
421
+ /** @deprecated See https://vike.dev/disableAutoFullBuild */
422
+ disableAutoFullBuild?: boolean | 'prerender';
423
+ /** Use Vite Environment API to orchestrate the build process.
424
+ * @experimental
425
+ */
426
+ viteEnvironmentAPI?: boolean;
427
+ /** The Base URL of your server.
428
+ *
429
+ * https://vike.dev/base-url
430
+ */
431
+ baseServer?: string;
432
+ /** The Base URL of your static assets.
433
+ *
434
+ * https://vike.dev/base-url
435
+ */
436
+ baseAssets?: string;
361
437
  /**
362
438
  * @experimental DON'T USE: the API *will* have breaking changes upon any minor version release.
363
439
  *
@@ -403,10 +479,14 @@ type ConfigBuiltIn = {
403
479
  * https://vike.dev/keepScrollPosition
404
480
  */
405
481
  keepScrollPosition?: KeepScrollPosition;
482
+ /** @experimental */
483
+ middleware?: Function;
406
484
  };
407
485
  type ConfigBuiltInResolved = {
408
486
  passToClient?: string[][];
409
487
  redirects?: Record<string, string>[];
488
+ prerender?: Exclude<Config['prerender'], ImportString | undefined>[];
489
+ middleware?: Function[];
410
490
  };
411
491
  type ConfigMeta = Record<string, ConfigDefinition>;
412
492
  type ImportString = `import:${string}`;