vike 0.4.238 → 0.4.239-commit-050a4a3

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 (191) hide show
  1. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
  2. package/dist/cjs/node/runtime/globalContext.js +1 -0
  3. package/dist/cjs/node/runtime/index.js +3 -3
  4. package/dist/cjs/node/runtime/page-files/setup.js +3 -1
  5. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -9
  6. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  7. package/dist/cjs/node/runtime/renderPage/csp.js +47 -0
  8. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  9. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
  10. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  11. package/dist/cjs/node/runtime/renderPage/headersResponse.js +48 -0
  12. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  13. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  14. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +8 -6
  15. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  16. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  17. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +5 -3
  18. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  19. package/dist/cjs/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  20. package/dist/cjs/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  21. package/dist/cjs/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  22. package/dist/cjs/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  23. package/dist/cjs/node/runtime/{html → renderPage/html}/stream.js +1 -1
  24. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +17 -38
  25. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  26. package/dist/cjs/node/runtime/renderPage.js +1 -1
  27. package/dist/cjs/node/vite/onLoad.js +1 -1
  28. package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +32 -28
  29. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  30. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +24 -20
  31. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +4 -2
  32. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +76 -74
  33. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +18 -14
  34. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +4 -2
  35. package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +4 -2
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +20 -18
  37. package/dist/cjs/node/vite/plugins/pluginCommon.js +7 -21
  38. package/dist/cjs/node/vite/plugins/pluginDev.js +51 -47
  39. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +63 -57
  40. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +101 -91
  41. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +24 -16
  42. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +67 -57
  43. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +26 -19
  44. package/dist/cjs/node/vite/plugins/pluginPreview.js +30 -24
  45. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +41 -33
  46. package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  47. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +1 -1
  48. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +50 -37
  49. package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +8 -6
  50. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  51. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -1
  52. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +20 -22
  53. package/dist/cjs/shared/createGlobalContextShared.js +4 -22
  54. package/dist/cjs/shared/createPageContextShared.js +2 -2
  55. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  56. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  57. package/dist/cjs/utils/assert.js +16 -1
  58. package/dist/cjs/utils/assertNodeVersion.js +3 -1
  59. package/dist/cjs/utils/assertVersion.js +26 -5
  60. package/dist/cjs/utils/joinEnglish.js +2 -1
  61. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +39 -16
  62. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  63. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  64. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +97 -83
  65. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +38 -10
  66. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  67. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  68. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  69. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  70. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +43 -28
  71. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +39 -16
  72. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  73. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +38 -10
  74. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  75. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +38 -10
  76. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  77. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  78. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -3
  79. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  80. package/dist/esm/node/prerender/resolvePrerenderConfig.js +4 -3
  81. package/dist/esm/node/prerender/runPrerender.d.ts +57 -14
  82. package/dist/esm/node/runtime/globalContext.d.ts +154 -40
  83. package/dist/esm/node/runtime/globalContext.js +1 -0
  84. package/dist/esm/node/runtime/index.d.ts +3 -3
  85. package/dist/esm/node/runtime/index.js +3 -3
  86. package/dist/esm/node/runtime/page-files/setup.js +3 -1
  87. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  88. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -9
  89. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +52 -10
  90. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  91. package/dist/esm/node/runtime/renderPage/csp.d.ts +12 -0
  92. package/dist/esm/node/runtime/renderPage/csp.js +45 -0
  93. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +2 -2
  94. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  95. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  96. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  97. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +2 -2
  98. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  99. package/dist/esm/node/runtime/renderPage/headersResponse.d.ts +10 -0
  100. package/dist/esm/node/runtime/renderPage/headersResponse.js +46 -0
  101. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.d.ts +1 -1
  102. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +16 -13
  103. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.d.ts +1 -1
  104. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  105. package/dist/esm/node/runtime/renderPage/html/injectAssets/inferHtmlTags.d.ts +10 -0
  106. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +7 -5
  107. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  108. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  109. package/dist/esm/node/runtime/renderPage/html/injectAssets/mergeScriptTags.d.ts +3 -0
  110. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +6 -4
  111. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.d.ts +2 -2
  112. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  113. package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  114. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.d.ts +1 -1
  115. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  116. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.d.ts +6 -5
  117. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  118. package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  119. package/dist/esm/node/runtime/{html → renderPage/html}/stream.js +1 -1
  120. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +62 -15
  121. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +18 -39
  122. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  123. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +114 -28
  124. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  125. package/dist/esm/node/runtime/renderPage.d.ts +52 -10
  126. package/dist/esm/node/runtime/renderPage.js +1 -1
  127. package/dist/esm/node/vite/onLoad.js +1 -1
  128. package/dist/esm/node/vite/plugins/pluginBaseUrls.js +32 -28
  129. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  130. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +24 -20
  131. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +4 -2
  132. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +76 -74
  133. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +18 -14
  134. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +4 -2
  135. package/dist/esm/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +4 -2
  136. package/dist/esm/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +20 -18
  137. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -22
  138. package/dist/esm/node/vite/plugins/pluginDev.js +51 -47
  139. package/dist/esm/node/vite/plugins/pluginEnvVars.js +63 -57
  140. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +101 -91
  141. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +24 -16
  142. package/dist/esm/node/vite/plugins/pluginFileEnv.js +67 -57
  143. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +26 -19
  144. package/dist/esm/node/vite/plugins/pluginPreview.js +30 -24
  145. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +41 -33
  146. package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +4 -2
  147. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +2 -2
  148. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +51 -38
  149. package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +8 -6
  150. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +3 -0
  151. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +2 -2
  152. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -8
  153. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +22 -24
  154. package/dist/esm/shared/createGlobalContextShared.d.ts +73 -17
  155. package/dist/esm/shared/createGlobalContextShared.js +5 -23
  156. package/dist/esm/shared/createPageContextShared.d.ts +2 -7
  157. package/dist/esm/shared/createPageContextShared.js +2 -2
  158. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  159. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  160. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  161. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +91 -31
  162. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +62 -43
  163. package/dist/esm/types/Config/ConfigResolved.d.ts +8 -0
  164. package/dist/esm/types/Config.d.ts +14 -6
  165. package/dist/esm/types/PageContext.d.ts +8 -25
  166. package/dist/esm/types/VikeNamespace.d.ts +0 -27
  167. package/dist/esm/types/index.d.ts +2 -2
  168. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  169. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  170. package/dist/esm/utils/assert.js +16 -1
  171. package/dist/esm/utils/assertNodeVersion.js +3 -1
  172. package/dist/esm/utils/assertVersion.d.ts +4 -3
  173. package/dist/esm/utils/assertVersion.js +23 -5
  174. package/dist/esm/utils/joinEnglish.js +2 -1
  175. package/package.json +2 -2
  176. package/dist/cjs/types/Config/helpers.js +0 -2
  177. package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.d.ts +0 -9
  178. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +0 -2
  179. package/dist/esm/types/Config/PageContextConfig.d.ts +0 -15
  180. package/dist/esm/types/Config/helpers.d.ts +0 -10
  181. package/dist/esm/types/Config/helpers.js +0 -1
  182. /package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  183. /package/dist/cjs/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
  184. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.d.ts +0 -0
  185. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.d.ts +0 -0
  186. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.d.ts +0 -0
  187. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  188. /package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.d.ts +0 -0
  189. /package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.d.ts +0 -0
  190. /package/dist/esm/node/runtime/{html → renderPage/html}/stream.d.ts +0 -0
  191. /package/dist/esm/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
@@ -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}`;
@@ -15,9 +15,8 @@ export type { PageContextBuiltInServer_deprecated as PageContextBuiltInServer };
15
15
  export type { PageContextBuiltInClientWithClientRouting_deprecated as PageContextBuiltInClientWithClientRouting };
16
16
  export type { PageContextBuiltInClientWithServerRouting_deprecated as PageContextBuiltInClientWithServerRouting };
17
17
  import type { PageContextUrlInternal, PageContextUrlClient, PageContextUrlServer } from '../shared/getPageContextUrlComputed.js';
18
- import type { ConfigEntries, ExportsAll, From, Source, Sources } from '../shared/page-configs/resolveVikeConfigPublic.js';
18
+ import type { From, PageContextConfig, Source, Sources } from '../shared/page-configs/resolveVikeConfigPublic.js';
19
19
  import type { Config } from './Config.js';
20
- import type { PageContextConfig } from './Config/PageContextConfig.js';
21
20
  import type { AbortStatusCode } from '../shared/route/abort.js';
22
21
  import type { GlobalContextServer } from '../node/runtime/globalContext.js';
23
22
  import type { GlobalContextClient } from '../client/runtime-client-routing/globalContext.js';
@@ -28,7 +27,7 @@ type PageContextClient<Data = unknown> = PageContextBuiltInClientWithClientRouti
28
27
  type GlobalContext = GlobalContextServer | GlobalContextClient;
29
28
  type PageContextWithServerRouting<Data = unknown> = PageContextClientWithServerRouting<Data> | PageContextServer<Data>;
30
29
  type PageContextClientWithServerRouting<Data = unknown> = PageContextBuiltInClientWithServerRouting<Data> & Vike.PageContext & Vike.PageContextClient;
31
- type PageContextBuiltInCommon<Data> = {
30
+ type PageContextBuiltInCommon<Data> = PageContextConfig & {
32
31
  /**
33
32
  * Useful for distinguishing `pageContext` from other objects and narrowing down TypeScript unions.
34
33
  *
@@ -53,28 +52,6 @@ type PageContextBuiltInCommon<Data> = {
53
52
  * https://vike.dev/pageContext#data
54
53
  */
55
54
  data: Data;
56
- /** The page's configuration values.
57
- *
58
- * https://vike.dev/config
59
- * https://vike.dev/pageContext#config
60
- */
61
- config: PageContextConfig;
62
- /** The page's configuration, including the configs origin and overridden configs.
63
- *
64
- * https://vike.dev/config
65
- */
66
- configEntries: ConfigEntries;
67
- /** Custom Exports/Hooks.
68
- *
69
- * https://vike.dev/exports
70
- */
71
- exports: Record<string, unknown>;
72
- /**
73
- * Same as `pageContext.exports` but cumulative.
74
- *
75
- * https://vike.dev/exports
76
- */
77
- exportsAll: ExportsAll;
78
55
  /** The URL you provided to Vike when calling `renderPage({ urlOriginal })` in your server middleware.
79
56
  *
80
57
  * https://vike.dev/renderPage
@@ -183,6 +160,12 @@ type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageConte
183
160
  * https://vike.dev/pageContext#globalContext
184
161
  */
185
162
  globalContext: GlobalContextServer;
163
+ /**
164
+ * The CSP nonce.
165
+ *
166
+ * https://vike.dev/csp
167
+ */
168
+ cspNonce: string | null;
186
169
  isHydration?: undefined;
187
170
  isBackwardNavigation?: undefined;
188
171
  previousPageContext?: undefined;
@@ -1,5 +1,4 @@
1
1
  export type { Vike };
2
- export type { VikePackages };
3
2
  declare global {
4
3
  /** Refine Vike types. */
5
4
  namespace Vike {
@@ -62,30 +61,4 @@ declare global {
62
61
  _interfaceIsNotAny?: never;
63
62
  }
64
63
  }
65
- /** This namespace is only used by:
66
- * - `vike-react`
67
- * - `vike-vue`
68
- * - `vike-solid`
69
- * - `vike-svelte`
70
- * - `vike-angular`
71
- *
72
- * As a Vike user, you can ignore this.
73
- */
74
- namespace VikePackages {
75
- interface ConfigVikeReact {
76
- _interfaceIsNotAny?: never;
77
- }
78
- interface ConfigVikeVue {
79
- _interfaceIsNotAny?: never;
80
- }
81
- interface ConfigVikeSolid {
82
- _interfaceIsNotAny?: never;
83
- }
84
- interface ConfigVikeSvelte {
85
- _interfaceIsNotAny?: never;
86
- }
87
- interface ConfigVikeAngular {
88
- _interfaceIsNotAny?: never;
89
- }
90
- }
91
64
  }
@@ -5,13 +5,13 @@ export type { PageContextBuiltInClientWithClientRouting } from './PageContext.js
5
5
  export type { PageContextBuiltInClientWithServerRouting } from './PageContext.js';
6
6
  export type { Config, ConfigMeta as Meta, ImportString, KeepScrollPosition, } from './Config.js';
7
7
  export type { DataAsync, DataSync, GuardAsync, GuardSync, OnBeforePrerenderStartAsync, OnBeforePrerenderStartSync, OnBeforeRenderAsync, OnBeforeRenderSync, OnBeforeRouteAsync, OnBeforeRouteSync, OnHydrationEndAsync, OnHydrationEndSync, OnPageTransitionEndAsync, OnPageTransitionEndSync, OnPageTransitionStartAsync, OnPageTransitionStartSync, OnPrerenderStartAsync, OnPrerenderStartSync, OnRenderClientAsync, OnRenderClientSync, OnRenderHtmlAsync, OnRenderHtmlSync, RouteAsync, RouteSync, } from './Config.js';
8
- export type { ConfigResolved } from './Config/PageContextConfig.js';
8
+ export type { ConfigResolved } from './Config/ConfigResolved.js';
9
9
  export type { ConfigEnv } from './PageConfig.js';
10
10
  export type { ConfigDefinition, ConfigEffect, } from '../node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js';
11
11
  export type { ConfigEntries } from '../shared/page-configs/resolveVikeConfigPublic.js';
12
12
  export type { VikeConfig } from '../node/vite/shared/resolveVikeConfigInternal.js';
13
13
  export type { UrlPublic as Url } from '../utils/parseUrl.js';
14
- export type { InjectFilterEntry } from '../node/runtime/html/injectAssets/getHtmlTags.js';
14
+ export type { InjectFilterEntry } from '../node/runtime/renderPage/html/injectAssets/getHtmlTags.js';
15
15
  export { defineConfig } from './defineConfig.js';
16
16
  import type { ConfigEnv } from './PageConfig.js';
17
17
  /** @deprecated Replace:
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.238";
1
+ export declare const PROJECT_VERSION: "0.4.239-commit-050a4a3";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.238';
2
+ export const PROJECT_VERSION = '0.4.239-commit-050a4a3';
@@ -147,6 +147,7 @@ function addPrefixProjectName(msg, showProjectVersion = false) {
147
147
  const prefix = showProjectVersion ? projectTagWithVersion : projectTag;
148
148
  return `${prefix}${msg}`;
149
149
  }
150
+ // TO-DO/eventually: remove this (refactor the whole log handling)
150
151
  function getAssertErrMsg(thing) {
151
152
  let errMsg;
152
153
  let errStack;
@@ -170,7 +171,21 @@ function getAssertErrMsg(thing) {
170
171
  }
171
172
  }
172
173
  else if (errStack?.includes(tag)) {
173
- throw new Error('Internal Vike error');
174
+ // The following assert can fail, e.g. with following error:
175
+ // ```
176
+ // Error: Error running module "/home/rom/code/vike-server/examples/cloudflare-react/cloudflare-entry.js".
177
+ // Error running module "photon:cloudflare:/home/rom/code/vike-server/examples/cloudflare-react/server.js".
178
+ // Error running module "/home/rom/code/vike-server/examples/cloudflare-react/server.js".
179
+ // Error running module "/home/rom/code/vike-server/node_modules/.pnpm/@photonjs+hono@0.0.6_@hattip+core@0.0.49_elysia@1.3.13_exact-mirror@0.1.6_@sinclair+typ_c39d432d43266746f390ace81b426601/node_modules/@photonjs/hono/dist/index.js?v=6ca51a04".
180
+ // Error running module "/home/rom/code/vike-server/node_modules/.pnpm/@photonjs+hono@0.0.6_@hattip+core@0.0.49_elysia@1.3.13_exact-mirror@0.1.6_@sinclair+typ_c39d432d43266746f390ace81b426601/node_modules/@photonjs/hono/dist/apply.dev.js?v=6ca51a04".
181
+ // Error running module "photon:get-middlewares:dev:hono".
182
+ // Error running module "/home/rom/code/vike-server/packages/vike-server/dist/universal.dev.js".
183
+ // [vike][Wrong Usage] The global context isn't set yet, use getGlobalContextAsync() instead........
184
+ // at async ProxyServer.fetch (file:///home/rom/code/vike-server/node_modules/.pnpm/miniflare@4.20250829.0/node_modules/miniflare/src/workers/core/proxy.worker.ts:174:11)
185
+ // ```
186
+ /*
187
+ throw new Error('Internal Vike error')
188
+ */
174
189
  }
175
190
  if (errMsg?.startsWith(tag)) {
176
191
  const assertMsg = errMsg.slice(tag.length);
@@ -6,5 +6,7 @@ function assertNodeVersion() {
6
6
  if (!isNodeJS())
7
7
  return;
8
8
  const version = process.versions.node;
9
- assertVersion('Node.js', version, '18.0.0');
9
+ assertVersion('Node.js', version,
10
+ // https://gist.github.com/brillout/8e0133716e169b981b6c4e8a938b0134
11
+ ['20.19.0', '22.12.0', '23.0.0']);
10
12
  }
@@ -1,4 +1,5 @@
1
1
  export { assertVersion };
2
- export { isVersionOrAbove };
3
- declare function assertVersion(dependencyName: 'Vite' | 'Node.js', versionActual: string, versionExpected: `${number}.${number}.${number}`): void;
4
- declare function isVersionOrAbove(versionActual: string, versionExpected: `${number}.${number}.${number}`): boolean;
2
+ export { isVersionMatch };
3
+ type Version = `${number}.${number}.${number}`;
4
+ declare function assertVersion(dependencyName: 'Vite' | 'Node.js', versionActual: string, versionExpectedList: Version[]): void;
5
+ declare function isVersionMatch(versionActual: string, versionExpectedList: Version[]): boolean;
@@ -1,14 +1,32 @@
1
1
  export { assertVersion };
2
- export { isVersionOrAbove };
2
+ export { isVersionMatch };
3
+ import pc from '@brillout/picocolors';
3
4
  import { assert, assertUsage } from './assert.js';
4
5
  import { assertIsNotBrowser } from './assertIsNotBrowser.js';
6
+ import { joinEnglish } from './joinEnglish.js';
5
7
  assertIsNotBrowser();
6
- function assertVersion(dependencyName, versionActual, versionExpected) {
8
+ function assertVersion(dependencyName, versionActual, versionExpectedList) {
9
+ assertUsage(isVersionMatch(versionActual, versionExpectedList), `${pc.bold(dependencyName)} ${pc.red(pc.bold(versionActual))} isn't supported, use ${pc.bold(dependencyName)} ${joinEnglish([...versionExpectedList, 'above'].map((v) => pc.green(pc.bold(v))), 'or')}.`);
10
+ }
11
+ function isVersionMatch(versionActual, versionExpectedList) {
7
12
  assert(versionActual);
8
- assert(versionExpected);
9
- assertUsage(isVersionOrAbove(versionActual, versionExpected), `${dependencyName} ${versionActual} isn't supported, use ${dependencyName} >= ${versionExpected} instead.`);
13
+ assert(versionExpectedList);
14
+ assert(versionExpectedList.length > 0);
15
+ const versionActualMajor = parseVersion(versionActual)[0];
16
+ const versionExpectedListSameMajor = versionExpectedList.filter((versionExpected) => {
17
+ const versionExpectedMajor = parseVersion(versionExpected)[0];
18
+ return versionExpectedMajor === versionActualMajor;
19
+ });
20
+ assert(versionExpectedListSameMajor.length <= 1);
21
+ const versionExpectedSameMajor = versionExpectedListSameMajor[0];
22
+ if (versionExpectedSameMajor) {
23
+ return isSameOrAbove(versionActual, versionExpectedSameMajor);
24
+ }
25
+ else {
26
+ return versionExpectedList.every((versionExpected) => isSameOrAbove(versionActual, versionExpected));
27
+ }
10
28
  }
11
- function isVersionOrAbove(versionActual, versionExpected) {
29
+ function isSameOrAbove(versionActual, versionExpected) {
12
30
  const p1 = parseVersion(versionActual);
13
31
  const p2 = parseVersion(versionExpected);
14
32
  // major
@@ -7,5 +7,6 @@ function joinEnglish(arr, conjunction, colorizer = (s) => s) {
7
7
  return colorizer(arr[0]);
8
8
  const firsts = arr.slice(0, arr.length - 1);
9
9
  const last = arr[arr.length - 1];
10
- return firsts.map(colorizer).join(', ') + `, ${conjunction} ` + colorizer(last);
10
+ const lastComma = arr.length > 2 ? ',' : '';
11
+ return firsts.map(colorizer).join(', ') + `${lastComma} ${conjunction} ` + colorizer(last);
11
12
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.238",
3
+ "version": "0.4.239-commit-050a4a3",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -159,7 +159,7 @@
159
159
  }
160
160
  },
161
161
  "engines": {
162
- "node": ">=18.0.0"
162
+ "node": ">=20.19.0"
163
163
  },
164
164
  "license": "MIT",
165
165
  "description": "The Framework *You* Control - Next.js & Nuxt alternative for unprecedented flexibility and dependability.",
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- export { inferAssetTag };
2
- export { inferPreloadTag };
3
- export { inferEarlyHintLink };
4
- export { scriptAttrs };
5
- import type { PageAsset } from '../../renderPage/getPageAssets.js';
6
- declare const scriptAttrs = "type=\"module\" async";
7
- declare function inferPreloadTag(pageAsset: PageAsset): string;
8
- declare function inferAssetTag(pageAsset: PageAsset): string;
9
- declare function inferEarlyHintLink(pageAsset: PageAsset): string;
@@ -1,2 +0,0 @@
1
- export { mergeScriptTags };
2
- declare function mergeScriptTags(scriptTagsHtml: string): string;