vike 0.4.220 → 0.4.221-commit-8577456

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
@@ -7,7 +7,6 @@ import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isH
7
7
  import { injectHtmlTagsToString, injectHtmlTagsToStream } from './injectAssets.js';
8
8
  import { processStream, isStream, streamToString } from './stream.js';
9
9
  import { isStreamFromReactStreamingPackage } from './stream/react-streaming.js';
10
- import { getGlobalContext } from '../globalContext.js';
11
10
  import pc from '@brillout/picocolors';
12
11
  function isDocumentHtml(something) {
13
12
  if (isTemplateWrapped(something) || isEscapedString(something) || isStream(something)) {
@@ -31,7 +30,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
31
30
  }
32
31
  if (isTemplateWrapped(documentHtml)) {
33
32
  const templateContent = documentHtml._template;
34
- const render = await renderTemplate(templateContent, pageContext);
33
+ const render = renderTemplate(templateContent, pageContext);
35
34
  if (!('htmlStream' in render)) {
36
35
  objectAssign(pageContext, { _isStream: false });
37
36
  const { htmlPartsAll } = render;
@@ -120,7 +119,7 @@ function _dangerouslySkipEscape(arg) {
120
119
  });
121
120
  return { _escaped: String(arg) };
122
121
  }
123
- async function renderTemplate(templateContent, pageContext) {
122
+ function renderTemplate(templateContent, pageContext) {
124
123
  const htmlPartsBegin = [];
125
124
  const htmlPartsEnd = [];
126
125
  let htmlStream = null;
@@ -151,7 +150,7 @@ async function renderTemplate(templateContent, pageContext) {
151
150
  // Process `escapeInject` fragments
152
151
  if (isTemplateWrapped(templateVar)) {
153
152
  const templateContentInner = templateVar._template;
154
- const result = await renderTemplate(templateContentInner, pageContext);
153
+ const result = renderTemplate(templateContentInner, pageContext);
155
154
  if (!('htmlStream' in result)) {
156
155
  result.htmlPartsAll.forEach(addHtmlPart);
157
156
  }
@@ -193,7 +192,7 @@ async function renderTemplate(templateContent, pageContext) {
193
192
  }
194
193
  }
195
194
  {
196
- const { isProduction } = getGlobalContext();
195
+ const { isProduction } = pageContext._globalContext;
197
196
  if (isHtml(templateVar) &&
198
197
  // We don't show this warning in production because it's expected that some users may (un)willingly do some XSS injection: we avoid flooding the production logs.
199
198
  !isProduction) {
@@ -1,3 +1,3 @@
1
1
  export {};
2
- // TODO/v1-release: remove
2
+ // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
3
3
  // This doesn't do anything anymore. (It's kept to avoid introducing a breaking change.)
@@ -2,4 +2,5 @@ export { analyzePage };
2
2
  import type { PageFile } from '../../../shared/getPageFiles/getPageFileObject.js';
3
3
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
4
4
  import { type AnalysisResult } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
- declare function analyzePage(pageFilesAll: PageFile[], pageConfig: null | PageConfigRuntime, pageId: string): AnalysisResult;
5
+ import type { GlobalContext } from '../globalContext.js';
6
+ declare function analyzePage(pageFilesAll: PageFile[], pageConfig: null | PageConfigRuntime, pageId: string, globalContext: GlobalContext): Promise<AnalysisResult>;
@@ -3,9 +3,8 @@ import { getVikeClientEntry } from '../../../shared/getPageFiles/analyzePageClie
3
3
  import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageClientSide.js';
4
4
  import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
5
5
  import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
6
- import { getGlobalContext } from '../globalContext.js';
7
6
  import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValueRuntime.js';
8
- function analyzePage(pageFilesAll, pageConfig, pageId) {
7
+ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
9
8
  if (pageConfig) {
10
9
  const { isClientRuntimeLoaded, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
11
10
  const clientEntries = [];
@@ -21,7 +20,7 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
21
20
  eagerlyImported: false
22
21
  });
23
22
  // In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
24
- if (!getGlobalContext().isProduction) {
23
+ if (!globalContext.isProduction) {
25
24
  clientDependencies.push({
26
25
  id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, false),
27
26
  onlyAssets: true,
@@ -1,6 +1,6 @@
1
1
  export { getEarlyHints };
2
+ import { isFontFallback } from './isFontFallback.js';
2
3
  import { inferEarlyHintLink } from '../html/injectAssets/inferHtmlTags.js';
3
- import { assert } from '../utils.js';
4
4
  function getEarlyHints(assets) {
5
5
  const earlyHints = [];
6
6
  {
@@ -16,28 +16,3 @@ function getEarlyHints(assets) {
16
16
  }
17
17
  return earlyHints;
18
18
  }
19
- function isFontFallback(asset, earlyHints) {
20
- if (asset.assetType !== 'font') {
21
- return false;
22
- }
23
- const fontUrlBase = removeFileExtentionAndHash(asset.src);
24
- return earlyHints.some((hint) => {
25
- return hint.assetType === 'font' && removeFileExtentionAndHash(hint.src) === fontUrlBase;
26
- });
27
- }
28
- function removeFileExtentionAndHash(assetUrl) {
29
- assert(!assetUrl.includes('\\'));
30
- // The logic below doesn't work for '/assets/chunk-0e184ced.js'
31
- assert(!assetUrl.endsWith('.js'));
32
- const paths = assetUrl.split('/');
33
- {
34
- const filename = paths[paths.length - 1];
35
- const filenameParts = filename.split('.');
36
- assert(filenameParts.length >= 2);
37
- // User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
38
- const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
39
- assert(filenameBase.length >= 1);
40
- paths[paths.length - 1] = filenameBase.join('.');
41
- }
42
- return paths.join('/');
43
- }
@@ -1,3 +1,3 @@
1
1
  export { sortPageAssetsForEarlyHintsHeader };
2
2
  import type { PageAsset } from '../getPageAssets.js';
3
- declare function sortPageAssetsForEarlyHintsHeader(pageAssets: PageAsset[]): void;
3
+ declare function sortPageAssetsForEarlyHintsHeader(pageAssets: PageAsset[], isProduction: boolean): Promise<void>;
@@ -1,11 +1,9 @@
1
1
  export { sortPageAssetsForEarlyHintsHeader };
2
- import { getGlobalContext } from '../../globalContext.js';
3
2
  import { higherFirst } from '../../utils.js';
4
- function sortPageAssetsForEarlyHintsHeader(pageAssets) {
5
- const globalContext = getGlobalContext();
3
+ async function sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction) {
6
4
  pageAssets.sort(higherFirst(({ assetType }) => {
7
5
  // In dev, we load scripts first in order to parallelize I/O and CPU
8
- if (!globalContext.isProduction && assetType === 'script') {
6
+ if (!isProduction && assetType === 'script') {
9
7
  return 1;
10
8
  }
11
9
  let priority = 0;
@@ -5,7 +5,8 @@ export type { GetPageAssets };
5
5
  export type { PageContextGetPageAssets };
6
6
  import { type MediaType } from './inferMediaType.js';
7
7
  import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
8
- import type { ResolveClientEntriesDev } from '../../plugin/resolveClientEntriesDev.js';
8
+ import type { GlobalContext } from '../globalContext.js';
9
+ import type { ResolveClientEntriesDev } from '../../plugin/shared/resolveClientEntriesDev.js';
9
10
  type PageAsset = {
10
11
  src: string;
11
12
  assetType: null | NonNullable<MediaType>['assetType'];
@@ -17,6 +18,7 @@ type PageContextGetPageAssets = {
17
18
  _baseServer: string;
18
19
  _baseAssets: string | null;
19
20
  _includeAssetsImportedByServer: boolean;
21
+ _globalContext: GlobalContext;
20
22
  };
21
23
  declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
22
24
  declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
@@ -6,13 +6,13 @@ import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
6
6
  import { inferMediaType } from './inferMediaType.js';
7
7
  import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
8
8
  import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
9
- import { getGlobalContext } from '../globalContext.js';
10
9
  const globalObject = getGlobalObject('getPageAssets.ts', {
11
10
  resolveClientEntriesDev: null
12
11
  });
13
12
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
- const globalContext = getGlobalContext();
15
- const isDev = !globalContext.isProduction;
13
+ const globalContext = pageContext._globalContext;
14
+ const { isProduction } = globalContext;
15
+ const isDev = !isProduction;
16
16
  let assetUrls;
17
17
  let clientEntriesSrc;
18
18
  if (isDev) {
@@ -55,7 +55,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
55
55
  pageAsset.src = prependBase(toPosixPath(pageAsset.src), baseServerAssets);
56
56
  return pageAsset;
57
57
  });
58
- sortPageAssetsForEarlyHintsHeader(pageAssets);
58
+ await sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction);
59
59
  return pageAssets;
60
60
  }
61
61
  function resolveClientEntriesProd(clientEntry, assetsManifest) {
@@ -1,4 +1,5 @@
1
1
  export { handleErrorWithoutErrorPage };
2
+ import type { GlobalContext } from '../globalContext.js';
2
3
  import type { PageContextAfterRender } from './renderPageAlreadyRouted.js';
3
4
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
4
5
  import type { PageFile } from '../../../shared/getPageFiles.js';
@@ -9,5 +10,6 @@ declare function handleErrorWithoutErrorPage<PageContext extends {
9
10
  pageId: null;
10
11
  _pageFilesAll: PageFile[];
11
12
  _pageConfigs: PageConfigRuntime[];
13
+ _globalContext: GlobalContext;
12
14
  urlOriginal: string;
13
15
  }>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
@@ -1,6 +1,5 @@
1
1
  export { handleErrorWithoutErrorPage };
2
2
  import { stringify } from '@brillout/json-serializer/stringify';
3
- import { getGlobalContext } from '../globalContext.js';
4
3
  import { assert, assertWarning, objectAssign } from '../utils.js';
5
4
  import { createHttpResponsePage, createHttpResponseError } from './createHttpResponse.js';
6
5
  import pc from '@brillout/picocolors';
@@ -10,7 +9,7 @@ async function handleErrorWithoutErrorPage(pageContext) {
10
9
  assert(pageContext.errorWhileRendering || pageContext.is404);
11
10
  {
12
11
  const isV1 = pageContext._pageConfigs.length > 0;
13
- warnMissingErrorPage(isV1);
12
+ await warnMissingErrorPage(isV1, pageContext._globalContext.isProduction);
14
13
  }
15
14
  if (!pageContext.isClientSideNavigation) {
16
15
  const httpResponse = createHttpResponseError(pageContext);
@@ -25,9 +24,8 @@ async function handleErrorWithoutErrorPage(pageContext) {
25
24
  return pageContext;
26
25
  }
27
26
  }
28
- function warnMissingErrorPage(isV1) {
29
- const globalContext = getGlobalContext();
30
- if (!globalContext.isProduction) {
27
+ async function warnMissingErrorPage(isV1, isProduction) {
28
+ if (!isProduction) {
31
29
  const msg = [
32
30
  `No ${isV1 ? 'error page' : pc.cyan('_error.page.js')} found,`,
33
31
  'we recommend defining one',
@@ -0,0 +1,3 @@
1
+ export { isFontFallback };
2
+ import type { PageAsset } from './getPageAssets.js';
3
+ declare function isFontFallback(asset: PageAsset, pageAssets: PageAsset[]): boolean;
@@ -0,0 +1,27 @@
1
+ export { isFontFallback };
2
+ import { assert } from '../../../utils/assert.js';
3
+ function isFontFallback(asset, pageAssets) {
4
+ if (asset.assetType !== 'font') {
5
+ return false;
6
+ }
7
+ const fontUrlBase = removeFileExtentionAndHash(asset.src);
8
+ return pageAssets.some((assetOther) => {
9
+ return assetOther.assetType === 'font' && removeFileExtentionAndHash(assetOther.src) === fontUrlBase;
10
+ });
11
+ }
12
+ function removeFileExtentionAndHash(assetUrl) {
13
+ assert(!assetUrl.includes('\\'));
14
+ // The logic below doesn't work for '/assets/chunk-0e184ced.js'
15
+ assert(!assetUrl.endsWith('.js'));
16
+ const paths = assetUrl.split('/');
17
+ {
18
+ const filename = paths[paths.length - 1];
19
+ const filenameParts = filename.split('.');
20
+ assert(filenameParts.length >= 2);
21
+ // User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
22
+ const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
23
+ assert(filenameBase.length >= 1);
24
+ paths[paths.length - 1] = filenameBase.join('.');
25
+ }
26
+ return paths.join('/');
27
+ }
@@ -6,10 +6,12 @@ import { PromiseType } from '../utils.js';
6
6
  import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
7
7
  import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
8
8
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
9
+ import type { GlobalContext } from '../globalContext.js';
9
10
  type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
10
11
  urlOriginal: string;
11
12
  _pageFilesAll: PageFile[];
12
13
  _pageConfigs: PageConfigRuntime[];
14
+ _globalContext: GlobalContext;
13
15
  };
14
16
  type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
15
17
  declare function loadUserFilesServerSide(pageContext: {
@@ -1,20 +1,21 @@
1
1
  export { loadUserFilesServerSide };
2
- import { getPageFilesServerSide, getPageConfigUserFriendly } from '../../../shared/getPageFiles.js';
2
+ import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
+ import { getPageConfigUserFriendlyOld } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
3
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
4
5
  import { assert, assertUsage, assertWarning, hasProp, isArrayOfStrings, objectAssign, isArray } from '../utils.js';
5
6
  import { getPageAssets } from './getPageAssets.js';
6
7
  import { debugPageFiles } from './debugPageFiles.js';
7
8
  import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
8
9
  import { analyzePage } from './analyzePage.js';
9
- import { getGlobalContext } from '../globalContext.js';
10
10
  import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
11
11
  async function loadUserFilesServerSide(pageContext) {
12
12
  const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
13
+ const globalContext = pageContext._globalContext;
13
14
  const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
14
- loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !getGlobalContext().isProduction),
15
+ loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !globalContext.isProduction),
15
16
  analyzePageClientSideInit(pageContext._pageFilesAll, pageContext.pageId, { sharedPageFilesAlreadyLoaded: true })
16
17
  ]);
17
- const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.pageId);
18
+ const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
18
19
  const isV1Design = !!pageConfig;
19
20
  const passToClient = [];
20
21
  const errMsg = ' should be an array of strings.';
@@ -99,7 +100,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
99
100
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
100
101
  const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
101
102
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
102
- const pageContextExports = getPageConfigUserFriendly(pageFilesServerSide, pageConfigLoaded);
103
+ const pageContextExports = getPageConfigUserFriendlyOld(pageFilesServerSide, pageConfigLoaded);
103
104
  return {
104
105
  pageContextExports,
105
106
  pageFilesLoaded: pageFilesServerSide
@@ -1,10 +1,12 @@
1
1
  export { log404 };
2
2
  export { getRoutesInfo };
3
3
  import type { PageRoutes } from '../../../../shared/route/index.js';
4
+ import type { GlobalContext } from '../../globalContext.js';
4
5
  declare function log404(pageContext: {
5
6
  urlPathname: string;
6
7
  errorWhileRendering: null | Error;
7
8
  isClientSideNavigation: boolean;
8
9
  _pageRoutes: PageRoutes;
10
+ _globalContext: GlobalContext;
9
11
  }): Promise<void>;
10
12
  declare function getRoutesInfo(pageRoutes: PageRoutes): string | null;
@@ -2,7 +2,6 @@ export { log404 };
2
2
  // Exported for ./index.spec.ts
3
3
  export { getRoutesInfo };
4
4
  import { noRouteMatch } from '../../../../shared/route/noRouteMatch.js';
5
- import { getGlobalContext } from '../../globalContext.js';
6
5
  import { assert, assertUsage, assertInfo, compareString, stripAnsi, getTerminalWidth, truncateString } from '../../utils.js';
7
6
  import pc from '@brillout/picocolors';
8
7
  async function log404(pageContext) {
@@ -13,7 +12,7 @@ async function log404(pageContext) {
13
12
  'No page found. Create at least one /pages/some-page/+Page.js file.'
14
13
  */
15
14
  );
16
- const globalContext = getGlobalContext();
15
+ const globalContext = pageContext._globalContext;
17
16
  if (!globalContext.isProduction && !isFileRequest(urlPathname) && !pageContext.isClientSideNavigation) {
18
17
  const routesInfo = getRoutesInfo(pageRoutes);
19
18
  let msg = `URL ${pc.cyan(urlPathname)} ${noRouteMatch}`;
@@ -4,6 +4,7 @@ import { PageContextUrlInternal } from '../../../shared/getPageContextUrlCompute
4
4
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
5
5
  import type { PageConfigUserFriendly } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
6
6
  import { PageContextBuiltInServerInternal } from '../../../shared/types.js';
7
+ import type { GlobalContext, GlobalContextPublic } from '../globalContext.js';
7
8
  type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & PageConfigUserFriendly & {
8
9
  urlOriginal: string;
9
10
  /** @deprecated */
@@ -17,5 +18,7 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
17
18
  is404: null | boolean;
18
19
  isClientSideNavigation: boolean;
19
20
  pageProps?: Record<string, unknown>;
21
+ _globalContext: GlobalContext;
22
+ globalContext: GlobalContextPublic;
20
23
  } & Record<string, unknown>;
21
24
  declare function preparePageContextForUserConsumptionServerSide(pageContext: PageContextForUserConsumptionServerSide): void;
@@ -5,6 +5,7 @@ export { getPageContextInitEnhanced };
5
5
  export type { PageContextAfterRender };
6
6
  export type { PageContextInitEnhanced };
7
7
  import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
8
+ import type { GlobalContext } from '../globalContext.js';
8
9
  import { HttpResponse } from './createHttpResponse.js';
9
10
  import { PageContext_loadUserFilesServerSide, type PageFiles } from './loadUserFilesServerSide.js';
10
11
  type PageContextAfterRender = {
@@ -37,7 +38,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
37
38
  } & {
38
39
  _objectCreatedByVike: boolean;
39
40
  _baseServer: string;
40
- _baseAssets: string | null;
41
+ _baseAssets: string;
41
42
  _includeAssetsImportedByServer: boolean;
42
43
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
43
44
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -45,6 +46,9 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
45
46
  _allPageIds: string[];
46
47
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
47
48
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
49
+ _globalContext: GlobalContext;
50
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
51
+ globalContext: import("../globalContext.js").GlobalContextPublic;
48
52
  _pageContextInit: {
49
53
  urlOriginal: string;
50
54
  headersOriginal?: unknown;
@@ -88,7 +92,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
88
92
  } & {
89
93
  _objectCreatedByVike: boolean;
90
94
  _baseServer: string;
91
- _baseAssets: string | null;
95
+ _baseAssets: string;
92
96
  _includeAssetsImportedByServer: boolean;
93
97
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
94
98
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -96,6 +100,9 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
96
100
  _allPageIds: string[];
97
101
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
98
102
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
103
+ _globalContext: GlobalContext;
104
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
105
+ globalContext: import("../globalContext.js").GlobalContextPublic;
99
106
  _pageContextInit: {
100
107
  urlOriginal: string;
101
108
  headersOriginal?: unknown;
@@ -130,7 +137,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
130
137
  _urlHandler: null;
131
138
  };
132
139
  }>;
133
- declare function prerender404Page(pageContextInit_: Record<string, unknown> | null): Promise<{
140
+ declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContext): Promise<{
134
141
  documentHtml: string;
135
142
  pageContextSerialized: null;
136
143
  pageContext: {
@@ -140,7 +147,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
140
147
  } & {
141
148
  _objectCreatedByVike: boolean;
142
149
  _baseServer: string;
143
- _baseAssets: string | null;
150
+ _baseAssets: string;
144
151
  _includeAssetsImportedByServer: boolean;
145
152
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
146
153
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -148,6 +155,9 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
148
155
  _allPageIds: string[];
149
156
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
150
157
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
158
+ _globalContext: GlobalContext;
159
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
160
+ globalContext: import("../globalContext.js").GlobalContextPublic;
151
161
  _pageContextInit: {
152
162
  urlOriginal: string;
153
163
  headersOriginal?: unknown;
@@ -191,7 +201,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
191
201
  } & {
192
202
  _objectCreatedByVike: boolean;
193
203
  _baseServer: string;
194
- _baseAssets: string | null;
204
+ _baseAssets: string;
195
205
  _includeAssetsImportedByServer: boolean;
196
206
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
197
207
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -199,6 +209,9 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
199
209
  _allPageIds: string[];
200
210
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
201
211
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
212
+ _globalContext: GlobalContext;
213
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
214
+ globalContext: import("../globalContext.js").GlobalContextPublic;
202
215
  _pageContextInit: {
203
216
  urlOriginal: string;
204
217
  headersOriginal?: unknown;
@@ -233,25 +246,25 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
233
246
  _urlHandler: null;
234
247
  };
235
248
  } | null>;
236
- type PageContextInitEnhanced = ReturnType<typeof getPageContextInitEnhanced>;
249
+ type PageContextInitEnhanced = Awaited<ReturnType<typeof getPageContextInitEnhanced>>;
237
250
  declare function getPageContextInitEnhanced(pageContextInit: {
238
251
  urlOriginal: string;
239
252
  headersOriginal?: unknown;
240
253
  headers?: unknown;
241
- }, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
254
+ }, globalContext: GlobalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
242
255
  ssr?: {
243
256
  urlRewrite: null | string;
244
257
  urlHandler: null | ((url: string) => string);
245
258
  isClientSideNavigation: boolean;
246
259
  };
247
- }): {
260
+ }): Promise<{
248
261
  urlOriginal: string;
249
262
  headersOriginal?: unknown;
250
263
  headers?: unknown;
251
264
  } & {
252
265
  _objectCreatedByVike: boolean;
253
266
  _baseServer: string;
254
- _baseAssets: string | null;
267
+ _baseAssets: string;
255
268
  _includeAssetsImportedByServer: boolean;
256
269
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
257
270
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -259,6 +272,9 @@ declare function getPageContextInitEnhanced(pageContextInit: {
259
272
  _allPageIds: string[];
260
273
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
261
274
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
275
+ _globalContext: GlobalContext;
276
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
277
+ globalContext: import("../globalContext.js").GlobalContextPublic;
262
278
  _pageContextInit: {
263
279
  urlOriginal: string;
264
280
  headersOriginal?: unknown;
@@ -273,4 +289,4 @@ declare function getPageContextInitEnhanced(pageContextInit: {
273
289
  url: string;
274
290
  } & {
275
291
  headers: Record<string, string> | null;
276
- };
292
+ }>;
@@ -7,7 +7,6 @@ import { getHtmlString } from '../html/renderHtml.js';
7
7
  import { assert, assertUsage, assertWarning, hasProp, normalizeHeaders, objectAssign } from '../utils.js';
8
8
  import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
9
9
  import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
10
- import { getGlobalContext } from '../globalContext.js';
11
10
  import { createHttpResponsePage, createHttpResponsePageContextJson } from './createHttpResponse.js';
12
11
  import { loadUserFilesServerSide } from './loadUserFilesServerSide.js';
13
12
  import { executeOnRenderHtmlHook } from './executeOnRenderHtmlHook.js';
@@ -18,6 +17,7 @@ import { preparePageContextForUserConsumptionServerSide } from './preparePageCon
18
17
  import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
19
18
  import pc from '@brillout/picocolors';
20
19
  import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
20
+ import { resolveBaseRuntime } from '../../shared/resolveBase.js';
21
21
  async function renderPageAlreadyRouted(pageContext) {
22
22
  // pageContext.pageId can either be the:
23
23
  // - ID of the page matching the routing, or the
@@ -80,8 +80,7 @@ async function prerenderPage(pageContext) {
80
80
  return { documentHtml, pageContextSerialized, pageContext };
81
81
  }
82
82
  }
83
- async function prerender404Page(pageContextInit_) {
84
- const globalContext = getGlobalContext();
83
+ async function prerender404Page(pageContextInit_, globalContext) {
85
84
  const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
86
85
  if (!errorPageId) {
87
86
  return null;
@@ -101,34 +100,39 @@ async function prerender404Page(pageContextInit_) {
101
100
  };
102
101
  objectAssign(pageContextInit, pageContextInit_);
103
102
  {
104
- const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit);
103
+ const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext);
105
104
  objectAssign(pageContext, pageContextInitEnhanced);
106
105
  }
107
106
  objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
108
107
  return prerenderPage(pageContext);
109
108
  }
110
- function getPageContextInitEnhanced(pageContextInit, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
109
+ async function getPageContextInitEnhanced(pageContextInit, globalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
111
110
  urlRewrite: null,
112
111
  urlHandler: null,
113
112
  isClientSideNavigation: false
114
113
  } } = {}) {
115
114
  assert(pageContextInit.urlOriginal);
116
- const globalContext = getGlobalContext();
115
+ const { baseServer, baseAssets } = resolveBaseRuntime(globalContext);
117
116
  const pageContextInitEnhanced = {};
118
117
  objectAssign(pageContextInitEnhanced, pageContextInit);
119
118
  objectAssign(pageContextInitEnhanced, {
120
119
  _objectCreatedByVike: true,
121
120
  // The following is defined on `pageContext` because we can eventually make these non-global
122
- _baseServer: globalContext.baseServer,
123
- _baseAssets: globalContext.baseAssets,
124
- _includeAssetsImportedByServer: globalContext.includeAssetsImportedByServer,
125
- // TODO: use GloablContext instead
121
+ _baseServer: baseServer,
122
+ _baseAssets: baseAssets,
123
+ // TODO/now: add meta.default
124
+ _includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
125
+ // TODO/soon: use GloablContext instead
126
126
  _pageFilesAll: globalContext.pageFilesAll,
127
127
  _pageConfigs: globalContext.pageConfigs,
128
128
  _pageConfigGlobal: globalContext.pageConfigGlobal,
129
129
  _allPageIds: globalContext.allPageIds,
130
130
  _pageRoutes: globalContext.pageRoutes,
131
131
  _onBeforeRouteHook: globalContext.onBeforeRouteHook,
132
+ _globalContext: globalContext,
133
+ // TODO/now: add PageContext['globalContext']
134
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
135
+ globalContext: globalContext.globalContext_public,
132
136
  _pageContextInit: pageContextInit,
133
137
  _urlRewrite: urlRewrite,
134
138
  _urlHandler: urlHandler,
@@ -1,4 +1,6 @@
1
1
  export { resolveRedirects };
2
2
  export { resolveRouteStringRedirect };
3
+ export { redirectsErrPrefix };
4
+ declare const redirectsErrPrefix = "[+redirects]";
3
5
  declare function resolveRedirects(redirectsAll: Record<string, string>[], urlPathname: string): null | string;
4
6
  declare function resolveRouteStringRedirect(urlSource: string, urlTarget: string, urlPathname: string): null | string;
@@ -1,14 +1,14 @@
1
1
  export { resolveRedirects };
2
2
  // For ./resolveRedirects.spec.ts
3
3
  export { resolveRouteStringRedirect };
4
+ export { redirectsErrPrefix };
4
5
  import { assertIsNotBrowser } from '../../../utils/assertIsNotBrowser.js';
5
6
  import { assert, assertUsage, assertUsageUrlRedirectTarget, isUrlRedirectTarget } from '../../../shared/utils.js';
6
7
  import { resolveUrlPathname } from '../../../shared/route/resolveUrlPathname.js';
7
8
  import { assertRouteString, resolveRouteString } from '../../../shared/route/resolveRouteString.js';
8
9
  import pc from '@brillout/picocolors';
9
10
  assertIsNotBrowser(); // Don't bloat the client
10
- // TODO/next-major-release: update
11
- const configSrc = '[vite.config.js > vike({ redirects })]';
11
+ const redirectsErrPrefix = '[+redirects]';
12
12
  function resolveRedirects(redirectsAll, urlPathname) {
13
13
  const redirects = merge(redirectsAll);
14
14
  for (const [urlSource, urlTarget] of Object.entries(redirects)) {
@@ -19,9 +19,9 @@ function resolveRedirects(redirectsAll, urlPathname) {
19
19
  return null;
20
20
  }
21
21
  function resolveRouteStringRedirect(urlSource, urlTarget, urlPathname) {
22
- assertRouteString(urlSource, `${configSrc} Invalid`);
22
+ assertRouteString(urlSource, `${redirectsErrPrefix} Invalid`);
23
23
  // Is allowing any protocol a safety issue? https://github.com/vikejs/vike/pull/1292#issuecomment-1828043917
24
- assertUsageUrlRedirectTarget(urlTarget, `${configSrc} The URL redirection target`, true);
24
+ assertUsageUrlRedirectTarget(urlTarget, `${redirectsErrPrefix} The URL redirection target`, true);
25
25
  assertParams(urlSource, urlTarget);
26
26
  const match = resolveRouteString(urlSource, urlPathname);
27
27
  if (!match)
@@ -37,7 +37,7 @@ function assertParams(urlSource, urlTarget) {
37
37
  routeSegments.forEach((routeSegment) => {
38
38
  if (routeSegment.startsWith('@') || routeSegment.startsWith('*')) {
39
39
  const segments = urlSource.split('/');
40
- assertUsage(segments.includes(routeSegment), `${configSrc} The redirection source URL ${pc.string(urlSource)} is missing the URL parameter ${pc.string(routeSegment)} used by the redirection target URL ${pc.string(urlTarget)}`);
40
+ assertUsage(segments.includes(routeSegment), `${redirectsErrPrefix} The redirection source URL ${pc.string(urlSource)} is missing the URL parameter ${pc.string(routeSegment)} used by the redirection target URL ${pc.string(urlTarget)}`);
41
41
  }
42
42
  });
43
43
  }