vike 0.4.239 → 0.4.240

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 (465) hide show
  1. package/dist/esm/client/index.d.ts +1 -1
  2. package/dist/esm/client/index.js +1 -1
  3. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  4. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  5. package/dist/esm/client/runtime-client-routing/entry.js +5 -3
  6. package/dist/esm/client/runtime-client-routing/getBaseServer.js +0 -1
  7. package/dist/esm/client/runtime-client-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
  8. package/dist/esm/client/runtime-client-routing/{globalContext.js → getGlobalContextClientInternal.js} +8 -4
  9. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +6 -6
  10. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.d.ts +1 -1
  11. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +4 -4
  12. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +15 -4
  13. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  14. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  15. package/dist/esm/client/runtime-server-routing/entry.js +5 -3
  16. package/dist/esm/client/runtime-server-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
  17. package/dist/esm/client/runtime-server-routing/getGlobalContextClientInternal.js +6 -0
  18. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +1 -1
  19. package/dist/esm/client/shared/{createGetGlobalContextClient.d.ts → getGlobalContextClientInternalShared.d.ts} +11 -8
  20. package/dist/esm/client/shared/getGlobalContextClientInternalShared.js +66 -0
  21. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -3
  22. package/dist/esm/node/prerender/runPrerender.d.ts +4 -2
  23. package/dist/esm/node/prerender/runPrerender.js +5 -2
  24. package/dist/esm/node/runtime/globalContext.d.ts +15 -2
  25. package/dist/esm/node/runtime/globalContext.js +46 -32
  26. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +4 -2
  27. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +4 -2
  28. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +8 -4
  29. package/dist/esm/node/runtime/renderPage.d.ts +4 -2
  30. package/dist/esm/node/vite/index.js +41 -17
  31. package/dist/esm/node/vite/onLoad.js +1 -1
  32. package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.d.ts +4 -0
  33. package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.js +21 -6
  34. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.js +24 -20
  35. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.js +20 -6
  36. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistFileNames.d.ts +1 -1
  37. package/dist/esm/node/vite/plugins/build/pluginDistFileNames.js +253 -0
  38. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistPackageJsonFile.d.ts +1 -1
  39. package/dist/esm/node/vite/plugins/build/pluginDistPackageJsonFile.js +40 -0
  40. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginModuleBanner.d.ts +1 -1
  41. package/dist/esm/node/vite/plugins/build/pluginModuleBanner.js +49 -0
  42. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.js +4 -2
  43. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.d.ts +1 -1
  44. package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.js +27 -23
  45. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.d.ts +7 -0
  46. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.js +47 -0
  47. package/dist/esm/node/vite/plugins/{pluginNonRunnableDev.d.ts → non-runnable-dev/pluginViteRPC.d.ts} +3 -7
  48. package/dist/esm/node/vite/plugins/non-runnable-dev/pluginViteRPC.js +30 -0
  49. package/dist/esm/node/vite/plugins/pluginBaseUrls.d.ts +1 -1
  50. package/dist/esm/node/vite/plugins/pluginBaseUrls.js +39 -33
  51. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -28
  52. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -1
  53. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +1 -1
  54. package/dist/esm/node/vite/plugins/pluginDev.js +51 -47
  55. package/dist/esm/node/vite/plugins/pluginEnvVars.d.ts +1 -1
  56. package/dist/esm/node/vite/plugins/pluginEnvVars.js +88 -63
  57. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +108 -92
  58. package/dist/esm/node/vite/plugins/pluginExtractExportNames.d.ts +1 -1
  59. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +39 -23
  60. package/dist/esm/node/vite/plugins/pluginFileEnv.d.ts +1 -1
  61. package/dist/esm/node/vite/plugins/pluginFileEnv.js +117 -92
  62. package/dist/esm/node/vite/plugins/pluginPreview.d.ts +1 -1
  63. package/dist/esm/node/vite/plugins/pluginPreview.js +38 -30
  64. package/dist/esm/node/vite/plugins/pluginReplaceGlobalThisConstants.d.ts +9 -0
  65. package/dist/esm/node/vite/plugins/pluginReplaceGlobalThisConstants.js +45 -0
  66. package/dist/esm/node/vite/plugins/pluginReplaceIsClientSide.d.ts +3 -0
  67. package/dist/esm/node/vite/plugins/pluginReplaceIsClientSide.js +87 -0
  68. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  69. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +1 -1
  70. package/dist/esm/node/vite/plugins/pluginVirtualFiles.d.ts +1 -1
  71. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +67 -47
  72. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.d.ts +1 -1
  73. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +13 -9
  74. package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.d.ts +1 -1
  75. package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +26 -24
  76. package/dist/esm/node/vite/shared/getMagicString.d.ts +1 -1
  77. package/dist/esm/node/vite/shared/getMagicString.js +2 -0
  78. package/dist/esm/shared/createGlobalContextShared.d.ts +4 -4
  79. package/dist/esm/shared/route/abort.d.ts +22 -11
  80. package/dist/esm/shared/route/abort.js +37 -5
  81. package/dist/esm/types/PageContext.d.ts +8 -8
  82. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  83. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  84. package/dist/esm/utils/debug.js +10 -0
  85. package/dist/esm/utils/findPackageJson.js +0 -1
  86. package/dist/esm/utils/getViteRPC.js +0 -2
  87. package/dist/esm/utils/isDev.js +3 -1
  88. package/dist/esm/utils/isNonRunnableDev.js +2 -2
  89. package/dist/esm/utils/requireResolve.js +0 -1
  90. package/dist/esm/utils/virtualFileId.d.ts +4 -0
  91. package/dist/esm/utils/virtualFileId.js +14 -11
  92. package/package.json +6 -25
  93. package/dist/cjs/__internal/index.js +0 -35
  94. package/dist/cjs/client/runtime-client-routing/globalContext.js +0 -49
  95. package/dist/cjs/client/runtime-client-routing/prefetch/PrefetchSetting.js +0 -2
  96. package/dist/cjs/client/runtime-server-routing/globalContext.js +0 -41
  97. package/dist/cjs/client/runtime-server-routing/onLoad.js +0 -7
  98. package/dist/cjs/client/runtime-server-routing/utils.js +0 -34
  99. package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -65
  100. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +0 -40
  101. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +0 -41
  102. package/dist/cjs/client/shared/utils.js +0 -23
  103. package/dist/cjs/node/api/build.js +0 -24
  104. package/dist/cjs/node/api/context.js +0 -23
  105. package/dist/cjs/node/api/dev.js +0 -18
  106. package/dist/cjs/node/api/index.js +0 -44
  107. package/dist/cjs/node/api/onLoad.js +0 -9
  108. package/dist/cjs/node/api/prepareViteApiCall.js +0 -206
  109. package/dist/cjs/node/api/prerender.js +0 -18
  110. package/dist/cjs/node/api/preview.js +0 -38
  111. package/dist/cjs/node/api/types.js +0 -2
  112. package/dist/cjs/node/api/utils.js +0 -27
  113. package/dist/cjs/node/cli/context.js +0 -17
  114. package/dist/cjs/node/cli/entry.js +0 -121
  115. package/dist/cjs/node/cli/index.js +0 -12
  116. package/dist/cjs/node/cli/onLoad.js +0 -9
  117. package/dist/cjs/node/cli/parseCli.js +0 -95
  118. package/dist/cjs/node/cli/utils.js +0 -24
  119. package/dist/cjs/node/client/router.js +0 -19
  120. package/dist/cjs/node/createPageRenderer.js +0 -132
  121. package/dist/cjs/node/importBuild.js +0 -3
  122. package/dist/cjs/node/prerender/context.js +0 -26
  123. package/dist/cjs/node/prerender/index.js +0 -12
  124. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +0 -66
  125. package/dist/cjs/node/prerender/runPrerender.js +0 -777
  126. package/dist/cjs/node/prerender/runPrerenderEntry.js +0 -55
  127. package/dist/cjs/node/prerender/utils.js +0 -37
  128. package/dist/cjs/node/runtime/globalContext.js +0 -572
  129. package/dist/cjs/node/runtime/index-deprecated.js +0 -33
  130. package/dist/cjs/node/runtime/index.js +0 -74
  131. package/dist/cjs/node/runtime/loggerRuntime.js +0 -17
  132. package/dist/cjs/node/runtime/onLoad.js +0 -29
  133. package/dist/cjs/node/runtime/page-files/setup.js +0 -5
  134. package/dist/cjs/node/runtime/renderPage/analyzePage.js +0 -71
  135. package/dist/cjs/node/runtime/renderPage/assertArguments.js +0 -42
  136. package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +0 -51
  137. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -114
  138. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +0 -59
  139. package/dist/cjs/node/runtime/renderPage/csp.js +0 -47
  140. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +0 -31
  141. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +0 -120
  142. package/dist/cjs/node/runtime/renderPage/execHookServer.js +0 -8
  143. package/dist/cjs/node/runtime/renderPage/getCacheControl.js +0 -24
  144. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +0 -20
  145. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +0 -137
  146. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +0 -125
  147. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.js +0 -86
  148. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.js +0 -77
  149. package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +0 -36
  150. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +0 -50
  151. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +0 -41
  152. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +0 -68
  153. package/dist/cjs/node/runtime/renderPage/headersResponse.js +0 -48
  154. package/dist/cjs/node/runtime/renderPage/html/injectAssets/getHtmlTags.js +0 -269
  155. package/dist/cjs/node/runtime/renderPage/html/injectAssets/getViteDevScript.js +0 -32
  156. package/dist/cjs/node/runtime/renderPage/html/injectAssets/inferHtmlTags.js +0 -55
  157. package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectAssets__public.js +0 -31
  158. package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectHtmlTags.js +0 -161
  159. package/dist/cjs/node/runtime/renderPage/html/injectAssets/mergeScriptTags.js +0 -73
  160. package/dist/cjs/node/runtime/renderPage/html/injectAssets/sanitizeJson.js +0 -8
  161. package/dist/cjs/node/runtime/renderPage/html/injectAssets.js +0 -93
  162. package/dist/cjs/node/runtime/renderPage/html/propKeys.js +0 -47
  163. package/dist/cjs/node/runtime/renderPage/html/renderHtml.js +0 -245
  164. package/dist/cjs/node/runtime/renderPage/html/serializeContext.js +0 -189
  165. package/dist/cjs/node/runtime/renderPage/html/stream/react-streaming.js +0 -36
  166. package/dist/cjs/node/runtime/renderPage/html/stream.js +0 -829
  167. package/dist/cjs/node/runtime/renderPage/inferMediaType.js +0 -81
  168. package/dist/cjs/node/runtime/renderPage/isFontFallback.js +0 -29
  169. package/dist/cjs/node/runtime/renderPage/isNewError.js +0 -25
  170. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +0 -124
  171. package/dist/cjs/node/runtime/renderPage/log404/index.js +0 -154
  172. package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +0 -20
  173. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +0 -200
  174. package/dist/cjs/node/runtime/renderPage/loggerProd.js +0 -34
  175. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +0 -10
  176. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +0 -83
  177. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +0 -71
  178. package/dist/cjs/node/runtime/renderPage.js +0 -502
  179. package/dist/cjs/node/runtime/universal-middleware.js +0 -20
  180. package/dist/cjs/node/runtime/utils.js +0 -83
  181. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -27
  182. package/dist/cjs/node/runtime-dev/index.js +0 -42
  183. package/dist/cjs/node/shared/assertV1Design.js +0 -30
  184. package/dist/cjs/node/shared/extractAssetsQuery.js +0 -29
  185. package/dist/cjs/node/shared/getVikeConfigError.js +0 -22
  186. package/dist/cjs/node/shared/isErrorDebug.js +0 -7
  187. package/dist/cjs/node/shared/prependEntriesDir.js +0 -13
  188. package/dist/cjs/node/shared/resolveBase.js +0 -35
  189. package/dist/cjs/node/shared/utils.js +0 -35
  190. package/dist/cjs/node/shared/virtualFileId.js +0 -110
  191. package/dist/cjs/node/vite/index.js +0 -69
  192. package/dist/cjs/node/vite/onLoad.js +0 -21
  193. package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +0 -48
  194. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +0 -342
  195. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +0 -179
  196. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -220
  197. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -254
  198. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -36
  199. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -41
  200. package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +0 -109
  201. package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +0 -63
  202. package/dist/cjs/node/vite/plugins/pluginBuild.js +0 -21
  203. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +0 -88
  204. package/dist/cjs/node/vite/plugins/pluginCommon.js +0 -197
  205. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -28
  206. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +0 -163
  207. package/dist/cjs/node/vite/plugins/pluginDev.js +0 -107
  208. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +0 -87
  209. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +0 -227
  210. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +0 -99
  211. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +0 -149
  212. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +0 -52
  213. package/dist/cjs/node/vite/plugins/pluginPreview.js +0 -76
  214. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +0 -69
  215. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +0 -49
  216. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/debug.js +0 -5
  217. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +0 -56
  218. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +0 -190
  219. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +0 -54
  220. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +0 -97
  221. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +0 -215
  222. package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +0 -15
  223. package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +0 -35
  224. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +0 -60
  225. package/dist/cjs/node/vite/shared/findPageFiles.js +0 -25
  226. package/dist/cjs/node/vite/shared/getAssetsDir.js +0 -10
  227. package/dist/cjs/node/vite/shared/getClientEntrySrcDev.js +0 -42
  228. package/dist/cjs/node/vite/shared/getEnvVarObject.js +0 -37
  229. package/dist/cjs/node/vite/shared/getFilePath.js +0 -172
  230. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +0 -125
  231. package/dist/cjs/node/vite/shared/getMagicString.js +0 -18
  232. package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +0 -10
  233. package/dist/cjs/node/vite/shared/getOutDirs.js +0 -146
  234. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +0 -21
  235. package/dist/cjs/node/vite/shared/isAsset.js +0 -40
  236. package/dist/cjs/node/vite/shared/isViteCliCall.js +0 -83
  237. package/dist/cjs/node/vite/shared/isViteServerSide.js +0 -68
  238. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +0 -15
  239. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +0 -15
  240. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +0 -38
  241. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +0 -26
  242. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +0 -85
  243. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +0 -30
  244. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +0 -19
  245. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +0 -19
  246. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +0 -29
  247. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +0 -13
  248. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +0 -15
  249. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +0 -162
  250. package/dist/cjs/node/vite/shared/loggerNotProd/log.js +0 -102
  251. package/dist/cjs/node/vite/shared/loggerNotProd.js +0 -208
  252. package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +0 -26
  253. package/dist/cjs/node/vite/shared/loggerVite.js +0 -54
  254. package/dist/cjs/node/vite/shared/normalizeId.js +0 -9
  255. package/dist/cjs/node/vite/shared/parseEsModule.js +0 -33
  256. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +0 -136
  257. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +0 -262
  258. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +0 -18
  259. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +0 -252
  260. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +0 -190
  261. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getConfigFileExport.js +0 -17
  262. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +0 -127
  263. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +0 -129
  264. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +0 -195
  265. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +0 -102
  266. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +0 -425
  267. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +0 -1151
  268. package/dist/cjs/node/vite/shared/rollupIsEsm.js +0 -15
  269. package/dist/cjs/node/vite/utils.js +0 -45
  270. package/dist/cjs/package.json +0 -1
  271. package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -4
  272. package/dist/cjs/shared/RenderErrorPage.js +0 -6
  273. package/dist/cjs/shared/abort.js +0 -16
  274. package/dist/cjs/shared/addIs404ToPageProps.js +0 -18
  275. package/dist/cjs/shared/assertHookReturnedObject.js +0 -21
  276. package/dist/cjs/shared/assertOnBeforeRenderHookReturn.js +0 -21
  277. package/dist/cjs/shared/assertPageContextProvidedByUser.js +0 -20
  278. package/dist/cjs/shared/createGlobalContextShared.js +0 -109
  279. package/dist/cjs/shared/createPageContextShared.js +0 -17
  280. package/dist/cjs/shared/determinePageIdOld.js +0 -11
  281. package/dist/cjs/shared/error-page.js +0 -40
  282. package/dist/cjs/shared/getPageContext.js +0 -6
  283. package/dist/cjs/shared/getPageContextRequestUrl.js +0 -16
  284. package/dist/cjs/shared/getPageContextUrlComputed.js +0 -132
  285. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +0 -19
  286. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +0 -2
  287. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +0 -50
  288. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +0 -30
  289. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/getExportNames.js +0 -15
  290. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +0 -59
  291. package/dist/cjs/shared/getPageFiles/analyzePageServerSide.js +0 -22
  292. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +0 -24
  293. package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -52
  294. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -102
  295. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -56
  296. package/dist/cjs/shared/getPageFiles/parseVirtualFileExportsGlobalEntry.js +0 -100
  297. package/dist/cjs/shared/getPageFiles.js +0 -7
  298. package/dist/cjs/shared/getProxyForPublicUsage.js +0 -56
  299. package/dist/cjs/shared/hooks/execHook.js +0 -147
  300. package/dist/cjs/shared/hooks/getHook.js +0 -173
  301. package/dist/cjs/shared/htmlElementIds.js +0 -5
  302. package/dist/cjs/shared/misc/isServerSideError.js +0 -4
  303. package/dist/cjs/shared/misc/pageContextInitIsPassedToClient.js +0 -4
  304. package/dist/cjs/shared/modifyUrl.js +0 -28
  305. package/dist/cjs/shared/modifyUrlSameOrigin.js +0 -47
  306. package/dist/cjs/shared/page-configs/assertPlusFileExport.js +0 -42
  307. package/dist/cjs/shared/page-configs/findPageConfig.js +0 -10
  308. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +0 -65
  309. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +0 -68
  310. package/dist/cjs/shared/page-configs/getConfigValueRuntime.js +0 -10
  311. package/dist/cjs/shared/page-configs/getConfigValueTyped.js +0 -32
  312. package/dist/cjs/shared/page-configs/getExportPath.js +0 -29
  313. package/dist/cjs/shared/page-configs/helpers.js +0 -27
  314. package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +0 -25
  315. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +0 -287
  316. package/dist/cjs/shared/page-configs/serialize/PageConfigSerialized.js +0 -2
  317. package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -1
  318. package/dist/cjs/shared/page-configs/serialize/parsePageConfigsSerialized.js +0 -145
  319. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +0 -290
  320. package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +0 -10
  321. package/dist/cjs/shared/preparePageContextForPublicUsage.js +0 -80
  322. package/dist/cjs/shared/route/abort.js +0 -178
  323. package/dist/cjs/shared/route/debug.js +0 -23
  324. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +0 -52
  325. package/dist/cjs/shared/route/execHookGuard.js +0 -37
  326. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -84
  327. package/dist/cjs/shared/route/index.js +0 -107
  328. package/dist/cjs/shared/route/loadPageRoutes.js +0 -197
  329. package/dist/cjs/shared/route/noRouteMatch.js +0 -4
  330. package/dist/cjs/shared/route/resolvePrecedence.js +0 -93
  331. package/dist/cjs/shared/route/resolveRoute.js +0 -20
  332. package/dist/cjs/shared/route/resolveRouteFunction.js +0 -73
  333. package/dist/cjs/shared/route/resolveRouteString.js +0 -153
  334. package/dist/cjs/shared/route/resolveUrlPathname.js +0 -47
  335. package/dist/cjs/shared/route/routing.js +0 -9
  336. package/dist/cjs/shared/route/utils.js +0 -40
  337. package/dist/cjs/shared/utils.js +0 -49
  338. package/dist/cjs/types/Config/ConfigResolved.js +0 -2
  339. package/dist/cjs/types/Config.js +0 -2
  340. package/dist/cjs/types/FilePath.js +0 -2
  341. package/dist/cjs/types/PageConfig.js +0 -2
  342. package/dist/cjs/types/PageContext.js +0 -2
  343. package/dist/cjs/types/VikeGlobalInternal.js +0 -2
  344. package/dist/cjs/types/VikeNamespace.js +0 -2
  345. package/dist/cjs/types/ViteManifest.js +0 -2
  346. package/dist/cjs/types/defineConfig.js +0 -6
  347. package/dist/cjs/types/index-dreprecated.js +0 -3
  348. package/dist/cjs/types/index.js +0 -5
  349. package/dist/cjs/utils/PROJECT_VERSION.js +0 -5
  350. package/dist/cjs/utils/PromiseType.js +0 -2
  351. package/dist/cjs/utils/assert.js +0 -211
  352. package/dist/cjs/utils/assertIsBrowser.js +0 -8
  353. package/dist/cjs/utils/assertIsNotBrowser.js +0 -9
  354. package/dist/cjs/utils/assertKeys.js +0 -27
  355. package/dist/cjs/utils/assertNodeVersion.js +0 -14
  356. package/dist/cjs/utils/assertRoutingType.js +0 -29
  357. package/dist/cjs/utils/assertSetup.js +0 -171
  358. package/dist/cjs/utils/assertSingleInstance.js +0 -110
  359. package/dist/cjs/utils/assertVersion.js +0 -60
  360. package/dist/cjs/utils/capitalizeFirstLetter.js +0 -9
  361. package/dist/cjs/utils/cast.js +0 -6
  362. package/dist/cjs/utils/catchInfiniteLoop.js +0 -34
  363. package/dist/cjs/utils/changeEnumerable.js +0 -8
  364. package/dist/cjs/utils/checkType.js +0 -6
  365. package/dist/cjs/utils/compareString.js +0 -10
  366. package/dist/cjs/utils/createErrorWithCleanStackTrace.js +0 -39
  367. package/dist/cjs/utils/debug.js +0 -178
  368. package/dist/cjs/utils/debugGlob.js +0 -6
  369. package/dist/cjs/utils/deepEqual.js +0 -10
  370. package/dist/cjs/utils/escapeHtml.js +0 -13
  371. package/dist/cjs/utils/escapeRegex.js +0 -7
  372. package/dist/cjs/utils/findFile.js +0 -30
  373. package/dist/cjs/utils/findPackageJson.js +0 -18
  374. package/dist/cjs/utils/formatHintLog.js +0 -17
  375. package/dist/cjs/utils/freezePartial.js +0 -35
  376. package/dist/cjs/utils/genPromise.js +0 -51
  377. package/dist/cjs/utils/getFileExtension.js +0 -16
  378. package/dist/cjs/utils/getGlobalObject.js +0 -15
  379. package/dist/cjs/utils/getMostSimilar.js +0 -68
  380. package/dist/cjs/utils/getPropAccessNotation.js +0 -9
  381. package/dist/cjs/utils/getRandomId.js +0 -14
  382. package/dist/cjs/utils/getTerminalWidth.js +0 -7
  383. package/dist/cjs/utils/getValuePrintable.js +0 -10
  384. package/dist/cjs/utils/getViteRPC.js +0 -79
  385. package/dist/cjs/utils/hasProp.js +0 -50
  386. package/dist/cjs/utils/humanizeTime.js +0 -24
  387. package/dist/cjs/utils/includes.js +0 -13
  388. package/dist/cjs/utils/injectRollupInputs.js +0 -29
  389. package/dist/cjs/utils/isArray.js +0 -7
  390. package/dist/cjs/utils/isArrayOfStrings.js +0 -7
  391. package/dist/cjs/utils/isBrowser.js +0 -8
  392. package/dist/cjs/utils/isCallable.js +0 -6
  393. package/dist/cjs/utils/isDev.js +0 -20
  394. package/dist/cjs/utils/isDocker.js +0 -45
  395. package/dist/cjs/utils/isEqualStringList.js +0 -13
  396. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +0 -66
  397. package/dist/cjs/utils/isHtml.js +0 -9
  398. package/dist/cjs/utils/isImportPath.js +0 -21
  399. package/dist/cjs/utils/isNodeJS.js +0 -16
  400. package/dist/cjs/utils/isNonRunnableDev.js +0 -12
  401. package/dist/cjs/utils/isNullish.js +0 -16
  402. package/dist/cjs/utils/isObject.js +0 -6
  403. package/dist/cjs/utils/isObjectOfStrings.js +0 -7
  404. package/dist/cjs/utils/isObjectWithKeys.js +0 -15
  405. package/dist/cjs/utils/isPlainObject.js +0 -19
  406. package/dist/cjs/utils/isPromise.js +0 -7
  407. package/dist/cjs/utils/isPropertyGetter.js +0 -7
  408. package/dist/cjs/utils/isReact.js +0 -23
  409. package/dist/cjs/utils/isRunnableDevEnvironment.js +0 -9
  410. package/dist/cjs/utils/isSameErrorMessage.js +0 -9
  411. package/dist/cjs/utils/isScriptFile.js +0 -67
  412. package/dist/cjs/utils/isVikeReactApp.js +0 -8
  413. package/dist/cjs/utils/isVitest.js +0 -6
  414. package/dist/cjs/utils/joinEnglish.js +0 -14
  415. package/dist/cjs/utils/normalizeHeaders.js +0 -17
  416. package/dist/cjs/utils/objectAssign.js +0 -14
  417. package/dist/cjs/utils/objectAssignSafe.js +0 -7
  418. package/dist/cjs/utils/objectDefineProperty.js +0 -7
  419. package/dist/cjs/utils/objectEntries.js +0 -8
  420. package/dist/cjs/utils/objectEntriesForEach.js +0 -7
  421. package/dist/cjs/utils/objectFilter.js +0 -10
  422. package/dist/cjs/utils/objectFromEntries.js +0 -7
  423. package/dist/cjs/utils/objectKeys.js +0 -9
  424. package/dist/cjs/utils/objectReplace.js +0 -9
  425. package/dist/cjs/utils/onPageVisibilityChange.js +0 -18
  426. package/dist/cjs/utils/pLimit.js +0 -134
  427. package/dist/cjs/utils/parseNpmPackage.js +0 -106
  428. package/dist/cjs/utils/parseUrl-extras.js +0 -110
  429. package/dist/cjs/utils/parseUrl.js +0 -338
  430. package/dist/cjs/utils/path.js +0 -59
  431. package/dist/cjs/utils/pick.js +0 -12
  432. package/dist/cjs/utils/preservePropertyGetters.js +0 -30
  433. package/dist/cjs/utils/redirectHard.js +0 -6
  434. package/dist/cjs/utils/removeEmptyLines.js +0 -9
  435. package/dist/cjs/utils/removeFileExtension.js +0 -6
  436. package/dist/cjs/utils/requireResolve.js +0 -214
  437. package/dist/cjs/utils/rollupSourceMap.js +0 -19
  438. package/dist/cjs/utils/sleep.js +0 -6
  439. package/dist/cjs/utils/slice.js +0 -35
  440. package/dist/cjs/utils/sorter.js +0 -117
  441. package/dist/cjs/utils/stringifyStringArray.js +0 -6
  442. package/dist/cjs/utils/stripAnsi.js +0 -21
  443. package/dist/cjs/utils/styleFileRE.js +0 -6
  444. package/dist/cjs/utils/throttle.js +0 -15
  445. package/dist/cjs/utils/trackLogs.js +0 -31
  446. package/dist/cjs/utils/trimWithAnsi.js +0 -40
  447. package/dist/cjs/utils/truncateString.js +0 -23
  448. package/dist/cjs/utils/unique.js +0 -6
  449. package/dist/cjs/utils/updateType.js +0 -9
  450. package/dist/cjs/utils/urlToFile.js +0 -36
  451. package/dist/cjs/utils/virtualFileId.js +0 -39
  452. package/dist/cjs/utils/warnIfErrorIsNotObject.js +0 -23
  453. package/dist/esm/client/runtime-server-routing/globalContext.js +0 -5
  454. package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -65
  455. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -249
  456. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -34
  457. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -39
  458. package/dist/esm/node/vite/plugins/pluginBuild.d.ts +0 -3
  459. package/dist/esm/node/vite/plugins/pluginBuild.js +0 -19
  460. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +0 -50
  461. package/dist/esm/node/vite/plugins/pluginReplaceConstants.d.ts +0 -3
  462. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +0 -67
  463. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.d.ts +0 -0
  464. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.d.ts +0 -0
  465. /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.d.ts +0 -0
@@ -1,777 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.runPrerender = runPrerender;
40
- // Failed attempt to run this file (i.e. pre-rendering) in a separate process: https://github.com/vikejs/vike/commit/48feda87012115b32a5c9701da354cb8c138dfd2
41
- // - The issue is that prerenderContext needs to be serialized for being able to pass it from the child process to the parent process.
42
- // - The prerenderContext is used by vike-vercel
43
- const node_path_1 = __importDefault(require("node:path"));
44
- const index_js_1 = require("../../shared/route/index.js");
45
- const utils_js_1 = require("./utils.js");
46
- const renderPageAfterRoute_js_1 = require("../runtime/renderPage/renderPageAfterRoute.js");
47
- const createPageContextServerSide_js_1 = require("../runtime/renderPage/createPageContextServerSide.js");
48
- const picocolors_1 = __importDefault(require("@brillout/picocolors"));
49
- const node_os_1 = require("node:os");
50
- const globalContext_js_1 = require("../runtime/globalContext.js");
51
- const vite_1 = require("vite");
52
- const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
53
- const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
54
- const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
55
- const getConfigValueRuntime_js_1 = require("../../shared/page-configs/getConfigValueRuntime.js");
56
- const loadAndParseVirtualFilePageEntry_js_1 = require("../../shared/page-configs/loadAndParseVirtualFilePageEntry.js");
57
- const error_page_js_1 = require("../../shared/error-page.js");
58
- const abort_js_1 = require("../../shared/route/abort.js");
59
- const loadPageConfigsLazyServerSide_js_1 = require("../runtime/renderPage/loadPageConfigsLazyServerSide.js");
60
- const getHook_js_1 = require("../../shared/hooks/getHook.js");
61
- const noRouteMatch_js_1 = require("../../shared/route/noRouteMatch.js");
62
- const resolveVikeConfigInternal_js_1 = require("../vite/shared/resolveVikeConfigInternal.js");
63
- const execHook_js_1 = require("../../shared/hooks/execHook.js");
64
- const context_js_1 = require("./context.js");
65
- const resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
66
- const getOutDirs_js_1 = require("../vite/shared/getOutDirs.js");
67
- const node_fs_1 = __importDefault(require("node:fs"));
68
- const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
69
- const resolveRedirects_js_1 = require("../runtime/renderPage/resolveRedirects.js");
70
- const utils_js_2 = require("../runtime/utils.js");
71
- const docLink = 'https://vike.dev/i18n#pre-rendering';
72
- async function runPrerender(options = {}, trigger) {
73
- (0, context_js_1.setWasPrerenderRun)(trigger);
74
- checkOutdatedOptions(options);
75
- (0, utils_js_1.onSetupPrerender)();
76
- (0, globalContext_js_1.setGlobalContext_isPrerendering)();
77
- (0, getHook_js_1.getHook_setIsPrerenderering)();
78
- const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
79
- if (logLevel === 'info') {
80
- console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.PROJECT_VERSION}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
81
- }
82
- await disableReactStreaming();
83
- const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
84
- const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
85
- const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
86
- const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
87
- const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
88
- if (!isPrerenderingEnabled) {
89
- (0, utils_js_1.assert)(trigger !== 'auto-run');
90
- /* TO-DO/next-major-release: use this assertUsage() again.
91
- * - Make sure https://github.com/magne4000/vite-plugin-vercel/pull/156 is merged before using this assertUsage() again. (Otherwise vite-plugin-vercel will trigger this assertUsage() call.)
92
- * - Done: PR is merged as of June 20205
93
- assertUsage(
94
- false,
95
- `You're executing ${pc.cyan(standaloneTrigger)} but you didn't enable pre-rendering. Use the ${pc.cyan('prerender')} setting (${pc.underline('https://vike.dev/prerender')}) to enable pre-rendering for at least one page.`
96
- )
97
- */
98
- return { viteConfig };
99
- }
100
- const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, node_os_1.cpus)().length : parallel);
101
- await (0, globalContext_js_1.initGlobalContext_runPrerender)();
102
- const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
103
- globalContext._pageFilesAll.forEach(assertExportNames);
104
- const prerenderContext = {
105
- pageContexts: [],
106
- output: [],
107
- _noExtraDir: noExtraDir,
108
- _pageContextInit: options.pageContextInit ?? null,
109
- _prerenderedPageContexts: {},
110
- };
111
- const doNotPrerenderList = [];
112
- await collectDoNoPrerenderList(vikeConfig._pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
113
- // Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
114
- // https://vike.dev/onBeforePrerenderStart
115
- await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
116
- // Create `pageContext` for each page with a static route
117
- const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
118
- await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
119
- // Create `pageContext` for 404 page
120
- const urlList404 = getUrlList404(globalContext);
121
- await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
122
- // Allow user to duplicate the list of `pageContext` for i18n
123
- // https://vike.dev/onPrerenderStart
124
- await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
125
- let prerenderedCount = 0;
126
- // Write files as soon as pages finish rendering (instead of writing all files at once only after all pages have rendered).
127
- const onComplete = async (htmlFile) => {
128
- prerenderedCount++;
129
- const { pageId } = htmlFile.pageContext;
130
- (0, utils_js_1.assert)((typeof pageId === 'string' && pageId) || pageId === null);
131
- if (pageId) {
132
- prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
133
- }
134
- await writeFiles(htmlFile, viteConfig, options.onPagePrerender, prerenderContext, logLevel);
135
- };
136
- await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
137
- warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
138
- const { redirects, isPrerenderingEnabledForAllPages } = prerenderConfigGlobal;
139
- if (redirects !== null ? redirects : isPrerenderingEnabledForAllPages) {
140
- const showWarningUponDynamicRedirects = !prerenderConfigGlobal.partial;
141
- await prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects);
142
- }
143
- if (logLevel === 'info') {
144
- console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
145
- }
146
- await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
147
- const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
148
- (0, utils_js_1.objectAssign)(vikeConfig.prerenderContext, prerenderContextPublic, true);
149
- if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
150
- node_fs_1.default.rmSync(outDirServer, { recursive: true });
151
- }
152
- return { viteConfig };
153
- }
154
- async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
155
- // V1 design
156
- pageConfigs.forEach((pageConfig) => {
157
- const prerenderConfigLocal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigLocal)(pageConfig);
158
- const { pageId } = pageConfig;
159
- if (!prerenderConfigLocal) {
160
- if (!defaultLocalValue) {
161
- doNotPrerenderList.push({ pageId });
162
- }
163
- }
164
- else {
165
- const { value } = prerenderConfigLocal;
166
- if (value === false) {
167
- doNotPrerenderList.push({ pageId });
168
- }
169
- }
170
- });
171
- // Old design
172
- // TO-DO/next-major-release: remove
173
- await Promise.all(globalContext._pageFilesAll
174
- .filter((p) => {
175
- assertExportNames(p);
176
- if (!p.exportNames?.includes('doNotPrerender'))
177
- return false;
178
- (0, utils_js_1.assertUsage)(p.fileType !== '.page.client', `${p.filePath} (which is a \`.page.client.js\` file) has \`export { doNotPrerender }\` but it is only allowed in \`.page.server.js\` or \`.page.js\` files`);
179
- return true;
180
- })
181
- .map((p) => concurrencyLimit(async () => {
182
- (0, utils_js_1.assert)(p.loadFile);
183
- await p.loadFile();
184
- })));
185
- globalContext._allPageIds.forEach((pageId) => {
186
- const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext._pageFilesAll, pageId);
187
- for (const p of pageFilesServerSide) {
188
- if (!p.exportNames?.includes('doNotPrerender'))
189
- continue;
190
- const { fileExports } = p;
191
- (0, utils_js_1.assert)(fileExports);
192
- (0, utils_js_1.assert)((0, utils_js_1.hasProp)(fileExports, 'doNotPrerender'));
193
- const { doNotPrerender } = fileExports;
194
- (0, utils_js_1.assertUsage)(doNotPrerender === true || doNotPrerender === false, `The \`export { doNotPrerender }\` value of ${p.filePath} should be \`true\` or \`false\``);
195
- if (!doNotPrerender) {
196
- // Do pre-render `pageId`
197
- return;
198
- }
199
- else {
200
- // Don't pre-render `pageId`
201
- doNotPrerenderList.push({ pageId });
202
- }
203
- }
204
- });
205
- }
206
- function assertExportNames(pageFile) {
207
- const { exportNames, fileType } = pageFile;
208
- (0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
209
- }
210
- async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
211
- const onBeforePrerenderStartHooks = [];
212
- // V1 design
213
- await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
214
- const hookName = 'onBeforePrerenderStart';
215
- const pageConfigLoaded = await (0, loadAndParseVirtualFilePageEntry_js_1.loadAndParseVirtualFilePageEntry)(pageConfig, false);
216
- const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
217
- if (!hook)
218
- return;
219
- const { hookFn, hookFilePath, hookTimeout } = hook;
220
- onBeforePrerenderStartHooks.push({
221
- hookFn,
222
- hookName: 'onBeforePrerenderStart',
223
- hookFilePath,
224
- pageId: pageConfig.pageId,
225
- hookTimeout,
226
- });
227
- })));
228
- // 0.4 design
229
- await Promise.all(globalContext._pageFilesAll
230
- .filter((p) => {
231
- assertExportNames(p);
232
- if (!p.exportNames?.includes('prerender'))
233
- return false;
234
- (0, utils_js_1.assertUsage)(p.fileType === '.page.server', `${p.filePath} (which is a \`${p.fileType}.js\` file) has \`export { prerender }\` but it is only allowed in \`.page.server.js\` files`);
235
- return true;
236
- })
237
- .map((p) => concurrencyLimit(async () => {
238
- await p.loadFile?.();
239
- const hookFn = p.fileExports?.prerender;
240
- if (!hookFn)
241
- return;
242
- (0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `\`export { prerender }\` of ${p.filePath} should be a function.`);
243
- const hookFilePath = p.filePath;
244
- (0, utils_js_1.assert)(hookFilePath);
245
- onBeforePrerenderStartHooks.push({
246
- hookFn,
247
- hookName: 'prerender',
248
- hookFilePath,
249
- pageId: p.pageId,
250
- hookTimeout: (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerenderStart'),
251
- });
252
- })));
253
- await Promise.all(onBeforePrerenderStartHooks.map(({ pageId, ...hook }) => concurrencyLimit(async () => {
254
- if (doNotPrerenderList.find((p) => p.pageId === pageId))
255
- return;
256
- const { hookName, hookFilePath } = hook;
257
- const prerenderResult = await (0, execHook_js_1.execHookDirectWithoutPageContext)(() => hook.hookFn(), hook);
258
- const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
259
- // Handle result
260
- await Promise.all(result.map(async ({ url, pageContext }) => {
261
- // Assert no duplication
262
- {
263
- const pageContextFound = prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, url));
264
- if (pageContextFound) {
265
- (0, utils_js_1.assert)(pageContextFound._providedByHook);
266
- const providedTwice = hookFilePath === pageContextFound._providedByHook.hookFilePath
267
- ? `twice by the ${hookName}() hook (${hookFilePath})`
268
- : `twice: by the ${hookName}() hook (${hookFilePath}) as well as by the hook ${pageContextFound._providedByHook.hookFilePath}() (${pageContextFound._providedByHook.hookName})`;
269
- (0, utils_js_1.assertUsage)(false, `URL ${picocolors_1.default.cyan(url)} provided ${providedTwice}. Make sure to provide the URL only once instead.`);
270
- }
271
- }
272
- // Add result
273
- const providedByHook = { hookFilePath, hookName };
274
- const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
275
- prerenderContext.pageContexts.push(pageContextNew);
276
- if (pageContext) {
277
- (0, utils_js_1.objectAssign)(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
278
- (0, utils_js_1.objectAssign)(pageContextNew, pageContext);
279
- }
280
- }));
281
- })));
282
- }
283
- function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
284
- const urlList = [];
285
- globalContext._pageRoutes.map((pageRoute) => {
286
- const { pageId } = pageRoute;
287
- if (doNotPrerenderList.find((p) => p.pageId === pageId))
288
- return;
289
- let urlOriginal;
290
- if (!('routeString' in pageRoute)) {
291
- // Abort since the page's route is a Route Function
292
- (0, utils_js_1.assert)(pageRoute.routeType === 'FUNCTION');
293
- return;
294
- }
295
- else {
296
- const url = (0, resolveRouteString_js_1.getUrlFromRouteString)(pageRoute.routeString);
297
- if (!url) {
298
- // Abort since no URL can be deduced from a parameterized Route String
299
- return;
300
- }
301
- urlOriginal = url;
302
- }
303
- (0, utils_js_1.assert)(urlOriginal.startsWith('/'));
304
- urlList.push({ urlOriginal, pageId });
305
- });
306
- return urlList;
307
- }
308
- function getUrlList404(globalContext) {
309
- const urlList = [];
310
- const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
311
- if (errorPageId) {
312
- urlList.push({
313
- // A URL is required for `viteDevServer.transformIndexHtml(url,html)`
314
- urlOriginal: '/404',
315
- pageId: errorPageId,
316
- });
317
- }
318
- return urlList;
319
- }
320
- async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
321
- await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
322
- // Already included in a onBeforePrerenderStart() hook
323
- if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
324
- return;
325
- }
326
- const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
327
- prerenderContext.pageContexts.push(pageContext);
328
- })));
329
- }
330
- async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
331
- const pageContextInit = {
332
- urlOriginal,
333
- ...prerenderContext._pageContextInit,
334
- };
335
- const pageContext = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
336
- isPrerendering: true,
337
- });
338
- (0, utils_js_1.assert)(pageContext.isPrerendering === true);
339
- (0, utils_js_1.objectAssign)(pageContext, {
340
- _urlHandler: null,
341
- _httpRequestId: null,
342
- _urlRewrite: null,
343
- _noExtraDir: prerenderContext._noExtraDir,
344
- _prerenderContext: prerenderContext,
345
- _providedByHook: providedByHook,
346
- _urlOriginalModifiedByHook: null,
347
- is404,
348
- });
349
- if (!is404) {
350
- const pageContextFromRoute = await (0, index_js_1.route)(pageContext);
351
- (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextFromRoute, 'pageId', 'null') || (0, utils_js_1.hasProp)(pageContextFromRoute, 'pageId', 'string')); // Help TS
352
- assertRouteMatch(pageContextFromRoute, pageContext);
353
- (0, utils_js_1.assert)(pageContextFromRoute.pageId);
354
- (0, utils_js_1.objectAssign)(pageContext, pageContextFromRoute);
355
- }
356
- else {
357
- (0, utils_js_1.assert)(pageId);
358
- (0, utils_js_1.objectAssign)(pageContext, {
359
- pageId,
360
- routeParams: {},
361
- });
362
- }
363
- (0, utils_js_2.updateType)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
364
- let usesClientRouter;
365
- {
366
- const { pageId } = pageContext;
367
- (0, utils_js_1.assert)(pageId);
368
- (0, utils_js_1.assert)(globalContext._isPrerendering);
369
- if (globalContext._pageConfigs.length > 0) {
370
- const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
371
- (0, utils_js_1.assert)(pageConfig);
372
- usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
373
- }
374
- else {
375
- usesClientRouter = globalContext._usesClientRouter;
376
- }
377
- }
378
- (0, utils_js_1.objectAssign)(pageContext, { _usesClientRouter: usesClientRouter });
379
- return pageContext;
380
- }
381
- function assertRouteMatch(pageContextFromRoute, pageContext) {
382
- if (pageContextFromRoute.pageId !== null) {
383
- (0, utils_js_1.assert)(pageContextFromRoute.pageId);
384
- return;
385
- }
386
- let hookName;
387
- let hookFilePath;
388
- if (pageContext._urlOriginalModifiedByHook) {
389
- hookName = pageContext._urlOriginalModifiedByHook.hookName;
390
- hookFilePath = pageContext._urlOriginalModifiedByHook.hookFilePath;
391
- }
392
- else if (pageContext._providedByHook) {
393
- hookName = pageContext._providedByHook.hookName;
394
- hookFilePath = pageContext._providedByHook.hookFilePath;
395
- }
396
- if (hookName) {
397
- (0, utils_js_1.assert)(hookFilePath);
398
- const { urlOriginal } = pageContext;
399
- (0, utils_js_1.assert)(urlOriginal);
400
- (0, utils_js_1.assertUsage)(false, `The ${hookName}() hook defined by ${hookFilePath} returns a URL ${picocolors_1.default.cyan(urlOriginal)} that ${noRouteMatch_js_1.noRouteMatch}. Make sure that the URLs returned by ${hookName}() always match the route of a page.`);
401
- }
402
- else {
403
- // `prerenderHookFile` is `null` when the URL was deduced by the Filesystem Routing of `.page.js` files. The `onBeforeRoute()` can override Filesystem Routing; it is therefore expected that the deduced URL may not match any page.
404
- (0, utils_js_1.assert)(pageContextFromRoute._routingProvidedByOnBeforeRouteHook);
405
- // Abort since the URL doesn't correspond to any page
406
- return;
407
- }
408
- }
409
- async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
410
- let onPrerenderStartHook;
411
- // V1 design
412
- if (globalContext._pageConfigs.length > 0) {
413
- const hookName = 'onPrerenderStart';
414
- const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext._pageConfigGlobal, hookName);
415
- if (hook) {
416
- (0, utils_js_1.assert)(hook.hookName === 'onPrerenderStart');
417
- onPrerenderStartHook = {
418
- ...hook,
419
- // Make TypeScript happy
420
- hookName,
421
- };
422
- }
423
- }
424
- // Old design
425
- // TO-DO/next-major-release: remove
426
- if (globalContext._pageConfigs.length === 0) {
427
- const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
428
- const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
429
- assertExportNames(p);
430
- if (!p.exportNames?.includes('onBeforePrerender'))
431
- return false;
432
- (0, utils_js_1.assertUsage)(p.fileType !== '.page.client', `${p.filePath} (which is a \`.page.client.js\` file) has \`export { onBeforePrerender }\` but it is only allowed in \`.page.server.js\` or \`.page.js\` files`);
433
- (0, utils_js_1.assertUsage)(p.isDefaultPageFile, `${p.filePath} has \`export { onBeforePrerender }\` but it is only allowed in \`_default.page.\` files`);
434
- return true;
435
- });
436
- if (pageFilesWithOnBeforePrerenderHook.length === 0) {
437
- return;
438
- }
439
- (0, utils_js_1.assertUsage)(pageFilesWithOnBeforePrerenderHook.length === 1, 'There can be only one `onBeforePrerender()` hook. If you need to be able to define several, open a new GitHub issue.');
440
- await Promise.all(pageFilesWithOnBeforePrerenderHook.map((p) => p.loadFile?.()));
441
- const hooks = pageFilesWithOnBeforePrerenderHook.map((p) => {
442
- (0, utils_js_1.assert)(p.fileExports);
443
- const { onBeforePrerender } = p.fileExports;
444
- (0, utils_js_1.assert)(onBeforePrerender);
445
- const hookFilePath = p.filePath;
446
- return { hookFilePath, onBeforePrerender };
447
- });
448
- (0, utils_js_1.assert)(hooks.length === 1);
449
- const hook = hooks[0];
450
- onPrerenderStartHook = {
451
- hookFn: hook.onBeforePrerender,
452
- hookFilePath: hook.hookFilePath,
453
- hookName: 'onBeforePrerender',
454
- hookTimeout,
455
- };
456
- }
457
- if (!onPrerenderStartHook) {
458
- return;
459
- }
460
- const msgPrefix = `The ${onPrerenderStartHook.hookName}() hook defined by ${onPrerenderStartHook.hookFilePath}`;
461
- const { hookFn, hookFilePath, hookName } = onPrerenderStartHook;
462
- (0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `${msgPrefix} should be a function.`);
463
- prerenderContext.pageContexts.forEach((pageContext) => {
464
- Object.defineProperty(pageContext, 'url', {
465
- // TO-DO/next-major-release: remove warning
466
- get() {
467
- (0, utils_js_1.assertWarning)(false, msgPrefix +
468
- ' uses pageContext.url but it should use pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { showStackTrace: true, onlyOnce: true });
469
- return pageContext.urlOriginal;
470
- },
471
- enumerable: false,
472
- configurable: true,
473
- });
474
- (0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'url'));
475
- (0, utils_js_1.assert)(pageContext.urlOriginal);
476
- pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
477
- });
478
- prerenderContext.pageContexts.forEach((pageContext) => {
479
- // Preserve URL computed properties when the user is copying pageContext is his onPrerenderStart() hook, e.g. /examples/i18n/
480
- // https://vike.dev/i18n#pre-rendering
481
- (0, utils_js_1.preservePropertyGetters)(pageContext);
482
- });
483
- const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
484
- let result = await (0, execHook_js_1.execHookDirectWithoutPageContext)(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
485
- // Before applying result
486
- prerenderContext.pageContexts.forEach((pageContext) => {
487
- ;
488
- pageContext._restorePropertyGetters?.();
489
- });
490
- if (result === null || result === undefined) {
491
- return;
492
- }
493
- const errPrefix = `The ${hookName}() hook exported by ${hookFilePath}`;
494
- const rightUsage = `${errPrefix} should return ${picocolors_1.default.cyan('null')}, ${picocolors_1.default.cyan('undefined')}, or ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}`;
495
- // TO-DO/next-major-release: remove
496
- if ((0, utils_js_1.hasProp)(result, 'globalContext')) {
497
- (0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['globalContext']) &&
498
- (0, utils_js_1.hasProp)(result, 'globalContext', 'object') &&
499
- (0, utils_js_1.hasProp)(result.globalContext, 'prerenderPageContexts', 'array'), rightUsage);
500
- (0, utils_js_1.assertWarning)(false, `${errPrefix} returns ${picocolors_1.default.cyan('{ globalContext: { prerenderPageContexts } }')} but the return value has been renamed to ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}, see ${docLink}`, { onlyOnce: true });
501
- result = {
502
- prerenderContext: {
503
- pageContexts: result.globalContext.prerenderPageContexts,
504
- },
505
- };
506
- }
507
- (0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['prerenderContext']) &&
508
- (0, utils_js_1.hasProp)(result, 'prerenderContext', 'object') &&
509
- (0, utils_js_1.hasProp)(result.prerenderContext, 'pageContexts', 'array'), rightUsage);
510
- prerenderContext.pageContexts = result.prerenderContext.pageContexts;
511
- prerenderContext.pageContexts.forEach((pageContext) => {
512
- // TO-DO/next-major-release: remove
513
- if (pageContext.url && !(0, utils_js_1.isPropertyGetter)(pageContext, 'url')) {
514
- (0, utils_js_1.assertWarning)(false, msgPrefix +
515
- ' provided pageContext.url but it should provide pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { onlyOnce: true });
516
- pageContext.urlOriginal = pageContext.url;
517
- }
518
- delete pageContext.url;
519
- });
520
- // After applying result
521
- prerenderContext.pageContexts.forEach((pageContext) => {
522
- ;
523
- pageContext._restorePropertyGetters?.();
524
- });
525
- // Assert URL modified by user
526
- await Promise.all(prerenderContext.pageContexts.map((pageContext) => concurrencyLimit(async () => {
527
- if (pageContext.urlOriginal !== pageContext._urlOriginalBeforeHook && !pageContext.is404) {
528
- pageContext._urlOriginalModifiedByHook = {
529
- hookFilePath,
530
- hookName,
531
- };
532
- const pageContextFromRoute = await (0, index_js_1.route)(pageContext,
533
- // Avoid calling onBeforeRoute() twice, otherwise onBeforeRoute() will wrongfully believe URL doesn't have locale after onBeforeRoute() already removed the local from the URL when called the first time.
534
- true);
535
- assertRouteMatch(pageContextFromRoute, pageContext);
536
- }
537
- })));
538
- }
539
- async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
540
- await Promise.all(prerenderContext.pageContexts.map((pageContextBeforeRender) => concurrencyLimit(async () => {
541
- let res;
542
- try {
543
- res = await (0, renderPageAfterRoute_js_1.prerenderPage)(pageContextBeforeRender);
544
- }
545
- catch (err) {
546
- assertIsNotAbort(err, picocolors_1.default.cyan(pageContextBeforeRender.urlOriginal));
547
- throw err;
548
- }
549
- const { documentHtml, pageContext } = res;
550
- const pageContextSerialized = pageContext.is404 ? null : res.pageContextSerialized;
551
- await onComplete({
552
- pageContext,
553
- htmlString: documentHtml,
554
- pageContextSerialized,
555
- });
556
- })));
557
- }
558
- function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerenderList) {
559
- Object.entries(prerenderedPageContexts).forEach(([pageId, pageContext]) => {
560
- const doNotPrerenderListEntry = doNotPrerenderList.find((p) => p.pageId === pageId);
561
- const { urlOriginal, _providedByHook: providedByHook } = pageContext;
562
- {
563
- const isContradictory = !!doNotPrerenderListEntry && providedByHook;
564
- if (!isContradictory)
565
- return;
566
- }
567
- (0, utils_js_1.assertWarning)(false, `The ${providedByHook.hookName}() hook defined by ${providedByHook.hookFilePath} returns the URL ${picocolors_1.default.cyan(urlOriginal)} matching the route of the page ${picocolors_1.default.cyan(pageId)} which isn't configured to be pre-rendered. This is contradictory: either enable pre-rendering for ${picocolors_1.default.cyan(pageId)} or remove the URL ${picocolors_1.default.cyan(urlOriginal)} from the list of URLs to be pre-rendered.`, { onlyOnce: true });
568
- });
569
- }
570
- async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
571
- const isV1 = globalContext._pageConfigs.length > 0;
572
- const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
573
- globalContext._allPageIds
574
- .filter((pageId) => !prerenderedPageContexts[pageId])
575
- .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
576
- .filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext._pageConfigs))
577
- .forEach((pageId) => {
578
- const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
579
- (0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while there isn't any ${hookName}() hook returning an URL matching the page's route. You must use a ${hookName}() hook (https://vike.dev/${hookName}) for providing the list of URLs to be pre-rendered for that page. If you want to skip pre-rendering that page, you can remove this warning by setting +prerender to false at ${pageAt} (https://vike.dev/prerender#toggle) or by setting +prerender.partial to true (https://vike.dev/prerender#partial).`, { onlyOnce: true });
580
- });
581
- }
582
- async function writeFiles({ pageContext, htmlString, pageContextSerialized }, viteConfig, onPagePrerender, prerenderContext, logLevel) {
583
- const writeJobs = [write(pageContext, 'HTML', htmlString, viteConfig, onPagePrerender, prerenderContext, logLevel)];
584
- if (pageContextSerialized !== null) {
585
- writeJobs.push(write(pageContext, 'JSON', pageContextSerialized, viteConfig, onPagePrerender, prerenderContext, logLevel));
586
- }
587
- await Promise.all(writeJobs);
588
- }
589
- async function write(pageContext, fileType, fileContent, viteConfig, onPagePrerender, prerenderContext, logLevel) {
590
- const { urlOriginal } = pageContext;
591
- (0, utils_js_1.assert)(urlOriginal.startsWith('/'));
592
- const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
593
- const { root } = viteConfig;
594
- let fileUrl;
595
- if (fileType === 'HTML') {
596
- const doNotCreateExtraDirectory = prerenderContext._noExtraDir ?? pageContext.is404;
597
- fileUrl = (0, utils_js_1.urlToFile)(urlOriginal, '.html', doNotCreateExtraDirectory);
598
- }
599
- else {
600
- (0, utils_js_1.assert)(fileType === 'JSON');
601
- fileUrl = (0, getPageContextRequestUrl_js_1.getPageContextRequestUrl)(urlOriginal);
602
- }
603
- (0, utils_js_1.assertPosixPath)(fileUrl);
604
- (0, utils_js_1.assert)(fileUrl.startsWith('/'));
605
- const filePathRelative = fileUrl.slice(1);
606
- (0, utils_js_1.assert)(!filePathRelative.startsWith('/'),
607
- // https://github.com/vikejs/vike/issues/1929
608
- { urlOriginal, fileUrl });
609
- (0, utils_js_1.assertPosixPath)(outDirClient);
610
- (0, utils_js_1.assertPosixPath)(filePathRelative);
611
- const filePath = node_path_1.default.posix.join(outDirClient, filePathRelative);
612
- (0, utils_js_1.objectAssign)(pageContext, {
613
- _prerenderResult: {
614
- filePath,
615
- fileContent,
616
- },
617
- });
618
- prerenderContext.output.push({
619
- filePath,
620
- fileType,
621
- fileContent,
622
- pageContext,
623
- });
624
- if (onPagePrerender) {
625
- await onPagePrerender(pageContext);
626
- }
627
- else {
628
- const { promises } = await Promise.resolve().then(() => __importStar(require('node:fs')));
629
- const { writeFile, mkdir } = promises;
630
- await mkdir(node_path_1.default.posix.dirname(filePath), { recursive: true });
631
- await writeFile(filePath, fileContent);
632
- if (logLevel === 'info') {
633
- (0, utils_js_1.assertPosixPath)(root);
634
- (0, utils_js_1.assertPosixPath)(outDirClient);
635
- let outDirClientRelative = node_path_1.default.posix.relative(root, outDirClient);
636
- if (!outDirClientRelative.endsWith('/')) {
637
- outDirClientRelative = outDirClientRelative + '/';
638
- }
639
- console.log(`${picocolors_1.default.dim(outDirClientRelative)}${picocolors_1.default.blue(filePathRelative)}`);
640
- }
641
- }
642
- }
643
- function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hookName) {
644
- if ((0, utils_js_1.isArray)(prerenderResult)) {
645
- return prerenderResult.map(normalize);
646
- }
647
- else {
648
- return [normalize(prerenderResult)];
649
- }
650
- function normalize(prerenderElement) {
651
- if (typeof prerenderElement === 'string') {
652
- prerenderElement = { url: prerenderElement, pageContext: null };
653
- }
654
- const errMsg1 = `The ${hookName}() hook defined by ${prerenderHookFile} returned`;
655
- const errMsg2 = `${errMsg1} an invalid value`;
656
- const errHint = `Make sure your ${hookName}() hook returns an object ${picocolors_1.default.cyan('{ url, pageContext }')} or an array of such objects.`;
657
- (0, utils_js_1.assertUsage)((0, utils_js_1.isPlainObject)(prerenderElement), `${errMsg2}. ${errHint}`);
658
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'url'), `${errMsg2}: ${picocolors_1.default.cyan('url')} is missing. ${errHint}`);
659
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'url', 'string'), `${errMsg2}: ${picocolors_1.default.cyan('url')} should be a string (but ${picocolors_1.default.cyan(`typeof url === "${typeof prerenderElement.url}"`)}).`);
660
- (0, utils_js_1.assertUsage)(prerenderElement.url.startsWith('/'), `${errMsg1} a URL with an invalid value ${picocolors_1.default.cyan(prerenderElement.url)} which doesn't start with ${picocolors_1.default.cyan('/')}. Make sure each URL starts with ${picocolors_1.default.cyan('/')}.`);
661
- Object.keys(prerenderElement).forEach((key) => {
662
- (0, utils_js_1.assertUsage)(key === 'url' || key === 'pageContext', `${errMsg2}: unexpected object key ${picocolors_1.default.cyan(key)}. ${errHint}`);
663
- });
664
- if (!(0, utils_js_1.hasProp)(prerenderElement, 'pageContext')) {
665
- prerenderElement.pageContext = null;
666
- }
667
- else if (!(0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'null')) {
668
- (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'object'), `${errMsg1} an invalid ${picocolors_1.default.cyan('pageContext')} value: make sure ${picocolors_1.default.cyan('pageContext')} is an object.`);
669
- (0, utils_js_1.assertUsage)((0, utils_js_1.isPlainObject)(prerenderElement.pageContext), `${errMsg1} an invalid ${picocolors_1.default.cyan('pageContext')} object: make sure ${picocolors_1.default.cyan('pageContext')} is a plain JavaScript object.`);
670
- }
671
- (0, utils_js_1.assert)((0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'object') || (0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'null'));
672
- return prerenderElement;
673
- }
674
- }
675
- // TO-DO/next-major-release: remove
676
- function checkOutdatedOptions(options) {
677
- (0, utils_js_1.assertUsage)(options.root === undefined, 'Option `prerender({ root })` deprecated: set `prerender({ viteConfig: { root }})` instead.', { showStackTrace: true });
678
- (0, utils_js_1.assertUsage)(options.configFile === undefined, 'Option `prerender({ configFile })` deprecated: set `prerender({ viteConfig: { configFile }})` instead.', { showStackTrace: true });
679
- ['noExtraDir', 'partial', 'parallel'].forEach((prop) => {
680
- (0, utils_js_1.assertUsage)(options[prop] === undefined, `[prerender()] Option ${picocolors_1.default.cyan(prop)} is deprecated. Define ${picocolors_1.default.cyan(prop)} in vite.config.js instead. See https://vike.dev/prerender`, { showStackTrace: true });
681
- });
682
- ['base', 'outDir'].forEach((prop) => {
683
- (0, utils_js_1.assertWarning)(options[prop] === undefined, `[prerender()] Option ${picocolors_1.default.cyan(prop)} is outdated and has no effect (vike now automatically determines ${picocolors_1.default.cyan(prop)})`, {
684
- showStackTrace: true,
685
- onlyOnce: true,
686
- });
687
- });
688
- }
689
- async function disableReactStreaming() {
690
- let mod;
691
- try {
692
- mod = await Promise.resolve().then(() => __importStar(require('react-streaming/server')));
693
- }
694
- catch {
695
- return;
696
- }
697
- const { disable } = mod;
698
- disable();
699
- }
700
- function isSameUrl(url1, url2) {
701
- return normalizeUrl(url1) === normalizeUrl(url2);
702
- }
703
- function normalizeUrl(url) {
704
- return '/' + url.split('/').filter(Boolean).join('/');
705
- }
706
- function assertIsNotAbort(err, urlOriginal) {
707
- if (!(0, abort_js_1.isAbortError)(err))
708
- return;
709
- const pageContextAbort = err._pageContextAbort;
710
- const hookLoc = (0, execHook_js_1.isUserHookError)(err);
711
- (0, utils_js_1.assert)(hookLoc);
712
- const thrownBy = ` by ${picocolors_1.default.cyan(`${hookLoc.hookName}()`)} hook defined at ${hookLoc.hookFilePath}`;
713
- const abortCaller = pageContextAbort._abortCaller;
714
- (0, utils_js_1.assert)(abortCaller);
715
- const abortCall = pageContextAbort._abortCall;
716
- (0, utils_js_1.assert)(abortCall);
717
- (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
718
- }
719
- function preparePrerenderContextForPublicUsage(prerenderContext) {
720
- // TO-DO/next-major-release: remove
721
- if (!('prerenderPageContexts' in prerenderContext)) {
722
- Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
723
- get() {
724
- (0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${picocolors_1.default.underline(docLink)}`, {
725
- showStackTrace: true,
726
- onlyOnce: true,
727
- });
728
- return prerenderContext.pageContexts;
729
- },
730
- });
731
- }
732
- // Required because of https://vike.dev/i18n#pre-rendering
733
- // - Thus, we have to let users access the original pageContext object => we cannot use ES proxies and we cannot use preparePageContextForPublicUsage()
734
- prerenderContext.pageContexts.forEach((pageContext) => {
735
- (0, utils_js_1.changeEnumerable)(pageContext, '_isOriginalObject', true);
736
- });
737
- const prerenderContextPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(prerenderContext, 'prerenderContext');
738
- return prerenderContextPublic;
739
- }
740
- async function prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects) {
741
- const redirects = globalContext.config.redirects ?? [];
742
- const redirectsStatic = (0, resolveRedirects_js_1.getStaticRedirectsForPrerender)(redirects, showWarningUponDynamicRedirects);
743
- for (const [urlSource, urlTarget] of Object.entries(redirectsStatic)) {
744
- const urlOriginal = urlSource;
745
- const htmlString = getRedirectHtml(urlTarget);
746
- await onComplete({
747
- pageContext: { urlOriginal, pageId: null, is404: false, isRedirect: true },
748
- htmlString,
749
- pageContextSerialized: null,
750
- });
751
- }
752
- }
753
- function getRedirectHtml(urlTarget) {
754
- const urlTargetSafe = (0, utils_js_1.escapeHtml)(urlTarget);
755
- // To test it: /test/playground => http://localhost:3000/download
756
- const htmlString = `<!DOCTYPE html>
757
- <html lang="en">
758
- <head>
759
- <meta charset="UTF-8">
760
- <meta http-equiv="refresh" content="0;url=${urlTargetSafe}">
761
- <title>Redirect ${urlTargetSafe}</title>
762
- <style>body{opacity:0}</style>
763
- <noscript>
764
- <style>body{opacity:1}</style>
765
- </noscript>
766
- </head>
767
- <body style="min-height: 100vh; margin: 0; font-family: sans-serif; display: flex; justify-content: center; align-items: center; transition: opacity 0.3s;">
768
- <script>setTimeout(()=>{document.body.style.opacity=1},2000)</script>
769
- <div>
770
- <h1>Redirect <a href="${urlTargetSafe}"><code style="background-color: #eaeaea; padding: 3px 5px; border-radius: 4px;">${urlTargetSafe}</code></a></h1>
771
- <p>If you aren't redirected, click the link above.</p>
772
- <!-- This HTML was generated by Vike. -->
773
- </div>
774
- </body>
775
- </html>`;
776
- return htmlString;
777
- }