vike 0.4.228 → 0.4.229

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 (225) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
  3. package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
  4. package/dist/cjs/client/server-routing-runtime/utils.js +1 -1
  5. package/dist/cjs/client/shared/createGetGlobalContextClient.js +58 -0
  6. package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
  7. package/dist/cjs/client/shared/utils.js +22 -0
  8. package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
  9. package/dist/cjs/node/plugin/plugins/build/handleAssetsManifest.js +10 -5
  10. package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +1 -1
  11. package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +3 -10
  12. package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +9 -5
  13. package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +5 -1
  14. package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
  15. package/dist/cjs/node/plugin/plugins/commonConfig.js +14 -3
  16. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +2 -7
  17. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -0
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  20. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
  21. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +13 -0
  22. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  23. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +13 -10
  24. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  25. package/dist/cjs/node/plugin/shared/getFilePath.js +2 -2
  26. package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +7 -19
  27. package/dist/cjs/node/plugin/utils.js +1 -0
  28. package/dist/cjs/node/prerender/runPrerender.js +44 -41
  29. package/dist/cjs/node/prerender/utils.js +1 -1
  30. package/dist/cjs/node/runtime/globalContext.js +102 -125
  31. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  32. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  33. package/dist/cjs/node/runtime/html/propKeys.js +47 -0
  34. package/dist/cjs/node/runtime/html/renderHtml.js +1 -1
  35. package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
  36. package/dist/cjs/node/runtime/index-deprecated.js +9 -38
  37. package/dist/cjs/node/runtime/index.js +56 -2
  38. package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
  39. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +8 -3
  40. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +73 -0
  41. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
  42. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -2
  43. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
  44. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  45. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  46. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
  47. package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  48. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  49. package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
  50. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  51. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -68
  52. package/dist/cjs/node/runtime/renderPage.js +102 -81
  53. package/dist/cjs/node/runtime/universal-middleware.js +7 -1
  54. package/dist/cjs/node/runtime/utils.js +3 -2
  55. package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
  56. package/dist/cjs/shared/createGlobalContextShared.js +54 -0
  57. package/dist/cjs/shared/createPageContextShared.js +17 -0
  58. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  59. package/dist/cjs/shared/hooks/executeHookGeneric.js +18 -0
  60. package/dist/cjs/shared/hooks/getHook.js +45 -27
  61. package/dist/cjs/shared/htmlElementIds.js +5 -0
  62. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  63. package/dist/cjs/shared/route/executeGuardHook.js +1 -1
  64. package/dist/cjs/shared/route/loadPageRoutes.js +2 -1
  65. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  66. package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
  67. package/dist/cjs/utils/getPublicProxy.js +27 -0
  68. package/dist/cjs/utils/isImportPath.js +21 -0
  69. package/dist/cjs/utils/objectAssign.js +6 -10
  70. package/dist/cjs/utils/objectReplace.js +4 -4
  71. package/dist/cjs/utils/{isNpmPackage.js → parseNpmPackage.js} +23 -23
  72. package/dist/cjs/utils/path.js +12 -2
  73. package/dist/cjs/utils/requireResolve.js +134 -53
  74. package/dist/esm/__internal/index.js +3 -3
  75. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +29 -10
  76. package/dist/esm/client/client-routing-runtime/createPageContext.js +23 -22
  77. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +5 -4
  78. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +20 -0
  79. package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
  80. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +2 -2
  81. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  82. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +8 -7
  83. package/dist/esm/client/client-routing-runtime/utils.d.ts +0 -1
  84. package/dist/esm/client/client-routing-runtime/utils.js +0 -1
  85. package/dist/esm/client/index.d.ts +1 -0
  86. package/dist/esm/client/index.js +4 -0
  87. package/dist/esm/client/node.js +1 -3
  88. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +36 -0
  89. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +47 -0
  90. package/dist/esm/client/server-routing-runtime/entry.js +2 -2
  91. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +17 -0
  92. package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
  93. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -1
  94. package/dist/esm/client/server-routing-runtime/utils.js +1 -1
  95. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +23 -0
  96. package/dist/esm/client/shared/createGetGlobalContextClient.js +58 -0
  97. package/dist/esm/client/shared/executeOnRenderClientHook.js +5 -4
  98. package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
  99. package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
  100. package/dist/esm/client/shared/removeFoucBuster.js +1 -0
  101. package/dist/esm/client/shared/utils.d.ts +4 -0
  102. package/dist/esm/client/shared/utils.js +4 -0
  103. package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
  104. package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.js +11 -6
  105. package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +2 -2
  106. package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +4 -11
  107. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +1 -1
  108. package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +10 -6
  109. package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +5 -1
  110. package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
  111. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -0
  112. package/dist/esm/node/plugin/plugins/commonConfig.js +15 -4
  113. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +3 -8
  114. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -2
  115. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -0
  116. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -1
  117. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
  118. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +1 -1
  119. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.d.ts → pointerImports.d.ts} +2 -0
  120. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +14 -1
  121. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +1 -1
  122. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
  123. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +13 -10
  124. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
  125. package/dist/esm/node/plugin/shared/getFilePath.js +3 -3
  126. package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +8 -20
  127. package/dist/esm/node/plugin/utils.d.ts +1 -0
  128. package/dist/esm/node/plugin/utils.js +1 -0
  129. package/dist/esm/node/prerender/runPrerender.d.ts +314 -5
  130. package/dist/esm/node/prerender/runPrerender.js +48 -45
  131. package/dist/esm/node/prerender/utils.d.ts +1 -1
  132. package/dist/esm/node/prerender/utils.js +1 -1
  133. package/dist/esm/node/runtime/globalContext.d.ts +425 -47
  134. package/dist/esm/node/runtime/globalContext.js +103 -126
  135. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
  136. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
  137. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
  138. package/dist/esm/node/runtime/html/injectAssets.d.ts +3 -3
  139. package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
  140. package/dist/esm/node/runtime/html/propKeys.js +45 -0
  141. package/dist/esm/node/runtime/html/renderHtml.js +1 -1
  142. package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
  143. package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
  144. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -16
  145. package/dist/esm/node/runtime/index-deprecated.js +9 -36
  146. package/dist/esm/node/runtime/index.d.ts +23 -1
  147. package/dist/esm/node/runtime/index.js +38 -3
  148. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
  149. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  150. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +5 -4
  151. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +8 -3
  152. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +155 -0
  153. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +71 -0
  154. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +3 -3
  155. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
  156. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
  157. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +2 -2
  158. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
  159. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  160. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
  161. package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
  162. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  163. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
  164. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -2
  165. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  166. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  167. package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
  168. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -3
  169. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
  170. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +225 -179
  171. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -69
  172. package/dist/esm/node/runtime/renderPage.d.ts +146 -7
  173. package/dist/esm/node/runtime/renderPage.js +105 -84
  174. package/dist/esm/node/runtime/universal-middleware.js +7 -1
  175. package/dist/esm/node/runtime/utils.d.ts +3 -2
  176. package/dist/esm/node/runtime/utils.js +3 -2
  177. package/dist/esm/shared/VikeNamespace.d.ts +35 -13
  178. package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
  179. package/dist/esm/shared/createGlobalContextShared.d.ts +39 -0
  180. package/dist/esm/shared/createGlobalContextShared.js +51 -0
  181. package/dist/esm/shared/createPageContextShared.d.ts +9 -0
  182. package/dist/esm/shared/createPageContextShared.js +15 -0
  183. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  184. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
  185. package/dist/esm/shared/hooks/executeHookGeneric.js +16 -0
  186. package/dist/esm/shared/hooks/getHook.d.ts +5 -3
  187. package/dist/esm/shared/hooks/getHook.js +47 -29
  188. package/dist/esm/shared/htmlElementIds.d.ts +2 -0
  189. package/dist/esm/shared/htmlElementIds.js +2 -0
  190. package/dist/esm/shared/page-configs/Config.d.ts +12 -2
  191. package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +1 -1
  192. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -7
  193. package/dist/esm/shared/route/executeGuardHook.js +2 -2
  194. package/dist/esm/shared/route/loadPageRoutes.js +2 -1
  195. package/dist/esm/shared/types.d.ts +64 -32
  196. package/dist/esm/types/index.d.ts +1 -5
  197. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  198. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  199. package/dist/esm/utils/catchInfiniteLoop.js +4 -4
  200. package/dist/esm/utils/getGlobalObject.d.ts +1 -1
  201. package/dist/esm/utils/getPublicProxy.d.ts +2 -0
  202. package/dist/esm/utils/getPublicProxy.js +25 -0
  203. package/dist/esm/utils/isImportPath.d.ts +4 -0
  204. package/dist/esm/utils/isImportPath.js +19 -0
  205. package/dist/esm/utils/objectAssign.d.ts +1 -1
  206. package/dist/esm/utils/objectAssign.js +6 -10
  207. package/dist/esm/utils/objectReplace.d.ts +1 -1
  208. package/dist/esm/utils/objectReplace.js +4 -4
  209. package/dist/esm/utils/parseNpmPackage.d.ts +17 -0
  210. package/dist/esm/utils/{isNpmPackage.js → parseNpmPackage.js} +23 -23
  211. package/dist/esm/utils/path.d.ts +1 -1
  212. package/dist/esm/utils/path.js +12 -2
  213. package/dist/esm/utils/requireResolve.d.ts +20 -7
  214. package/dist/esm/utils/requireResolve.js +134 -53
  215. package/package.json +14 -13
  216. package/dist/cjs/node/runtime/index-common.js +0 -27
  217. package/dist/cjs/utils/makePublicCopy.js +0 -32
  218. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +0 -19
  219. package/dist/esm/client/server-routing-runtime/getPageContext.js +0 -44
  220. package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
  221. package/dist/esm/node/runtime/index-common.d.ts +0 -8
  222. package/dist/esm/node/runtime/index-common.js +0 -10
  223. package/dist/esm/utils/isNpmPackage.d.ts +0 -17
  224. package/dist/esm/utils/makePublicCopy.d.ts +0 -3
  225. package/dist/esm/utils/makePublicCopy.js +0 -30
@@ -4,18 +4,31 @@ export { runPrerenderFromAutoRun };
4
4
  export { runPrerender_forceExit };
5
5
  export type { PrerenderOptions };
6
6
  export type { PrerenderContextPublic };
7
+ import type { PageFile } from '../../shared/getPageFiles.js';
8
+ import { type GlobalContextServerInternal, type GlobalContextServer } from '../runtime/globalContext.js';
7
9
  import type { InlineConfig, ResolvedConfig } from 'vite';
8
10
  import type { APIOptions } from '../api/types.js';
9
- import type { PageContextServer } from '../../shared/types.js';
10
11
  type ProvidedByHook = null | {
11
12
  hookFilePath: string;
12
13
  hookName: 'onBeforePrerenderStart' | 'prerender';
13
14
  };
15
+ type ProvidedByHookTransformer = null | {
16
+ hookFilePath: string;
17
+ hookName: 'onPrerenderStart' | 'onBeforePrerender';
18
+ };
14
19
  type PageContextPrerendered = {
15
20
  urlOriginal: string;
16
21
  _providedByHook?: ProvidedByHook;
17
22
  pageId: string;
18
23
  };
24
+ type PrerenderedPageContexts = Record<string, PageContextPrerendered>;
25
+ type PrerenderContext = {
26
+ pageContexts: PageContext[];
27
+ output: Output;
28
+ _pageContextInit: Record<string, unknown> | null;
29
+ _noExtraDir: boolean | null;
30
+ _prerenderedPageContexts: PrerenderedPageContexts;
31
+ };
19
32
  type Output<PageContext = PageContextPrerendered> = {
20
33
  filePath: string;
21
34
  fileType: FileType;
@@ -23,6 +36,9 @@ type Output<PageContext = PageContextPrerendered> = {
23
36
  pageContext: PageContext;
24
37
  }[];
25
38
  type FileType = 'HTML' | 'JSON';
39
+ type PageContext = Awaited<ReturnType<typeof createPageContextPrerendering>> & {
40
+ _urlOriginalBeforeHook?: string;
41
+ };
26
42
  type PrerenderOptions = APIOptions & {
27
43
  /** Initial `pageContext` values */
28
44
  pageContextInit?: Record<string, unknown>;
@@ -50,8 +66,301 @@ declare function runPrerenderFromCLIPrerenderCommand(): Promise<void>;
50
66
  declare function runPrerenderFromAutoRun(viteConfig: InlineConfig | undefined): Promise<{
51
67
  forceExit: boolean;
52
68
  }>;
69
+ declare function createPageContextPrerendering(urlOriginal: string, prerenderContext: PrerenderContext, globalContext: GlobalContextServerInternal, globalContext_public: GlobalContextServer, is404: boolean, pageId: string | undefined, providedByHook: ProvidedByHook): Promise<((({
70
+ isClientSide: boolean;
71
+ isPrerendering: boolean;
72
+ } & Pick<import("../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
73
+ url?: string;
74
+ headers?: Record<string, string>;
75
+ } & {
76
+ globalContext: GlobalContextServer;
77
+ _globalContext: {
78
+ isGlobalContext: true;
79
+ _virtualFileExports: unknown;
80
+ _pageFilesAll: PageFile[];
81
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
82
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
83
+ _allPageIds: string[];
84
+ config: import("../../types/index.js").ConfigResolved;
85
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
86
+ } & ({
87
+ _isProduction: false;
88
+ _isPrerendering: false;
89
+ assetsManifest: null;
90
+ _viteDevServer: import("vite").ViteDevServer;
91
+ viteConfig: ResolvedConfig;
92
+ viteConfigRuntime: {
93
+ root: string;
94
+ build: {
95
+ outDir: string;
96
+ };
97
+ _baseViteOriginal: string;
98
+ vitePluginServerEntry: {
99
+ inject: boolean | undefined;
100
+ };
101
+ };
102
+ baseServer: string;
103
+ baseAssets: string;
104
+ isClientSide: false;
105
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
106
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
107
+ isGlobalContext: true;
108
+ _virtualFileExports: unknown;
109
+ _pageFilesAll: PageFile[];
110
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
111
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
112
+ _allPageIds: string[];
113
+ config: import("../../types/index.js").ConfigResolved;
114
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
115
+ } | {
116
+ _isPrerendering: true;
117
+ viteConfig: ResolvedConfig;
118
+ _isProduction: true;
119
+ assetsManifest: import("../shared/ViteManifest.js").ViteManifest;
120
+ _viteDevServer: null;
121
+ viteConfigRuntime: {
122
+ root: string;
123
+ build: {
124
+ outDir: string;
125
+ };
126
+ _baseViteOriginal: string;
127
+ vitePluginServerEntry: {
128
+ inject: boolean | undefined;
129
+ };
130
+ };
131
+ _usesClientRouter: boolean;
132
+ baseServer: string;
133
+ baseAssets: string;
134
+ isClientSide: false;
135
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
136
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
137
+ isGlobalContext: true;
138
+ _virtualFileExports: unknown;
139
+ _pageFilesAll: PageFile[];
140
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
141
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
142
+ _allPageIds: string[];
143
+ config: import("../../types/index.js").ConfigResolved;
144
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
145
+ } | {
146
+ _isPrerendering: false;
147
+ viteConfig: null;
148
+ _isProduction: true;
149
+ assetsManifest: import("../shared/ViteManifest.js").ViteManifest;
150
+ _viteDevServer: null;
151
+ viteConfigRuntime: {
152
+ root: string;
153
+ build: {
154
+ outDir: string;
155
+ };
156
+ _baseViteOriginal: string;
157
+ vitePluginServerEntry: {
158
+ inject: boolean | undefined;
159
+ };
160
+ };
161
+ _usesClientRouter: boolean;
162
+ baseServer: string;
163
+ baseAssets: string;
164
+ isClientSide: false;
165
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
166
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
167
+ isGlobalContext: true;
168
+ _virtualFileExports: unknown;
169
+ _pageFilesAll: PageFile[];
170
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
171
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
172
+ _allPageIds: string[];
173
+ config: import("../../types/index.js").ConfigResolved;
174
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
175
+ });
176
+ _baseServer: string;
177
+ _baseAssets: string;
178
+ _includeAssetsImportedByServer: boolean;
179
+ _pageFilesAll: PageFile[];
180
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
181
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
182
+ _allPageIds: string[];
183
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
184
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
185
+ _pageContextInit: import("../runtime/renderPage.js").PageContextInit;
186
+ _urlRewrite: null;
187
+ _urlHandler: ((url: string) => string) | null;
188
+ isClientSideNavigation: boolean;
189
+ } & {
190
+ urlParsed: import("../shared/utils.js").UrlPublic;
191
+ urlPathname: string;
192
+ url: string;
193
+ } & {
194
+ headers: Record<string, string> | null;
195
+ } & {
196
+ config: import("../../types/index.js").ConfigResolved;
197
+ _source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
198
+ _sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
199
+ _from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
200
+ isPageContext: true;
201
+ } & {
202
+ _urlHandler: null;
203
+ _httpRequestId: null;
204
+ _urlRewrite: null;
205
+ _noExtraDir: boolean | null;
206
+ _prerenderContext: PrerenderContext;
207
+ _providedByHook: ProvidedByHook;
208
+ _urlOriginalModifiedByHook: ProvidedByHookTransformer;
209
+ is404: boolean;
210
+ } & import("../../shared/route/index.js").PageContextFromRoute & Record<"pageId", string>) | ({
211
+ isClientSide: boolean;
212
+ isPrerendering: boolean;
213
+ } & Pick<import("../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
214
+ url?: string;
215
+ headers?: Record<string, string>;
216
+ } & {
217
+ globalContext: GlobalContextServer;
218
+ _globalContext: {
219
+ isGlobalContext: true;
220
+ _virtualFileExports: unknown;
221
+ _pageFilesAll: PageFile[];
222
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
223
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
224
+ _allPageIds: string[];
225
+ config: import("../../types/index.js").ConfigResolved;
226
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
227
+ } & ({
228
+ _isProduction: false;
229
+ _isPrerendering: false;
230
+ assetsManifest: null;
231
+ _viteDevServer: import("vite").ViteDevServer;
232
+ viteConfig: ResolvedConfig;
233
+ viteConfigRuntime: {
234
+ root: string;
235
+ build: {
236
+ outDir: string;
237
+ };
238
+ _baseViteOriginal: string;
239
+ vitePluginServerEntry: {
240
+ inject: boolean | undefined;
241
+ };
242
+ };
243
+ baseServer: string;
244
+ baseAssets: string;
245
+ isClientSide: false;
246
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
247
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
248
+ isGlobalContext: true;
249
+ _virtualFileExports: unknown;
250
+ _pageFilesAll: PageFile[];
251
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
252
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
253
+ _allPageIds: string[];
254
+ config: import("../../types/index.js").ConfigResolved;
255
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
256
+ } | {
257
+ _isPrerendering: true;
258
+ viteConfig: ResolvedConfig;
259
+ _isProduction: true;
260
+ assetsManifest: import("../shared/ViteManifest.js").ViteManifest;
261
+ _viteDevServer: null;
262
+ viteConfigRuntime: {
263
+ root: string;
264
+ build: {
265
+ outDir: string;
266
+ };
267
+ _baseViteOriginal: string;
268
+ vitePluginServerEntry: {
269
+ inject: boolean | undefined;
270
+ };
271
+ };
272
+ _usesClientRouter: boolean;
273
+ baseServer: string;
274
+ baseAssets: string;
275
+ isClientSide: false;
276
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
277
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
278
+ isGlobalContext: true;
279
+ _virtualFileExports: unknown;
280
+ _pageFilesAll: PageFile[];
281
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
282
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
283
+ _allPageIds: string[];
284
+ config: import("../../types/index.js").ConfigResolved;
285
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
286
+ } | {
287
+ _isPrerendering: false;
288
+ viteConfig: null;
289
+ _isProduction: true;
290
+ assetsManifest: import("../shared/ViteManifest.js").ViteManifest;
291
+ _viteDevServer: null;
292
+ viteConfigRuntime: {
293
+ root: string;
294
+ build: {
295
+ outDir: string;
296
+ };
297
+ _baseViteOriginal: string;
298
+ vitePluginServerEntry: {
299
+ inject: boolean | undefined;
300
+ };
301
+ };
302
+ _usesClientRouter: boolean;
303
+ baseServer: string;
304
+ baseAssets: string;
305
+ isClientSide: false;
306
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
307
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
308
+ isGlobalContext: true;
309
+ _virtualFileExports: unknown;
310
+ _pageFilesAll: PageFile[];
311
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
312
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
313
+ _allPageIds: string[];
314
+ config: import("../../types/index.js").ConfigResolved;
315
+ pages: import("../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
316
+ });
317
+ _baseServer: string;
318
+ _baseAssets: string;
319
+ _includeAssetsImportedByServer: boolean;
320
+ _pageFilesAll: PageFile[];
321
+ _pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
322
+ _pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
323
+ _allPageIds: string[];
324
+ _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
325
+ _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
326
+ _pageContextInit: import("../runtime/renderPage.js").PageContextInit;
327
+ _urlRewrite: null;
328
+ _urlHandler: ((url: string) => string) | null;
329
+ isClientSideNavigation: boolean;
330
+ } & {
331
+ urlParsed: import("../shared/utils.js").UrlPublic;
332
+ urlPathname: string;
333
+ url: string;
334
+ } & {
335
+ headers: Record<string, string> | null;
336
+ } & {
337
+ config: import("../../types/index.js").ConfigResolved;
338
+ _source: import("../../shared/page-configs/getPageConfigUserFriendly.js").Source;
339
+ _sources: import("../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
340
+ _from: import("../../shared/page-configs/getPageConfigUserFriendly.js").From;
341
+ isPageContext: true;
342
+ } & {
343
+ _urlHandler: null;
344
+ _httpRequestId: null;
345
+ _urlRewrite: null;
346
+ _noExtraDir: boolean | null;
347
+ _prerenderContext: PrerenderContext;
348
+ _providedByHook: ProvidedByHook;
349
+ _urlOriginalModifiedByHook: ProvidedByHookTransformer;
350
+ is404: boolean;
351
+ } & {
352
+ pageId: string;
353
+ _debugRouteMatches: never[];
354
+ routeParams: {};
355
+ })) & import("../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
356
+ Page: unknown;
357
+ _isHtmlOnly: boolean;
358
+ _passToClient: string[];
359
+ _pageFilePathsLoaded: string[];
360
+ } & {
361
+ __getPageAssets: () => Promise<import("../runtime/renderPage/getPageAssets.js").PageAsset[]>;
362
+ }) & {
363
+ _usesClientRouter: boolean;
364
+ }>;
53
365
  declare function runPrerender_forceExit(): void;
54
- type PrerenderContextPublic = {
55
- output: Output<PageContextServer>;
56
- pageContexts: PageContextServer[];
57
- };
366
+ type PrerenderContextPublic = Pick<PrerenderContext, 'output' | 'pageContexts'>;
@@ -4,11 +4,12 @@ export { runPrerenderFromAutoRun };
4
4
  export { runPrerender_forceExit };
5
5
  import path from 'path';
6
6
  import { route } from '../../shared/route/index.js';
7
- import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender, makePublicCopy, PROJECT_VERSION, preservePropertyGetters } from './utils.js';
8
- import { prerenderPage, getPageContextInitEnhanced } from '../runtime/renderPage/renderPageAlreadyRouted.js';
7
+ import { assert, assertUsage, assertWarning, hasProp, objectAssign, isObjectWithKeys, isCallable, isPropertyGetter, assertPosixPath, urlToFile, isPlainObject, pLimit, isArray, onSetupPrerender, getPublicProxy, PROJECT_VERSION, preservePropertyGetters } from './utils.js';
8
+ import { prerenderPage } from '../runtime/renderPage/renderPageAlreadyRouted.js';
9
+ import { createPageContextServerSide } from '../runtime/renderPage/createPageContextServerSide.js';
9
10
  import pc from '@brillout/picocolors';
10
11
  import { cpus } from 'os';
11
- import { getGlobalContextInternal, initGlobalContext_runPrerender, setGlobalContext_isPrerendering } from '../runtime/globalContext.js';
12
+ import { getGlobalContextServerInternal, initGlobalContext_runPrerender, setGlobalContext_isPrerendering } from '../runtime/globalContext.js';
12
13
  import { resolveConfig } from 'vite';
13
14
  import { getPageFilesServerSide } from '../../shared/getPageFiles.js';
14
15
  import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.js';
@@ -29,7 +30,7 @@ import { resolvePrerenderConfigGlobal, resolvePrerenderConfigLocal } from './res
29
30
  import { getOutDirs } from '../plugin/shared/getOutDirs.js';
30
31
  import { isVikeCli } from '../cli/context.js';
31
32
  import { isViteCliCall } from '../plugin/shared/isViteCliCall.js';
32
- import { getVikeConfigPublic } from '../plugin/plugins/commonConfig.js';
33
+ import { getVikeConfigInternal } from '../plugin/plugins/commonConfig.js';
33
34
  import fs from 'node:fs';
34
35
  async function runPrerenderFromAPI(options = {}) {
35
36
  return await runPrerender(options, 'prerender()');
@@ -76,7 +77,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
76
77
  await disableReactStreaming();
77
78
  const viteConfig = await resolveConfig(options.viteConfig || {}, 'build', 'production');
78
79
  const vikeConfig = await getVikeConfig(viteConfig);
79
- const vike = getVikeConfigPublic(viteConfig);
80
+ const vike = getVikeConfigInternal(viteConfig);
80
81
  const { outDirClient, outDirServer } = getOutDirs(viteConfig);
81
82
  const { root } = viteConfig;
82
83
  const prerenderConfigGlobal = resolvePrerenderConfigGlobal(vikeConfig);
@@ -93,26 +94,26 @@ async function runPrerender(options = {}, standaloneTrigger) {
93
94
  }
94
95
  const concurrencyLimit = pLimit(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? cpus().length : parallel);
95
96
  await initGlobalContext_runPrerender();
96
- const globalContext = await getGlobalContextInternal();
97
- globalContext.pageFilesAll.forEach(assertExportNames);
97
+ const { globalContext, globalContext_public } = await getGlobalContextServerInternal();
98
+ globalContext._pageFilesAll.forEach(assertExportNames);
98
99
  const prerenderContext = {
99
- noExtraDir,
100
100
  pageContexts: [],
101
- pageContextInit: options.pageContextInit ?? null,
102
- prerenderedPageContexts: {},
103
- output: []
101
+ output: [],
102
+ _noExtraDir: noExtraDir,
103
+ _pageContextInit: options.pageContextInit ?? null,
104
+ _prerenderedPageContexts: {}
104
105
  };
105
106
  const doNotPrerenderList = [];
106
107
  await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
107
108
  // Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
108
109
  // https://vike.dev/onBeforePrerenderStart
109
- await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
110
+ await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList);
110
111
  // Create `pageContext` for each page with a static route
111
112
  const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
112
- await createPageContextsForOnPrerenderStartHook(urlList, prerenderContext, globalContext, concurrencyLimit, false);
113
+ await createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, false);
113
114
  // Create `pageContext` for 404 page
114
115
  const urlList404 = getUrlList404(globalContext);
115
- await createPageContextsForOnPrerenderStartHook(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
116
+ await createPageContexts(urlList404, prerenderContext, globalContext, globalContext_public, concurrencyLimit, true);
116
117
  // Allow user to duplicate the list of `pageContext` for i18n
117
118
  // https://vike.dev/onPrerenderStart
118
119
  await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
@@ -122,15 +123,15 @@ async function runPrerender(options = {}, standaloneTrigger) {
122
123
  prerenderedCount++;
123
124
  const { pageId } = htmlFile.pageContext;
124
125
  assert(pageId);
125
- prerenderContext.prerenderedPageContexts[pageId] = htmlFile.pageContext;
126
+ prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
126
127
  await writeFiles(htmlFile, root, outDirClient, options.onPagePrerender, prerenderContext.output, logLevel);
127
128
  };
128
129
  await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
129
- warnContradictoryNoPrerenderList(prerenderContext.prerenderedPageContexts, doNotPrerenderList);
130
+ warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
130
131
  if (logLevel === 'info') {
131
132
  console.log(`${pc.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
132
133
  }
133
- await warnMissingPages(prerenderContext.prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
134
+ await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
134
135
  const prerenderContextPublic = makePublic(prerenderContext);
135
136
  objectAssign(vike.prerenderContext, prerenderContextPublic);
136
137
  if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
@@ -157,7 +158,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
157
158
  });
158
159
  // Old design
159
160
  // TODO/v1-release: remove
160
- await Promise.all(globalContext.pageFilesAll
161
+ await Promise.all(globalContext._pageFilesAll
161
162
  .filter((p) => {
162
163
  assertExportNames(p);
163
164
  if (!p.exportNames?.includes('doNotPrerender'))
@@ -169,8 +170,8 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
169
170
  assert(p.loadFile);
170
171
  await p.loadFile();
171
172
  })));
172
- globalContext.allPageIds.forEach((pageId) => {
173
- const pageFilesServerSide = getPageFilesServerSide(globalContext.pageFilesAll, pageId);
173
+ globalContext._allPageIds.forEach((pageId) => {
174
+ const pageFilesServerSide = getPageFilesServerSide(globalContext._pageFilesAll, pageId);
174
175
  for (const p of pageFilesServerSide) {
175
176
  if (!p.exportNames?.includes('doNotPrerender'))
176
177
  continue;
@@ -194,10 +195,10 @@ function assertExportNames(pageFile) {
194
195
  const { exportNames, fileType } = pageFile;
195
196
  assert(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
196
197
  }
197
- async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
198
+ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList) {
198
199
  const onBeforePrerenderStartHooks = [];
199
200
  // V1 design
200
- await Promise.all(globalContext.pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
201
+ await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
201
202
  const hookName = 'onBeforePrerenderStart';
202
203
  const pageConfigLoaded = await loadConfigValues(pageConfig, false);
203
204
  const hook = getHookFromPageConfig(pageConfigLoaded, hookName);
@@ -213,7 +214,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
213
214
  });
214
215
  })));
215
216
  // 0.4 design
216
- await Promise.all(globalContext.pageFilesAll
217
+ await Promise.all(globalContext._pageFilesAll
217
218
  .filter((p) => {
218
219
  assertExportNames(p);
219
220
  if (!p.exportNames?.includes('prerender'))
@@ -257,7 +258,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
257
258
  }
258
259
  // Add result
259
260
  const providedByHook = { hookFilePath, hookName };
260
- const pageContextNew = await createPageContext(url, prerenderContext, globalContext, false, undefined, providedByHook);
261
+ const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, globalContext_public, false, undefined, providedByHook);
261
262
  prerenderContext.pageContexts.push(pageContextNew);
262
263
  if (pageContext) {
263
264
  objectAssign(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
@@ -268,7 +269,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
268
269
  }
269
270
  function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
270
271
  const urlList = [];
271
- globalContext.pageRoutes.map((pageRoute) => {
272
+ globalContext._pageRoutes.map((pageRoute) => {
272
273
  const { pageId } = pageRoute;
273
274
  if (doNotPrerenderList.find((p) => p.pageId === pageId))
274
275
  return;
@@ -293,7 +294,7 @@ function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
293
294
  }
294
295
  function getUrlList404(globalContext) {
295
296
  const urlList = [];
296
- const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
297
+ const errorPageId = getErrorPageId(globalContext._pageFilesAll, globalContext._pageConfigs);
297
298
  if (errorPageId) {
298
299
  urlList.push({
299
300
  // A URL is required for `viteDevServer.transformIndexHtml(url,html)`
@@ -303,28 +304,30 @@ function getUrlList404(globalContext) {
303
304
  }
304
305
  return urlList;
305
306
  }
306
- async function createPageContextsForOnPrerenderStartHook(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
307
+ async function createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, is404) {
307
308
  await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
308
309
  // Already included in a onBeforePrerenderStart() hook
309
310
  if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
310
311
  return;
311
312
  }
312
- const pageContext = await createPageContext(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
313
+ const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, null);
313
314
  prerenderContext.pageContexts.push(pageContext);
314
315
  })));
315
316
  }
316
- async function createPageContext(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
317
+ async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, providedByHook) {
317
318
  const pageContextInit = {
318
319
  urlOriginal,
319
- ...prerenderContext.pageContextInit
320
+ ...prerenderContext._pageContextInit
320
321
  };
321
- const pageContext = await getPageContextInitEnhanced(pageContextInit, globalContext, true);
322
+ const pageContext = await createPageContextServerSide(pageContextInit, globalContext, globalContext_public, {
323
+ isPrerendering: true
324
+ });
322
325
  assert(pageContext.isPrerendering === true);
323
326
  objectAssign(pageContext, {
324
327
  _urlHandler: null,
325
328
  _httpRequestId: null,
326
329
  _urlRewrite: null,
327
- _noExtraDir: prerenderContext.noExtraDir,
330
+ _noExtraDir: prerenderContext._noExtraDir,
328
331
  _prerenderContext: prerenderContext,
329
332
  _providedByHook: providedByHook,
330
333
  _urlOriginalModifiedByHook: null,
@@ -350,14 +353,14 @@ async function createPageContext(urlOriginal, prerenderContext, globalContext, i
350
353
  {
351
354
  const { pageId } = pageContext;
352
355
  assert(pageId);
353
- assert(globalContext.isPrerendering);
354
- if (globalContext.pageConfigs.length > 0) {
355
- const pageConfig = globalContext.pageConfigs.find((p) => p.pageId === pageId);
356
+ assert(globalContext._isPrerendering);
357
+ if (globalContext._pageConfigs.length > 0) {
358
+ const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
356
359
  assert(pageConfig);
357
360
  usesClientRouter = getConfigValueRuntime(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
358
361
  }
359
362
  else {
360
- usesClientRouter = globalContext.usesClientRouter;
363
+ usesClientRouter = globalContext._usesClientRouter;
361
364
  }
362
365
  }
363
366
  objectAssign(pageContext, { _usesClientRouter: usesClientRouter });
@@ -394,9 +397,9 @@ function assertRouteMatch(pageContextFromRoute, pageContext) {
394
397
  async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
395
398
  let onPrerenderStartHook;
396
399
  // V1 design
397
- if (globalContext.pageConfigs.length > 0) {
400
+ if (globalContext._pageConfigs.length > 0) {
398
401
  const hookName = 'onPrerenderStart';
399
- const hook = getHookFromPageConfigGlobal(globalContext.pageConfigGlobal, hookName);
402
+ const hook = getHookFromPageConfigGlobal(globalContext._pageConfigGlobal, hookName);
400
403
  if (hook) {
401
404
  assert(hook.hookName === 'onPrerenderStart');
402
405
  onPrerenderStartHook = {
@@ -408,9 +411,9 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
408
411
  }
409
412
  // Old design
410
413
  // TODO/v1-release: remove
411
- if (globalContext.pageConfigs.length === 0) {
414
+ if (globalContext._pageConfigs.length === 0) {
412
415
  const hookTimeout = getHookTimeoutDefault('onBeforePrerender');
413
- const pageFilesWithOnBeforePrerenderHook = globalContext.pageFilesAll.filter((p) => {
416
+ const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
414
417
  assertExportNames(p);
415
418
  if (!p.exportNames?.includes('onBeforePrerender'))
416
419
  return false;
@@ -550,7 +553,7 @@ async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
550
553
  pageContext,
551
554
  htmlString: documentHtml,
552
555
  pageContextSerialized,
553
- doNotCreateExtraDirectory: prerenderContext.noExtraDir ?? pageContext.is404
556
+ doNotCreateExtraDirectory: prerenderContext._noExtraDir ?? pageContext.is404
554
557
  });
555
558
  })));
556
559
  }
@@ -567,16 +570,16 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
567
570
  });
568
571
  }
569
572
  async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
570
- const isV1 = globalContext.pageConfigs.length > 0;
573
+ const isV1 = globalContext._pageConfigs.length > 0;
571
574
  const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
572
575
  /* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
573
576
  const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
574
577
  const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
575
578
  */
576
- globalContext.allPageIds
579
+ globalContext._allPageIds
577
580
  .filter((pageId) => !prerenderedPageContexts[pageId])
578
581
  .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
579
- .filter((pageId) => !isErrorPage(pageId, globalContext.pageConfigs))
582
+ .filter((pageId) => !isErrorPage(pageId, globalContext._pageConfigs))
580
583
  .forEach((pageId) => {
581
584
  const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
582
585
  assertWarning(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while no ${hookName}() hook returned any URL matching the page's route. You need to use a ${hookName}() hook (https://vike.dev/${hookName}) providing a list of URLs for ${pageAt} that should be pre-rendered. If you don't want to pre-render ${pageAt} then use the option prerender.partial (https://vike.dev/prerender#partial) to suppress this warning.`, { onlyOnce: true });
@@ -729,7 +732,7 @@ function assertIsNotAbort(err, urlOriginal) {
729
732
  assertUsage(false, `${pc.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${pc.cyan(abortCaller)} isn't supported for pre-rendered pages`);
730
733
  }
731
734
  function makePublic(prerenderContext) {
732
- const prerenderContextPublic = makePublicCopy(prerenderContext, 'prerenderContext', [
735
+ const prerenderContextPublic = getPublicProxy(prerenderContext, 'prerenderContext', [
733
736
  'output', // vite-plugin-vercel
734
737
  'pageContexts' // https://vike.dev/i18n#pre-rendering
735
738
  ]);
@@ -13,6 +13,6 @@ export * from '../../utils/pLimit.js';
13
13
  export * from '../../utils/isFilePathAbsoluteFilesystem.js';
14
14
  export * from '../../utils/isArray.js';
15
15
  export * from '../../utils/isObject.js';
16
- export * from '../../utils/makePublicCopy.js';
16
+ export * from '../../utils/getPublicProxy.js';
17
17
  export * from '../../utils/isNullish.js';
18
18
  export * from '../../utils/preservePropertyGetters.js';
@@ -15,6 +15,6 @@ export * from '../../utils/pLimit.js';
15
15
  export * from '../../utils/isFilePathAbsoluteFilesystem.js';
16
16
  export * from '../../utils/isArray.js';
17
17
  export * from '../../utils/isObject.js';
18
- export * from '../../utils/makePublicCopy.js';
18
+ export * from '../../utils/getPublicProxy.js';
19
19
  export * from '../../utils/isNullish.js';
20
20
  export * from '../../utils/preservePropertyGetters.js';