vike 0.4.238 → 0.4.239

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 (153) hide show
  1. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
  2. package/dist/cjs/node/runtime/index.js +3 -3
  3. package/dist/cjs/node/runtime/page-files/setup.js +3 -1
  4. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -9
  5. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  6. package/dist/cjs/node/runtime/renderPage/csp.js +47 -0
  7. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  8. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
  9. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  10. package/dist/cjs/node/runtime/renderPage/headersResponse.js +48 -0
  11. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  12. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  13. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +8 -6
  14. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  15. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  16. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +5 -3
  17. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  18. package/dist/cjs/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  19. package/dist/cjs/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  20. package/dist/cjs/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  21. package/dist/cjs/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  22. package/dist/cjs/node/runtime/{html → renderPage/html}/stream.js +1 -1
  23. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +17 -38
  24. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  25. package/dist/cjs/node/runtime/renderPage.js +1 -1
  26. package/dist/cjs/node/vite/onLoad.js +1 -1
  27. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  28. package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -1
  29. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +4 -3
  30. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +1 -1
  31. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  32. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -1
  33. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +20 -22
  34. package/dist/cjs/shared/createGlobalContextShared.js +4 -22
  35. package/dist/cjs/shared/createPageContextShared.js +2 -2
  36. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  37. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  38. package/dist/cjs/utils/assert.js +16 -1
  39. package/dist/cjs/utils/assertNodeVersion.js +3 -1
  40. package/dist/cjs/utils/assertVersion.js +26 -5
  41. package/dist/cjs/utils/joinEnglish.js +2 -1
  42. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +39 -16
  43. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  44. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  45. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +97 -83
  46. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +38 -10
  47. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  48. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  49. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  50. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  51. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +43 -28
  52. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +39 -16
  53. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  54. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +38 -10
  55. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  56. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +38 -10
  57. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  58. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  59. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -3
  60. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  61. package/dist/esm/node/prerender/resolvePrerenderConfig.js +4 -3
  62. package/dist/esm/node/prerender/runPrerender.d.ts +57 -14
  63. package/dist/esm/node/runtime/globalContext.d.ts +152 -40
  64. package/dist/esm/node/runtime/index.d.ts +3 -3
  65. package/dist/esm/node/runtime/index.js +3 -3
  66. package/dist/esm/node/runtime/page-files/setup.js +3 -1
  67. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  68. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -9
  69. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +52 -10
  70. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  71. package/dist/esm/node/runtime/renderPage/csp.d.ts +12 -0
  72. package/dist/esm/node/runtime/renderPage/csp.js +45 -0
  73. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +2 -2
  74. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  75. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  76. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  77. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +2 -2
  78. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  79. package/dist/esm/node/runtime/renderPage/headersResponse.d.ts +10 -0
  80. package/dist/esm/node/runtime/renderPage/headersResponse.js +46 -0
  81. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.d.ts +1 -1
  82. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  83. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.d.ts +1 -1
  84. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  85. package/dist/esm/node/runtime/renderPage/html/injectAssets/inferHtmlTags.d.ts +10 -0
  86. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +7 -5
  87. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  88. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  89. package/dist/esm/node/runtime/renderPage/html/injectAssets/mergeScriptTags.d.ts +3 -0
  90. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +6 -4
  91. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.d.ts +2 -2
  92. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  93. package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  94. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.d.ts +1 -1
  95. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  96. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.d.ts +6 -5
  97. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  98. package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  99. package/dist/esm/node/runtime/{html → renderPage/html}/stream.js +1 -1
  100. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +62 -15
  101. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +18 -39
  102. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  103. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +114 -28
  104. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  105. package/dist/esm/node/runtime/renderPage.d.ts +52 -10
  106. package/dist/esm/node/runtime/renderPage.js +1 -1
  107. package/dist/esm/node/vite/onLoad.js +1 -1
  108. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  109. package/dist/esm/node/vite/plugins/pluginCommon.js +1 -1
  110. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +4 -3
  111. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +2 -2
  112. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  113. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +2 -2
  114. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -8
  115. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +22 -24
  116. package/dist/esm/shared/createGlobalContextShared.d.ts +73 -17
  117. package/dist/esm/shared/createGlobalContextShared.js +5 -23
  118. package/dist/esm/shared/createPageContextShared.d.ts +2 -7
  119. package/dist/esm/shared/createPageContextShared.js +2 -2
  120. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  121. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  122. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  123. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +91 -31
  124. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  125. package/dist/esm/types/Config/ConfigResolved.d.ts +8 -0
  126. package/dist/esm/types/Config.d.ts +14 -6
  127. package/dist/esm/types/PageContext.d.ts +8 -25
  128. package/dist/esm/types/VikeNamespace.d.ts +0 -27
  129. package/dist/esm/types/index.d.ts +2 -2
  130. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  131. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  132. package/dist/esm/utils/assert.js +16 -1
  133. package/dist/esm/utils/assertNodeVersion.js +3 -1
  134. package/dist/esm/utils/assertVersion.d.ts +4 -3
  135. package/dist/esm/utils/assertVersion.js +23 -5
  136. package/dist/esm/utils/joinEnglish.js +2 -1
  137. package/package.json +2 -2
  138. package/dist/cjs/types/Config/helpers.js +0 -2
  139. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.d.ts +0 -9
  140. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +0 -2
  141. package/dist/esm/types/Config/PageContextConfig.d.ts +0 -15
  142. package/dist/esm/types/Config/helpers.d.ts +0 -10
  143. package/dist/esm/types/Config/helpers.js +0 -1
  144. /package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  145. /package/dist/cjs/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
  146. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.d.ts +0 -0
  147. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.d.ts +0 -0
  148. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.d.ts +0 -0
  149. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  150. /package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.d.ts +0 -0
  151. /package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.d.ts +0 -0
  152. /package/dist/esm/node/runtime/{html → renderPage/html}/stream.d.ts +0 -0
  153. /package/dist/esm/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
@@ -14,6 +14,44 @@ declare function createGlobalContextShared<GlobalContextAdded extends Record<str
14
14
  onCreateGlobalContextHooks?: Hook[];
15
15
  previousCreateGlobalContextPromise?: Promise<void>;
16
16
  }, addGlobalContext?: (globalContext: GlobalContextBase) => GlobalContextAdded, addGlobalContextTmp?: (globalContext: GlobalContextBase) => Promise<GlobalContextAdded>, addGlobalContextAsync?: (globalContext: GlobalContextBase) => Promise<GlobalContextAddedAsync>): Promise<{
17
+ _globalConfigPublic: {
18
+ pages: {
19
+ [k: string]: {
20
+ config: import("../types/index.js").ConfigResolved;
21
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
22
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
23
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
24
+ } & ({
25
+ route: import("../types/Config.js").Route;
26
+ isErrorPage?: undefined;
27
+ } | {
28
+ route?: undefined;
29
+ isErrorPage: true;
30
+ });
31
+ };
32
+ config: import("../types/index.js").ConfigResolved;
33
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
34
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
35
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
36
+ };
37
+ pages: {
38
+ [k: string]: {
39
+ config: import("../types/index.js").ConfigResolved;
40
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
41
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
42
+ _from: import("./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
+ };
51
+ config: import("../types/index.js").ConfigResolved;
52
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
53
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
54
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
17
55
  /**
18
56
  * Useful for distinguishing `globalContext` from other objects and narrowing down TypeScript unions.
19
57
  *
@@ -26,20 +64,48 @@ declare function createGlobalContextShared<GlobalContextAdded extends Record<str
26
64
  _pageConfigs: PageConfigRuntime[];
27
65
  _pageConfigGlobal: import("../types/PageConfig.js").PageConfigGlobalRuntime;
28
66
  _allPageIds: string[];
29
- _vikeConfigPublicGlobal: {
67
+ } & GlobalContextAdded & GlobalContextAddedAsync>;
68
+ type GlobalContextBasePublic = Pick<GlobalContextBase, 'config' | 'pages' | 'isGlobalContext'>;
69
+ type GlobalContextBase = ReturnType<typeof createGlobalContextBase>;
70
+ declare function createGlobalContextBase(virtualFileExportsGlobalEntry: unknown): {
71
+ _globalConfigPublic: {
72
+ pages: {
73
+ [k: string]: {
74
+ config: import("../types/index.js").ConfigResolved;
75
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
76
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
77
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
78
+ } & ({
79
+ route: import("../types/Config.js").Route;
80
+ isErrorPage?: undefined;
81
+ } | {
82
+ route?: undefined;
83
+ isErrorPage: true;
84
+ });
85
+ };
30
86
  config: import("../types/index.js").ConfigResolved;
31
87
  _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
32
88
  _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
33
89
  _from: import("./page-configs/resolveVikeConfigPublic.js").From;
34
90
  };
35
- config: import("../types/index.js").ConfigResolved;
36
91
  pages: {
37
- [k: string]: import("./page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
92
+ [k: string]: {
93
+ config: import("../types/index.js").ConfigResolved;
94
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
95
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
96
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
97
+ } & ({
98
+ route: import("../types/Config.js").Route;
99
+ isErrorPage?: undefined;
100
+ } | {
101
+ route?: undefined;
102
+ isErrorPage: true;
103
+ });
38
104
  };
39
- } & GlobalContextAdded & GlobalContextAddedAsync>;
40
- type GlobalContextBasePublic = Pick<GlobalContextBase, 'config' | 'pages' | 'isGlobalContext'>;
41
- type GlobalContextBase = ReturnType<typeof createGlobalContextBase>;
42
- declare function createGlobalContextBase(virtualFileExportsGlobalEntry: unknown): {
105
+ config: import("../types/index.js").ConfigResolved;
106
+ _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
107
+ _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
108
+ _from: import("./page-configs/resolveVikeConfigPublic.js").From;
43
109
  /**
44
110
  * Useful for distinguishing `globalContext` from other objects and narrowing down TypeScript unions.
45
111
  *
@@ -52,14 +118,4 @@ declare function createGlobalContextBase(virtualFileExportsGlobalEntry: unknown)
52
118
  _pageConfigs: PageConfigRuntime[];
53
119
  _pageConfigGlobal: import("../types/PageConfig.js").PageConfigGlobalRuntime;
54
120
  _allPageIds: string[];
55
- _vikeConfigPublicGlobal: {
56
- config: import("../types/index.js").ConfigResolved;
57
- _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
58
- _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
59
- _from: import("./page-configs/resolveVikeConfigPublic.js").From;
60
- };
61
- config: import("../types/index.js").ConfigResolved;
62
- pages: {
63
- [k: string]: import("./page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
64
- };
65
121
  };
@@ -2,7 +2,7 @@ export { createGlobalContextShared };
2
2
  export { getGlobalContextSyncErrMsg };
3
3
  import { assert, changeEnumerable, genPromise, objectAssign, objectReplace, unique } from './utils.js';
4
4
  import { parseVirtualFileExportsGlobalEntry } from './getPageFiles/parseVirtualFileExportsGlobalEntry.js';
5
- import { resolveVikeConfigPublicGlobal, resolveVikeConfigPublicPageEagerLoaded, } from './page-configs/resolveVikeConfigPublic.js';
5
+ import { resolveGlobalContextConfig } from './page-configs/resolveVikeConfigPublic.js';
6
6
  import { execHookGlobal } from './hooks/execHook.js';
7
7
  import { prepareGlobalContextForPublicUsage } from './prepareGlobalContextForPublicUsage.js';
8
8
  import { getHookFromPageConfigGlobalCumulative } from './hooks/getHook.js';
@@ -70,7 +70,9 @@ addGlobalContextTmp, addGlobalContextAsync) {
70
70
  return globalObject.globalContext;
71
71
  }
72
72
  function createGlobalContextBase(virtualFileExportsGlobalEntry) {
73
- const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, vikeConfigPublicGlobal, vikeConfigPublicPagesEager, } = getConfigsAll(virtualFileExportsGlobalEntry);
73
+ const { pageFilesAll, pageConfigs, pageConfigGlobal } = parseVirtualFileExportsGlobalEntry(virtualFileExportsGlobalEntry);
74
+ const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
75
+ const globalContextAddendum = resolveGlobalContextConfig(pageConfigs, pageConfigGlobal);
74
76
  const globalContext = {
75
77
  /**
76
78
  * Useful for distinguishing `globalContext` from other objects and narrowing down TypeScript unions.
@@ -84,31 +86,11 @@ function createGlobalContextBase(virtualFileExportsGlobalEntry) {
84
86
  _pageConfigs: pageConfigs,
85
87
  _pageConfigGlobal: pageConfigGlobal,
86
88
  _allPageIds: allPageIds,
87
- _vikeConfigPublicGlobal: vikeConfigPublicGlobal,
88
- config: vikeConfigPublicGlobal.config,
89
- pages: vikeConfigPublicPagesEager,
89
+ ...globalContextAddendum,
90
90
  };
91
91
  changeEnumerable(globalContext, '_isOriginalObject', false);
92
92
  return globalContext;
93
93
  }
94
- function getConfigsAll(virtualFileExportsGlobalEntry) {
95
- const { pageFilesAll, pageConfigs, pageConfigGlobal } = parseVirtualFileExportsGlobalEntry(virtualFileExportsGlobalEntry);
96
- const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
97
- const vikeConfigPublicGlobal = resolveVikeConfigPublicGlobal({
98
- pageConfigGlobalValues: pageConfigGlobal.configValues,
99
- });
100
- const vikeConfigPublicPagesEager = Object.fromEntries(pageConfigs.map((pageConfig) => {
101
- return resolveVikeConfigPublicPageEagerLoaded(pageConfigGlobal.configValues, pageConfig, pageConfig.configValues);
102
- }));
103
- return {
104
- pageFilesAll,
105
- allPageIds,
106
- pageConfigs,
107
- pageConfigGlobal,
108
- vikeConfigPublicGlobal,
109
- vikeConfigPublicPagesEager,
110
- };
111
- }
112
94
  function getAllPageIds(pageFilesAll, pageConfigs) {
113
95
  const fileIds = pageFilesAll.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
114
96
  const allPageIds = unique(fileIds);
@@ -1,13 +1,8 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
- import type { VikeConfigPublicGlobal } from './page-configs/resolveVikeConfigPublic.js';
3
+ import type { GlobalConfigPublic } from './page-configs/resolveVikeConfigPublic.js';
4
4
  import { type PageContextPrepareMinimum } from './preparePageContextForPublicUsage.js';
5
- declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, vikeConfigPublicGlobal: VikeConfigPublicGlobal): T & {
6
- config: import("../types/index.js").ConfigResolved;
7
- _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
8
- _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
9
- _from: import("./page-configs/resolveVikeConfigPublic.js").From;
10
- };
5
+ declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, globalConfigPublic: GlobalConfigPublic): T & GlobalConfigPublic;
11
6
  declare function createPageContextObject(): {
12
7
  _isOriginalObject: true;
13
8
  isPageContext: true;
@@ -1,8 +1,8 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
3
  import { changeEnumerable, objectAssign } from './utils.js';
4
- function createPageContextShared(pageContextCreated, vikeConfigPublicGlobal) {
5
- objectAssign(pageContextCreated, vikeConfigPublicGlobal);
4
+ function createPageContextShared(pageContextCreated, globalConfigPublic) {
5
+ objectAssign(pageContextCreated, globalConfigPublic);
6
6
  return pageContextCreated;
7
7
  }
8
8
  function createPageContextObject() {
@@ -1,4 +1,4 @@
1
1
  export type { PageFile } from './getPageFiles/getPageFileObject.js';
2
- export type { ExportsAll, VikeConfigPublicPageLazyLoaded } from './page-configs/resolveVikeConfigPublic.js';
2
+ export type { ExportsAll, PageContextConfig } from './page-configs/resolveVikeConfigPublic.js';
3
3
  export { getPageFilesClientSide } from './getPageFiles/getAllPageIdFiles.js';
4
4
  export { getPageFilesServerSide } from './getPageFiles/getAllPageIdFiles.js';
@@ -11,14 +11,14 @@ export { isUserHookError };
11
11
  export type { PageContextExecHook };
12
12
  import type { PageContextClient, PageContextServer } from '../../types/PageContext.js';
13
13
  import type { Hook, HookLoc } from './getHook.js';
14
- import type { VikeConfigPublicPageLazyLoaded } from '../getPageFiles.js';
14
+ import type { PageContextConfig } from '../getPageFiles.js';
15
15
  import type { HookName, HookNameGlobal } from '../../types/Config.js';
16
16
  import type { PageConfigGlobalRuntime } from '../../types/PageConfig.js';
17
17
  import type { PageContextForPublicUsageServer } from '../../node/runtime/renderPage/preparePageContextForPublicUsageServer.js';
18
18
  import type { PageContextForPublicUsageClientShared } from '../../client/shared/preparePageContextForPublicUsageClientShared.js';
19
19
  import { type PageContextPrepareMinimum } from '../preparePageContextForPublicUsage.js';
20
20
  import type { GlobalContextPrepareMinimum } from '../prepareGlobalContextForPublicUsage.js';
21
- type PageContextExecHook = VikeConfigPublicPageLazyLoaded & PageContextForPublicUsage;
21
+ type PageContextExecHook = PageContextConfig & PageContextForPublicUsage;
22
22
  type PageContextForPublicUsage = PageContextForPublicUsageServer | PageContextForPublicUsageClientShared;
23
23
  type HookWithResult = Hook & {
24
24
  hookReturn: unknown;
@@ -9,7 +9,7 @@ export type { HookLoc };
9
9
  export type { HookTimeout };
10
10
  export type { HooksTimeoutProvidedByUser };
11
11
  export { getHookTimeoutDefault };
12
- import type { VikeConfigPublicPageLazyLoaded } from '../getPageFiles.js';
12
+ import type { PageContextConfig } from '../getPageFiles.js';
13
13
  import type { HookNameOld, HookNamePage, HookNameGlobal, HookName } from '../../types/Config.js';
14
14
  import type { PageConfigGlobalRuntime, PageConfigRuntime } from '../../types/PageConfig.js';
15
15
  import type { GlobalContextPrepareMinimum } from '../prepareGlobalContextForPublicUsage.js';
@@ -28,8 +28,8 @@ type HookTimeout = {
28
28
  warning: number | false;
29
29
  };
30
30
  type HooksTimeoutProvidedByUser = false | Partial<Record<HookNameOld, false | Partial<HookTimeout>>>;
31
- declare function getHookFromPageContext(pageContext: VikeConfigPublicPageLazyLoaded, hookName: HookNameOld): null | Hook;
32
- declare function getHookFromPageContextNew(hookName: HookName, pageContext: VikeConfigPublicPageLazyLoaded): Hook[];
31
+ declare function getHookFromPageContext(pageContext: PageContextConfig, hookName: HookNameOld): null | Hook;
32
+ declare function getHookFromPageContextNew(hookName: HookName, pageContext: PageContextConfig): Hook[];
33
33
  declare function getHookFromPageConfig(pageConfig: PageConfigRuntime, hookName: HookNamePage): null | Hook;
34
34
  declare function getHookFromPageConfigGlobal(pageConfigGlobal: PageConfigGlobalRuntime, hookName: HookNameGlobal): null | Hook;
35
35
  declare function getHookFromPageConfigGlobalCumulative(pageConfigGlobal: PageConfigGlobalRuntime, hookName: HookNameGlobal): Hook[];
@@ -1,9 +1,8 @@
1
- export { resolveVikeConfigPublicGlobal };
2
- export { resolveVikeConfigPublicPageEagerLoaded };
3
- export { resolveVikeConfigPublicPageLazyLoaded };
4
- export type { VikeConfigPublicGlobal };
5
- export type { VikeConfigPublicPageEagerLoaded };
6
- export type { VikeConfigPublicPageLazyLoaded };
1
+ export { resolveGlobalConfigPublic };
2
+ export { resolvePageContextConfig };
3
+ export { resolveGlobalContextConfig };
4
+ export type { PageContextConfig };
5
+ export type { GlobalConfigPublic };
7
6
  export type { Source };
8
7
  export type { Sources };
9
8
  export type { From };
@@ -11,9 +10,9 @@ export type { ExportsAll };
11
10
  export type { ConfigEntries };
12
11
  import type { FileType } from '../getPageFiles/fileTypes.js';
13
12
  import type { PageFile } from '../getPageFiles/getPageFileObject.js';
14
- import type { ConfigValues, PageConfigBuildTime, PageConfigGlobalRuntime, PageConfigRuntime, PageConfigRuntimeLoaded } from '../../types/PageConfig.js';
13
+ import type { ConfigValues, PageConfigBuildTime, PageConfigGlobalBuildTime, PageConfigGlobalRuntime, PageConfigRuntime, PageConfigRuntimeLoaded } from '../../types/PageConfig.js';
15
14
  import { type ConfigDefinedAtOptional } from './getConfigDefinedAt.js';
16
- import type { ConfigResolved } from '../../types/Config/PageContextConfig.js';
15
+ import type { ConfigResolved } from '../../types/Config/ConfigResolved.js';
17
16
  import type { Route } from '../../types/Config.js';
18
17
  type ExportsAll = Record<string, {
19
18
  exportValue: unknown;
@@ -35,17 +34,6 @@ type ConfigEntries = Record<string, {
35
34
  configDefinedAt: ConfigDefinedAtOptional;
36
35
  configDefinedByFile: string | null;
37
36
  }[]>;
38
- type VikeConfigPublicPageLazyLoaded = {
39
- config: ConfigResolved;
40
- source: Source;
41
- sources: Sources;
42
- from: From;
43
- configEntries: ConfigEntries;
44
- exports: Record<string, unknown>;
45
- exportsAll: ExportsAll;
46
- /** @deprecated */
47
- pageExports: Record<string, unknown>;
48
- };
49
37
  type From = {
50
38
  configsStandard: Record<string, // configName
51
39
  SourceConfigsStandard>;
@@ -77,11 +65,34 @@ type SourceConfigsComputed = {
77
65
  definedAt: 'Vike';
78
66
  value: unknown;
79
67
  };
80
- type VikeConfigPublic = {
68
+ type PageContextConfig = {
69
+ /** The page's configuration values.
70
+ *
71
+ * https://vike.dev/config
72
+ * https://vike.dev/pageContext#config
73
+ */
81
74
  config: ConfigResolved;
82
- _source: Source;
83
- _sources: Sources;
84
- _from: From;
75
+ source: Source;
76
+ sources: Sources;
77
+ from: From;
78
+ /** The page's configuration, including the configs origin and overridden configs.
79
+ *
80
+ * https://vike.dev/config
81
+ */
82
+ configEntries: ConfigEntries;
83
+ /** Custom Exports/Hooks.
84
+ *
85
+ * https://vike.dev/exports
86
+ */
87
+ exports: Record<string, unknown>;
88
+ /**
89
+ * Same as `pageContext.exports` but cumulative.
90
+ *
91
+ * https://vike.dev/exports
92
+ */
93
+ exportsAll: ExportsAll;
94
+ /** @deprecated */
95
+ pageExports: Record<string, unknown>;
85
96
  };
86
97
  type WithRoute = {
87
98
  route: Route;
@@ -90,12 +101,61 @@ type WithRoute = {
90
101
  route?: undefined;
91
102
  isErrorPage: true;
92
103
  };
93
- type VikeConfigPublicPageEagerLoaded = VikeConfigPublic & WithRoute;
94
- type VikeConfigPublicGlobal = VikeConfigPublic;
95
- declare function resolveVikeConfigPublicPageEagerLoaded(pageConfigGlobalValues: ConfigValues, pageConfig: PageConfigRuntime | PageConfigBuildTime, pageConfigValues: ConfigValues): [string, VikeConfigPublicPageEagerLoaded];
96
- declare function resolveVikeConfigPublicGlobal({ pageConfigGlobalValues, }: {
97
- pageConfigGlobalValues: ConfigValues;
98
- }): VikeConfigPublicGlobal;
99
- declare function resolveVikeConfigPublicPageLazyLoaded(pageFiles: PageFile[], // V0.4 design
104
+ type PageConfigPublicWithRoute = ConfigPublic & WithRoute;
105
+ type ConfigPublic = ReturnType<typeof getPublicCopy>;
106
+ declare function getPublicCopy(configInternal: ReturnType<typeof resolveConfigPublic_V1Design>): {
107
+ config: ConfigResolved;
108
+ _source: Source;
109
+ _sources: Sources;
110
+ _from: From;
111
+ };
112
+ declare function resolvePageContextConfig(pageFiles: PageFile[], // V0.4 design
100
113
  pageConfig: PageConfigRuntimeLoaded | null, // V1 design
101
- pageConfigGlobal: PageConfigGlobalRuntime): VikeConfigPublicPageLazyLoaded;
114
+ pageConfigGlobal: PageConfigGlobalRuntime): PageContextConfig;
115
+ declare function resolveGlobalContextConfig(pageConfigs: PageConfigRuntime[], pageConfigGlobal: PageConfigGlobalRuntime): {
116
+ _globalConfigPublic: {
117
+ pages: {
118
+ [k: string]: PageConfigPublicWithRoute;
119
+ };
120
+ config: ConfigResolved;
121
+ _source: Source;
122
+ _sources: Sources;
123
+ _from: From;
124
+ };
125
+ pages: {
126
+ [k: string]: PageConfigPublicWithRoute;
127
+ };
128
+ config: ConfigResolved;
129
+ _source: Source;
130
+ _sources: Sources;
131
+ _from: From;
132
+ };
133
+ type GlobalConfigPublic = Omit<ReturnType<typeof resolveGlobalConfigPublic>, '_globalConfigPublic'>;
134
+ declare function resolveGlobalConfigPublic<PageConfig extends PageConfigRuntime | PageConfigBuildTime, PageConfigGlobal extends PageConfigGlobalRuntime | PageConfigGlobalBuildTime>(pageConfigs: PageConfig[], pageConfigGlobal: PageConfigGlobal, getConfigValues: (config: PageConfig | PageConfigGlobal, isGlobalConfig?: true) => ConfigValues): {
135
+ _globalConfigPublic: {
136
+ pages: {
137
+ [k: string]: PageConfigPublicWithRoute;
138
+ };
139
+ config: ConfigResolved;
140
+ _source: Source;
141
+ _sources: Sources;
142
+ _from: From;
143
+ };
144
+ pages: {
145
+ [k: string]: PageConfigPublicWithRoute;
146
+ };
147
+ config: ConfigResolved;
148
+ _source: Source;
149
+ _sources: Sources;
150
+ _from: From;
151
+ };
152
+ declare function resolveConfigPublic_V1Design(pageConfig: {
153
+ configValues: ConfigValues;
154
+ }): {
155
+ config: ConfigResolved;
156
+ configEntries: ConfigEntries;
157
+ exportsAll: ExportsAll;
158
+ source: Source;
159
+ sources: Sources;
160
+ from: From;
161
+ };
@@ -1,54 +1,48 @@
1
- // TO-DO/soon: rename PageConfig names
2
- // - Use `Internal` suffix, i.e. {Page,Global}ConfigInternal
3
- // - While keeping {Page,Global}ConfigPublic or remove Public suffix and rename it to {Page,Global}Config ?
4
- // - rename EagerLoaded EagerlyLoaded
5
- // - remove `LazyLoaded` suffix
6
1
  // TO-DO/soon/same-api: use public API internally?
7
2
  // TO-DO/soon/flat-pageContext: rename definedAt => definedBy
8
- export { resolveVikeConfigPublicGlobal };
9
- export { resolveVikeConfigPublicPageEagerLoaded };
10
- export { resolveVikeConfigPublicPageLazyLoaded };
3
+ export { resolveGlobalConfigPublic };
4
+ export { resolvePageContextConfig };
5
+ export { resolveGlobalContextConfig };
11
6
  import { assertDefaultExports, forbiddenDefaultExports } from '../getPageFiles/assert_exports_old_design.js';
12
7
  import { getConfigDefinedAtOptional, getDefinedAtString } from './getConfigDefinedAt.js';
13
8
  import { getConfigValueFilePathToShowToUser } from './helpers.js';
14
9
  import { assert, isObject, assertWarning, assertUsage, makeLast, isBrowser, isScriptFile, isTemplateFile, objectDefineProperty, } from '../utils.js';
15
10
  import pc from '@brillout/picocolors';
16
- function resolveVikeConfigPublicPageEagerLoaded(pageConfigGlobalValues, pageConfig, pageConfigValues) {
17
- const vikeConfigPublicPage_ = resolveVikeConfigPublic_base({ pageConfigGlobalValues, pageConfigValues });
18
- const vikeConfigPublicPage = getPublicCopy(vikeConfigPublicPage_);
19
- let page;
20
- if (!pageConfig.isErrorPage) {
21
- const route = vikeConfigPublicPage.config.route ?? pageConfig.routeFilesystem.routeString;
22
- page = {
23
- ...vikeConfigPublicPage,
24
- route,
25
- };
26
- }
27
- else {
28
- page = {
29
- ...vikeConfigPublicPage,
30
- isErrorPage: true,
31
- };
32
- }
11
+ function resolveGlobalConfigPublicPage(pageConfigGlobalValues, pageConfig, pageConfigValues) {
12
+ const pageConfigPublic_ = resolvePageConfigPublic({ pageConfigGlobalValues, pageConfigValues });
13
+ const pageConfigPublic = getPublicCopy(pageConfigPublic_);
14
+ const page = (() => {
15
+ if (!pageConfig.isErrorPage) {
16
+ const route = pageConfigPublic.config.route ?? pageConfig.routeFilesystem.routeString;
17
+ return {
18
+ ...pageConfigPublic,
19
+ route,
20
+ };
21
+ }
22
+ else {
23
+ return {
24
+ ...pageConfigPublic,
25
+ isErrorPage: true,
26
+ };
27
+ }
28
+ })();
33
29
  return [pageConfig.pageId, page];
34
30
  }
35
- function getPublicCopy(vikeConfigPublic) {
36
- return {
37
- config: vikeConfigPublic.config,
38
- _source: vikeConfigPublic.source,
39
- _sources: vikeConfigPublic.sources,
40
- _from: vikeConfigPublic.from,
31
+ function getPublicCopy(configInternal) {
32
+ const configPublic = {
33
+ config: configInternal.config,
34
+ // TO-DO/soon/flat-pageContext: expose publicly?
35
+ _source: configInternal.source,
36
+ _sources: configInternal.sources,
37
+ _from: configInternal.from,
41
38
  };
39
+ return configPublic;
42
40
  }
43
- function resolveVikeConfigPublic_base({ pageConfigGlobalValues, pageConfigValues, }) {
41
+ function resolvePageConfigPublic({ pageConfigGlobalValues, pageConfigValues, }) {
44
42
  const configValues = { ...pageConfigGlobalValues, ...pageConfigValues };
45
- return resolveVikeConfigPublic_V1Design({ configValues });
43
+ return resolveConfigPublic_V1Design({ configValues });
46
44
  }
47
- function resolveVikeConfigPublicGlobal({ pageConfigGlobalValues, }) {
48
- const vikeConfigPublicGlobal = resolveVikeConfigPublic_V1Design({ configValues: pageConfigGlobalValues });
49
- return getPublicCopy(vikeConfigPublicGlobal);
50
- }
51
- function resolveVikeConfigPublicPageLazyLoaded(pageFiles, // V0.4 design
45
+ function resolvePageContextConfig(pageFiles, // V0.4 design
52
46
  pageConfig, // V1 design
53
47
  pageConfigGlobal) {
54
48
  const config = {};
@@ -75,7 +69,7 @@ pageConfigGlobal) {
75
69
  let sources;
76
70
  let from;
77
71
  if (pageConfig) {
78
- const res = resolveVikeConfigPublic_base({
72
+ const res = resolvePageConfigPublic({
79
73
  pageConfigGlobalValues: pageConfigGlobal.configValues,
80
74
  pageConfigValues: pageConfig.configValues,
81
75
  });
@@ -110,7 +104,7 @@ pageConfigGlobal) {
110
104
  });
111
105
  assert(!('default' in exports));
112
106
  assert(!('default' in exportsAll));
113
- const configPublicPageLazy = {
107
+ const pageContextAddendum = {
114
108
  config: config,
115
109
  from,
116
110
  source,
@@ -121,7 +115,7 @@ pageConfigGlobal) {
121
115
  exportsAll,
122
116
  };
123
117
  // TO-DO/next-major-release: remove
124
- objectDefineProperty(configPublicPageLazy, 'pageExports', {
118
+ objectDefineProperty(pageContextAddendum, 'pageExports', {
125
119
  get: () => {
126
120
  // We only show the warning in Node.js because when using Client Routing Vue integration uses `Object.assign(pageContextReactive, pageContext)` which will wrongully trigger the warning. There is no cross-browser way to catch whether the property accessor was initiated by an `Object.assign()` call.
127
121
  if (!isBrowser()) {
@@ -135,10 +129,33 @@ pageConfigGlobal) {
135
129
  enumerable: false,
136
130
  configurable: true,
137
131
  });
138
- return configPublicPageLazy;
132
+ return pageContextAddendum;
133
+ }
134
+ function resolveGlobalContextConfig(pageConfigs, pageConfigGlobal) {
135
+ const globalContextAddendum = resolveGlobalConfigPublic(pageConfigs, pageConfigGlobal, (c) => c.configValues);
136
+ return globalContextAddendum;
137
+ }
138
+ function resolveGlobalConfigPublic(pageConfigs, pageConfigGlobal, getConfigValues) {
139
+ // global
140
+ const pageConfigGlobalValues = getConfigValues(pageConfigGlobal, true);
141
+ const globalConfigPublicBase_ = resolveConfigPublic_V1Design({ configValues: pageConfigGlobalValues });
142
+ const globalConfigPublicBase = getPublicCopy(globalConfigPublicBase_);
143
+ // pages
144
+ const pages = Object.fromEntries(pageConfigs.map((pageConfig) => {
145
+ const pageConfigValues = getConfigValues(pageConfig);
146
+ return resolveGlobalConfigPublicPage(pageConfigGlobalValues, pageConfig, pageConfigValues);
147
+ }));
148
+ const globalConfigPublic = {
149
+ ...globalConfigPublicBase,
150
+ pages,
151
+ };
152
+ return {
153
+ ...globalConfigPublic,
154
+ _globalConfigPublic: globalConfigPublic,
155
+ };
139
156
  }
140
157
  // V1 design
141
- function resolveVikeConfigPublic_V1Design(pageConfig) {
158
+ function resolveConfigPublic_V1Design(pageConfig) {
142
159
  const config = {};
143
160
  const configEntries = {};
144
161
  const exportsAll = {};
@@ -226,6 +243,8 @@ function resolveVikeConfigPublic_V1Design(pageConfig) {
226
243
  from,
227
244
  };
228
245
  }
246
+ // V0.4 design
247
+ // TO-DO/next-major-release: remove
229
248
  function getExportValues(pageFile) {
230
249
  const { filePath, fileExports } = pageFile;
231
250
  assert(fileExports); // assume pageFile.loadFile() was called
@@ -0,0 +1,8 @@
1
+ export type { ConfigResolved };
2
+ import type { ConfigBuiltIn, ConfigBuiltInResolved, ImportString } from '../Config.js';
3
+ type ConfigUnresolved = WithoutImportString<ConfigBuiltIn & Vike.Config>;
4
+ type ConfigResolvedOnly = ConfigBuiltInResolved & Vike.ConfigResolved;
5
+ type ConfigResolved = ConfigResolvedOnly & Omit<ConfigUnresolved, keyof ConfigResolvedOnly>;
6
+ type WithoutImportString<T> = {
7
+ [K in keyof T]: Exclude<T[K], ImportString>;
8
+ };
@@ -37,14 +37,14 @@ export type { RouteAsync };
37
37
  export type { RouteSync };
38
38
  import type { PrefetchSetting, PrefetchStaticAssets } from '../client/runtime-client-routing/prefetch/PrefetchSetting.js';
39
39
  import type { ConfigDefinition } from '../node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js';
40
- import type { DocumentHtml } from '../node/runtime/html/renderHtml.js';
40
+ import type { DocumentHtml } from '../node/runtime/renderPage/html/renderHtml.js';
41
41
  import type { InjectFilterEntry } from './index.js';
42
42
  import type { VikeVitePluginOptions } from '../node/vite/index.js';
43
- import type { Vike, VikePackages } from './VikeNamespace.js';
43
+ import type { Vike } from './VikeNamespace.js';
44
44
  import type { HooksTimeoutProvidedByUser } from '../shared/hooks/getHook.js';
45
45
  import type { GlobalContext, PageContextClient, PageContextServer } from './PageContext.js';
46
46
  import type { InlineConfig } from 'vite';
47
- import type { PassToClientPublic } from '../node/runtime/html/serializeContext.js';
47
+ import type { PassToClientPublic } from '../node/runtime/renderPage/html/serializeContext.js';
48
48
  type HookNameOld = HookName | HookNameOldDesign;
49
49
  type HookName = HookNamePage | HookNameGlobal;
50
50
  type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data' | 'onData' | 'route';
@@ -52,7 +52,7 @@ type HookNameGlobal = 'onBeforeRoute' | 'onPrerenderStart' | 'onCreatePageContex
52
52
  type HookNameOldDesign = 'render' | 'prerender' | 'onBeforePrerender';
53
53
  type ConfigNameBuiltIn = Exclude<keyof ConfigBuiltIn, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite' | 'redirects'> | 'prerender' | 'serverOnlyHooks' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware';
54
54
  type ConfigNameGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization' | 'vite';
55
- type Config = ConfigBuiltIn & Vike.Config & (VikePackages.ConfigVikeReact | VikePackages.ConfigVikeVue | VikePackages.ConfigVikeSolid | VikePackages.ConfigVikeSvelte | VikePackages.ConfigVikeAngular);
55
+ type Config = ConfigBuiltIn & Vike.Config;
56
56
  /** @deprecated This type is deprecated, see https://vike.dev/data */
57
57
  type DataAsync<Data = unknown> = (pageContext: PageContextServer) => Promise<Data>;
58
58
  /** @deprecated This type is deprecated, see https://vike.dev/data */
@@ -445,7 +445,7 @@ type ConfigBuiltIn = {
445
445
  *
446
446
  * https://vike.dev/headers#response
447
447
  */
448
- headersResponse?: HeadersInit;
448
+ headersResponse?: HeadersInit | ((pageContext: PageContextServer) => HeadersInit | Promise<HeadersInit>);
449
449
  /**
450
450
  * Make development/preview server available over LAN and public addresses.
451
451
  *
@@ -468,6 +468,14 @@ type ConfigBuiltIn = {
468
468
  * https://vike.dev/mode
469
469
  */
470
470
  mode?: string;
471
+ /**
472
+ * Content Security Policy (CSP).
473
+ *
474
+ * https://vike.dev/csp
475
+ */
476
+ csp?: {
477
+ nonce: boolean | ((pageContext: PageContextServer) => string | Promise<string>);
478
+ };
471
479
  /** Where scripts are injected in the HTML.
472
480
  *
473
481
  * https://vike.dev/injectScriptsAt
@@ -499,7 +507,7 @@ type ConfigBuiltInResolved = {
499
507
  redirects?: Record<string, string>[];
500
508
  prerender?: Exclude<Config['prerender'], ImportString | undefined>[];
501
509
  middleware?: Function[];
502
- headersResponse?: HeadersInit[];
510
+ headersResponse?: Exclude<Config['headersResponse'], ImportString | undefined>[];
503
511
  };
504
512
  type ConfigMeta = Record<string, ConfigDefinition>;
505
513
  type ImportString = `import:${string}`;