vike 0.4.235 → 0.4.236

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 (192) 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 +29 -12
  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 +34 -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/filesystemRouting.js +4 -6
  43. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  44. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  45. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  46. package/dist/cjs/shared/abort.js +1 -1
  47. package/dist/cjs/shared/createGlobalContextShared.js +20 -7
  48. package/dist/cjs/shared/createPageContextShared.js +1 -2
  49. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  50. package/dist/cjs/shared/error-page.js +3 -3
  51. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  52. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  53. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  54. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  55. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  56. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  57. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  58. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  59. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  60. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  61. package/dist/cjs/shared/getProxyForPublicUsage.js +1 -1
  62. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  63. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  64. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  65. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  66. package/dist/cjs/shared/route/abort.js +1 -1
  67. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  68. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  69. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  70. package/dist/cjs/shared/route/index.js +1 -1
  71. package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
  72. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  73. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  74. package/dist/cjs/shared/route/routing.js +1 -1
  75. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  76. package/dist/cjs/utils/assertSetup.js +3 -3
  77. package/dist/cjs/utils/debugGlob.js +1 -1
  78. package/dist/cjs/utils/parseNpmPackage.js +1 -1
  79. package/dist/esm/__internal/index.d.ts +1 -1
  80. package/dist/esm/__internal/index.js +1 -1
  81. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  82. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +8 -0
  83. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  84. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  85. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  86. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  87. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  88. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +2 -0
  89. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  90. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  91. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  92. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  93. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
  94. package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -1
  95. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  96. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  97. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  98. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  99. package/dist/esm/node/cli/index.js +1 -1
  100. package/dist/esm/node/createPageRenderer.js +1 -1
  101. package/dist/esm/node/importBuild.js +1 -1
  102. package/dist/esm/node/prerender/context.js +1 -1
  103. package/dist/esm/node/prerender/index.js +1 -1
  104. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  105. package/dist/esm/node/prerender/runPrerender.d.ts +2 -1
  106. package/dist/esm/node/prerender/runPrerender.js +9 -13
  107. package/dist/esm/node/runtime/globalContext.d.ts +14 -14
  108. package/dist/esm/node/runtime/globalContext.js +31 -14
  109. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  110. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  111. package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
  112. package/dist/esm/node/runtime/html/serializeContext.js +73 -15
  113. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  114. package/dist/esm/node/runtime/index.js +1 -1
  115. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  116. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  117. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
  118. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
  119. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
  120. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  121. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  122. package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
  123. package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
  124. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  125. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  126. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
  127. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -17
  128. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  129. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +4 -2
  130. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  131. package/dist/esm/node/runtime/renderPage.d.ts +3 -3
  132. package/dist/esm/node/runtime/renderPage.js +4 -6
  133. package/dist/esm/node/vite/index.js +1 -1
  134. package/dist/esm/node/vite/onLoad.js +1 -1
  135. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
  136. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  137. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  138. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  139. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -4
  140. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  141. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  142. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  143. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
  144. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  145. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  146. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  147. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  148. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  149. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  150. package/dist/esm/shared/RenderErrorPage.js +1 -1
  151. package/dist/esm/shared/abort.js +1 -1
  152. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  153. package/dist/esm/shared/createGlobalContextShared.js +20 -7
  154. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  155. package/dist/esm/shared/createPageContextShared.js +1 -2
  156. package/dist/esm/shared/determinePageIdOld.js +1 -1
  157. package/dist/esm/shared/error-page.js +3 -3
  158. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  159. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  160. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  161. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  162. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  163. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  164. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  165. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  166. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  167. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  168. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  169. package/dist/esm/shared/hooks/getHook.js +1 -1
  170. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  171. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  172. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  173. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  174. package/dist/esm/shared/route/abort.js +1 -1
  175. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  176. package/dist/esm/shared/route/execHookGuard.js +1 -1
  177. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  178. package/dist/esm/shared/route/index.js +1 -1
  179. package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
  180. package/dist/esm/shared/route/loadPageRoutes.js +10 -4
  181. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  182. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  183. package/dist/esm/shared/route/routing.js +1 -1
  184. package/dist/esm/types/Config.d.ts +9 -1
  185. package/dist/esm/types/PageContext.d.ts +8 -2
  186. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  187. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  188. package/dist/esm/utils/assertSetup.js +3 -3
  189. package/dist/esm/utils/debugGlob.js +1 -1
  190. package/dist/esm/utils/parseNpmPackage.js +1 -1
  191. package/package.json +2 -5
  192. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
@@ -29,7 +29,7 @@ const globalObject = getGlobalObject('runtime-client-routing/prefetch.ts', {
29
29
  });
30
30
  function getPageContextPrefetched(pageContext) {
31
31
  const prefetchSettings = getPrefetchSettings(pageContext, null);
32
- // TODO/pageContext-prefetch: I guess we need linkTag to make this condition work
32
+ // TO-DO/pageContext-prefetch: I guess we need linkTag to make this condition work
33
33
  if (!prefetchSettings.pageContext)
34
34
  return null;
35
35
  const key = getCacheKey(pageContext.urlPathname);
@@ -37,7 +37,7 @@ function getPageContextPrefetched(pageContext) {
37
37
  if (!found || found.result.is404ServerSideRouted || isExpired(found))
38
38
  return null;
39
39
  const pageContextPrefetched = found.result.pageContextFromServerHooks;
40
- /* TODO/pageContext-prefetch: make it work for when resultMaxAge is Infinity.
40
+ /* TO-DO/pageContext-prefetch: make it work for when resultMaxAge is Infinity.
41
41
  // We discard the prefetched pageContext whenever we use it, so that the user always sees fresh data upon naivgating.
42
42
  delete globalObject.prefetchedPageContexts[key]
43
43
  */
@@ -61,7 +61,7 @@ async function prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge)
61
61
  setPageContextPrefetchCache(pageContextLink, result, resultMaxAge);
62
62
  }
63
63
  function populatePageContextPrefetchCache(pageContext /*& VikeConfigPublicPageLazy*/, result) {
64
- // TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use VikeConfigPublicPageLazy as it isn't available here.)
64
+ // TO-DO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use VikeConfigPublicPageLazy as it isn't available here.)
65
65
  if (!isBrilloutDocpress())
66
66
  return;
67
67
  setPageContextPrefetchCache(pageContext, result, null);
@@ -79,7 +79,7 @@ function setPageContextPrefetchCache(pageContext, result, resultMaxAge) {
79
79
  }
80
80
  function getResultMaxAge() {
81
81
  const pageContextCurrent = getPageContextCurrent();
82
- // TODO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
82
+ // TO-DO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
83
83
  if (!pageContextCurrent)
84
84
  return Infinity;
85
85
  const prefetchSettings = getPrefetchSettings(pageContextCurrent, null);
@@ -94,7 +94,7 @@ function getResultMaxAge() {
94
94
  * @param url - The URL of the page you want to prefetch.
95
95
  */
96
96
  async function prefetch(url,
97
- /* TODO/pageContext-prefetch
97
+ /* TO-DO/pageContext-prefetch:
98
98
  options?: {
99
99
  pageContext?: boolean
100
100
  staticAssets?: boolean
@@ -196,11 +196,11 @@ async function prefetchOnEvent(linkTag, event) {
196
196
  }
197
197
  else {
198
198
  if (isBrilloutDocpress()) {
199
- // TODO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
199
+ // TO-DO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
200
200
  prefetchSettings = { staticAssets: 'hover', pageContext: Infinity };
201
201
  }
202
202
  else {
203
- // TODO/pageContext-prefetch: consider pageContextLink
203
+ // TO-DO/pageContext-prefetch: consider pageContextLink
204
204
  return;
205
205
  }
206
206
  }
@@ -225,7 +225,7 @@ async function prefetchOnEvent(linkTag, event) {
225
225
  const key = getCacheKey(urlOfLink);
226
226
  const found = globalObject.prefetchedPageContexts[key];
227
227
  if (!found || isExpired(found)) {
228
- // TODO/pageContext-prefetch: move this logic in getPrefetchSettings()
228
+ // TO-DO/pageContext-prefetch: move this logic in getPrefetchSettings()
229
229
  const resultMaxAge = prefetchSettings.pageContext;
230
230
  await prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge);
231
231
  }
@@ -236,7 +236,7 @@ async function prefetchOnEvent(linkTag, event) {
236
236
  function isExpired(found) {
237
237
  return Date.now() - found.resultFetchedAt > found.resultMaxAge;
238
238
  }
239
- // TODO/next-major-release: make it sync
239
+ // TO-DO/next-major-release: make it sync
240
240
  async function getPageContextLink(urlOfLink) {
241
241
  const pageContextLink = await createPageContextClientSide(urlOfLink);
242
242
  let pageContextFromRoute;
@@ -257,7 +257,7 @@ function getCacheKey(url) {
257
257
  const key = url.split('#')[0];
258
258
  return key;
259
259
  }
260
- // TODO/pageContext-prefetch: remove
260
+ // TO-DO/pageContext-prefetch: remove
261
261
  function isBrilloutDocpress() {
262
262
  return '_isBrilloutDocpress' in window;
263
263
  }
@@ -95,6 +95,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
95
95
  urlOriginal: string;
96
96
  headers: Record<string, string> | null;
97
97
  headersOriginal?: unknown;
98
+ headersResponse: Headers;
98
99
  is404: boolean | null;
99
100
  isClientSideNavigation: boolean;
100
101
  abortReason?: unknown;
@@ -119,6 +120,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
119
120
  urlOriginal: string;
120
121
  headers: Record<string, string> | null;
121
122
  headersOriginal?: unknown;
123
+ headersResponse: Headers;
122
124
  is404: boolean | null;
123
125
  isClientSideNavigation: boolean;
124
126
  abortReason?: unknown;
@@ -90,7 +90,7 @@ async function renderPageClientSide(renderArgs) {
90
90
  // TO-DO/eventually: create helper assertPageContextFromHook()
91
91
  assert(!('urlOriginal' in pageContextSerialized));
92
92
  objectAssign(pageContext, pageContextSerialized);
93
- // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
93
+ // TO-DO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
94
94
  populatePageContextPrefetchCache(pageContext, { pageContextFromServerHooks: pageContextSerialized });
95
95
  }
96
96
  else {
@@ -188,7 +188,7 @@ async function renderPageClientSide(renderArgs) {
188
188
  if (result.is404ServerSideRouted)
189
189
  return;
190
190
  pageContextFromServerHooks = result.pageContextFromServerHooks;
191
- // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
191
+ // TO-DO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
192
192
  populatePageContextPrefetchCache(pageContext, result);
193
193
  }
194
194
  catch (err) {
@@ -462,7 +462,7 @@ async function getPageContextBegin(isForErrorPage, { urlOriginal, isBackwardNavi
462
462
  previousPageContext,
463
463
  ...pageContextInitClient,
464
464
  });
465
- // TODO/next-major-release: remove
465
+ // TO-DO/next-major-release: remove
466
466
  Object.defineProperty(pageContext, '_previousPageContext', {
467
467
  get() {
468
468
  assertWarning(false, 'pageContext._previousPageContext has been renamed pageContext.previousPageContext', {
@@ -15,7 +15,7 @@ function skipLink(linkTag) {
15
15
  // Purposely last because disableAutomaticLinkInterception will be removed in the next major release
16
16
  !isVikeLink(linkTag));
17
17
  }
18
- // TODO/next-major-release: remove this in favor of synchronously checking whether URL matches the route of a page (possible since Async Route Functions will be deprecated)
18
+ // TO-DO/next-major-release: remove this in favor of synchronously checking whether URL matches the route of a page (possible since Async Route Functions will be deprecated)
19
19
  function isVikeLink(linkTag) {
20
20
  const disableAutomaticLinkInterception = isDisableAutomaticLinkInterception();
21
21
  if (!disableAutomaticLinkInterception) {
@@ -16,13 +16,13 @@ async function createPageContextClientSide() {
16
16
  isPrerendering: false,
17
17
  isHydration: true,
18
18
  _globalContext: globalContext,
19
- _pageFilesAll: globalContext._pageFilesAll, // TODO/v1-release: remove
19
+ _pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
20
20
  isBackwardNavigation: null,
21
21
  _hasPageContextFromServer: true,
22
22
  });
23
23
  objectAssign(pageContextCreated, getPageContextSerializedInHtml());
24
24
  // Sets pageContext.config to global configs
25
- augmentType(pageContextCreated, await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal));
25
+ augmentType(pageContextCreated, createPageContextShared(pageContextCreated, globalContext._vikeConfigPublicGlobal));
26
26
  // Sets pageContext.config to local configs (overrides the pageContext.config set above)
27
27
  augmentType(pageContextCreated, await loadPageConfigsLazyClientSideAndExecHook(pageContextCreated));
28
28
  assertPristineUrl();
@@ -1,2 +1,2 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export {};
@@ -23,13 +23,14 @@ declare function createGetGlobalContextClient<GlobalContextAddendum extends obje
23
23
  pages: {
24
24
  [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
25
25
  };
26
- } & Awaited<{
26
+ } & {
27
27
  /**
28
28
  * Whether the environment is client-side or server-side / pre-rendering.
29
29
  *
30
30
  * We recommend using `import.meta.env.SSR` instead, see https://vike.dev/globalContext
31
31
  */
32
32
  isClientSide: true;
33
- } & Awaited<GlobalContextAddendum>>>;
34
- declare function getGlobalContext(): Promise<never>;
35
- declare function getGlobalContextSync(): never;
33
+ } & Awaited<GlobalContextAddendum>>;
34
+ type NeverExported = never;
35
+ declare function getGlobalContext(): Promise<NeverExported>;
36
+ declare function getGlobalContextSync(): NeverExported;
@@ -46,7 +46,6 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
46
46
  return globalContext;
47
47
  }
48
48
  }
49
- // The type is never used: it's the type of the server-side getGlobalContext() that is used.
50
49
  async function getGlobalContext() {
51
50
  const globalContext = await globalObject.globalContextPromise;
52
51
  return globalContext;
@@ -22,7 +22,7 @@ async function execHookOnRenderClient(pageContext, prepareForPublicUsage) {
22
22
  assertUsage(false, `No onRenderClient() hook defined for URL '${urlToShowToUser}', but it's needed, see https://vike.dev/onRenderClient`);
23
23
  }
24
24
  else {
25
- // TODO/v1-release: remove
25
+ // TO-DO/next-major-release: remove
26
26
  // V0.4 design
27
27
  const pageClientsFilesLoaded = pageContext._pageFilesLoaded.filter((p) => p.fileType === '.page.client');
28
28
  let errMsg;
@@ -30,9 +30,9 @@ async function loadPageConfigsLazyClientSide(pageId, pageFilesAll, pageConfigs,
30
30
  }
31
31
  throw err;
32
32
  }
33
- const pageContextExports = resolveVikeConfigPublicPageLazy(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
33
+ const configPublicPageLazy = resolveVikeConfigPublicPageLazy(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
34
34
  const pageContextAddendum = {};
35
- objectAssign(pageContextAddendum, pageContextExports);
35
+ objectAssign(pageContextAddendum, configPublicPageLazy);
36
36
  objectAssign(pageContextAddendum, { _pageFilesLoaded: pageFilesClientSide });
37
37
  return pageContextAddendum;
38
38
  }
@@ -3,14 +3,14 @@ export { preparePageContextForPublicUsageClientMinimal };
3
3
  import { objectAssign } from '../runtime-server-routing/utils.js';
4
4
  import { assertPropertyGetters, preparePageContextForPublicUsage, } from '../../shared/preparePageContextForPublicUsage.js';
5
5
  function preparePageContextForPublicUsageClientShared(pageContext) {
6
- // TODO/now-proxy use proxy
6
+ // TO-DO/soon/proxy: use proxy
7
7
  const Page = pageContext.config?.Page ||
8
- // TODO/next-major-release: remove
8
+ // TO-DO/next-major-release: remove
9
9
  pageContext.exports?.Page;
10
10
  objectAssign(pageContext, { Page });
11
- // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
11
+ // TO-DO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
12
12
  assertPropertyGetters(pageContext);
13
- // TODO/next-major-release: remove
13
+ // TO-DO/next-major-release: remove
14
14
  // - Requires https://github.com/vikejs/vike-vue/issues/198
15
15
  // - Last time I tried to remove it (https://github.com/vikejs/vike/commit/705fd23598d9d69bf46a52c8550216cd7117ce71) the tests were failing as expected: only the Vue integrations that used shallowReactive() failed.
16
16
  supportVueReactiviy(pageContext);
@@ -84,7 +84,7 @@ async function getViteInfo(viteConfigFromUserApiOptions, operation) {
84
84
  const root = normalizeViteRoot(viteConfigResolved.root ?? process.cwd());
85
85
  globalObject.root = root;
86
86
  // - Find options `vike(options)` set in vite.config.js
87
- // - TODO/next-major: remove
87
+ // - TO-DO/next-major-release: remove
88
88
  // - Add Vike's Vite plugin if missing
89
89
  let vikeVitePluginOptions;
90
90
  const found = findVikeVitePlugin(viteConfigResolved);
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { prerender } from '../api/prerender.js';
3
3
  import { assertWarning } from '../../utils/assert.js';
4
4
  import pc from '@brillout/picocolors';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  //import { SsrEnv, setSsrEnv } from './ssrEnv.js'
3
3
  import { renderPage } from './runtime/renderPage.js';
4
4
  import { assertWarning } from './runtime/utils.js';
@@ -1,3 +1,3 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  console.warn("[vike][Warning] importBuild.js is not needed anymore; it has no effect. Remove `import 'dist/server/importBuild.js'` to remove this warning. More infos at https://vike.dev/importBuild.js");
3
3
  export {};
@@ -12,7 +12,7 @@ function isPrerenderAutoRunEnabled(vikeConfig) {
12
12
  !globalObject.isDisabled &&
13
13
  vikeConfig.config.disableAutoFullBuild !== 'prerender');
14
14
  }
15
- // TODO/v1-release: remove
15
+ // TO-DO/next-major-release: remove
16
16
  function temp_disablePrerenderAutoRun() {
17
17
  globalObject.isDisabled = true;
18
18
  }
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { prerender } from '../api/prerender.js';
3
3
  import { assertWarning } from '../../utils/assert.js';
4
4
  import pc from '@brillout/picocolors';
@@ -22,7 +22,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
22
22
  defaultLocalValue = true;
23
23
  }
24
24
  }
25
- // TODO/next-major: remove
25
+ // TO-DO/next-major-release: remove
26
26
  // Backwards compatibility for `vike({prerender:true})` in vite.config.js
27
27
  {
28
28
  const valuesWithDefinedAt = vikeConfig._from.configsCumulative.prerender?.values ?? [];
@@ -37,7 +37,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
37
37
  isPrerenderingEnabled: vikeConfig._pageConfigs.length > 0 &&
38
38
  vikeConfig._pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
39
39
  });
40
- // TODO/next-major remove
40
+ // TO-DO/next-major-release: remove
41
41
  if (vikeConfig._pageConfigs.length === 0 && defaultLocalValue)
42
42
  prerenderConfigGlobal.isPrerenderingEnabled = true;
43
43
  return prerenderConfigGlobal;
@@ -559,8 +559,9 @@ declare function createPageContextPrerendering(urlOriginal: string, prerenderCon
559
559
  })) & import("../../shared/getPageFiles.js").VikeConfigPublicPageLazy) & {
560
560
  Page: unknown;
561
561
  _isHtmlOnly: boolean;
562
- _passToClient: string[];
562
+ _passToClient: import("../runtime/html/serializeContext.js").PassToClient;
563
563
  _pageFilePathsLoaded: string[];
564
+ headersResponse: Headers;
564
565
  } & {
565
566
  __getPageAssets: () => Promise<import("../runtime/renderPage/getPageAssets.js").PageAsset[]>;
566
567
  })) & {
@@ -49,7 +49,7 @@ async function runPrerender(options = {}, trigger) {
49
49
  const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
50
50
  if (!isPrerenderingEnabled) {
51
51
  assert(trigger !== 'auto-run');
52
- /* TODO/v1-release: use this assertUsage() again.
52
+ /* TO-DO/next-major-release: use this assertUsage() again.
53
53
  * - Make sure https://github.com/magne4000/vite-plugin-vercel/pull/156 is merged before using this assertUsage() again. (Otherwise vite-plugin-vercel will trigger this assertUsage() call.)
54
54
  * - Done: PR is merged as of June 20205
55
55
  assertUsage(
@@ -131,7 +131,7 @@ async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, default
131
131
  }
132
132
  });
133
133
  // Old design
134
- // TODO/v1-release: remove
134
+ // TO-DO/next-major-release: remove
135
135
  await Promise.all(globalContext._pageFilesAll
136
136
  .filter((p) => {
137
137
  assertExportNames(p);
@@ -294,7 +294,7 @@ async function createPageContextPrerendering(urlOriginal, prerenderContext, glob
294
294
  urlOriginal,
295
295
  ...prerenderContext._pageContextInit,
296
296
  };
297
- const pageContext = await createPageContextServerSide(pageContextInit, globalContext, {
297
+ const pageContext = createPageContextServerSide(pageContextInit, globalContext, {
298
298
  isPrerendering: true,
299
299
  });
300
300
  assert(pageContext.isPrerendering === true);
@@ -385,7 +385,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
385
385
  }
386
386
  }
387
387
  // Old design
388
- // TODO/v1-release: remove
388
+ // TO-DO/next-major-release: remove
389
389
  if (globalContext._pageConfigs.length === 0) {
390
390
  const hookTimeout = getHookTimeoutDefault('onBeforePrerender');
391
391
  const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
@@ -425,7 +425,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
425
425
  assertUsage(isCallable(hookFn), `${msgPrefix} should be a function.`);
426
426
  prerenderContext.pageContexts.forEach((pageContext) => {
427
427
  Object.defineProperty(pageContext, 'url', {
428
- // TODO/v1-release: remove warning
428
+ // TO-DO/next-major-release: remove warning
429
429
  get() {
430
430
  assertWarning(false, msgPrefix +
431
431
  ' uses pageContext.url but it should use pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { showStackTrace: true, onlyOnce: true });
@@ -455,7 +455,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
455
455
  }
456
456
  const errPrefix = `The ${hookName}() hook exported by ${hookFilePath}`;
457
457
  const rightUsage = `${errPrefix} should return ${pc.cyan('null')}, ${pc.cyan('undefined')}, or ${pc.cyan('{ prerenderContext: { pageContexts } }')}`;
458
- // TODO/v1-release: remove
458
+ // TO-DO/next-major-release: remove
459
459
  if (hasProp(result, 'globalContext')) {
460
460
  assertUsage(isObjectWithKeys(result, ['globalContext']) &&
461
461
  hasProp(result, 'globalContext', 'object') &&
@@ -472,7 +472,7 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
472
472
  hasProp(result.prerenderContext, 'pageContexts', 'array'), rightUsage);
473
473
  prerenderContext.pageContexts = result.prerenderContext.pageContexts;
474
474
  prerenderContext.pageContexts.forEach((pageContext) => {
475
- // TODO/v1-release: remove
475
+ // TO-DO/next-major-release: remove
476
476
  if (pageContext.url && !isPropertyGetter(pageContext, 'url')) {
477
477
  assertWarning(false, msgPrefix +
478
478
  ' provided pageContext.url but it should provide pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { onlyOnce: true });
@@ -533,10 +533,6 @@ function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerende
533
533
  async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
534
534
  const isV1 = globalContext._pageConfigs.length > 0;
535
535
  const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
536
- /* TODO/after-v1-design-release: document setting `prerender: false` as an alternative to using prerender.partial (both in the warnings and the docs)
537
- const optOutName = isV1 ? 'prerender' : 'doNotPrerender'
538
- const msgAddendum = `Explicitly opt-out by setting the config ${optOutName} to ${isV1 ? 'false' : 'true'} or use the option prerender.partial`
539
- */
540
536
  globalContext._allPageIds
541
537
  .filter((pageId) => !prerenderedPageContexts[pageId])
542
538
  .filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
@@ -639,7 +635,7 @@ function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hook
639
635
  return prerenderElement;
640
636
  }
641
637
  }
642
- // TODO/v1-release: remove
638
+ // TO-DO/next-major-release: remove
643
639
  function checkOutdatedOptions(options) {
644
640
  assertUsage(options.root === undefined, 'Option `prerender({ root })` deprecated: set `prerender({ viteConfig: { root }})` instead.', { showStackTrace: true });
645
641
  assertUsage(options.configFile === undefined, 'Option `prerender({ configFile })` deprecated: set `prerender({ viteConfig: { configFile }})` instead.', { showStackTrace: true });
@@ -684,7 +680,7 @@ function assertIsNotAbort(err, urlOriginal) {
684
680
  assertUsage(false, `${pc.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${pc.cyan(abortCaller)} isn't supported for pre-rendered pages`);
685
681
  }
686
682
  function preparePrerenderContextForPublicUsage(prerenderContext) {
687
- // TODO/v1-release: remove
683
+ // TO-DO/next-major-release: remove
688
684
  if (!('prerenderPageContexts' in prerenderContext)) {
689
685
  Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
690
686
  get() {
@@ -21,8 +21,10 @@ export type { GlobalContextServerInternal as GlobalContextServerInternal };
21
21
  export type { GlobalContextServer };
22
22
  import type { ViteManifest } from '../../types/ViteManifest.js';
23
23
  import type { ResolvedConfig, ViteDevServer } from 'vite';
24
+ import { type PageRoutes } from '../../shared/route/loadPageRoutes.js';
24
25
  import type { ViteConfigRuntime } from '../vite/shared/getViteConfigRuntime.js';
25
26
  import type { GlobalContext } from '../../types/PageContext.js';
27
+ import type { Hook } from '../../shared/hooks/getHook.js';
26
28
  declare const vikeConfigErrorRecoverMsg: "Vike config loaded";
27
29
  type GlobalContextServer = Pick<GlobalContextServerInternal, 'assetsManifest' | 'config' | 'viteConfig' | 'viteConfigRuntime' | 'pages' | 'baseServer' | 'baseAssets' | 'isClientSide'> & Vike.GlobalContext & Vike.GlobalContextServer;
28
30
  type GlobalContextServerInternal = Awaited<ReturnType<typeof setGlobalContext>>;
@@ -64,8 +66,8 @@ declare function getGlobalContextServerInternal(): Promise<{
64
66
  baseServer: string;
65
67
  baseAssets: string;
66
68
  isClientSide: false;
67
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
68
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
69
+ _pageRoutes: PageRoutes;
70
+ _onBeforeRouteHook: Hook | null;
69
71
  }) | (Record<string, unknown> & {
70
72
  isGlobalContext: true;
71
73
  _isOriginalObject: true;
@@ -104,8 +106,8 @@ declare function getGlobalContextServerInternal(): Promise<{
104
106
  baseServer: string;
105
107
  baseAssets: string;
106
108
  isClientSide: false;
107
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
108
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
109
+ _pageRoutes: PageRoutes;
110
+ _onBeforeRouteHook: Hook | null;
109
111
  }) | (Record<string, unknown> & {
110
112
  isGlobalContext: true;
111
113
  _isOriginalObject: true;
@@ -144,8 +146,8 @@ declare function getGlobalContextServerInternal(): Promise<{
144
146
  baseServer: string;
145
147
  baseAssets: string;
146
148
  isClientSide: false;
147
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
148
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
149
+ _pageRoutes: PageRoutes;
150
+ _onBeforeRouteHook: Hook | null;
149
151
  });
150
152
  }>;
151
153
  /**
@@ -164,8 +166,6 @@ declare function getGlobalContextAsync(isProduction: boolean): Promise<GlobalCon
164
166
  * Get runtime information about your app.
165
167
  *
166
168
  * https://vike.dev/getGlobalContext
167
- *
168
- * @deprecated
169
169
  */
170
170
  declare function getGlobalContextSync(): GlobalContext;
171
171
  declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): Promise<void>;
@@ -224,8 +224,8 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
224
224
  baseServer: string;
225
225
  baseAssets: string;
226
226
  isClientSide: false;
227
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
228
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
227
+ _pageRoutes: PageRoutes;
228
+ _onBeforeRouteHook: Hook | null;
229
229
  } | {
230
230
  _isPrerendering: true;
231
231
  viteConfig: ResolvedConfig;
@@ -246,8 +246,8 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
246
246
  baseServer: string;
247
247
  baseAssets: string;
248
248
  isClientSide: false;
249
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
250
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
249
+ _pageRoutes: PageRoutes;
250
+ _onBeforeRouteHook: Hook | null;
251
251
  } | {
252
252
  _isPrerendering: false;
253
253
  viteConfig: null;
@@ -268,7 +268,7 @@ declare function setGlobalContext(virtualFileExports: unknown): Promise<{
268
268
  baseServer: string;
269
269
  baseAssets: string;
270
270
  isClientSide: false;
271
- _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
272
- _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
271
+ _pageRoutes: PageRoutes;
272
+ _onBeforeRouteHook: Hook | null;
273
273
  })>;
274
274
  declare function clearGlobalContext(): void;
@@ -13,7 +13,7 @@ export { setGlobalContext_viteDevServer };
13
13
  export { setGlobalContext_viteConfig };
14
14
  export { setGlobalContext_isPrerendering };
15
15
  export { setGlobalContext_isProduction };
16
- export { setGlobalContext_buildEntry };
16
+ export { setGlobalContext_buildEntry }; // production entry
17
17
  export { clearGlobalContext };
18
18
  export { assertBuildInfo };
19
19
  export { updateUserFiles };
@@ -30,7 +30,7 @@ import { assert, onSetupRuntime, assertUsage, assertWarning, isPlainObject, obje
30
30
  import { importServerProductionEntry } from '@brillout/vite-plugin-server-entry/runtime';
31
31
  import { virtualFileIdEntryServer } from '../shared/virtualFiles/virtualFileEntry.js';
32
32
  import pc from '@brillout/picocolors';
33
- import { loadPageRoutes } from '../../shared/route/loadPageRoutes.js';
33
+ import { loadPageRoutes, loadPageRoutesSync } from '../../shared/route/loadPageRoutes.js';
34
34
  import { assertV1Design } from '../shared/assertV1Design.js';
35
35
  import { resolveBase } from '../shared/resolveBase.js';
36
36
  import { createGlobalContextShared, getGlobalContextSyncErrMsg, } from '../../shared/createGlobalContextShared.js';
@@ -39,7 +39,7 @@ import { logRuntimeError, logRuntimeInfo } from './loggerRuntime.js';
39
39
  import { getVikeConfigErrorBuild, setVikeConfigError } from '../shared/getVikeConfigError.js';
40
40
  import { hasAlreadyLogged } from './renderPage/isNewError.js';
41
41
  const debug = createDebugger('vike:globalContext');
42
- const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGlobalContext());
42
+ const globalObject = getGlobalObject('runtime/globalContext.ts', getInitialGlobalObject());
43
43
  // Trick to break down TypeScript circular dependency
44
44
  // https://chat.deepseek.com/a/chat/s/d7e9f90a-c7f3-4108-9cd5-4ad6caed3539
45
45
  const globalObjectTyped = globalObject;
@@ -99,17 +99,19 @@ async function getGlobalContextAsync(isProduction) {
99
99
  * Get runtime information about your app.
100
100
  *
101
101
  * https://vike.dev/getGlobalContext
102
- *
103
- * @deprecated
104
102
  */
105
103
  function getGlobalContextSync() {
106
104
  debug('getGlobalContextSync()');
107
105
  const { globalContext } = globalObjectTyped;
108
106
  assertUsage(globalContext, getGlobalContextSyncErrMsg);
109
- assertWarning(false,
110
- // We discourage users from using it because `pageContext.globalContext` is safer: I ain't sure but there could be race conditions when using `getGlobalContextSync()` inside React/Vue components upon HMR.
111
- // We're lying about "is going to be deprecated in the next major release": let's keep it and see if users need it (so far I can't see a use case for it).
112
- 'getGlobalContextSync() is going to be deprecated in the next major release, see https://vike.dev/getGlobalContext', { onlyOnce: true });
107
+ const isProd = globalContext._isProduction;
108
+ assert(typeof isProd === 'boolean');
109
+ assertWarning(isProd,
110
+ // - We discourage users from using it in development because `pageContext.globalContext` is safer: I ain't sure but there could be race conditions when using `getGlobalContextSync()` inside React/Vue components upon HMR.
111
+ // - I don't see any issues with getGlobalContextSync() in production.
112
+ // - getGlobalContextSync() is used in production by vike-vercel
113
+ // - https://discord.com/channels/@me/942519153502339072/1389546794676916344 (PM between Rom and Joël)
114
+ "getGlobalContextSync() shouldn't be used in development, see https://vike.dev/getGlobalContext", { onlyOnce: true });
113
115
  return getGlobalContextForPublicUsage();
114
116
  }
115
117
  function getGlobalContextForPublicUsage() {
@@ -230,6 +232,7 @@ function assertViteManifest(manifest) {
230
232
  async function loadBuildEntry(outDir) {
231
233
  debug('loadBuildEntry()');
232
234
  if (globalObject.globalContext) {
235
+ debug('loadBuildEntry() - already done');
233
236
  return;
234
237
  }
235
238
  if (!globalObject.buildEntry) {
@@ -255,6 +258,8 @@ async function loadBuildEntry(outDir) {
255
258
  globalObject.buildInfo = buildEntry.buildInfo;
256
259
  await setGlobalContext(buildEntry.virtualFileExports);
257
260
  }
261
+ // This is the production entry, see:
262
+ // https://github.com/vikejs/vike/blob/798e5465dc3e3e6723b38b601a50350c0a006fb8/packages/vike/node/vite/plugins/pluginBuild/pluginBuildEntry.ts#L47
258
263
  async function setGlobalContext_buildEntry(buildEntry) {
259
264
  debug('setGlobalContext_buildEntry()');
260
265
  setIsProduction(true);
@@ -264,6 +269,7 @@ async function setGlobalContext_buildEntry(buildEntry) {
264
269
  assert(globalObject.buildEntry); // ensure no infinite loop
265
270
  await loadBuildEntry();
266
271
  assertGlobalContextIsDefined();
272
+ debug('setGlobalContext_buildEntry() - done');
267
273
  }
268
274
  function assertBuildEntry(buildEntry) {
269
275
  assert(isObject(buildEntry));
@@ -360,18 +366,29 @@ async function updateUserFiles() {
360
366
  return onSuccess();
361
367
  }
362
368
  async function setGlobalContext(virtualFileExports) {
369
+ debug('setGlobalContext()');
363
370
  assert(!getVikeConfigErrorBuild());
364
- const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContext);
371
+ const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, addGlobalContextAsync, addGlobalContextSync);
365
372
  assertV1Design(
366
373
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
367
374
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
368
375
  assertGlobalContextIsDefined();
369
376
  onSetupRuntime();
377
+ debug('setGlobalContext() - done');
370
378
  // Never actually used, only used for TypeScript `ReturnType<typeof setGlobalContext>`
371
379
  return globalContext;
372
380
  }
373
- async function addGlobalContext(globalContext) {
381
+ async function addGlobalContextAsync(globalContext) {
382
+ debug('addGlobalContextAsync()');
374
383
  const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
384
+ return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
385
+ }
386
+ function addGlobalContextSync(globalContext) {
387
+ debug('addGlobalContextSync()');
388
+ const { pageRoutes, onBeforeRouteHook } = loadPageRoutesSync(globalContext._pageFilesAll, globalContext._pageConfigs, globalContext._pageConfigGlobal, globalContext._allPageIds);
389
+ return addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook);
390
+ }
391
+ function addGlobalContextCommon(globalContext, pageRoutes, onBeforeRouteHook) {
375
392
  const globalContextBase = {
376
393
  isClientSide: false,
377
394
  _pageRoutes: pageRoutes,
@@ -430,10 +447,10 @@ async function addGlobalContext(globalContext) {
430
447
  }
431
448
  function clearGlobalContext() {
432
449
  debug('clearGlobalContext()');
433
- objectReplace(globalObject, getInitialGlobalContext(), ['buildEntryPrevious']);
450
+ objectReplace(globalObject, getInitialGlobalObject(), ['buildEntryPrevious']);
434
451
  }
435
- function getInitialGlobalContext() {
436
- debug('getInitialGlobalContext()');
452
+ function getInitialGlobalObject() {
453
+ debug('getInitialGlobalObject()');
437
454
  const { promise: viteDevServerPromise, resolve: viteDevServerPromiseResolve } = genPromise();
438
455
  return {
439
456
  viteDevServerPromise,
@@ -1,7 +1,7 @@
1
1
  export { injectAssets__public };
2
2
  import { assertUsage, assertWarning, castProp, hasProp } from '../../utils.js';
3
3
  import { injectHtmlTagsToString } from '../injectAssets.js';
4
- // TODO/v1-release: remove
4
+ // TO-DO/next-major-release: remove
5
5
  async function injectAssets__public(htmlString, pageContext) {
6
6
  assertWarning(false, '`_injectAssets()` is deprecated and will be removed.', { onlyOnce: true, showStackTrace: true });
7
7
  assertUsage(typeof htmlString === 'string', '[injectAssets(htmlString, pageContext)]: Argument `htmlString` should be a string.', { showStackTrace: true });
@@ -149,6 +149,8 @@ function getTagClosing(tag) {
149
149
  return tagClosing;
150
150
  }
151
151
  function injectAtPlaceholder(htmlFragment, htmlString, isFirst) {
152
+ // TO-DO/eventually: soft deprecate in favor of https://github.com/vikejs/vike/issues/695
153
+ // Used by BurdaForward https://github.com/vikejs/vike/discussions/2528#discussioncomment-13637156
152
154
  const placeholder = isFirst ? '__VITE_PLUGIN_SSR__ASSETS_FIRST__' : '__VITE_PLUGIN__SSR_ASSETS_LAST__';
153
155
  const parts = htmlString.split(placeholder);
154
156
  if (parts.length === 1)