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
@@ -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";
@@ -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';
@@ -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",
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;
@@ -1,15 +0,0 @@
1
- export type { PageContextConfig };
2
- export type { ConfigResolved };
3
- import type { VikePackages } from '../VikeNamespace.js';
4
- import type { ConfigBuiltIn, ConfigBuiltInResolved, ImportString } from '../Config.js';
5
- import type { Combine, IsNotEmpty, XOR5 } from './helpers.js';
6
- type PageContextConfig = ConfigResolved & (ConfigVikePackagesNotEmptyXor extends true ? ConfigVikePackagesIntersection : ConfigVikePackagesCombined);
7
- type ConfigUnresolved = WithoutImportString<ConfigBuiltIn & Vike.Config>;
8
- type ConfigResolvedOnly = ConfigBuiltInResolved & Vike.ConfigResolved;
9
- type ConfigResolved = ConfigResolvedOnly & Omit<ConfigUnresolved, keyof ConfigResolvedOnly>;
10
- type ConfigVikePackagesIntersection = VikePackages.ConfigVikeReact & VikePackages.ConfigVikeVue & VikePackages.ConfigVikeSolid & VikePackages.ConfigVikeSvelte & VikePackages.ConfigVikeAngular;
11
- type ConfigVikePackagesCombined = Combine<VikePackages.ConfigVikeReact, Combine<VikePackages.ConfigVikeVue, Combine<VikePackages.ConfigVikeSolid, Combine<VikePackages.ConfigVikeSvelte, VikePackages.ConfigVikeAngular>>>>;
12
- type ConfigVikePackagesNotEmptyXor = XOR5<IsNotEmpty<VikePackages.ConfigVikeReact>, IsNotEmpty<VikePackages.ConfigVikeVue>, IsNotEmpty<VikePackages.ConfigVikeSolid>, IsNotEmpty<VikePackages.ConfigVikeSvelte>, IsNotEmpty<VikePackages.ConfigVikeAngular>>;
13
- type WithoutImportString<T> = {
14
- [K in keyof T]: Exclude<T[K], ImportString>;
15
- };
@@ -1,10 +0,0 @@
1
- export type { IsNotEmpty };
2
- export type { XOR5 };
3
- export type { Combine };
4
- type IsNotEmpty<T> = Not<IsEmpty<T>>;
5
- type IsEmpty<T> = keyof T extends never ? true : false;
6
- type Combine<T1, T2> = {
7
- [K in keyof T1 | keyof T2]?: (K extends keyof T1 ? T1[K] : never) | (K extends keyof T2 ? T2[K] : never);
8
- };
9
- type XOR5<T1 extends boolean, T2 extends boolean, T3 extends boolean, T4 extends boolean, T5 extends boolean> = (T1 extends true ? T2 extends true ? false : T3 extends true ? false : T4 extends true ? false : Not<T5> : T2 extends true ? T3 extends true ? false : T4 extends true ? false : Not<T5> : T3 extends true ? T4 extends true ? false : Not<T5> : T4 extends true ? Not<T5> : T5);
10
- type Not<T extends boolean> = T extends true ? false : true;
@@ -1 +0,0 @@
1
- export {};