vike 0.4.239-commit-33e55d4 → 0.4.239-commit-4d0d950

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