vike 0.4.231-commit-e1c3295 → 0.4.232-commit-134207d

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 (437) hide show
  1. package/README.md +4 -2
  2. package/dist/cjs/__internal/index.js +2 -2
  3. package/dist/cjs/client/runtime-client-routing/globalContext.js +1 -1
  4. package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -2
  5. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +2 -2
  6. package/dist/cjs/node/api/build.js +6 -2
  7. package/dist/cjs/node/api/dev.js +1 -1
  8. package/dist/cjs/node/api/prepareViteApiCall.js +8 -8
  9. package/dist/cjs/node/api/prerender.js +1 -1
  10. package/dist/cjs/node/api/preview.js +2 -2
  11. package/dist/cjs/node/cli/entry.js +1 -1
  12. package/dist/cjs/node/cli/parseCli.js +2 -2
  13. package/dist/cjs/node/client/router.js +1 -1
  14. package/dist/cjs/node/createPageRenderer.js +1 -1
  15. package/dist/cjs/node/prerender/context.js +1 -1
  16. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
  17. package/dist/cjs/node/prerender/runPrerender.js +91 -46
  18. package/dist/cjs/node/prerender/runPrerenderEntry.js +1 -1
  19. package/dist/cjs/node/prerender/utils.js +1 -0
  20. package/dist/cjs/node/runtime/globalContext.js +22 -15
  21. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +7 -7
  22. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +1 -1
  23. package/dist/cjs/node/runtime/html/injectAssets/inferHtmlTags.js +1 -1
  24. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +5 -5
  25. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +3 -3
  26. package/dist/cjs/node/runtime/html/injectAssets.js +1 -1
  27. package/dist/cjs/node/runtime/html/renderHtml.js +8 -8
  28. package/dist/cjs/node/runtime/html/serializeContext.js +5 -5
  29. package/dist/cjs/node/runtime/html/stream.js +19 -19
  30. package/dist/cjs/node/runtime/index-deprecated.js +2 -2
  31. package/dist/cjs/node/runtime/index.js +1 -1
  32. package/dist/cjs/node/runtime/renderPage/analyzePage.js +4 -4
  33. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  34. package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
  35. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +5 -6
  36. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  37. package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +1 -1
  38. package/dist/cjs/node/runtime/renderPage/execHookServer.js +1 -4
  39. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +1 -1
  40. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
  41. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
  42. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +1 -1
  43. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
  44. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  45. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
  46. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  47. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
  48. package/dist/cjs/node/runtime/renderPage/isFontFallback.js +3 -3
  49. package/dist/cjs/node/runtime/renderPage/isNewError.js +2 -1
  50. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +10 -10
  51. package/dist/cjs/node/runtime/renderPage/log404/index.js +4 -8
  52. package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +2 -2
  53. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +18 -18
  54. package/dist/cjs/node/runtime/renderPage/loggerProd.js +3 -3
  55. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -1
  56. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +22 -4
  57. package/dist/cjs/node/runtime/renderPage.js +17 -34
  58. package/dist/cjs/node/runtime/universal-middleware.js +2 -2
  59. package/dist/cjs/node/runtime/utils.js +1 -1
  60. package/dist/cjs/node/runtime-dev/createDevMiddleware.js +3 -3
  61. package/dist/cjs/node/shared/extractAssetsQuery.js +1 -1
  62. package/dist/cjs/node/shared/getVikeConfigError.js +22 -0
  63. package/dist/cjs/node/shared/resolveBase.js +1 -1
  64. package/dist/cjs/node/shared/utils.js +1 -0
  65. package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +2 -2
  66. package/dist/cjs/node/vite/index.js +2 -2
  67. package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +3 -3
  68. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +30 -28
  69. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +10 -10
  70. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +10 -10
  71. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +10 -10
  72. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +12 -13
  73. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +14 -12
  74. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
  75. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +3 -3
  76. package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +3 -3
  77. package/dist/cjs/node/vite/plugins/pluginBuild.js +1 -1
  78. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +2 -2
  79. package/dist/cjs/node/vite/plugins/pluginCommon.js +14 -14
  80. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +2 -2
  81. package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +2 -2
  82. package/dist/cjs/node/vite/plugins/pluginDev.js +8 -8
  83. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
  84. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +6 -6
  85. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  86. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +3 -3
  87. package/dist/cjs/node/vite/plugins/pluginPreview.js +9 -9
  88. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +3 -3
  89. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +6 -6
  90. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.js +10 -10
  91. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.js +11 -1
  92. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +3 -3
  93. package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +1 -1
  94. package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +2 -2
  95. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +3 -3
  96. package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
  97. package/dist/cjs/node/vite/shared/getFilePath.js +24 -24
  98. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +4 -4
  99. package/dist/cjs/node/vite/shared/getOutDirs.js +2 -2
  100. package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +3 -3
  101. package/dist/cjs/node/vite/shared/isAsset.js +1 -1
  102. package/dist/cjs/node/vite/shared/isViteCliCall.js +1 -1
  103. package/dist/cjs/node/vite/shared/isViteServerBuild.js +2 -2
  104. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +1 -1
  105. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +1 -1
  106. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +5 -5
  107. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +3 -3
  108. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +10 -10
  109. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +2 -2
  110. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +2 -2
  111. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +2 -2
  112. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +2 -2
  113. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +1 -1
  114. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +1 -1
  115. package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +3 -3
  116. package/dist/cjs/node/vite/shared/loggerNotProd.js +1 -1
  117. package/dist/cjs/node/vite/shared/resolveClientEntriesDev.js +2 -2
  118. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +2 -2
  119. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +50 -50
  120. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +1 -1
  121. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +13 -13
  122. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +14 -5
  123. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +4 -4
  124. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +1 -1
  125. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +5 -5
  126. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +5 -5
  127. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +25 -25
  128. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +46 -46
  129. package/dist/cjs/node/vite/utils.js +2 -7
  130. package/dist/cjs/shared/assertHookReturnedObject.js +1 -1
  131. package/dist/cjs/shared/assertPageContextProvidedByUser.js +2 -2
  132. package/dist/cjs/shared/createGlobalContextShared.js +26 -18
  133. package/dist/cjs/shared/createPageContextShared.js +1 -1
  134. package/dist/cjs/shared/getPageContextRequestUrl.js +1 -1
  135. package/dist/cjs/shared/getPageContextUrlComputed.js +5 -5
  136. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +3 -3
  137. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  138. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +3 -3
  139. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  140. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +2 -2
  141. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  142. package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
  143. package/dist/cjs/shared/hooks/execHook.js +2 -2
  144. package/dist/cjs/shared/hooks/getHook.js +4 -4
  145. package/dist/cjs/shared/modifyUrl.js +1 -1
  146. package/dist/cjs/shared/page-configs/assertPlusFileExport.js +2 -2
  147. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +4 -4
  148. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +21 -21
  149. package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +3 -3
  150. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -9
  151. package/dist/cjs/shared/preparePageContextForPublicUsage.js +3 -3
  152. package/dist/cjs/shared/route/abort.js +7 -7
  153. package/dist/cjs/shared/route/debug.js +1 -1
  154. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  155. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +3 -3
  156. package/dist/cjs/shared/route/index.js +5 -5
  157. package/dist/cjs/shared/route/loadPageRoutes.js +8 -8
  158. package/dist/cjs/shared/route/resolvePrecedence.js +2 -2
  159. package/dist/cjs/shared/route/resolveRoute.js +1 -1
  160. package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
  161. package/dist/cjs/shared/utils.js +1 -0
  162. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  163. package/dist/cjs/utils/assert.js +9 -9
  164. package/dist/cjs/utils/assertKeys.js +1 -1
  165. package/dist/cjs/utils/assertSetup.js +1 -1
  166. package/dist/cjs/utils/assertSingleInstance.js +5 -5
  167. package/dist/cjs/utils/catchInfiniteLoop.js +1 -1
  168. package/dist/cjs/utils/debug.js +1 -1
  169. package/dist/cjs/utils/findFile.js +5 -5
  170. package/dist/cjs/utils/findPackageJson.js +3 -3
  171. package/dist/cjs/utils/formatHintLog.js +1 -1
  172. package/dist/cjs/utils/freezePartial.js +1 -1
  173. package/dist/cjs/utils/genPromise.js +2 -2
  174. package/dist/cjs/utils/getMostSimilar.js +1 -1
  175. package/dist/cjs/utils/injectRollupInputs.js +2 -2
  176. package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -1
  177. package/dist/cjs/utils/objectAssignSafe.js +1 -1
  178. package/dist/cjs/utils/pLimit.js +4 -4
  179. package/dist/cjs/utils/parseNpmPackage.js +2 -2
  180. package/dist/cjs/utils/parseUrl.js +3 -3
  181. package/dist/cjs/utils/path.js +1 -1
  182. package/dist/cjs/utils/preservePropertyGetters.js +1 -1
  183. package/dist/cjs/utils/{removeFileExtention.js → removeFileExtension.js} +2 -2
  184. package/dist/cjs/utils/requireResolve.js +10 -10
  185. package/dist/cjs/utils/rollupSourceMap.js +2 -2
  186. package/dist/cjs/utils/stripAnsi.js +1 -1
  187. package/dist/cjs/utils/styleFileRE.js +1 -0
  188. package/dist/cjs/utils/trimWithAnsi.js +1 -1
  189. package/dist/esm/__internal/index.js +2 -2
  190. package/dist/esm/client/index.d.ts +1 -1
  191. package/dist/esm/client/index.js +1 -1
  192. package/dist/esm/client/node.js +1 -1
  193. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  194. package/dist/esm/client/runtime-client-routing/getPageContext/removeBuiltInOverrides.js +1 -1
  195. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.js +1 -1
  196. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +2 -3
  197. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +5 -5
  198. package/dist/esm/client/runtime-client-routing/globalContext.js +1 -1
  199. package/dist/esm/client/runtime-client-routing/history.js +6 -6
  200. package/dist/esm/client/runtime-client-routing/initClientRouter.js +1 -1
  201. package/dist/esm/client/runtime-client-routing/initOnLinkClick.js +1 -1
  202. package/dist/esm/client/runtime-client-routing/initOnPopState.js +1 -1
  203. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  204. package/dist/esm/client/runtime-client-routing/navigate.js +1 -1
  205. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +2 -2
  206. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  207. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +1 -1
  208. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +20 -20
  209. package/dist/esm/client/runtime-client-routing/setScrollPosition.js +1 -1
  210. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  211. package/dist/esm/client/shared/createGetGlobalContextClient.js +3 -3
  212. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -1
  213. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +3 -3
  214. package/dist/esm/node/api/build.js +6 -2
  215. package/dist/esm/node/api/dev.js +1 -1
  216. package/dist/esm/node/api/prepareViteApiCall.js +8 -8
  217. package/dist/esm/node/api/prerender.js +1 -1
  218. package/dist/esm/node/api/preview.js +2 -2
  219. package/dist/esm/node/cli/entry.js +1 -1
  220. package/dist/esm/node/cli/parseCli.js +2 -2
  221. package/dist/esm/node/client/router.js +1 -1
  222. package/dist/esm/node/createPageRenderer.js +1 -1
  223. package/dist/esm/node/prerender/context.d.ts +1 -1
  224. package/dist/esm/node/prerender/context.js +1 -1
  225. package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +1 -0
  226. package/dist/esm/node/prerender/resolvePrerenderConfig.js +3 -2
  227. package/dist/esm/node/prerender/runPrerender.d.ts +9 -6
  228. package/dist/esm/node/prerender/runPrerender.js +90 -45
  229. package/dist/esm/node/prerender/runPrerenderEntry.js +1 -1
  230. package/dist/esm/node/prerender/utils.d.ts +1 -0
  231. package/dist/esm/node/prerender/utils.js +1 -0
  232. package/dist/esm/node/runtime/globalContext.js +25 -18
  233. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +8 -8
  234. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +1 -1
  235. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.js +1 -1
  236. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +5 -5
  237. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +3 -3
  238. package/dist/esm/node/runtime/html/injectAssets.js +2 -2
  239. package/dist/esm/node/runtime/html/renderHtml.js +10 -10
  240. package/dist/esm/node/runtime/html/serializeContext.js +5 -5
  241. package/dist/esm/node/runtime/html/stream.d.ts +1 -1
  242. package/dist/esm/node/runtime/html/stream.js +21 -21
  243. package/dist/esm/node/runtime/index-deprecated.js +2 -2
  244. package/dist/esm/node/runtime/index.js +1 -1
  245. package/dist/esm/node/runtime/renderPage/analyzePage.js +4 -4
  246. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  247. package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
  248. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +5 -6
  249. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +1 -1
  250. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  251. package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +1 -1
  252. package/dist/esm/node/runtime/renderPage/debugPageFiles.js +1 -1
  253. package/dist/esm/node/runtime/renderPage/execHookServer.js +2 -5
  254. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +1 -1
  255. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +5 -5
  256. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  257. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  258. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
  259. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  260. package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
  261. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  262. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
  263. package/dist/esm/node/runtime/renderPage/isFontFallback.js +3 -3
  264. package/dist/esm/node/runtime/renderPage/isNewError.d.ts +2 -0
  265. package/dist/esm/node/runtime/renderPage/isNewError.js +2 -1
  266. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +11 -11
  267. package/dist/esm/node/runtime/renderPage/log404/index.js +5 -9
  268. package/dist/esm/node/runtime/renderPage/logErrorHint/errors.d.ts +1 -1
  269. package/dist/esm/node/runtime/renderPage/logErrorHint/errors.js +1 -1
  270. package/dist/esm/node/runtime/renderPage/logErrorHint.js +18 -18
  271. package/dist/esm/node/runtime/renderPage/loggerProd.d.ts +1 -1
  272. package/dist/esm/node/runtime/renderPage/loggerProd.js +3 -3
  273. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  274. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -2
  275. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
  276. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +24 -6
  277. package/dist/esm/node/runtime/renderPage.d.ts +0 -11
  278. package/dist/esm/node/runtime/renderPage.js +20 -37
  279. package/dist/esm/node/runtime/universal-middleware.js +2 -2
  280. package/dist/esm/node/runtime/utils.d.ts +1 -1
  281. package/dist/esm/node/runtime/utils.js +1 -1
  282. package/dist/esm/node/runtime-dev/createDevMiddleware.js +3 -3
  283. package/dist/esm/node/shared/extractAssetsQuery.js +1 -1
  284. package/dist/esm/node/shared/getVikeConfigError.d.ts +13 -0
  285. package/dist/esm/node/shared/getVikeConfigError.js +20 -0
  286. package/dist/esm/node/shared/resolveBase.js +1 -1
  287. package/dist/esm/node/shared/utils.d.ts +1 -0
  288. package/dist/esm/node/shared/utils.js +1 -0
  289. package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +2 -2
  290. package/dist/esm/node/vite/index.js +2 -2
  291. package/dist/esm/node/vite/plugins/pluginBaseUrls.js +3 -3
  292. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -2
  293. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +14 -12
  294. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +10 -10
  295. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +10 -10
  296. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +12 -12
  297. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.d.ts +1 -2
  298. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +11 -12
  299. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +11 -9
  300. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
  301. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +3 -3
  302. package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +3 -3
  303. package/dist/esm/node/vite/plugins/pluginBuild.js +1 -1
  304. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +2 -2
  305. package/dist/esm/node/vite/plugins/pluginCommon.js +14 -14
  306. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +1 -1
  307. package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +5 -5
  308. package/dist/esm/node/vite/plugins/pluginDev.js +8 -8
  309. package/dist/esm/node/vite/plugins/pluginEnvVars.js +5 -5
  310. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +8 -8
  311. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +3 -3
  312. package/dist/esm/node/vite/plugins/pluginFileEnv.js +4 -4
  313. package/dist/esm/node/vite/plugins/pluginPreview.js +5 -5
  314. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +3 -3
  315. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +7 -7
  316. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.js +11 -11
  317. package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.js +13 -3
  318. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +3 -3
  319. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +1 -1
  320. package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +2 -2
  321. package/dist/esm/node/vite/shared/addSsrMiddleware.js +3 -3
  322. package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
  323. package/dist/esm/node/vite/shared/getFilePath.d.ts +5 -5
  324. package/dist/esm/node/vite/shared/getFilePath.js +22 -22
  325. package/dist/esm/node/vite/shared/getHttpRequestAsyncStore.js +4 -4
  326. package/dist/esm/node/vite/shared/getOutDirs.js +2 -2
  327. package/dist/esm/node/vite/shared/getViteConfigRuntime.js +3 -3
  328. package/dist/esm/node/vite/shared/isAsset.js +1 -1
  329. package/dist/esm/node/vite/shared/isViteCliCall.js +1 -1
  330. package/dist/esm/node/vite/shared/isViteServerBuild.js +2 -2
  331. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +1 -1
  332. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +1 -1
  333. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +5 -5
  334. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +3 -3
  335. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +10 -10
  336. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +2 -2
  337. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +2 -2
  338. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +2 -2
  339. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +2 -2
  340. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +1 -1
  341. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +1 -1
  342. package/dist/esm/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +4 -4
  343. package/dist/esm/node/vite/shared/loggerNotProd.js +3 -3
  344. package/dist/esm/node/vite/shared/resolveClientEntriesDev.js +3 -3
  345. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +1 -1
  346. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +50 -50
  347. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +1 -1
  348. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +10 -10
  349. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +14 -5
  350. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +4 -4
  351. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +1 -1
  352. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +5 -5
  353. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +6 -6
  354. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +14 -14
  355. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +2 -2
  356. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +52 -52
  357. package/dist/esm/node/vite/utils.d.ts +0 -6
  358. package/dist/esm/node/vite/utils.js +2 -7
  359. package/dist/esm/shared/assertHookReturnedObject.js +1 -1
  360. package/dist/esm/shared/assertPageContextProvidedByUser.d.ts +1 -1
  361. package/dist/esm/shared/assertPageContextProvidedByUser.js +2 -2
  362. package/dist/esm/shared/createGlobalContextShared.d.ts +2 -0
  363. package/dist/esm/shared/createGlobalContextShared.js +28 -20
  364. package/dist/esm/shared/createPageContextShared.js +1 -1
  365. package/dist/esm/shared/getPageContextRequestUrl.js +1 -1
  366. package/dist/esm/shared/getPageContextUrlComputed.js +5 -5
  367. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.d.ts +1 -1
  368. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +3 -3
  369. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.d.ts +1 -1
  370. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  371. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +3 -3
  372. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  373. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +2 -2
  374. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  375. package/dist/esm/shared/getProxyForPublicUsage.js +2 -2
  376. package/dist/esm/shared/hooks/execHook.js +3 -3
  377. package/dist/esm/shared/hooks/getHook.js +4 -4
  378. package/dist/esm/shared/modifyUrl.js +1 -1
  379. package/dist/esm/shared/modifyUrlSameOrigin.js +1 -1
  380. package/dist/esm/shared/page-configs/assertPlusFileExport.js +2 -2
  381. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +4 -4
  382. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +2 -2
  383. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +22 -22
  384. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +3 -3
  385. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +11 -11
  386. package/dist/esm/shared/preparePageContextForPublicUsage.js +4 -4
  387. package/dist/esm/shared/route/abort.js +8 -8
  388. package/dist/esm/shared/route/debug.js +1 -1
  389. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  390. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +5 -5
  391. package/dist/esm/shared/route/index.js +6 -6
  392. package/dist/esm/shared/route/loadPageRoutes.js +8 -8
  393. package/dist/esm/shared/route/resolvePrecedence.d.ts +2 -2
  394. package/dist/esm/shared/route/resolvePrecedence.js +2 -2
  395. package/dist/esm/shared/route/resolveRoute.js +1 -1
  396. package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
  397. package/dist/esm/shared/utils.d.ts +1 -0
  398. package/dist/esm/shared/utils.js +1 -0
  399. package/dist/esm/types/Config.d.ts +6 -0
  400. package/dist/esm/types/FilePath.d.ts +1 -1
  401. package/dist/esm/types/PageConfig.d.ts +1 -1
  402. package/dist/esm/types/PageContext.d.ts +2 -2
  403. package/dist/esm/types/index-dreprecated.d.ts +1 -1
  404. package/dist/esm/types/index.d.ts +3 -3
  405. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  406. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  407. package/dist/esm/utils/assert.js +9 -9
  408. package/dist/esm/utils/assertKeys.js +1 -1
  409. package/dist/esm/utils/assertSetup.js +1 -1
  410. package/dist/esm/utils/assertSingleInstance.js +5 -5
  411. package/dist/esm/utils/catchInfiniteLoop.js +1 -1
  412. package/dist/esm/utils/debug.js +1 -1
  413. package/dist/esm/utils/findFile.js +2 -2
  414. package/dist/esm/utils/findPackageJson.js +2 -2
  415. package/dist/esm/utils/formatHintLog.js +1 -1
  416. package/dist/esm/utils/freezePartial.js +1 -1
  417. package/dist/esm/utils/genPromise.d.ts +1 -1
  418. package/dist/esm/utils/genPromise.js +2 -2
  419. package/dist/esm/utils/getMostSimilar.js +1 -1
  420. package/dist/esm/utils/injectRollupInputs.js +2 -2
  421. package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
  422. package/dist/esm/utils/objectAssignSafe.js +1 -1
  423. package/dist/esm/utils/pLimit.js +4 -4
  424. package/dist/esm/utils/parseNpmPackage.js +2 -2
  425. package/dist/esm/utils/parseUrl.js +3 -3
  426. package/dist/esm/utils/path.js +1 -1
  427. package/dist/esm/utils/preservePropertyGetters.js +1 -1
  428. package/dist/esm/utils/removeFileExtension.d.ts +1 -0
  429. package/dist/esm/utils/{removeFileExtention.js → removeFileExtension.js} +1 -1
  430. package/dist/esm/utils/requireResolve.d.ts +3 -3
  431. package/dist/esm/utils/requireResolve.js +10 -10
  432. package/dist/esm/utils/rollupSourceMap.js +2 -2
  433. package/dist/esm/utils/stripAnsi.js +1 -1
  434. package/dist/esm/utils/styleFileRE.js +1 -0
  435. package/dist/esm/utils/trimWithAnsi.js +1 -1
  436. package/package.json +2 -2
  437. package/dist/esm/utils/removeFileExtention.d.ts +0 -1
@@ -26,17 +26,18 @@ export { vikeConfigErrorRecoverMsg };
26
26
  // - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
27
27
  // - In development: globalObject.viteDevServer which is Vite's development server
28
28
  // - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExports
29
- import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION } from './utils.js';
29
+ import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, } from './utils.js';
30
30
  import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
31
31
  import { virtualFileIdEntryServer } from '../shared/virtualFiles/virtualFileEntry.js';
32
32
  import pc from '@brillout/picocolors';
33
33
  import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
34
34
  import { assertV1Design } from '../shared/assertV1Design.js';
35
35
  import { resolveBase } from '../shared/resolveBase.js';
36
- import { createGlobalContextShared, getGlobalContextSyncErrMsg } from '../../shared/createGlobalContextShared.js';
36
+ import { createGlobalContextShared, getGlobalContextSyncErrMsg, } from '../../shared/createGlobalContextShared.js';
37
37
  import { prepareGlobalContextForPublicUsage } from '../../shared/prepareGlobalContextForPublicUsage.js';
38
- import { renderPage_vikeConfigHasError } from './renderPage.js';
39
- import { logRuntimeInfo } from './loggerRuntime.js';
38
+ import { logRuntimeError, logRuntimeInfo } from './loggerRuntime.js';
39
+ import { getVikeConfigErrorBuild, setVikeConfigError } from '../shared/getVikeConfigError.js';
40
+ import { hasAlreadyLogged } from './renderPage/isNewError.js';
40
41
  const debug = createDebugger('vike:globalContext');
41
42
  const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGlobalContext());
42
43
  // Trick to break down TypeScript circular dependency
@@ -122,7 +123,7 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
122
123
  setIsProduction(false);
123
124
  // We cannot cache globalObject.viteDevServer because it's fully replaced when the user modifies vite.config.js => Vite's dev server is fully reloaded and a new viteDevServer replaces the previous one.
124
125
  if (!globalObject.viteDevServer) {
125
- assertIsNotInitilizedYet();
126
+ assertIsNotInitializedYet();
126
127
  }
127
128
  assert(globalObject.viteConfig);
128
129
  globalObject.viteDevServer = viteDevServer;
@@ -135,11 +136,11 @@ async function setGlobalContext_viteDevServer(viteDevServer) {
135
136
  function setGlobalContext_viteConfig(viteConfig, viteConfigRuntime) {
136
137
  if (globalObject.viteConfig)
137
138
  return;
138
- assertIsNotInitilizedYet();
139
+ assertIsNotInitializedYet();
139
140
  globalObject.viteConfig = viteConfig;
140
141
  globalObject.viteConfigRuntime = viteConfigRuntime;
141
142
  }
142
- function assertIsNotInitilizedYet() {
143
+ function assertIsNotInitializedYet() {
143
144
  // In development, globalObject.viteDevServer always needs to be awaited for before initializing globalObject.globalContext
144
145
  assert(!globalObject.globalContext);
145
146
  }
@@ -163,7 +164,7 @@ function getViteConfig() {
163
164
  }
164
165
  async function initGlobalContext_renderPage() {
165
166
  debug('initGlobalContext_renderPage()');
166
- // `globalObject.isProduction === undefined` when using production server without `vike-server`. (There isn't any reliable signal we can use to determine early whether the environement is production or development.)
167
+ // `globalObject.isProduction === undefined` when using production server without `vike-server`. (There isn't any reliable signal we can use to determine early whether the environment is production or development.)
167
168
  if (globalObject.isProduction === undefined)
168
169
  setIsProduction(true);
169
170
  await initGlobalContext();
@@ -180,7 +181,7 @@ async function initGlobalContext_runPrerender() {
180
181
  // We assume initGlobalContext_runPrerender() to be called before:
181
182
  // - initGlobalContext_renderPage()
182
183
  // - initGlobalContext_getGlobalContextAsync()
183
- assertIsNotInitilizedYet();
184
+ assertIsNotInitializedYet();
184
185
  await initGlobalContext();
185
186
  }
186
187
  async function initGlobalContext_getGlobalContextAsync() {
@@ -300,8 +301,10 @@ async function updateUserFiles() {
300
301
  globalObject.waitForUserFilesUpdateResolve ?? (globalObject.waitForUserFilesUpdateResolve = []);
301
302
  globalObject.waitForUserFilesUpdateResolve.push(resolve);
302
303
  const onError = (err) => {
303
- console.error(err);
304
- renderPage_vikeConfigHasError({ hasRuntimeError: { err } });
304
+ if (!hasAlreadyLogged(err)) {
305
+ logRuntimeError(err, null);
306
+ }
307
+ setVikeConfigError({ errorRuntime: { err } });
305
308
  globalObject.vikeConfigHasRuntimeError = true;
306
309
  return { success: false };
307
310
  };
@@ -311,7 +314,7 @@ async function updateUserFiles() {
311
314
  logRuntimeInfo(vikeConfigErrorRecoverMsg, null, 'error-recover');
312
315
  }
313
316
  globalObject.vikeConfigHasRuntimeError = false;
314
- renderPage_vikeConfigHasError({ hasRuntimeError: false });
317
+ setVikeConfigError({ errorRuntime: false });
315
318
  globalObject.waitForUserFilesUpdateResolve.forEach((resolve) => resolve());
316
319
  globalObject.waitForUserFilesUpdateResolve = [];
317
320
  resolve();
@@ -340,6 +343,9 @@ async function updateUserFiles() {
340
343
  if (hasError)
341
344
  return onError(err);
342
345
  virtualFileExports = virtualFileExports.default || virtualFileExports;
346
+ if (getVikeConfigErrorBuild()) {
347
+ return { success: false };
348
+ }
343
349
  try {
344
350
  await setGlobalContext(virtualFileExports);
345
351
  }
@@ -354,6 +360,7 @@ async function updateUserFiles() {
354
360
  return onSuccess();
355
361
  }
356
362
  async function setGlobalContext(virtualFileExports) {
363
+ assert(!getVikeConfigErrorBuild());
357
364
  const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext);
358
365
  assertV1Design(
359
366
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
@@ -368,7 +375,7 @@ async function addGlobalContext(globalContext) {
368
375
  const globalContextBase = {
369
376
  isClientSide: false,
370
377
  _pageRoutes: pageRoutes,
371
- _onBeforeRouteHook: onBeforeRouteHook
378
+ _onBeforeRouteHook: onBeforeRouteHook,
372
379
  };
373
380
  const { viteDevServer, viteConfig, viteConfigRuntime, isPrerendering, isProduction } = globalObject;
374
381
  assert(typeof isProduction === 'boolean');
@@ -386,7 +393,7 @@ async function addGlobalContext(globalContext) {
386
393
  assetsManifest: null,
387
394
  _viteDevServer: viteDevServer,
388
395
  viteConfig,
389
- viteConfigRuntime
396
+ viteConfigRuntime,
390
397
  };
391
398
  }
392
399
  else {
@@ -402,21 +409,21 @@ async function addGlobalContext(globalContext) {
402
409
  assetsManifest,
403
410
  _viteDevServer: null,
404
411
  viteConfigRuntime: buildInfo.viteConfigRuntime,
405
- _usesClientRouter: buildInfo.usesClientRouter
412
+ _usesClientRouter: buildInfo.usesClientRouter,
406
413
  };
407
414
  if (isPrerendering) {
408
415
  assert(viteConfig);
409
416
  return {
410
417
  ...globalContextBase2,
411
418
  _isPrerendering: true,
412
- viteConfig
419
+ viteConfig,
413
420
  };
414
421
  }
415
422
  else {
416
423
  return {
417
424
  ...globalContextBase2,
418
425
  _isPrerendering: false,
419
- viteConfig: null
426
+ viteConfig: null,
420
427
  };
421
428
  }
422
429
  }
@@ -430,7 +437,7 @@ function getInitialGlobalContext() {
430
437
  const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
431
438
  return {
432
439
  viteDevServerPromise,
433
- viteDevServerPromiseResolve
440
+ viteDevServerPromiseResolve,
434
441
  };
435
442
  }
436
443
  function resolveBaseRuntime(viteConfigRuntime, config) {
@@ -1,7 +1,7 @@
1
1
  import { isFontFallback } from '../../renderPage/isFontFallback.js';
2
2
  export { getHtmlTags };
3
3
  import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../utils.js';
4
- import { getGlobalContextClientSerialized, getPageContextClientSerialized } from '../serializeContext.js';
4
+ import { getGlobalContextClientSerialized, getPageContextClientSerialized, } from '../serializeContext.js';
5
5
  import { sanitizeJson } from './sanitizeJson.js';
6
6
  import { inferAssetTag, inferPreloadTag } from './inferHtmlTags.js';
7
7
  import { mergeScriptTags } from './mergeScriptTags.js';
@@ -23,7 +23,7 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
23
23
  // We could allow the user to change the position of <script> but we currently don't:
24
24
  // - Because of mergeScriptEntries()
25
25
  // - We would need to add HTML_STREAM to to PreloadFilterInject
26
- // To suppor this, we should add the JavaScript entry to injectFilterEntries (with an `src` value of `null`)
26
+ // To support this, we should add the JavaScript entry to injectFilterEntries (with an `src` value of `null`)
27
27
  return false;
28
28
  }
29
29
  return true;
@@ -51,7 +51,7 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
51
51
  ...asset,
52
52
  inject,
53
53
  // @ts-ignore
54
- [stamp]: true
54
+ [stamp]: true,
55
55
  };
56
56
  injectFilterEntries.push(entry);
57
57
  });
@@ -126,14 +126,14 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
126
126
  htmlTag: () =>
127
127
  // Needs to be called after resolvePageContextPromise()
128
128
  getPageContextJsonScriptTag(pageContext),
129
- position: positionJavaScriptEntry
129
+ position: positionJavaScriptEntry,
130
130
  });
131
131
  // <script id="vike_globalContext" type="application/json">
132
132
  htmlTags.push({
133
133
  htmlTag: () =>
134
134
  // Needs to be called after resolvePageContextPromise()
135
135
  getGlobalContextJsonScriptTag(pageContext),
136
- position: positionJavaScriptEntry
136
+ position: positionJavaScriptEntry,
137
137
  });
138
138
  }
139
139
  // The JavaScript entry <script> tag
@@ -141,7 +141,7 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
141
141
  if (scriptEntry) {
142
142
  htmlTags.push({
143
143
  htmlTag: scriptEntry,
144
- position: positionJavaScriptEntry
144
+ position: positionJavaScriptEntry,
145
145
  });
146
146
  }
147
147
  // Preload tags
@@ -216,12 +216,12 @@ function checkForWarnings(injectFilterEntries) {
216
216
  // - https://github.com/vitejs/vite/issues/2282
217
217
  // - https://github.com/vikejs/vike/issues/261
218
218
  assertWarning(a.inject, `[injectFilter()] We recommend against not injecting ${a.src}`, {
219
- onlyOnce: true
219
+ onlyOnce: true,
220
220
  });
221
221
  }
222
222
  if (a.assetType === 'script') {
223
223
  assertWarning(a.inject, `[injectFilter()] We recommend against not preloading JavaScript (${a.src})`, {
224
- onlyOnce: true
224
+ onlyOnce: true,
225
225
  });
226
226
  }
227
227
  });
@@ -18,7 +18,7 @@ async function getViteDevScript(pageContext) {
18
18
  const viteInjection = fakeHtml.slice(fakeHtmlBegin.length, -1 * fakeHtmlEnd.length);
19
19
  assert(viteInjection.includes('script'));
20
20
  assertWarning(!viteInjection.includes('import('), `Unexpected Vite injected HMR code. ${reachOutCTA}`, {
21
- onlyOnce: true
21
+ onlyOnce: true,
22
22
  });
23
23
  const viteDevScript = viteInjection;
24
24
  return viteDevScript;
@@ -14,7 +14,7 @@ function inferPreloadTag(pageAsset) {
14
14
  !assetType ? null : `as="${assetType}"`,
15
15
  !mediaType ? null : `type="${mediaType}"`,
16
16
  // `crossorigin` is needed for fonts, see https://developer.mozilla.org/en-US/docs/Web/HTML/Link_types/preload#cors-enabled_fetches
17
- !isCrossOrigin(pageAsset) ? null : 'crossorigin'
17
+ !isCrossOrigin(pageAsset) ? null : 'crossorigin',
18
18
  ]
19
19
  .filter(Boolean)
20
20
  .join(' ');
@@ -6,22 +6,22 @@ async function injectAssets__public(htmlString, pageContext) {
6
6
  assertWarning(false, '`_injectAssets()` is deprecated and will be removed.', { onlyOnce: true, showStackTrace: true });
7
7
  assertUsage(typeof htmlString === 'string', '[injectAssets(htmlString, pageContext)]: Argument `htmlString` should be a string.', { showStackTrace: true });
8
8
  assertUsage(pageContext, '[injectAssets(htmlString, pageContext)]: Argument `pageContext` is missing.', {
9
- showStackTrace: true
9
+ showStackTrace: true,
10
10
  });
11
11
  const errMsg = (body) => '[injectAssets(htmlString, pageContext)]: ' +
12
12
  body +
13
13
  '. Make sure that `pageContext` is the object that Vike provided to your `render(pageContext)` hook.';
14
14
  assertUsage(hasProp(pageContext, 'urlPathname', 'string'), errMsg('`pageContext.urlPathname` should be a string'), {
15
- showStackTrace: true
15
+ showStackTrace: true,
16
16
  });
17
17
  assertUsage(hasProp(pageContext, 'pageId', 'string'), errMsg('`pageContext.pageId` should be a string'), {
18
- showStackTrace: true
18
+ showStackTrace: true,
19
19
  });
20
20
  assertUsage(hasProp(pageContext, '__getPageAssets'), errMsg('`pageContext.__getPageAssets` is missing'), {
21
- showStackTrace: true
21
+ showStackTrace: true,
22
22
  });
23
23
  assertUsage(hasProp(pageContext, '_passToClient', 'string[]'), errMsg('`pageContext._passToClient` is missing'), {
24
- showStackTrace: true
24
+ showStackTrace: true,
25
25
  });
26
26
  castProp(pageContext, '__getPageAssets');
27
27
  htmlString = await injectHtmlTagsToString([htmlString], pageContext, null);
@@ -29,7 +29,7 @@ function joinHtmlTags(htmlTags) {
29
29
  function injectHtmlFragment(position, htmlFragment, htmlString) {
30
30
  if (position === 'HTML_BEGIN') {
31
31
  {
32
- const res = injectAtPaceholder(htmlFragment, htmlString, true);
32
+ const res = injectAtPlaceholder(htmlFragment, htmlString, true);
33
33
  if (res)
34
34
  return res;
35
35
  }
@@ -39,7 +39,7 @@ function injectHtmlFragment(position, htmlFragment, htmlString) {
39
39
  }
40
40
  if (position === 'HTML_END') {
41
41
  {
42
- const res = injectAtPaceholder(htmlFragment, htmlString, false);
42
+ const res = injectAtPlaceholder(htmlFragment, htmlString, false);
43
43
  if (res)
44
44
  return res;
45
45
  }
@@ -148,7 +148,7 @@ function getTagClosing(tag) {
148
148
  const tagClosing = new RegExp(`</${tag}>`, 'i');
149
149
  return tagClosing;
150
150
  }
151
- function injectAtPaceholder(htmlFragment, htmlString, isFirst) {
151
+ function injectAtPlaceholder(htmlFragment, htmlString, isFirst) {
152
152
  const placeholder = isFirst ? '__VITE_PLUGIN_SSR__ASSETS_FIRST__' : '__VITE_PLUGIN__SSR_ASSETS_LAST__';
153
153
  const parts = htmlString.split(placeholder);
154
154
  if (parts.length === 1)
@@ -2,7 +2,7 @@ export { injectHtmlTagsToString };
2
2
  export { injectHtmlTagsToStream };
3
3
  import { assert, isCallable, isPromise } from '../utils.js';
4
4
  import { assertPageContextProvidedByUser } from '../../../shared/assertPageContextProvidedByUser.js';
5
- import { joinHtmlTags, injectHtmlTags, createHtmlHeadIfMissing, injectHtmlTagsUsingStream } from './injectAssets/injectHtmlTags.js';
5
+ import { joinHtmlTags, injectHtmlTags, createHtmlHeadIfMissing, injectHtmlTagsUsingStream, } from './injectAssets/injectHtmlTags.js';
6
6
  import { getHtmlTags } from './injectAssets/getHtmlTags.js';
7
7
  import { getViteDevScript } from './injectAssets/getViteDevScript.js';
8
8
  async function injectHtmlTagsToString(htmlParts, pageContext, injectFilter) {
@@ -20,7 +20,7 @@ function injectHtmlTagsToStream(pageContext, streamFromReactStreamingPackage, in
20
20
  return {
21
21
  injectAtStreamBegin,
22
22
  injectAtStreamAfterFirstChunk,
23
- injectAtStreamEnd
23
+ injectAtStreamEnd,
24
24
  };
25
25
  async function injectAtStreamBegin(htmlPartsBegin) {
26
26
  const pageAssets = await pageContext.__getPageAssets();
@@ -3,9 +3,9 @@ export { dangerouslySkipEscape };
3
3
  export { renderDocumentHtml };
4
4
  export { isDocumentHtml };
5
5
  export { getHtmlString };
6
- import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isHtml, isPromise, objectAssign } from '../utils.js';
6
+ import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isHtml, isPromise, objectAssign, } from '../utils.js';
7
7
  import { injectHtmlTagsToString, injectHtmlTagsToStream } from './injectAssets.js';
8
- import { processStream, isStream, streamToString } from './stream.js';
8
+ import { processStream, isStream, streamToString, } from './stream.js';
9
9
  import { isStreamFromReactStreamingPackage } from './stream/react-streaming.js';
10
10
  import pc from '@brillout/picocolors';
11
11
  function isDocumentHtml(something) {
@@ -42,7 +42,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
42
42
  const { htmlStream } = render;
43
43
  const streamWrapper = await renderHtmlStream(htmlStream, {
44
44
  htmlPartsBegin: render.htmlPartsBegin,
45
- htmlPartsEnd: render.htmlPartsEnd
45
+ htmlPartsEnd: render.htmlPartsEnd,
46
46
  }, pageContext, onErrorWhileStreaming, injectFilter);
47
47
  return streamWrapper;
48
48
  }
@@ -53,7 +53,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
53
53
  async function renderHtmlStream(streamOriginal, injectString, pageContext, onErrorWhileStreaming, injectFilter) {
54
54
  const processStreamOptions = {
55
55
  onErrorWhileStreaming,
56
- enableEagerStreaming: pageContext.enableEagerStreaming
56
+ enableEagerStreaming: pageContext.enableEagerStreaming,
57
57
  };
58
58
  if (injectString) {
59
59
  let streamFromReactStreamingPackage = null;
@@ -107,8 +107,8 @@ function escapeInject(templateStrings, ...templateVariables) {
107
107
  return {
108
108
  _template: {
109
109
  templateStrings,
110
- templateVariables: templateVariables
111
- }
110
+ templateVariables: templateVariables,
111
+ },
112
112
  };
113
113
  }
114
114
  function dangerouslySkipEscape(alreadyEscapedString) {
@@ -125,7 +125,7 @@ function _dangerouslySkipEscape(arg) {
125
125
  }
126
126
  assertWarning(false, `[dangerouslySkipEscape(${pc.cyan('str')})] Argument ${pc.cyan('str')} should be a string but we got ${pc.cyan(`typeof str === "${typeof arg}"`)}.`, {
127
127
  onlyOnce: false,
128
- showStackTrace: true
128
+ showStackTrace: true,
129
129
  });
130
130
  return { _escaped: String(arg) };
131
131
  }
@@ -180,7 +180,7 @@ function renderTemplate(templateContent, pageContext) {
180
180
  const nth = (i === 0 && '1st') || (i === 1 && '2nd') || (i === 2 && '3rd') || `${i}-th`;
181
181
  return [
182
182
  `The ${nth} HTML variable is ${msg}`,
183
- `The HTML was provided by the ${hookName}() hook at ${hookFilePath}.`
183
+ `The HTML was provided by the ${hookName}() hook at ${hookFilePath}.`,
184
184
  ]
185
185
  .filter(Boolean)
186
186
  .join(' ');
@@ -219,13 +219,13 @@ function renderTemplate(templateContent, pageContext) {
219
219
  if (htmlStream === null) {
220
220
  assert(htmlPartsEnd.length === 0);
221
221
  return {
222
- htmlPartsAll: htmlPartsBegin
222
+ htmlPartsAll: htmlPartsBegin,
223
223
  };
224
224
  }
225
225
  return {
226
226
  htmlStream,
227
227
  htmlPartsBegin,
228
- htmlPartsEnd
228
+ htmlPartsEnd,
229
229
  };
230
230
  }
231
231
  async function getHtmlString(htmlRender) {
@@ -22,7 +22,7 @@ const passToClientBuiltInPageContext = [
22
22
  pageContextInitIsPassedToClient,
23
23
  'pageId',
24
24
  'routeParams',
25
- 'data' // for data() hook
25
+ 'data', // for data() hook
26
26
  ];
27
27
  const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError];
28
28
  function getPageContextClientSerialized(pageContext) {
@@ -73,7 +73,7 @@ function serializeObject(obj, objName, passToClient) {
73
73
  // Non-serializable property set by the user
74
74
  let msg = [
75
75
  `${h(varName)} can't be serialized and, therefore, can't be passed to the client side.`,
76
- `Make sure ${h(varName)} is serializable, or remove ${h(JSON.stringify(prop))} from ${h('passToClient')}.`
76
+ `Make sure ${h(varName)} is serializable, or remove ${h(JSON.stringify(prop))} from ${h('passToClient')}.`,
77
77
  ].join(' ');
78
78
  if (isJsonSerializerError(err)) {
79
79
  msg = `${msg} Serialization error: ${err.messageCore}.`;
@@ -133,7 +133,7 @@ function getPageContextClientSerializedAbort(pageContext) {
133
133
  'abortStatusCode',
134
134
  'abortReason',
135
135
  'is404',
136
- 'pageProps'
136
+ 'pageProps',
137
137
  ].includes(prop));
138
138
  if (!pageContext._isLegacyRenderErrorPage) {
139
139
  assert(unknownProps.length === 0);
@@ -143,9 +143,9 @@ function getPageContextClientSerializedAbort(pageContext) {
143
143
  assertWarning(unknownProps.length === 0, [
144
144
  "The following pageContext values won't be available on the client-side:",
145
145
  unknownProps.map((p) => ` pageContext[${JSON.stringify(p)}]`),
146
- 'Use `throw render()` instead of `throw RenderErrorPage()`'
146
+ 'Use `throw render()` instead of `throw RenderErrorPage()`',
147
147
  ].join('\n'), {
148
- onlyOnce: false
148
+ onlyOnce: false,
149
149
  });
150
150
  }
151
151
  return serializeValue(pageContext);
@@ -50,7 +50,7 @@ declare function getStreamReadableNode(htmlRender: HtmlRender): Promise<null | S
50
50
  declare function getStreamReadableWeb(htmlRender: HtmlRender): null | StreamReadableWeb;
51
51
  declare function pipeToStreamWritableWeb(htmlRender: HtmlRender, writable: StreamWritableWeb): boolean;
52
52
  declare function pipeToStreamWritableNode(htmlRender: HtmlRender, writable: StreamWritableNode): boolean;
53
- declare function processStream(streamOriginal: StreamProviderAny, { injectStringAtBegin, injectStringAfterFirstChunk, injectStringAtEnd, onErrorWhileStreaming, enableEagerStreaming }: {
53
+ declare function processStream(streamOriginal: StreamProviderAny, { injectStringAtBegin, injectStringAfterFirstChunk, injectStringAtEnd, onErrorWhileStreaming, enableEagerStreaming, }: {
54
54
  injectStringAtBegin?: () => Promise<string>;
55
55
  injectStringAfterFirstChunk?: () => string | null;
56
56
  injectStringAtEnd?: () => Promise<string>;
@@ -19,8 +19,8 @@ export { streamReadableWebToString };
19
19
  export { streamPipeNodeToString };
20
20
  export { isStreamWritableWeb };
21
21
  export { isStreamWritableNode };
22
- import { assert, assertUsage, checkType, isObject, hasProp, objectAssign, capitalizeFirstLetter, assertWarning, isCallable, createDebugger, isBug } from '../utils.js';
23
- import { getStreamOfReactStreamingPackage, isStreamFromReactStreamingPackage, streamFromReactStreamingPackageToString } from './stream/react-streaming.js';
22
+ import { assert, assertUsage, checkType, isObject, hasProp, objectAssign, capitalizeFirstLetter, assertWarning, isCallable, createDebugger, isBug, } from '../utils.js';
23
+ import { getStreamOfReactStreamingPackage, isStreamFromReactStreamingPackage, streamFromReactStreamingPackageToString, } from './stream/react-streaming.js';
24
24
  import { import_ } from '@brillout/import';
25
25
  import pc from '@brillout/picocolors';
26
26
  const debug = createDebugger('vike:stream');
@@ -77,7 +77,7 @@ function stringToStreamReadableWeb(str) {
77
77
  start(controller) {
78
78
  controller.enqueue(encodeForWebStream(str));
79
79
  controller.close();
80
- }
80
+ },
81
81
  });
82
82
  return readableStream;
83
83
  }
@@ -121,7 +121,7 @@ async function streamPipeNodeToString(streamPipeNode) {
121
121
  else {
122
122
  resolve();
123
123
  }
124
- }
124
+ },
125
125
  });
126
126
  streamPipeNode(writable);
127
127
  return promise;
@@ -138,7 +138,7 @@ function streamPipeWebToString(streamPipeWeb) {
138
138
  close() {
139
139
  str += getClosingChunk();
140
140
  resolve(str);
141
- }
141
+ },
142
142
  });
143
143
  streamPipeWeb(writable);
144
144
  return promise;
@@ -212,7 +212,7 @@ function pipeToStreamWritableNode(htmlRender, writable) {
212
212
  checkType(htmlRender);
213
213
  assert(false);
214
214
  }
215
- async function processStream(streamOriginal, { injectStringAtBegin, injectStringAfterFirstChunk, injectStringAtEnd, onErrorWhileStreaming, enableEagerStreaming }) {
215
+ async function processStream(streamOriginal, { injectStringAtBegin, injectStringAfterFirstChunk, injectStringAtEnd, onErrorWhileStreaming, enableEagerStreaming, }) {
216
216
  const buffer = [];
217
217
  let streamOriginalHasStartedEmitting = false;
218
218
  let streamOriginalEnded = false;
@@ -310,7 +310,7 @@ async function processStream(streamOriginal, { injectStringAtBegin, injectString
310
310
  },
311
311
  onFlush() {
312
312
  flushStream();
313
- }
313
+ },
314
314
  });
315
315
  wrapperCreated = true;
316
316
  flushBuffer(); // In case onReadyToWrite() was already called (the flushBuffer() of onReadyToWrite() wasn't called because `wrapperCreated === false`)
@@ -373,7 +373,7 @@ async function processStream(streamOriginal, { injectStringAtBegin, injectString
373
373
  return !enableEagerStreaming && !streamOriginalHasStartedEmitting;
374
374
  }
375
375
  }
376
- async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onFlush, onReadyToWrite }) {
376
+ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onFlush, onReadyToWrite, }) {
377
377
  if (isStreamFromReactStreamingPackage(streamOriginal)) {
378
378
  debug(`onRenderHtml() hook returned ${pc.cyan('react-streaming')} result`);
379
379
  const stream = getStreamOfReactStreamingPackage(streamOriginal);
@@ -429,13 +429,13 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
429
429
  }
430
430
  callback(err);
431
431
  endStream();
432
- }
432
+ },
433
433
  });
434
434
  // Forward the flush() call
435
435
  objectAssign(writableProxy, {
436
436
  flush: () => {
437
437
  onFlush();
438
- }
438
+ },
439
439
  });
440
440
  assert(typeof writableProxy.flush === 'function');
441
441
  const pipeOriginal = getStreamPipeNode(streamOriginal);
@@ -492,7 +492,7 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
492
492
  abort(err) {
493
493
  onError(err);
494
494
  endStream();
495
- }
495
+ },
496
496
  });
497
497
  }
498
498
  else {
@@ -507,7 +507,7 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
507
507
  async onEnd() {
508
508
  await onEnd();
509
509
  endStream();
510
- }
510
+ },
511
511
  });
512
512
  }
513
513
  const pipeOriginal = getStreamPipeWeb(streamOriginal);
@@ -540,15 +540,15 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
540
540
  },
541
541
  async onEnd() {
542
542
  await closeStream();
543
- }
543
+ },
544
544
  });
545
545
  },
546
546
  async cancel(...args) {
547
547
  isCancel = true;
548
548
  await readableOriginal.cancel(...args);
549
- // If readableOriginal has implemented readableOriginal.cancel() then the onEnd() callback and therfore closeStream() may already have been called at this point
549
+ // If readableOriginal has implemented readableOriginal.cancel() then the onEnd() callback and therefore closeStream() may already have been called at this point
550
550
  await closeStream();
551
- }
551
+ },
552
552
  });
553
553
  const writeChunk = (chunk) => {
554
554
  if (
@@ -565,7 +565,7 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
565
565
  const flushStream = null;
566
566
  return {
567
567
  streamWrapper: readableProxy,
568
- streamWrapperOperations: { writeChunk, flushStream }
568
+ streamWrapperOperations: { writeChunk, flushStream },
569
569
  };
570
570
  }
571
571
  if (isStreamReadableNode(streamOriginal)) {
@@ -600,12 +600,12 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
600
600
  });
601
601
  return {
602
602
  streamWrapper: readableProxy,
603
- streamWrapperOperations: { writeChunk, flushStream }
603
+ streamWrapperOperations: { writeChunk, flushStream },
604
604
  };
605
605
  }
606
606
  assert(false);
607
607
  }
608
- async function handleReadableWeb(readable, { onData, onError, onEnd }) {
608
+ async function handleReadableWeb(readable, { onData, onError, onEnd, }) {
609
609
  const reader = readable.getReader();
610
610
  while (true) {
611
611
  let result;
@@ -640,7 +640,7 @@ const __streamPipeWeb = '__streamPipeWeb';
640
640
  function pipeWebStream(pipe) {
641
641
  assertWarning(false, 'pipeWebStream() is outdated, use stampPipe() instead. See https://vike.dev/streaming', {
642
642
  onlyOnce: true,
643
- showStackTrace: true
643
+ showStackTrace: true,
644
644
  });
645
645
  return { [__streamPipeWeb]: pipe };
646
646
  }
@@ -675,7 +675,7 @@ const __streamPipeNode = '__streamPipeNode';
675
675
  function pipeNodeStream(pipe) {
676
676
  assertWarning(false, 'pipeNodeStream() is outdated, use stampPipe() instead. See https://vike.dev/streaming', {
677
677
  onlyOnce: true,
678
- showStackTrace: true
678
+ showStackTrace: true,
679
679
  });
680
680
  return { [__streamPipeNode]: pipe };
681
681
  }
@@ -707,7 +707,7 @@ function isStreamPipeNode(thing) {
707
707
  }
708
708
  function stampPipe(pipe, pipeType) {
709
709
  assertUsage(pipeType, `stampPipe(pipe, pipeType): argument ${pc.cyan('pipeType')} is missing.)`, {
710
- showStackTrace: true
710
+ showStackTrace: true,
711
711
  });
712
712
  assertUsage(['web-stream', 'node-stream'].includes(pipeType), `stampPipe(pipe, pipeType): argument ${pc.cyan('pipeType')} should be either ${pc.cyan("'web-stream'")} or ${pc.cyan("'node-stream'")}.`, { showStackTrace: true });
713
713
  if (pipeType === 'node-stream') {
@@ -7,8 +7,8 @@ assertWarning(false, [
7
7
  'You have outdated imports:',
8
8
  pc.bold(pc.red(" import { something } from 'vike/server'")),
9
9
  'Replace them with:',
10
- pc.bold(pc.green(" import { something } from 'vike'"))
11
- /* Add migration guide, with migration scritps such as `$ rename vike/server vike`
10
+ pc.bold(pc.green(" import { something } from 'vike'")),
11
+ /* Add migration guide, with migration scripts such as `$ rename vike/server vike`
12
12
  `See ${pc.underline('https://vike.dev/migration/0.4.xxx')}`
13
13
  */
14
14
  ].join('\n'), { showStackTrace: true, onlyOnce: true });
@@ -33,7 +33,7 @@ export const RenderErrorPage = (...args) => {
33
33
  pc.red(" import { RenderErrorPage } from 'vike'"),
34
34
  'With:',
35
35
  pc.green(" import { render } from 'vike/abort'"),
36
- 'See https://vike.dev/render'
36
+ 'See https://vike.dev/render',
37
37
  ].join('\n'), { onlyOnce: true, showStackTrace: true });
38
38
  return RenderErrorPage_(...args);
39
39
  };