vike 0.4.217 → 0.4.218-commit-ed9b3d4

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 (173) hide show
  1. package/dist/cjs/__internal/index.js +9 -8
  2. package/dist/cjs/node/api/build.js +21 -12
  3. package/dist/cjs/node/api/context.js +5 -1
  4. package/dist/cjs/node/api/index.js +17 -7
  5. package/dist/cjs/node/api/prepareViteApiCall.js +128 -26
  6. package/dist/cjs/node/api/utils.js +2 -0
  7. package/dist/cjs/node/cli/entry.js +19 -7
  8. package/dist/cjs/node/plugin/index.js +6 -5
  9. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +3 -4
  10. package/dist/cjs/node/plugin/plugins/baseUrls.js +20 -18
  11. package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
  12. package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  13. package/dist/cjs/node/plugin/plugins/commonConfig.js +6 -6
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +2 -3
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +22 -111
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +189 -16
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -1
  18. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
  19. package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  20. package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
  21. package/dist/cjs/node/prerender/isPrerenderEnabled.js +8 -0
  22. package/dist/cjs/node/prerender/runPrerender.js +22 -35
  23. package/dist/cjs/node/runtime/globalContext.js +76 -29
  24. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  25. package/dist/cjs/node/runtime/index-common.js +0 -15
  26. package/dist/cjs/node/runtime/onLoad.js +17 -3
  27. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  28. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
  29. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  30. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  31. package/dist/cjs/node/runtime/utils.js +1 -0
  32. package/dist/cjs/node/runtime-dev/index.js +17 -7
  33. package/dist/cjs/node/shared/resolveBase.js +2 -2
  34. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
  35. package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +2 -3
  36. package/dist/cjs/shared/getPageFiles.js +3 -9
  37. package/dist/cjs/shared/hooks/getHook.js +3 -3
  38. package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
  39. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +79 -54
  40. package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
  41. package/dist/cjs/shared/utils.js +1 -0
  42. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  43. package/dist/cjs/utils/assert.js +4 -3
  44. package/dist/cjs/utils/debug.js +11 -6
  45. package/dist/cjs/utils/objectReplace.js +9 -0
  46. package/dist/esm/__internal/index.d.ts +3 -5
  47. package/dist/esm/__internal/index.js +4 -5
  48. package/dist/esm/client/client-routing-runtime/createPageContext.js +7 -1
  49. package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
  50. package/dist/esm/client/client-routing-runtime/entry.js +0 -1
  51. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
  52. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
  53. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  54. package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
  55. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
  56. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  57. package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
  58. package/dist/esm/client/server-routing-runtime/entry.js +0 -1
  59. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  60. package/dist/esm/client/server-routing-runtime/getPageContext.js +8 -2
  61. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  62. package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
  63. package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
  64. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  65. package/dist/esm/node/api/build.js +4 -5
  66. package/dist/esm/node/api/context.d.ts +3 -1
  67. package/dist/esm/node/api/context.js +6 -2
  68. package/dist/esm/node/api/prepareViteApiCall.d.ts +9 -3
  69. package/dist/esm/node/api/prepareViteApiCall.js +111 -22
  70. package/dist/esm/node/api/utils.d.ts +2 -0
  71. package/dist/esm/node/api/utils.js +2 -0
  72. package/dist/esm/node/cli/entry.js +2 -0
  73. package/dist/esm/node/cli/parseCli.d.ts +1 -1
  74. package/dist/esm/node/plugin/index.d.ts +1 -1
  75. package/dist/esm/node/plugin/index.js +6 -5
  76. package/dist/esm/node/plugin/plugins/autoFullBuild.js +3 -4
  77. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -2
  78. package/dist/esm/node/plugin/plugins/baseUrls.js +21 -19
  79. package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
  80. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
  81. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
  82. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  83. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +7 -1
  84. package/dist/esm/node/plugin/plugins/commonConfig.js +2 -2
  85. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
  86. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +1 -1
  87. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +2 -3
  88. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  89. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +23 -112
  90. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +99 -1
  91. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +189 -16
  92. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -1
  93. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
  94. package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
  95. package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  96. package/dist/esm/node/plugin/shared/getEnvVarObject.d.ts +1 -1
  97. package/dist/esm/node/prerender/isPrerenderEnabled.d.ts +3 -0
  98. package/dist/esm/node/prerender/isPrerenderEnabled.js +6 -0
  99. package/dist/esm/node/prerender/runPrerender.d.ts +1 -2
  100. package/dist/esm/node/prerender/runPrerender.js +4 -27
  101. package/dist/esm/node/runtime/globalContext.d.ts +6 -4
  102. package/dist/esm/node/runtime/globalContext.js +76 -29
  103. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  104. package/dist/esm/node/runtime/index-common.d.ts +0 -1
  105. package/dist/esm/node/runtime/index-common.js +0 -15
  106. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
  107. package/dist/esm/node/runtime/onLoad.js +16 -2
  108. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  109. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  110. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
  111. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
  112. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
  113. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  114. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +5 -5
  115. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  116. package/dist/esm/node/runtime/utils.d.ts +1 -0
  117. package/dist/esm/node/runtime/utils.js +1 -0
  118. package/dist/esm/node/shared/resolveBase.js +2 -2
  119. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  120. package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +2 -3
  121. package/dist/esm/shared/getPageFiles.d.ts +2 -5
  122. package/dist/esm/shared/getPageFiles.js +1 -4
  123. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  124. package/dist/esm/shared/hooks/getHook.js +1 -1
  125. package/dist/esm/shared/page-configs/Config.d.ts +8 -2
  126. package/dist/esm/shared/page-configs/PageConfig.d.ts +7 -3
  127. package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +23 -12
  128. package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
  129. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +28 -4
  130. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +79 -54
  131. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  132. package/dist/esm/shared/route/loadPageRoutes.js +1 -1
  133. package/dist/esm/shared/types.d.ts +1 -1
  134. package/dist/esm/shared/utils.d.ts +1 -0
  135. package/dist/esm/shared/utils.js +1 -0
  136. package/dist/esm/types/index.d.ts +1 -1
  137. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  138. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  139. package/dist/esm/utils/assert.js +4 -3
  140. package/dist/esm/utils/debug.d.ts +1 -1
  141. package/dist/esm/utils/debug.js +11 -6
  142. package/dist/esm/utils/objectReplace.d.ts +1 -0
  143. package/dist/esm/utils/objectReplace.js +6 -0
  144. package/dist/esm/utils/projectInfo.d.ts +1 -1
  145. package/package.json +3 -22
  146. package/__internal/loadImportBuild.js +0 -3
  147. package/__internal/setup.js +0 -3
  148. package/dist/cjs/node/plugin/plugins/commonConfig/pluginName.js +0 -4
  149. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
  150. package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
  151. package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
  152. package/dist/cjs/node/runtime/page-files/setup.js +0 -5
  153. package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
  154. package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
  155. package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
  156. package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
  157. package/dist/esm/node/plugin/plugins/commonConfig/pluginName.d.ts +0 -1
  158. package/dist/esm/node/plugin/plugins/commonConfig/pluginName.js +0 -1
  159. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
  160. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
  161. package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
  162. package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
  163. package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
  164. package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
  165. package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
  166. package/dist/esm/node/runtime/page-files/setup.d.ts +0 -1
  167. package/dist/esm/node/runtime/page-files/setup.js +0 -3
  168. package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  169. package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
  170. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  171. package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +1 -1
  172. /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
  173. /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
@@ -5,7 +5,7 @@ export { getPageContextFromClientHooks };
5
5
  export { setPageContextInitIsPassedToClient };
6
6
  export type { PageContextFromServerHooks };
7
7
  export type { PageContextFromClientHooks };
8
- import type { PageContextExports, PageFile } from '../../shared/getPageFiles.js';
8
+ import type { PageConfigUserFriendly, PageFile } from '../../shared/getPageFiles.js';
9
9
  import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
10
10
  type PageContext = {
11
11
  urlOriginal: string;
@@ -21,9 +21,9 @@ declare function getPageContextFromHooks_serialized(): PageContextSerialized & {
21
21
  routeParams: Record<string, string>;
22
22
  _hasPageContextFromServer: true;
23
23
  };
24
- declare function getPageContextFromHooks_isHydration(pageContext: PageContextSerialized & PageContext & PageContextExports & {
24
+ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSerialized & PageContext & PageConfigUserFriendly & {
25
25
  _hasPageContextFromServer: true;
26
- }): Promise<PageContextSerialized & PageContext & PageContextExports & {
26
+ }): Promise<PageContextSerialized & PageContext & PageConfigUserFriendly & {
27
27
  _hasPageContextFromServer: true;
28
28
  } & {
29
29
  _hasPageContextFromClient: boolean;
@@ -45,5 +45,5 @@ type PageContextFromClientHooks = {
45
45
  declare function getPageContextFromClientHooks(pageContext: {
46
46
  pageId: string;
47
47
  _hasPageContextFromServer: boolean;
48
- } & PageContext & PageContextExports, isErrorPage: boolean): Promise<PageContextFromClientHooks>;
48
+ } & PageContext & PageConfigUserFriendly, isErrorPage: boolean): Promise<PageContextFromClientHooks>;
49
49
  declare function setPageContextInitIsPassedToClient(pageContext: Record<string, unknown>): void;
@@ -12,7 +12,7 @@ import { preparePageContextForUserConsumptionClientSide } from '../shared/prepar
12
12
  import { removeBuiltInOverrides } from './getPageContext/removeBuiltInOverrides.js';
13
13
  import { getPageContextRequestUrl } from '../../shared/getPageContextRequestUrl.js';
14
14
  import { getPageConfig } from '../../shared/page-configs/helpers.js';
15
- import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValue.js';
15
+ import { getConfigValueRuntime } from '../../shared/page-configs/getConfigValueRuntime.js';
16
16
  import { assertOnBeforeRenderHookReturn } from '../../shared/assertOnBeforeRenderHookReturn.js';
17
17
  import { executeGuardHook } from '../../shared/route/executeGuardHook.js';
18
18
  import { AbortRender, isAbortPageContext } from '../../shared/route/abort.js';
@@ -1,10 +1,10 @@
1
1
  export { getPrefetchSettings };
2
2
  export { PAGE_CONTEXT_MAX_AGE_DEFAULT };
3
3
  export type { PrefetchSettingResolved };
4
- import type { PageContextExports } from '../../../shared/getPageFiles.js';
4
+ import type { PageConfigUserFriendly } from '../../../shared/getPageFiles.js';
5
5
  declare const PAGE_CONTEXT_MAX_AGE_DEFAULT = 5000;
6
6
  type PrefetchSettingResolved = {
7
7
  staticAssets: false | 'hover' | 'viewport';
8
8
  pageContext: false | number;
9
9
  };
10
- declare function getPrefetchSettings(pageContext: PageContextExports, linkTag: null | HTMLElement): PrefetchSettingResolved;
10
+ declare function getPrefetchSettings(pageContext: PageConfigUserFriendly, linkTag: null | HTMLElement): PrefetchSettingResolved;
@@ -6,7 +6,7 @@ export { addLinkPrefetchHandlers };
6
6
  export { addLinkPrefetchHandlers_watch };
7
7
  export { addLinkPrefetchHandlers_unwatch };
8
8
  import { type PageContextFromServerHooks, getPageContextFromServerHooks } from './getPageContextFromHooks.js';
9
- import type { PageContextExports, PageFile } from '../../shared/getPageFiles.js';
9
+ import type { PageConfigUserFriendly, PageFile } from '../../shared/getPageFiles.js';
10
10
  import { type PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
11
11
  type ResultPageContextFromServer = Awaited<ReturnType<typeof getPageContextFromServerHooks>>;
12
12
  type PageContextForPrefetch = {
@@ -19,7 +19,7 @@ type PageContextForPrefetch = {
19
19
  };
20
20
  declare function getPageContextPrefetched(pageContext: {
21
21
  urlPathname: string;
22
- } & PageContextExports): null | PageContextFromServerHooks;
22
+ } & PageConfigUserFriendly): null | PageContextFromServerHooks;
23
23
  declare function populatePageContextPrefetchCache(pageContext: PageContextForPrefetch, result: ResultPageContextFromServer): void;
24
24
  /**
25
25
  * Programmatically prefetch client assets.
@@ -60,8 +60,8 @@ async function prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge)
60
60
  const result = await getPageContextFromServerHooks(pageContextLink, false);
61
61
  setPageContextPrefetchCache(pageContextLink, result, resultMaxAge);
62
62
  }
63
- function populatePageContextPrefetchCache(pageContext /*& PageContextExports*/, result) {
64
- // TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use PageContextExports as it isn't available here.)
63
+ function populatePageContextPrefetchCache(pageContext /*& PageConfigUserFriendly*/, result) {
64
+ // TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use PageConfigUserFriendly as it isn't available here.)
65
65
  if (!isBrilloutDocpress())
66
66
  return;
67
67
  setPageContextPrefetchCache(pageContext, result, null);
@@ -1 +1 @@
1
- import './pageFiles';
1
+ export {};
@@ -1,6 +1,5 @@
1
1
  import { assertServerRouting } from '../../utils/assertRoutingType.js';
2
2
  assertServerRouting();
3
- import './pageFiles';
4
3
  import { getPageContext } from './getPageContext.js';
5
4
  import { executeOnRenderClientHook } from '../shared/executeOnRenderClientHook.js';
6
5
  import { assertHook } from '../../shared/hooks/getHook.js';
@@ -10,6 +10,6 @@ declare function getPageContext(): Promise<{
10
10
  } & {
11
11
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
12
12
  _pageConfigs: import("../../__internal/index.js").PageConfig[];
13
- } & import("../../shared/getPageFiles.js").PageContextExports & {
13
+ } & import("../../shared/getPageFiles.js").PageConfigUserFriendly & {
14
14
  _pageFilesLoaded: import("../../shared/getPageFiles.js").PageFile[];
15
15
  }>;
@@ -1,10 +1,13 @@
1
+ export { getPageContext };
1
2
  import { assertUsage, assertWarning, objectAssign } from './utils.js';
2
3
  import { getPageContextSerializedInHtml } from '../shared/getPageContextSerializedInHtml.js';
3
- import { getPageFilesAll } from '../../shared/getPageFiles.js';
4
+ import { getPageFilesAll, setPageFiles } from '../../shared/getPageFiles/getPageFiles.js';
4
5
  import { loadUserFilesClientSide } from '../shared/loadUserFilesClientSide.js';
5
6
  import { getCurrentUrl } from '../shared/getCurrentUrl.js';
6
- export { getPageContext };
7
+ // @ts-ignore
8
+ import * as pageFilesExports from 'virtual:vike:importUserCode:client:server-routing';
7
9
  const urlFirst = getCurrentUrl({ withoutHash: true });
10
+ initDevEntry();
8
11
  async function getPageContext() {
9
12
  const pageContext = getPageContextSerializedInHtml();
10
13
  objectAssign(pageContext, {
@@ -36,3 +39,6 @@ async function loadPageUserFiles(pageId) {
36
39
  });
37
40
  return pageContextAddendum;
38
41
  }
42
+ function initDevEntry() {
43
+ setPageFiles(pageFilesExports);
44
+ }
@@ -1,6 +1,6 @@
1
1
  export { executeOnRenderClientHook };
2
2
  export type { PageContextBeforeRenderClient };
3
- import type { PageFile, PageContextExports } from '../../shared/getPageFiles.js';
3
+ import type { PageFile, PageConfigUserFriendly } from '../../shared/getPageFiles.js';
4
4
  import { type PageContextForUserConsumptionClientSide } from './preparePageContextForUserConsumptionClientSide.js';
5
5
  import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
6
6
  type PageContextBeforeRenderClient = {
@@ -9,5 +9,5 @@ type PageContextBeforeRenderClient = {
9
9
  urlPathname?: string;
10
10
  pageId: string;
11
11
  _pageConfigs: PageConfigRuntime[];
12
- } & PageContextExports & PageContextForUserConsumptionClientSide;
12
+ } & PageConfigUserFriendly & PageContextForUserConsumptionClientSide;
13
13
  declare function executeOnRenderClientHook<PC extends PageContextBeforeRenderClient>(pageContext: PC, isClientRouting: boolean): Promise<void>;
@@ -1,9 +1,9 @@
1
1
  export { loadUserFilesClientSide };
2
2
  export { isErrorFetchingStaticAssets };
3
3
  export type { PageContextUserFiles };
4
- import { type PageFile, type PageContextExports } from '../../shared/getPageFiles.js';
4
+ import { type PageFile, type PageConfigUserFriendly } from '../../shared/getPageFiles.js';
5
5
  import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
6
- type PageContextUserFilesLoaded = PageContextExports & {
6
+ type PageContextUserFilesLoaded = PageConfigUserFriendly & {
7
7
  _pageFilesLoaded: PageFile[];
8
8
  };
9
9
  type PageContextUserFiles = {
@@ -1,6 +1,6 @@
1
1
  export { loadUserFilesClientSide };
2
2
  export { isErrorFetchingStaticAssets };
3
- import { getPageFilesClientSide, getPageContextExports } from '../../shared/getPageFiles.js';
3
+ import { getPageFilesClientSide, getPageConfigUserFriendly } from '../../shared/getPageFiles.js';
4
4
  import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
5
5
  import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
6
6
  import { objectAssign } from '../server-routing-runtime/utils.js';
@@ -29,7 +29,7 @@ async function loadUserFilesClientSide(pageId, pageFilesAll, pageConfigs) {
29
29
  }
30
30
  throw err;
31
31
  }
32
- const pageContextExports = getPageContextExports(pageFilesClientSide, pageConfigLoaded);
32
+ const pageContextExports = getPageConfigUserFriendly(pageFilesClientSide, pageConfigLoaded);
33
33
  const pageContextAddendum = {};
34
34
  objectAssign(pageContextAddendum, pageContextExports);
35
35
  objectAssign(pageContextAddendum, { _pageFilesLoaded: pageFilesClientSide });
@@ -1,9 +1,9 @@
1
1
  export { preparePageContextForUserConsumptionClientSide };
2
2
  export type { PageContextForUserConsumptionClientSide };
3
- import type { PageContextExports } from '../../shared/getPageFiles.js';
3
+ import type { PageConfigUserFriendly } from '../../shared/getPageFiles.js';
4
4
  import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
5
5
  import { PageContextForPassToClientWarning } from './getPageContextProxyForUser.js';
6
- type PageContextForUserConsumptionClientSide = PageContextExports & PageContextForPassToClientWarning & {
6
+ type PageContextForUserConsumptionClientSide = PageConfigUserFriendly & PageContextForPassToClientWarning & {
7
7
  pageId: string;
8
8
  _pageConfigs: PageConfigRuntime[];
9
9
  };
@@ -1,6 +1,7 @@
1
1
  export { build };
2
2
  import { prepareViteApiCall } from './prepareViteApiCall.js';
3
3
  import { build as buildVite } from 'vite';
4
+ import { isPrerenderEnabled } from '../prerender/isPrerenderEnabled.js';
4
5
  /**
5
6
  * Programmatically trigger `$ vike build`
6
7
  *
@@ -13,11 +14,9 @@ async function build(options = {}) {
13
14
  // Build server-side
14
15
  const outputServer = await buildVite(setSSR(viteConfigEnhanced));
15
16
  // Pre-render
16
- if (vikeConfigGlobal.prerender &&
17
- !vikeConfigGlobal.prerender.disableAutoRun &&
18
- vikeConfigGlobal.disableAutoFullBuild !== 'prerender') {
17
+ if (isPrerenderEnabled(vikeConfigGlobal)) {
19
18
  const { runPrerenderFromAutoRun } = await import('../prerender/runPrerender.js');
20
- await runPrerenderFromAutoRun(viteConfigEnhanced, true);
19
+ await runPrerenderFromAutoRun(viteConfigEnhanced);
21
20
  }
22
21
  return {
23
22
  /* We don't return `viteConfig` because `viteConfigEnhanced` is `InlineConfig` not `ResolvedConfig`
@@ -31,7 +30,7 @@ function setSSR(viteConfig) {
31
30
  return {
32
31
  ...viteConfig,
33
32
  build: {
34
- ...viteConfig.build,
33
+ ...viteConfig?.build,
35
34
  ssr: true
36
35
  }
37
36
  };
@@ -1,5 +1,7 @@
1
+ export { setOperation };
2
+ export { clearOperation };
1
3
  export { isVikeCliOrApi };
2
- export { setOperation as setOperation };
3
4
  import type { Operation } from './types.js';
4
5
  declare function isVikeCliOrApi(): boolean;
5
6
  declare function setOperation(operation: Operation): void;
7
+ declare function clearOperation(): void;
@@ -1,6 +1,7 @@
1
- export { isVikeCliOrApi };
2
1
  // export { getOperation }
3
- export { setOperation as setOperation };
2
+ export { setOperation };
3
+ export { clearOperation };
4
+ export { isVikeCliOrApi };
4
5
  import { assert, getGlobalObject } from './utils.js';
5
6
  const globalObject = getGlobalObject('context.ts', {
6
7
  apiOperation: undefined
@@ -17,3 +18,6 @@ function setOperation(operation) {
17
18
  assert(!globalObject.apiOperation);
18
19
  globalObject.apiOperation = operation;
19
20
  }
21
+ function clearOperation() {
22
+ globalObject.apiOperation = undefined;
23
+ }
@@ -1,7 +1,13 @@
1
1
  export { prepareViteApiCall };
2
- import type { InlineConfig } from 'vite';
2
+ export { getViteRoot };
3
+ export { assertViteRoot };
4
+ export { normalizeViteRoot };
5
+ import type { InlineConfig, ResolvedConfig } from 'vite';
3
6
  import type { Operation } from './types.js';
4
7
  declare function prepareViteApiCall(viteConfig: InlineConfig | undefined, operation: Operation): Promise<{
5
- viteConfigEnhanced: InlineConfig;
6
- vikeConfigGlobal: import("../plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js").VikeConfigGlobal;
8
+ viteConfigEnhanced: InlineConfig | undefined;
9
+ vikeConfigGlobal: import("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js").VikeConfigGlobal;
7
10
  }>;
11
+ declare function getViteRoot(operation: 'build' | 'dev' | 'preview' | 'prerender'): Promise<string>;
12
+ declare function normalizeViteRoot(root: string): string;
13
+ declare function assertViteRoot(root: string, config: ResolvedConfig): void;
@@ -1,38 +1,112 @@
1
1
  export { prepareViteApiCall };
2
- import { resolveConfig } from 'vite';
3
- import { pluginName } from '../plugin/plugins/commonConfig/pluginName.js';
4
- import { setOperation } from './context.js';
2
+ export { getViteRoot };
3
+ export { assertViteRoot };
4
+ export { normalizeViteRoot };
5
+ // TODO: enable Vike extensions to add Vite plugins
6
+ import { loadConfigFromFile, mergeConfig, resolveConfig } from 'vite';
7
+ import { clearOperation, setOperation } from './context.js';
5
8
  import { getVikeConfig2 } from '../plugin/plugins/importUserCode/v1-design/getVikeConfig.js';
6
- async function prepareViteApiCall(viteConfig = {}, operation) {
9
+ import path from 'path';
10
+ import { assert, assertUsage, getGlobalObject, isObject, toPosixPath } from './utils.js';
11
+ import pc from '@brillout/picocolors';
12
+ import { clearGlobalContext } from '../runtime/globalContext.js';
13
+ const globalObject = getGlobalObject('prepareViteApiCall.ts', {});
14
+ async function prepareViteApiCall(viteConfig, operation) {
15
+ clear();
7
16
  setOperation(operation);
8
17
  return enhanceViteConfig(viteConfig, operation);
9
18
  }
10
- async function enhanceViteConfig(viteConfig = {}, operation) {
11
- let viteConfigResolved = await resolveViteConfig(viteConfig, operation);
19
+ // For subsequent API calls, e.g. calling prerender() after build()
20
+ function clear() {
21
+ clearOperation();
22
+ clearGlobalContext();
23
+ }
24
+ async function enhanceViteConfig(viteConfig, operation) {
25
+ const viteInfo = await getInfoFromVite(viteConfig, operation);
26
+ await assertViteRoot2(viteInfo.root, viteInfo.viteConfigEnhanced, operation);
27
+ const vikeConfig = await getVikeConfig2(viteInfo.root, operation === 'dev', viteInfo.vikeVitePluginOptions);
28
+ const viteConfigEnhanced = addViteSettingsSetByUser(viteInfo.viteConfigEnhanced, vikeConfig);
29
+ return {
30
+ viteConfigEnhanced,
31
+ vikeConfigGlobal: vikeConfig.vikeConfigGlobal
32
+ };
33
+ }
34
+ function addViteSettingsSetByUser(viteConfigEnhanced, vikeConfig) {
35
+ const { global } = vikeConfig.vikeConfigNew;
36
+ const viteConfigs = global.from.configsCumulative.vite;
37
+ if (!viteConfigs)
38
+ return viteConfigEnhanced;
39
+ viteConfigs.values.forEach((v) => {
40
+ assertUsage(isObject(v.value), `${v.definedAt} should be an object`);
41
+ viteConfigEnhanced = mergeConfig(v.value, viteConfigEnhanced ?? {});
42
+ });
43
+ return viteConfigEnhanced;
44
+ }
45
+ async function getViteRoot(operation) {
46
+ if (!globalObject.root)
47
+ await getInfoFromVite(undefined, operation);
48
+ assert(globalObject.root);
49
+ return globalObject.root;
50
+ }
51
+ async function getInfoFromVite(viteConfig, operation) {
52
+ const viteConfigFromFile = await loadViteConfigFile(viteConfig, operation);
53
+ const root = normalizeViteRoot(viteConfigFromFile?.root ?? viteConfig?.root ?? process.cwd());
54
+ globalObject.root = root;
55
+ let vikeVitePluginOptions;
12
56
  let viteConfigEnhanced = viteConfig;
13
- // Add vike to plugins if not present
14
- if (!viteConfigResolved.plugins.some((p) => p.name === pluginName)) {
15
- // Using a dynamic import because the script calling the Vike API may not live in the same place as vite.config.js, thus have vike/plugin may resolved to two different node_modules/vike directories
57
+ const found = findVikeVitePlugin([...(viteConfig?.plugins ?? []), ...(viteConfigFromFile?.plugins ?? [])]);
58
+ if (found) {
59
+ vikeVitePluginOptions = found.vikeVitePluginOptions;
60
+ }
61
+ else {
62
+ // Add Vike to plugins if not present.
63
+ // Using a dynamic import because the script calling the Vike API may not live in the same place as vite.config.js, thus vike/plugin may resolved to two different node_modules/vike directories.
16
64
  const { plugin: vikePlugin } = await import('../plugin/index.js');
17
65
  viteConfigEnhanced = {
18
66
  ...viteConfig,
19
- plugins: [...(viteConfig.plugins ?? []), vikePlugin()]
67
+ plugins: [...(viteConfig?.plugins ?? []), vikePlugin()]
20
68
  };
21
- viteConfigResolved = await resolveViteConfig(viteConfigEnhanced, operation);
69
+ const res = findVikeVitePlugin(viteConfigEnhanced.plugins);
70
+ assert(res);
71
+ vikeVitePluginOptions = res.vikeVitePluginOptions;
22
72
  }
23
- // TODO: use loadConfigFromFile() instead of viteConfigResolved
24
- const { vikeConfigGlobal } = await getVikeConfig2(viteConfigResolved.root, operation === 'dev', viteConfigResolved._vikeVitePluginOptions);
25
- // TODO: enable Vike extensions to add Vite plugins
26
- return {
27
- viteConfigEnhanced,
28
- vikeConfigGlobal
29
- };
73
+ assert(vikeVitePluginOptions);
74
+ return { root, vikeVitePluginOptions, viteConfigEnhanced };
30
75
  }
31
- async function resolveViteConfig(viteConfig, operation) {
32
- const args = getResolveConfigArgs(viteConfig, operation);
33
- return await resolveConfig(...args);
76
+ function findVikeVitePlugin(plugins) {
77
+ let vikeVitePluginOptions;
78
+ let vikeVitePuginFound = false;
79
+ plugins.forEach((p) => {
80
+ if (p && '__vikeVitePluginOptions' in p) {
81
+ vikeVitePuginFound = true;
82
+ const options = p.__vikeVitePluginOptions;
83
+ vikeVitePluginOptions ?? (vikeVitePluginOptions = {});
84
+ Object.assign(vikeVitePluginOptions, options);
85
+ }
86
+ });
87
+ if (!vikeVitePuginFound)
88
+ return null;
89
+ return { vikeVitePluginOptions };
90
+ }
91
+ // Copied from https://github.com/vitejs/vite/blob/4f5845a3182fc950eb9cd76d7161698383113b18/packages/vite/src/node/config.ts#L961-L1005
92
+ async function loadViteConfigFile(viteConfig, operation) {
93
+ const [inlineConfig, command, defaultMode, _defaultNodeEnv, isPreview] = getResolveConfigArgs(viteConfig, operation);
94
+ let config = inlineConfig;
95
+ let mode = inlineConfig.mode || defaultMode;
96
+ const configEnv = {
97
+ mode,
98
+ command,
99
+ isSsrBuild: command === 'build' && !!config.build?.ssr,
100
+ isPreview
101
+ };
102
+ let { configFile } = config;
103
+ if (configFile !== false) {
104
+ const loadResult = await loadConfigFromFile(configEnv, configFile, config.root, config.logLevel, config.customLogger);
105
+ return loadResult?.config;
106
+ }
107
+ return null;
34
108
  }
35
- function getResolveConfigArgs(viteConfig, operation) {
109
+ function getResolveConfigArgs(viteConfig = {}, operation) {
36
110
  const inlineConfig = viteConfig;
37
111
  const command = operation === 'build' || operation === 'prerender' ? 'build' : 'serve';
38
112
  const defaultMode = operation === 'dev' ? 'development' : 'production';
@@ -40,3 +114,18 @@ function getResolveConfigArgs(viteConfig, operation) {
40
114
  const isPreview = operation === 'preview';
41
115
  return [inlineConfig, command, defaultMode, defaultNodeEnv, isPreview];
42
116
  }
117
+ function normalizeViteRoot(root) {
118
+ return toPosixPath(path.resolve(root));
119
+ }
120
+ const errMsg = `A Vite plugin is modifying Vite's setting ${pc.cyan('root')} which is forbidden`;
121
+ async function assertViteRoot2(root, viteConfigEnhanced, operation) {
122
+ const args = getResolveConfigArgs(viteConfigEnhanced, operation);
123
+ // We can eventually this resolveConfig() call (along with removing the whole assertViteRoot2() function which is redundant with the assertViteRoot() function) so that Vike doesn't make any resolveConfig() (except for pre-rendering which is required). But let's keep it for now, just to see whether calling resolveConfig() can be problematic.
124
+ const viteConfigResolved = await resolveConfig(...args);
125
+ assertUsage(normalizeViteRoot(viteConfigResolved.root) === normalizeViteRoot(root), errMsg);
126
+ }
127
+ function assertViteRoot(root, config) {
128
+ if (globalObject.root)
129
+ assert(normalizeViteRoot(globalObject.root) === normalizeViteRoot(root));
130
+ assertUsage(normalizeViteRoot(root) === normalizeViteRoot(config.root), errMsg);
131
+ }
@@ -1,2 +1,4 @@
1
1
  export * from '../../utils/assert.js';
2
2
  export * from '../../utils/getGlobalObject.js';
3
+ export * from '../../utils/filesystemPathHandling.js';
4
+ export * from '../../utils/isObject.js';
@@ -4,3 +4,5 @@ import { onLoad } from './onLoad.js';
4
4
  onLoad();
5
5
  export * from '../../utils/assert.js';
6
6
  export * from '../../utils/getGlobalObject.js';
7
+ export * from '../../utils/filesystemPathHandling.js';
8
+ export * from '../../utils/isObject.js';
@@ -49,6 +49,8 @@ async function cmdBuild() {
49
49
  console.error(err);
50
50
  process.exit(1);
51
51
  }
52
+ // See comments at runPrerender_forceExit()
53
+ process.exit(0);
52
54
  }
53
55
  async function cmdPreview() {
54
56
  try {
@@ -1,4 +1,4 @@
1
1
  export { parseCli };
2
2
  declare function parseCli(): {
3
- command: "dev" | "build" | "preview" | "prerender";
3
+ command: "build" | "dev" | "preview" | "prerender";
4
4
  };
@@ -3,5 +3,5 @@ export { plugin };
3
3
  export { plugin as ssr };
4
4
  export type { VikeVitePluginOptions as UserConfig };
5
5
  export { PROJECT_VERSION as version } from './utils.js';
6
- import type { VikeVitePluginOptions } from './plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js';
6
+ import type { VikeVitePluginOptions } from './plugins/importUserCode/v1-design/getVikeConfig.js';
7
7
  declare function plugin(vikeVitePluginOptions?: VikeVitePluginOptions): any;
@@ -17,7 +17,7 @@ import { extractAssetsPlugin } from './plugins/extractAssetsPlugin.js';
17
17
  import { extractExportNamesPlugin } from './plugins/extractExportNamesPlugin.js';
18
18
  import { suppressRollupWarning } from './plugins/suppressRollupWarning.js';
19
19
  import { setGlobalContext } from './plugins/setGlobalContext.js';
20
- import { importBuild } from './plugins/importBuild/index.js';
20
+ import { buildEntry } from './plugins/buildEntry/index.js';
21
21
  import { commonConfig } from './plugins/commonConfig.js';
22
22
  import { baseUrls } from './plugins/baseUrls.js';
23
23
  import { envVarsPlugin } from './plugins/envVars.js';
@@ -26,12 +26,12 @@ import { fileEnv } from './plugins/fileEnv.js';
26
26
  import { setResolveClientEntriesDev } from '../runtime/renderPage/getPageAssets.js';
27
27
  import { resolveClientEntriesDev } from './resolveClientEntriesDev.js';
28
28
  import { workaroundCssModuleHmr } from './plugins/workaroundCssModuleHmr.js';
29
- import { vite6HmrRegressionWorkaround } from './plugins/vite6HmrRegressionWorkaround.js';
29
+ import { workaroundVite6HmrRegression } from './plugins/workaroundVite6HmrRegression.js';
30
30
  markSetup_vikeVitePlugin();
31
31
  assertViteVersion();
32
32
  setResolveClientEntriesDev(resolveClientEntriesDev);
33
33
  // Return as `any` to avoid Plugin type mismatches when there are multiple Vite versions installed
34
- function plugin(vikeVitePluginOptions) {
34
+ function plugin(vikeVitePluginOptions = {}) {
35
35
  const plugins = [
36
36
  ...commonConfig(vikeVitePluginOptions),
37
37
  importUserCode(),
@@ -46,13 +46,14 @@ function plugin(vikeVitePluginOptions) {
46
46
  extractExportNamesPlugin(),
47
47
  suppressRollupWarning(),
48
48
  ...setGlobalContext(),
49
- ...importBuild(),
49
+ ...buildEntry(),
50
50
  baseUrls(vikeVitePluginOptions),
51
51
  envVarsPlugin(),
52
52
  fileEnv(),
53
53
  workaroundCssModuleHmr(),
54
- vite6HmrRegressionWorkaround()
54
+ workaroundVite6HmrRegression()
55
55
  ];
56
+ Object.assign(plugins, { __vikeVitePluginOptions: vikeVitePluginOptions });
56
57
  return plugins;
57
58
  }
58
59
  // Error upon wrong usage
@@ -3,6 +3,7 @@ export { autoFullBuild };
3
3
  import { build } from 'vite';
4
4
  import { assertWarning } from '../utils.js';
5
5
  import { runPrerenderFromAutoRun, runPrerender_forceExit } from '../../prerender/runPrerender.js';
6
+ import { isPrerenderEnabled } from '../../prerender/isPrerenderEnabled.js';
6
7
  import { isViteCliCall, getViteConfigFromCli } from '../shared/isViteCliCall.js';
7
8
  import pc from '@brillout/picocolors';
8
9
  import { logErrorHint } from '../../runtime/renderPage/logErrorHint.js';
@@ -90,10 +91,8 @@ async function triggerFullBuild(config, vikeConfigGlobal, bundle) {
90
91
  logErrorHint(err);
91
92
  process.exit(1);
92
93
  }
93
- if (vikeConfigGlobal.prerender &&
94
- !vikeConfigGlobal.prerender.disableAutoRun &&
95
- vikeConfigGlobal.disableAutoFullBuild !== 'prerender') {
96
- await runPrerenderFromAutoRun(configInline, false);
94
+ if (isPrerenderEnabled(vikeConfigGlobal)) {
95
+ await runPrerenderFromAutoRun(configInline);
97
96
  forceExit = true;
98
97
  }
99
98
  }
@@ -1,4 +1,3 @@
1
1
  export { baseUrls };
2
2
  import type { Plugin } from 'vite';
3
- import type { VikeVitePluginOptions } from './importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js';
4
- declare function baseUrls(vikeVitePluginOptions?: VikeVitePluginOptions): Plugin;
3
+ declare function baseUrls(vikeVitePluginOptions: unknown): Plugin;
@@ -1,36 +1,42 @@
1
1
  export { baseUrls };
2
2
  import { resolveBase, resolveBaseFromResolvedConfig } from '../../shared/resolveBase.js';
3
3
  import { assert } from '../utils.js';
4
- import { getVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
4
+ import { getVikeConfig, getVikeConfig2 } from './importUserCode/v1-design/getVikeConfig.js';
5
+ import { assertViteRoot, getViteRoot, normalizeViteRoot } from '../../api/prepareViteApiCall.js';
5
6
  function baseUrls(vikeVitePluginOptions) {
6
- let bases;
7
+ let basesResolved;
8
+ let root;
7
9
  return {
8
10
  name: 'vike:baseUrls',
9
11
  enforce: 'post',
10
- async config(config) {
11
- // TODO: fix bug: use getVikeConfig2() and udpate check below
12
- bases = resolveBaseFromUserConfig(config, vikeVitePluginOptions);
13
- const { baseServer, baseAssets } = bases;
12
+ async config(config, env) {
13
+ const isDev = config._isDev;
14
+ assert(typeof isDev === 'boolean');
15
+ const operation = env.command === 'build' ? 'build' : env.isPreview ? 'preview' : 'dev';
16
+ root = config.root ? normalizeViteRoot(config.root) : await getViteRoot(operation);
17
+ assert(root);
18
+ const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
19
+ const vikeConfig = await getVikeConfig2(root, isDev, vikeVitePluginOptions);
20
+ basesResolved = resolveBase(baseViteOriginal, vikeConfig.vikeConfigGlobal.baseServer, vikeConfig.vikeConfigGlobal.baseAssets);
14
21
  // We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
15
- process.env.BASE_SERVER = baseServer;
16
- process.env.BASE_ASSETS = baseAssets;
22
+ process.env.BASE_SERVER = basesResolved.baseServer;
23
+ process.env.BASE_ASSETS = basesResolved.baseAssets;
17
24
  return {
18
25
  envPrefix: [
19
26
  'VITE_', // Vite doesn't seem to merge in its default, see https://github.com/vikejs/vike/issues/554
20
27
  'BASE_SERVER',
21
28
  'BASE_ASSETS'
22
29
  ],
23
- base: baseAssets, // Make Vite inject baseAssets to imports e.g. `import logoUrl from './logo.svg.js'`
24
- _baseViteOriginal: config.base ?? '/__UNSET__' // Vite resolves `_baseViteOriginal: null` to `undefined`
30
+ base: basesResolved.baseAssets, // Make Vite inject baseAssets to imports e.g. `import logoUrl from './logo.svg.js'`
31
+ _baseViteOriginal: baseViteOriginal
25
32
  };
26
33
  },
27
34
  async configResolved(config) {
35
+ assertViteRoot(root, config);
28
36
  const vikeConfig = await getVikeConfig(config);
29
- const { baseServer, baseAssets } = vikeConfig.vikeConfigGlobal;
30
- const basesResolved = resolveBaseFromResolvedConfig(baseServer, baseAssets, config);
31
- // Ensure that the premature base URL resolving we did in config() isn't erroneous
32
- assert(basesResolved.baseServer === bases.baseServer);
33
- assert(basesResolved.baseAssets === bases.baseAssets);
37
+ const basesResolved2 = resolveBaseFromResolvedConfig(vikeConfig.vikeConfigGlobal.baseServer, vikeConfig.vikeConfigGlobal.baseAssets, config);
38
+ assert(basesResolved2.baseServer === basesResolved.baseServer);
39
+ assert(basesResolved2.baseAssets === basesResolved.baseAssets);
34
40
  /* In dev, Vite seems buggy around setting vite.config.js#base to an absolute URL (e.g. http://localhost:8080/cdn/)
35
41
  * - In dev, Vite removes the URL origin. (I.e. it resolves the user config `vite.config.js#base: 'http://localhost:8080/cdn/'` to resolved config `config.base === '/cdn/'`.)
36
42
  * - Instead of having an internal Vike assertion fail, we let the user discover Vite's buggy behavior.
@@ -39,7 +45,3 @@ function baseUrls(vikeVitePluginOptions) {
39
45
  }
40
46
  };
41
47
  }
42
- function resolveBaseFromUserConfig(config, vikeVitePluginOptions) {
43
- const baseViteOriginal = config.base ?? null;
44
- return resolveBase(baseViteOriginal, vikeVitePluginOptions?.baseServer ?? null, vikeVitePluginOptions?.baseAssets ?? null);
45
- }
@@ -11,7 +11,7 @@ import { createRequire } from 'module';
11
11
  import fs from 'fs/promises';
12
12
  import path from 'path';
13
13
  import { fixServerAssets, fixServerAssets_assertCssCodeSplit, fixServerAssets_assertCssTarget, fixServerAssets_assertCssTarget_populate, fixServerAssets_isEnabled } from './buildConfig/fixServerAssets.js';
14
- import { set_ASSETS_MAP } from './importBuild/index.js';
14
+ import { set_ASSETS_MAP } from './buildEntry/index.js';
15
15
  import { prependEntriesDir } from '../../shared/prependEntriesDir.js';
16
16
  import { getFilePathResolved } from '../shared/getFilePath.js';
17
17
  import { getConfigValueBuildTime } from '../../../shared/page-configs/getConfigValueBuildTime.js';
@@ -117,7 +117,7 @@ async function getEntries(config) {
117
117
  if (viteIsSSR(config)) {
118
118
  const pageEntries = getPageEntries(pageConfigs);
119
119
  const entries = {
120
- // importBuild: resolve('dist/esm/node/importBuild.js'), // TODO/next-major-release: remove
120
+ // buildEntry: resolve('dist/esm/node/buildEntry.js'), // TODO/next-major-release: remove
121
121
  ...pageFileEntries,
122
122
  // Ensure Rollup generates a bundle per page: https://github.com/vikejs/vike/issues/349#issuecomment-1166247275
123
123
  ...pageEntries
@@ -1,5 +1,5 @@
1
1
  export { getVikeManifest };
2
2
  import { type PluginManifest } from '../../../shared/assertPluginManifest.js';
3
- import type { VikeConfigGlobal } from '../importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js';
3
+ import type { VikeConfigGlobal } from '../importUserCode/v1-design/getVikeConfig.js';
4
4
  import type { ResolvedConfig } from 'vite';
5
5
  declare function getVikeManifest(vikeConfigGlobal: VikeConfigGlobal, viteConfig: ResolvedConfig): PluginManifest;