vike 0.4.171 → 0.4.172-commit-c1b0884

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 (216) hide show
  1. package/dist/cjs/node/plugin/index.js +3 -0
  2. package/dist/cjs/node/plugin/plugins/buildConfig.js +3 -4
  3. package/dist/cjs/node/plugin/plugins/config/index.js +9 -5
  4. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
  5. package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -1
  6. package/dist/cjs/node/plugin/plugins/envVars.js +2 -1
  7. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +1 -1
  8. package/dist/cjs/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +8 -10
  9. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
  10. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
  11. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +19 -7
  12. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +43 -85
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +5 -44
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +10 -51
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
  17. package/dist/cjs/node/plugin/resolveClientEntriesDev.js +59 -0
  18. package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +17 -2
  19. package/dist/cjs/node/prerender/runPrerender.js +35 -15
  20. package/dist/cjs/node/prerender/utils.js +1 -0
  21. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
  22. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScripts.js +2 -1
  23. package/dist/cjs/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
  24. package/dist/cjs/node/runtime/html/renderHtml.js +19 -20
  25. package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -1
  26. package/dist/cjs/node/runtime/html/stream.js +9 -9
  27. package/dist/cjs/node/runtime/renderPage/analyzePage.js +9 -7
  28. package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +1 -1
  29. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
  30. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
  31. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  32. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +9 -59
  33. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
  34. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +91 -282
  35. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
  36. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +30 -10
  37. package/dist/cjs/node/runtime/renderPage.js +24 -17
  38. package/dist/cjs/node/runtime/utils.js +2 -0
  39. package/dist/cjs/node/shared/assertV1Design.js +3 -4
  40. package/dist/cjs/shared/getPageContext.js +5 -0
  41. package/dist/cjs/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
  42. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +2 -2
  43. package/dist/cjs/shared/getPageFiles/getExports.js +49 -1
  44. package/dist/cjs/shared/getPageFiles/parseGlobResults.js +15 -8
  45. package/dist/cjs/shared/hooks/executeHook.js +22 -3
  46. package/dist/cjs/shared/hooks/getHook.js +2 -2
  47. package/dist/cjs/shared/page-configs/getConfigValue.js +14 -17
  48. package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +70 -0
  49. package/dist/cjs/shared/page-configs/loadConfigValues.js +3 -12
  50. package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -18
  51. package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +110 -16
  52. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +198 -0
  53. package/dist/cjs/shared/route/executeGuardHook.js +1 -1
  54. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +1 -1
  55. package/dist/cjs/shared/route/index.js +2 -2
  56. package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
  57. package/dist/cjs/shared/route/resolveRouteFunction.js +2 -2
  58. package/dist/cjs/shared/sortPageContext.js +4 -8
  59. package/dist/cjs/shared/utils.js +2 -0
  60. package/dist/cjs/utils/assert.js +3 -3
  61. package/dist/cjs/utils/assertNodeVersion.js +1 -1
  62. package/dist/cjs/utils/changeEnumerable.js +9 -0
  63. package/dist/cjs/utils/escapeHtml.js +14 -0
  64. package/dist/cjs/utils/getPropAccessNotation.js +1 -4
  65. package/dist/cjs/utils/hasProp.js +5 -7
  66. package/dist/cjs/utils/normalizeHeaders.js +13 -0
  67. package/dist/cjs/utils/objectAssign.js +1 -1
  68. package/dist/cjs/utils/objectDefineProperty.js +8 -0
  69. package/dist/cjs/utils/objectKeys.js +8 -4
  70. package/dist/cjs/utils/projectInfo.js +1 -1
  71. package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +6 -4
  72. package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
  73. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +16 -12
  74. package/dist/esm/client/client-routing-runtime/installClientRouter.js +18 -10
  75. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +3 -3
  76. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +4 -4
  77. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
  78. package/dist/esm/client/server-routing-runtime/utils.js +1 -0
  79. package/dist/esm/client/shared/executeOnRenderClientHook.js +1 -1
  80. package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +3 -2
  81. package/dist/esm/client/shared/getPageContextProxyForUser.js +35 -48
  82. package/dist/esm/client/shared/loadUserFilesClientSide.js +4 -4
  83. package/dist/esm/node/plugin/index.js +3 -0
  84. package/dist/esm/node/plugin/plugins/buildConfig.js +3 -4
  85. package/dist/esm/node/plugin/plugins/config/index.js +9 -5
  86. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -15
  87. package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -1
  88. package/dist/esm/node/plugin/plugins/envVars.js +2 -1
  89. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +1 -1
  90. package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +14 -0
  91. package/dist/esm/node/plugin/plugins/importUserCode/{generateEagerImport.js → addImportStatement.js} +7 -9
  92. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +0 -1
  93. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -1
  94. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -3
  95. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  96. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +20 -8
  97. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
  98. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +4 -1
  99. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +43 -85
  100. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +5 -44
  101. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +10 -51
  102. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.d.ts +1 -0
  103. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isRuntimeEnvMatch.js +6 -0
  104. package/dist/esm/node/plugin/resolveClientEntriesDev.d.ts +4 -0
  105. package/dist/esm/node/plugin/resolveClientEntriesDev.js +56 -0
  106. package/dist/esm/node/plugin/shared/addSsrMiddleware.js +14 -2
  107. package/dist/esm/node/prerender/runPrerender.js +37 -17
  108. package/dist/esm/node/prerender/utils.d.ts +1 -0
  109. package/dist/esm/node/prerender/utils.js +1 -0
  110. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +3 -3
  111. package/dist/esm/node/runtime/html/injectAssets/getViteDevScripts.js +3 -2
  112. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +1 -1
  113. package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.js +2 -8
  114. package/dist/esm/node/runtime/html/renderHtml.js +19 -20
  115. package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -1
  116. package/dist/esm/node/runtime/html/stream.d.ts +1 -1
  117. package/dist/esm/node/runtime/html/stream.js +9 -9
  118. package/dist/esm/node/runtime/renderPage/analyzePage.js +9 -7
  119. package/dist/esm/node/runtime/renderPage/createHttpResponseObject/getCacheControl.js +2 -2
  120. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
  121. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -8
  122. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +2 -2
  123. package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +3 -0
  124. package/dist/esm/node/runtime/renderPage/getPageAssets.js +9 -59
  125. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -6
  126. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +4 -5
  127. package/dist/esm/node/runtime/renderPage/logErrorHint.d.ts +2 -6
  128. package/dist/esm/node/runtime/renderPage/logErrorHint.js +92 -283
  129. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  130. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +2 -2
  131. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +65 -39
  132. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +31 -11
  133. package/dist/esm/node/runtime/renderPage.js +24 -17
  134. package/dist/esm/node/runtime/utils.d.ts +2 -0
  135. package/dist/esm/node/runtime/utils.js +2 -0
  136. package/dist/esm/node/shared/assertV1Design.d.ts +2 -2
  137. package/dist/esm/node/shared/assertV1Design.js +3 -4
  138. package/dist/esm/shared/ConfigVike.d.ts +7 -0
  139. package/dist/esm/shared/VikeNamespace.d.ts +9 -0
  140. package/dist/esm/shared/getPageContext.d.ts +1 -0
  141. package/dist/esm/shared/getPageContext.js +1 -0
  142. package/dist/esm/shared/{addUrlComputedProps.d.ts → getPageContextUrlComputed.d.ts} +23 -21
  143. package/dist/esm/shared/{addUrlComputedProps.js → getPageContextUrlComputed.js} +52 -42
  144. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +3 -3
  145. package/dist/esm/shared/getPageFiles/getExports.d.ts +36 -0
  146. package/dist/esm/shared/getPageFiles/getExports.js +50 -2
  147. package/dist/esm/shared/getPageFiles/parseGlobResults.js +14 -7
  148. package/dist/esm/shared/hooks/executeHook.d.ts +10 -1
  149. package/dist/esm/shared/hooks/executeHook.js +21 -2
  150. package/dist/esm/shared/hooks/getHook.d.ts +2 -2
  151. package/dist/esm/shared/hooks/getHook.js +3 -3
  152. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +2 -2
  153. package/dist/esm/shared/page-configs/PageConfig.d.ts +14 -8
  154. package/dist/esm/shared/page-configs/getConfigValue.d.ts +12 -12
  155. package/dist/esm/shared/page-configs/getConfigValue.js +13 -16
  156. package/dist/esm/shared/page-configs/getConfigValueBuildTime.d.ts +9 -0
  157. package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +67 -0
  158. package/dist/esm/shared/page-configs/loadConfigValues.js +3 -12
  159. package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +17 -21
  160. package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.d.ts +1 -5
  161. package/dist/esm/shared/page-configs/serialize/assertPageConfigsSerialized.js +1 -16
  162. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +4 -1
  163. package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +109 -15
  164. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +5 -0
  165. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +192 -0
  166. package/dist/esm/shared/route/executeGuardHook.js +1 -1
  167. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +1 -1
  168. package/dist/esm/shared/route/index.d.ts +3 -3
  169. package/dist/esm/shared/route/index.js +2 -2
  170. package/dist/esm/shared/route/loadPageRoutes.js +3 -3
  171. package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
  172. package/dist/esm/shared/route/resolveRouteFunction.js +2 -2
  173. package/dist/esm/shared/sortPageContext.js +4 -8
  174. package/dist/esm/shared/types.d.ts +32 -6
  175. package/dist/esm/shared/utils.d.ts +2 -0
  176. package/dist/esm/shared/utils.js +2 -0
  177. package/dist/esm/types/index.d.ts +1 -1
  178. package/dist/esm/utils/assert.js +3 -3
  179. package/dist/esm/utils/assertNodeVersion.js +1 -1
  180. package/dist/esm/utils/changeEnumerable.d.ts +2 -0
  181. package/dist/esm/utils/changeEnumerable.js +5 -0
  182. package/dist/esm/utils/escapeHtml.d.ts +1 -0
  183. package/dist/esm/utils/escapeHtml.js +10 -0
  184. package/dist/esm/utils/getPropAccessNotation.d.ts +1 -2
  185. package/dist/esm/utils/getPropAccessNotation.js +2 -6
  186. package/dist/esm/utils/hasProp.d.ts +4 -13
  187. package/dist/esm/utils/hasProp.js +5 -7
  188. package/dist/esm/utils/normalizeHeaders.d.ts +1 -0
  189. package/dist/esm/utils/normalizeHeaders.js +9 -0
  190. package/dist/esm/utils/objectAssign.js +1 -1
  191. package/dist/esm/utils/objectDefineProperty.d.ts +4 -0
  192. package/dist/esm/utils/objectDefineProperty.js +4 -0
  193. package/dist/esm/utils/objectKeys.d.ts +1 -3
  194. package/dist/esm/utils/objectKeys.js +8 -4
  195. package/dist/esm/utils/projectInfo.d.ts +2 -2
  196. package/dist/esm/utils/projectInfo.js +1 -1
  197. package/package.json +23 -14
  198. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -76
  199. package/dist/cjs/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -14
  200. package/dist/cjs/node/shared/getClientEntry.js +0 -12
  201. package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +0 -85
  202. package/dist/cjs/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -24
  203. package/dist/cjs/shared/page-configs/serialize/serializeConfigValue.js +0 -50
  204. package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +0 -16
  205. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.d.ts +0 -5
  206. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +0 -70
  207. package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.d.ts +0 -5
  208. package/dist/esm/node/plugin/shared/getConfigValueSourcesNotOverriden.js +0 -11
  209. package/dist/esm/node/shared/getClientEntry.d.ts +0 -3
  210. package/dist/esm/node/shared/getClientEntry.js +0 -9
  211. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.d.ts +0 -4
  212. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +0 -82
  213. package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.d.ts +0 -4
  214. package/dist/esm/shared/page-configs/serialize/parseConfigValuesSerialized.js +0 -21
  215. package/dist/esm/shared/page-configs/serialize/serializeConfigValue.d.ts +0 -8
  216. package/dist/esm/shared/page-configs/serialize/serializeConfigValue.js +0 -47
@@ -4,12 +4,16 @@ import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageC
4
4
  import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
5
5
  import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
6
6
  import { getGlobalContext } from '../globalContext.js';
7
- import { getClientEntry } from '../../shared/getClientEntry.js';
7
+ import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValue.js';
8
8
  function analyzePage(pageFilesAll, pageConfig, pageId) {
9
9
  if (pageConfig) {
10
10
  const { isClientSideRenderable, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
11
- const clientFilePath = getClientEntry(pageConfig);
12
- const clientEntry = !isClientSideRenderable ? clientFilePath : getVikeClientEntry(isClientRouting);
11
+ const clientEntries = [];
12
+ const clientFilePath = getConfigValueRuntime(pageConfig, 'client', 'string')?.value ?? null;
13
+ if (clientFilePath)
14
+ clientEntries.push(clientFilePath);
15
+ if (isClientSideRenderable)
16
+ clientEntries.push(getVikeClientEntry(isClientRouting));
13
17
  const clientDependencies = [];
14
18
  clientDependencies.push({
15
19
  id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, true),
@@ -41,15 +45,13 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
41
45
  }
42
46
  })
43
47
  */
44
- const clientEntries = [];
45
- if (clientEntry) {
48
+ clientEntries.forEach((clientEntry) => {
46
49
  clientDependencies.push({
47
50
  id: clientEntry,
48
51
  onlyAssets: false,
49
52
  eagerlyImported: false
50
53
  });
51
- clientEntries.push(clientEntry);
52
- }
54
+ });
53
55
  return {
54
56
  isHtmlOnly: !isClientSideRenderable,
55
57
  isClientRouting,
@@ -1,13 +1,13 @@
1
1
  export { getCacheControl };
2
2
  import { getPageConfig } from '../../../../shared/page-configs/helpers.js';
3
- import { getConfigValue } from '../../../../shared/page-configs/getConfigValue.js';
3
+ import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfigValue.js';
4
4
  const defaultValue = 'no-store, max-age=0';
5
5
  function getCacheControl(pageId, pageConfigs) {
6
6
  // TODO/v1-release: remove
7
7
  if (pageConfigs.length === 0)
8
8
  return defaultValue;
9
9
  const pageConfig = getPageConfig(pageId, pageConfigs);
10
- const configValue = getConfigValue(pageConfig, 'cacheControl', 'string');
10
+ const configValue = getConfigValueRuntime(pageConfig, 'cacheControl', 'string');
11
11
  const value = configValue?.value;
12
12
  if (value)
13
13
  return value;
@@ -14,7 +14,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
14
14
  }
15
15
  preparePageContextForUserConsumptionServerSide(pageContext);
16
16
  if (dataHook) {
17
- const hookResult = await executeHook(() => dataHook.hookFn(pageContext), dataHook);
17
+ const hookResult = await executeHook(() => dataHook.hookFn(pageContext), dataHook, pageContext);
18
18
  // Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
19
19
  const pageContextFromHook = {
20
20
  data: hookResult
@@ -22,7 +22,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
22
22
  Object.assign(pageContext, pageContextFromHook);
23
23
  }
24
24
  if (onBeforeRenderHook) {
25
- const hookResult = await executeHook(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook);
25
+ const hookResult = await executeHook(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook, pageContext);
26
26
  assertOnBeforeRenderHookReturn(hookResult, onBeforeRenderHook.hookFilePath);
27
27
  const pageContextFromHook = hookResult?.pageContext;
28
28
  Object.assign(pageContext, pageContextFromHook);
@@ -13,7 +13,7 @@ async function executeOnRenderHtmlHook(pageContext) {
13
13
  const { renderHook, hookFn } = getRenderHook(pageContext);
14
14
  objectAssign(pageContext, { _renderHook: renderHook });
15
15
  preparePageContextForUserConsumptionServerSide(pageContext);
16
- const hookReturnValue = await executeHook(() => hookFn(pageContext), renderHook);
16
+ const hookReturnValue = await executeHook(() => hookFn(pageContext), renderHook, pageContext);
17
17
  const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
18
18
  Object.assign(pageContext, pageContextProvidedByRenderHook);
19
19
  objectAssign(pageContext, { _pageContextPromise: pageContextPromise });
@@ -63,13 +63,13 @@ function getRenderHook(pageContext) {
63
63
  assertUsage(false, [
64
64
  `No ${hookName}() hook found, see https://vike.dev/${hookName}`
65
65
  /*
66
- 'See https://vike.dev/render-modes for more information.',
67
- [
68
- // 'Loaded config files (none of them define the onRenderHtml() hook):',
69
- 'Loaded server-side page files (none of them `export { render }`):',
70
- ...pageContext._pageFilePathsLoaded.map((f, i) => ` (${i + 1}): ${f}`)
71
- ].join('\n')
72
- */
66
+ 'See https://vike.dev/render-modes for more information.',
67
+ [
68
+ // 'Loaded config files (none of them define the onRenderHtml() hook):',
69
+ 'Loaded server-side page files (none of them `export { render }`):',
70
+ ...pageContext._pageFilePathsLoaded.map((f, i) => ` (${i + 1}): ${f}`)
71
+ ].join('\n')
72
+ */
73
73
  ].join(' '));
74
74
  }
75
75
  return hookFound;
@@ -95,8 +95,8 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
95
95
  }
96
96
  }
97
97
  };
98
- function getFixMsg(type, standard) {
99
- const streamName = getStreamName(type, standard);
98
+ function getFixMsg(kind, type) {
99
+ const streamName = getStreamName(kind, type);
100
100
  assert(['a ', 'an ', 'the '].some((s) => streamName.startsWith(s)));
101
101
  assert(renderHook);
102
102
  const { hookFilePath, hookName } = renderHook;
@@ -1,9 +1,11 @@
1
1
  export { getPageAssets };
2
+ export { setResolveClientEntriesDev };
2
3
  export type { PageAsset };
3
4
  export type { GetPageAssets };
4
5
  export type { PageContextGetPageAssets };
5
6
  import { type MediaType } from './inferMediaType.js';
6
7
  import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
8
+ import type { ResolveClientEntriesDev } from '../../plugin/resolveClientEntriesDev.js';
7
9
  type PageAsset = {
8
10
  src: string;
9
11
  assetType: null | NonNullable<MediaType>['assetType'];
@@ -17,3 +19,4 @@ type PageContextGetPageAssets = {
17
19
  _includeAssetsImportedByServer: boolean;
18
20
  };
19
21
  declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
22
+ declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
@@ -1,12 +1,15 @@
1
1
  export { getPageAssets };
2
- import { assert, prependBase, assertPosixPath, toPosixPath, unique, pathJoin, assertIsNpmPackageImport } from '../utils.js';
2
+ export { setResolveClientEntriesDev };
3
+ import { assert, prependBase, toPosixPath, unique, getGlobalObject } from '../utils.js';
3
4
  import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
4
5
  import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
5
6
  import { inferMediaType } from './inferMediaType.js';
6
7
  import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
7
8
  import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
8
9
  import { getGlobalContext } from '../globalContext.js';
9
- import { import_ } from '@brillout/import';
10
+ const globalObject = getGlobalObject('getPageAssets.ts', {
11
+ resolveClientEntriesDev: null
12
+ });
10
13
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
11
14
  const globalContext = getGlobalContext();
12
15
  const isDev = !globalContext.isProduction;
@@ -14,7 +17,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
17
  let clientEntriesSrc;
15
18
  if (isDev) {
16
19
  const { viteDevServer } = globalContext;
17
- clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => resolveClientEntriesDev(clientEntry, viteDevServer)));
20
+ clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer)));
18
21
  assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
19
22
  }
20
23
  else {
@@ -54,62 +57,6 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
54
57
  sortPageAssetsForEarlyHintsHeader(pageAssets);
55
58
  return pageAssets;
56
59
  }
57
- async function resolveClientEntriesDev(clientEntry, viteDevServer) {
58
- let root = viteDevServer.config.root;
59
- assert(root);
60
- root = toPosixPath(root);
61
- // The `?import` suffix is needed for MDX to be transpiled:
62
- // - Not transpiled: `/pages/markdown.page.mdx`
63
- // - Transpiled: `/pages/markdown.page.mdx?import`
64
- // But `?import` doesn't work with `/@fs/`:
65
- // - Not transpiled: /@fs/home/runner/work/vike/vike/examples/react-full/pages/markdown.page.mdx
66
- // - Not transpiled: /@fs/home/runner/work/vike/vike/examples/react-full/pages/markdown.page.mdx?import
67
- if (clientEntry.endsWith('?import')) {
68
- assert(clientEntry.startsWith('/'));
69
- return clientEntry;
70
- }
71
- assertPosixPath(clientEntry);
72
- let filePath;
73
- if (clientEntry.startsWith('/')) {
74
- filePath = pathJoin(root, clientEntry);
75
- }
76
- else {
77
- const { createRequire } = (await import_('module')).default;
78
- const { dirname } = (await import_('path')).default;
79
- const { fileURLToPath } = (await import_('url')).default;
80
- // @ts-ignore Shimmed by dist-cjs-fixup.js for CJS build.
81
- const importMetaUrl = import.meta.url;
82
- const require_ = createRequire(importMetaUrl);
83
- const __dirname_ = dirname(fileURLToPath(importMetaUrl));
84
- // @ts-expect-error
85
- // Bun workaround https://github.com/vikejs/vike/pull/1048
86
- const res = typeof Bun !== 'undefined' ? (toPath) => Bun.resolveSync(toPath, __dirname_) : require_.resolve;
87
- if (clientEntry.startsWith('@@vike/')) {
88
- assert(clientEntry.endsWith('.js'));
89
- try {
90
- // For Vitest (which doesn't resolve vike to its dist but to its source files)
91
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/runtime/renderPage/getPageAssets.js
92
- filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts')));
93
- }
94
- catch {
95
- // For users
96
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/runtime/renderPage/getPageAssets.js
97
- filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
98
- }
99
- }
100
- else {
101
- assertIsNpmPackageImport(clientEntry);
102
- filePath = res(clientEntry);
103
- }
104
- }
105
- if (!filePath.startsWith('/')) {
106
- assert(process.platform === 'win32');
107
- filePath = '/' + filePath;
108
- }
109
- filePath = '/@fs' + filePath;
110
- assertPosixPath(filePath);
111
- return filePath;
112
- }
113
60
  function resolveClientEntriesProd(clientEntry, assetsManifest) {
114
61
  const { manifestEntry } = getManifestEntry(clientEntry, assetsManifest);
115
62
  assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
@@ -117,3 +64,6 @@ function resolveClientEntriesProd(clientEntry, assetsManifest) {
117
64
  assert(!file.startsWith('/'));
118
65
  return '/' + file;
119
66
  }
67
+ function setResolveClientEntriesDev(resolveClientEntriesDev) {
68
+ globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
69
+ }
@@ -14,16 +14,11 @@ type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContex
14
14
  type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
15
15
  declare function loadUserFilesServerSide(pageContext: {
16
16
  _pageId: string;
17
- } & PageContext_loadUserFilesServerSide): Promise<{
17
+ } & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageContextExports & {
18
18
  Page: unknown;
19
19
  _isHtmlOnly: boolean;
20
20
  _passToClient: string[];
21
21
  _pageFilePathsLoaded: string[];
22
- config: Record<string, unknown>;
23
- configEntries: import("../../../shared/getPageFiles/getExports.js").ConfigEntries;
24
- exports: Record<string, unknown>;
25
- exportsAll: import("../../../shared/getPageFiles/getExports.js").ExportsAll;
26
- pageExports: Record<string, unknown>;
27
22
  } & {
28
23
  __getPageAssets: () => Promise<PageAsset[]>;
29
24
  }>;
@@ -10,7 +10,7 @@ import { getGlobalContext } from '../globalContext.js';
10
10
  import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
11
11
  async function loadUserFilesServerSide(pageContext) {
12
12
  const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext._pageId); // Make pageConfig globally available as pageContext._pageConfig?
13
- const [{ pageFilesLoaded, pageConfigLoaded, ...pageContextExports }] = await Promise.all([
13
+ const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
14
14
  loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext._pageId, !getGlobalContext().isProduction),
15
15
  analyzePageClientSideInit(pageContext._pageFilesAll, pageContext._pageId, { sharedPageFilesAlreadyLoaded: true })
16
16
  ]);
@@ -35,8 +35,8 @@ async function loadUserFilesServerSide(pageContext) {
35
35
  });
36
36
  }
37
37
  const pageContextAddendum = {};
38
+ objectAssign(pageContextAddendum, pageContextExports);
38
39
  objectAssign(pageContextAddendum, {
39
- ...pageContextExports,
40
40
  Page: pageContextExports.exports.Page,
41
41
  _isHtmlOnly: isHtmlOnly,
42
42
  _passToClient: passToClient,
@@ -101,8 +101,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
101
101
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
102
102
  const pageContextExports = getPageContextExports(pageFilesServerSide, pageConfigLoaded);
103
103
  return {
104
- ...pageContextExports,
105
- pageFilesLoaded: pageFilesServerSide,
106
- pageConfigLoaded
104
+ pageContextExports,
105
+ pageFilesLoaded: pageFilesServerSide
107
106
  };
108
107
  }
@@ -1,8 +1,4 @@
1
1
  export { logErrorHint };
2
- export { isCjsEsmError };
3
- export { isKnownError };
4
- export { getHint };
2
+ export { getErrorHint };
5
3
  declare function logErrorHint(error: unknown): void;
6
- declare function getHint(error: unknown): null | string;
7
- declare function isKnownError(error: unknown): false | string;
8
- declare function isCjsEsmError(error: unknown): boolean | string[];
4
+ declare function getErrorHint(error: unknown): null | string;