vike 0.4.238-commit-5762291 → 0.4.238-commit-4c6aa0d

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 (133) hide show
  1. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +3 -2
  2. package/dist/cjs/node/runtime/index.js +3 -3
  3. package/dist/cjs/node/runtime/page-files/setup.js +3 -1
  4. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -9
  5. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  6. package/dist/cjs/node/runtime/{csp.js → renderPage/csp.js} +13 -12
  7. package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  8. package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +1 -1
  9. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  10. package/dist/cjs/node/runtime/renderPage/headersResponse.js +48 -0
  11. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +6 -6
  12. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  13. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +5 -6
  14. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  15. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  16. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +2 -2
  17. package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  18. package/dist/cjs/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  19. package/dist/cjs/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  20. package/dist/cjs/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  21. package/dist/cjs/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  22. package/dist/cjs/node/runtime/{html → renderPage/html}/stream.js +1 -1
  23. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +16 -41
  24. package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  25. package/dist/cjs/node/runtime/renderPage.js +1 -1
  26. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  27. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +20 -22
  28. package/dist/cjs/shared/createGlobalContextShared.js +4 -22
  29. package/dist/cjs/shared/createPageContextShared.js +2 -2
  30. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +62 -44
  31. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  32. package/dist/cjs/utils/assert.js +16 -1
  33. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +39 -16
  34. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  35. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  36. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +97 -83
  37. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +38 -10
  38. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  39. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  40. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  41. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  42. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +43 -28
  43. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +39 -16
  44. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  45. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +38 -10
  46. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  47. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +38 -10
  48. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  49. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  50. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -3
  51. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  52. package/dist/esm/node/prerender/resolvePrerenderConfig.js +4 -3
  53. package/dist/esm/node/prerender/runPrerender.d.ts +56 -15
  54. package/dist/esm/node/runtime/globalContext.d.ts +152 -40
  55. package/dist/esm/node/runtime/index.d.ts +3 -3
  56. package/dist/esm/node/runtime/index.js +3 -3
  57. package/dist/esm/node/runtime/page-files/setup.js +3 -1
  58. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  59. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -9
  60. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +52 -10
  61. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  62. package/dist/esm/node/runtime/renderPage/csp.d.ts +12 -0
  63. package/dist/esm/node/runtime/{csp.js → renderPage/csp.js} +13 -12
  64. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +2 -2
  65. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  66. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  67. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  68. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +2 -2
  69. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  70. package/dist/esm/node/runtime/renderPage/headersResponse.d.ts +10 -0
  71. package/dist/esm/node/runtime/renderPage/headersResponse.js +46 -0
  72. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.d.ts +1 -1
  73. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +6 -6
  74. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.d.ts +1 -1
  75. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  76. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.d.ts +3 -3
  77. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +4 -5
  78. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  79. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  80. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +3 -3
  81. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.d.ts +2 -2
  82. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  83. package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  84. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.d.ts +1 -1
  85. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  86. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.d.ts +4 -4
  87. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  88. package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  89. package/dist/esm/node/runtime/{html → renderPage/html}/stream.js +1 -1
  90. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +61 -16
  91. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +17 -42
  92. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  93. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +112 -30
  94. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  95. package/dist/esm/node/runtime/renderPage.d.ts +52 -10
  96. package/dist/esm/node/runtime/renderPage.js +1 -1
  97. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  98. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -8
  99. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +22 -24
  100. package/dist/esm/shared/createGlobalContextShared.d.ts +73 -17
  101. package/dist/esm/shared/createGlobalContextShared.js +5 -23
  102. package/dist/esm/shared/createPageContextShared.d.ts +2 -7
  103. package/dist/esm/shared/createPageContextShared.js +2 -2
  104. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  105. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  106. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  107. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +91 -31
  108. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +62 -44
  109. package/dist/esm/types/Config/ConfigResolved.d.ts +8 -0
  110. package/dist/esm/types/Config.d.ts +6 -6
  111. package/dist/esm/types/PageContext.d.ts +3 -26
  112. package/dist/esm/types/VikeNamespace.d.ts +0 -27
  113. package/dist/esm/types/index.d.ts +2 -2
  114. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  115. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  116. package/dist/esm/utils/assert.js +16 -1
  117. package/package.json +1 -1
  118. package/dist/cjs/types/Config/helpers.js +0 -2
  119. package/dist/esm/node/runtime/csp.d.ts +0 -12
  120. package/dist/esm/types/Config/PageContextConfig.d.ts +0 -15
  121. package/dist/esm/types/Config/helpers.d.ts +0 -10
  122. package/dist/esm/types/Config/helpers.js +0 -1
  123. /package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  124. /package/dist/cjs/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
  125. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.d.ts +0 -0
  126. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.d.ts +0 -0
  127. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.d.ts +0 -0
  128. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.d.ts +0 -0
  129. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  130. /package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.d.ts +0 -0
  131. /package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.d.ts +0 -0
  132. /package/dist/esm/node/runtime/{html → renderPage/html}/stream.d.ts +0 -0
  133. /package/dist/esm/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
@@ -4,6 +4,7 @@ exports.resolvePrerenderConfigGlobal = resolvePrerenderConfigGlobal;
4
4
  exports.resolvePrerenderConfigLocal = resolvePrerenderConfigLocal;
5
5
  const utils_js_1 = require("./utils.js");
6
6
  const getConfigValueBuildTime_js_1 = require("../../shared/page-configs/getConfigValueBuildTime.js");
7
+ const getConfigDefinedAt_js_1 = require("../../shared/page-configs/getConfigDefinedAt.js");
7
8
  // When setting +prerender to an object => it also enables pre-rendering
8
9
  const defaultValueForObject = true;
9
10
  function resolvePrerenderConfigGlobal(vikeConfig) {
@@ -51,9 +52,9 @@ function resolvePrerenderConfigLocal(pageConfig) {
51
52
  const values = configValue.value;
52
53
  (0, utils_js_1.assert)((0, utils_js_1.isArray)(values));
53
54
  const value = values[0];
54
- // If it's set to an object in a local config then Vike considers it a global config and it's skipped from local inheritance, thus we can assume the value to be a boolean.
55
- (0, utils_js_1.assert)(typeof value === 'boolean');
56
55
  (0, utils_js_1.assert)((0, utils_js_1.isArray)(configValue.definedAtData));
56
+ const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAt)('Config', 'prerender', configValue.definedAtData);
57
+ (0, utils_js_1.assertUsage)(typeof value === 'boolean', `${configDefinedAt} must be a boolean (it isn't defined at a global location)`);
57
58
  const prerenderConfigLocal = { value };
58
59
  return prerenderConfigLocal;
59
60
  }
@@ -23,10 +23,10 @@ const assert_js_1 = require("../../utils/assert.js");
23
23
  (0, assert_js_1.assert)(!(0, isBrowser_js_1.isBrowser)());
24
24
  var renderPage_js_1 = require("./renderPage.js");
25
25
  Object.defineProperty(exports, "renderPage", { enumerable: true, get: function () { return renderPage_js_1.renderPage; } });
26
- var renderHtml_js_1 = require("./html/renderHtml.js");
26
+ var renderHtml_js_1 = require("./renderPage/html/renderHtml.js");
27
27
  Object.defineProperty(exports, "escapeInject", { enumerable: true, get: function () { return renderHtml_js_1.escapeInject; } });
28
28
  Object.defineProperty(exports, "dangerouslySkipEscape", { enumerable: true, get: function () { return renderHtml_js_1.dangerouslySkipEscape; } });
29
- var stream_js_1 = require("./html/stream.js");
29
+ var stream_js_1 = require("./renderPage/html/stream.js");
30
30
  Object.defineProperty(exports, "pipeWebStream", { enumerable: true, get: function () { return stream_js_1.pipeWebStream; } });
31
31
  Object.defineProperty(exports, "pipeNodeStream", { enumerable: true, get: function () { return stream_js_1.pipeNodeStream; } });
32
32
  Object.defineProperty(exports, "pipeStream", { enumerable: true, get: function () { return stream_js_1.pipeStream; } });
@@ -42,7 +42,7 @@ Object.defineProperty(exports, "createDevMiddleware", { enumerable: true, get: f
42
42
  // TO-DO/next-major-release: remove
43
43
  // Deprecated exports
44
44
  __exportStar(require("../../types/index-dreprecated.js"), exports);
45
- var injectAssets__public_js_1 = require("./html/injectAssets/injectAssets__public.js");
45
+ var injectAssets__public_js_1 = require("./renderPage/html/injectAssets/injectAssets__public.js");
46
46
  Object.defineProperty(exports, "_injectAssets", { enumerable: true, get: function () { return injectAssets__public_js_1.injectAssets__public; } });
47
47
  var createPageRenderer_js_1 = require("../createPageRenderer.js");
48
48
  Object.defineProperty(exports, "createPageRenderer", { enumerable: true, get: function () { return createPageRenderer_js_1.createPageRenderer; } });
@@ -1,3 +1,5 @@
1
1
  "use strict";
2
- // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
2
+ // TO-DO/eventually: remove
3
+ // - This was used by some older Vike extensions made by Joël (I believe vite-plugin-vercel)
4
+ // - See also https://github.com/vikejs/vike/issues/2122
3
5
  // This doesn't do anything anymore. (It's kept to avoid introducing a breaking change.)
@@ -12,7 +12,7 @@ const error_page_js_1 = require("../../../shared/error-page.js");
12
12
  const getHttpResponseBody_js_1 = require("./getHttpResponseBody.js");
13
13
  const getEarlyHints_js_1 = require("./getEarlyHints.js");
14
14
  const assertNoInfiniteHttpRedirect_js_1 = require("./createHttpResponse/assertNoInfiniteHttpRedirect.js");
15
- const getCacheControl_js_1 = require("./getCacheControl.js");
15
+ const headersResponse_js_1 = require("./headersResponse.js");
16
16
  async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
17
17
  let statusCode = pageContext.abortStatusCode;
18
18
  if (!statusCode) {
@@ -30,14 +30,7 @@ async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
30
30
  }
31
31
  }
32
32
  const earlyHints = (0, getEarlyHints_js_1.getEarlyHints)(await pageContext.__getPageAssets());
33
- const headers = [];
34
- const headersResponse = pageContext.headersResponse || new Headers();
35
- headersResponse.forEach((value, key) => {
36
- headers.push([key, value]);
37
- });
38
- // An 5xx error page shouldn't be cached (it should be temporary)
39
- if (statusCode >= 500)
40
- headersResponse.set('Cache-Control', getCacheControl_js_1.cacheControlDisable);
33
+ const headers = (0, headersResponse_js_1.resolveHeadersResponseFinal)(pageContext, statusCode);
41
34
  return createHttpResponse(statusCode, 'text/html;charset=utf-8', headers, htmlRender, earlyHints, renderHook);
42
35
  }
43
36
  function createHttpResponse404(errMsg404) {
@@ -19,7 +19,7 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
19
19
  _urlHandler: args.ssr?.urlHandler ?? null,
20
20
  isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
21
21
  });
22
- (0, utils_js_1.objectAssign)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
22
+ (0, utils_js_1.objectAssign)(pageContextCreated, globalContext._globalConfigPublic);
23
23
  // pageContext.urlParsed
24
24
  const pageContextUrlComputed = (0, getPageContextUrlComputed_js_1.getPageContextUrlComputed)(pageContextCreated);
25
25
  (0, utils_js_1.objectAssign)(pageContextCreated, pageContextUrlComputed);
@@ -40,7 +40,7 @@ function createPageContextServerSide(pageContextInit, globalContext, args) {
40
40
  }
41
41
  (0, utils_js_1.objectAssign)(pageContextCreated, { headers });
42
42
  }
43
- const pageContextAugmented = (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
43
+ const pageContextAugmented = (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._globalConfigPublic);
44
44
  (0, utils_js_1.updateType)(pageContextCreated, pageContextAugmented);
45
45
  return pageContextCreated;
46
46
  }
@@ -2,22 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolvePageContextCspNone = resolvePageContextCspNone;
4
4
  exports.inferNonceAttr = inferNonceAttr;
5
- exports.addCspHeader = addCspHeader;
5
+ exports.addCspResponseHeader = addCspResponseHeader;
6
6
  const import_1 = require("@brillout/import");
7
+ const utils_js_1 = require("../utils.js");
7
8
  async function resolvePageContextCspNone(pageContext) {
8
9
  if (pageContext.cspNonce)
9
- return; // already set by user e.g. `renderPage({ cspNonce: '123456789' })`
10
+ return null; // already set by user e.g. `renderPage({ cspNonce: '123456789' })`
10
11
  const { csp } = pageContext.config;
11
- if (!csp?.nonce)
12
- return;
13
- let cspNonce;
14
- if (csp.nonce === true) {
15
- cspNonce = await generateNonce();
16
- }
17
- else {
18
- cspNonce = await csp.nonce(pageContext);
12
+ const pageContextAddendum = { cspNonce: null };
13
+ if (csp?.nonce) {
14
+ if (csp.nonce === true) {
15
+ pageContextAddendum.cspNonce = await generateNonce();
16
+ }
17
+ else {
18
+ pageContextAddendum.cspNonce = await csp.nonce(pageContext);
19
+ }
19
20
  }
20
- const pageContextAddendum = { cspNonce };
21
21
  return pageContextAddendum;
22
22
  }
23
23
  // Generate a cryptographically secure nonce for Content Security Policy (CSP).
@@ -37,7 +37,8 @@ function inferNonceAttr(pageContext) {
37
37
  const nonceAttr = pageContext.cspNonce ? ` nonce="${pageContext.cspNonce}"` : '';
38
38
  return nonceAttr;
39
39
  }
40
- function addCspHeader(pageContext, headersResponse) {
40
+ function addCspResponseHeader(pageContext, headersResponse) {
41
+ (0, utils_js_1.assert)(pageContext.cspNonce === null || typeof pageContext.cspNonce === 'string'); // ensure resolvePageContextCspNone() is called before addCspResponseHeader()
41
42
  if (!pageContext.cspNonce)
42
43
  return;
43
44
  if (headersResponse.get('Content-Security-Policy'))
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.execHookOnRenderHtml = execHookOnRenderHtml;
7
- const renderHtml_js_1 = require("../html/renderHtml.js");
7
+ const renderHtml_js_1 = require("./html/renderHtml.js");
8
8
  const getHook_js_1 = require("../../../shared/hooks/getHook.js");
9
9
  const utils_js_1 = require("../utils.js");
10
- const stream_js_1 = require("../html/stream.js");
10
+ const stream_js_1 = require("./html/stream.js");
11
11
  const assertPageContextProvidedByUser_js_1 = require("../../../shared/assertPageContextProvidedByUser.js");
12
12
  const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
13
13
  const assertHookReturnedObject_js_1 = require("../../../shared/assertHookReturnedObject.js");
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getEarlyHints = getEarlyHints;
4
4
  const isFontFallback_js_1 = require("./isFontFallback.js");
5
- const inferHtmlTags_js_1 = require("../html/injectAssets/inferHtmlTags.js");
5
+ const inferHtmlTags_js_1 = require("./html/injectAssets/inferHtmlTags.js");
6
6
  function getEarlyHints(assets) {
7
7
  const earlyHints = [];
8
8
  {
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getHttpResponseBody = getHttpResponseBody;
7
7
  exports.getHttpResponseBodyStreamHandlers = getHttpResponseBodyStreamHandlers;
8
- const stream_js_1 = require("../html/stream.js");
8
+ const stream_js_1 = require("./html/stream.js");
9
9
  const utils_js_1 = require("../utils.js");
10
- const renderHtml_js_1 = require("../html/renderHtml.js");
10
+ const renderHtml_js_1 = require("./html/renderHtml.js");
11
11
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
12
12
  const streamDocs = 'See https://vike.dev/streaming for more information.';
13
13
  function getHttpResponseBody(htmlRender, renderHook) {
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveHeadersResponseEarly = resolveHeadersResponseEarly;
4
+ exports.resolveHeadersResponseFinal = resolveHeadersResponseFinal;
5
+ const csp_js_1 = require("./csp.js");
6
+ const utils_js_1 = require("../utils.js");
7
+ const getCacheControl_js_1 = require("./getCacheControl.js");
8
+ function resolveHeadersResponseFinal(pageContext, statusCode) {
9
+ const headersResponse = pageContext.headersResponse || new Headers();
10
+ // 5xx error pages are temporary and shouldn't be cached.
11
+ // This overrides any previously set Cache-Control value.
12
+ if (statusCode >= 500)
13
+ headersResponse.set('Cache-Control', getCacheControl_js_1.cacheControlDisable);
14
+ const headers = [];
15
+ headersResponse.forEach((value, key) => {
16
+ headers.push([key, value]);
17
+ });
18
+ return headers;
19
+ }
20
+ async function resolveHeadersResponseEarly(pageContext) {
21
+ const headersResponse = await resolveHeadersResponseConfig(pageContext);
22
+ if (!headersResponse.get('Cache-Control')) {
23
+ const cacheControl = (0, getCacheControl_js_1.getCacheControl)(pageContext.pageId, pageContext._globalContext._pageConfigs);
24
+ if (cacheControl)
25
+ headersResponse.set('Cache-Control', cacheControl);
26
+ }
27
+ (0, csp_js_1.addCspResponseHeader)(pageContext, headersResponse);
28
+ const pageContextAddendum = {
29
+ headersResponse,
30
+ };
31
+ return pageContextAddendum;
32
+ }
33
+ async function resolveHeadersResponseConfig(pageContext) {
34
+ const headersMerged = new Headers();
35
+ await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
36
+ let headersInit;
37
+ if ((0, utils_js_1.isCallable)(headers)) {
38
+ headersInit = await headers(pageContext);
39
+ }
40
+ else {
41
+ headersInit = headers;
42
+ }
43
+ new Headers(headersInit).forEach((value, key) => {
44
+ headersMerged.append(key, value);
45
+ });
46
+ }));
47
+ return headersMerged;
48
+ }
@@ -4,17 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getHtmlTags = getHtmlTags;
7
- const utils_js_1 = require("../../utils.js");
7
+ const utils_js_1 = require("../../../utils.js");
8
8
  const serializeContext_js_1 = require("../serializeContext.js");
9
9
  const sanitizeJson_js_1 = require("./sanitizeJson.js");
10
10
  const inferHtmlTags_js_1 = require("./inferHtmlTags.js");
11
11
  const mergeScriptTags_js_1 = require("./mergeScriptTags.js");
12
- const helpers_js_1 = require("../../../../shared/page-configs/helpers.js");
13
- const getConfigValueRuntime_js_1 = require("../../../../shared/page-configs/getConfigValueRuntime.js");
12
+ const helpers_js_1 = require("../../../../../shared/page-configs/helpers.js");
13
+ const getConfigValueRuntime_js_1 = require("../../../../../shared/page-configs/getConfigValueRuntime.js");
14
14
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
15
- const getConfigDefinedAt_js_1 = require("../../../../shared/page-configs/getConfigDefinedAt.js");
16
- const htmlElementIds_js_1 = require("../../../../shared/htmlElementIds.js");
17
- const isFontFallback_js_1 = require("../../renderPage/isFontFallback.js");
15
+ const getConfigDefinedAt_js_1 = require("../../../../../shared/page-configs/getConfigDefinedAt.js");
16
+ const htmlElementIds_js_1 = require("../../../../../shared/htmlElementIds.js");
17
+ const isFontFallback_js_1 = require("../../isFontFallback.js");
18
18
  const csp_js_1 = require("../../csp.js");
19
19
  const stamp = '__injectFilterEntry';
20
20
  async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, isStream) {
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getViteDevScript = getViteDevScript;
7
- const utils_js_1 = require("../../utils.js");
7
+ const utils_js_1 = require("../../../utils.js");
8
8
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
9
9
  const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
10
10
  async function getViteDevScript(pageContext) {
@@ -1,15 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scriptAttrs = void 0;
3
+ exports.scriptCommonAttrs = void 0;
4
4
  exports.inferAssetTag = inferAssetTag;
5
5
  exports.inferPreloadTag = inferPreloadTag;
6
6
  exports.inferEarlyHintLink = inferEarlyHintLink;
7
- const utils_js_1 = require("../../utils.js");
7
+ const utils_js_1 = require("../../../utils.js");
8
8
  const csp_js_1 = require("../../csp.js");
9
- // TODO/now rename scriptAttrs scriptCommonAttrs
10
9
  // We can't use `defer` here. With `defer`, the entry script won't start before `</body>` has been parsed, preventing progressive hydration during SSR streaming, see https://github.com/vikejs/vike/pull/1271
11
- const scriptAttrs = 'type="module" async';
12
- exports.scriptAttrs = scriptAttrs;
10
+ const scriptCommonAttrs = 'type="module" async';
11
+ exports.scriptCommonAttrs = scriptCommonAttrs;
13
12
  function inferPreloadTag(pageAsset) {
14
13
  const { src, assetType, mediaType } = pageAsset;
15
14
  const rel = getRel(pageAsset);
@@ -30,7 +29,7 @@ function inferAssetTag(pageAsset, pageContext) {
30
29
  if (assetType === 'script') {
31
30
  (0, utils_js_1.assert)(mediaType === 'text/javascript');
32
31
  const nonceAttr = (0, csp_js_1.inferNonceAttr)(pageContext);
33
- return `<script src="${src}" ${scriptAttrs}${nonceAttr}></script>`;
32
+ return `<script src="${src}" ${scriptCommonAttrs}${nonceAttr}></script>`;
34
33
  }
35
34
  if (assetType === 'style') {
36
35
  // WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L29
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.injectAssets__public = injectAssets__public;
4
- const utils_js_1 = require("../../utils.js");
4
+ const utils_js_1 = require("../../../utils.js");
5
5
  const injectAssets_js_1 = require("../injectAssets.js");
6
6
  // TO-DO/next-major-release: remove
7
7
  async function injectAssets__public(htmlString, pageContext) {
@@ -7,7 +7,7 @@ exports.createHtmlHeadIfMissing = createHtmlHeadIfMissing;
7
7
  exports.joinHtmlTags = joinHtmlTags;
8
8
  exports.injectAtOpeningTag = injectAtOpeningTag;
9
9
  exports.injectAtClosingTag = injectAtClosingTag;
10
- const utils_js_1 = require("../../utils.js");
10
+ const utils_js_1 = require("../../../utils.js");
11
11
  function injectHtmlTags(htmlString, htmlTags, position) {
12
12
  const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === position));
13
13
  if (htmlFragment) {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mergeScriptTags = mergeScriptTags;
4
4
  const csp_js_1 = require("../../csp.js");
5
- const utils_js_1 = require("../../utils.js");
5
+ const utils_js_1 = require("../../../utils.js");
6
6
  const inferHtmlTags_js_1 = require("./inferHtmlTags.js");
7
7
  const scriptRE = /(<script\b(?:\s[^>]*>|>))(.*?)<\/script>/gims;
8
8
  const srcRE = /\bsrc\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
@@ -37,7 +37,7 @@ function mergeScriptTags(scriptTagsHtml, pageContext) {
37
37
  });
38
38
  if (contents.length > 0) {
39
39
  const nonceAttr = (0, csp_js_1.inferNonceAttr)(pageContext);
40
- scriptTag += `<script ${inferHtmlTags_js_1.scriptAttrs}${nonceAttr}>\n${contents.join('\n')}\n</script>`;
40
+ scriptTag += `<script ${inferHtmlTags_js_1.scriptCommonAttrs}${nonceAttr}>\n${contents.join('\n')}\n</script>`;
41
41
  }
42
42
  }
43
43
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.injectHtmlTagsToString = injectHtmlTagsToString;
4
4
  exports.injectHtmlTagsToStream = injectHtmlTagsToStream;
5
- const utils_js_1 = require("../utils.js");
6
- const assertPageContextProvidedByUser_js_1 = require("../../../shared/assertPageContextProvidedByUser.js");
5
+ const utils_js_1 = require("../../utils.js");
6
+ const assertPageContextProvidedByUser_js_1 = require("../../../../shared/assertPageContextProvidedByUser.js");
7
7
  const injectHtmlTags_js_1 = require("./injectAssets/injectHtmlTags.js");
8
8
  const getHtmlTags_js_1 = require("./injectAssets/getHtmlTags.js");
9
9
  const getViteDevScript_js_1 = require("./injectAssets/getViteDevScript.js");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPropVal = getPropVal;
4
4
  exports.setPropVal = setPropVal;
5
5
  exports.getPropKeys = getPropKeys;
6
- const utils_js_1 = require("../utils.js");
6
+ const utils_js_1 = require("../../utils.js");
7
7
  // Get a nested property from an object using a dot-separated path such as 'user.id'
8
8
  function getPropVal(obj, prop) {
9
9
  const keys = getPropKeys(prop);
@@ -8,7 +8,7 @@ exports.dangerouslySkipEscape = dangerouslySkipEscape;
8
8
  exports.renderDocumentHtml = renderDocumentHtml;
9
9
  exports.isDocumentHtml = isDocumentHtml;
10
10
  exports.getHtmlString = getHtmlString;
11
- const utils_js_1 = require("../utils.js");
11
+ const utils_js_1 = require("../../utils.js");
12
12
  const injectAssets_js_1 = require("./injectAssets.js");
13
13
  const stream_js_1 = require("./stream.js");
14
14
  const react_streaming_js_1 = require("./stream/react-streaming.js");
@@ -7,13 +7,13 @@ exports.getPageContextClientSerialized = getPageContextClientSerialized;
7
7
  exports.getPageContextClientSerializedAbort = getPageContextClientSerializedAbort;
8
8
  exports.getGlobalContextClientSerialized = getGlobalContextClientSerialized;
9
9
  const stringify_1 = require("@brillout/json-serializer/stringify");
10
- const utils_js_1 = require("../utils.js");
11
- const error_page_js_1 = require("../../../shared/error-page.js");
12
- const addIs404ToPageProps_js_1 = require("../../../shared/addIs404ToPageProps.js");
10
+ const utils_js_1 = require("../../utils.js");
11
+ const error_page_js_1 = require("../../../../shared/error-page.js");
12
+ const addIs404ToPageProps_js_1 = require("../../../../shared/addIs404ToPageProps.js");
13
13
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
14
- const NOT_SERIALIZABLE_js_1 = require("../../../shared/NOT_SERIALIZABLE.js");
15
- const pageContextInitIsPassedToClient_js_1 = require("../../../shared/misc/pageContextInitIsPassedToClient.js");
16
- const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
14
+ const NOT_SERIALIZABLE_js_1 = require("../../../../shared/NOT_SERIALIZABLE.js");
15
+ const pageContextInitIsPassedToClient_js_1 = require("../../../../shared/misc/pageContextInitIsPassedToClient.js");
16
+ const isServerSideError_js_1 = require("../../../../shared/misc/isServerSideError.js");
17
17
  const propKeys_js_1 = require("./propKeys.js");
18
18
  const passToClientBuiltInPageContext = [
19
19
  'abortReason',
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.isStreamFromReactStreamingPackage = isStreamFromReactStreamingPackage;
5
5
  exports.streamFromReactStreamingPackageToString = streamFromReactStreamingPackageToString;
6
6
  exports.getStreamOfReactStreamingPackage = getStreamOfReactStreamingPackage;
7
- const utils_js_1 = require("../../utils.js");
7
+ const utils_js_1 = require("../../../utils.js");
8
8
  const stream_js_1 = require("../stream.js");
9
9
  function streamFromReactStreamingPackageToString(stream) {
10
10
  if (stream.pipe) {
@@ -24,7 +24,7 @@ exports.streamReadableWebToString = streamReadableWebToString;
24
24
  exports.streamPipeNodeToString = streamPipeNodeToString;
25
25
  exports.isStreamWritableWeb = isStreamWritableWeb;
26
26
  exports.isStreamWritableNode = isStreamWritableNode;
27
- const utils_js_1 = require("../utils.js");
27
+ const utils_js_1 = require("../../utils.js");
28
28
  const react_streaming_js_1 = require("./stream/react-streaming.js");
29
29
  const import_1 = require("@brillout/import");
30
30
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
@@ -10,14 +10,14 @@ const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig
10
10
  const analyzePage_js_1 = require("./analyzePage.js");
11
11
  const loadAndParseVirtualFilePageEntry_js_1 = require("../../../shared/page-configs/loadAndParseVirtualFilePageEntry.js");
12
12
  const execHookServer_js_1 = require("./execHookServer.js");
13
- const getCacheControl_js_1 = require("./getCacheControl.js");
14
- const csp_js_1 = require("../csp.js");
13
+ const headersResponse_js_1 = require("./headersResponse.js");
14
+ const csp_js_1 = require("./csp.js");
15
15
  async function loadPageConfigsLazyServerSide(pageContext) {
16
16
  (0, utils_js_1.objectAssign)(pageContext, {
17
17
  _pageConfig: (0, findPageConfig_js_1.findPageConfig)(pageContext._globalContext._pageConfigs, pageContext.pageId),
18
18
  });
19
19
  // Load the page's + files
20
- (0, utils_js_1.updateType)(pageContext, await loadPageUserFiles(pageContext));
20
+ (0, utils_js_1.objectAssign)(pageContext, await loadPageUserFiles(pageContext));
21
21
  // Resolve new computed pageContext properties
22
22
  (0, utils_js_1.updateType)(pageContext, await resolvePageContext(pageContext));
23
23
  // Execute +onCreatePageContext
@@ -61,8 +61,8 @@ async function resolvePageContext(pageContext) {
61
61
  Page: pageContext.exports.Page,
62
62
  _isHtmlOnly: isHtmlOnly,
63
63
  _passToClient: passToClient,
64
- headersResponse: resolveHeadersResponse(pageContext),
65
64
  });
65
+ (0, utils_js_1.objectAssign)(pageContext, await (0, headersResponse_js_1.resolveHeadersResponseEarly)(pageContext));
66
66
  (0, utils_js_1.objectAssign)(pageContext, {
67
67
  __getPageAssets: async () => {
68
68
  if ('_pageAssets' in pageContext) {
@@ -105,45 +105,20 @@ async function resolvePageContext(pageContext) {
105
105
  return pageContext;
106
106
  }
107
107
  async function loadPageUserFiles(pageContext) {
108
- const [{ configPublicPageLazy }] = await Promise.all([
109
- loadPageUserFiles_v1Design(pageContext),
108
+ const [{ pageContextAddendum }] = await Promise.all([
109
+ (async () => {
110
+ const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageContext._pageFilesAll, pageContext.pageId);
111
+ const isDev = !pageContext._globalContext._isProduction;
112
+ const pageConfigLoaded = !pageContext._pageConfig
113
+ ? null
114
+ : await (0, loadAndParseVirtualFilePageEntry_js_1.loadAndParseVirtualFilePageEntry)(pageContext._pageConfig, isDev);
115
+ await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
116
+ const pageContextAddendum = (0, resolveVikeConfigPublic_js_1.resolvePageContextConfig)(pageFilesServerSide, pageConfigLoaded, pageContext._globalContext._pageConfigGlobal);
117
+ return { pageContextAddendum };
118
+ })(),
110
119
  (0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._globalContext._pageFilesAll, pageContext.pageId, {
111
120
  sharedPageFilesAlreadyLoaded: true,
112
121
  }),
113
122
  ]);
114
- (0, utils_js_1.objectAssign)(pageContext, configPublicPageLazy);
115
- return pageContext;
116
- }
117
- async function loadPageUserFiles_v1Design(pageContext) {
118
- const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageContext._pageFilesAll, pageContext.pageId);
119
- const isDev = !pageContext._globalContext._isProduction;
120
- const pageConfigLoaded = !pageContext._pageConfig
121
- ? null
122
- : await (0, loadAndParseVirtualFilePageEntry_js_1.loadAndParseVirtualFilePageEntry)(pageContext._pageConfig, isDev);
123
- await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
124
- const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazyLoaded)(pageFilesServerSide, pageConfigLoaded, pageContext._globalContext._pageConfigGlobal);
125
- return {
126
- configPublicPageLazy,
127
- pageFilesLoaded: pageFilesServerSide,
128
- };
129
- }
130
- // TODO/now: move all response headers code to headersResponse.ts
131
- function resolveHeadersResponse(pageContext) {
132
- const headersResponse = mergeHeaders(pageContext.config.headersResponse);
133
- if (!headersResponse.get('Cache-Control')) {
134
- const cacheControl = (0, getCacheControl_js_1.getCacheControl)(pageContext.pageId, pageContext._globalContext._pageConfigs);
135
- if (cacheControl)
136
- headersResponse.set('Cache-Control', cacheControl);
137
- }
138
- (0, csp_js_1.addCspHeader)(pageContext, headersResponse);
139
- return headersResponse;
140
- }
141
- function mergeHeaders(headersList = []) {
142
- const headersMerged = new Headers();
143
- headersList.forEach((headers) => {
144
- new Headers(headers).forEach((value, key) => {
145
- headersMerged.append(key, value);
146
- });
147
- });
148
- return headersMerged;
123
+ return pageContextAddendum;
149
124
  }
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.renderPageAfterRoute = renderPageAfterRoute;
7
7
  exports.prerenderPage = prerenderPage;
8
8
  const error_page_js_1 = require("../../../shared/error-page.js");
9
- const renderHtml_js_1 = require("../html/renderHtml.js");
9
+ const renderHtml_js_1 = require("./html/renderHtml.js");
10
10
  const utils_js_1 = require("../utils.js");
11
- const serializeContext_js_1 = require("../html/serializeContext.js");
11
+ const serializeContext_js_1 = require("./html/serializeContext.js");
12
12
  const createHttpResponse_js_1 = require("./createHttpResponse.js");
13
13
  const loadPageConfigsLazyServerSide_js_1 = require("./loadPageConfigsLazyServerSide.js");
14
14
  const execHookOnRenderHtml_js_1 = require("./execHookOnRenderHtml.js");
@@ -18,7 +18,7 @@ const isNewError_js_1 = require("./renderPage/isNewError.js");
18
18
  const assertArguments_js_1 = require("./renderPage/assertArguments.js");
19
19
  const index_js_2 = require("./renderPage/log404/index.js");
20
20
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
21
- const serializeContext_js_1 = require("./html/serializeContext.js");
21
+ const serializeContext_js_1 = require("./renderPage/html/serializeContext.js");
22
22
  const error_page_js_1 = require("../../shared/error-page.js");
23
23
  const handleErrorWithoutErrorPage_js_1 = require("./renderPage/handleErrorWithoutErrorPage.js");
24
24
  const loadPageConfigsLazyServerSide_js_1 = require("./renderPage/loadPageConfigsLazyServerSide.js");
@@ -24,7 +24,7 @@ const getManifestFilePathRelative_js_1 = require("../../shared/getManifestFilePa
24
24
  const globalObject = (0, utils_js_1.getGlobalObject)('build/handleAssetsManifest.ts', {
25
25
  assetsJsonFilePath: undefined,
26
26
  });
27
- // true => use workaround config.build.ssrEmitAssets
27
+ // yes => use workaround config.build.ssrEmitAssets
28
28
  // false => use workaround extractAssets plugin
29
29
  function handleAssetsManifest_isFixEnabled() {
30
30
  // Allow user to toggle between the two workarounds? E.g. based on https://vike.dev/includeAssetsImportedByServer.
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getVikeConfig = getVikeConfig;
6
7
  exports.getVikeConfigInternal = getVikeConfigInternal;
7
8
  exports.getVikeConfigInternalOptional = getVikeConfigInternalOptional;
8
9
  exports.getVikeConfigInternalSync = getVikeConfigInternalSync;
@@ -12,7 +13,6 @@ exports.isV1Design = isV1Design;
12
13
  exports.getConfVal = getConfVal;
13
14
  exports.getConfigDefinitionOptional = getConfigDefinitionOptional;
14
15
  exports.getVikeConfigFromCliOrEnv = getVikeConfigFromCliOrEnv;
15
- exports.getVikeConfig = getVikeConfig;
16
16
  const utils_js_1 = require("../utils.js");
17
17
  const configDefinitionsBuiltIn_js_1 = require("./resolveVikeConfigInternal/configDefinitionsBuiltIn.js");
18
18
  const filesystemRouting_js_1 = require("./resolveVikeConfigInternal/filesystemRouting.js");
@@ -173,31 +173,26 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
173
173
  // Backwards compatibility for vike(options) in vite.config.js
174
174
  temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
175
175
  setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
176
- // global
177
- const pageConfigGlobalValues = getConfigValues(pageConfigGlobal);
178
- const vikeConfigPublicGlobal = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicGlobal)({ pageConfigGlobalValues });
179
- // pages
180
- const vikeConfigPublicPagesEager = (0, utils_js_1.objectFromEntries)(pageConfigs.map((pageConfig) => {
181
- const pageConfigValues = getConfigValues(pageConfig, true);
182
- return (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageEagerLoaded)(pageConfigGlobalValues, pageConfig, pageConfigValues);
183
- }));
176
+ const globalConfigPublic = resolveGlobalConfig(pageConfigGlobal, pageConfigs);
184
177
  const prerenderContext = resolvePrerenderContext({
185
- config: vikeConfigPublicGlobal.config,
186
- _from: vikeConfigPublicGlobal._from,
178
+ config: globalConfigPublic.config,
179
+ _from: globalConfigPublic._from,
187
180
  _pageConfigs: pageConfigs,
188
181
  });
189
182
  const vikeConfig = {
183
+ ...globalConfigPublic,
184
+ prerenderContext,
190
185
  _pageConfigs: pageConfigs,
191
186
  _pageConfigGlobal: pageConfigGlobal,
192
- config: vikeConfigPublicGlobal.config,
193
- _from: vikeConfigPublicGlobal._from,
194
- pages: vikeConfigPublicPagesEager,
195
- prerenderContext,
196
187
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
197
188
  };
198
189
  globalObject.vikeConfigSync = vikeConfig;
199
190
  return vikeConfig;
200
191
  }
192
+ function resolveGlobalConfig(pageConfigGlobal, pageConfigs) {
193
+ const globalConfigPublic = (0, resolveVikeConfigPublic_js_1.resolveGlobalConfigPublic)(pageConfigs, pageConfigGlobal, getConfigValues);
194
+ return globalConfigPublic;
195
+ }
201
196
  async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
202
197
  const plusFilesAllOrdered = Object.values(plusFilesAll)
203
198
  .flat()
@@ -361,7 +356,8 @@ function assertOnBeforeRenderEnv(pageConfig) {
361
356
  // When using Server Routing, loading a onBeforeRender() hook on the client-side hasn't any effect (the Server Routing's client runtime never calls it); it unnecessarily bloats client bundle sizes
362
357
  (0, utils_js_1.assertUsage)(!(onBeforeRenderEnv.client && !isClientRouting), `Page ${pageConfig.pageId} has an onBeforeRender() hook with env ${picocolors_1.default.cyan(JSON.stringify(onBeforeRenderEnv))} which doesn't make sense because the page is using Server Routing: onBeforeRender() can be run in the client only when using Client Routing.`);
363
358
  }
364
- function getConfigValues(pageConfig, tolerateMissingValue) {
359
+ function getConfigValues(pageConfig, isGlobalConfig) {
360
+ const tolerateMissingValue = !isGlobalConfig;
365
361
  const configValues = {};
366
362
  (0, serializeConfigValues_js_1.getConfigValuesBase)(pageConfig, { isForConfig: true }, null).forEach((entry) => {
367
363
  if (entry.configValueBase.type === 'computed') {
@@ -1128,11 +1124,15 @@ function restartViteDevServer() {
1128
1124
  (0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_disable)();
1129
1125
  }
1130
1126
  function getVikeConfigDummy(esbuildCache) {
1131
- const globalDummy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicGlobal)({ pageConfigGlobalValues: {} });
1132
1127
  const pageConfigsDummy = [];
1128
+ const pageConfigGlobalDummy = {
1129
+ configValueSources: {},
1130
+ configDefinitions: {},
1131
+ };
1132
+ const globalConfigPublicDummy = resolveGlobalConfig(pageConfigGlobalDummy, pageConfigsDummy);
1133
1133
  const prerenderContextDummy = resolvePrerenderContext({
1134
- config: globalDummy.config,
1135
- _from: globalDummy._from,
1134
+ config: globalConfigPublicDummy.config,
1135
+ _from: globalConfigPublicDummy._from,
1136
1136
  _pageConfigs: pageConfigsDummy,
1137
1137
  });
1138
1138
  const vikeConfigDummy = {
@@ -1141,9 +1141,7 @@ function getVikeConfigDummy(esbuildCache) {
1141
1141
  configDefinitions: {},
1142
1142
  configValueSources: {},
1143
1143
  },
1144
- config: globalDummy.config,
1145
- _from: globalDummy._from,
1146
- pages: {},
1144
+ ...globalConfigPublicDummy,
1147
1145
  prerenderContext: prerenderContextDummy,
1148
1146
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
1149
1147
  };