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
@@ -12,7 +12,6 @@ const utils_js_1 = require("../utils.js");
12
12
  const injectAssets_js_1 = require("./injectAssets.js");
13
13
  const stream_js_1 = require("./stream.js");
14
14
  const react_streaming_js_1 = require("./stream/react-streaming.js");
15
- const globalContext_js_1 = require("../globalContext.js");
16
15
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
17
16
  function isDocumentHtml(something) {
18
17
  if (isTemplateWrapped(something) || isEscapedString(something) || (0, stream_js_1.isStream)(something)) {
@@ -36,7 +35,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
36
35
  }
37
36
  if (isTemplateWrapped(documentHtml)) {
38
37
  const templateContent = documentHtml._template;
39
- const render = await renderTemplate(templateContent, pageContext);
38
+ const render = renderTemplate(templateContent, pageContext);
40
39
  if (!('htmlStream' in render)) {
41
40
  (0, utils_js_1.objectAssign)(pageContext, { _isStream: false });
42
41
  const { htmlPartsAll } = render;
@@ -125,7 +124,7 @@ function _dangerouslySkipEscape(arg) {
125
124
  });
126
125
  return { _escaped: String(arg) };
127
126
  }
128
- async function renderTemplate(templateContent, pageContext) {
127
+ function renderTemplate(templateContent, pageContext) {
129
128
  const htmlPartsBegin = [];
130
129
  const htmlPartsEnd = [];
131
130
  let htmlStream = null;
@@ -156,7 +155,7 @@ async function renderTemplate(templateContent, pageContext) {
156
155
  // Process `escapeInject` fragments
157
156
  if (isTemplateWrapped(templateVar)) {
158
157
  const templateContentInner = templateVar._template;
159
- const result = await renderTemplate(templateContentInner, pageContext);
158
+ const result = renderTemplate(templateContentInner, pageContext);
160
159
  if (!('htmlStream' in result)) {
161
160
  result.htmlPartsAll.forEach(addHtmlPart);
162
161
  }
@@ -198,7 +197,7 @@ async function renderTemplate(templateContent, pageContext) {
198
197
  }
199
198
  }
200
199
  {
201
- const { isProduction } = (0, globalContext_js_1.getGlobalContext)();
200
+ const { isProduction } = pageContext._globalContext;
202
201
  if ((0, utils_js_1.isHtml)(templateVar) &&
203
202
  // 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.
204
203
  !isProduction) {
@@ -1,3 +1,3 @@
1
1
  "use strict";
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.)
@@ -5,9 +5,8 @@ const determineClientEntry_js_1 = require("../../../shared/getPageFiles/analyzeP
5
5
  const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide.js");
6
6
  const virtualFilePageConfigValuesAll_js_1 = require("../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
7
7
  const analyzeClientSide_js_1 = require("../../../shared/getPageFiles/analyzeClientSide.js");
8
- const globalContext_js_1 = require("../globalContext.js");
9
8
  const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
10
- function analyzePage(pageFilesAll, pageConfig, pageId) {
9
+ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
11
10
  if (pageConfig) {
12
11
  const { isClientRuntimeLoaded, isClientRouting } = (0, analyzeClientSide_js_1.analyzeClientSide)(pageConfig, pageFilesAll, pageId);
13
12
  const clientEntries = [];
@@ -23,7 +22,7 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
23
22
  eagerlyImported: false
24
23
  });
25
24
  // In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
26
- if (!(0, globalContext_js_1.getGlobalContext)().isProduction) {
25
+ if (!globalContext.isProduction) {
27
26
  clientDependencies.push({
28
27
  id: (0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageConfig.pageId, false),
29
28
  onlyAssets: true,
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEarlyHints = getEarlyHints;
4
+ const isFontFallback_js_1 = require("./isFontFallback.js");
4
5
  const inferHtmlTags_js_1 = require("../html/injectAssets/inferHtmlTags.js");
5
- const utils_js_1 = require("../utils.js");
6
6
  function getEarlyHints(assets) {
7
7
  const earlyHints = [];
8
8
  {
9
9
  assets.forEach((asset) => {
10
10
  // Don't early hint fallback fonts, https://github.com/vikejs/vike/issues/624
11
- if (isFontFallback(asset, earlyHints))
11
+ if ((0, isFontFallback_js_1.isFontFallback)(asset, earlyHints))
12
12
  return;
13
13
  earlyHints.push({
14
14
  ...asset,
@@ -18,28 +18,3 @@ function getEarlyHints(assets) {
18
18
  }
19
19
  return earlyHints;
20
20
  }
21
- function isFontFallback(asset, earlyHints) {
22
- if (asset.assetType !== 'font') {
23
- return false;
24
- }
25
- const fontUrlBase = removeFileExtentionAndHash(asset.src);
26
- return earlyHints.some((hint) => {
27
- return hint.assetType === 'font' && removeFileExtentionAndHash(hint.src) === fontUrlBase;
28
- });
29
- }
30
- function removeFileExtentionAndHash(assetUrl) {
31
- (0, utils_js_1.assert)(!assetUrl.includes('\\'));
32
- // The logic below doesn't work for '/assets/chunk-0e184ced.js'
33
- (0, utils_js_1.assert)(!assetUrl.endsWith('.js'));
34
- const paths = assetUrl.split('/');
35
- {
36
- const filename = paths[paths.length - 1];
37
- const filenameParts = filename.split('.');
38
- (0, utils_js_1.assert)(filenameParts.length >= 2);
39
- // User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
40
- const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
41
- (0, utils_js_1.assert)(filenameBase.length >= 1);
42
- paths[paths.length - 1] = filenameBase.join('.');
43
- }
44
- return paths.join('/');
45
- }
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sortPageAssetsForEarlyHintsHeader = sortPageAssetsForEarlyHintsHeader;
4
- const globalContext_js_1 = require("../../globalContext.js");
5
4
  const utils_js_1 = require("../../utils.js");
6
- function sortPageAssetsForEarlyHintsHeader(pageAssets) {
7
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
5
+ async function sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction) {
8
6
  pageAssets.sort((0, utils_js_1.higherFirst)(({ assetType }) => {
9
7
  // In dev, we load scripts first in order to parallelize I/O and CPU
10
- if (!globalContext.isProduction && assetType === 'script') {
8
+ if (!isProduction && assetType === 'script') {
11
9
  return 1;
12
10
  }
13
11
  let priority = 0;
@@ -8,13 +8,13 @@ const retrieveAssetsProd_js_1 = require("./getPageAssets/retrieveAssetsProd.js")
8
8
  const inferMediaType_js_1 = require("./inferMediaType.js");
9
9
  const getManifestEntry_js_1 = require("./getPageAssets/getManifestEntry.js");
10
10
  const sortPageAssetsForEarlyHintsHeader_js_1 = require("./getPageAssets/sortPageAssetsForEarlyHintsHeader.js");
11
- const globalContext_js_1 = require("../globalContext.js");
12
11
  const globalObject = (0, utils_js_1.getGlobalObject)('getPageAssets.ts', {
13
12
  resolveClientEntriesDev: null
14
13
  });
15
14
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
16
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
17
- const isDev = !globalContext.isProduction;
15
+ const globalContext = pageContext._globalContext;
16
+ const { isProduction } = globalContext;
17
+ const isDev = !isProduction;
18
18
  let assetUrls;
19
19
  let clientEntriesSrc;
20
20
  if (isDev) {
@@ -57,7 +57,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
57
57
  pageAsset.src = (0, utils_js_1.prependBase)((0, utils_js_1.toPosixPath)(pageAsset.src), baseServerAssets);
58
58
  return pageAsset;
59
59
  });
60
- (0, sortPageAssetsForEarlyHintsHeader_js_1.sortPageAssetsForEarlyHintsHeader)(pageAssets);
60
+ await (0, sortPageAssetsForEarlyHintsHeader_js_1.sortPageAssetsForEarlyHintsHeader)(pageAssets, isProduction);
61
61
  return pageAssets;
62
62
  }
63
63
  function resolveClientEntriesProd(clientEntry, assetsManifest) {
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.handleErrorWithoutErrorPage = handleErrorWithoutErrorPage;
7
7
  const stringify_1 = require("@brillout/json-serializer/stringify");
8
- const globalContext_js_1 = require("../globalContext.js");
9
8
  const utils_js_1 = require("../utils.js");
10
9
  const createHttpResponse_js_1 = require("./createHttpResponse.js");
11
10
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
@@ -15,7 +14,7 @@ async function handleErrorWithoutErrorPage(pageContext) {
15
14
  (0, utils_js_1.assert)(pageContext.errorWhileRendering || pageContext.is404);
16
15
  {
17
16
  const isV1 = pageContext._pageConfigs.length > 0;
18
- warnMissingErrorPage(isV1);
17
+ await warnMissingErrorPage(isV1, pageContext._globalContext.isProduction);
19
18
  }
20
19
  if (!pageContext.isClientSideNavigation) {
21
20
  const httpResponse = (0, createHttpResponse_js_1.createHttpResponseError)(pageContext);
@@ -30,9 +29,8 @@ async function handleErrorWithoutErrorPage(pageContext) {
30
29
  return pageContext;
31
30
  }
32
31
  }
33
- function warnMissingErrorPage(isV1) {
34
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
35
- if (!globalContext.isProduction) {
32
+ async function warnMissingErrorPage(isV1, isProduction) {
33
+ if (!isProduction) {
36
34
  const msg = [
37
35
  `No ${isV1 ? 'error page' : picocolors_1.default.cyan('_error.page.js')} found,`,
38
36
  'we recommend defining one',
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFontFallback = isFontFallback;
4
+ const assert_js_1 = require("../../../utils/assert.js");
5
+ function isFontFallback(asset, pageAssets) {
6
+ if (asset.assetType !== 'font') {
7
+ return false;
8
+ }
9
+ const fontUrlBase = removeFileExtentionAndHash(asset.src);
10
+ return pageAssets.some((assetOther) => {
11
+ return assetOther.assetType === 'font' && removeFileExtentionAndHash(assetOther.src) === fontUrlBase;
12
+ });
13
+ }
14
+ function removeFileExtentionAndHash(assetUrl) {
15
+ (0, assert_js_1.assert)(!assetUrl.includes('\\'));
16
+ // The logic below doesn't work for '/assets/chunk-0e184ced.js'
17
+ (0, assert_js_1.assert)(!assetUrl.endsWith('.js'));
18
+ const paths = assetUrl.split('/');
19
+ {
20
+ const filename = paths[paths.length - 1];
21
+ const filenameParts = filename.split('.');
22
+ (0, assert_js_1.assert)(filenameParts.length >= 2);
23
+ // User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
24
+ const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
25
+ (0, assert_js_1.assert)(filenameBase.length >= 1);
26
+ paths[paths.length - 1] = filenameBase.join('.');
27
+ }
28
+ return paths.join('/');
29
+ }
@@ -2,21 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loadUserFilesServerSide = loadUserFilesServerSide;
4
4
  const getPageFiles_js_1 = require("../../../shared/getPageFiles.js");
5
+ const getPageConfigUserFriendly_js_1 = require("../../../shared/page-configs/getPageConfigUserFriendly.js");
5
6
  const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide.js");
6
7
  const utils_js_1 = require("../utils.js");
7
8
  const getPageAssets_js_1 = require("./getPageAssets.js");
8
9
  const debugPageFiles_js_1 = require("./debugPageFiles.js");
9
10
  const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig.js");
10
11
  const analyzePage_js_1 = require("./analyzePage.js");
11
- const globalContext_js_1 = require("../globalContext.js");
12
12
  const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
13
13
  async function loadUserFilesServerSide(pageContext) {
14
14
  const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
15
+ const globalContext = pageContext._globalContext;
15
16
  const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
16
- loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !(0, globalContext_js_1.getGlobalContext)().isProduction),
17
+ loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !globalContext.isProduction),
17
18
  (0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._pageFilesAll, pageContext.pageId, { sharedPageFilesAlreadyLoaded: true })
18
19
  ]);
19
- const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = (0, analyzePage_js_1.analyzePage)(pageContext._pageFilesAll, pageConfig, pageContext.pageId);
20
+ const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await (0, analyzePage_js_1.analyzePage)(pageContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
20
21
  const isV1Design = !!pageConfig;
21
22
  const passToClient = [];
22
23
  const errMsg = ' should be an array of strings.';
@@ -101,7 +102,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
101
102
  const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
102
103
  const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
103
104
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
104
- const pageContextExports = (0, getPageFiles_js_1.getPageConfigUserFriendly)(pageFilesServerSide, pageConfigLoaded);
105
+ const pageContextExports = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyOld)(pageFilesServerSide, pageConfigLoaded);
105
106
  return {
106
107
  pageContextExports,
107
108
  pageFilesLoaded: pageFilesServerSide
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.log404 = log404;
7
7
  exports.getRoutesInfo = getRoutesInfo;
8
8
  const noRouteMatch_js_1 = require("../../../../shared/route/noRouteMatch.js");
9
- const globalContext_js_1 = require("../../globalContext.js");
10
9
  const utils_js_1 = require("../../utils.js");
11
10
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
12
11
  async function log404(pageContext) {
@@ -17,7 +16,7 @@ async function log404(pageContext) {
17
16
  'No page found. Create at least one /pages/some-page/+Page.js file.'
18
17
  */
19
18
  );
20
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
19
+ const globalContext = pageContext._globalContext;
21
20
  if (!globalContext.isProduction && !isFileRequest(urlPathname) && !pageContext.isClientSideNavigation) {
22
21
  const routesInfo = getRoutesInfo(pageRoutes);
23
22
  let msg = `URL ${picocolors_1.default.cyan(urlPathname)} ${noRouteMatch_js_1.noRouteMatch}`;
@@ -12,7 +12,6 @@ const renderHtml_js_1 = require("../html/renderHtml.js");
12
12
  const utils_js_1 = require("../utils.js");
13
13
  const serializePageContextClientSide_js_1 = require("../html/serializePageContextClientSide.js");
14
14
  const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
15
- const globalContext_js_1 = require("../globalContext.js");
16
15
  const createHttpResponse_js_1 = require("./createHttpResponse.js");
17
16
  const loadUserFilesServerSide_js_1 = require("./loadUserFilesServerSide.js");
18
17
  const executeOnRenderHtmlHook_js_1 = require("./executeOnRenderHtmlHook.js");
@@ -23,6 +22,7 @@ const preparePageContextForUserConsumptionServerSide_js_1 = require("./preparePa
23
22
  const executeGuardHook_js_1 = require("../../../shared/route/executeGuardHook.js");
24
23
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
25
24
  const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
25
+ const resolveBase_js_1 = require("../../shared/resolveBase.js");
26
26
  async function renderPageAlreadyRouted(pageContext) {
27
27
  // pageContext.pageId can either be the:
28
28
  // - ID of the page matching the routing, or the
@@ -85,8 +85,7 @@ async function prerenderPage(pageContext) {
85
85
  return { documentHtml, pageContextSerialized, pageContext };
86
86
  }
87
87
  }
88
- async function prerender404Page(pageContextInit_) {
89
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
88
+ async function prerender404Page(pageContextInit_, globalContext) {
90
89
  const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
91
90
  if (!errorPageId) {
92
91
  return null;
@@ -106,34 +105,39 @@ async function prerender404Page(pageContextInit_) {
106
105
  };
107
106
  (0, utils_js_1.objectAssign)(pageContextInit, pageContextInit_);
108
107
  {
109
- const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit);
108
+ const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext);
110
109
  (0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
111
110
  }
112
111
  (0, utils_js_1.objectAssign)(pageContext, await (0, loadUserFilesServerSide_js_1.loadUserFilesServerSide)(pageContext));
113
112
  return prerenderPage(pageContext);
114
113
  }
115
- function getPageContextInitEnhanced(pageContextInit, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
114
+ async function getPageContextInitEnhanced(pageContextInit, globalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
116
115
  urlRewrite: null,
117
116
  urlHandler: null,
118
117
  isClientSideNavigation: false
119
118
  } } = {}) {
120
119
  (0, utils_js_1.assert)(pageContextInit.urlOriginal);
121
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
120
+ const { baseServer, baseAssets } = (0, resolveBase_js_1.resolveBaseRuntime)(globalContext);
122
121
  const pageContextInitEnhanced = {};
123
122
  (0, utils_js_1.objectAssign)(pageContextInitEnhanced, pageContextInit);
124
123
  (0, utils_js_1.objectAssign)(pageContextInitEnhanced, {
125
124
  _objectCreatedByVike: true,
126
125
  // The following is defined on `pageContext` because we can eventually make these non-global
127
- _baseServer: globalContext.baseServer,
128
- _baseAssets: globalContext.baseAssets,
129
- _includeAssetsImportedByServer: globalContext.includeAssetsImportedByServer,
130
- // TODO: use GloablContext instead
126
+ _baseServer: baseServer,
127
+ _baseAssets: baseAssets,
128
+ // TODO/now: add meta.default
129
+ _includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
130
+ // TODO/soon: use GloablContext instead
131
131
  _pageFilesAll: globalContext.pageFilesAll,
132
132
  _pageConfigs: globalContext.pageConfigs,
133
133
  _pageConfigGlobal: globalContext.pageConfigGlobal,
134
134
  _allPageIds: globalContext.allPageIds,
135
135
  _pageRoutes: globalContext.pageRoutes,
136
136
  _onBeforeRouteHook: globalContext.onBeforeRouteHook,
137
+ _globalContext: globalContext,
138
+ // TODO/now: add PageContext['globalContext']
139
+ /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
140
+ globalContext: globalContext.globalContext_public,
137
141
  _pageContextInit: pageContextInit,
138
142
  _urlRewrite: urlRewrite,
139
143
  _urlHandler: urlHandler,
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.redirectsErrPrefix = void 0;
6
7
  exports.resolveRedirects = resolveRedirects;
7
8
  exports.resolveRouteStringRedirect = resolveRouteStringRedirect;
8
9
  const assertIsNotBrowser_js_1 = require("../../../utils/assertIsNotBrowser.js");
@@ -11,8 +12,8 @@ const resolveUrlPathname_js_1 = require("../../../shared/route/resolveUrlPathnam
11
12
  const resolveRouteString_js_1 = require("../../../shared/route/resolveRouteString.js");
12
13
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
13
14
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)(); // Don't bloat the client
14
- // TODO/next-major-release: update
15
- const configSrc = '[vite.config.js > vike({ redirects })]';
15
+ const redirectsErrPrefix = '[+redirects]';
16
+ exports.redirectsErrPrefix = redirectsErrPrefix;
16
17
  function resolveRedirects(redirectsAll, urlPathname) {
17
18
  const redirects = merge(redirectsAll);
18
19
  for (const [urlSource, urlTarget] of Object.entries(redirects)) {
@@ -23,9 +24,9 @@ function resolveRedirects(redirectsAll, urlPathname) {
23
24
  return null;
24
25
  }
25
26
  function resolveRouteStringRedirect(urlSource, urlTarget, urlPathname) {
26
- (0, resolveRouteString_js_1.assertRouteString)(urlSource, `${configSrc} Invalid`);
27
+ (0, resolveRouteString_js_1.assertRouteString)(urlSource, `${redirectsErrPrefix} Invalid`);
27
28
  // Is allowing any protocol a safety issue? https://github.com/vikejs/vike/pull/1292#issuecomment-1828043917
28
- (0, utils_js_1.assertUsageUrlRedirectTarget)(urlTarget, `${configSrc} The URL redirection target`, true);
29
+ (0, utils_js_1.assertUsageUrlRedirectTarget)(urlTarget, `${redirectsErrPrefix} The URL redirection target`, true);
29
30
  assertParams(urlSource, urlTarget);
30
31
  const match = (0, resolveRouteString_js_1.resolveRouteString)(urlSource, urlPathname);
31
32
  if (!match)
@@ -41,7 +42,7 @@ function assertParams(urlSource, urlTarget) {
41
42
  routeSegments.forEach((routeSegment) => {
42
43
  if (routeSegment.startsWith('@') || routeSegment.startsWith('*')) {
43
44
  const segments = urlSource.split('/');
44
- (0, utils_js_1.assertUsage)(segments.includes(routeSegment), `${configSrc} The redirection source URL ${picocolors_1.default.string(urlSource)} is missing the URL parameter ${picocolors_1.default.string(routeSegment)} used by the redirection target URL ${picocolors_1.default.string(urlTarget)}`);
45
+ (0, utils_js_1.assertUsage)(segments.includes(routeSegment), `${redirectsErrPrefix} The redirection source URL ${picocolors_1.default.string(urlSource)} is missing the URL parameter ${picocolors_1.default.string(routeSegment)} used by the redirection target URL ${picocolors_1.default.string(urlTarget)}`);
45
46
  }
46
47
  });
47
48
  }
@@ -23,6 +23,7 @@ const error_page_js_1 = require("../../shared/error-page.js");
23
23
  const handleErrorWithoutErrorPage_js_1 = require("./renderPage/handleErrorWithoutErrorPage.js");
24
24
  const loadUserFilesServerSide_js_1 = require("./renderPage/loadUserFilesServerSide.js");
25
25
  const resolveRedirects_js_1 = require("./renderPage/resolveRedirects.js");
26
+ const resolveBase_js_1 = require("../shared/resolveBase.js");
26
27
  const globalObject = (0, utils_js_1.getGlobalObject)('runtime/renderPage.ts', {
27
28
  httpRequestsCount: 0
28
29
  });
@@ -81,25 +82,26 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
81
82
  return handleInvalidConfig(isConfigInvalid_js_1.isConfigInvalid.err);
82
83
  }
83
84
  else {
84
- // From now on, gloablContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
85
+ // From now on, globalContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
85
86
  }
87
+ const globalContext = await (0, globalContext_js_1.getGlobalContextInternal)();
86
88
  // Check Base URL
87
- assertBaseUrl(pageContextInit);
89
+ await assertBaseUrl(pageContextInit, globalContext);
88
90
  // Normalize URL
89
91
  {
90
- const pageContextHttpResponse = normalizeUrl(pageContextInit, httpRequestId);
92
+ const pageContextHttpResponse = await normalizeUrl(pageContextInit, globalContext, httpRequestId);
91
93
  if (pageContextHttpResponse)
92
94
  return pageContextHttpResponse;
93
95
  }
94
96
  // Permanent redirects (HTTP status code `301`)
95
97
  {
96
- const pageContextHttpResponse = getPermanentRedirect(pageContextInit, httpRequestId);
98
+ const pageContextHttpResponse = await getPermanentRedirect(pageContextInit, globalContext, httpRequestId);
97
99
  if (pageContextHttpResponse)
98
100
  return pageContextHttpResponse;
99
101
  }
100
- return await renderPageAlreadyPrepared(pageContextInit, httpRequestId, []);
102
+ return await renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, []);
101
103
  }
102
- async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageContextsFromRewrite) {
104
+ async function renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, pageContextsFromRewrite) {
103
105
  (0, abort_js_1.assertNoInfiniteAbortLoop)(pageContextsFromRewrite.length,
104
106
  // 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)
105
107
  // https://stackoverflow.com/questions/9683007/detect-infinite-http-redirect-loop-on-server-side
@@ -111,7 +113,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
111
113
  (0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextFromAllRewrites);
112
114
  }
113
115
  {
114
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, pageContextNominalPageInit._urlRewrite, httpRequestId);
116
+ const pageContextInitEnhanced = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, pageContextNominalPageInit._urlRewrite, httpRequestId);
115
117
  (0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextInitEnhanced);
116
118
  }
117
119
  let errNominalPage;
@@ -143,10 +145,10 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
143
145
  (0, utils_js_1.assert)(pageContextNominalPageSuccess === undefined);
144
146
  (0, utils_js_1.assert)(pageContextNominalPageInit);
145
147
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextNominalPageInit, 'urlOriginal', 'string'));
146
- const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit, httpRequestId);
148
+ const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, globalContext, errNominalPage, pageContextNominalPageInit, httpRequestId);
147
149
  // Handle `throw redirect()` and `throw render()` while rendering nominal page
148
150
  if ((0, abort_js_1.isAbortError)(errNominalPage)) {
149
- const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
151
+ const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext);
150
152
  if (handled.pageContextReturn) {
151
153
  // - throw redirect()
152
154
  // - throw render(url)
@@ -159,7 +161,6 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
159
161
  Object.assign(pageContextErrorPageInit, handled.pageContextAbort);
160
162
  }
161
163
  {
162
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
163
164
  const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
164
165
  if (!errorPageId) {
165
166
  (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: null });
@@ -176,7 +177,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageCon
176
177
  catch (errErrorPage) {
177
178
  // Handle `throw redirect()` and `throw render()` while rendering error page
178
179
  if ((0, abort_js_1.isAbortError)(errErrorPage)) {
179
- const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
180
+ const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext);
180
181
  // throw render(abortStatusCode)
181
182
  if (!handled.pageContextReturn) {
182
183
  const pageContextAbort = errErrorPage._pageContextAbort;
@@ -292,8 +293,8 @@ async function renderPageNominal(pageContext) {
292
293
  (0, utils_js_1.assert)(pageContext === pageContextAfterRender);
293
294
  return pageContextAfterRender;
294
295
  }
295
- async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
296
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, null, httpRequestId);
296
+ async function getPageContextErrorPageInit(pageContextInit, globalContext, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
297
+ const pageContextInitEnhanced = await getPageContextInitEnhancedSSR(pageContextInit, globalContext, null, httpRequestId);
297
298
  (0, utils_js_1.assert)(errNominalPage);
298
299
  const pageContext = {};
299
300
  (0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
@@ -308,9 +309,9 @@ async function getPageContextErrorPageInit(pageContextInit, errNominalPage, page
308
309
  (0, utils_js_1.assert)(pageContext.errorWhileRendering);
309
310
  return pageContext;
310
311
  }
311
- function getPageContextInitEnhancedSSR(pageContextInit, urlRewrite, httpRequestId) {
312
+ async function getPageContextInitEnhancedSSR(pageContextInit, globalContext, urlRewrite, httpRequestId) {
312
313
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
313
- const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, {
314
+ const pageContextInitEnhanced = await (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, globalContext, {
314
315
  ssr: {
315
316
  urlRewrite,
316
317
  urlHandler: _urlHandler,
@@ -341,15 +342,16 @@ function assertIsNotViteRequest(urlPathname, urlOriginal) {
341
342
  return;
342
343
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.code('renderPage(pageContextInit)')} called with ${picocolors_1.default.code(`pageContextInit.urlOriginal===${JSON.stringify(urlOriginal)}`)} which is unexpected because the URL ${picocolors_1.default.bold(urlOriginal)} should have already been handled by the development middleware: make sure the ${picocolors_1.default.cyan('createDevMiddleware()')} middleware is executed *before* the ${picocolors_1.default.cyan('renderPage()')} middleware, see ${picocolors_1.default.underline('https://vike.dev/renderPage')}`);
343
344
  }
344
- function normalizeUrl(pageContextInit, httpRequestId) {
345
- const { trailingSlash, disableUrlNormalization, baseServer } = (0, globalContext_js_1.getGlobalContext)();
345
+ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
346
+ const { baseServer } = (0, resolveBase_js_1.resolveBaseRuntime)(globalContext);
347
+ const { trailingSlash, disableUrlNormalization } = globalContext.config;
346
348
  if (disableUrlNormalization)
347
349
  return null;
348
350
  const { urlOriginal } = pageContextInit;
349
351
  const { isPageContextRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
350
352
  if (isPageContextRequest)
351
353
  return null;
352
- const urlNormalized = (0, utils_js_1.normalizeUrlPathname)(urlOriginal, trailingSlash, baseServer);
354
+ const urlNormalized = (0, utils_js_1.normalizeUrlPathname)(urlOriginal, trailingSlash ?? false, baseServer);
353
355
  if (!urlNormalized)
354
356
  return null;
355
357
  (0, loggerRuntime_js_1.logRuntimeInfo)?.(`URL normalized from ${picocolors_1.default.cyan(urlOriginal)} to ${picocolors_1.default.cyan(urlNormalized)} (https://vike.dev/url-normalization)`, httpRequestId, 'info');
@@ -358,13 +360,13 @@ function normalizeUrl(pageContextInit, httpRequestId) {
358
360
  (0, utils_js_1.objectAssign)(pageContextHttpResponse, { httpResponse });
359
361
  return pageContextHttpResponse;
360
362
  }
361
- function getPermanentRedirect(pageContextInit, httpRequestId) {
362
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
363
- const urlWithoutBase = (0, utils_js_1.removeBaseServer)(pageContextInit.urlOriginal, globalContext.baseServer);
363
+ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestId) {
364
+ const { baseServer } = (0, resolveBase_js_1.resolveBaseRuntime)(globalContext);
365
+ const urlWithoutBase = (0, utils_js_1.removeBaseServer)(pageContextInit.urlOriginal, baseServer);
364
366
  let origin = null;
365
367
  let urlTargetExternal = null;
366
368
  let urlTarget = (0, utils_js_1.modifyUrlPathname)(urlWithoutBase, (urlPathname) => {
367
- const urlTarget = (0, resolveRedirects_js_1.resolveRedirects)(globalContext.vikeConfig.global.config.redirects ?? [], urlPathname);
369
+ const urlTarget = (0, resolveRedirects_js_1.resolveRedirects)(globalContext.config.redirects ?? [], urlPathname);
368
370
  if (urlTarget === null)
369
371
  return null;
370
372
  if (!(0, utils_js_1.isUrl)(urlTarget)) {
@@ -391,8 +393,9 @@ function getPermanentRedirect(pageContextInit, httpRequestId) {
391
393
  }
392
394
  if (normalize(urlTarget) === normalize(urlWithoutBase))
393
395
  return null;
396
+ const { baseServer } = (0, resolveBase_js_1.resolveBaseRuntime)(globalContext);
394
397
  if (!originChanged)
395
- urlTarget = (0, utils_js_1.prependBase)(urlTarget, globalContext.baseServer);
398
+ urlTarget = (0, utils_js_1.prependBase)(urlTarget, baseServer);
396
399
  (0, utils_js_1.assert)(urlTarget !== pageContextInit.urlOriginal);
397
400
  }
398
401
  (0, loggerRuntime_js_1.logRuntimeInfo)?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
@@ -406,13 +409,12 @@ function normalize(url) {
406
409
  }
407
410
  async function handleAbortError(errAbort, pageContextsFromRewrite, pageContextInit,
408
411
  // handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
409
- pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
410
- (0, abort_js_1.logAbortErrorHandled)(errAbort, (0, globalContext_js_1.getGlobalContext)().isProduction, pageContextNominalPageInit);
412
+ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalContext) {
413
+ (0, abort_js_1.logAbortErrorHandled)(errAbort, globalContext.isProduction, pageContextNominalPageInit);
411
414
  const pageContextAbort = errAbort._pageContextAbort;
412
415
  let pageContextSerialized;
413
416
  if (pageContextNominalPageInit.isClientSideNavigation) {
414
417
  if (pageContextAbort.abortStatusCode) {
415
- const globalContext = (0, globalContext_js_1.getGlobalContext)();
416
418
  const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
417
419
  const abortCall = pageContextAbort._abortCall;
418
420
  (0, utils_js_1.assert)(abortCall);
@@ -433,7 +435,7 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
433
435
  return { pageContextReturn };
434
436
  }
435
437
  if (pageContextAbort._urlRewrite) {
436
- const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId, [
438
+ const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, globalContext, httpRequestId, [
437
439
  ...pageContextsFromRewrite,
438
440
  pageContextAbort
439
441
  ]);
@@ -456,8 +458,8 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
456
458
  (0, utils_js_1.assert)(pageContextAbort.abortStatusCode);
457
459
  return { pageContextAbort };
458
460
  }
459
- function assertBaseUrl(pageContextInit) {
460
- const { baseServer } = (0, globalContext_js_1.getGlobalContext)();
461
+ async function assertBaseUrl(pageContextInit, globalContext) {
462
+ const { baseServer } = (0, resolveBase_js_1.resolveBaseRuntime)(globalContext);
461
463
  const { urlOriginal } = pageContextInit;
462
464
  const { urlWithoutPageContextRequestSuffix } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
463
465
  const { hasBaseServer } = (0, utils_js_1.parseUrl)(urlWithoutPageContextRequestSuffix, baseServer);
@@ -35,14 +35,13 @@ __exportStar(require("../../utils/projectInfo.js"), exports);
35
35
  __exportStar(require("../../utils/isArray.js"), exports);
36
36
  __exportStar(require("../../utils/isObject.js"), exports);
37
37
  __exportStar(require("../../utils/objectAssign.js"), exports);
38
+ __exportStar(require("../../utils/objectAssignSafe.js"), exports);
38
39
  __exportStar(require("../../utils/objectReplace.js"), exports);
39
40
  __exportStar(require("../../utils/PromiseType.js"), exports);
40
41
  __exportStar(require("../../utils/compareString.js"), exports);
41
42
  __exportStar(require("../../utils/isObjectWithKeys.js"), exports);
42
43
  __exportStar(require("../../utils/stringifyStringArray.js"), exports);
43
44
  __exportStar(require("../../utils/unique.js"), exports);
44
- __exportStar(require("../../utils/filesystemPathHandling.js"), exports);
45
- __exportStar(require("../../utils/getOutDirs.js"), exports);
46
45
  __exportStar(require("../../utils/capitalizeFirstLetter.js"), exports);
47
46
  __exportStar(require("../../utils/debugGlob.js"), exports);
48
47
  __exportStar(require("../../utils/isSameErrorMessage.js"), exports);
@@ -61,7 +60,7 @@ __exportStar(require("../../utils/objectEntries.js"), exports);
61
60
  __exportStar(require("../../utils/objectFromEntries.js"), exports);
62
61
  __exportStar(require("../../utils/getFileExtension.js"), exports);
63
62
  __exportStar(require("../../utils/assertSetup.js"), exports);
64
- __exportStar(require("../../utils/path-shim.js"), exports);
63
+ __exportStar(require("../../utils/path.js"), exports);
65
64
  __exportStar(require("../../utils/isHtml.js"), exports);
66
65
  __exportStar(require("../../utils/warnIfErrorIsNotObject.js"), exports);
67
66
  __exportStar(require("../../utils/stripAnsi.js"), exports);
@@ -76,3 +75,4 @@ __exportStar(require("../../utils/isVikeReactApp.js"), exports);
76
75
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
77
76
  __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
78
77
  __exportStar(require("../../utils/genPromise.js"), exports);
78
+ __exportStar(require("../../utils/makePublicCopy.js"), exports);
@@ -3,13 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createDevMiddleware = createDevMiddleware;
4
4
  const vite_1 = require("vite");
5
5
  const prepareViteApiCall_js_1 = require("../api/prepareViteApiCall.js");
6
+ const globalContext_js_1 = require("../runtime/globalContext.js");
6
7
  /*
7
8
  * Create server middleware for development with HMR and lazy-transpiling.
8
9
  *
9
10
  * https://vike.dev/createDevMiddleware
10
11
  */
11
12
  async function createDevMiddleware(options = {}) {
12
- const viteConfig = {
13
+ (0, globalContext_js_1.setGlobalContext_isProduction)(false);
14
+ const viteConfigFromOptions = {
13
15
  ...options.viteConfig,
14
16
  server: {
15
17
  ...options.viteConfig?.server,
@@ -17,8 +19,8 @@ async function createDevMiddleware(options = {}) {
17
19
  }
18
20
  };
19
21
  if (options.root)
20
- viteConfig.root = options.root;
21
- const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(viteConfig, 'dev');
22
+ viteConfigFromOptions.root = options.root;
23
+ const { viteConfigEnhanced } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(viteConfigFromOptions, 'dev');
22
24
  const server = await (0, vite_1.createServer)(viteConfigEnhanced);
23
25
  const devMiddleware = server.middlewares;
24
26
  return { devMiddleware, viteServer: server, viteConfig: server.config };