vike 0.4.238 → 0.4.239-commit-33e55d4

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 (197) hide show
  1. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
  2. package/dist/cjs/node/prerender/runPrerender.js +1 -0
  3. package/dist/cjs/node/runtime/globalContext.js +10 -0
  4. package/dist/cjs/node/runtime/index.js +3 -3
  5. package/dist/cjs/node/runtime/page-files/setup.js +3 -1
  6. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -9
  7. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  8. package/dist/cjs/node/runtime/renderPage/csp.js +47 -0
  9. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  10. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
  11. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  12. package/dist/cjs/node/runtime/renderPage/headersResponse.js +48 -0
  13. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  14. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  15. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +8 -6
  16. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  17. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  18. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +5 -3
  19. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  20. package/dist/cjs/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  21. package/dist/cjs/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  22. package/dist/cjs/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  23. package/dist/cjs/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  24. package/dist/cjs/node/runtime/{html → renderPage/html}/stream.js +1 -1
  25. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +17 -38
  26. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  27. package/dist/cjs/node/runtime/renderPage.js +1 -1
  28. package/dist/cjs/node/vite/onLoad.js +1 -1
  29. package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +32 -28
  30. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  31. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +24 -20
  32. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +4 -2
  33. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +76 -74
  34. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +18 -14
  35. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +17 -9
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +4 -2
  37. package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +20 -18
  38. package/dist/cjs/node/vite/plugins/pluginCommon.js +7 -21
  39. package/dist/cjs/node/vite/plugins/pluginDev.js +51 -47
  40. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +62 -57
  41. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +107 -93
  42. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +27 -13
  43. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +107 -84
  44. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +40 -21
  45. package/dist/cjs/node/vite/plugins/pluginPreview.js +30 -24
  46. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +59 -33
  47. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  48. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +1 -1
  49. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +54 -36
  50. package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +8 -6
  51. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  52. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -1
  53. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +20 -22
  54. package/dist/cjs/shared/createGlobalContextShared.js +4 -22
  55. package/dist/cjs/shared/createPageContextShared.js +2 -2
  56. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  57. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  58. package/dist/cjs/utils/assert.js +16 -1
  59. package/dist/cjs/utils/assertNodeVersion.js +3 -1
  60. package/dist/cjs/utils/assertVersion.js +26 -5
  61. package/dist/cjs/utils/joinEnglish.js +2 -1
  62. package/dist/cjs/utils/virtualFileId.js +15 -11
  63. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +40 -17
  64. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  65. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  66. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +99 -85
  67. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +39 -11
  68. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  69. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  70. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  71. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  72. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +44 -29
  73. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +40 -17
  74. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  75. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +39 -11
  76. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  77. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +39 -11
  78. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  79. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  80. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -3
  81. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  82. package/dist/esm/node/prerender/resolvePrerenderConfig.js +4 -3
  83. package/dist/esm/node/prerender/runPrerender.d.ts +61 -16
  84. package/dist/esm/node/prerender/runPrerender.js +2 -1
  85. package/dist/esm/node/runtime/globalContext.d.ts +167 -42
  86. package/dist/esm/node/runtime/globalContext.js +11 -1
  87. package/dist/esm/node/runtime/index.d.ts +3 -3
  88. package/dist/esm/node/runtime/index.js +3 -3
  89. package/dist/esm/node/runtime/page-files/setup.js +3 -1
  90. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  91. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -9
  92. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +56 -12
  93. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  94. package/dist/esm/node/runtime/renderPage/csp.d.ts +12 -0
  95. package/dist/esm/node/runtime/renderPage/csp.js +45 -0
  96. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +2 -2
  97. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  98. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  99. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  100. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +2 -2
  101. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  102. package/dist/esm/node/runtime/renderPage/headersResponse.d.ts +10 -0
  103. package/dist/esm/node/runtime/renderPage/headersResponse.js +46 -0
  104. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.d.ts +1 -1
  105. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  106. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.d.ts +1 -1
  107. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  108. package/dist/esm/node/runtime/renderPage/html/injectAssets/inferHtmlTags.d.ts +10 -0
  109. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +7 -5
  110. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  111. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  112. package/dist/esm/node/runtime/renderPage/html/injectAssets/mergeScriptTags.d.ts +3 -0
  113. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +6 -4
  114. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.d.ts +2 -2
  115. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  116. package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  117. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.d.ts +1 -1
  118. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  119. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.d.ts +6 -5
  120. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  121. package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  122. package/dist/esm/node/runtime/{html → renderPage/html}/stream.js +1 -1
  123. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +66 -17
  124. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +18 -39
  125. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  126. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +122 -32
  127. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  128. package/dist/esm/node/runtime/renderPage.d.ts +56 -12
  129. package/dist/esm/node/runtime/renderPage.js +1 -1
  130. package/dist/esm/node/vite/onLoad.js +1 -1
  131. package/dist/esm/node/vite/plugins/pluginBaseUrls.js +32 -28
  132. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  133. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +24 -20
  134. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +4 -2
  135. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +76 -74
  136. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +18 -14
  137. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +18 -10
  138. package/dist/esm/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +4 -2
  139. package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +20 -18
  140. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -22
  141. package/dist/esm/node/vite/plugins/pluginDev.js +51 -47
  142. package/dist/esm/node/vite/plugins/pluginEnvVars.js +62 -57
  143. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +107 -91
  144. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +27 -13
  145. package/dist/esm/node/vite/plugins/pluginFileEnv.js +107 -84
  146. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +41 -22
  147. package/dist/esm/node/vite/plugins/pluginPreview.js +30 -24
  148. package/dist/esm/node/vite/plugins/pluginReplaceConstants.d.ts +11 -0
  149. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +58 -33
  150. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  151. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +2 -2
  152. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +56 -38
  153. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +8 -6
  154. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  155. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +2 -2
  156. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -8
  157. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +22 -24
  158. package/dist/esm/shared/createGlobalContextShared.d.ts +75 -19
  159. package/dist/esm/shared/createGlobalContextShared.js +5 -23
  160. package/dist/esm/shared/createPageContextShared.d.ts +2 -7
  161. package/dist/esm/shared/createPageContextShared.js +2 -2
  162. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  163. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  164. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  165. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +91 -31
  166. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  167. package/dist/esm/types/Config/ConfigResolved.d.ts +8 -0
  168. package/dist/esm/types/Config.d.ts +14 -6
  169. package/dist/esm/types/PageContext.d.ts +8 -25
  170. package/dist/esm/types/VikeNamespace.d.ts +0 -27
  171. package/dist/esm/types/index.d.ts +2 -2
  172. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  173. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  174. package/dist/esm/utils/assert.js +16 -1
  175. package/dist/esm/utils/assertNodeVersion.js +3 -1
  176. package/dist/esm/utils/assertVersion.d.ts +4 -3
  177. package/dist/esm/utils/assertVersion.js +23 -5
  178. package/dist/esm/utils/joinEnglish.js +2 -1
  179. package/dist/esm/utils/virtualFileId.d.ts +4 -0
  180. package/dist/esm/utils/virtualFileId.js +14 -11
  181. package/package.json +5 -5
  182. package/dist/cjs/types/Config/helpers.js +0 -2
  183. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.d.ts +0 -9
  184. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +0 -2
  185. package/dist/esm/types/Config/PageContextConfig.d.ts +0 -15
  186. package/dist/esm/types/Config/helpers.d.ts +0 -10
  187. package/dist/esm/types/Config/helpers.js +0 -1
  188. /package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  189. /package/dist/cjs/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
  190. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.d.ts +0 -0
  191. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.d.ts +0 -0
  192. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.d.ts +0 -0
  193. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  194. /package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.d.ts +0 -0
  195. /package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.d.ts +0 -0
  196. /package/dist/esm/node/runtime/{html → renderPage/html}/stream.d.ts +0 -0
  197. /package/dist/esm/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  export { execHookServer };
2
2
  export type { PageContextExecHookServer };
3
3
  import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
4
- import type { VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
4
+ import type { PageContextConfig } from '../../../shared/getPageFiles.js';
5
5
  import type { HookName } from '../../../types/Config.js';
6
- type PageContextExecHookServer = VikeConfigPublicPageLazyLoaded & PageContextForPublicUsageServer;
6
+ type PageContextExecHookServer = PageContextConfig & PageContextForPublicUsageServer;
7
7
  declare function execHookServer(hookName: HookName, pageContext: PageContextExecHookServer): Promise<(import("../../../shared/hooks/getHook.js").HookLoc & {
8
8
  hookFn: (arg: import("../../../shared/preparePageContextForPublicUsage.js").PageContextPrepareMinimum | import("../../../shared/prepareGlobalContextForPublicUsage.js").GlobalContextPrepareMinimum) => unknown;
9
9
  hookTimeout: import("../../../shared/hooks/getHook.js").HookTimeout;
@@ -1,6 +1,6 @@
1
1
  export { getEarlyHints };
2
2
  import { isFontFallback } from './isFontFallback.js';
3
- import { inferEarlyHintLink } from '../html/injectAssets/inferHtmlTags.js';
3
+ import { inferEarlyHintLink } from './html/injectAssets/inferHtmlTags.js';
4
4
  function getEarlyHints(assets) {
5
5
  const earlyHints = [];
6
6
  {
@@ -1,8 +1,8 @@
1
1
  export { getHttpResponseBody };
2
2
  export { getHttpResponseBodyStreamHandlers };
3
3
  export type { HttpResponseBody };
4
- import { StreamPipeNode, StreamPipeWeb, StreamReadableNode, StreamReadableWeb, StreamWritableNode, StreamWritableWeb } from '../html/stream.js';
5
- import { type HtmlRender } from '../html/renderHtml.js';
4
+ import { StreamPipeNode, StreamPipeWeb, StreamReadableNode, StreamReadableWeb, StreamWritableNode, StreamWritableWeb } from './html/stream.js';
5
+ import { type HtmlRender } from './html/renderHtml.js';
6
6
  import type { RenderHook } from './execHookOnRenderHtml.js';
7
7
  type HttpResponseBody = {
8
8
  body: string;
@@ -1,8 +1,8 @@
1
1
  export { getHttpResponseBody };
2
2
  export { getHttpResponseBodyStreamHandlers };
3
- import { isStream, getStreamName, inferStreamName, isStreamWritableWeb, isStreamWritableNode, isStreamReadableWeb, isStreamReadableNode, isStreamPipeWeb, isStreamPipeNode, getStreamReadableNode, getStreamReadableWeb, pipeToStreamWritableWeb, pipeToStreamWritableNode, } from '../html/stream.js';
3
+ import { isStream, getStreamName, inferStreamName, isStreamWritableWeb, isStreamWritableNode, isStreamReadableWeb, isStreamReadableNode, isStreamPipeWeb, isStreamPipeNode, getStreamReadableNode, getStreamReadableWeb, pipeToStreamWritableWeb, pipeToStreamWritableNode, } from './html/stream.js';
4
4
  import { assert, assertUsage, assertWarning } from '../utils.js';
5
- import { getHtmlString } from '../html/renderHtml.js';
5
+ import { getHtmlString } from './html/renderHtml.js';
6
6
  import pc from '@brillout/picocolors';
7
7
  const streamDocs = 'See https://vike.dev/streaming for more information.';
8
8
  function getHttpResponseBody(htmlRender, renderHook) {
@@ -0,0 +1,10 @@
1
+ export { resolveHeadersResponseEarly };
2
+ export { resolveHeadersResponseFinal };
3
+ import { PageContextCspNonce } from './csp.js';
4
+ import type { PageContextAfterPageEntryLoaded } from './loadPageConfigsLazyServerSide.js';
5
+ declare function resolveHeadersResponseFinal(pageContext: {
6
+ headersResponse?: Headers;
7
+ }, statusCode: number): [string, string][];
8
+ declare function resolveHeadersResponseEarly(pageContext: PageContextAfterPageEntryLoaded & PageContextCspNonce): Promise<{
9
+ headersResponse: Headers;
10
+ }>;
@@ -0,0 +1,46 @@
1
+ export { resolveHeadersResponseEarly };
2
+ export { resolveHeadersResponseFinal };
3
+ import { addCspResponseHeader } from './csp.js';
4
+ import { isCallable } from '../utils.js';
5
+ import { cacheControlDisable, getCacheControl } from './getCacheControl.js';
6
+ function resolveHeadersResponseFinal(pageContext, statusCode) {
7
+ const headersResponse = pageContext.headersResponse || new Headers();
8
+ // 5xx error pages are temporary and shouldn't be cached.
9
+ // This overrides any previously set Cache-Control value.
10
+ if (statusCode >= 500)
11
+ headersResponse.set('Cache-Control', cacheControlDisable);
12
+ const headers = [];
13
+ headersResponse.forEach((value, key) => {
14
+ headers.push([key, value]);
15
+ });
16
+ return headers;
17
+ }
18
+ async function resolveHeadersResponseEarly(pageContext) {
19
+ const headersResponse = await resolveHeadersResponseConfig(pageContext);
20
+ if (!headersResponse.get('Cache-Control')) {
21
+ const cacheControl = getCacheControl(pageContext.pageId, pageContext._globalContext._pageConfigs);
22
+ if (cacheControl)
23
+ headersResponse.set('Cache-Control', cacheControl);
24
+ }
25
+ addCspResponseHeader(pageContext, headersResponse);
26
+ const pageContextAddendum = {
27
+ headersResponse,
28
+ };
29
+ return pageContextAddendum;
30
+ }
31
+ async function resolveHeadersResponseConfig(pageContext) {
32
+ const headersMerged = new Headers();
33
+ await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
34
+ let headersInit;
35
+ if (isCallable(headers)) {
36
+ headersInit = await headers(pageContext);
37
+ }
38
+ else {
39
+ headersInit = headers;
40
+ }
41
+ new Headers(headersInit).forEach((value, key) => {
42
+ headersMerged.append(key, value);
43
+ });
44
+ }));
45
+ return headersMerged;
46
+ }
@@ -4,7 +4,7 @@ export type { PreloadFilter };
4
4
  export type { InjectFilterEntry };
5
5
  import type { PageContextInjectAssets } from '../injectAssets.js';
6
6
  import type { StreamFromReactStreamingPackage } from '../stream/react-streaming.js';
7
- import type { PageAsset } from '../../renderPage/getPageAssets.js';
7
+ import type { PageAsset } from '../../getPageAssets.js';
8
8
  type PreloadFilter = null | ((assets: InjectFilterEntry[]) => InjectFilterEntry[]);
9
9
  type PreloadFilterInject = false | 'HTML_BEGIN' | 'HTML_END';
10
10
  /** Filter what assets vike injects in the HTML.
@@ -1,15 +1,16 @@
1
1
  export { getHtmlTags };
2
- import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../utils.js';
2
+ import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../../utils.js';
3
3
  import { getGlobalContextClientSerialized, getPageContextClientSerialized, } from '../serializeContext.js';
4
4
  import { sanitizeJson } from './sanitizeJson.js';
5
5
  import { inferAssetTag, inferPreloadTag } from './inferHtmlTags.js';
6
6
  import { mergeScriptTags } from './mergeScriptTags.js';
7
- import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
8
- import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfigValueRuntime.js';
7
+ import { getPageConfig } from '../../../../../shared/page-configs/helpers.js';
8
+ import { getConfigValueRuntime } from '../../../../../shared/page-configs/getConfigValueRuntime.js';
9
9
  import pc from '@brillout/picocolors';
10
- import { getConfigDefinedAt } from '../../../../shared/page-configs/getConfigDefinedAt.js';
11
- import { htmlElementId_globalContext, htmlElementId_pageContext } from '../../../../shared/htmlElementIds.js';
12
- import { isFontFallback } from '../../renderPage/isFontFallback.js';
10
+ import { getConfigDefinedAt } from '../../../../../shared/page-configs/getConfigDefinedAt.js';
11
+ import { htmlElementId_globalContext, htmlElementId_pageContext } from '../../../../../shared/htmlElementIds.js';
12
+ import { isFontFallback } from '../../isFontFallback.js';
13
+ import { inferNonceAttr } from '../../csp.js';
13
14
  const stamp = '__injectFilterEntry';
14
15
  async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, isStream) {
15
16
  assert([true, false].includes(pageContext._isHtmlOnly));
@@ -76,7 +77,7 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
76
77
  .forEach((asset) => {
77
78
  if (!asset.inject)
78
79
  return;
79
- const htmlTag = asset.isEntry ? inferAssetTag(asset) : inferPreloadTag(asset);
80
+ const htmlTag = asset.isEntry ? inferAssetTag(asset, pageContext) : inferPreloadTag(asset);
80
81
  htmlTags.push({ htmlTag, position: asset.inject });
81
82
  });
82
83
  // ==========
@@ -137,7 +138,7 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
137
138
  });
138
139
  }
139
140
  // The JavaScript entry <script> tag
140
- const scriptEntry = mergeScriptEntries(pageAssets, viteDevScript);
141
+ const scriptEntry = mergeScriptEntries(pageAssets, viteDevScript, pageContext);
141
142
  if (scriptEntry) {
142
143
  htmlTags.push({
143
144
  htmlTag: scriptEntry,
@@ -158,9 +159,9 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
158
159
  });
159
160
  return htmlTags;
160
161
  }
161
- function mergeScriptEntries(pageAssets, viteDevScript) {
162
+ function mergeScriptEntries(pageAssets, viteDevScript, pageContext) {
162
163
  const scriptEntries = pageAssets.filter((pageAsset) => pageAsset.isEntry && pageAsset.assetType === 'script');
163
- let scriptEntry = `${viteDevScript}${scriptEntries.map((asset) => inferAssetTag(asset)).join('')}`;
164
+ let scriptEntry = `${viteDevScript}${scriptEntries.map((asset) => inferAssetTag(asset, pageContext)).join('')}`;
164
165
  // We merge scripts to avoid the infamous HMR preamble error.
165
166
  // - Infamous HMR preamble error:
166
167
  // ```browser-console
@@ -178,12 +179,13 @@ function mergeScriptEntries(pageAssets, viteDevScript) {
178
179
  // ```
179
180
  // - Maybe an alternative would be to make Vike's client runtime entry <script> tag non-async. Would that work? Would it be a performance issue?
180
181
  // - The entry <script> shouldn't be `<script defer>` upon HTML streaming, otherwise progressive hydration while SSR streaming won't work.
181
- scriptEntry = mergeScriptTags(scriptEntry);
182
+ scriptEntry = mergeScriptTags(scriptEntry, pageContext);
182
183
  return scriptEntry;
183
184
  }
184
185
  function getPageContextJsonScriptTag(pageContext) {
185
186
  const pageContextClientSerialized = sanitizeJson(getPageContextClientSerialized(pageContext, true));
186
- const htmlTag = `<script id="${htmlElementId_pageContext}" type="application/json">${pageContextClientSerialized}</script>`;
187
+ const nonceAttr = inferNonceAttr(pageContext);
188
+ const htmlTag = `<script id="${htmlElementId_pageContext}" type="application/json"${nonceAttr}>${pageContextClientSerialized}</script>`;
187
189
  // Used by contra.com https://github.com/gajus
188
190
  // @ts-expect-error
189
191
  pageContext._pageContextHtmlTag = htmlTag;
@@ -191,7 +193,8 @@ function getPageContextJsonScriptTag(pageContext) {
191
193
  }
192
194
  function getGlobalContextJsonScriptTag(pageContext) {
193
195
  const globalContextClientSerialized = sanitizeJson(getGlobalContextClientSerialized(pageContext, true));
194
- const htmlTag = `<script id="${htmlElementId_globalContext}" type="application/json">${globalContextClientSerialized}</script>`;
196
+ const nonceAttr = inferNonceAttr(pageContext);
197
+ const htmlTag = `<script id="${htmlElementId_globalContext}" type="application/json"${nonceAttr}>${globalContextClientSerialized}</script>`;
195
198
  return htmlTag;
196
199
  }
197
200
  function assertInjectFilterEntries(injectFilterEntries) {
@@ -1,5 +1,5 @@
1
1
  export { getViteDevScript };
2
- import type { GlobalContextServerInternal } from '../../globalContext.js';
2
+ import type { GlobalContextServerInternal } from '../../../globalContext.js';
3
3
  declare function getViteDevScript(pageContext: {
4
4
  _globalContext: GlobalContextServerInternal;
5
5
  }): Promise<string>;
@@ -1,5 +1,5 @@
1
1
  export { getViteDevScript };
2
- import { assert, assertUsage, assertWarning, getViteRPC } from '../../utils.js';
2
+ import { assert, assertUsage, assertWarning, getViteRPC } from '../../../utils.js';
3
3
  import pc from '@brillout/picocolors';
4
4
  const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
5
5
  async function getViteDevScript(pageContext) {
@@ -0,0 +1,10 @@
1
+ export { inferAssetTag };
2
+ export { inferPreloadTag };
3
+ export { inferEarlyHintLink };
4
+ export { scriptCommonAttrs };
5
+ import type { PageAsset } from '../../getPageAssets.js';
6
+ import { type PageContextCspNonce } from '../../csp.js';
7
+ declare const scriptCommonAttrs = "type=\"module\" async";
8
+ declare function inferPreloadTag(pageAsset: PageAsset): string;
9
+ declare function inferAssetTag(pageAsset: PageAsset, pageContext: PageContextCspNonce): string;
10
+ declare function inferEarlyHintLink(pageAsset: PageAsset): string;
@@ -1,10 +1,11 @@
1
1
  export { inferAssetTag };
2
2
  export { inferPreloadTag };
3
3
  export { inferEarlyHintLink };
4
- export { scriptAttrs };
5
- import { assert } from '../../utils.js';
4
+ export { scriptCommonAttrs };
5
+ import { assert } from '../../../utils.js';
6
+ import { inferNonceAttr } from '../../csp.js';
6
7
  // We can't use `defer` here. With `defer`, the entry script won't start before `</body>` has been parsed, preventing progressive hydration during SSR streaming, see https://github.com/vikejs/vike/pull/1271
7
- const scriptAttrs = 'type="module" async';
8
+ const scriptCommonAttrs = 'type="module" async';
8
9
  function inferPreloadTag(pageAsset) {
9
10
  const { src, assetType, mediaType } = pageAsset;
10
11
  const rel = getRel(pageAsset);
@@ -20,11 +21,12 @@ function inferPreloadTag(pageAsset) {
20
21
  .join(' ');
21
22
  return `<link ${attributes}>`;
22
23
  }
23
- function inferAssetTag(pageAsset) {
24
+ function inferAssetTag(pageAsset, pageContext) {
24
25
  const { src, assetType, mediaType } = pageAsset;
25
26
  if (assetType === 'script') {
26
27
  assert(mediaType === 'text/javascript');
27
- return `<script src="${src}" ${scriptAttrs}></script>`;
28
+ const nonceAttr = inferNonceAttr(pageContext);
29
+ return `<script src="${src}" ${scriptCommonAttrs}${nonceAttr}></script>`;
28
30
  }
29
31
  if (assetType === 'style') {
30
32
  // WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L29
@@ -1,5 +1,5 @@
1
1
  export { injectAssets__public };
2
- import { assertUsage, assertWarning, castProp, hasProp } from '../../utils.js';
2
+ import { assertUsage, assertWarning, castProp, hasProp } from '../../../utils.js';
3
3
  import { injectHtmlTagsToString } from '../injectAssets.js';
4
4
  // TO-DO/next-major-release: remove
5
5
  async function injectAssets__public(htmlString, pageContext) {
@@ -6,7 +6,7 @@ export { joinHtmlTags };
6
6
  // Only needed for unit tests
7
7
  export { injectAtOpeningTag };
8
8
  export { injectAtClosingTag };
9
- import { assert, assertUsage, slice } from '../../utils.js';
9
+ import { assert, assertUsage, slice } from '../../../utils.js';
10
10
  function injectHtmlTags(htmlString, htmlTags, position) {
11
11
  const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === position));
12
12
  if (htmlFragment) {
@@ -0,0 +1,3 @@
1
+ export { mergeScriptTags };
2
+ import { type PageContextCspNonce } from '../../csp.js';
3
+ declare function mergeScriptTags(scriptTagsHtml: string, pageContext: PageContextCspNonce): string;
@@ -1,10 +1,11 @@
1
1
  export { mergeScriptTags };
2
- import { assert } from '../../utils.js';
3
- import { scriptAttrs } from './inferHtmlTags.js';
2
+ import { inferNonceAttr } from '../../csp.js';
3
+ import { assert } from '../../../utils.js';
4
+ import { scriptCommonAttrs } from './inferHtmlTags.js';
4
5
  const scriptRE = /(<script\b(?:\s[^>]*>|>))(.*?)<\/script>/gims;
5
6
  const srcRE = /\bsrc\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
6
7
  const typeRE = /\btype\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
7
- function mergeScriptTags(scriptTagsHtml) {
8
+ function mergeScriptTags(scriptTagsHtml, pageContext) {
8
9
  let scriptTag = '';
9
10
  const scripts = parseScripts(scriptTagsHtml);
10
11
  // We need to merge module scripts to ensure execution order
@@ -33,7 +34,8 @@ function mergeScriptTags(scriptTagsHtml) {
33
34
  }
34
35
  });
35
36
  if (contents.length > 0) {
36
- scriptTag += `<script ${scriptAttrs}>\n${contents.join('\n')}\n</script>`;
37
+ const nonceAttr = inferNonceAttr(pageContext);
38
+ scriptTag += `<script ${scriptCommonAttrs}${nonceAttr}>\n${contents.join('\n')}\n</script>`;
37
39
  }
38
40
  }
39
41
  }
@@ -2,12 +2,12 @@ export { injectHtmlTagsToString };
2
2
  export { injectHtmlTagsToStream };
3
3
  export type { PageContextInjectAssets };
4
4
  export type { PageContextPromise };
5
- import type { PageAsset } from '../renderPage/getPageAssets.js';
5
+ import type { PageAsset } from '../getPageAssets.js';
6
6
  import type { HtmlPart } from './renderHtml.js';
7
7
  import { type PreloadFilter } from './injectAssets/getHtmlTags.js';
8
8
  import type { StreamFromReactStreamingPackage } from './stream/react-streaming.js';
9
9
  import type { PageContextSerialization } from './serializeContext.js';
10
- import type { GlobalContextServerInternal } from '../globalContext.js';
10
+ import type { GlobalContextServerInternal } from '../../globalContext.js';
11
11
  type PageContextInjectAssets = {
12
12
  urlPathname: string;
13
13
  __getPageAssets: () => Promise<PageAsset[]>;
@@ -1,7 +1,7 @@
1
1
  export { injectHtmlTagsToString };
2
2
  export { injectHtmlTagsToStream };
3
- import { assert, isCallable, isPromise } from '../utils.js';
4
- import { assertPageContextProvidedByUser } from '../../../shared/assertPageContextProvidedByUser.js';
3
+ import { assert, isCallable, isPromise } from '../../utils.js';
4
+ import { assertPageContextProvidedByUser } from '../../../../shared/assertPageContextProvidedByUser.js';
5
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';
@@ -1,7 +1,7 @@
1
1
  export { getPropVal };
2
2
  export { setPropVal };
3
3
  export { getPropKeys };
4
- import { isObject } from '../utils.js';
4
+ import { isObject } from '../../utils.js';
5
5
  // Get a nested property from an object using a dot-separated path such as 'user.id'
6
6
  function getPropVal(obj, prop) {
7
7
  const keys = getPropKeys(prop);
@@ -9,7 +9,7 @@ export type { DocumentHtml };
9
9
  export type { TemplateWrapped };
10
10
  import type { PageContextInjectAssets } from './injectAssets.js';
11
11
  import { StreamProviderAny, StreamTypePatch, StreamProviderNormalized } from './stream.js';
12
- import type { PageAsset } from '../renderPage/getPageAssets.js';
12
+ import type { PageAsset } from '../getPageAssets.js';
13
13
  import type { PreloadFilter } from './injectAssets/getHtmlTags.js';
14
14
  type DocumentHtml = TemplateWrapped | EscapedString | StreamProviderAny;
15
15
  type HtmlRender = string | StreamProviderNormalized;
@@ -3,7 +3,7 @@ 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
8
  import { processStream, isStream, streamToString, } from './stream.js';
9
9
  import { isStreamFromReactStreamingPackage } from './stream/react-streaming.js';
@@ -4,10 +4,11 @@ export { getGlobalContextClientSerialized };
4
4
  export type { PageContextSerialization };
5
5
  export type { PassToClient };
6
6
  export type { PassToClientPublic };
7
- import type { UrlRedirect } from '../../../shared/route/abort.js';
8
- import type { GlobalContextServerInternal } from '../globalContext.js';
9
- import type { PageContextCreated } from '../renderPage/createPageContextServerSide.js';
10
- import type { PageContextBegin } from '../renderPage.js';
7
+ import type { UrlRedirect } from '../../../../shared/route/abort.js';
8
+ import type { GlobalContextServerInternal } from '../../globalContext.js';
9
+ import type { PageContextCreated } from '../createPageContextServerSide.js';
10
+ import type { PageContextBegin } from '../../renderPage.js';
11
+ import type { PageContextCspNonce } from '../csp.js';
11
12
  type PageContextSerialization = PageContextCreated & {
12
13
  pageId: string;
13
14
  routeParams: Record<string, string>;
@@ -17,7 +18,7 @@ type PageContextSerialization = PageContextCreated & {
17
18
  _pageContextInit: Record<string, unknown>;
18
19
  _globalContext: GlobalContextServerInternal;
19
20
  _isPageContextJsonRequest: null | PageContextBegin['_isPageContextJsonRequest'];
20
- };
21
+ } & PageContextCspNonce;
21
22
  declare function getPageContextClientSerialized(pageContext: PageContextSerialization, isHtmlJsonScript: boolean): string;
22
23
  declare function getGlobalContextClientSerialized(pageContext: PageContextSerialization, isHtmlJsonScript: boolean): string;
23
24
  type PassToClient = string[];
@@ -2,13 +2,13 @@ export { getPageContextClientSerialized };
2
2
  export { getPageContextClientSerializedAbort };
3
3
  export { getGlobalContextClientSerialized };
4
4
  import { stringify, isJsonSerializerError } from '@brillout/json-serializer/stringify';
5
- import { assert, assertUsage, assertWarning, getPropAccessNotation, hasProp, unique } from '../utils.js';
6
- import { isErrorPage } from '../../../shared/error-page.js';
7
- import { addIs404ToPageProps } from '../../../shared/addIs404ToPageProps.js';
5
+ import { assert, assertUsage, assertWarning, getPropAccessNotation, hasProp, unique } from '../../utils.js';
6
+ import { isErrorPage } from '../../../../shared/error-page.js';
7
+ import { addIs404ToPageProps } from '../../../../shared/addIs404ToPageProps.js';
8
8
  import pc from '@brillout/picocolors';
9
- import { NOT_SERIALIZABLE } from '../../../shared/NOT_SERIALIZABLE.js';
10
- import { pageContextInitIsPassedToClient } from '../../../shared/misc/pageContextInitIsPassedToClient.js';
11
- import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
9
+ import { NOT_SERIALIZABLE } from '../../../../shared/NOT_SERIALIZABLE.js';
10
+ import { pageContextInitIsPassedToClient } from '../../../../shared/misc/pageContextInitIsPassedToClient.js';
11
+ import { isServerSideError } from '../../../../shared/misc/isServerSideError.js';
12
12
  import { getPropKeys, getPropVal, setPropVal } from './propKeys.js';
13
13
  const passToClientBuiltInPageContext = [
14
14
  'abortReason',
@@ -2,7 +2,7 @@
2
2
  export { isStreamFromReactStreamingPackage };
3
3
  export { streamFromReactStreamingPackageToString };
4
4
  export { getStreamOfReactStreamingPackage };
5
- import { assert, assertUsage, hasProp, isVikeReactApp } from '../../utils.js';
5
+ import { assert, assertUsage, hasProp, isVikeReactApp } from '../../../utils.js';
6
6
  import { streamPipeNodeToString, streamReadableWebToString } from '../stream.js';
7
7
  function streamFromReactStreamingPackageToString(stream) {
8
8
  if (stream.pipe) {
@@ -19,7 +19,7 @@ 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';
22
+ import { assert, assertUsage, checkType, isObject, hasProp, objectAssign, capitalizeFirstLetter, assertWarning, isCallable, createDebugger, isBug, } from '../../utils.js';
23
23
  import { getStreamOfReactStreamingPackage, isStreamFromReactStreamingPackage, streamFromReactStreamingPackageToString, } from './stream/react-streaming.js';
24
24
  import { import_ } from '@brillout/import';
25
25
  import pc from '@brillout/picocolors';
@@ -1,11 +1,12 @@
1
1
  export { loadPageConfigsLazyServerSide };
2
2
  export type { PageContext_loadPageConfigsLazyServerSide };
3
3
  export type { PageConfigsLazy };
4
- import { type VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
4
+ export type { PageContextAfterPageEntryLoaded };
5
+ import { type PageContextConfig } from '../../../shared/getPageFiles.js';
5
6
  import { PromiseType } from '../utils.js';
6
7
  import { type PageAsset } from './getPageAssets.js';
7
8
  import type { PageConfigRuntime } from '../../../types/PageConfig.js';
8
- import type { PassToClient } from '../html/serializeContext.js';
9
+ import type { PassToClient } from './html/serializeContext.js';
9
10
  import type { PageContextAfterRoute } from '../../../shared/route/index.js';
10
11
  import type { PageContextCreated } from './createPageContextServerSide.js';
11
12
  type PageContext_loadPageConfigsLazyServerSide = PageContextCreated & PageContextAfterRoute & {
@@ -23,24 +24,52 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
23
24
  url?: string;
24
25
  headers?: Record<string, string>;
25
26
  } & {
26
- _globalContext: {
27
- isGlobalContext: true;
28
- _isOriginalObject: true;
29
- _virtualFileExportsGlobalEntry: unknown;
30
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
31
- _pageConfigs: PageConfigRuntime[];
32
- _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
33
- _allPageIds: string[];
34
- _vikeConfigPublicGlobal: {
27
+ _globalContext: ({
28
+ _globalConfigPublic: {
29
+ pages: {
30
+ [k: string]: {
31
+ config: import("../../../types/index.js").ConfigResolved;
32
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
33
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
34
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
35
+ } & ({
36
+ route: import("../../../types/Config.js").Route;
37
+ isErrorPage?: undefined;
38
+ } | {
39
+ route?: undefined;
40
+ isErrorPage: true;
41
+ });
42
+ };
35
43
  config: import("../../../types/index.js").ConfigResolved;
36
44
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
37
45
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
38
46
  _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
39
47
  };
40
- config: import("../../../types/index.js").ConfigResolved;
41
48
  pages: {
42
- [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
49
+ [k: string]: {
50
+ config: import("../../../types/index.js").ConfigResolved;
51
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
52
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
53
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
54
+ } & ({
55
+ route: import("../../../types/Config.js").Route;
56
+ isErrorPage?: undefined;
57
+ } | {
58
+ route?: undefined;
59
+ isErrorPage: true;
60
+ });
43
61
  };
62
+ config: import("../../../types/index.js").ConfigResolved;
63
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
64
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
65
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
66
+ isGlobalContext: true;
67
+ _isOriginalObject: true;
68
+ _virtualFileExportsGlobalEntry: unknown;
69
+ _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
70
+ _pageConfigs: PageConfigRuntime[];
71
+ _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
72
+ _allPageIds: string[];
44
73
  } & (({
45
74
  _isProduction: false;
46
75
  _isPrerendering: false;
@@ -83,7 +112,9 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
83
112
  inject: boolean | undefined;
84
113
  };
85
114
  };
86
- });
115
+ })) & {
116
+ prerenderContext: import("../../prerender/runPrerender.js").PrerenderContextPublic | undefined;
117
+ };
87
118
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
88
119
  _baseServer: string;
89
120
  _baseAssets: string;
@@ -92,6 +123,20 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
92
123
  _urlHandler: ((url: string) => string) | null;
93
124
  isClientSideNavigation: boolean;
94
125
  } & {
126
+ pages: {
127
+ [k: string]: {
128
+ config: import("../../../types/index.js").ConfigResolved;
129
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
130
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
131
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
132
+ } & ({
133
+ route: import("../../../types/Config.js").Route;
134
+ isErrorPage?: undefined;
135
+ } | {
136
+ route?: undefined;
137
+ isErrorPage: true;
138
+ });
139
+ };
95
140
  config: import("../../../types/index.js").ConfigResolved;
96
141
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
97
142
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
@@ -107,15 +152,19 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
107
152
  pageId: string;
108
153
  } & {
109
154
  _pageConfig: PageConfigRuntime | null;
110
- } & {
111
- _pageConfig: null | PageConfigRuntime;
112
- } & VikeConfigPublicPageLazyLoaded & {
155
+ } & PageContextConfig & {
113
156
  _pageConfig: null | PageConfigRuntime;
157
+ } & {
158
+ cspNonce: string | null;
114
159
  } & {
115
160
  Page: unknown;
116
161
  _isHtmlOnly: boolean;
117
162
  _passToClient: PassToClient;
163
+ } & {
118
164
  headersResponse: Headers;
119
165
  } & {
120
166
  __getPageAssets: () => Promise<PageAsset[]>;
121
167
  }>;
168
+ type PageContextAfterPageEntryLoaded = PageContext_loadPageConfigsLazyServerSide & {
169
+ _pageConfig: null | PageConfigRuntime;
170
+ } & PageContextConfig;