vike 0.4.238-commit-3c1a09d → 0.4.238-commit-d48a597

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 (135) 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 -48
  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/plugins/pluginNonRunnableDev.js +4 -3
  28. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +20 -22
  29. package/dist/cjs/shared/createGlobalContextShared.js +4 -22
  30. package/dist/cjs/shared/createPageContextShared.js +2 -2
  31. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +62 -44
  32. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  33. package/dist/cjs/utils/assert.js +16 -1
  34. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +39 -16
  35. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
  36. package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
  37. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +97 -83
  38. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +38 -10
  39. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
  40. package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
  41. package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
  42. package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  43. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +43 -28
  44. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +39 -16
  45. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
  46. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +38 -10
  47. package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
  48. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +38 -10
  49. package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
  50. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
  51. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -3
  52. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
  53. package/dist/esm/node/prerender/resolvePrerenderConfig.js +4 -3
  54. package/dist/esm/node/prerender/runPrerender.d.ts +56 -15
  55. package/dist/esm/node/runtime/globalContext.d.ts +152 -40
  56. package/dist/esm/node/runtime/index.d.ts +3 -3
  57. package/dist/esm/node/runtime/index.js +3 -3
  58. package/dist/esm/node/runtime/page-files/setup.js +3 -1
  59. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -1
  60. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -9
  61. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +52 -10
  62. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +2 -2
  63. package/dist/esm/node/runtime/renderPage/csp.d.ts +12 -0
  64. package/dist/esm/node/runtime/{csp.js → renderPage/csp.js} +13 -12
  65. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.d.ts +2 -2
  66. package/dist/esm/node/runtime/renderPage/execHookOnRenderHtml.js +2 -2
  67. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
  68. package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -1
  69. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +2 -2
  70. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  71. package/dist/esm/node/runtime/renderPage/headersResponse.d.ts +10 -0
  72. package/dist/esm/node/runtime/renderPage/headersResponse.js +46 -0
  73. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.d.ts +1 -1
  74. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getHtmlTags.js +6 -6
  75. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.d.ts +1 -1
  76. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/getViteDevScript.js +1 -1
  77. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.d.ts +3 -3
  78. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/inferHtmlTags.js +4 -5
  79. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.js +1 -1
  80. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.js +1 -1
  81. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.js +3 -3
  82. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.d.ts +2 -2
  83. package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets.js +2 -2
  84. package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.js +1 -1
  85. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.d.ts +1 -1
  86. package/dist/esm/node/runtime/{html → renderPage/html}/renderHtml.js +1 -1
  87. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.d.ts +4 -4
  88. package/dist/esm/node/runtime/{html → renderPage/html}/serializeContext.js +6 -6
  89. package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.js +1 -1
  90. package/dist/esm/node/runtime/{html → renderPage/html}/stream.js +1 -1
  91. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +61 -16
  92. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +18 -50
  93. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -2
  94. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +112 -30
  95. package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.js +2 -2
  96. package/dist/esm/node/runtime/renderPage.d.ts +52 -10
  97. package/dist/esm/node/runtime/renderPage.js +1 -1
  98. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +1 -1
  99. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +4 -3
  100. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +4 -8
  101. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +22 -24
  102. package/dist/esm/shared/createGlobalContextShared.d.ts +73 -17
  103. package/dist/esm/shared/createGlobalContextShared.js +5 -23
  104. package/dist/esm/shared/createPageContextShared.d.ts +2 -7
  105. package/dist/esm/shared/createPageContextShared.js +2 -2
  106. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  107. package/dist/esm/shared/hooks/execHook.d.ts +2 -2
  108. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  109. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +91 -31
  110. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +62 -44
  111. package/dist/esm/types/Config/ConfigResolved.d.ts +8 -0
  112. package/dist/esm/types/Config.d.ts +4 -4
  113. package/dist/esm/types/PageContext.d.ts +3 -26
  114. package/dist/esm/types/VikeNamespace.d.ts +0 -27
  115. package/dist/esm/types/index.d.ts +2 -2
  116. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  117. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  118. package/dist/esm/utils/assert.js +16 -1
  119. package/package.json +1 -1
  120. package/dist/cjs/types/Config/helpers.js +0 -2
  121. package/dist/esm/node/runtime/csp.d.ts +0 -12
  122. package/dist/esm/types/Config/PageContextConfig.d.ts +0 -15
  123. package/dist/esm/types/Config/helpers.d.ts +0 -10
  124. package/dist/esm/types/Config/helpers.js +0 -1
  125. /package/dist/cjs/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  126. /package/dist/cjs/types/Config/{PageContextConfig.js → ConfigResolved.js} +0 -0
  127. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectAssets__public.d.ts +0 -0
  128. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/injectHtmlTags.d.ts +0 -0
  129. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/mergeScriptTags.d.ts +0 -0
  130. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.d.ts +0 -0
  131. /package/dist/esm/node/runtime/{html → renderPage/html}/injectAssets/sanitizeJson.js +0 -0
  132. /package/dist/esm/node/runtime/{html → renderPage/html}/propKeys.d.ts +0 -0
  133. /package/dist/esm/node/runtime/{html → renderPage/html}/stream/react-streaming.d.ts +0 -0
  134. /package/dist/esm/node/runtime/{html → renderPage/html}/stream.d.ts +0 -0
  135. /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: await 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,52 +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
- async function resolveHeadersResponse(pageContext) {
132
- const headersResponse = await mergeHeaders(pageContext);
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
- async function mergeHeaders(pageContext) {
142
- const headersMerged = new Headers();
143
- await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
144
- let headersInit;
145
- if ((0, utils_js_1.isCallable)(headers)) {
146
- headersInit = await headers(pageContext);
147
- }
148
- else {
149
- headersInit = headers;
150
- }
151
- new Headers(headersInit).forEach((value, key) => {
152
- headersMerged.append(key, value);
153
- });
154
- }));
155
- return headersMerged;
123
+ return pageContextAddendum;
156
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.
@@ -34,15 +34,16 @@ function pluginNonRunnableDev() {
34
34
  transform(code, id) {
35
35
  if (!config._isDev)
36
36
  return;
37
- if (id !== distFileIsNonRunnableDev && id !== distFileGlobalContext)
37
+ const idWithoutQuery = id.split('?')[0];
38
+ if (idWithoutQuery !== distFileIsNonRunnableDev && idWithoutQuery !== distFileGlobalContext)
38
39
  return;
39
40
  if ((0, utils_js_1.isRunnableDevEnvironment)(this.environment))
40
41
  return;
41
42
  const { magicString, getMagicStringResult } = (0, getMagicString_js_1.getMagicString)(code, id);
42
- if (id === distFileIsNonRunnableDev) {
43
+ if (idWithoutQuery === distFileIsNonRunnableDev) {
43
44
  magicString.replaceAll('__VIKE__IS_NON_RUNNABLE_DEV', JSON.stringify(true));
44
45
  }
45
- if (id === distFileGlobalContext) {
46
+ if (idWithoutQuery === distFileGlobalContext) {
46
47
  magicString.replaceAll('__VIKE__DYNAMIC_IMPORT', 'import');
47
48
  }
48
49
  return getMagicStringResult();