vike 0.4.235 → 0.4.236-commit-85d361d

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 (195) hide show
  1. package/dist/cjs/__internal/index.js +1 -1
  2. package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -1
  3. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  4. package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
  5. package/dist/cjs/node/cli/index.js +1 -1
  6. package/dist/cjs/node/createPageRenderer.js +1 -1
  7. package/dist/cjs/node/importBuild.js +1 -1
  8. package/dist/cjs/node/prerender/context.js +1 -1
  9. package/dist/cjs/node/prerender/index.js +1 -1
  10. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
  11. package/dist/cjs/node/prerender/runPrerender.js +9 -13
  12. package/dist/cjs/node/runtime/globalContext.js +32 -13
  13. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  14. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  15. package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
  16. package/dist/cjs/node/runtime/index-deprecated.js +1 -1
  17. package/dist/cjs/node/runtime/index.js +1 -1
  18. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  19. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
  21. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  22. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  23. package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
  24. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  25. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  26. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
  27. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  28. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  29. package/dist/cjs/node/runtime/renderPage.js +4 -6
  30. package/dist/cjs/node/vite/onLoad.js +1 -1
  31. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
  32. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  33. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  34. package/dist/cjs/node/vite/plugins/pluginCommon.js +8 -4
  35. package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
  36. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +1 -1
  37. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
  38. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
  39. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
  40. package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
  41. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  42. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  43. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  44. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  45. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  46. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  47. package/dist/cjs/shared/abort.js +1 -1
  48. package/dist/cjs/shared/createGlobalContextShared.js +20 -7
  49. package/dist/cjs/shared/createPageContextShared.js +1 -2
  50. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  51. package/dist/cjs/shared/error-page.js +3 -3
  52. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  53. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  54. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  55. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  56. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  57. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  58. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  59. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  60. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  61. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  62. package/dist/cjs/shared/getProxyForPublicUsage.js +1 -1
  63. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  64. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  65. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  66. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  67. package/dist/cjs/shared/route/abort.js +1 -1
  68. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  69. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  70. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  71. package/dist/cjs/shared/route/index.js +1 -1
  72. package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
  73. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  74. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  75. package/dist/cjs/shared/route/routing.js +1 -1
  76. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  77. package/dist/cjs/utils/assertSetup.js +8 -8
  78. package/dist/cjs/utils/debugGlob.js +1 -1
  79. package/dist/cjs/utils/parseNpmPackage.js +1 -1
  80. package/dist/esm/__internal/index.d.ts +1 -1
  81. package/dist/esm/__internal/index.js +1 -1
  82. package/dist/esm/client/node.js +1 -1
  83. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  84. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +8 -0
  85. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  86. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  87. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  88. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  89. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  90. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +2 -0
  91. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  92. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  93. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  94. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  95. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
  96. package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -1
  97. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  98. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  99. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  100. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  101. package/dist/esm/node/cli/index.js +1 -1
  102. package/dist/esm/node/createPageRenderer.js +1 -1
  103. package/dist/esm/node/importBuild.js +1 -1
  104. package/dist/esm/node/prerender/context.js +1 -1
  105. package/dist/esm/node/prerender/index.js +1 -1
  106. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  107. package/dist/esm/node/prerender/runPrerender.d.ts +2 -1
  108. package/dist/esm/node/prerender/runPrerender.js +9 -13
  109. package/dist/esm/node/runtime/globalContext.d.ts +15 -15
  110. package/dist/esm/node/runtime/globalContext.js +34 -15
  111. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  112. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  113. package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
  114. package/dist/esm/node/runtime/html/serializeContext.js +73 -15
  115. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  116. package/dist/esm/node/runtime/index.js +1 -1
  117. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  118. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  119. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
  120. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
  121. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
  122. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  123. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  124. package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
  125. package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
  126. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  127. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  128. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
  129. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
  130. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  131. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +4 -2
  132. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  133. package/dist/esm/node/runtime/renderPage.d.ts +3 -3
  134. package/dist/esm/node/runtime/renderPage.js +4 -6
  135. package/dist/esm/node/vite/index.js +1 -1
  136. package/dist/esm/node/vite/onLoad.js +1 -1
  137. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
  138. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  139. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  140. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  141. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -4
  142. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  143. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  144. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  145. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
  146. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  147. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  148. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  149. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  150. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  151. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  152. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  153. package/dist/esm/shared/RenderErrorPage.js +1 -1
  154. package/dist/esm/shared/abort.js +1 -1
  155. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  156. package/dist/esm/shared/createGlobalContextShared.js +20 -7
  157. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  158. package/dist/esm/shared/createPageContextShared.js +1 -2
  159. package/dist/esm/shared/determinePageIdOld.js +1 -1
  160. package/dist/esm/shared/error-page.js +3 -3
  161. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  162. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  163. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  164. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  165. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  166. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  167. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  168. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  169. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  170. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  171. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  172. package/dist/esm/shared/hooks/getHook.js +1 -1
  173. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  174. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  175. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  176. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  177. package/dist/esm/shared/route/abort.js +1 -1
  178. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  179. package/dist/esm/shared/route/execHookGuard.js +1 -1
  180. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  181. package/dist/esm/shared/route/index.js +1 -1
  182. package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
  183. package/dist/esm/shared/route/loadPageRoutes.js +10 -4
  184. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  185. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  186. package/dist/esm/shared/route/routing.js +1 -1
  187. package/dist/esm/types/Config.d.ts +9 -1
  188. package/dist/esm/types/PageContext.d.ts +8 -2
  189. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  190. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  191. package/dist/esm/utils/assertSetup.js +8 -8
  192. package/dist/esm/utils/debugGlob.js +1 -1
  193. package/dist/esm/utils/parseNpmPackage.js +1 -1
  194. package/package.json +3 -6
  195. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cacheControlDisable = void 0;
3
4
  exports.getCacheControl = getCacheControl;
4
- const helpers_js_1 = require("../../../../shared/page-configs/helpers.js");
5
- const getConfigValueRuntime_js_1 = require("../../../../shared/page-configs/getConfigValueRuntime.js");
6
- const defaultValue = 'no-store, max-age=0';
7
- function getCacheControl(pageId, pageConfigs, statusCode) {
8
- // TODO/v1-release: remove
5
+ const helpers_js_1 = require("../../../shared/page-configs/helpers.js");
6
+ const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
7
+ const cacheControlDisable = 'no-store, max-age=0';
8
+ exports.cacheControlDisable = cacheControlDisable;
9
+ function getCacheControl(pageId, pageConfigs) {
10
+ // TO-DO/next-major-release: remove this line
9
11
  if (pageConfigs.length === 0)
10
- return defaultValue;
11
- if (statusCode > 499)
12
- return defaultValue;
12
+ return cacheControlDisable;
13
13
  if (pageId) {
14
14
  const pageConfig = (0, helpers_js_1.getPageConfig)(pageId, pageConfigs);
15
15
  const configValue = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'cacheControl', 'string');
@@ -20,5 +20,5 @@ function getCacheControl(pageId, pageConfigs, statusCode) {
20
20
  // - Disabling caching by default is the safest strategy, because caching is problematic with authentication as described in https://github.com/vikejs/vike/issues/1275#issuecomment-1824366875
21
21
  // - Are there use cases when we don't need to disable caching?
22
22
  // - When there isn't any <script id="vike_pageContext" type="application/json"> then we can safely have caching. (We don't implement this exception because we're lazy and it's quite a rare situation.)
23
- return defaultValue;
23
+ return cacheControlDisable;
24
24
  }
@@ -61,7 +61,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
61
61
  const body = await (0, renderHtml_js_1.getHtmlString)(htmlRender);
62
62
  return body;
63
63
  },
64
- // TODO/v1-release: remove
64
+ // TO-DO/next-major-release: remove
65
65
  async getNodeStream() {
66
66
  (0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.getNodeStream()` is outdated, use `pageContext.httpResponse.getReadableNodeStream()` instead. ' +
67
67
  streamDocs, { onlyOnce: true, showStackTrace: true });
@@ -71,7 +71,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
71
71
  }
72
72
  return nodeStream;
73
73
  },
74
- // TODO/v1-release: remove
74
+ // TO-DO/next-major-release: remove
75
75
  getWebStream() {
76
76
  (0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.getWebStream(res)` is outdated, use `pageContext.httpResponse.getReadableWebStream(res)` instead. ' +
77
77
  streamDocs, { onlyOnce: true, showStackTrace: true });
@@ -81,7 +81,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
81
81
  }
82
82
  return webStream;
83
83
  },
84
- // TODO/v1-release: remove
84
+ // TO-DO/next-major-release: remove
85
85
  pipeToWebWritable(writable) {
86
86
  (0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.pipeToWebWritable(res)` is outdated, use `pageContext.httpResponse.pipe(res)` instead. ' +
87
87
  streamDocs, { onlyOnce: true, showStackTrace: true });
@@ -90,7 +90,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
90
90
  (0, utils_js_1.assertUsage)(false, getErrMsg(htmlRender, renderHook, 'pipeToWebWritable()'));
91
91
  }
92
92
  },
93
- // TODO/v1-release: remove
93
+ // TO-DO/next-major-release: remove
94
94
  pipeToNodeWritable(writable) {
95
95
  (0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.pipeToNodeWritable(res)` is outdated, use `pageContext.httpResponse.pipe(res)` instead. ' +
96
96
  streamDocs, { onlyOnce: true, showStackTrace: true });
@@ -11,7 +11,7 @@ function retrieveAssetsProd(clientDependencies, assetsManifest, includeAssetsImp
11
11
  clientDependencies.forEach(({ id, onlyAssets, eagerlyImported }) => {
12
12
  if (eagerlyImported)
13
13
  return; // Eagerly imported assets aren't imported with import() and therefore don't create a new Rollup entry and aren't listed in the manifest file
14
- // TODO/v1-release: remove
14
+ // TO-DO/next-major-release: remove
15
15
  if (includeAssetsImportedByServer &&
16
16
  onlyAssets &&
17
17
  id.includes('.page.server.') &&
@@ -11,17 +11,19 @@ const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig
11
11
  const analyzePage_js_1 = require("./analyzePage.js");
12
12
  const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
13
13
  const execHookServer_js_1 = require("./execHookServer.js");
14
+ const getCacheControl_js_1 = require("./getCacheControl.js");
14
15
  async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
15
16
  const pageContextAddendum = await loadPageConfigsLazyServerSide(pageContext);
16
17
  (0, utils_js_1.objectAssign)(pageContext, pageContextAddendum);
17
18
  await (0, execHookServer_js_1.execHookServer)('onCreatePageContext', pageContext);
18
19
  return pageContext;
19
20
  }
21
+ // TODO/now: define new function resolveAfterLoad() ?
20
22
  async function loadPageConfigsLazyServerSide(pageContext) {
21
23
  const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
22
24
  const globalContext = pageContext._globalContext;
23
- const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
24
- loadPageUserFiles(pageContext._globalContext._pageFilesAll, pageConfig, globalContext._pageConfigGlobal, pageContext.pageId, !globalContext._isProduction),
25
+ const [{ pageFilesLoaded, configPublicPageLazy }] = await Promise.all([
26
+ loadPageConfigFiles(pageContext._globalContext._pageFilesAll, pageConfig, globalContext._pageConfigGlobal, pageContext.pageId, !globalContext._isProduction),
25
27
  (0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._globalContext._pageFilesAll, pageContext.pageId, {
26
28
  sharedPageFilesAlreadyLoaded: true,
27
29
  }),
@@ -31,28 +33,27 @@ async function loadPageConfigsLazyServerSide(pageContext) {
31
33
  const passToClient = [];
32
34
  const errMsg = ' should be an array of strings.';
33
35
  if (!isV1Design) {
34
- pageContextExports.exportsAll.passToClient?.forEach((e) => {
36
+ configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
35
37
  (0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
36
38
  passToClient.push(...e.exportValue);
37
39
  });
38
40
  }
39
41
  else {
40
- pageContextExports.configEntries.passToClient?.forEach((e) => {
41
- const { configValue } = e;
42
- (0, utils_js_1.assert)((0, utils_js_1.isArray)(configValue));
43
- const vals = configValue.flat(1);
44
- // TODO: improve error message by using (upcoming) new data structure instead of configEntries
45
- (0, utils_js_1.assertUsage)((0, utils_js_1.isArrayOfStrings)(vals), `${e.configDefinedAt}${errMsg}`);
46
- passToClient.push(...vals);
42
+ configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
43
+ const { value } = v;
44
+ // const { definedAt } = v
45
+ // assertUsage(isArrayOfStrings(value), `+passToClient value defined at ${definedAt}${errMsg}`)
46
+ passToClient.push(...value);
47
47
  });
48
48
  }
49
49
  const pageContextAddendum = {};
50
- (0, utils_js_1.objectAssign)(pageContextAddendum, pageContextExports);
50
+ (0, utils_js_1.objectAssign)(pageContextAddendum, configPublicPageLazy);
51
51
  (0, utils_js_1.objectAssign)(pageContextAddendum, {
52
- Page: pageContextExports.exports.Page,
52
+ Page: configPublicPageLazy.exports.Page,
53
53
  _isHtmlOnly: isHtmlOnly,
54
54
  _passToClient: passToClient,
55
55
  _pageFilePathsLoaded: pageFilesLoaded.map((p) => p.filePath),
56
+ headersResponse: resolveHeadersResponse(pageContext, pageContextAddendum),
56
57
  });
57
58
  (0, utils_js_1.objectAssign)(pageContextAddendum, {
58
59
  __getPageAssets: async () => {
@@ -66,7 +67,7 @@ async function loadPageConfigsLazyServerSide(pageContext) {
66
67
  }
67
68
  },
68
69
  });
69
- // TODO/v1-release: remove
70
+ // TO-DO/next-major-release: remove
70
71
  Object.assign(pageContextAddendum, {
71
72
  _getPageAssets: async () => {
72
73
  (0, utils_js_1.assertWarning)(false, 'pageContext._getPageAssets() deprecated, see https://vike.dev/preloading', {
@@ -105,13 +106,31 @@ async function loadPageConfigsLazyServerSide(pageContext) {
105
106
  });
106
107
  return pageContextAddendum;
107
108
  }
108
- async function loadPageUserFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
109
+ async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
109
110
  const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
110
111
  const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
111
112
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
112
- const pageContextExports = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
113
+ const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
113
114
  return {
114
- pageContextExports,
115
+ configPublicPageLazy,
115
116
  pageFilesLoaded: pageFilesServerSide,
116
117
  };
117
118
  }
119
+ function resolveHeadersResponse(pageContext, pageContextAddendum) {
120
+ const headersResponse = mergeHeaders(pageContextAddendum.config.headersResponse);
121
+ if (!headersResponse.get('Cache-Control')) {
122
+ const cacheControl = (0, getCacheControl_js_1.getCacheControl)(pageContext.pageId, pageContext._globalContext._pageConfigs);
123
+ if (cacheControl)
124
+ headersResponse.set('Cache-Control', cacheControl);
125
+ }
126
+ return headersResponse;
127
+ }
128
+ function mergeHeaders(headersList = []) {
129
+ const headersMerged = new Headers();
130
+ headersList.forEach((headers) => {
131
+ new Headers(headers).forEach((value, key) => {
132
+ headersMerged.append(key, value);
133
+ });
134
+ });
135
+ return headersMerged;
136
+ }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.preparePageContextForPublicUsageServer = preparePageContextForPublicUsageServer;
4
4
  const preparePageContextForPublicUsage_js_1 = require("../../../shared/preparePageContextForPublicUsage.js");
5
5
  function preparePageContextForPublicUsageServer(pageContext) {
6
- // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
6
+ // TO-DO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
7
7
  (0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
8
8
  pageContext = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
9
9
  return pageContext;
@@ -19,6 +19,7 @@ const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContex
19
19
  const execHookGuard_js_1 = require("../../../shared/route/execHookGuard.js");
20
20
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
21
21
  const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
22
+ // TODO/now: rename?
22
23
  async function renderPageAlreadyRouted(pageContext) {
23
24
  // pageContext.pageId can either be the:
24
25
  // - ID of the page matching the routing, or the
@@ -84,7 +84,7 @@ async function renderPagePrepare(pageContextInit, httpRequestId) {
84
84
  }
85
85
  }
86
86
  const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
87
- const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, httpRequestId);
87
+ const pageContextBegin = getPageContextBegin(pageContextInit, globalContext, httpRequestId);
88
88
  // Check Base URL
89
89
  {
90
90
  const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
@@ -174,9 +174,7 @@ async function renderPageOnError(errNominalPage, pageContextBegin, pageContextNo
174
174
  (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: null });
175
175
  return (0, handleErrorWithoutErrorPage_js_1.handleErrorWithoutErrorPage)(pageContextErrorPageInit);
176
176
  }
177
- else {
178
- (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: errorPageId });
179
- }
177
+ (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: errorPageId });
180
178
  }
181
179
  let pageContextErrorPage;
182
180
  try {
@@ -313,9 +311,9 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
313
311
  (0, utils_js_1.assert)(pageContext.errorWhileRendering);
314
312
  return pageContext;
315
313
  }
316
- async function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
314
+ function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
317
315
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
318
- const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
316
+ const pageContextBegin = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
319
317
  isPrerendering: false,
320
318
  ssr: {
321
319
  urlHandler: _urlHandler,
@@ -12,7 +12,7 @@ function onLoad() {
12
12
  (0, assertNodeVersion_js_1.assertNodeVersion)();
13
13
  // package.json#peerDependencies isn't enough as users often ignore it
14
14
  // This assertion isn't reliable: the user may still use a Vite version older than 5.1.0 — see https://github.com/vitejs/vite/pull/19355
15
- // TO-DO/soon: let's also use this.meta.viteVersion https://github.com/vitejs/vite/pull/20088
15
+ // TO-DO/eventually: let's also use this.meta.viteVersion https://github.com/vitejs/vite/pull/20088
16
16
  (0, assertVersion_js_1.assertVersion)('Vite', vite_1.version, '5.1.0');
17
17
  // Ensure we don't bloat the server runtime with heavy dependencies such Vite and esbuild
18
18
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
@@ -59,7 +59,7 @@ function pluginBuildConfig() {
59
59
  async function getEntries(config) {
60
60
  const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
61
61
  const { _pageConfigs: pageConfigs } = vikeConfig;
62
- // TODO/v1-release: remove
62
+ // TO-DO/next-major-release: remove
63
63
  const pageFileEntries = await getPageFileEntries(config, (0, getPageAssets_js_1.resolveIncludeAssetsImportedByServer)(vikeConfig.config));
64
64
  (0, utils_js_1.assertUsage)(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
65
65
  if ((0, isViteServerBuild_js_1.isViteServerBuild)(config)) {
@@ -38,7 +38,7 @@ function getServerProductionEntryCode(config) {
38
38
  const importPath = getImportPath(config);
39
39
  const buildInfo = {
40
40
  versionAtBuildTime: utils_js_1.PROJECT_VERSION,
41
- usesClientRouter: (0, pluginExtractExportNames_js_1.isUsingClientRouter)(), // TODO/v1-release: remove
41
+ usesClientRouter: (0, pluginExtractExportNames_js_1.isUsingClientRouter)(), // TO-DO/next-major-release: remove
42
42
  viteConfigRuntime: (0, getViteConfigRuntime_js_1.getViteConfigRuntime)(config),
43
43
  };
44
44
  (0, globalContext_js_1.assertBuildInfo)(buildInfo);
@@ -19,7 +19,7 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
19
19
  // - @vitejs/plugin-vue2
20
20
  // - https://github.com/vikejs/vike/issues/1329
21
21
  function assertResolveAlias(config) {
22
- // TODO: re-implement warning https://github.com/vikejs/vike/issues/1567
22
+ // TO-DO/eventually: re-implement warning https://github.com/vikejs/vike/issues/1567
23
23
  return;
24
24
  const aliases = getAliases(config);
25
25
  const errPrefix = config.configFile || 'Your Vite configuration';
@@ -30,13 +30,13 @@ function pluginCommon(vikeVitePluginOptions) {
30
30
  ? (0, prepareViteApiCall_js_1.normalizeViteRoot)(configFromUser.root)
31
31
  : await (0, prepareViteApiCall_js_1.getViteRoot)(operation);
32
32
  (0, utils_js_1.assert)(rootResolvedEarly);
33
- // TODO/v1-release: we can remove setVikeConfigContext() call here since with Vike's CLI it's already called at vike/node/api/prepareViteApiCall.ts
33
+ // TO-DO/next-major-release: we can remove setVikeConfigContext() call here since with Vike's CLI it's already called at vike/node/api/prepareViteApiCall.ts
34
34
  (0, resolveVikeConfigInternal_js_1.setVikeConfigContext)({ userRootDir: rootResolvedEarly, isDev, vikeVitePluginOptions });
35
35
  const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
36
36
  return {
37
37
  _isDev: isDev,
38
38
  _rootResolvedEarly: rootResolvedEarly,
39
- // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
39
+ // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
40
40
  configVikePromise: Promise.resolve({
41
41
  prerender: vikeConfig.prerenderContext.isPrerenderingEnabled,
42
42
  }),
@@ -58,7 +58,11 @@ function pluginCommon(vikeVitePluginOptions) {
58
58
  configResolved: {
59
59
  order: 'post',
60
60
  async handler(config) {
61
- /* TODO: do this after implementing vike.config.js and new setting transformLinkedDependencies (or probably a better name like transpileLinkedDependencies/bundleLinkedDependencies or something else)
61
+ /* Also externalize linked dependencies by default?
62
+ * - Can this be done while the user sets ssr.external to `string[]`? I guess not?
63
+ * - If not then it's a problem: it makes the default inconsistent.
64
+ * - https://vite.dev/config/ssr-options.html#ssr-external
65
+ * - New setting +transpileLinkedDependencies ?
62
66
  overrideViteDefaultSsrExternal(config)
63
67
  //*/
64
68
  workaroundCI(config);
@@ -162,7 +166,7 @@ function assertVikeCliOrApi(config) {
162
166
  onlyOnce: true,
163
167
  });
164
168
  }
165
- // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
169
+ // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
166
170
  function temp_supportOldInterface(config) {
167
171
  if (!('vitePluginSsr' in config))
168
172
  return;
@@ -25,7 +25,7 @@ function pluginDev() {
25
25
  config() {
26
26
  return {
27
27
  appType: 'custom',
28
- // TODO:v1-release: remove (AFAICT we only need to use config.optimizeDeps for the old design)
28
+ // TO-DO/next-major-release: remove (AFAICT we only need to use config.optimizeDeps for the old design)
29
29
  optimizeDeps: {
30
30
  exclude: [
31
31
  // We exclude Vike's client runtime to be able to use Vite's import.meta.glob()
@@ -11,7 +11,7 @@ const getFilePath_js_1 = require("../shared/getFilePath.js");
11
11
  const normalizeId_js_1 = require("../shared/normalizeId.js");
12
12
  const isViteServerBuild_js_1 = require("../shared/isViteServerBuild.js");
13
13
  const applyRegExWithMagicString_js_1 = require("../shared/applyRegExWithMagicString.js");
14
- // TODO/enventually:
14
+ // TO-DO/eventually:
15
15
  // - Make import.meta.env work inside +config.js
16
16
  // - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
17
17
  // - Or stop using Vite's `mode` implementation and have Vike implement its own `mode` feature? (So that the only dependencies are `$ vike build --mode staging` and `$ MODE=staging vike build`.)
@@ -124,7 +124,7 @@ function pluginFileEnv() {
124
124
  return modulePath.includes(suffixWrong);
125
125
  }
126
126
  function skip(id) {
127
- // TODO/v1-release: remove
127
+ // TO-DO/next-major-release: remove
128
128
  if (pluginExtractAssets_js_1.extractAssetsRE.test(id) || pluginExtractExportNames_js_1.extractExportNamesRE.test(id))
129
129
  return true;
130
130
  if (!id.includes(getSuffix('client')) && !id.includes(getSuffix('server')))
@@ -25,7 +25,7 @@ function pluginVirtualFiles() {
25
25
  name: 'vike:pluginVirtualFiles',
26
26
  async configResolved(config_) {
27
27
  config = config_;
28
- // TODO/v1-release: remove
28
+ // TO-DO/next-major-release: remove
29
29
  if (!(0, resolveVikeConfigInternal_js_1.isV1Design)())
30
30
  config.experimental.importGlobRestoreExtension = true;
31
31
  },
@@ -21,7 +21,7 @@ function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled)
21
21
  };
22
22
  Object.defineProperty(pageContextInit, 'userAgent', {
23
23
  get() {
24
- // TODO/next-major-release: assertUsage() instead of assertWarning()
24
+ // TO-DO/next-major-release: assertUsage() instead of assertWarning()
25
25
  (0, utils_js_1.assertWarning)(false, `${picocolors_1.default.cyan('pageContext.userAgent')} is deprecated: use ${picocolors_1.default.cyan("pageContext.headers['user-agent']")} instead.`, {
26
26
  showStackTrace: true,
27
27
  onlyOnce: true,
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
- // Non-production logger used for:
3
- // - Development
4
- // - Preview
5
- // - Build
6
- // - Pre-rendering
7
- // In other words: everywhere except in production
2
+ // TO-DO/eventually:
3
+ // - New hook onLog(): https://github.com/vikejs/vike/issues/1438
4
+ // - Exact same logs between prod and dev, only difference is that some log objects have:
5
+ // - `isDevLog: true`
6
+ // - `willBeLogged: false` in production
7
+ // - `showTimestamp: true`
8
+ // - Never clear screen (it's complex with little benefit)
9
+ // - Add shortcut to clear screen
10
+ // - Maybe rotate colors upon no requests within 30s?
11
+ // - Only show a one-liner init log (instead of Vite's multi-line log)
8
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
14
  };
@@ -87,7 +87,7 @@ const configDefinitionsBuiltIn = {
87
87
  env: { client: true },
88
88
  eager: true,
89
89
  },
90
- // TODO/v1-release: remove
90
+ // TO-DO/next-major-release: remove
91
91
  prefetchStaticAssets: {
92
92
  env: { client: true },
93
93
  },
@@ -212,6 +212,10 @@ const configDefinitionsBuiltIn = {
212
212
  env: { server: true },
213
213
  global: true,
214
214
  },
215
+ headersResponse: {
216
+ env: { server: true },
217
+ cumulative: true,
218
+ },
215
219
  };
216
220
  exports.configDefinitionsBuiltIn = configDefinitionsBuiltIn;
217
221
  function getConfigEnv(configValueSources, configName) {
@@ -35,9 +35,7 @@ async function crawlPlusFiles(userRootDir) {
35
35
  : // Fallback to tinyglobby for users that dynamically generate plus files. (Assuming that no plus file is found because of the user's .gitignore list.)
36
36
  filesGlob;
37
37
  (0, utils_js_1.assert)(files);
38
- if (debug.isActivated) {
39
- (0, utils_js_1.assert)(filesGit);
40
- (0, utils_js_1.assert)(filesGlob);
38
+ if (debug.isActivated && filesGit && filesGlob) {
41
39
  (0, utils_js_1.assertWarning)((0, utils_js_1.deepEqual)(filesGlob.slice().sort(), filesGit.slice().sort()), "Git and glob results aren't matching.", { onlyOnce: false });
42
40
  }
43
41
  // Filter build files
@@ -36,12 +36,10 @@ function getFilesystemRouteString(locationId) {
36
36
  function getInheritanceRoot(locationId) {
37
37
  return getLogicalPath(locationId, [
38
38
  'renderer',
39
- // - Enable hooks defined by vike-{react,vue,solid} such as +onBeforeRenderClient to be defined at the root directory. In other words, avoid following error:
40
- // ```bash
41
- // [11:09:43.072][/test-preview.test.ts][npm run preview][stderr] Error: [vike][Wrong Usage] /+onBeforeRenderClient.ts sets the value of the config onBeforeRenderClient which is a custom config that is defined with https://vike.dev/meta at a path that doesn't apply to / — see https://vike.dev/config#inheritance
42
- // ```
43
- // - Not sure if it's a good idea? Could it make config inheritance confusing? Let's try for now and see how it goes.
44
- // - TO-DO/eventually: update docs https://github.com/vikejs/vike/blob/5fcdc4d5094f1a4dcbefc0b481cdd30a205aef2d/docs/pages/filesystem-routing/%2BPage.mdx?plain=1#L98
39
+ // Enable hooks defined by vike-{react,vue,solid} such as +onBeforeRenderClient to be defined at the root directory. In other words, avoid following error:
40
+ // ```bash
41
+ // [11:09:43.072][/test-preview.test.ts][npm run preview][stderr] Error: [vike][Wrong Usage] /+onBeforeRenderClient.ts sets the value of the config onBeforeRenderClient which is a custom config that is defined with https://vike.dev/meta at a path that doesn't apply to / — see https://vike.dev/config#inheritance
42
+ // ```
45
43
  'pages',
46
44
  ]);
47
45
  }
@@ -352,7 +352,7 @@ function isTemporaryBuildFile(filePath) {
352
352
  const fileName = node_path_1.default.posix.basename(filePath);
353
353
  return /\.build-[a-z0-9]{12}\.mjs$/.test(fileName);
354
354
  }
355
- // TODO/next-major: remove
355
+ // TO-DO/next-major-release: remove
356
356
  function isHeaderFile(filePath) {
357
357
  (0, utils_js_1.assertPosixPath)(filePath);
358
358
  const fileExtensions = getFileExtensions(filePath);
@@ -44,7 +44,7 @@ let restartVite = false;
44
44
  let vikeConfigHasBuildError = null;
45
45
  let isV1Design_ = null;
46
46
  let vikeConfigPromise = null;
47
- // TODO/v1-release: remove
47
+ // TO-DO/next-major-release: remove
48
48
  let vikeConfigSync = null;
49
49
  let vikeConfigCtx = null; // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
50
50
  let prerenderContext;
@@ -56,14 +56,14 @@ function reloadVikeConfig() {
56
56
  }
57
57
  async function getVikeConfigInternal(
58
58
  // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
59
- // TO-DO: eventually rethink all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
59
+ // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
60
60
  doNotRestartViteOnError = false) {
61
61
  (0, utils_js_1.assert)(vikeConfigCtx);
62
62
  const { userRootDir, isDev, vikeVitePluginOptions } = vikeConfigCtx;
63
63
  const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
64
64
  return vikeConfig;
65
65
  }
66
- // TODO/v1-release: remove
66
+ // TO-DO/next-major-release: remove
67
67
  function getVikeConfigInternalSync() {
68
68
  (0, utils_js_1.assert)(vikeConfigSync);
69
69
  return vikeConfigSync;
@@ -487,7 +487,7 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
487
487
  return sortAfterInheritanceOrderPage(source1.plusFile, source2.plusFile, locationIdPage, configName);
488
488
  }
489
489
  })
490
- // TODO/next-major: remove
490
+ // TO-DO/next-major-release: remove
491
491
  // Interop with vike(options) in vite.config.js — make it least precedence.
492
492
  .sort((0, utils_js_1.makeLast)((source) => !source.plusFile));
493
493
  });
@@ -783,7 +783,7 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
783
783
  }
784
784
  configEnv = getConfigEnvValue(def.env, `${metaConfigDefinedAt} sets ${picocolors_1.default.cyan(`meta.${configName}.env`)} to`);
785
785
  // Overwrite deprecated value with valid value
786
- // TODO/v1-release: remove once support for the deprecated values is removed
786
+ // TO-DO/next-major-release: remove once support for the deprecated values is removed
787
787
  if (typeof def.env === 'string')
788
788
  def.env = configEnv;
789
789
  }
@@ -1029,7 +1029,7 @@ function determineIsErrorPage(routeFilesystem) {
1029
1029
  function getConfigEnvValue(val, errMsgIntro) {
1030
1030
  const errInvalidValue = `${errMsgIntro} an invalid value ${picocolors_1.default.cyan(JSON.stringify(val))}`;
1031
1031
  // Legacy outdated values
1032
- // TODO/v1-release: remove
1032
+ // TO-DO/next-major-release: remove
1033
1033
  if (typeof val === 'string') {
1034
1034
  const valConverted = (() => {
1035
1035
  if (val === 'client-only')
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenderErrorPage = void 0;
4
- // TODO/v1-release: remove
4
+ // TO-DO/next-major-release: remove
5
5
  var abort_js_1 = require("./route/abort.js");
6
6
  Object.defineProperty(exports, "RenderErrorPage", { enumerable: true, get: function () { return abort_js_1.RenderErrorPage; } });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.render = exports.redirect = void 0;
4
- // TODO/v1-release: Move all universal imports (when using Client Routing) to:
4
+ // TO-DO/next-major-release: Move all universal imports (when using Client Routing) to:
5
5
  // import {
6
6
  // redirect,
7
7
  // render,
@@ -10,10 +10,26 @@ const prepareGlobalContextForPublicUsage_js_1 = require("./prepareGlobalContextF
10
10
  const getHook_js_1 = require("./hooks/getHook.js");
11
11
  const getGlobalContextSyncErrMsg = "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.";
12
12
  exports.getGlobalContextSyncErrMsg = getGlobalContextSyncErrMsg;
13
- async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext) {
13
+ async function createGlobalContextShared(virtualFileExports, globalObject, addGlobalContextAsync, addGlobalContextSync) {
14
14
  const globalContext = createGlobalContextBase(virtualFileExports);
15
- const globalContextAddendum = await addGlobalContext?.(globalContext);
16
- (0, utils_js_1.objectAssign)(globalContext, globalContextAddendum);
15
+ let isNewGlobalContext;
16
+ if (!globalObject.globalContext) {
17
+ globalObject.globalContext = globalContext;
18
+ isNewGlobalContext = false;
19
+ }
20
+ else {
21
+ isNewGlobalContext = true;
22
+ }
23
+ if (addGlobalContextSync &&
24
+ // TODO/next-major-release: remove
25
+ globalContext._pageConfigs.length > 0) {
26
+ const globalContextAddendum = addGlobalContextSync?.(globalContext);
27
+ (0, utils_js_1.objectAssign)(globalContext, globalContextAddendum);
28
+ }
29
+ else {
30
+ const globalContextAddendum = await addGlobalContextAsync?.(globalContext);
31
+ (0, utils_js_1.objectAssign)(globalContext, globalContextAddendum);
32
+ }
17
33
  const onCreateGlobalContextHooks = (0, getHook_js_1.getHookFromPageConfigGlobalCumulative)(globalContext._pageConfigGlobal, 'onCreateGlobalContext');
18
34
  let hooksCalled = false;
19
35
  if (!hooksAreEqual(globalObject.onCreateGlobalContextHooks ?? [], onCreateGlobalContextHooks)) {
@@ -21,10 +37,7 @@ async function createGlobalContextShared(virtualFileExports, globalObject, addGl
21
37
  await (0, execHook_js_1.execHookGlobal)('onCreateGlobalContext', globalContext._pageConfigGlobal, null, globalContext, prepareGlobalContextForPublicUsage_js_1.prepareGlobalContextForPublicUsage);
22
38
  hooksCalled = true;
23
39
  }
24
- if (!globalObject.globalContext) {
25
- globalObject.globalContext = globalContext;
26
- }
27
- else {
40
+ if (isNewGlobalContext) {
28
41
  // Singleton: ensure all `globalContext` user-land references are preserved & updated.
29
42
  if (hooksCalled) {
30
43
  (0, utils_js_1.objectReplace)(globalObject.globalContext, globalContext);
@@ -3,8 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createPageContextShared = createPageContextShared;
4
4
  exports.createPageContextObject = createPageContextObject;
5
5
  const utils_js_1 = require("./utils.js");
6
- // TODO/now: make this and parents sync
7
- async function createPageContextShared(pageContextCreated, pageConfigGlobal, vikeConfigPublicGlobal) {
6
+ function createPageContextShared(pageContextCreated, vikeConfigPublicGlobal) {
8
7
  (0, utils_js_1.objectAssign)(pageContextCreated, vikeConfigPublicGlobal);
9
8
  return pageContextCreated;
10
9
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.determinePageIdOld = determinePageIdOld;
4
4
  const utils_js_1 = require("./utils.js");
5
- // TODO/v1-release: remove
5
+ // TO-DO/next-major-release: remove
6
6
  function determinePageIdOld(filePath) {
7
7
  const pageSuffix = '.page.';
8
8
  const pageId = (0, utils_js_1.slice)(filePath.split(pageSuffix), 0, -1).join(pageSuffix);
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getErrorPageId = getErrorPageId;
4
4
  exports.isErrorPageId = isErrorPageId;
5
5
  exports.isErrorPage = isErrorPage;
6
- // TODO/v1-release: consider loading this file only for Client Routing
6
+ // TO-DO/next-major-release: consider loading this file only for Client Routing
7
7
  const utils_js_1 = require("./utils.js");
8
8
  function getErrorPageId(pageFilesAll, pageConfigs) {
9
9
  if (pageConfigs.length > 0) {
@@ -13,7 +13,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
13
13
  (0, utils_js_1.assertUsage)(errorPageConfigs.length === 1, 'Only one error page can be defined');
14
14
  return errorPageConfigs[0].pageId;
15
15
  }
16
- // TODO/v1-release: remove
16
+ // TO-DO/next-major-release: remove
17
17
  const errorPageIds = (0, utils_js_1.unique)(pageFilesAll.map(({ pageId }) => pageId).filter((pageId) => isErrorPageId(pageId, false)));
18
18
  (0, utils_js_1.assertUsage)(errorPageIds.length <= 1, `Only one _error.page.js is allowed, but found several: ${errorPageIds.join(' ')}`);
19
19
  if (errorPageIds.length > 0) {
@@ -23,7 +23,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
23
23
  }
24
24
  return null;
25
25
  }
26
- // TODO/v1-release: remove
26
+ // TO-DO/next-major-release: remove
27
27
  function isErrorPageId(pageId, _isV1Design) {
28
28
  (0, utils_js_1.assert)(!pageId.includes('\\'));
29
29
  return pageId.includes('/_error');