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,7 +4,7 @@ export type { PreloadFilter };
4
4
  export type { InjectFilterEntry };
5
5
  import type { PageContextInjectAssets } from '../injectAssets.js';
6
6
  import type { StreamFromReactStreamingPackage } from '../stream/react-streaming.js';
7
- import type { PageAsset } from '../../renderPage/getPageAssets.js';
7
+ import type { PageAsset } from '../../getPageAssets.js';
8
8
  type PreloadFilter = null | ((assets: InjectFilterEntry[]) => InjectFilterEntry[]);
9
9
  type PreloadFilterInject = false | 'HTML_BEGIN' | 'HTML_END';
10
10
  /** Filter what assets vike injects in the HTML.
@@ -1,15 +1,15 @@
1
1
  export { getHtmlTags };
2
- import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../utils.js';
2
+ import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../../utils.js';
3
3
  import { getGlobalContextClientSerialized, getPageContextClientSerialized, } from '../serializeContext.js';
4
4
  import { sanitizeJson } from './sanitizeJson.js';
5
5
  import { inferAssetTag, inferPreloadTag } from './inferHtmlTags.js';
6
6
  import { mergeScriptTags } from './mergeScriptTags.js';
7
- import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
8
- import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfigValueRuntime.js';
7
+ import { getPageConfig } from '../../../../../shared/page-configs/helpers.js';
8
+ import { getConfigValueRuntime } from '../../../../../shared/page-configs/getConfigValueRuntime.js';
9
9
  import pc from '@brillout/picocolors';
10
- import { getConfigDefinedAt } from '../../../../shared/page-configs/getConfigDefinedAt.js';
11
- import { htmlElementId_globalContext, htmlElementId_pageContext } from '../../../../shared/htmlElementIds.js';
12
- import { isFontFallback } from '../../renderPage/isFontFallback.js';
10
+ import { getConfigDefinedAt } from '../../../../../shared/page-configs/getConfigDefinedAt.js';
11
+ import { htmlElementId_globalContext, htmlElementId_pageContext } from '../../../../../shared/htmlElementIds.js';
12
+ import { isFontFallback } from '../../isFontFallback.js';
13
13
  import { inferNonceAttr } from '../../csp.js';
14
14
  const stamp = '__injectFilterEntry';
15
15
  async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, isStream) {
@@ -1,5 +1,5 @@
1
1
  export { getViteDevScript };
2
- import type { GlobalContextServerInternal } from '../../globalContext.js';
2
+ import type { GlobalContextServerInternal } from '../../../globalContext.js';
3
3
  declare function getViteDevScript(pageContext: {
4
4
  _globalContext: GlobalContextServerInternal;
5
5
  }): Promise<string>;
@@ -1,5 +1,5 @@
1
1
  export { getViteDevScript };
2
- import { assert, assertUsage, assertWarning, getViteRPC } from '../../utils.js';
2
+ import { assert, assertUsage, assertWarning, getViteRPC } from '../../../utils.js';
3
3
  import pc from '@brillout/picocolors';
4
4
  const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
5
5
  async function getViteDevScript(pageContext) {
@@ -1,10 +1,10 @@
1
1
  export { inferAssetTag };
2
2
  export { inferPreloadTag };
3
3
  export { inferEarlyHintLink };
4
- export { scriptAttrs };
5
- import type { PageAsset } from '../../renderPage/getPageAssets.js';
4
+ export { scriptCommonAttrs };
5
+ import type { PageAsset } from '../../getPageAssets.js';
6
6
  import { type PageContextCspNonce } from '../../csp.js';
7
- declare const scriptAttrs = "type=\"module\" async";
7
+ declare const scriptCommonAttrs = "type=\"module\" async";
8
8
  declare function inferPreloadTag(pageAsset: PageAsset): string;
9
9
  declare function inferAssetTag(pageAsset: PageAsset, pageContext: PageContextCspNonce): string;
10
10
  declare function inferEarlyHintLink(pageAsset: PageAsset): string;
@@ -1,12 +1,11 @@
1
1
  export { inferAssetTag };
2
2
  export { inferPreloadTag };
3
3
  export { inferEarlyHintLink };
4
- export { scriptAttrs };
5
- import { assert } from '../../utils.js';
4
+ export { scriptCommonAttrs };
5
+ import { assert } from '../../../utils.js';
6
6
  import { inferNonceAttr } from '../../csp.js';
7
- // TODO/now rename scriptAttrs scriptCommonAttrs
8
7
  // 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
9
- const scriptAttrs = 'type="module" async';
8
+ const scriptCommonAttrs = 'type="module" async';
10
9
  function inferPreloadTag(pageAsset) {
11
10
  const { src, assetType, mediaType } = pageAsset;
12
11
  const rel = getRel(pageAsset);
@@ -27,7 +26,7 @@ function inferAssetTag(pageAsset, pageContext) {
27
26
  if (assetType === 'script') {
28
27
  assert(mediaType === 'text/javascript');
29
28
  const nonceAttr = inferNonceAttr(pageContext);
30
- return `<script src="${src}" ${scriptAttrs}${nonceAttr}></script>`;
29
+ return `<script src="${src}" ${scriptCommonAttrs}${nonceAttr}></script>`;
31
30
  }
32
31
  if (assetType === 'style') {
33
32
  // WARNING: if changing following line, then also update https://github.com/vikejs/vike/blob/fae90a15d88e5e87ca9fcbb54cf2dc8773d2f229/vike/client/shared/removeFoucBuster.ts#L29
@@ -1,5 +1,5 @@
1
1
  export { injectAssets__public };
2
- import { assertUsage, assertWarning, castProp, hasProp } from '../../utils.js';
2
+ import { assertUsage, assertWarning, castProp, hasProp } from '../../../utils.js';
3
3
  import { injectHtmlTagsToString } from '../injectAssets.js';
4
4
  // TO-DO/next-major-release: remove
5
5
  async function injectAssets__public(htmlString, pageContext) {
@@ -6,7 +6,7 @@ export { joinHtmlTags };
6
6
  // Only needed for unit tests
7
7
  export { injectAtOpeningTag };
8
8
  export { injectAtClosingTag };
9
- import { assert, assertUsage, slice } from '../../utils.js';
9
+ import { assert, assertUsage, slice } from '../../../utils.js';
10
10
  function injectHtmlTags(htmlString, htmlTags, position) {
11
11
  const htmlFragment = joinHtmlTags(htmlTags.filter((h) => h.position === position));
12
12
  if (htmlFragment) {
@@ -1,7 +1,7 @@
1
1
  export { mergeScriptTags };
2
2
  import { inferNonceAttr } from '../../csp.js';
3
- import { assert } from '../../utils.js';
4
- import { scriptAttrs } from './inferHtmlTags.js';
3
+ import { assert } from '../../../utils.js';
4
+ import { scriptCommonAttrs } from './inferHtmlTags.js';
5
5
  const scriptRE = /(<script\b(?:\s[^>]*>|>))(.*?)<\/script>/gims;
6
6
  const srcRE = /\bsrc\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
7
7
  const typeRE = /\btype\s*=\s*(?:"([^"]+)"|'([^']+)'|([^\s'">]+))/im;
@@ -35,7 +35,7 @@ function mergeScriptTags(scriptTagsHtml, pageContext) {
35
35
  });
36
36
  if (contents.length > 0) {
37
37
  const nonceAttr = inferNonceAttr(pageContext);
38
- scriptTag += `<script ${scriptAttrs}${nonceAttr}>\n${contents.join('\n')}\n</script>`;
38
+ scriptTag += `<script ${scriptCommonAttrs}${nonceAttr}>\n${contents.join('\n')}\n</script>`;
39
39
  }
40
40
  }
41
41
  }
@@ -2,12 +2,12 @@ export { injectHtmlTagsToString };
2
2
  export { injectHtmlTagsToStream };
3
3
  export type { PageContextInjectAssets };
4
4
  export type { PageContextPromise };
5
- import type { PageAsset } from '../renderPage/getPageAssets.js';
5
+ import type { PageAsset } from '../getPageAssets.js';
6
6
  import type { HtmlPart } from './renderHtml.js';
7
7
  import { type PreloadFilter } from './injectAssets/getHtmlTags.js';
8
8
  import type { StreamFromReactStreamingPackage } from './stream/react-streaming.js';
9
9
  import type { PageContextSerialization } from './serializeContext.js';
10
- import type { GlobalContextServerInternal } from '../globalContext.js';
10
+ import type { GlobalContextServerInternal } from '../../globalContext.js';
11
11
  type PageContextInjectAssets = {
12
12
  urlPathname: string;
13
13
  __getPageAssets: () => Promise<PageAsset[]>;
@@ -1,7 +1,7 @@
1
1
  export { injectHtmlTagsToString };
2
2
  export { injectHtmlTagsToStream };
3
- import { assert, isCallable, isPromise } from '../utils.js';
4
- import { assertPageContextProvidedByUser } from '../../../shared/assertPageContextProvidedByUser.js';
3
+ import { assert, isCallable, isPromise } from '../../utils.js';
4
+ import { assertPageContextProvidedByUser } from '../../../../shared/assertPageContextProvidedByUser.js';
5
5
  import { joinHtmlTags, injectHtmlTags, createHtmlHeadIfMissing, injectHtmlTagsUsingStream, } from './injectAssets/injectHtmlTags.js';
6
6
  import { getHtmlTags } from './injectAssets/getHtmlTags.js';
7
7
  import { getViteDevScript } from './injectAssets/getViteDevScript.js';
@@ -1,7 +1,7 @@
1
1
  export { getPropVal };
2
2
  export { setPropVal };
3
3
  export { getPropKeys };
4
- import { isObject } from '../utils.js';
4
+ import { isObject } from '../../utils.js';
5
5
  // Get a nested property from an object using a dot-separated path such as 'user.id'
6
6
  function getPropVal(obj, prop) {
7
7
  const keys = getPropKeys(prop);
@@ -9,7 +9,7 @@ export type { DocumentHtml };
9
9
  export type { TemplateWrapped };
10
10
  import type { PageContextInjectAssets } from './injectAssets.js';
11
11
  import { StreamProviderAny, StreamTypePatch, StreamProviderNormalized } from './stream.js';
12
- import type { PageAsset } from '../renderPage/getPageAssets.js';
12
+ import type { PageAsset } from '../getPageAssets.js';
13
13
  import type { PreloadFilter } from './injectAssets/getHtmlTags.js';
14
14
  type DocumentHtml = TemplateWrapped | EscapedString | StreamProviderAny;
15
15
  type HtmlRender = string | StreamProviderNormalized;
@@ -3,7 +3,7 @@ export { dangerouslySkipEscape };
3
3
  export { renderDocumentHtml };
4
4
  export { isDocumentHtml };
5
5
  export { getHtmlString };
6
- import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isHtml, isPromise, objectAssign, } from '../utils.js';
6
+ import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isHtml, isPromise, objectAssign, } from '../../utils.js';
7
7
  import { injectHtmlTagsToString, injectHtmlTagsToStream } from './injectAssets.js';
8
8
  import { processStream, isStream, streamToString, } from './stream.js';
9
9
  import { isStreamFromReactStreamingPackage } from './stream/react-streaming.js';
@@ -4,10 +4,10 @@ export { getGlobalContextClientSerialized };
4
4
  export type { PageContextSerialization };
5
5
  export type { PassToClient };
6
6
  export type { PassToClientPublic };
7
- import type { UrlRedirect } from '../../../shared/route/abort.js';
8
- import type { GlobalContextServerInternal } from '../globalContext.js';
9
- import type { PageContextCreated } from '../renderPage/createPageContextServerSide.js';
10
- import type { PageContextBegin } from '../renderPage.js';
7
+ import type { UrlRedirect } from '../../../../shared/route/abort.js';
8
+ import type { GlobalContextServerInternal } from '../../globalContext.js';
9
+ import type { PageContextCreated } from '../createPageContextServerSide.js';
10
+ import type { PageContextBegin } from '../../renderPage.js';
11
11
  import type { PageContextCspNonce } from '../csp.js';
12
12
  type PageContextSerialization = PageContextCreated & {
13
13
  pageId: string;
@@ -2,13 +2,13 @@ export { getPageContextClientSerialized };
2
2
  export { getPageContextClientSerializedAbort };
3
3
  export { getGlobalContextClientSerialized };
4
4
  import { stringify, isJsonSerializerError } from '@brillout/json-serializer/stringify';
5
- import { assert, assertUsage, assertWarning, getPropAccessNotation, hasProp, unique } from '../utils.js';
6
- import { isErrorPage } from '../../../shared/error-page.js';
7
- import { addIs404ToPageProps } from '../../../shared/addIs404ToPageProps.js';
5
+ import { assert, assertUsage, assertWarning, getPropAccessNotation, hasProp, unique } from '../../utils.js';
6
+ import { isErrorPage } from '../../../../shared/error-page.js';
7
+ import { addIs404ToPageProps } from '../../../../shared/addIs404ToPageProps.js';
8
8
  import pc from '@brillout/picocolors';
9
- import { NOT_SERIALIZABLE } from '../../../shared/NOT_SERIALIZABLE.js';
10
- import { pageContextInitIsPassedToClient } from '../../../shared/misc/pageContextInitIsPassedToClient.js';
11
- import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
9
+ import { NOT_SERIALIZABLE } from '../../../../shared/NOT_SERIALIZABLE.js';
10
+ import { pageContextInitIsPassedToClient } from '../../../../shared/misc/pageContextInitIsPassedToClient.js';
11
+ import { isServerSideError } from '../../../../shared/misc/isServerSideError.js';
12
12
  import { getPropKeys, getPropVal, setPropVal } from './propKeys.js';
13
13
  const passToClientBuiltInPageContext = [
14
14
  'abortReason',
@@ -2,7 +2,7 @@
2
2
  export { isStreamFromReactStreamingPackage };
3
3
  export { streamFromReactStreamingPackageToString };
4
4
  export { getStreamOfReactStreamingPackage };
5
- import { assert, assertUsage, hasProp, isVikeReactApp } from '../../utils.js';
5
+ import { assert, assertUsage, hasProp, isVikeReactApp } from '../../../utils.js';
6
6
  import { streamPipeNodeToString, streamReadableWebToString } from '../stream.js';
7
7
  function streamFromReactStreamingPackageToString(stream) {
8
8
  if (stream.pipe) {
@@ -19,7 +19,7 @@ export { streamReadableWebToString };
19
19
  export { streamPipeNodeToString };
20
20
  export { isStreamWritableWeb };
21
21
  export { isStreamWritableNode };
22
- import { assert, assertUsage, checkType, isObject, hasProp, objectAssign, capitalizeFirstLetter, assertWarning, isCallable, createDebugger, isBug, } from '../utils.js';
22
+ import { assert, assertUsage, checkType, isObject, hasProp, objectAssign, capitalizeFirstLetter, assertWarning, isCallable, createDebugger, isBug, } from '../../utils.js';
23
23
  import { getStreamOfReactStreamingPackage, isStreamFromReactStreamingPackage, streamFromReactStreamingPackageToString, } from './stream/react-streaming.js';
24
24
  import { import_ } from '@brillout/import';
25
25
  import pc from '@brillout/picocolors';
@@ -1,11 +1,12 @@
1
1
  export { loadPageConfigsLazyServerSide };
2
2
  export type { PageContext_loadPageConfigsLazyServerSide };
3
3
  export type { PageConfigsLazy };
4
- import { type VikeConfigPublicPageLazyLoaded } from '../../../shared/getPageFiles.js';
4
+ export type { PageContextAfterPageEntryLoaded };
5
+ import { type PageContextConfig } from '../../../shared/getPageFiles.js';
5
6
  import { PromiseType } from '../utils.js';
6
7
  import { type PageAsset } from './getPageAssets.js';
7
8
  import type { PageConfigRuntime } from '../../../types/PageConfig.js';
8
- import type { PassToClient } from '../html/serializeContext.js';
9
+ import type { PassToClient } from './html/serializeContext.js';
9
10
  import type { PageContextAfterRoute } from '../../../shared/route/index.js';
10
11
  import type { PageContextCreated } from './createPageContextServerSide.js';
11
12
  type PageContext_loadPageConfigsLazyServerSide = PageContextCreated & PageContextAfterRoute & {
@@ -24,23 +25,51 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
24
25
  headers?: Record<string, string>;
25
26
  } & {
26
27
  _globalContext: {
27
- isGlobalContext: true;
28
- _isOriginalObject: true;
29
- _virtualFileExportsGlobalEntry: unknown;
30
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
31
- _pageConfigs: PageConfigRuntime[];
32
- _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
33
- _allPageIds: string[];
34
- _vikeConfigPublicGlobal: {
28
+ _globalConfigPublic: {
29
+ pages: {
30
+ [k: string]: {
31
+ config: import("../../../types/index.js").ConfigResolved;
32
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
33
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
34
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
35
+ } & ({
36
+ route: import("../../../types/Config.js").Route;
37
+ isErrorPage?: undefined;
38
+ } | {
39
+ route?: undefined;
40
+ isErrorPage: true;
41
+ });
42
+ };
35
43
  config: import("../../../types/index.js").ConfigResolved;
36
44
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
37
45
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
38
46
  _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
39
47
  };
40
- config: import("../../../types/index.js").ConfigResolved;
41
48
  pages: {
42
- [k: string]: import("../../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEagerLoaded;
49
+ [k: string]: {
50
+ config: import("../../../types/index.js").ConfigResolved;
51
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
52
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
53
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
54
+ } & ({
55
+ route: import("../../../types/Config.js").Route;
56
+ isErrorPage?: undefined;
57
+ } | {
58
+ route?: undefined;
59
+ isErrorPage: true;
60
+ });
43
61
  };
62
+ config: import("../../../types/index.js").ConfigResolved;
63
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
64
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
65
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
66
+ isGlobalContext: true;
67
+ _isOriginalObject: true;
68
+ _virtualFileExportsGlobalEntry: unknown;
69
+ _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
70
+ _pageConfigs: PageConfigRuntime[];
71
+ _pageConfigGlobal: import("../../../types/PageConfig.js").PageConfigGlobalRuntime;
72
+ _allPageIds: string[];
44
73
  } & (({
45
74
  _isProduction: false;
46
75
  _isPrerendering: false;
@@ -92,6 +121,20 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
92
121
  _urlHandler: ((url: string) => string) | null;
93
122
  isClientSideNavigation: boolean;
94
123
  } & {
124
+ pages: {
125
+ [k: string]: {
126
+ config: import("../../../types/index.js").ConfigResolved;
127
+ _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
128
+ _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
129
+ _from: import("../../../shared/page-configs/resolveVikeConfigPublic.js").From;
130
+ } & ({
131
+ route: import("../../../types/Config.js").Route;
132
+ isErrorPage?: undefined;
133
+ } | {
134
+ route?: undefined;
135
+ isErrorPage: true;
136
+ });
137
+ };
95
138
  config: import("../../../types/index.js").ConfigResolved;
96
139
  _source: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Source;
97
140
  _sources: import("../../../shared/page-configs/resolveVikeConfigPublic.js").Sources;
@@ -107,17 +150,19 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
107
150
  pageId: string;
108
151
  } & {
109
152
  _pageConfig: PageConfigRuntime | null;
110
- } & {
111
- _pageConfig: null | PageConfigRuntime;
112
- } & VikeConfigPublicPageLazyLoaded & {
153
+ } & PageContextConfig & {
113
154
  _pageConfig: null | PageConfigRuntime;
114
155
  } & {
115
- cspNonce: string;
156
+ cspNonce: string | null;
116
157
  } & {
117
158
  Page: unknown;
118
159
  _isHtmlOnly: boolean;
119
160
  _passToClient: PassToClient;
161
+ } & {
120
162
  headersResponse: Headers;
121
163
  } & {
122
164
  __getPageAssets: () => Promise<PageAsset[]>;
123
165
  }>;
166
+ type PageContextAfterPageEntryLoaded = PageContext_loadPageConfigsLazyServerSide & {
167
+ _pageConfig: null | PageConfigRuntime;
168
+ } & PageContextConfig;
@@ -1,21 +1,21 @@
1
1
  export { loadPageConfigsLazyServerSide };
2
2
  import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
- import { resolveVikeConfigPublicPageLazyLoaded } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
3
+ import { resolvePageContextConfig } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
4
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
- import { assertUsage, assertWarning, hasProp, isArray, isCallable, isObject, objectAssign, updateType, } from '../utils.js';
5
+ import { assertUsage, assertWarning, hasProp, isArray, isObject, objectAssign, updateType, } from '../utils.js';
6
6
  import { getPageAssets } from './getPageAssets.js';
7
7
  import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
8
8
  import { analyzePage } from './analyzePage.js';
9
9
  import { loadAndParseVirtualFilePageEntry } from '../../../shared/page-configs/loadAndParseVirtualFilePageEntry.js';
10
10
  import { execHookServer } from './execHookServer.js';
11
- import { getCacheControl } from './getCacheControl.js';
12
- import { addCspHeader, resolvePageContextCspNone } from '../csp.js';
11
+ import { resolveHeadersResponseEarly } from './headersResponse.js';
12
+ import { resolvePageContextCspNone } from './csp.js';
13
13
  async function loadPageConfigsLazyServerSide(pageContext) {
14
14
  objectAssign(pageContext, {
15
15
  _pageConfig: findPageConfig(pageContext._globalContext._pageConfigs, pageContext.pageId),
16
16
  });
17
17
  // Load the page's + files
18
- updateType(pageContext, await loadPageUserFiles(pageContext));
18
+ objectAssign(pageContext, await loadPageUserFiles(pageContext));
19
19
  // Resolve new computed pageContext properties
20
20
  updateType(pageContext, await resolvePageContext(pageContext));
21
21
  // Execute +onCreatePageContext
@@ -59,8 +59,8 @@ async function resolvePageContext(pageContext) {
59
59
  Page: pageContext.exports.Page,
60
60
  _isHtmlOnly: isHtmlOnly,
61
61
  _passToClient: passToClient,
62
- headersResponse: await resolveHeadersResponse(pageContext),
63
62
  });
63
+ objectAssign(pageContext, await resolveHeadersResponseEarly(pageContext));
64
64
  objectAssign(pageContext, {
65
65
  __getPageAssets: async () => {
66
66
  if ('_pageAssets' in pageContext) {
@@ -103,52 +103,20 @@ async function resolvePageContext(pageContext) {
103
103
  return pageContext;
104
104
  }
105
105
  async function loadPageUserFiles(pageContext) {
106
- const [{ configPublicPageLazy }] = await Promise.all([
107
- loadPageUserFiles_v1Design(pageContext),
106
+ const [{ pageContextAddendum }] = await Promise.all([
107
+ (async () => {
108
+ const pageFilesServerSide = getPageFilesServerSide(pageContext._pageFilesAll, pageContext.pageId);
109
+ const isDev = !pageContext._globalContext._isProduction;
110
+ const pageConfigLoaded = !pageContext._pageConfig
111
+ ? null
112
+ : await loadAndParseVirtualFilePageEntry(pageContext._pageConfig, isDev);
113
+ await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
114
+ const pageContextAddendum = resolvePageContextConfig(pageFilesServerSide, pageConfigLoaded, pageContext._globalContext._pageConfigGlobal);
115
+ return { pageContextAddendum };
116
+ })(),
108
117
  analyzePageClientSideInit(pageContext._globalContext._pageFilesAll, pageContext.pageId, {
109
118
  sharedPageFilesAlreadyLoaded: true,
110
119
  }),
111
120
  ]);
112
- objectAssign(pageContext, configPublicPageLazy);
113
- return pageContext;
114
- }
115
- async function loadPageUserFiles_v1Design(pageContext) {
116
- const pageFilesServerSide = getPageFilesServerSide(pageContext._pageFilesAll, pageContext.pageId);
117
- const isDev = !pageContext._globalContext._isProduction;
118
- const pageConfigLoaded = !pageContext._pageConfig
119
- ? null
120
- : await loadAndParseVirtualFilePageEntry(pageContext._pageConfig, isDev);
121
- await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
122
- const configPublicPageLazy = resolveVikeConfigPublicPageLazyLoaded(pageFilesServerSide, pageConfigLoaded, pageContext._globalContext._pageConfigGlobal);
123
- return {
124
- configPublicPageLazy,
125
- pageFilesLoaded: pageFilesServerSide,
126
- };
127
- }
128
- // TODO/now: move all response headers code to headersResponse.ts
129
- async function resolveHeadersResponse(pageContext) {
130
- const headersResponse = await mergeHeaders(pageContext);
131
- if (!headersResponse.get('Cache-Control')) {
132
- const cacheControl = getCacheControl(pageContext.pageId, pageContext._globalContext._pageConfigs);
133
- if (cacheControl)
134
- headersResponse.set('Cache-Control', cacheControl);
135
- }
136
- addCspHeader(pageContext, headersResponse);
137
- return headersResponse;
138
- }
139
- async function mergeHeaders(pageContext) {
140
- const headersMerged = new Headers();
141
- await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
142
- let headersInit;
143
- if (isCallable(headers)) {
144
- headersInit = await headers(pageContext);
145
- }
146
- else {
147
- headersInit = headers;
148
- }
149
- new Headers(headersInit).forEach((value, key) => {
150
- headersMerged.append(key, value);
151
- });
152
- }));
153
- return headersMerged;
121
+ return pageContextAddendum;
154
122
  }
@@ -1,10 +1,10 @@
1
1
  export { preparePageContextForPublicUsageServer };
2
2
  export type { PageContextForPublicUsageServer };
3
3
  import type { PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
4
- import type { VikeConfigPublicPageLazyLoaded } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
4
+ import type { PageContextConfig } from '../../../shared/page-configs/resolveVikeConfigPublic.js';
5
5
  import type { PageContextInternalServer } from '../../../types/PageContext.js';
6
6
  import type { GlobalContextServerInternal } from '../globalContext.js';
7
- type PageContextForPublicUsageServer = PageContextInternalServer & VikeConfigPublicPageLazyLoaded & {
7
+ type PageContextForPublicUsageServer = PageContextInternalServer & PageContextConfig & {
8
8
  urlOriginal: string;
9
9
  /** @deprecated */
10
10
  url: string;