vike 0.4.222 → 0.4.223-commit-586dbfb

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 (161) hide show
  1. package/dist/cjs/client/shared/getPageContextProxyForUser.js +1 -1
  2. package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
  3. package/dist/cjs/node/plugin/index.js +6 -4
  4. package/dist/cjs/node/plugin/plugins/baseUrls.js +9 -2
  5. package/dist/cjs/node/plugin/plugins/buildApp.js +14 -7
  6. package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
  7. package/dist/cjs/node/plugin/plugins/buildConfig.js +6 -1
  8. package/dist/cjs/node/plugin/plugins/commonConfig.js +17 -1
  9. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
  10. package/dist/cjs/node/plugin/plugins/envVars.js +2 -18
  11. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +2 -2
  12. package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +11 -10
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +36 -71
  18. package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
  19. package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +1 -1
  20. package/dist/cjs/node/plugin/shared/viteIsSSR.js +19 -10
  21. package/dist/cjs/node/prerender/runPrerender.js +3 -1
  22. package/dist/cjs/node/runtime/globalContext.js +19 -8
  23. package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
  24. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +24 -0
  25. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +1 -1
  26. package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
  27. package/dist/cjs/node/runtime/renderPage/isNewError.js +1 -1
  28. package/dist/cjs/node/runtime/renderPage/isVikeConfigInvalid.js +10 -0
  29. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  30. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +7 -1
  31. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
  32. package/dist/cjs/node/runtime/renderPage.js +63 -49
  33. package/dist/cjs/node/runtime/universal-middleware.js +14 -0
  34. package/dist/cjs/node/shared/resolveBase.js +0 -13
  35. package/dist/cjs/shared/getPageConfigsRuntime.js +2 -8
  36. package/dist/cjs/shared/getPageContextRequestUrl.js +1 -1
  37. package/dist/cjs/shared/getPageContextUrlComputed.js +12 -9
  38. package/dist/cjs/shared/hooks/getHook.js +1 -1
  39. package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +44 -12
  40. package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -8
  41. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -6
  42. package/dist/cjs/shared/route/loadPageRoutes.js +1 -1
  43. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  44. package/dist/cjs/utils/assert.js +1 -1
  45. package/dist/cjs/utils/assertSetup.js +1 -1
  46. package/dist/cjs/utils/assertSingleInstance.js +2 -2
  47. package/dist/cjs/utils/findFile.js +1 -1
  48. package/dist/cjs/utils/getGlobalObject.js +2 -6
  49. package/dist/cjs/utils/parseUrl-extras.js +2 -2
  50. package/dist/cjs/utils/parseUrl.js +5 -5
  51. package/dist/cjs/utils/requireResolve.js +3 -3
  52. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
  53. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.js +1 -1
  54. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
  55. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  56. package/dist/esm/client/client-routing-runtime/history.js +1 -1
  57. package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
  58. package/dist/esm/client/client-routing-runtime/index.js +1 -0
  59. package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
  60. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
  61. package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
  62. package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
  63. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +12 -3
  64. package/dist/esm/client/client-routing-runtime/scrollRestoration.js +1 -1
  65. package/dist/esm/client/client-routing-runtime/skipLink.js +2 -2
  66. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  67. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  68. package/dist/esm/client/shared/getPageContextProxyForUser.js +1 -1
  69. package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
  70. package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
  71. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  72. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  73. package/dist/esm/node/plugin/index.d.ts +6 -2
  74. package/dist/esm/node/plugin/index.js +2 -1
  75. package/dist/esm/node/plugin/plugins/baseUrls.js +9 -2
  76. package/dist/esm/node/plugin/plugins/buildApp.js +14 -7
  77. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
  78. package/dist/esm/node/plugin/plugins/buildConfig.js +6 -1
  79. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +14 -6
  80. package/dist/esm/node/plugin/plugins/commonConfig.js +17 -1
  81. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
  82. package/dist/esm/node/plugin/plugins/envVars.js +2 -18
  83. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +3 -3
  84. package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
  85. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
  86. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
  87. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +10 -9
  88. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
  89. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +5 -5
  90. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +38 -73
  91. package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
  92. package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +2 -2
  93. package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +7 -4
  94. package/dist/esm/node/plugin/shared/viteIsSSR.js +20 -11
  95. package/dist/esm/node/prerender/runPrerender.js +3 -1
  96. package/dist/esm/node/runtime/globalContext.d.ts +9 -8
  97. package/dist/esm/node/runtime/globalContext.js +19 -8
  98. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
  99. package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -2
  100. package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
  101. package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
  102. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +2 -0
  103. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +24 -0
  104. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
  105. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
  106. package/dist/esm/node/runtime/renderPage/getPageAssets.js +1 -1
  107. package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
  108. package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
  109. package/dist/esm/node/runtime/renderPage/isNewError.js +1 -1
  110. package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.d.ts +6 -0
  111. package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.js +8 -0
  112. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +3 -3
  113. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
  114. package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
  115. package/dist/esm/node/runtime/renderPage/logErrorHint.js +7 -1
  116. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +4 -4
  117. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +12 -12
  118. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
  119. package/dist/esm/node/runtime/renderPage.d.ts +5 -5
  120. package/dist/esm/node/runtime/renderPage.js +64 -49
  121. package/dist/esm/node/runtime/universal-middleware.d.ts +1 -0
  122. package/dist/esm/node/runtime/universal-middleware.js +11 -0
  123. package/dist/esm/node/shared/resolveBase.d.ts +1 -9
  124. package/dist/esm/node/shared/resolveBase.js +0 -13
  125. package/dist/esm/shared/getPageConfigsRuntime.d.ts +2 -2
  126. package/dist/esm/shared/getPageConfigsRuntime.js +3 -9
  127. package/dist/esm/shared/getPageContextRequestUrl.js +1 -1
  128. package/dist/esm/shared/getPageContextUrlComputed.js +12 -9
  129. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  130. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  131. package/dist/esm/shared/hooks/getHook.js +1 -1
  132. package/dist/esm/shared/page-configs/Config.d.ts +3 -1
  133. package/dist/esm/shared/page-configs/PageConfig.d.ts +12 -4
  134. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +24 -16
  135. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +44 -12
  136. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +3 -2
  137. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -8
  138. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
  139. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +16 -6
  140. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  141. package/dist/esm/shared/route/loadPageRoutes.js +1 -1
  142. package/dist/esm/shared/types.d.ts +6 -0
  143. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  144. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  145. package/dist/esm/utils/assert.js +1 -1
  146. package/dist/esm/utils/assertSetup.js +1 -1
  147. package/dist/esm/utils/assertSingleInstance.js +2 -2
  148. package/dist/esm/utils/findFile.js +1 -1
  149. package/dist/esm/utils/getGlobalObject.d.ts +3 -2
  150. package/dist/esm/utils/getGlobalObject.js +2 -6
  151. package/dist/esm/utils/parseUrl-extras.js +2 -2
  152. package/dist/esm/utils/parseUrl.d.ts +3 -4
  153. package/dist/esm/utils/parseUrl.js +5 -5
  154. package/dist/esm/utils/projectInfo.d.ts +1 -1
  155. package/dist/esm/utils/requireResolve.js +3 -3
  156. package/package.json +18 -6
  157. package/universal-middleware.js +3 -0
  158. package/dist/cjs/node/runtime/renderPage/isConfigInvalid.js +0 -10
  159. package/dist/esm/node/runtime/renderPage/isConfigInvalid.d.ts +0 -6
  160. package/dist/esm/node/runtime/renderPage/isConfigInvalid.js +0 -8
  161. package/dist-cjs-fixup.mjs +0 -41
@@ -1,5 +1,5 @@
1
1
  export { handleErrorWithoutErrorPage };
2
- import type { GlobalContext } from '../globalContext.js';
2
+ import type { GlobalContextInternal } from '../globalContext.js';
3
3
  import type { PageContextAfterRender } from './renderPageAlreadyRouted.js';
4
4
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
5
5
  import type { PageFile } from '../../../shared/getPageFiles.js';
@@ -10,6 +10,6 @@ declare function handleErrorWithoutErrorPage<PageContext extends {
10
10
  pageId: null;
11
11
  _pageFilesAll: PageFile[];
12
12
  _pageConfigs: PageConfigRuntime[];
13
- _globalContext: GlobalContext;
13
+ _globalContext: GlobalContextInternal;
14
14
  urlOriginal: string;
15
15
  }>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
@@ -1,7 +1,7 @@
1
1
  export { handlePageContextRequestUrl };
2
2
  import { pageContextJsonFileExtension, doNotCreateExtraDirectory } from '../../../shared/getPageContextRequestUrl.js';
3
3
  import { baseServer, parseUrl, assert, slice } from '../utils.js';
4
- // See shared/getPageContextRequestUrl.ts
4
+ // See also shared/getPageContextRequestUrl.ts
5
5
  function handlePageContextRequestUrl(url) {
6
6
  if (!hasSuffix(url)) {
7
7
  return { urlWithoutPageContextRequestSuffix: url, isPageContextRequest: false };
@@ -1,7 +1,7 @@
1
1
  export { isNewError };
2
2
  export { setAlreadyLogged };
3
3
  import { getGlobalObject, isObject, isSameErrorMessage, warnIfErrorIsNotObject } from '../utils.js';
4
- const globalObject = getGlobalObject('runtime/renderPage/isNewError.ts', {
4
+ const globalObject = getGlobalObject('renderPage/isNewError.ts', {
5
5
  wasAlreadyLogged: new WeakSet()
6
6
  });
7
7
  function isNewError(errErrorPage, errNominalPage) {
@@ -0,0 +1,6 @@
1
+ export { isVikeConfigInvalid };
2
+ export { isVikeConfigInvalid_set };
3
+ declare let isVikeConfigInvalid: false | {
4
+ err: unknown;
5
+ };
6
+ declare const isVikeConfigInvalid_set: (val: typeof isVikeConfigInvalid) => void;
@@ -0,0 +1,8 @@
1
+ export { isVikeConfigInvalid };
2
+ export { isVikeConfigInvalid_set };
3
+ import { assert } from '../utils.js';
4
+ let isVikeConfigInvalid;
5
+ const isVikeConfigInvalid_set = (val) => {
6
+ assert(val === false || val.err);
7
+ isVikeConfigInvalid = val;
8
+ };
@@ -6,17 +6,17 @@ import { PromiseType } from '../utils.js';
6
6
  import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
7
7
  import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
8
8
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
9
- import type { GlobalContext } from '../globalContext.js';
9
+ import type { GlobalContextInternal } from '../globalContext.js';
10
10
  type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
11
11
  urlOriginal: string;
12
12
  _pageFilesAll: PageFile[];
13
13
  _pageConfigs: PageConfigRuntime[];
14
- _globalContext: GlobalContext;
14
+ _globalContext: GlobalContextInternal;
15
15
  };
16
16
  type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
17
17
  declare function loadUserFilesServerSide(pageContext: {
18
18
  pageId: string;
19
- } & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
19
+ } & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
20
20
  Page: unknown;
21
21
  _isHtmlOnly: boolean;
22
22
  _passToClient: string[];
@@ -1,6 +1,6 @@
1
1
  export { loadUserFilesServerSide };
2
2
  import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
- import { getPageConfigUserFriendlyOld } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
3
+ import { getPageConfigUserFriendly_oldDesign } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
4
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
5
  import { assert, assertUsage, assertWarning, hasProp, isArrayOfStrings, objectAssign, isArray } from '../utils.js';
6
6
  import { getPageAssets } from './getPageAssets.js';
@@ -100,7 +100,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageConfigGlobal, pag
100
100
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
101
101
  const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
102
102
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
103
- const pageContextExports = getPageConfigUserFriendlyOld(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
103
+ const pageContextExports = getPageConfigUserFriendly_oldDesign(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
104
104
  return {
105
105
  pageContextExports,
106
106
  pageFilesLoaded: pageFilesServerSide
@@ -1,12 +1,12 @@
1
1
  export { log404 };
2
2
  export { getRoutesInfo };
3
3
  import type { PageRoutes } from '../../../../shared/route/index.js';
4
- import type { GlobalContext } from '../../globalContext.js';
4
+ import type { GlobalContextInternal } from '../../globalContext.js';
5
5
  declare function log404(pageContext: {
6
6
  urlPathname: string;
7
7
  errorWhileRendering: null | Error;
8
8
  isClientSideNavigation: boolean;
9
9
  _pageRoutes: PageRoutes;
10
- _globalContext: GlobalContext;
10
+ _globalContext: GlobalContextInternal;
11
11
  }): Promise<void>;
12
12
  declare function getRoutesInfo(pageRoutes: PageRoutes): string | null;
@@ -25,13 +25,19 @@ const errorsMisc = [
25
25
  mustMentionNodeModules: false
26
26
  }
27
27
  ];
28
+ const reactInvalidEelement = 'https://vike.dev/broken-npm-package#react-invalid-component';
28
29
  const errorsReact = [
29
30
  {
30
31
  errMsg: 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components)',
31
- link: 'https://vike.dev/broken-npm-package#react-invalid-component',
32
+ link: reactInvalidEelement,
32
33
  // The stack trace can be user-land while the import is coming from node_modules
33
34
  mustMentionNodeModules: false
34
35
  },
36
+ {
37
+ errMsg: 'Objects are not valid as a React child',
38
+ link: reactInvalidEelement,
39
+ mustMentionNodeModules: false
40
+ },
35
41
  {
36
42
  // React's "Invalid hook call.", see https://github.com/vikejs/vike/discussions/1637#discussioncomment-9424712
37
43
  errMsg: "Cannot read properties of null (reading 'useContext')"
@@ -2,10 +2,10 @@ export { preparePageContextForUserConsumptionServerSide };
2
2
  export type { PageContextForUserConsumptionServerSide };
3
3
  import { PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
4
4
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
5
- import type { PageConfigUserFriendly } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
5
+ import type { PageConfigUserFriendlyOld } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
6
6
  import { PageContextBuiltInServerInternal } from '../../../shared/types.js';
7
- import type { GlobalContext, GlobalContextPublic } from '../globalContext.js';
8
- type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & PageConfigUserFriendly & {
7
+ import type { GlobalContextInternal, GlobalContextPublic } from '../globalContext.js';
8
+ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & PageConfigUserFriendlyOld & {
9
9
  urlOriginal: string;
10
10
  /** @deprecated */
11
11
  url: string;
@@ -18,7 +18,7 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
18
18
  is404: null | boolean;
19
19
  isClientSideNavigation: boolean;
20
20
  pageProps?: Record<string, unknown>;
21
- _globalContext: GlobalContext;
21
+ _globalContext: GlobalContextInternal;
22
22
  globalContext: GlobalContextPublic;
23
23
  } & Record<string, unknown>;
24
24
  declare function preparePageContextForUserConsumptionServerSide(pageContext: PageContextForUserConsumptionServerSide): void;
@@ -5,7 +5,7 @@ export { getPageContextInitEnhanced };
5
5
  export type { PageContextAfterRender };
6
6
  export type { PageContextInitEnhanced };
7
7
  import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
8
- import type { GlobalContext } from '../globalContext.js';
8
+ import type { GlobalContextInternal } from '../globalContext.js';
9
9
  import { HttpResponse } from './createHttpResponse.js';
10
10
  import { PageContext_loadUserFilesServerSide, type PageFiles } from './loadUserFilesServerSide.js';
11
11
  type PageContextAfterRender = {
@@ -46,7 +46,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
46
46
  _allPageIds: string[];
47
47
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
48
48
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
49
- _globalContext: GlobalContext;
49
+ _globalContext: GlobalContextInternal;
50
50
  /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
51
51
  globalContext: import("../globalContext.js").GlobalContextPublic;
52
52
  _pageContextInit: {
@@ -63,7 +63,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
63
63
  url: string;
64
64
  } & {
65
65
  headers: Record<string, string> | null;
66
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
66
+ } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
67
67
  Page: unknown;
68
68
  _isHtmlOnly: boolean;
69
69
  _passToClient: string[];
@@ -100,7 +100,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
100
100
  _allPageIds: string[];
101
101
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
102
102
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
103
- _globalContext: GlobalContext;
103
+ _globalContext: GlobalContextInternal;
104
104
  /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
105
105
  globalContext: import("../globalContext.js").GlobalContextPublic;
106
106
  _pageContextInit: {
@@ -117,7 +117,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
117
117
  url: string;
118
118
  } & {
119
119
  headers: Record<string, string> | null;
120
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
120
+ } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
121
121
  Page: unknown;
122
122
  _isHtmlOnly: boolean;
123
123
  _passToClient: string[];
@@ -137,7 +137,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
137
137
  _urlHandler: null;
138
138
  };
139
139
  }>;
140
- declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContext): Promise<{
140
+ declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContextInternal): Promise<{
141
141
  documentHtml: string;
142
142
  pageContextSerialized: null;
143
143
  pageContext: {
@@ -155,7 +155,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
155
155
  _allPageIds: string[];
156
156
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
157
157
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
158
- _globalContext: GlobalContext;
158
+ _globalContext: GlobalContextInternal;
159
159
  /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
160
160
  globalContext: import("../globalContext.js").GlobalContextPublic;
161
161
  _pageContextInit: {
@@ -172,7 +172,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
172
172
  url: string;
173
173
  } & {
174
174
  headers: Record<string, string> | null;
175
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
175
+ } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
176
176
  Page: unknown;
177
177
  _isHtmlOnly: boolean;
178
178
  _passToClient: string[];
@@ -209,7 +209,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
209
209
  _allPageIds: string[];
210
210
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
211
211
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
212
- _globalContext: GlobalContext;
212
+ _globalContext: GlobalContextInternal;
213
213
  /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
214
214
  globalContext: import("../globalContext.js").GlobalContextPublic;
215
215
  _pageContextInit: {
@@ -226,7 +226,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
226
226
  url: string;
227
227
  } & {
228
228
  headers: Record<string, string> | null;
229
- } & import("../../../shared/getPageFiles.js").PageConfigUserFriendly & {
229
+ } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
230
230
  Page: unknown;
231
231
  _isHtmlOnly: boolean;
232
232
  _passToClient: string[];
@@ -251,7 +251,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
251
251
  urlOriginal: string;
252
252
  headersOriginal?: unknown;
253
253
  headers?: unknown;
254
- }, globalContext: GlobalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
254
+ }, globalContext: GlobalContextInternal, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
255
255
  ssr?: {
256
256
  urlRewrite: null | string;
257
257
  urlHandler: null | ((url: string) => string);
@@ -272,7 +272,7 @@ declare function getPageContextInitEnhanced(pageContextInit: {
272
272
  _allPageIds: string[];
273
273
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
274
274
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
275
- _globalContext: GlobalContext;
275
+ _globalContext: GlobalContextInternal;
276
276
  /** @experimental This is a beta feature https://vike.dev/getGlobalContext */
277
277
  globalContext: import("../globalContext.js").GlobalContextPublic;
278
278
  _pageContextInit: {
@@ -17,7 +17,6 @@ import { preparePageContextForUserConsumptionServerSide } from './preparePageCon
17
17
  import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
18
18
  import pc from '@brillout/picocolors';
19
19
  import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
20
- import { resolveBaseRuntime } from '../../shared/resolveBase.js';
21
20
  async function renderPageAlreadyRouted(pageContext) {
22
21
  // pageContext.pageId can either be the:
23
22
  // - ID of the page matching the routing, or the
@@ -112,14 +111,13 @@ async function getPageContextInitEnhanced(pageContextInit, globalContext, { ssr:
112
111
  isClientSideNavigation: false
113
112
  } } = {}) {
114
113
  assert(pageContextInit.urlOriginal);
115
- const { baseServer, baseAssets } = resolveBaseRuntime(globalContext);
116
114
  const pageContextInitEnhanced = {};
117
115
  objectAssign(pageContextInitEnhanced, pageContextInit);
118
116
  objectAssign(pageContextInitEnhanced, {
119
117
  _objectCreatedByVike: true,
120
118
  // The following is defined on `pageContext` because we can eventually make these non-global
121
- _baseServer: baseServer,
122
- _baseAssets: baseAssets,
119
+ _baseServer: globalContext.baseServer,
120
+ _baseAssets: globalContext.baseAssets,
123
121
  // TODO/now: add meta.default
124
122
  _includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
125
123
  // TODO/soon: use GloablContext instead
@@ -1,11 +1,7 @@
1
1
  export { renderPage };
2
- export { renderPage_addWrapper };
2
+ export { renderPage_addAsyncHookwrapper };
3
3
  import { HttpResponse } from './renderPage/createHttpResponse.js';
4
4
  import type { PageContextServer } from '../../types/index.js';
5
- declare let renderPage_wrapper: <PageContext>(_httpRequestId: number, ret: () => Promise<PageContext>) => Promise<{
6
- pageContextReturn: Awaited<PageContext>;
7
- }>;
8
- declare const renderPage_addWrapper: (wrapper: typeof renderPage_wrapper) => void;
9
5
  declare function renderPage<PageContextUserAdded extends {}, PageContextInit extends {
10
6
  /** @deprecated */
11
7
  url?: string;
@@ -14,3 +10,7 @@ declare function renderPage<PageContextUserAdded extends {}, PageContextInit ext
14
10
  }>(pageContextInit: PageContextInit): Promise<PageContextInit & {
15
11
  httpResponse: HttpResponse;
16
12
  } & Partial<PageContextServer & PageContextUserAdded>>;
13
+ declare let asyncHookWrapper: <PageContext>(_httpRequestId: number, ret: () => Promise<PageContext>) => Promise<{
14
+ pageContextReturn: Awaited<PageContext>;
15
+ }>;
16
+ declare function renderPage_addAsyncHookwrapper(wrapper: typeof asyncHookWrapper): void;
@@ -1,63 +1,58 @@
1
1
  export { renderPage };
2
- export { renderPage_addWrapper };
2
+ export { renderPage_addAsyncHookwrapper };
3
3
  import { getPageContextInitEnhanced, renderPageAlreadyRouted } from './renderPage/renderPageAlreadyRouted.js';
4
4
  import { route } from '../../shared/route/index.js';
5
5
  import { assert, hasProp, objectAssign, isUrl, parseUrl, onSetupRuntime, assertWarning, getGlobalObject, checkType, assertUsage, normalizeUrlPathname, removeBaseServer, modifyUrlPathname, prependBase, removeUrlOrigin, setUrlOrigin, createUrlFromComponents, isUri, getUrlPretty } from './utils.js';
6
6
  import { assertNoInfiniteAbortLoop, getPageContextFromAllRewrites, isAbortError, logAbortErrorHandled } from '../../shared/route/abort.js';
7
7
  import { getGlobalContextInternal, initGlobalContext_renderPage } from './globalContext.js';
8
8
  import { handlePageContextRequestUrl } from './renderPage/handlePageContextRequestUrl.js';
9
- import { createHttpResponseFavicon404, createHttpResponseRedirect, createHttpResponsePageContextJson, createHttpResponseError } from './renderPage/createHttpResponse.js';
9
+ import { createHttpResponseFavicon404, createHttpResponseRedirect, createHttpResponsePageContextJson, createHttpResponseError, createHttpResponseBaseIsMissing } from './renderPage/createHttpResponse.js';
10
10
  import { logRuntimeError, logRuntimeInfo } from './renderPage/loggerRuntime.js';
11
11
  import { isNewError } from './renderPage/isNewError.js';
12
12
  import { assertArguments } from './renderPage/assertArguments.js';
13
13
  import { log404 } from './renderPage/log404/index.js';
14
- import { isConfigInvalid } from './renderPage/isConfigInvalid.js';
14
+ import { isVikeConfigInvalid } from './renderPage/isVikeConfigInvalid.js';
15
15
  import pc from '@brillout/picocolors';
16
16
  import { serializePageContextAbort, serializePageContextClientSide } from './html/serializePageContextClientSide.js';
17
17
  import { getErrorPageId } from '../../shared/error-page.js';
18
18
  import { handleErrorWithoutErrorPage } from './renderPage/handleErrorWithoutErrorPage.js';
19
19
  import { loadUserFilesServerSide } from './renderPage/loadUserFilesServerSide.js';
20
20
  import { resolveRedirects } from './renderPage/resolveRedirects.js';
21
- import { resolveBaseRuntime } from '../shared/resolveBase.js';
22
21
  const globalObject = getGlobalObject('runtime/renderPage.ts', {
23
22
  httpRequestsCount: 0
24
23
  });
25
- let renderPage_wrapper = async (_httpRequestId, ret) => ({
26
- pageContextReturn: await ret()
27
- });
28
- const renderPage_addWrapper = (wrapper) => {
29
- renderPage_wrapper = wrapper;
30
- };
31
24
  // `renderPage()` calls `renderPageNominal()` while ensuring that errors are `console.error(err)` instead of `throw err`, so that Vike never triggers a server shut down. (Throwing an error in an Express.js middleware shuts down the whole Express.js server.)
32
25
  async function renderPage(pageContextInit) {
33
26
  assertArguments(...arguments);
34
27
  assert(hasProp(pageContextInit, 'urlOriginal', 'string')); // assertUsage() already implemented at assertArguments()
35
- onSetupRuntime();
36
28
  assertIsUrl(pageContextInit.urlOriginal);
37
- const urlPathnameWithBase = parseUrl(pageContextInit.urlOriginal, '/').pathname;
38
- assertIsNotViteRequest(urlPathnameWithBase, pageContextInit.urlOriginal);
39
- if (urlPathnameWithBase.endsWith('/favicon.ico'))
40
- return getPageContextHttpResponseFavicon404(pageContextInit);
29
+ onSetupRuntime();
30
+ const pageContextInvalidRequest = renderInvalidRequest(pageContextInit);
31
+ if (pageContextInvalidRequest)
32
+ return pageContextInvalidRequest;
41
33
  const httpRequestId = getRequestId();
42
34
  const urlOriginalPretty = getUrlPretty(pageContextInit.urlOriginal);
43
35
  logHttpRequest(urlOriginalPretty, httpRequestId);
44
- const { pageContextReturn } = await renderPage_wrapper(httpRequestId, () => renderPageAndPrepare(pageContextInit, httpRequestId));
36
+ const { pageContextReturn } = await asyncHookWrapper(httpRequestId, () => renderPageAndPrepare(pageContextInit, httpRequestId));
45
37
  logHttpResponse(urlOriginalPretty, httpRequestId, pageContextReturn);
46
38
  checkType(pageContextReturn);
47
39
  assert(pageContextReturn.httpResponse);
48
40
  return pageContextReturn;
49
41
  }
42
+ // Fallback wrapper if node:async_hooks isn't available
43
+ let asyncHookWrapper = async (_httpRequestId, ret) => ({
44
+ pageContextReturn: await ret()
45
+ });
46
+ // Add node:async_hooks wrapper
47
+ function renderPage_addAsyncHookwrapper(wrapper) {
48
+ asyncHookWrapper = wrapper;
49
+ }
50
50
  async function renderPageAndPrepare(pageContextInit, httpRequestId) {
51
51
  // Invalid config
52
- const handleInvalidConfig = (err) => {
53
- logRuntimeInfo?.(pc.bold(pc.red('Error while loading a Vike config file, see error above.')), httpRequestId, 'error');
54
- const pageContextWithError = getPageContextHttpResponseError(err, pageContextInit, null);
55
- return pageContextWithError;
56
- };
57
- if (isConfigInvalid) {
52
+ if (isVikeConfigInvalid) {
58
53
  if (1 < 2 // Make TS happy
59
54
  ) {
60
- return handleInvalidConfig(isConfigInvalid.err);
55
+ return renderInvalidVikeConfig(isVikeConfigInvalid.err, pageContextInit, httpRequestId);
61
56
  }
62
57
  }
63
58
  // Prepare context
@@ -65,22 +60,29 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
65
60
  await initGlobalContext_renderPage();
66
61
  }
67
62
  catch (err) {
68
- // Errors are expected since assertUsage() is used in both initGlobalContext_renderPage() and getRenderContext().
69
- // initGlobalContext_renderPage() and getRenderContext() don't call any user hooks => err isn't thrown from user code.
63
+ // Errors are expected since assertUsage() is used in initGlobalContext_renderPage() such as:
64
+ // ```bash
65
+ // Re-build your app (you're using 1.2.3 but your app was built with 1.2.2)
66
+ // ```
67
+ // initGlobalContext_renderPage() doens't call any user hook => err isn't thrown from user code.
70
68
  assert(!isAbortError(err));
71
69
  logRuntimeError(err, httpRequestId);
72
70
  const pageContextWithError = getPageContextHttpResponseError(err, pageContextInit, null);
73
71
  return pageContextWithError;
74
72
  }
75
- if (isConfigInvalid) {
76
- return handleInvalidConfig(isConfigInvalid.err);
73
+ if (isVikeConfigInvalid) {
74
+ return renderInvalidVikeConfig(isVikeConfigInvalid.err, pageContextInit, httpRequestId);
77
75
  }
78
76
  else {
79
- // From now on, globalContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
77
+ // `globalContext` now contains the entire Vike config and getVikeConfig() isn't called anymore for this request.
80
78
  }
81
79
  const globalContext = await getGlobalContextInternal();
82
80
  // Check Base URL
83
- await assertBaseUrl(pageContextInit, globalContext);
81
+ {
82
+ const pageContextHttpResponse = await checkBaseUrl(pageContextInit, globalContext);
83
+ if (pageContextHttpResponse)
84
+ return pageContextHttpResponse;
85
+ }
84
86
  // Normalize URL
85
87
  {
86
88
  const pageContextHttpResponse = await normalizeUrl(pageContextInit, globalContext, httpRequestId);
@@ -248,15 +250,6 @@ function getPageContextHttpResponseError(err, pageContextInit, pageContext) {
248
250
  });
249
251
  return pageContextWithError;
250
252
  }
251
- function getPageContextHttpResponseFavicon404(pageContextInit) {
252
- const pageContext = createPageContext(pageContextInit);
253
- const httpResponse = createHttpResponseFavicon404();
254
- objectAssign(pageContext, {
255
- httpResponse
256
- });
257
- checkType(pageContext);
258
- return pageContext;
259
- }
260
253
  function createPageContext(pageContextInit) {
261
254
  const pageContext = {
262
255
  _isPageContextObject: true
@@ -337,7 +330,6 @@ function assertIsNotViteRequest(urlPathname, urlOriginal) {
337
330
  assertUsage(false, `${pc.code('renderPage(pageContextInit)')} called with ${pc.code(`pageContextInit.urlOriginal===${JSON.stringify(urlOriginal)}`)} which is unexpected because the URL ${pc.bold(urlOriginal)} should have already been handled by the development middleware: make sure the ${pc.cyan('createDevMiddleware()')} middleware is executed *before* the ${pc.cyan('renderPage()')} middleware, see ${pc.underline('https://vike.dev/renderPage')}`);
338
331
  }
339
332
  async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
340
- const { baseServer } = resolveBaseRuntime(globalContext);
341
333
  const { trailingSlash, disableUrlNormalization } = globalContext.config;
342
334
  if (disableUrlNormalization)
343
335
  return null;
@@ -345,7 +337,7 @@ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
345
337
  const { isPageContextRequest } = handlePageContextRequestUrl(urlOriginal);
346
338
  if (isPageContextRequest)
347
339
  return null;
348
- const urlNormalized = normalizeUrlPathname(urlOriginal, trailingSlash ?? false, baseServer);
340
+ const urlNormalized = normalizeUrlPathname(urlOriginal, trailingSlash ?? false, globalContext.baseServer);
349
341
  if (!urlNormalized)
350
342
  return null;
351
343
  logRuntimeInfo?.(`URL normalized from ${pc.cyan(urlOriginal)} to ${pc.cyan(urlNormalized)} (https://vike.dev/url-normalization)`, httpRequestId, 'info');
@@ -355,8 +347,7 @@ async function normalizeUrl(pageContextInit, globalContext, httpRequestId) {
355
347
  return pageContextHttpResponse;
356
348
  }
357
349
  async function getPermanentRedirect(pageContextInit, globalContext, httpRequestId) {
358
- const { baseServer } = resolveBaseRuntime(globalContext);
359
- const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, baseServer);
350
+ const urlWithoutBase = removeBaseServer(pageContextInit.urlOriginal, globalContext.baseServer);
360
351
  let origin = null;
361
352
  let urlTargetExternal = null;
362
353
  let urlTarget = modifyUrlPathname(urlWithoutBase, (urlPathname) => {
@@ -387,9 +378,8 @@ async function getPermanentRedirect(pageContextInit, globalContext, httpRequestI
387
378
  }
388
379
  if (normalize(urlTarget) === normalize(urlWithoutBase))
389
380
  return null;
390
- const { baseServer } = resolveBaseRuntime(globalContext);
391
381
  if (!originChanged)
392
- urlTarget = prependBase(urlTarget, baseServer);
382
+ urlTarget = prependBase(urlTarget, globalContext.baseServer);
393
383
  assert(urlTarget !== pageContextInit.urlOriginal);
394
384
  }
395
385
  logRuntimeInfo?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
@@ -452,10 +442,35 @@ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit, globalConte
452
442
  assert(pageContextAbort.abortStatusCode);
453
443
  return { pageContextAbort };
454
444
  }
455
- async function assertBaseUrl(pageContextInit, globalContext) {
456
- const { baseServer } = resolveBaseRuntime(globalContext);
445
+ async function checkBaseUrl(pageContextInit, globalContext) {
446
+ const { baseServer } = globalContext;
457
447
  const { urlOriginal } = pageContextInit;
458
- const { urlWithoutPageContextRequestSuffix } = handlePageContextRequestUrl(urlOriginal);
459
- const { hasBaseServer } = parseUrl(urlWithoutPageContextRequestSuffix, baseServer);
460
- assertUsage(hasBaseServer, `${pc.code('renderPage(pageContextInit)')} (https://vike.dev/renderPage) called with ${pc.code(`pageContextInit.urlOriginal===${JSON.stringify(urlOriginal)}`)} which doesn't start with Base URL ${pc.code(baseServer)} (https://vike.dev/base-url)`);
448
+ const { isBaseMissing } = parseUrl(urlOriginal, baseServer);
449
+ if (!isBaseMissing)
450
+ return;
451
+ const pageContext = createPageContext(pageContextInit);
452
+ const httpResponse = createHttpResponseBaseIsMissing(urlOriginal, baseServer);
453
+ objectAssign(pageContext, {
454
+ httpResponse,
455
+ isBaseMissing: true
456
+ });
457
+ checkType(pageContext);
458
+ return pageContext;
459
+ }
460
+ function renderInvalidRequest(pageContextInit) {
461
+ const urlPathnameWithBase = parseUrl(pageContextInit.urlOriginal, '/').pathname;
462
+ assertIsNotViteRequest(urlPathnameWithBase, pageContextInit.urlOriginal);
463
+ if (urlPathnameWithBase.endsWith('/favicon.ico')) {
464
+ const pageContext = createPageContext(pageContextInit);
465
+ const httpResponse = createHttpResponseFavicon404();
466
+ objectAssign(pageContext, { httpResponse });
467
+ checkType(pageContext);
468
+ return pageContext;
469
+ }
470
+ return null;
471
+ }
472
+ function renderInvalidVikeConfig(err, pageContextInit, httpRequestId) {
473
+ logRuntimeInfo?.(pc.bold(pc.red('Error while loading a Vike config file, see error above.')), httpRequestId, 'error');
474
+ const pageContextWithError = getPageContextHttpResponseError(err, pageContextInit, null);
475
+ return pageContextWithError;
461
476
  }
@@ -0,0 +1 @@
1
+ export default function universalVikeHandler(request: Request, context: Record<string, unknown>, runtime: Record<string, unknown>): Promise<Response>;
@@ -0,0 +1,11 @@
1
+ import { renderPage } from './index.js';
2
+ export default async function universalVikeHandler(request, context, runtime) {
3
+ const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers };
4
+ const pageContext = await renderPage(pageContextInit);
5
+ const response = pageContext.httpResponse;
6
+ const readable = response.getReadableWebStream();
7
+ return new Response(readable, {
8
+ status: response.statusCode,
9
+ headers: response.headers
10
+ });
11
+ }
@@ -1,15 +1,7 @@
1
1
  export { resolveBase };
2
- export { resolveBaseRuntime };
3
- export { resolveBaseFromResolvedConfig };
4
- import type { ResolvedConfig } from 'vite';
5
- import type { GlobalContext } from '../runtime/globalContext.js';
6
- declare function resolveBaseFromResolvedConfig(baseServer: string | null, baseAssets: string | null, config: ResolvedConfig): {
7
- baseServer: string;
8
- baseAssets: string;
9
- };
2
+ export type { BaseUrlsResolved };
10
3
  type BaseUrlsResolved = {
11
4
  baseServer: string;
12
5
  baseAssets: string;
13
6
  };
14
- declare function resolveBaseRuntime(globalContext: GlobalContext): BaseUrlsResolved;
15
7
  declare function resolveBase(baseViteOriginal: string | null, baseServerUnresolved: string | null, baseAssetsUnresolved: string | null): BaseUrlsResolved;
@@ -1,19 +1,6 @@
1
1
  export { resolveBase };
2
- export { resolveBaseRuntime };
3
- export { resolveBaseFromResolvedConfig };
4
2
  import { assert, assertUsage, isBaseServer, isBaseAssets } from './utils.js';
5
3
  import pc from '@brillout/picocolors';
6
- function resolveBaseFromResolvedConfig(baseServer, baseAssets, config) {
7
- let baseViteOriginal = config._baseViteOriginal;
8
- assert(baseViteOriginal === null || typeof baseViteOriginal == 'string');
9
- return resolveBase(baseViteOriginal, baseServer, baseAssets);
10
- }
11
- function resolveBaseRuntime(globalContext) {
12
- const baseViteOriginal = globalContext.viteConfigRuntime._baseViteOriginal;
13
- const baseServerUnresolved = globalContext.config.baseServer ?? null;
14
- const baseAssetsUnresolved = globalContext.config.baseAssets ?? null;
15
- return resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved);
16
- }
17
4
  function resolveBase(baseViteOriginal, baseServerUnresolved, baseAssetsUnresolved) {
18
5
  if (baseViteOriginal === '/__UNSET__')
19
6
  baseViteOriginal = null;
@@ -1,14 +1,14 @@
1
1
  export { getPageConfigsRuntime };
2
2
  export { getAllPageIds };
3
3
  import type { PageFile } from './getPageFiles.js';
4
- import { type ConfigUserFriendly, type PageConfigsUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
4
+ import { type PageConfigUserFriendly, type PageConfigsUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
5
5
  import type { PageConfigGlobalRuntime, PageConfigRuntime } from './page-configs/PageConfig.js';
6
6
  declare function getPageConfigsRuntime(virtualFileExports: unknown): {
7
7
  pageFilesAll: PageFile[];
8
8
  allPageIds: string[];
9
9
  pageConfigs: PageConfigRuntime[];
10
10
  pageConfigGlobal: PageConfigGlobalRuntime;
11
- globalConfig: ConfigUserFriendly;
11
+ globalConfig: PageConfigUserFriendly;
12
12
  pageConfigsUserFriendly: PageConfigsUserFriendly;
13
13
  };
14
14
  declare function getAllPageIds(pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[]): string[];
@@ -1,21 +1,15 @@
1
1
  export { getPageConfigsRuntime };
2
2
  export { getAllPageIds };
3
3
  import { parseGlobResults } from './getPageFiles/parseGlobResults.js';
4
- import { getPageConfigUserFriendlyNew } from './page-configs/getPageConfigUserFriendly.js';
4
+ import { getPageConfigGlobalUserFriendly, getPageConfigUserFriendly } from './page-configs/getPageConfigUserFriendly.js';
5
5
  import { unique } from './utils.js';
6
6
  function getPageConfigsRuntime(virtualFileExports) {
7
7
  const { pageFilesAll, pageConfigs, pageConfigGlobal } = parseGlobResults(virtualFileExports);
8
8
  const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
9
9
  // TODO/now: re-use this call, instead of calling it twice
10
- const globalConfig = getPageConfigUserFriendlyNew(pageConfigGlobal);
11
- // TODO/now DEDUPE
10
+ const globalConfig = getPageConfigGlobalUserFriendly({ pageConfigGlobalValues: pageConfigGlobal.configValues });
12
11
  const pageConfigsUserFriendly = Object.fromEntries(pageConfigs.map((pageConfig) => {
13
- const configValues = { ...pageConfigGlobal.configValues, ...pageConfig.configValues };
14
- const page = {
15
- ...getPageConfigUserFriendlyNew({ configValues }),
16
- route: pageConfig.routeFilesystem?.routeString ?? null
17
- };
18
- return [pageConfig.pageId, page];
12
+ return getPageConfigUserFriendly(pageConfigGlobal.configValues, pageConfig, pageConfig.configValues);
19
13
  }));
20
14
  return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig, pageConfigsUserFriendly };
21
15
  }
@@ -6,7 +6,7 @@ import { urlToFile } from '../utils/urlToFile.js';
6
6
  const pageContextJsonFileExtension = '.pageContext.json';
7
7
  // `/some-base-url/index.pageContext.json` instead of `/some-base-url.pageContext.json` in order to comply to common reverse proxy setups, see https://github.com/vikejs/vike/issues/443
8
8
  const doNotCreateExtraDirectory = false;
9
- // See node/renderPage/handlePageContextRequestUrl.ts
9
+ // See also node/renderPage/handlePageContextRequestUrl.ts
10
10
  function getPageContextRequestUrl(url) {
11
11
  const pageContextRequestUrl = urlToFile(url, pageContextJsonFileExtension, doNotCreateExtraDirectory);
12
12
  return pageContextRequestUrl;