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
@@ -3,20 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setGlobalContext_buildEntry = void 0;
4
4
  exports.route = route;
5
5
  exports.getPagesAndRoutes = getPagesAndRoutes;
6
- exports.getMiddlewares = getMiddlewares;
7
- // Internals needed by Vike
6
+ // Needed by Vike
8
7
  var globalContext_js_1 = require("../node/runtime/globalContext.js");
9
8
  Object.defineProperty(exports, "setGlobalContext_buildEntry", { enumerable: true, get: function () { return globalContext_js_1.setGlobalContext_buildEntry; } });
10
9
  const index_js_1 = require("../shared/route/index.js");
11
- const getPageFiles_js_1 = require("../shared/getPageFiles/getPageFiles.js");
12
10
  const globalContext_js_2 = require("../node/runtime/globalContext.js");
13
11
  const assertSetup_js_1 = require("../utils/assertSetup.js");
14
12
  /**
15
13
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
14
+ *
15
+ * TODO/eventually: remove
16
16
  */
17
17
  async function getPagesAndRoutes() {
18
18
  (0, assertSetup_js_1.setNodeEnvProduction)();
19
- const globalContext = (0, globalContext_js_2.getGlobalContext)();
19
+ await (0, globalContext_js_2.initGlobalContext_getPagesAndRoutes)();
20
+ const globalContext = await (0, globalContext_js_2.getGlobalContextInternal)();
20
21
  const {
21
22
  //
22
23
  pageRoutes, pageFilesAll, pageConfigs, allPageIds } = globalContext;
@@ -27,25 +28,6 @@ async function getPagesAndRoutes() {
27
28
  allPageIds
28
29
  };
29
30
  }
30
- // TODO/eventually:
31
- // - Remove the need for `isProduction` after Vike's CLI is implemented
32
- // - Remove it in favor of https://vike.dev/getGlobalContext
33
- async function getMiddlewares() {
34
- const isProduction = process.env.NODE_ENV === 'production';
35
- const { pageConfigs } = await getPageFilesAllSafe(isProduction);
36
- const middlewares = pageConfigs[0].configValues.middleware.value.flat(Infinity);
37
- return middlewares;
38
- }
39
- // TODO/eventually:
40
- // - Make it cleaner once the internal refactoring about global configs is done.
41
- // - Remove it in favor of https://vike.dev/getGlobalContext
42
- // Demo usage: https://github.com/vikejs/vike/pull/1823
43
- async function getPageFilesAllSafe(isProduction) {
44
- await (0, globalContext_js_2.initGlobalContext_getGlobalContextAsync)(isProduction);
45
- const globalContext = (0, globalContext_js_2.getGlobalContext)();
46
- const pageFilesAll = await (0, getPageFiles_js_1.getPageFilesAll)(false, globalContext.isProduction);
47
- return pageFilesAll;
48
- }
49
31
  async function route(pageContext) {
50
32
  const pageContextFromRoute = await (0, index_js_1.route)(pageContext);
51
33
  // Old interface
@@ -32,41 +32,50 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
39
  exports.build = build;
37
40
  const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
38
41
  const vite_1 = require("vite");
39
- const isPrerenderAutoRunEnabled_js_1 = require("../prerender/isPrerenderAutoRunEnabled.js");
42
+ const assert_1 = __importDefault(require("assert"));
43
+ const context_js_1 = require("../cli/context.js");
44
+ const context_js_2 = require("../prerender/context.js");
45
+ const utils_js_1 = require("./utils.js");
40
46
  /**
41
47
  * Programmatically trigger `$ vike build`
42
48
  *
43
49
  * https://vike.dev/api#build
44
50
  */
45
51
  async function build(options = {}) {
46
- const { viteConfigEnhanced, vikeConfigGlobal } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
47
- // Build client-side
48
- const outputClient = await (0, vite_1.build)(viteConfigEnhanced);
49
- // Build server-side
50
- const outputServer = await (0, vite_1.build)(setSSR(viteConfigEnhanced));
51
- // Pre-render
52
- if ((0, isPrerenderAutoRunEnabled_js_1.isPrerenderAutoRunEnabled)(vikeConfigGlobal)) {
53
- const { runPrerenderFromAutoRun } = await Promise.resolve().then(() => __importStar(require('../prerender/runPrerender.js')));
54
- await runPrerenderFromAutoRun(viteConfigEnhanced);
52
+ const { viteConfigEnhanced, vikeConfig } = await (0, prepareViteApiCall_js_1.prepareViteApiCall)(options.viteConfig, 'build');
53
+ // Pass it to autoFullBuild()
54
+ if (viteConfigEnhanced)
55
+ viteConfigEnhanced._viteConfigEnhanced = viteConfigEnhanced;
56
+ if (vikeConfig.global.config.viteEnvironmentAPI) {
57
+ (0, utils_js_1.assertVersion)('Vite', vite_1.version, '6.0.0');
58
+ const { createBuilder } = await Promise.resolve().then(() => __importStar(require('vite')));
59
+ const builder = await createBuilder(viteConfigEnhanced);
60
+ await builder.buildApp();
61
+ }
62
+ else {
63
+ // This buildVite() call does everything:
64
+ // 1. Build client-side
65
+ // 2. Build server-side
66
+ // > See: https://github.com/vikejs/vike/blob/c6c7533a56b3a16fc43ed644fc5c10c02d0ff375/vike/node/plugin/plugins/autoFullBuild.ts#L90
67
+ // 3. Pre-render (if enabled)
68
+ // > See: https://github.com/vikejs/vike/blob/c6c7533a56b3a16fc43ed644fc5c10c02d0ff375/vike/node/plugin/plugins/autoFullBuild.ts#L98
69
+ // > We purposely don't start the pre-rendering in this `build()` function but in a Rollup hook instead.
70
+ // > Rationale: https://github.com/vikejs/vike/issues/2123
71
+ await (0, vite_1.build)(viteConfigEnhanced);
72
+ // After pre-rendering, when using the Vike CLI, the process is forcefully exited at the end of the buildVite() call above.
73
+ if ((0, context_js_1.isVikeCli)() && (0, context_js_2.isPrerendering)())
74
+ (0, assert_1.default)(false);
55
75
  }
56
76
  return {
57
- /* We don't return `viteConfig` because `viteConfigEnhanced` is `InlineConfig` not `ResolvedConfig`
58
- viteConfig: viteConfigEnhanced,
59
- */
60
- rollupOutputClient: outputClient,
61
- rollupOutputServer: outputServer
62
- };
63
- }
64
- function setSSR(viteConfig) {
65
- return {
66
- ...viteConfig,
67
- build: {
68
- ...viteConfig?.build,
69
- ssr: true
70
- }
77
+ /* We don't return `viteConfig` because `viteConfigEnhanced` is `InlineConfig` not `ResolvedConfig`
78
+ viteConfig: viteConfigEnhanced,
79
+ */
71
80
  };
72
81
  }
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setOperation = setOperation;
4
- exports.clearOperation = clearOperation;
5
3
  exports.isVikeCliOrApi = isVikeCliOrApi;
4
+ exports.setContextApiOperation = setContextApiOperation;
5
+ exports.clearContextApiOperation = clearContextApiOperation;
6
6
  const utils_js_1 = require("./utils.js");
7
- const globalObject = (0, utils_js_1.getGlobalObject)('context.ts', {
8
- apiOperation: undefined
9
- });
10
- function getOperation() {
7
+ const globalObject = (0, utils_js_1.getGlobalObject)('api/context.ts', {});
8
+ function getApiOperation() {
11
9
  (0, utils_js_1.assert)(globalObject.apiOperation);
12
10
  return globalObject.apiOperation;
13
11
  }
@@ -15,10 +13,10 @@ function isVikeCliOrApi() {
15
13
  // The CLI uses the API
16
14
  return !!globalObject.apiOperation;
17
15
  }
18
- function setOperation(operation) {
16
+ function setContextApiOperation(operation) {
19
17
  (0, utils_js_1.assert)(!globalObject.apiOperation);
20
18
  globalObject.apiOperation = operation;
21
19
  }
22
- function clearOperation() {
20
+ function clearContextApiOperation() {
23
21
  globalObject.apiOperation = undefined;
24
22
  }
@@ -49,33 +49,34 @@ const utils_js_1 = require("./utils.js");
49
49
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
50
50
  const globalContext_js_1 = require("../runtime/globalContext.js");
51
51
  const globalObject = (0, utils_js_1.getGlobalObject)('prepareViteApiCall.ts', {});
52
- async function prepareViteApiCall(viteConfig, operation) {
52
+ async function prepareViteApiCall(viteConfigFromOptions, operation) {
53
53
  clear();
54
- (0, context_js_1.setOperation)(operation);
55
- return enhanceViteConfig(viteConfig, operation);
54
+ (0, context_js_1.setContextApiOperation)(operation);
55
+ return enhanceViteConfig(viteConfigFromOptions, operation);
56
56
  }
57
57
  // For subsequent API calls, e.g. calling prerender() after build()
58
58
  function clear() {
59
- (0, context_js_1.clearOperation)();
59
+ (0, context_js_1.clearContextApiOperation)();
60
60
  (0, globalContext_js_1.clearGlobalContext)();
61
61
  }
62
- async function enhanceViteConfig(viteConfig, operation) {
63
- const viteInfo = await getInfoFromVite(viteConfig, operation);
62
+ async function enhanceViteConfig(viteConfigFromOptions, operation) {
63
+ const viteInfo = await getInfoFromVite(viteConfigFromOptions, operation);
64
64
  await assertViteRoot2(viteInfo.root, viteInfo.viteConfigEnhanced, operation);
65
65
  const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig2)(viteInfo.root, operation === 'dev', viteInfo.vikeVitePluginOptions);
66
66
  const viteConfigEnhanced = addViteSettingsSetByVikeConfig(viteInfo.viteConfigEnhanced, vikeConfig);
67
67
  return {
68
- viteConfigEnhanced,
69
- vikeConfigGlobal: vikeConfig.vikeConfigGlobal
68
+ vikeConfig,
69
+ viteConfigEnhanced
70
70
  };
71
71
  }
72
72
  function addViteSettingsSetByVikeConfig(viteConfigEnhanced, vikeConfig) {
73
- const viteConfigs = vikeConfig.global.from.configsCumulative.vite;
73
+ const viteConfigs = vikeConfig.global._from.configsCumulative.vite;
74
74
  if (!viteConfigs)
75
75
  return viteConfigEnhanced;
76
76
  viteConfigs.values.forEach((v) => {
77
77
  (0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(v.value), `${v.definedAt} should be an object`);
78
78
  viteConfigEnhanced = (0, vite_1.mergeConfig)(viteConfigEnhanced ?? {}, v.value);
79
+ (0, utils_js_1.assertUsage)(findVikeVitePlugin(v.value), "Using the +vite setting to add Vike's Vite plugin is forbidden");
79
80
  });
80
81
  return viteConfigEnhanced;
81
82
  }
@@ -85,13 +86,14 @@ async function getViteRoot(operation) {
85
86
  (0, utils_js_1.assert)(globalObject.root);
86
87
  return globalObject.root;
87
88
  }
88
- async function getInfoFromVite(viteConfig, operation) {
89
- const viteConfigFromFile = await loadViteConfigFile(viteConfig, operation);
90
- const root = normalizeViteRoot(viteConfigFromFile?.root ?? viteConfig?.root ?? process.cwd());
89
+ async function getInfoFromVite(viteConfigFromOptions, operation) {
90
+ const viteConfigFromUserViteFile = await loadViteConfigFile(viteConfigFromOptions, operation);
91
+ const root = normalizeViteRoot(viteConfigFromUserViteFile?.root ?? viteConfigFromOptions?.root ?? process.cwd());
91
92
  globalObject.root = root;
92
93
  let vikeVitePluginOptions;
93
- let viteConfigEnhanced = viteConfig;
94
- const found = findVikeVitePlugin([...(viteConfig?.plugins ?? []), ...(viteConfigFromFile?.plugins ?? [])]);
94
+ let viteConfigEnhanced = viteConfigFromOptions;
95
+ // If Vike's Vite plugin is found in both viteConfigFromOptions and viteConfigFromUserViteFile then Vike will later throw an error
96
+ const found = findVikeVitePlugin(viteConfigFromOptions) || findVikeVitePlugin(viteConfigFromUserViteFile);
95
97
  if (found) {
96
98
  vikeVitePluginOptions = found.vikeVitePluginOptions;
97
99
  }
@@ -100,20 +102,20 @@ async function getInfoFromVite(viteConfig, operation) {
100
102
  // Using a dynamic import because the script calling the Vike API may not live in the same place as vite.config.js, thus vike/plugin may resolved to two different node_modules/vike directories.
101
103
  const { plugin: vikePlugin } = await Promise.resolve().then(() => __importStar(require('../plugin/index.js')));
102
104
  viteConfigEnhanced = {
103
- ...viteConfig,
104
- plugins: [...(viteConfig?.plugins ?? []), vikePlugin()]
105
+ ...viteConfigFromOptions,
106
+ plugins: [...(viteConfigFromOptions?.plugins ?? []), vikePlugin()]
105
107
  };
106
- const res = findVikeVitePlugin(viteConfigEnhanced.plugins);
108
+ const res = findVikeVitePlugin(viteConfigEnhanced);
107
109
  (0, utils_js_1.assert)(res);
108
110
  vikeVitePluginOptions = res.vikeVitePluginOptions;
109
111
  }
110
112
  (0, utils_js_1.assert)(vikeVitePluginOptions);
111
113
  return { root, vikeVitePluginOptions, viteConfigEnhanced };
112
114
  }
113
- function findVikeVitePlugin(plugins) {
115
+ function findVikeVitePlugin(viteConfig) {
114
116
  let vikeVitePluginOptions;
115
117
  let vikeVitePuginFound = false;
116
- plugins.forEach((p) => {
118
+ viteConfig?.plugins?.forEach((p) => {
117
119
  if (p && '__vikeVitePluginOptions' in p) {
118
120
  vikeVitePuginFound = true;
119
121
  const options = p.__vikeVitePluginOptions;
@@ -126,8 +128,8 @@ function findVikeVitePlugin(plugins) {
126
128
  return { vikeVitePluginOptions };
127
129
  }
128
130
  // Copied from https://github.com/vitejs/vite/blob/4f5845a3182fc950eb9cd76d7161698383113b18/packages/vite/src/node/config.ts#L961-L1005
129
- async function loadViteConfigFile(viteConfig, operation) {
130
- const [inlineConfig, command, defaultMode, _defaultNodeEnv, isPreview] = getResolveConfigArgs(viteConfig, operation);
131
+ async function loadViteConfigFile(viteConfigFromOptions, operation) {
132
+ const [inlineConfig, command, defaultMode, _defaultNodeEnv, isPreview] = getResolveConfigArgs(viteConfigFromOptions, operation);
131
133
  let config = inlineConfig;
132
134
  let mode = inlineConfig.mode || defaultMode;
133
135
  const configEnv = {
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.prerender = prerender;
4
4
  const runPrerender_js_1 = require("../prerender/runPrerender.js");
5
5
  const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
6
+ // TODO/soon use importServerProductionIndex()
6
7
  /**
7
8
  * Programmatically trigger `$ vike prerender`
8
9
  *
@@ -20,5 +20,6 @@ const onLoad_js_1 = require("./onLoad.js");
20
20
  (0, onLoad_js_1.onLoad)();
21
21
  __exportStar(require("../../utils/assert.js"), exports);
22
22
  __exportStar(require("../../utils/getGlobalObject.js"), exports);
23
- __exportStar(require("../../utils/filesystemPathHandling.js"), exports);
23
+ __exportStar(require("../../utils/path.js"), exports);
24
24
  __exportStar(require("../../utils/isObject.js"), exports);
25
+ __exportStar(require("../../utils/assertVersion.js"), exports);
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isVikeCli = isVikeCli;
4
+ exports.setContextCliCommand = setContextCliCommand;
5
+ const utils_js_1 = require("./utils.js");
6
+ const globalObject = (0, utils_js_1.getGlobalObject)('cli/context.ts', {});
7
+ function getCliCommand() {
8
+ return globalObject.cliCommand;
9
+ }
10
+ function isVikeCli() {
11
+ return !!globalObject.cliCommand;
12
+ }
13
+ function setContextCliCommand(command) {
14
+ (0, utils_js_1.assert)(!globalObject.cliCommand);
15
+ globalObject.cliCommand = command;
16
+ }
@@ -40,9 +40,11 @@ const utils_js_1 = require("./utils.js");
40
40
  const index_js_1 = require("../api/index.js");
41
41
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
42
42
  const parseCli_js_1 = require("./parseCli.js");
43
+ const context_js_1 = require("./context.js");
43
44
  cli();
44
45
  async function cli() {
45
46
  const { command } = (0, parseCli_js_1.parseCli)();
47
+ (0, context_js_1.setContextCliCommand)(command);
46
48
  if (command === 'dev') {
47
49
  await cmdDev();
48
50
  }
@@ -21,3 +21,4 @@ const onLoad_js_1 = require("./onLoad.js");
21
21
  __exportStar(require("../../utils/assert.js"), exports);
22
22
  __exportStar(require("../../utils/projectInfo.js"), exports);
23
23
  __exportStar(require("../../utils/includes.js"), exports);
24
+ __exportStar(require("../../utils/getGlobalObject.js"), exports);
@@ -9,7 +9,6 @@ exports.ssr = plugin;
9
9
  exports.default = plugin;
10
10
  var utils_js_1 = require("./utils.js");
11
11
  Object.defineProperty(exports, "version", { enumerable: true, get: function () { return utils_js_1.PROJECT_VERSION; } });
12
- const vite_1 = require("vite");
13
12
  const utils_js_2 = require("./utils.js");
14
13
  const buildConfig_js_1 = require("./plugins/buildConfig.js");
15
14
  const previewConfig_js_1 = require("./plugins/previewConfig.js");
@@ -30,11 +29,11 @@ const envVars_js_1 = require("./plugins/envVars.js");
30
29
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
31
30
  const fileEnv_js_1 = require("./plugins/fileEnv.js");
32
31
  const getPageAssets_js_1 = require("../runtime/renderPage/getPageAssets.js");
33
- const resolveClientEntriesDev_js_1 = require("./resolveClientEntriesDev.js");
32
+ const resolveClientEntriesDev_js_1 = require("./shared/resolveClientEntriesDev.js");
34
33
  const workaroundCssModuleHmr_js_1 = require("./plugins/workaroundCssModuleHmr.js");
35
34
  const workaroundVite6HmrRegression_js_1 = require("./plugins/workaroundVite6HmrRegression.js");
36
- (0, utils_js_2.markSetup_vikeVitePlugin)();
37
- assertViteVersion();
35
+ const buildApp_js_1 = require("./plugins/buildApp.js");
36
+ // We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
38
37
  (0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
39
38
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
40
39
  function plugin(vikeVitePluginOptions = {}) {
@@ -43,6 +42,7 @@ function plugin(vikeVitePluginOptions = {}) {
43
42
  (0, index_js_2.importUserCode)(),
44
43
  ...(0, index_js_1.devConfig)(),
45
44
  ...(0, buildConfig_js_1.buildConfig)(),
45
+ ...(0, buildApp_js_1.buildApp)(),
46
46
  (0, previewConfig_js_1.previewConfig)(),
47
47
  ...(0, autoFullBuild_js_1.autoFullBuild)(),
48
48
  (0, packageJsonFile_js_1.packageJsonFile)(),
@@ -69,10 +69,6 @@ Object.defineProperty(plugin, 'apply', {
69
69
  (0, utils_js_2.assertUsage)(false, `Add ${picocolors_1.default.cyan('vike()')} instead of ${picocolors_1.default.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
70
70
  }
71
71
  });
72
- // package.json#peerDependencies isn't enough as users can ignore it
73
- function assertViteVersion() {
74
- (0, utils_js_2.assertVersion)('Vite', vite_1.version, '5.1.0');
75
- }
76
72
  // Ensures following works: `const vike = require('vike/plugin')` / `import vike from 'vike/plugin'`
77
73
  // - It needs to live at the end of this file, in order to ensure we do it after all assignments to `exports`.
78
74
  try {
@@ -4,9 +4,14 @@ exports.onLoad = onLoad;
4
4
  const assertIsNotBrowser_js_1 = require("../../utils/assertIsNotBrowser.js");
5
5
  const assertSetup_js_1 = require("../../utils/assertSetup.js");
6
6
  const assertNodeVersion_js_1 = require("../../utils/assertNodeVersion.js");
7
+ const assertVersion_js_1 = require("../../utils/assertVersion.js");
8
+ const vite_1 = require("vite");
7
9
  function onLoad() {
10
+ (0, assertSetup_js_1.markSetup_vikeVitePlugin)();
8
11
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
9
12
  (0, assertNodeVersion_js_1.assertNodeVersion)();
10
- // Ensure we don't bloat the server runtime with heavy plugin dependencies such as esbuild
13
+ // package.json#peerDependencies isn't enough as users often ignore it
14
+ (0, assertVersion_js_1.assertVersion)('Vite', vite_1.version, '5.1.0');
15
+ // Ensure we don't bloat the server runtime with heavy dependencies such Vite and esbuild
11
16
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
12
17
  }
@@ -5,29 +5,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.autoFullBuild = autoFullBuild;
8
+ const getFullBuildInlineConfig_js_1 = require("../shared/getFullBuildInlineConfig.js");
8
9
  const vite_1 = require("vite");
9
10
  const utils_js_1 = require("../utils.js");
10
11
  const runPrerender_js_1 = require("../../prerender/runPrerender.js");
11
- const isPrerenderAutoRunEnabled_js_1 = require("../../prerender/isPrerenderAutoRunEnabled.js");
12
+ const context_js_1 = require("../../prerender/context.js");
12
13
  const isViteCliCall_js_1 = require("../shared/isViteCliCall.js");
13
14
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
15
  const logErrorHint_js_1 = require("../../runtime/renderPage/logErrorHint.js");
15
16
  const buildConfig_js_1 = require("./buildConfig.js");
16
17
  const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
18
+ const context_js_2 = require("../../api/context.js");
17
19
  let forceExit = false;
18
20
  function autoFullBuild() {
19
21
  let config;
20
- let vikeConfigGlobal;
22
+ let vikeConfig;
21
23
  return [
22
24
  {
23
25
  name: 'vike:autoFullBuild',
24
26
  apply: 'build',
25
27
  enforce: 'pre',
26
28
  async configResolved(config_) {
27
- const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config_);
28
- vikeConfigGlobal = vikeConfig.vikeConfigGlobal;
29
+ vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config_);
29
30
  config = config_;
30
- abortViteBuildSsr(vikeConfigGlobal);
31
+ abortViteBuildSsr(vikeConfig);
31
32
  },
32
33
  writeBundle: {
33
34
  /* We can't use this because it breaks Vite's logging. TODO: try again with latest Vite version.
@@ -36,7 +37,7 @@ function autoFullBuild() {
36
37
  */
37
38
  async handler(_options, bundle) {
38
39
  try {
39
- await triggerFullBuild(config, vikeConfigGlobal, bundle);
40
+ await triggerFullBuild(config, vikeConfig, bundle);
40
41
  }
41
42
  catch (err) {
42
43
  // Avoid Rollup prefixing the error with [vike:autoFullBuild], for example see https://github.com/vikejs/vike/issues/472#issuecomment-1276274203
@@ -56,16 +57,17 @@ function autoFullBuild() {
56
57
  handler() {
57
58
  if (forceExit) {
58
59
  (0, runPrerender_js_1.runPrerender_forceExit)();
60
+ (0, utils_js_1.assert)(false);
59
61
  }
60
62
  }
61
63
  }
62
64
  }
63
65
  ];
64
66
  }
65
- async function triggerFullBuild(config, vikeConfigGlobal, bundle) {
67
+ async function triggerFullBuild(config, vikeConfig, bundle) {
66
68
  if (config.build.ssr)
67
69
  return; // already triggered
68
- if (isDisabled(vikeConfigGlobal))
70
+ if (isDisabled(vikeConfig))
69
71
  return;
70
72
  // Workaround for @vitejs/plugin-legacy
71
73
  // - The legacy plugin triggers its own Rollup build for the client-side.
@@ -73,44 +75,43 @@ async function triggerFullBuild(config, vikeConfigGlobal, bundle) {
73
75
  // - Issue & reproduction: https://github.com/vikejs/vike/issues/1154#issuecomment-1965954636
74
76
  if (!bundle[buildConfig_js_1.manifestTempFile])
75
77
  return;
76
- const configFromCli = !(0, isViteCliCall_js_1.isViteCliCall)() ? null : (0, isViteCliCall_js_1.getViteConfigFromCli)();
77
- const configInline = {
78
- ...configFromCli,
79
- configFile: configFromCli?.configFile || config.configFile,
80
- root: config.root,
81
- build: {
82
- ...configFromCli?.build
83
- }
84
- };
78
+ const configInline = (0, getFullBuildInlineConfig_js_1.getFullBuildInlineConfig)(config);
85
79
  try {
86
- await (0, vite_1.build)({
87
- ...configInline,
88
- build: {
89
- ...configInline.build,
90
- ssr: true
91
- }
92
- });
80
+ await (0, vite_1.build)(setSSR(configInline));
93
81
  }
94
82
  catch (err) {
95
83
  console.error(err);
96
84
  (0, logErrorHint_js_1.logErrorHint)(err);
97
85
  process.exit(1);
98
86
  }
99
- if ((0, isPrerenderAutoRunEnabled_js_1.isPrerenderAutoRunEnabled)(vikeConfigGlobal)) {
100
- await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline);
101
- forceExit = true;
87
+ if ((0, context_js_1.isPrerenderAutoRunEnabled)(vikeConfig)) {
88
+ const res = await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline, config);
89
+ forceExit = res.forceExit;
102
90
  }
103
91
  }
104
- function abortViteBuildSsr(vikeConfigGlobal) {
105
- if (vikeConfigGlobal.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
92
+ function setSSR(configInline) {
93
+ return {
94
+ ...configInline,
95
+ build: {
96
+ ...configInline.build,
97
+ ssr: true
98
+ }
99
+ };
100
+ }
101
+ function abortViteBuildSsr(vikeConfig) {
102
+ if (vikeConfig.global.config.disableAutoFullBuild !== true && (0, isViteCliCall_js_1.isViteCliCall)() && (0, isViteCliCall_js_1.getViteConfigFromCli)()?.build.ssr) {
106
103
  (0, utils_js_1.assertWarning)(false, `The CLI call ${picocolors_1.default.cyan('$ vite build --ssr')} is superfluous since ${picocolors_1.default.cyan('$ vite build')} also builds the server-side. If you want two separate build steps then use https://vike.dev/disableAutoFullBuild or use Vite's ${picocolors_1.default.cyan('build()')} API.`, { onlyOnce: true });
107
104
  process.exit(0);
108
105
  }
109
106
  }
110
- function isDisabled(vikeConfigGlobal) {
111
- const { disableAutoFullBuild } = vikeConfigGlobal;
112
- if (disableAutoFullBuild === null || disableAutoFullBuild === 'prerender') {
113
- return !(0, isViteCliCall_js_1.isViteCliCall)();
107
+ function isDisabled(vikeConfig) {
108
+ const { disableAutoFullBuild, viteEnvironmentAPI } = vikeConfig.global.config;
109
+ if (viteEnvironmentAPI) {
110
+ return true;
111
+ }
112
+ if (disableAutoFullBuild === undefined || disableAutoFullBuild === 'prerender') {
113
+ const isViteApi = !(0, isViteCliCall_js_1.isViteCliCall)() && !(0, context_js_2.isVikeCliOrApi)();
114
+ return isViteApi;
114
115
  }
115
116
  else {
116
117
  return disableAutoFullBuild;
@@ -13,7 +13,7 @@ function baseUrls() {
13
13
  const isDev = config._isDev;
14
14
  (0, utils_js_1.assert)(typeof isDev === 'boolean');
15
15
  const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
16
- basesResolved = (0, resolveBase_js_1.resolveBase)(baseViteOriginal, config.vike.vikeConfigGlobal.baseServer, config.vike.vikeConfigGlobal.baseAssets);
16
+ basesResolved = (0, resolveBase_js_1.resolveBase)(baseViteOriginal, config.vike.config.baseServer ?? null, config.vike.config.baseAssets ?? null);
17
17
  // We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
18
18
  process.env.BASE_SERVER = basesResolved.baseServer;
19
19
  process.env.BASE_ASSETS = basesResolved.baseAssets;
@@ -29,7 +29,7 @@ function baseUrls() {
29
29
  },
30
30
  async configResolved(config) {
31
31
  const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
32
- const basesResolved2 = (0, resolveBase_js_1.resolveBaseFromResolvedConfig)(vikeConfig.vikeConfigGlobal.baseServer, vikeConfig.vikeConfigGlobal.baseAssets, config);
32
+ const basesResolved2 = (0, resolveBase_js_1.resolveBaseFromResolvedConfig)(vikeConfig.global.config.baseServer ?? null, vikeConfig.global.config.baseAssets ?? null, config);
33
33
  (0, utils_js_1.assert)(basesResolved2.baseServer === basesResolved.baseServer);
34
34
  (0, utils_js_1.assert)(basesResolved2.baseAssets === basesResolved.baseAssets);
35
35
  /* In dev, Vite seems buggy around setting vite.config.js#base to an absolute URL (e.g. http://localhost:8080/cdn/)
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildApp = buildApp;
4
+ const runPrerender_js_1 = require("../../prerender/runPrerender.js");
5
+ const context_js_1 = require("../../prerender/context.js");
6
+ const getOutDirs_js_1 = require("../shared/getOutDirs.js");
7
+ const utils_js_1 = require("../utils.js");
8
+ const getVikeConfig_js_1 = require("./importUserCode/v1-design/getVikeConfig.js");
9
+ const getFullBuildInlineConfig_js_1 = require("../shared/getFullBuildInlineConfig.js");
10
+ function buildApp() {
11
+ let config;
12
+ return [
13
+ {
14
+ name: 'vike:buildApp',
15
+ apply: 'build',
16
+ config(config) {
17
+ if (!config.vike.config.viteEnvironmentAPI)
18
+ return;
19
+ return {
20
+ builder: {
21
+ buildApp: async (builder) => {
22
+ (0, utils_js_1.assert)(builder.environments.client);
23
+ (0, utils_js_1.assert)(builder.environments.ssr);
24
+ await builder.build(builder.environments.client);
25
+ await builder.build(builder.environments.ssr);
26
+ }
27
+ },
28
+ environments: {
29
+ ssr: {
30
+ consumer: 'server',
31
+ build: {
32
+ outDir: (0, getOutDirs_js_1.resolveOutDir)(config, true),
33
+ ssr: true
34
+ }
35
+ },
36
+ client: {
37
+ consumer: 'client',
38
+ build: {
39
+ copyPublicDir: true,
40
+ ssr: false
41
+ }
42
+ }
43
+ }
44
+ };
45
+ }
46
+ },
47
+ {
48
+ name: 'vike:buildApp:prerender',
49
+ apply: 'build',
50
+ enforce: 'pre',
51
+ applyToEnvironment(env) {
52
+ return env.name === 'ssr';
53
+ },
54
+ configResolved(_config) {
55
+ config = _config;
56
+ },
57
+ async writeBundle() {
58
+ if (!config.vike.config.viteEnvironmentAPI)
59
+ return;
60
+ const vikeConfig = await (0, getVikeConfig_js_1.getVikeConfig)(config);
61
+ if (!(0, context_js_1.isPrerenderAutoRunEnabled)(vikeConfig))
62
+ return;
63
+ const configInline = (0, getFullBuildInlineConfig_js_1.getFullBuildInlineConfig)(config);
64
+ const { forceExit } = await (0, runPrerender_js_1.runPrerenderFromAutoRun)(configInline, config);
65
+ if (forceExit) {
66
+ (0, runPrerender_js_1.runPrerender_forceExit)();
67
+ (0, utils_js_1.assert)(false);
68
+ }
69
+ }
70
+ }
71
+ ];
72
+ }