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
@@ -10,11 +10,13 @@ export { initGlobalContext_getPagesAndRoutes };
10
10
  export { setGlobalContext_viteDevServer };
11
11
  export { setGlobalContext_viteConfig };
12
12
  export { setGlobalContext_isPrerendering };
13
+ export { setGlobalContext_prerenderContext };
13
14
  export { setGlobalContext_isProductionAccordingToVite };
14
15
  export { setGlobalContext_prodBuildEntry };
15
16
  export { clearGlobalContext };
16
17
  export { assertBuildInfo };
17
18
  export { updateUserFiles };
19
+ export { isRunnable };
18
20
  export { vikeConfigErrorRecoverMsg };
19
21
  export type { BuildInfo };
20
22
  export type { GlobalContextServerInternal as GlobalContextServerInternal };
@@ -25,28 +27,57 @@ import { type PageRoutes } from '../../shared/route/loadPageRoutes.js';
25
27
  import type { ViteConfigRuntime } from '../vite/shared/getViteConfigRuntime.js';
26
28
  import type { GlobalContext } from '../../types/PageContext.js';
27
29
  import type { Hook } from '../../shared/hooks/getHook.js';
30
+ import type { PrerenderContext } from '../../types/index.js';
28
31
  declare const vikeConfigErrorRecoverMsg: "Vike config loaded";
29
32
  type GlobalContextServer = Pick<GlobalContextServerInternal, 'assetsManifest' | 'config' | 'viteConfig' | 'viteConfigRuntime' | 'pages' | 'baseServer' | 'baseAssets' | 'isClientSide'> & Vike.GlobalContext & Vike.GlobalContextServer;
30
33
  type GlobalContextServerInternal = Awaited<ReturnType<typeof createGlobalContext>>;
31
34
  declare function getGlobalContextServerInternal(): Promise<{
32
35
  globalContext: (Record<string, unknown> & {
33
- isGlobalContext: true;
34
- _isOriginalObject: true;
35
- _virtualFileExportsGlobalEntry: unknown;
36
- _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
37
- _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
38
- _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
39
- _allPageIds: string[];
40
- _vikeConfigPublicGlobal: {
36
+ _globalConfigPublic: {
37
+ pages: {
38
+ [k: string]: {
39
+ config: import("../../types/index.js").ConfigResolved;
40
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
41
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
42
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
43
+ } & ({
44
+ route: import("../../types/Config.js").Route;
45
+ isErrorPage?: undefined;
46
+ } | {
47
+ route?: undefined;
48
+ isErrorPage: true;
49
+ });
50
+ };
41
51
  config: import("../../types/index.js").ConfigResolved;
42
52
  _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
43
53
  _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
44
54
  _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
45
55
  };
46
- config: import("../../types/index.js").ConfigResolved;
47
56
  pages: {
48
- [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
57
+ [k: string]: {
58
+ config: import("../../types/index.js").ConfigResolved;
59
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
60
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
61
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
62
+ } & ({
63
+ route: import("../../types/Config.js").Route;
64
+ isErrorPage?: undefined;
65
+ } | {
66
+ route?: undefined;
67
+ isErrorPage: true;
68
+ });
49
69
  };
70
+ config: import("../../types/index.js").ConfigResolved;
71
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
72
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
73
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
74
+ isGlobalContext: true;
75
+ _isOriginalObject: true;
76
+ _virtualFileExportsGlobalEntry: unknown;
77
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
78
+ _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
79
+ _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
80
+ _allPageIds: string[];
50
81
  } & {
51
82
  _isProduction: false;
52
83
  _isPrerendering: false;
@@ -69,24 +100,54 @@ declare function getGlobalContextServerInternal(): Promise<{
69
100
  inject: boolean | undefined;
70
101
  };
71
102
  };
103
+ } & {
104
+ prerenderContext: PrerenderContext | undefined;
72
105
  }) | (Record<string, unknown> & {
73
- isGlobalContext: true;
74
- _isOriginalObject: true;
75
- _virtualFileExportsGlobalEntry: unknown;
76
- _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
77
- _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
78
- _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
79
- _allPageIds: string[];
80
- _vikeConfigPublicGlobal: {
106
+ _globalConfigPublic: {
107
+ pages: {
108
+ [k: string]: {
109
+ config: import("../../types/index.js").ConfigResolved;
110
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
111
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
112
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
113
+ } & ({
114
+ route: import("../../types/Config.js").Route;
115
+ isErrorPage?: undefined;
116
+ } | {
117
+ route?: undefined;
118
+ isErrorPage: true;
119
+ });
120
+ };
81
121
  config: import("../../types/index.js").ConfigResolved;
82
122
  _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
83
123
  _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
84
124
  _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
85
125
  };
86
- config: import("../../types/index.js").ConfigResolved;
87
126
  pages: {
88
- [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
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
+ });
89
139
  };
140
+ config: import("../../types/index.js").ConfigResolved;
141
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
142
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
143
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
144
+ isGlobalContext: true;
145
+ _isOriginalObject: true;
146
+ _virtualFileExportsGlobalEntry: unknown;
147
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
148
+ _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
149
+ _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
150
+ _allPageIds: string[];
90
151
  } & {
91
152
  _isPrerendering: true;
92
153
  viteConfig: ResolvedConfig;
@@ -110,24 +171,54 @@ declare function getGlobalContextServerInternal(): Promise<{
110
171
  inject: boolean | undefined;
111
172
  };
112
173
  };
174
+ } & {
175
+ prerenderContext: PrerenderContext | undefined;
113
176
  }) | (Record<string, unknown> & {
114
- isGlobalContext: true;
115
- _isOriginalObject: true;
116
- _virtualFileExportsGlobalEntry: unknown;
117
- _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
118
- _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
119
- _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
120
- _allPageIds: string[];
121
- _vikeConfigPublicGlobal: {
177
+ _globalConfigPublic: {
178
+ pages: {
179
+ [k: string]: {
180
+ config: import("../../types/index.js").ConfigResolved;
181
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
182
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
183
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
184
+ } & ({
185
+ route: import("../../types/Config.js").Route;
186
+ isErrorPage?: undefined;
187
+ } | {
188
+ route?: undefined;
189
+ isErrorPage: true;
190
+ });
191
+ };
122
192
  config: import("../../types/index.js").ConfigResolved;
123
193
  _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
124
194
  _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
125
195
  _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
126
196
  };
127
- config: import("../../types/index.js").ConfigResolved;
128
197
  pages: {
129
- [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
198
+ [k: string]: {
199
+ config: import("../../types/index.js").ConfigResolved;
200
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
201
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
202
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
203
+ } & ({
204
+ route: import("../../types/Config.js").Route;
205
+ isErrorPage?: undefined;
206
+ } | {
207
+ route?: undefined;
208
+ isErrorPage: true;
209
+ });
130
210
  };
211
+ config: import("../../types/index.js").ConfigResolved;
212
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
213
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
214
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
215
+ isGlobalContext: true;
216
+ _isOriginalObject: true;
217
+ _virtualFileExportsGlobalEntry: unknown;
218
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
219
+ _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
220
+ _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
221
+ _allPageIds: string[];
131
222
  } & {
132
223
  _isPrerendering: false;
133
224
  viteConfig: null;
@@ -151,6 +242,8 @@ declare function getGlobalContextServerInternal(): Promise<{
151
242
  inject: boolean | undefined;
152
243
  };
153
244
  };
245
+ } & {
246
+ prerenderContext: PrerenderContext | undefined;
154
247
  });
155
248
  }>;
156
249
  /**
@@ -174,6 +267,7 @@ declare function getGlobalContextSync(): GlobalContext;
174
267
  declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): Promise<void>;
175
268
  declare function setGlobalContext_viteConfig(viteConfig: ResolvedConfig, viteConfigRuntime: ViteConfigRuntime): void;
176
269
  declare function setGlobalContext_isPrerendering(): void;
270
+ declare function setGlobalContext_prerenderContext(prerenderContextPublic: PrerenderContext): void;
177
271
  declare function setGlobalContext_isProductionAccordingToVite(isProductionAccordingToVite: boolean): void;
178
272
  declare function getViteDevServer(): ViteDevServer | null;
179
273
  declare function getViteConfig(): ResolvedConfig | null;
@@ -190,24 +284,52 @@ declare function assertBuildInfo(buildInfo: unknown): asserts buildInfo is Build
190
284
  declare function updateUserFiles(): Promise<{
191
285
  success: boolean;
192
286
  }>;
193
- declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Promise<{
194
- isGlobalContext: true;
195
- _isOriginalObject: true;
196
- _virtualFileExportsGlobalEntry: unknown;
197
- _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
198
- _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
199
- _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
200
- _allPageIds: string[];
201
- _vikeConfigPublicGlobal: {
287
+ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Promise<({
288
+ _globalConfigPublic: {
289
+ pages: {
290
+ [k: string]: {
291
+ config: import("../../types/index.js").ConfigResolved;
292
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
293
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
294
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
295
+ } & ({
296
+ route: import("../../types/Config.js").Route;
297
+ isErrorPage?: undefined;
298
+ } | {
299
+ route?: undefined;
300
+ isErrorPage: true;
301
+ });
302
+ };
202
303
  config: import("../../types/index.js").ConfigResolved;
203
304
  _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
204
305
  _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
205
306
  _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
206
307
  };
207
- config: import("../../types/index.js").ConfigResolved;
208
308
  pages: {
209
- [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
309
+ [k: string]: {
310
+ config: import("../../types/index.js").ConfigResolved;
311
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
312
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
313
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
314
+ } & ({
315
+ route: import("../../types/Config.js").Route;
316
+ isErrorPage?: undefined;
317
+ } | {
318
+ route?: undefined;
319
+ isErrorPage: true;
320
+ });
210
321
  };
322
+ config: import("../../types/index.js").ConfigResolved;
323
+ _source: import("../../shared/page-configs/resolveVikeConfigPublic.js").Source;
324
+ _sources: import("../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
325
+ _from: import("../../shared/page-configs/resolveVikeConfigPublic.js").From;
326
+ isGlobalContext: true;
327
+ _isOriginalObject: true;
328
+ _virtualFileExportsGlobalEntry: unknown;
329
+ _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
330
+ _pageConfigs: import("../../types/PageConfig.js").PageConfigRuntime[];
331
+ _pageConfigGlobal: import("../../types/PageConfig.js").PageConfigGlobalRuntime;
332
+ _allPageIds: string[];
211
333
  } & (({
212
334
  _isProduction: false;
213
335
  _isPrerendering: false;
@@ -250,5 +372,8 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
250
372
  inject: boolean | undefined;
251
373
  };
252
374
  };
253
- })>;
375
+ })) & {
376
+ prerenderContext: PrerenderContext | undefined;
377
+ }>;
254
378
  declare function clearGlobalContext(): void;
379
+ declare function isRunnable(viteDevServer: ViteDevServer): boolean;
@@ -12,11 +12,13 @@ export { initGlobalContext_getPagesAndRoutes };
12
12
  export { setGlobalContext_viteDevServer };
13
13
  export { setGlobalContext_viteConfig };
14
14
  export { setGlobalContext_isPrerendering };
15
+ export { setGlobalContext_prerenderContext };
15
16
  export { setGlobalContext_isProductionAccordingToVite };
16
17
  export { setGlobalContext_prodBuildEntry }; // production entry
17
18
  export { clearGlobalContext };
18
19
  export { assertBuildInfo };
19
20
  export { updateUserFiles };
21
+ export { isRunnable };
20
22
  export { vikeConfigErrorRecoverMsg };
21
23
  // The core logic revolves around:
22
24
  // - virtualFileExportsGlobalEntry is the main requirement
@@ -26,7 +28,7 @@ export { vikeConfigErrorRecoverMsg };
26
28
  // - Without vike-server it's manually loaded here using importServerProductionEntry() which uses @brillout/vite-plugin-server-entry's autoImporter or crawler
27
29
  // - In development: globalObject.viteDevServer which is Vite's development server
28
30
  // - globalObject.viteDevServer is used by updateUserFiles() which then sets virtualFileExportsGlobalEntry
29
- import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, isRunnableDevEnvironment, assertIsNotBrowser, isNonRunnableDev, } from './utils.js';
31
+ import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, objectReplace, isObject, hasProp, getGlobalObject, genPromise, createDebugger, checkType, PROJECT_VERSION, getViteRPC, isRunnableDevEnvironment, assertIsNotBrowser, isNonRunnableDev, objectAssign, } from './utils.js';
30
32
  import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
31
33
  import { virtualFileIdGlobalEntryServer } from '../shared/virtualFileId.js';
32
34
  import pc from '@brillout/picocolors';
@@ -149,6 +151,13 @@ function assertIsNotInitializedYet() {
149
151
  function setGlobalContext_isPrerendering() {
150
152
  globalObject.isPrerendering = true;
151
153
  }
154
+ function setGlobalContext_prerenderContext(prerenderContextPublic) {
155
+ globalObject.prerenderContextPublic = prerenderContextPublic;
156
+ // Ugly redundancy, which we can remove after globalContext is a proxy
157
+ const { globalContext } = globalObjectTyped;
158
+ if (globalContext)
159
+ globalContext.prerenderContext = prerenderContextPublic;
160
+ }
152
161
  function setGlobalContext_isProductionAccordingToVite(isProductionAccordingToVite) {
153
162
  globalObject.isProductionAccordingToVite = isProductionAccordingToVite;
154
163
  }
@@ -400,6 +409,7 @@ async function createGlobalContext(virtualFileExportsGlobalEntry) {
400
409
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
401
410
  assertGlobalContextIsDefined();
402
411
  onSetupRuntime();
412
+ objectAssign(globalContext, { prerenderContext: globalObject.prerenderContextPublic });
403
413
  // Never actually used, only used for TypeScript `ReturnType<typeof createGlobalContext>`
404
414
  return globalContext;
405
415
  }
@@ -1,11 +1,11 @@
1
1
  export { renderPage } from './renderPage.js';
2
- export { escapeInject, dangerouslySkipEscape } from './html/renderHtml.js';
3
- export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './html/stream.js';
2
+ export { escapeInject, dangerouslySkipEscape } from './renderPage/html/renderHtml.js';
3
+ export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './renderPage/html/stream.js';
4
4
  export { PROJECT_VERSION as version } from './utils.js';
5
5
  export { getGlobalContext, getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
6
6
  export { createDevMiddleware } from '../runtime-dev/index.js';
7
7
  export * from '../../types/index-dreprecated.js';
8
- export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
8
+ export { injectAssets__public as _injectAssets } from './renderPage/html/injectAssets/injectAssets__public.js';
9
9
  export { createPageRenderer } from '../createPageRenderer.js';
10
10
  import { RenderErrorPage as RenderErrorPage_ } from '../../shared/route/abort.js';
11
11
  /** @deprecated
@@ -2,15 +2,15 @@ import { isBrowser } from '../../utils/isBrowser.js';
2
2
  import { assert } from '../../utils/assert.js';
3
3
  assert(!isBrowser());
4
4
  export { renderPage } from './renderPage.js';
5
- export { escapeInject, dangerouslySkipEscape } from './html/renderHtml.js';
6
- export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './html/stream.js';
5
+ export { escapeInject, dangerouslySkipEscape } from './renderPage/html/renderHtml.js';
6
+ export { pipeWebStream, pipeNodeStream, pipeStream, stampPipe } from './renderPage/html/stream.js';
7
7
  export { PROJECT_VERSION as version } from './utils.js';
8
8
  export { getGlobalContext, getGlobalContextSync, getGlobalContextAsync } from './globalContext.js';
9
9
  export { createDevMiddleware } from '../runtime-dev/index.js';
10
10
  // TO-DO/next-major-release: remove
11
11
  // Deprecated exports
12
12
  export * from '../../types/index-dreprecated.js';
13
- export { injectAssets__public as _injectAssets } from './html/injectAssets/injectAssets__public.js';
13
+ export { injectAssets__public as _injectAssets } from './renderPage/html/injectAssets/injectAssets__public.js';
14
14
  export { createPageRenderer } from '../createPageRenderer.js';
15
15
  import { assertWarning } from './utils.js';
16
16
  import pc from '@brillout/picocolors';
@@ -1,3 +1,5 @@
1
1
  export {};
2
- // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
2
+ // TO-DO/eventually: remove
3
+ // - This was used by some older Vike extensions made by Joël (I believe vite-plugin-vercel)
4
+ // - See also https://github.com/vikejs/vike/issues/2122
3
5
  // This doesn't do anything anymore. (It's kept to avoid introducing a breaking change.)
@@ -7,7 +7,7 @@ export { createHttpResponse404 };
7
7
  export { createHttpResponseBaseIsMissing };
8
8
  export type { HttpResponse };
9
9
  import type { GetPageAssets } from './getPageAssets.js';
10
- import type { HtmlRender } from '../html/renderHtml.js';
10
+ import type { HtmlRender } from './html/renderHtml.js';
11
11
  import type { RenderHook } from './execHookOnRenderHtml.js';
12
12
  import type { RedirectStatusCode, AbortStatusCode, UrlRedirect } from '../../../shared/route/abort.js';
13
13
  import { HttpResponseBody } from './getHttpResponseBody.js';
@@ -10,7 +10,7 @@ import { getErrorPageId, isErrorPage } from '../../../shared/error-page.js';
10
10
  import { getHttpResponseBody, getHttpResponseBodyStreamHandlers } from './getHttpResponseBody.js';
11
11
  import { getEarlyHints } from './getEarlyHints.js';
12
12
  import { assertNoInfiniteHttpRedirect } from './createHttpResponse/assertNoInfiniteHttpRedirect.js';
13
- import { cacheControlDisable } from './getCacheControl.js';
13
+ import { resolveHeadersResponseFinal } from './headersResponse.js';
14
14
  async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
15
15
  let statusCode = pageContext.abortStatusCode;
16
16
  if (!statusCode) {
@@ -28,14 +28,7 @@ async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
28
28
  }
29
29
  }
30
30
  const earlyHints = getEarlyHints(await pageContext.__getPageAssets());
31
- const headers = [];
32
- const headersResponse = pageContext.headersResponse || new Headers();
33
- headersResponse.forEach((value, key) => {
34
- headers.push([key, value]);
35
- });
36
- // An 5xx error page shouldn't be cached (it should be temporary)
37
- if (statusCode >= 500)
38
- headersResponse.set('Cache-Control', cacheControlDisable);
31
+ const headers = resolveHeadersResponseFinal(pageContext, statusCode);
39
32
  return createHttpResponse(statusCode, 'text/html;charset=utf-8', headers, htmlRender, earlyHints, renderHook);
40
33
  }
41
34
  function createHttpResponse404(errMsg404) {
@@ -23,24 +23,52 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
23
23
  url?: string;
24
24
  headers?: Record<string, string>;
25
25
  } & {
26
- _globalContext: {
27
- isGlobalContext: true;
28
- _isOriginalObject: true;
29
- _virtualFileExportsGlobalEntry: unknown;
30
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
31
- _pageConfigs: import("../../../types/PageConfig.js").PageConfigRuntime[];
32
- _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
33
- _allPageIds: string[];
34
- _vikeConfigPublicGlobal: {
26
+ _globalContext: ({
27
+ _globalConfigPublic: {
28
+ pages: {
29
+ [k: string]: {
30
+ config: import("../../../types/index.js").ConfigResolved;
31
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
32
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
33
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
34
+ } & ({
35
+ route: import("../../../types/Config.js").Route;
36
+ isErrorPage?: undefined;
37
+ } | {
38
+ route?: undefined;
39
+ isErrorPage: true;
40
+ });
41
+ };
35
42
  config: import("../../../types/index.js").ConfigResolved;
36
43
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
37
44
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
38
45
  _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
39
46
  };
40
- config: import("../../../types/index.js").ConfigResolved;
41
47
  pages: {
42
- [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
48
+ [k: string]: {
49
+ config: import("../../../types/index.js").ConfigResolved;
50
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
51
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
52
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
53
+ } & ({
54
+ route: import("../../../types/Config.js").Route;
55
+ isErrorPage?: undefined;
56
+ } | {
57
+ route?: undefined;
58
+ isErrorPage: true;
59
+ });
43
60
  };
61
+ config: import("../../../types/index.js").ConfigResolved;
62
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
63
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
64
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
65
+ isGlobalContext: true;
66
+ _isOriginalObject: true;
67
+ _virtualFileExportsGlobalEntry: unknown;
68
+ _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
69
+ _pageConfigs: import("../../../types/PageConfig.js").PageConfigRuntime[];
70
+ _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
71
+ _allPageIds: string[];
44
72
  } & (({
45
73
  _isProduction: false;
46
74
  _isPrerendering: false;
@@ -83,7 +111,9 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
83
111
  inject: boolean | undefined;
84
112
  };
85
113
  };
86
- });
114
+ })) & {
115
+ prerenderContext: import("../../prerender/runPrerender.js").PrerenderContextPublic | undefined;
116
+ };
87
117
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
88
118
  _baseServer: string;
89
119
  _baseAssets: string;
@@ -92,6 +122,20 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
92
122
  _urlHandler: ((url: string) => string) | null;
93
123
  isClientSideNavigation: boolean;
94
124
  } & {
125
+ pages: {
126
+ [k: string]: {
127
+ config: import("../../../types/index.js").ConfigResolved;
128
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
129
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
130
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
131
+ } & ({
132
+ route: import("../../../types/Config.js").Route;
133
+ isErrorPage?: undefined;
134
+ } | {
135
+ route?: undefined;
136
+ isErrorPage: true;
137
+ });
138
+ };
95
139
  config: import("../../../types/index.js").ConfigResolved;
96
140
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
97
141
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
@@ -17,7 +17,7 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
17
17
  _urlHandler: args.ssr?.urlHandler ?? null,
18
18
  isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
19
19
  });
20
- objectAssign(pageContextCreated, globalContext._vikeConfigPublicGlobal);
20
+ objectAssign(pageContextCreated, globalContext._globalConfigPublic);
21
21
  // pageContext.urlParsed
22
22
  const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
23
23
  objectAssign(pageContextCreated, pageContextUrlComputed);
@@ -38,7 +38,7 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
38
38
  }
39
39
  objectAssign(pageContextCreated, { headers });
40
40
  }
41
- const pageContextAugmented = createPageContextShared(pageContextCreated, globalContext._vikeConfigPublicGlobal);
41
+ const pageContextAugmented = createPageContextShared(pageContextCreated, globalContext._globalConfigPublic);
42
42
  updateType(pageContextCreated, pageContextAugmented);
43
43
  return pageContextCreated;
44
44
  }
@@ -0,0 +1,12 @@
1
+ export { resolvePageContextCspNone };
2
+ export { inferNonceAttr };
3
+ export { addCspResponseHeader };
4
+ export type { PageContextCspNonce };
5
+ import type { PageContextConfig } from '../../../shared/getPageFiles.js';
6
+ import type { PageContextServer } from '../../../types/PageContext.js';
7
+ declare function resolvePageContextCspNone(pageContext: PageContextConfig & Partial<PageContextCspNonce>): Promise<null | {
8
+ cspNonce: string | null;
9
+ }>;
10
+ type PageContextCspNonce = Pick<PageContextServer, 'cspNonce'>;
11
+ declare function inferNonceAttr(pageContext: PageContextCspNonce): string;
12
+ declare function addCspResponseHeader(pageContext: PageContextCspNonce, headersResponse: Headers): void;
@@ -0,0 +1,45 @@
1
+ export { resolvePageContextCspNone };
2
+ export { inferNonceAttr };
3
+ export { addCspResponseHeader };
4
+ import { import_ } from '@brillout/import';
5
+ import { assert } from '../utils.js';
6
+ async function resolvePageContextCspNone(pageContext) {
7
+ if (pageContext.cspNonce)
8
+ return null; // already set by user e.g. `renderPage({ cspNonce: '123456789' })`
9
+ const { csp } = pageContext.config;
10
+ const pageContextAddendum = { cspNonce: null };
11
+ if (csp?.nonce) {
12
+ if (csp.nonce === true) {
13
+ pageContextAddendum.cspNonce = await generateNonce();
14
+ }
15
+ else {
16
+ pageContextAddendum.cspNonce = await csp.nonce(pageContext);
17
+ }
18
+ }
19
+ return pageContextAddendum;
20
+ }
21
+ // Generate a cryptographically secure nonce for Content Security Policy (CSP).
22
+ // Returns a base64url-encoded nonce string (URL-safe, no padding).
23
+ // https://github.com/vikejs/vike/issues/1554#issuecomment-3181128304
24
+ async function generateNonce() {
25
+ let cryptoModule;
26
+ try {
27
+ cryptoModule = (await import_('crypto')).default;
28
+ }
29
+ catch {
30
+ return Math.random().toString(36).substring(2, 18);
31
+ }
32
+ return cryptoModule.randomBytes(16).toString('base64url');
33
+ }
34
+ function inferNonceAttr(pageContext) {
35
+ const nonceAttr = pageContext.cspNonce ? ` nonce="${pageContext.cspNonce}"` : '';
36
+ return nonceAttr;
37
+ }
38
+ function addCspResponseHeader(pageContext, headersResponse) {
39
+ assert(pageContext.cspNonce === null || typeof pageContext.cspNonce === 'string'); // ensure resolvePageContextCspNone() is called before addCspResponseHeader()
40
+ if (!pageContext.cspNonce)
41
+ return;
42
+ if (headersResponse.get('Content-Security-Policy'))
43
+ return;
44
+ headersResponse.set('Content-Security-Policy', `script-src 'self' 'nonce-${pageContext.cspNonce}'`);
45
+ }
@@ -1,10 +1,10 @@
1
1
  export { execHookOnRenderHtml };
2
2
  export type { RenderHook };
3
- import { type HtmlRender } from '../html/renderHtml.js';
3
+ import { type HtmlRender } from './html/renderHtml.js';
4
4
  import { type Hook } from '../../../shared/hooks/getHook.js';
5
5
  import type { PageAsset } from './getPageAssets.js';
6
6
  import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
7
- import type { PageContextSerialization } from '../html/serializeContext.js';
7
+ import type { PageContextSerialization } from './html/serializeContext.js';
8
8
  import type { GlobalContextServerInternal } from '../globalContext.js';
9
9
  type GetPageAssets = () => Promise<PageAsset[]>;
10
10
  type RenderHook = Hook & {
@@ -1,8 +1,8 @@
1
1
  export { execHookOnRenderHtml };
2
- import { isDocumentHtml, renderDocumentHtml, dangerouslySkipEscape, } from '../html/renderHtml.js';
2
+ import { isDocumentHtml, renderDocumentHtml, dangerouslySkipEscape, } from './html/renderHtml.js';
3
3
  import { getHookFromPageContext } from '../../../shared/hooks/getHook.js';
4
4
  import { assert, assertUsage, assertWarning, isObject, objectAssign, isPromise, isCallable } from '../utils.js';
5
- import { isStream } from '../html/stream.js';
5
+ import { isStream } from './html/stream.js';
6
6
  import { assertPageContextProvidedByUser } from '../../../shared/assertPageContextProvidedByUser.js';
7
7
  import { preparePageContextForPublicUsageServer, } from './preparePageContextForPublicUsageServer.js';
8
8
  import { assertHookReturnedObject } from '../../../shared/assertHookReturnedObject.js';