vike 0.4.218 → 0.4.220-commit-a9f46b8

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 (211) hide show
  1. package/dist/cjs/__internal/index.js +11 -11
  2. package/dist/cjs/node/api/build.js +22 -48
  3. package/dist/cjs/node/api/context.js +8 -6
  4. package/dist/cjs/node/api/index.js +17 -7
  5. package/dist/cjs/node/api/prepareViteApiCall.js +40 -13
  6. package/dist/cjs/node/cli/context.js +16 -0
  7. package/dist/cjs/node/cli/entry.js +21 -7
  8. package/dist/cjs/node/cli/utils.js +1 -0
  9. package/dist/cjs/node/plugin/index.js +5 -5
  10. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +32 -20
  11. package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
  12. package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
  13. package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  14. package/dist/cjs/node/plugin/plugins/commonConfig.js +41 -4
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
  19. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
  20. package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  21. package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
  22. package/dist/cjs/node/prerender/context.js +24 -0
  23. package/dist/cjs/node/prerender/runPrerender.js +146 -96
  24. package/dist/cjs/node/prerender/utils.js +2 -0
  25. package/dist/cjs/node/runtime/globalContext.js +109 -55
  26. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  27. package/dist/cjs/node/runtime/index-common.js +0 -15
  28. package/dist/cjs/node/runtime/onLoad.js +17 -3
  29. package/dist/cjs/node/runtime/page-files/setup.js +2 -4
  30. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  31. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
  32. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  33. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  34. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
  35. package/dist/cjs/node/runtime/renderPage.js +21 -22
  36. package/dist/cjs/node/runtime/utils.js +2 -0
  37. package/dist/cjs/node/runtime-dev/index.js +17 -7
  38. package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
  39. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
  40. package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  41. package/dist/cjs/shared/getPageFiles.js +3 -9
  42. package/dist/cjs/shared/hooks/getHook.js +3 -3
  43. package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
  44. package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
  45. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  46. package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
  47. package/dist/cjs/shared/utils.js +1 -0
  48. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  49. package/dist/cjs/utils/assert.js +4 -3
  50. package/dist/cjs/utils/assertSetup.js +47 -16
  51. package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
  52. package/dist/cjs/utils/debug.js +11 -6
  53. package/dist/cjs/utils/getGlobalObject.js +1 -2
  54. package/dist/cjs/utils/isDev.js +2 -0
  55. package/dist/cjs/utils/makePublicCopy.js +32 -0
  56. package/dist/cjs/utils/objectReplace.js +9 -0
  57. package/dist/esm/__internal/index.d.ts +3 -5
  58. package/dist/esm/__internal/index.js +6 -8
  59. package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
  60. package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
  61. package/dist/esm/client/client-routing-runtime/entry.js +0 -1
  62. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
  63. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
  64. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  65. package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
  66. package/dist/esm/client/client-routing-runtime/history.js +23 -18
  67. package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
  68. package/dist/esm/client/client-routing-runtime/index.js +0 -1
  69. package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
  70. package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +3 -4
  71. package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
  72. package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -62
  73. package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
  74. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
  75. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  76. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
  77. package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
  78. package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
  79. package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
  80. package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
  81. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  82. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  83. package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
  84. package/dist/esm/client/server-routing-runtime/entry.js +0 -1
  85. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  86. package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
  87. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  88. package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
  89. package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
  90. package/dist/esm/client/shared/normalizeClientSideUrl.js +2 -3
  91. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  92. package/dist/esm/node/api/build.d.ts +1 -6
  93. package/dist/esm/node/api/build.js +20 -26
  94. package/dist/esm/node/api/context.d.ts +4 -2
  95. package/dist/esm/node/api/context.js +8 -7
  96. package/dist/esm/node/api/prepareViteApiCall.d.ts +0 -1
  97. package/dist/esm/node/api/prepareViteApiCall.js +26 -9
  98. package/dist/esm/node/cli/context.d.ts +5 -0
  99. package/dist/esm/node/cli/context.js +14 -0
  100. package/dist/esm/node/cli/entry.js +4 -0
  101. package/dist/esm/node/cli/parseCli.d.ts +3 -1
  102. package/dist/esm/node/cli/utils.d.ts +1 -0
  103. package/dist/esm/node/cli/utils.js +1 -0
  104. package/dist/esm/node/plugin/index.d.ts +1 -1
  105. package/dist/esm/node/plugin/index.js +5 -5
  106. package/dist/esm/node/plugin/plugins/autoFullBuild.js +32 -20
  107. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
  108. package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
  109. package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
  110. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
  111. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
  112. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  113. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +10 -1
  114. package/dist/esm/node/plugin/plugins/commonConfig.js +42 -5
  115. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
  116. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
  117. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
  118. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
  119. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
  120. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  121. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +7 -5
  122. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
  123. package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
  124. package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  125. package/dist/esm/node/prerender/context.d.ts +9 -0
  126. package/dist/esm/node/prerender/context.js +22 -0
  127. package/dist/esm/node/prerender/runPrerender.d.ts +42 -2
  128. package/dist/esm/node/prerender/runPrerender.js +130 -90
  129. package/dist/esm/node/prerender/utils.d.ts +2 -0
  130. package/dist/esm/node/prerender/utils.js +2 -0
  131. package/dist/esm/node/runtime/globalContext.d.ts +23 -7
  132. package/dist/esm/node/runtime/globalContext.js +109 -55
  133. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  134. package/dist/esm/node/runtime/index-common.d.ts +0 -1
  135. package/dist/esm/node/runtime/index-common.js +0 -15
  136. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
  137. package/dist/esm/node/runtime/onLoad.js +16 -2
  138. package/dist/esm/node/runtime/page-files/setup.js +3 -3
  139. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  140. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  141. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
  142. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
  143. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
  144. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  145. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
  146. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  147. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
  148. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
  149. package/dist/esm/node/runtime/renderPage.js +22 -23
  150. package/dist/esm/node/runtime/utils.d.ts +2 -0
  151. package/dist/esm/node/runtime/utils.js +2 -0
  152. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  153. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
  154. package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
  155. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  156. package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
  157. package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  158. package/dist/esm/shared/getPageFiles.d.ts +2 -5
  159. package/dist/esm/shared/getPageFiles.js +1 -4
  160. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  161. package/dist/esm/shared/hooks/getHook.js +1 -1
  162. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
  163. package/dist/esm/shared/page-configs/Config.d.ts +20 -2
  164. package/dist/esm/shared/page-configs/PageConfig.d.ts +13 -6
  165. package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
  166. package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
  167. package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
  168. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
  169. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  170. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  171. package/dist/esm/shared/route/loadPageRoutes.js +1 -1
  172. package/dist/esm/shared/types.d.ts +1 -1
  173. package/dist/esm/shared/utils.d.ts +1 -0
  174. package/dist/esm/shared/utils.js +1 -0
  175. package/dist/esm/types/index.d.ts +1 -1
  176. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  177. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  178. package/dist/esm/utils/assert.js +4 -3
  179. package/dist/esm/utils/assertSetup.js +47 -16
  180. package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
  181. package/dist/esm/utils/catchInfiniteLoop.js +32 -0
  182. package/dist/esm/utils/debug.d.ts +1 -1
  183. package/dist/esm/utils/debug.js +11 -6
  184. package/dist/esm/utils/getGlobalObject.js +1 -2
  185. package/dist/esm/utils/isDev.js +2 -0
  186. package/dist/esm/utils/makePublicCopy.d.ts +3 -0
  187. package/dist/esm/utils/makePublicCopy.js +30 -0
  188. package/dist/esm/utils/objectReplace.d.ts +1 -0
  189. package/dist/esm/utils/objectReplace.js +6 -0
  190. package/dist/esm/utils/projectInfo.d.ts +1 -1
  191. package/package.json +4 -13
  192. package/__internal/loadImportBuild.js +0 -3
  193. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
  194. package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
  195. package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
  196. package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
  197. package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
  198. package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
  199. package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
  200. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
  201. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
  202. package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
  203. package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
  204. package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
  205. package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
  206. package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
  207. /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  208. /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
  209. /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  210. /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
  211. /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
@@ -66,10 +66,8 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
66
66
  }
67
67
  }
68
68
  // Prepare context
69
- let renderContext;
70
69
  try {
71
70
  await (0, globalContext_js_1.initGlobalContext_renderPage)();
72
- renderContext = await (0, renderPageAlreadyRouted_js_1.getRenderContext)();
73
71
  }
74
72
  catch (err) {
75
73
  // Errors are expected since assertUsage() is used in both initGlobalContext_renderPage() and getRenderContext().
@@ -83,7 +81,7 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
83
81
  return handleInvalidConfig(isConfigInvalid_js_1.isConfigInvalid.err);
84
82
  }
85
83
  else {
86
- // From now on, renderContext.pageConfigs contains all the configuration data; getVikeConfig() isn't called anymore for this request
84
+ // From now on, gloablContext contains all the configuration data; getVikeConfig() isn't called anymore for this request
87
85
  }
88
86
  // Check Base URL
89
87
  assertBaseUrl(pageContextInit);
@@ -99,9 +97,9 @@ async function renderPageAndPrepare(pageContextInit, httpRequestId) {
99
97
  if (pageContextHttpResponse)
100
98
  return pageContextHttpResponse;
101
99
  }
102
- return await renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderContext, []);
100
+ return await renderPageAlreadyPrepared(pageContextInit, httpRequestId, []);
103
101
  }
104
- async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderContext, pageContextsFromRewrite) {
102
+ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, pageContextsFromRewrite) {
105
103
  (0, abort_js_1.assertNoInfiniteAbortLoop)(pageContextsFromRewrite.length,
106
104
  // There doesn't seem to be a way to count the number of HTTP redirects (vike don't have access to the HTTP request headers/cookies)
107
105
  // https://stackoverflow.com/questions/9683007/detect-infinite-http-redirect-loop-on-server-side
@@ -113,7 +111,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
113
111
  (0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextFromAllRewrites);
114
112
  }
115
113
  {
116
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, renderContext, pageContextNominalPageInit._urlRewrite, httpRequestId);
114
+ const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, pageContextNominalPageInit._urlRewrite, httpRequestId);
117
115
  (0, utils_js_1.objectAssign)(pageContextNominalPageInit, pageContextInitEnhanced);
118
116
  }
119
117
  let errNominalPage;
@@ -145,10 +143,10 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
145
143
  (0, utils_js_1.assert)(pageContextNominalPageSuccess === undefined);
146
144
  (0, utils_js_1.assert)(pageContextNominalPageInit);
147
145
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextNominalPageInit, 'urlOriginal', 'string'));
148
- const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit, renderContext, httpRequestId);
146
+ const pageContextErrorPageInit = await getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPageInit, httpRequestId);
149
147
  // Handle `throw redirect()` and `throw render()` while rendering nominal page
150
148
  if ((0, abort_js_1.isAbortError)(errNominalPage)) {
151
- const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageInit);
149
+ const handled = await handleAbortError(errNominalPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
152
150
  if (handled.pageContextReturn) {
153
151
  // - throw redirect()
154
152
  // - throw render(url)
@@ -161,7 +159,8 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
161
159
  Object.assign(pageContextErrorPageInit, handled.pageContextAbort);
162
160
  }
163
161
  {
164
- const errorPageId = (0, error_page_js_1.getErrorPageId)(renderContext.pageFilesAll, renderContext.pageConfigs);
162
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
163
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
165
164
  if (!errorPageId) {
166
165
  (0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: null });
167
166
  return (0, handleErrorWithoutErrorPage_js_1.handleErrorWithoutErrorPage)(pageContextErrorPageInit);
@@ -177,7 +176,7 @@ async function renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderC
177
176
  catch (errErrorPage) {
178
177
  // Handle `throw redirect()` and `throw render()` while rendering error page
179
178
  if ((0, abort_js_1.isAbortError)(errErrorPage)) {
180
- const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageInit);
179
+ const handled = await handleAbortError(errErrorPage, pageContextsFromRewrite, pageContextInit, pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit);
181
180
  // throw render(abortStatusCode)
182
181
  if (!handled.pageContextReturn) {
183
182
  const pageContextAbort = errErrorPage._pageContextAbort;
@@ -293,8 +292,8 @@ async function renderPageNominal(pageContext) {
293
292
  (0, utils_js_1.assert)(pageContext === pageContextAfterRender);
294
293
  return pageContextAfterRender;
295
294
  }
296
- async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial, renderContext, httpRequestId) {
297
- const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, renderContext, null, httpRequestId);
295
+ async function getPageContextErrorPageInit(pageContextInit, errNominalPage, pageContextNominalPagePartial, httpRequestId) {
296
+ const pageContextInitEnhanced = getPageContextInitEnhancedSSR(pageContextInit, null, httpRequestId);
298
297
  (0, utils_js_1.assert)(errNominalPage);
299
298
  const pageContext = {};
300
299
  (0, utils_js_1.objectAssign)(pageContext, pageContextInitEnhanced);
@@ -309,9 +308,9 @@ async function getPageContextErrorPageInit(pageContextInit, errNominalPage, page
309
308
  (0, utils_js_1.assert)(pageContext.errorWhileRendering);
310
309
  return pageContext;
311
310
  }
312
- function getPageContextInitEnhancedSSR(pageContextInit, renderContext, urlRewrite, httpRequestId) {
311
+ function getPageContextInitEnhancedSSR(pageContextInit, urlRewrite, httpRequestId) {
313
312
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
314
- const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, renderContext, {
313
+ const pageContextInitEnhanced = (0, renderPageAlreadyRouted_js_1.getPageContextInitEnhanced)(pageContextInit, {
315
314
  ssr: {
316
315
  urlRewrite,
317
316
  urlHandler: _urlHandler,
@@ -360,12 +359,12 @@ function normalizeUrl(pageContextInit, httpRequestId) {
360
359
  return pageContextHttpResponse;
361
360
  }
362
361
  function getPermanentRedirect(pageContextInit, httpRequestId) {
363
- const { redirects, baseServer } = (0, globalContext_js_1.getGlobalContext)();
364
- const urlWithoutBase = (0, utils_js_1.removeBaseServer)(pageContextInit.urlOriginal, baseServer);
362
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
363
+ const urlWithoutBase = (0, utils_js_1.removeBaseServer)(pageContextInit.urlOriginal, globalContext.baseServer);
365
364
  let origin = null;
366
365
  let urlTargetExternal = null;
367
366
  let urlTarget = (0, utils_js_1.modifyUrlPathname)(urlWithoutBase, (urlPathname) => {
368
- const urlTarget = (0, resolveRedirects_js_1.resolveRedirects)(redirects, urlPathname);
367
+ const urlTarget = (0, resolveRedirects_js_1.resolveRedirects)(globalContext.vikeConfig.global.config.redirects ?? [], urlPathname);
369
368
  if (urlTarget === null)
370
369
  return null;
371
370
  if (!(0, utils_js_1.isUrl)(urlTarget)) {
@@ -393,7 +392,7 @@ function getPermanentRedirect(pageContextInit, httpRequestId) {
393
392
  if (normalize(urlTarget) === normalize(urlWithoutBase))
394
393
  return null;
395
394
  if (!originChanged)
396
- urlTarget = (0, utils_js_1.prependBase)(urlTarget, baseServer);
395
+ urlTarget = (0, utils_js_1.prependBase)(urlTarget, globalContext.baseServer);
397
396
  (0, utils_js_1.assert)(urlTarget !== pageContextInit.urlOriginal);
398
397
  }
399
398
  (0, loggerRuntime_js_1.logRuntimeInfo)?.(`Permanent redirection defined by config.redirects (https://vike.dev/redirects)`, httpRequestId, 'info');
@@ -407,13 +406,14 @@ function normalize(url) {
407
406
  }
408
407
  async function handleAbortError(errAbort, pageContextsFromRewrite, pageContextInit,
409
408
  // handleAbortError() creates a new pageContext object and we don't merge pageContextNominalPageInit to it: we only use some pageContextNominalPageInit information.
410
- pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageInit) {
409
+ pageContextNominalPageInit, httpRequestId, pageContextErrorPageInit) {
411
410
  (0, abort_js_1.logAbortErrorHandled)(errAbort, (0, globalContext_js_1.getGlobalContext)().isProduction, pageContextNominalPageInit);
412
411
  const pageContextAbort = errAbort._pageContextAbort;
413
412
  let pageContextSerialized;
414
413
  if (pageContextNominalPageInit.isClientSideNavigation) {
415
414
  if (pageContextAbort.abortStatusCode) {
416
- const errorPageId = (0, error_page_js_1.getErrorPageId)(renderContext.pageFilesAll, renderContext.pageConfigs);
415
+ const globalContext = (0, globalContext_js_1.getGlobalContext)();
416
+ const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext.pageFilesAll, globalContext.pageConfigs);
417
417
  const abortCall = pageContextAbort._abortCall;
418
418
  (0, utils_js_1.assert)(abortCall);
419
419
  (0, utils_js_1.assertUsage)(errorPageId, `You called ${picocolors_1.default.cyan(abortCall)} but you didn't define an error page, make sure to define one https://vike.dev/error-page`);
@@ -421,7 +421,6 @@ pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageIn
421
421
  (0, utils_js_1.objectAssign)(pageContext, { pageId: errorPageId });
422
422
  (0, utils_js_1.objectAssign)(pageContext, pageContextAbort);
423
423
  (0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit);
424
- (0, utils_js_1.objectAssign)(pageContext, renderContext);
425
424
  (0, utils_js_1.objectAssign)(pageContext, await (0, loadUserFilesServerSide_js_1.loadUserFilesServerSide)(pageContext));
426
425
  // We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
427
426
  pageContextSerialized = (0, serializePageContextClientSide_js_1.serializePageContextClientSide)(pageContext);
@@ -434,7 +433,7 @@ pageContextNominalPageInit, httpRequestId, renderContext, pageContextErrorPageIn
434
433
  return { pageContextReturn };
435
434
  }
436
435
  if (pageContextAbort._urlRewrite) {
437
- const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId, renderContext, [
436
+ const pageContextReturn = await renderPageAlreadyPrepared(pageContextInit, httpRequestId, [
438
437
  ...pageContextsFromRewrite,
439
438
  pageContextAbort
440
439
  ]);
@@ -35,6 +35,7 @@ __exportStar(require("../../utils/projectInfo.js"), exports);
35
35
  __exportStar(require("../../utils/isArray.js"), exports);
36
36
  __exportStar(require("../../utils/isObject.js"), exports);
37
37
  __exportStar(require("../../utils/objectAssign.js"), exports);
38
+ __exportStar(require("../../utils/objectReplace.js"), exports);
38
39
  __exportStar(require("../../utils/PromiseType.js"), exports);
39
40
  __exportStar(require("../../utils/compareString.js"), exports);
40
41
  __exportStar(require("../../utils/isObjectWithKeys.js"), exports);
@@ -75,3 +76,4 @@ __exportStar(require("../../utils/isVikeReactApp.js"), exports);
75
76
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
76
77
  __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
77
78
  __exportStar(require("../../utils/genPromise.js"), exports);
79
+ __exportStar(require("../../utils/makePublicCopy.js"), exports);
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.createDevMiddleware = void 0;
27
37
  const createDevMiddleware_ = async (...args) => {
@@ -10,8 +10,6 @@ function assertRuntimeManifest(obj) {
10
10
  (0, utils_js_1.assert)((0, utils_js_1.isBaseServer)(obj.baseServer));
11
11
  (0, utils_js_1.assert)((0, utils_js_1.isBaseAssets)(obj.baseAssets));
12
12
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(obj, 'includeAssetsImportedByServer', 'boolean'));
13
- (0, utils_js_1.assert)((0, utils_js_1.hasProp)(obj, 'redirects', 'object'));
14
- (0, utils_js_1.castType)(obj);
15
13
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(obj, 'trailingSlash', 'boolean'));
16
14
  (0, utils_js_1.assert)((0, utils_js_1.hasProp)(obj, 'disableUrlNormalization', 'boolean'));
17
15
  (0, utils_js_1.checkType)(obj);
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.analyzeClientSide = analyzeClientSide;
4
- const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
4
+ const getConfigValueRuntime_js_1 = require("../page-configs/getConfigValueRuntime.js");
5
5
  const analyzePageClientSide_js_1 = require("./analyzePageClientSide.js");
6
6
  function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
7
7
  // V1 design
8
8
  if (pageConfig) {
9
- const isClientRouting = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
10
- const isClientRuntimeLoaded = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'isClientRuntimeLoaded', 'boolean')?.value ?? false;
9
+ const isClientRouting = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
10
+ const isClientRuntimeLoaded = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'isClientRuntimeLoaded', 'boolean')?.value ?? false;
11
11
  return { isClientRuntimeLoaded, isClientRouting };
12
12
  }
13
13
  else {
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPageFilesAll = getPageFilesAll;
3
4
  exports.setPageFiles = setPageFiles;
4
5
  exports.setPageFilesAsync = setPageFilesAsync;
5
- exports.getPageFilesAll = getPageFilesAll;
6
6
  const utils_js_1 = require("../utils.js");
7
7
  const parseGlobResults_js_1 = require("./parseGlobResults.js");
8
8
  const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
9
+ const getPageConfigUserFriendly_js_1 = require("../page-configs/getPageConfigUserFriendly.js");
9
10
  const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('setPageFiles.ts', {});
10
- // TODO:v1-design-release: rename setPageFiles() getPageFilesAll() parseGlobResult()
11
11
  function setPageFiles(pageFilesExports) {
12
12
  const { pageFiles, pageConfigs, pageConfigGlobal } = (0, parseGlobResults_js_1.parseGlobResults)(pageFilesExports);
13
13
  globalObject.pageFilesAll = pageFiles;
14
14
  globalObject.pageConfigs = pageConfigs;
15
15
  globalObject.pageConfigGlobal = pageConfigGlobal;
16
+ // TODO/now: re-use this call, instead of calling it twice
17
+ globalObject.globalConfig = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)(pageConfigGlobal);
16
18
  }
17
19
  function setPageFilesAsync(getPageFilesExports) {
18
20
  globalObject.pageFilesGetter = async () => {
@@ -25,18 +27,18 @@ async function getPageFilesAll(isClientSide, isProduction) {
25
27
  (0, utils_js_1.assert)(isProduction === undefined);
26
28
  }
27
29
  else {
28
- (0, utils_js_1.assert)(globalObject.pageFilesGetter);
29
30
  (0, utils_js_1.assert)(typeof isProduction === 'boolean');
30
31
  if (!globalObject.pageFilesAll ||
31
32
  // We reload all glob imports in dev to make auto-reload work
32
33
  !isProduction) {
34
+ (0, utils_js_1.assert)(globalObject.pageFilesGetter);
33
35
  await globalObject.pageFilesGetter();
34
36
  }
35
37
  }
36
- const { pageFilesAll, pageConfigs, pageConfigGlobal } = globalObject;
37
- (0, utils_js_1.assert)(pageFilesAll && pageConfigs && pageConfigGlobal);
38
+ const { pageFilesAll, pageConfigs, pageConfigGlobal, globalConfig } = globalObject;
39
+ (0, utils_js_1.assert)(pageFilesAll && pageConfigs && pageConfigGlobal && globalConfig);
38
40
  const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
39
- return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal };
41
+ return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig };
40
42
  }
41
43
  function getAllPageIds(allPageFiles, pageConfigs) {
42
44
  const fileIds = allPageFiles.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
@@ -1,15 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPageContextExports = exports.getPageFilesServerSide = exports.getPageFilesClientSide = exports.setPageFilesAsync = exports.setPageFiles = exports.getPageFilesAll = void 0;
4
- var setPageFiles_js_1 = require("./getPageFiles/setPageFiles.js");
5
- Object.defineProperty(exports, "getPageFilesAll", { enumerable: true, get: function () { return setPageFiles_js_1.getPageFilesAll; } });
6
- var setPageFiles_js_2 = require("./getPageFiles/setPageFiles.js");
7
- Object.defineProperty(exports, "setPageFiles", { enumerable: true, get: function () { return setPageFiles_js_2.setPageFiles; } });
8
- var setPageFiles_js_3 = require("./getPageFiles/setPageFiles.js");
9
- Object.defineProperty(exports, "setPageFilesAsync", { enumerable: true, get: function () { return setPageFiles_js_3.setPageFilesAsync; } });
3
+ exports.getPageConfigUserFriendly = exports.getPageFilesServerSide = exports.getPageFilesClientSide = void 0;
10
4
  var getAllPageIdFiles_js_1 = require("./getPageFiles/getAllPageIdFiles.js");
11
5
  Object.defineProperty(exports, "getPageFilesClientSide", { enumerable: true, get: function () { return getAllPageIdFiles_js_1.getPageFilesClientSide; } });
12
6
  var getAllPageIdFiles_js_2 = require("./getPageFiles/getAllPageIdFiles.js");
13
7
  Object.defineProperty(exports, "getPageFilesServerSide", { enumerable: true, get: function () { return getAllPageIdFiles_js_2.getPageFilesServerSide; } });
14
- var getExports_js_1 = require("./getPageFiles/getExports.js");
15
- Object.defineProperty(exports, "getPageContextExports", { enumerable: true, get: function () { return getExports_js_1.getPageContextExports; } });
8
+ var getPageConfigUserFriendly_js_1 = require("./page-configs/getPageConfigUserFriendly.js");
9
+ Object.defineProperty(exports, "getPageConfigUserFriendly", { enumerable: true, get: function () { return getPageConfigUserFriendly_js_1.getPageConfigUserFriendly; } });
@@ -11,7 +11,7 @@ exports.getHook_setIsPrerenderering = getHook_setIsPrerenderering;
11
11
  exports.getHookTimeoutDefault = getHookTimeoutDefault;
12
12
  const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
13
13
  const helpers_js_1 = require("../page-configs/helpers.js");
14
- const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
14
+ const getConfigValueRuntime_js_1 = require("../page-configs/getConfigValueRuntime.js");
15
15
  const utils_js_1 = require("../utils.js");
16
16
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
17
17
  const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('getHook.ts', {});
@@ -33,8 +33,8 @@ function getHook(pageContext, hookName) {
33
33
  return { hookFn, hookName, hookFilePath, hookTimeout };
34
34
  }
35
35
  function getHookFromPageConfig(pageConfig, hookName) {
36
- const configValue = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, hookName);
37
- const hooksTimeout = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'hooksTimeout')?.value;
36
+ const configValue = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, hookName);
37
+ const hooksTimeout = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'hooksTimeout')?.value;
38
38
  if (!configValue)
39
39
  return null;
40
40
  const hookFn = configValue.value;
@@ -3,17 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPageContextExports = getPageContextExports;
7
- const isScriptFile_js_1 = require("../../utils/isScriptFile.js");
6
+ exports.getPageConfigUserFriendly = getPageConfigUserFriendly;
7
+ exports.getPageConfigUserFriendlyNew = getPageConfigUserFriendlyNew;
8
+ const assert_exports_old_design_js_1 = require("../getPageFiles/assert_exports_old_design.js");
9
+ const getConfigDefinedAt_js_1 = require("./getConfigDefinedAt.js");
10
+ const helpers_js_1 = require("./helpers.js");
8
11
  const utils_js_1 = require("../utils.js");
9
- const assert_exports_old_design_js_1 = require("./assert_exports_old_design.js");
10
- const getConfigDefinedAt_js_1 = require("../page-configs/getConfigDefinedAt.js");
11
- const helpers_js_1 = require("../page-configs/helpers.js");
12
12
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
13
- function getPageContextExports(pageFiles, pageConfig) {
14
- const configEntries = {};
13
+ function getPageConfigUserFriendly(pageFiles, pageConfig) {
15
14
  const config = {};
16
- const exportsAll = {};
15
+ const configEntries = {}; // TODO/v1-release: remove
16
+ const exportsAll = {}; // TODO/v1-release: remove
17
17
  // V0.4 design
18
18
  // TODO/v1-release: remove
19
19
  pageFiles.forEach((pageFile) => {
@@ -31,78 +31,26 @@ function getPageContextExports(pageFiles, pageConfig) {
31
31
  });
32
32
  });
33
33
  });
34
- // V1 design
35
- const source = {};
36
- const sources = {};
37
- const addSrc = (src, configName) => {
38
- source[configName] = src;
39
- sources[configName] ?? (sources[configName] = []);
40
- sources[configName].push(src);
41
- };
42
- const from = {
43
- configsStandard: {},
44
- configsCumulative: {},
45
- configsComputed: {}
46
- };
34
+ let source;
35
+ let sources;
36
+ let from;
47
37
  if (pageConfig) {
48
- Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
49
- const { value } = configValue;
50
- const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
51
- const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, configValue.definedAtData);
52
- config[configName] = config[configName] ?? value;
53
- configEntries[configName] = configEntries[configName] ?? [];
54
- // Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
55
- (0, utils_js_1.assert)(configEntries[configName].length === 0);
56
- configEntries[configName].push({
57
- configValue: value,
58
- configDefinedAt,
59
- configDefinedByFile: configValueFilePathToShowToUser
60
- });
61
- if (configValue.type === 'standard') {
62
- const src = {
63
- type: 'configsStandard',
64
- value: configValue.value,
65
- definedAt: (0, getConfigDefinedAt_js_1.getDefinedAtString)(configValue.definedAtData, configName)
66
- };
67
- addSrc(src, configName);
68
- from.configsStandard[configName] = src;
69
- }
70
- if (configValue.type === 'cumulative') {
71
- const src = {
72
- type: 'configsCumulative',
73
- values: configValue.value.map((value, i) => {
74
- const definedAtFile = configValue.definedAtData[i];
75
- (0, utils_js_1.assert)(definedAtFile);
76
- const definedAt = (0, getConfigDefinedAt_js_1.getDefinedAtString)(definedAtFile, configName);
77
- return {
78
- value,
79
- definedAt
80
- };
81
- })
82
- };
83
- addSrc(src, configName);
84
- from.configsCumulative[configName] = src;
85
- }
86
- if (configValue.type === 'computed') {
87
- const src = {
88
- type: 'configsComputed',
89
- value: configValue.value
90
- };
91
- addSrc(src, configName);
92
- from.configsComputed[configName] = src;
93
- }
94
- // TODO/v1-release: remove
95
- const exportName = configName;
96
- exportsAll[exportName] = exportsAll[exportName] ?? [];
97
- exportsAll[exportName].push({
98
- exportValue: value,
99
- exportSource: configDefinedAt,
100
- filePath: configValueFilePathToShowToUser,
101
- _filePath: configValueFilePathToShowToUser,
102
- _fileType: null,
103
- _isFromDefaultExport: null
104
- });
105
- });
38
+ const res = getPageConfigUserFriendlyNew(pageConfig);
39
+ source = res.source;
40
+ sources = res.sources;
41
+ from = res.from;
42
+ Object.assign(config, res.config);
43
+ Object.assign(configEntries, res.configEntries);
44
+ Object.assign(exportsAll, res.exportsAll);
45
+ }
46
+ else {
47
+ source = {};
48
+ sources = {};
49
+ from = {
50
+ configsStandard: {},
51
+ configsCumulative: {},
52
+ configsComputed: {}
53
+ };
106
54
  }
107
55
  const pageExports = createObjectWithDeprecationWarning();
108
56
  const exports = {};
@@ -132,17 +80,101 @@ function getPageContextExports(pageFiles, pageConfig) {
132
80
  };
133
81
  return pageContextExports;
134
82
  }
83
+ // V1 design
84
+ function getPageConfigUserFriendlyNew(pageConfig) {
85
+ const config = {};
86
+ const configEntries = {};
87
+ const exportsAll = {};
88
+ const source = {};
89
+ const sources = {};
90
+ const from = {
91
+ configsStandard: {},
92
+ configsCumulative: {},
93
+ configsComputed: {}
94
+ };
95
+ const addSrc = (src, configName) => {
96
+ source[configName] = src;
97
+ sources[configName] ?? (sources[configName] = []);
98
+ sources[configName].push(src);
99
+ };
100
+ Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
101
+ const { value } = configValue;
102
+ const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
103
+ const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, configValue.definedAtData);
104
+ config[configName] = config[configName] ?? value;
105
+ configEntries[configName] = configEntries[configName] ?? [];
106
+ // Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
107
+ (0, utils_js_1.assert)(configEntries[configName].length === 0);
108
+ configEntries[configName].push({
109
+ configValue: value,
110
+ configDefinedAt,
111
+ configDefinedByFile: configValueFilePathToShowToUser
112
+ });
113
+ if (configValue.type === 'standard') {
114
+ const src = {
115
+ type: 'configsStandard',
116
+ value: configValue.value,
117
+ definedAt: (0, getConfigDefinedAt_js_1.getDefinedAtString)(configValue.definedAtData, configName)
118
+ };
119
+ addSrc(src, configName);
120
+ from.configsStandard[configName] = src;
121
+ }
122
+ if (configValue.type === 'cumulative') {
123
+ const src = {
124
+ type: 'configsCumulative',
125
+ values: configValue.value.map((value, i) => {
126
+ const definedAtFile = configValue.definedAtData[i];
127
+ (0, utils_js_1.assert)(definedAtFile);
128
+ const definedAt = (0, getConfigDefinedAt_js_1.getDefinedAtString)(definedAtFile, configName);
129
+ return {
130
+ value,
131
+ definedAt
132
+ };
133
+ })
134
+ };
135
+ addSrc(src, configName);
136
+ from.configsCumulative[configName] = src;
137
+ }
138
+ if (configValue.type === 'computed') {
139
+ const src = {
140
+ type: 'configsComputed',
141
+ value: configValue.value
142
+ };
143
+ addSrc(src, configName);
144
+ from.configsComputed[configName] = src;
145
+ }
146
+ // TODO/v1-release: remove
147
+ const exportName = configName;
148
+ exportsAll[exportName] = exportsAll[exportName] ?? [];
149
+ exportsAll[exportName].push({
150
+ exportValue: value,
151
+ exportSource: configDefinedAt,
152
+ filePath: configValueFilePathToShowToUser,
153
+ _filePath: configValueFilePathToShowToUser,
154
+ _fileType: null,
155
+ _isFromDefaultExport: null
156
+ });
157
+ });
158
+ return {
159
+ config,
160
+ configEntries,
161
+ exportsAll,
162
+ source,
163
+ sources,
164
+ from
165
+ };
166
+ }
135
167
  function getExportValues(pageFile) {
136
168
  const { filePath, fileExports } = pageFile;
137
169
  (0, utils_js_1.assert)(fileExports); // assume pageFile.loadFile() was called
138
- (0, utils_js_1.assert)((0, isScriptFile_js_1.isScriptFile)(filePath));
170
+ (0, utils_js_1.assert)((0, utils_js_1.isScriptFile)(filePath));
139
171
  const exportValues = [];
140
172
  Object.entries(fileExports)
141
173
  .sort((0, utils_js_1.makeLast)(([exportName]) => exportName === 'default')) // `export { bla }` should override `export default { bla }`
142
174
  .forEach(([exportName, exportValue]) => {
143
175
  let isFromDefaultExport = exportName === 'default';
144
176
  if (isFromDefaultExport) {
145
- if ((0, isScriptFile_js_1.isTemplateFile)(filePath)) {
177
+ if ((0, utils_js_1.isTemplateFile)(filePath)) {
146
178
  exportName = 'Page';
147
179
  }
148
180
  else {
@@ -9,7 +9,11 @@ async function loadConfigValues(pageConfig, isDev) {
9
9
  !isDev) {
10
10
  return pageConfig;
11
11
  }
12
- const configValuesLoaded = await pageConfig.loadConfigValuesAll();
12
+ const { moduleId, moduleExports } = pageConfig.loadConfigValuesAll();
13
+ const configValuesLoaded = await moduleExports;
14
+ // `configValuesLoaded` is sometimes `undefined` https://github.com/vikejs/vike/discussions/2092
15
+ if (!configValuesLoaded)
16
+ (0, utils_js_1.assert)(false, { moduleExports, configValuesLoaded, moduleId });
13
17
  const configValues = (0, parsePageConfigs_js_1.parseConfigValuesSerialized)(configValuesLoaded.configValuesSerialized);
14
18
  Object.assign(pageConfig.configValues, configValues);
15
19
  (0, utils_js_1.objectAssign)(pageConfig, { isAllLoaded: true });