vike 0.4.229-commit-7056ef0 → 0.4.229-commit-5da80bf

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 (149) hide show
  1. package/dist/cjs/client/server-routing-runtime/utils.js +1 -0
  2. package/dist/cjs/client/shared/{preparePageContextForUserConsumptionClientSide.js → preparePageContextForPublicUsageClientShared.js} +15 -19
  3. package/dist/cjs/node/api/build.js +1 -5
  4. package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -2
  5. package/dist/cjs/node/prerender/runPrerender.js +40 -36
  6. package/dist/cjs/node/prerender/utils.js +1 -1
  7. package/dist/cjs/node/runtime/globalContext.js +13 -27
  8. package/dist/cjs/node/runtime/html/serializeContext.js +1 -1
  9. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -8
  10. package/dist/cjs/node/runtime/renderPage/execHookServer.js +11 -0
  11. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +9 -9
  12. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  13. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +10 -0
  14. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  15. package/dist/cjs/node/runtime/renderPage.js +7 -5
  16. package/dist/cjs/node/runtime/utils.js +1 -1
  17. package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -1
  18. package/dist/cjs/shared/addIs404ToPageProps.js +0 -7
  19. package/dist/cjs/shared/createGlobalContextShared.js +6 -3
  20. package/dist/cjs/shared/createPageContextShared.js +14 -3
  21. package/dist/cjs/shared/getPageContext.js +3 -3
  22. package/dist/cjs/shared/getPageContextUrlComputed.js +2 -36
  23. package/dist/cjs/shared/getProxyForPublicUsage.js +106 -0
  24. package/dist/cjs/shared/hooks/execHook.js +164 -0
  25. package/dist/cjs/shared/page-configs/getUserFriendlyConfigs.js +17 -15
  26. package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +10 -0
  27. package/dist/cjs/shared/preparePageContextForPublicUsage.js +75 -0
  28. package/dist/cjs/shared/route/abort.js +2 -2
  29. package/dist/cjs/shared/route/executeGuardHook.js +4 -9
  30. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +4 -3
  31. package/dist/cjs/shared/route/index.js +2 -4
  32. package/dist/cjs/shared/route/loadPageRoutes.js +6 -0
  33. package/dist/cjs/shared/route/resolveRouteFunction.js +14 -10
  34. package/dist/cjs/shared/utils.js +2 -0
  35. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  36. package/dist/cjs/utils/objectAssign.js +3 -3
  37. package/dist/cjs/utils/objectDefineProperty.js +1 -1
  38. package/dist/esm/client/client-routing-runtime/createPageContextClientSide.d.ts +10 -7
  39. package/dist/esm/client/client-routing-runtime/createPageContextClientSide.js +8 -10
  40. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +397 -20
  41. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +15 -15
  42. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +1 -0
  43. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +3 -8
  44. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.d.ts +11 -0
  45. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  46. package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +135 -0
  47. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +66 -72
  48. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  49. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  50. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +8 -6
  51. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +8 -10
  52. package/dist/esm/client/server-routing-runtime/entry.js +4 -6
  53. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +1 -0
  54. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.d.ts +9 -0
  55. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  56. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
  57. package/dist/esm/client/server-routing-runtime/utils.js +1 -0
  58. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +1 -0
  59. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +3 -3
  60. package/dist/esm/client/shared/executeOnRenderClientHook.js +4 -13
  61. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +11 -0
  62. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +40 -0
  63. package/dist/esm/node/api/build.js +1 -2
  64. package/dist/esm/node/plugin/shared/loggerNotProd.js +1 -1
  65. package/dist/esm/node/prerender/runPrerender.d.ts +15 -115
  66. package/dist/esm/node/prerender/runPrerender.js +40 -36
  67. package/dist/esm/node/prerender/utils.d.ts +1 -1
  68. package/dist/esm/node/prerender/utils.js +1 -1
  69. package/dist/esm/node/runtime/globalContext.d.ts +5 -373
  70. package/dist/esm/node/runtime/globalContext.js +14 -28
  71. package/dist/esm/node/runtime/html/serializeContext.d.ts +1 -1
  72. package/dist/esm/node/runtime/html/serializeContext.js +1 -1
  73. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +15 -62
  74. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +5 -9
  75. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +12 -0
  76. package/dist/esm/node/runtime/renderPage/execHookServer.js +9 -0
  77. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +1 -1
  78. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +9 -9
  79. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +4 -2
  80. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  81. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +20 -0
  82. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +8 -0
  83. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +15 -115
  84. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -3
  85. package/dist/esm/node/runtime/renderPage.d.ts +10 -60
  86. package/dist/esm/node/runtime/renderPage.js +7 -5
  87. package/dist/esm/node/runtime/utils.d.ts +1 -1
  88. package/dist/esm/node/runtime/utils.js +1 -1
  89. package/dist/esm/shared/NOT_SERIALIZABLE.js +0 -1
  90. package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -6
  91. package/dist/esm/shared/addIs404ToPageProps.js +1 -8
  92. package/dist/esm/shared/createGlobalContextShared.d.ts +2 -0
  93. package/dist/esm/shared/createGlobalContextShared.js +7 -4
  94. package/dist/esm/shared/createPageContextShared.d.ts +6 -2
  95. package/dist/esm/shared/createPageContextShared.js +15 -4
  96. package/dist/esm/shared/getPageContext.d.ts +1 -1
  97. package/dist/esm/shared/getPageContext.js +1 -1
  98. package/dist/esm/shared/getPageContextUrlComputed.d.ts +2 -5
  99. package/dist/esm/shared/getPageContextUrlComputed.js +3 -37
  100. package/dist/esm/shared/getProxyForPublicUsage.d.ts +12 -0
  101. package/dist/esm/shared/getProxyForPublicUsage.js +104 -0
  102. package/dist/esm/shared/hooks/execHook.d.ts +63 -0
  103. package/dist/esm/shared/hooks/execHook.js +162 -0
  104. package/dist/esm/shared/hooks/getHook.d.ts +3 -1
  105. package/dist/esm/shared/page-configs/Config.d.ts +3 -3
  106. package/dist/esm/shared/page-configs/getUserFriendlyConfigs.js +18 -16
  107. package/dist/esm/shared/prepareGlobalContextForPublicUsage.d.ts +7 -0
  108. package/dist/esm/shared/prepareGlobalContextForPublicUsage.js +8 -0
  109. package/dist/esm/shared/preparePageContextForPublicUsage.d.ts +12 -0
  110. package/dist/esm/shared/preparePageContextForPublicUsage.js +73 -0
  111. package/dist/esm/shared/route/abort.js +1 -1
  112. package/dist/esm/shared/route/executeGuardHook.d.ts +4 -3
  113. package/dist/esm/shared/route/executeGuardHook.js +4 -9
  114. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +4 -3
  115. package/dist/esm/shared/route/index.js +2 -4
  116. package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -1
  117. package/dist/esm/shared/route/loadPageRoutes.js +7 -1
  118. package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
  119. package/dist/esm/shared/route/resolveRouteFunction.js +14 -10
  120. package/dist/esm/shared/types.d.ts +13 -3
  121. package/dist/esm/shared/utils.d.ts +2 -0
  122. package/dist/esm/shared/utils.js +2 -0
  123. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  124. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  125. package/dist/esm/utils/objectAssign.d.ts +1 -1
  126. package/dist/esm/utils/objectAssign.js +3 -3
  127. package/dist/esm/utils/objectDefineProperty.d.ts +0 -1
  128. package/dist/esm/utils/objectDefineProperty.js +1 -1
  129. package/package.json +2 -2
  130. package/dist/cjs/client/shared/getPageContextProxyForUser.js +0 -16
  131. package/dist/cjs/node/runtime/renderPage/executeHookServer.js +0 -11
  132. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -16
  133. package/dist/cjs/shared/hooks/executeHook.js +0 -108
  134. package/dist/cjs/shared/preparePageContextForUserConsumption.js +0 -34
  135. package/dist/cjs/utils/getPublicProxy.js +0 -27
  136. package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +0 -2
  137. package/dist/esm/client/shared/getPageContextProxyForUser.js +0 -14
  138. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +0 -12
  139. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +0 -44
  140. package/dist/esm/node/runtime/renderPage/executeHookServer.d.ts +0 -13
  141. package/dist/esm/node/runtime/renderPage/executeHookServer.js +0 -9
  142. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +0 -24
  143. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -14
  144. package/dist/esm/shared/hooks/executeHook.d.ts +0 -34
  145. package/dist/esm/shared/hooks/executeHook.js +0 -106
  146. package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +0 -5
  147. package/dist/esm/shared/preparePageContextForUserConsumption.js +0 -32
  148. package/dist/esm/utils/getPublicProxy.d.ts +0 -2
  149. package/dist/esm/utils/getPublicProxy.js +0 -25
@@ -31,3 +31,4 @@ __exportStar(require("../../utils/slice.js"), exports);
31
31
  __exportStar(require("../../utils/unique.js"), exports); // Only used by Server Routing (not needed for Client Routing)
32
32
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
33
33
  __exportStar(require("../../utils/augmentType.js"), exports);
34
+ __exportStar(require("../../utils/changeEnumerable.js"), exports);
@@ -1,31 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.preparePageContextForUserConsumptionClientSide = preparePageContextForUserConsumptionClientSide;
3
+ exports.preparePageContextForPublicUsageClientShared = preparePageContextForPublicUsageClientShared;
4
+ exports.preparePageContextForPublicUsageClientMinimal = preparePageContextForPublicUsageClientMinimal;
4
5
  const utils_js_1 = require("../server-routing-runtime/utils.js");
5
- const getPageContextProxyForUser_js_1 = require("./getPageContextProxyForUser.js");
6
- const preparePageContextForUserConsumption_js_1 = require("../../shared/preparePageContextForUserConsumption.js");
7
- function preparePageContextForUserConsumptionClientSide(pageContext, isClientRouting) {
8
- if (isClientRouting) {
9
- const pageContextTyped = pageContext;
10
- (0, utils_js_1.assert)([true, false].includes(pageContextTyped.isHydration));
11
- (0, utils_js_1.assert)([true, false, null].includes(pageContextTyped.isBackwardNavigation));
12
- }
13
- else {
14
- const pageContextTyped = pageContext;
15
- (0, utils_js_1.assert)(pageContextTyped.isHydration === true);
16
- (0, utils_js_1.assert)(pageContextTyped.isBackwardNavigation === null);
17
- }
18
- const Page = pageContext.config.Page ||
6
+ const preparePageContextForPublicUsage_js_1 = require("../../shared/preparePageContextForPublicUsage.js");
7
+ function preparePageContextForPublicUsageClientShared(pageContext) {
8
+ // TODO/now use proxy
9
+ const Page = pageContext.config?.Page ||
19
10
  // TODO/next-major-release: remove
20
- pageContext.exports.Page;
11
+ pageContext.exports?.Page;
21
12
  (0, utils_js_1.objectAssign)(pageContext, { Page });
13
+ // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
14
+ (0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
22
15
  // TODO/next-major-release: remove
23
16
  // - Requires https://github.com/vikejs/vike-vue/issues/198
24
17
  // - 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.
25
18
  supportVueReactiviy(pageContext);
26
- (0, preparePageContextForUserConsumption_js_1.preparePageContextForUserConsumption)(pageContext);
27
- const pageContextProxy = (0, getPageContextProxyForUser_js_1.getPageContextProxyForUser)(pageContext);
28
- return pageContextProxy;
19
+ return preparePageContextForPublicUsageClientMinimal(pageContext);
20
+ }
21
+ function preparePageContextForPublicUsageClientMinimal(pageContext) {
22
+ const pageContextPublic = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
23
+ return pageContextPublic;
29
24
  }
30
25
  // With Vue + Cient Routing, the `pageContext` is made reactive:
31
26
  // ```js
@@ -39,6 +34,7 @@ function supportVueReactiviy(pageContext) {
39
34
  // Remove propery descriptor getters because they break Vue's reactivity.
40
35
  // E.g. resolve the `pageContext.urlPathname` getter.
41
36
  function resolveGetters(pageContext) {
37
+ return;
42
38
  Object.entries(pageContext).forEach(([key, val]) => {
43
39
  delete pageContext[key];
44
40
  pageContext[key] = val;
@@ -1,12 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.build = build;
7
4
  const prepareViteApiCall_js_1 = require("./prepareViteApiCall.js");
8
5
  const vite_1 = require("vite");
9
- const assert_1 = __importDefault(require("assert"));
10
6
  const context_js_1 = require("../cli/context.js");
11
7
  const context_js_2 = require("../prerender/context.js");
12
8
  const utils_js_1 = require("./utils.js");
@@ -38,7 +34,7 @@ async function build(options = {}) {
38
34
  await (0, vite_1.build)(viteConfigFromUserEnhanced);
39
35
  // After pre-rendering, when using the Vike CLI, the process is forcefully exited at the end of the buildVite() call above.
40
36
  if ((0, context_js_1.isVikeCli)() && (0, context_js_2.isPrerendering)())
41
- (0, assert_1.default)(false);
37
+ (0, utils_js_1.assert)(false);
42
38
  }
43
39
  return {
44
40
  /* We don't return `viteConfig` because `viteConfigFromUserEnhanced` is `InlineConfig` not `ResolvedConfig`
@@ -27,7 +27,7 @@ const log_js_1 = require("./loggerNotProd/log.js");
27
27
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
28
28
  const isNewError_js_1 = require("../../runtime/renderPage/isNewError.js");
29
29
  const loggerProd_js_1 = require("../../runtime/renderPage/loggerProd.js");
30
- const executeHook_js_1 = require("../../../shared/hooks/executeHook.js");
30
+ const execHook_js_1 = require("../../../shared/hooks/execHook.js");
31
31
  (0, utils_js_1.assertIsNotProductionRuntime)();
32
32
  (0, loggerRuntime_js_1.overwriteRuntimeProductionLogger)(logRuntimeError, logRuntimeInfo);
33
33
  (0, utils_js_1.overwriteAssertProductionLogger)(assertLogger);
@@ -97,7 +97,7 @@ function logErr(err, httpRequestId = null, errorComesFromVite) {
97
97
  }
98
98
  }
99
99
  // Needs to be after assertion messages handling, because user hooks may throw an assertion error
100
- const hook = (0, executeHook_js_1.isUserHookError)(err);
100
+ const hook = (0, execHook_js_1.isUserHookError)(err);
101
101
  if (hook) {
102
102
  const { hookName, hookFilePath } = hook;
103
103
  (0, log_js_1.logWithVikeTag)(picocolors_1.default.red(`Following error was thrown by the ${hookName}() hook defined at ${hookFilePath}`), 'error', category);
@@ -61,7 +61,7 @@ const getHook_js_1 = require("../../shared/hooks/getHook.js");
61
61
  const noRouteMatch_js_1 = require("../../shared/route/noRouteMatch.js");
62
62
  const getVikeConfig_js_1 = require("../plugin/plugins/importUserCode/v1-design/getVikeConfig.js");
63
63
  const logErrorHint_js_1 = require("../runtime/renderPage/logErrorHint.js");
64
- const executeHook_js_1 = require("../../shared/hooks/executeHook.js");
64
+ const execHook_js_1 = require("../../shared/hooks/execHook.js");
65
65
  const prepareViteApiCall_js_1 = require("../api/prepareViteApiCall.js");
66
66
  const context_js_1 = require("./context.js");
67
67
  const resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
@@ -70,6 +70,8 @@ const context_js_2 = require("../cli/context.js");
70
70
  const isViteCliCall_js_1 = require("../plugin/shared/isViteCliCall.js");
71
71
  const commonConfig_js_1 = require("../plugin/plugins/commonConfig.js");
72
72
  const node_fs_1 = __importDefault(require("node:fs"));
73
+ const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
74
+ const docLink = 'https://vike.dev/i18n#pre-rendering';
73
75
  async function runPrerenderFromAPI(options = {}) {
74
76
  return await runPrerender(options, 'prerender()');
75
77
  // - We purposely propagate the error to the user land, so that the error interrupts the user land. It's also, I guess, a nice-to-have that the user has control over the error.
@@ -132,7 +134,7 @@ async function runPrerender(options = {}, standaloneTrigger) {
132
134
  }
133
135
  const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, os_1.cpus)().length : parallel);
134
136
  await (0, globalContext_js_1.initGlobalContext_runPrerender)();
135
- const { globalContext, globalContext_public } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
137
+ const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
136
138
  globalContext._pageFilesAll.forEach(assertExportNames);
137
139
  const prerenderContext = {
138
140
  pageContexts: [],
@@ -145,13 +147,13 @@ async function runPrerender(options = {}, standaloneTrigger) {
145
147
  await collectDoNoPrerenderList(vikeConfig.pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
146
148
  // Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
147
149
  // https://vike.dev/onBeforePrerenderStart
148
- await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList);
150
+ await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
149
151
  // Create `pageContext` for each page with a static route
150
152
  const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
151
- await createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, false);
153
+ await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
152
154
  // Create `pageContext` for 404 page
153
155
  const urlList404 = getUrlList404(globalContext);
154
- await createPageContexts(urlList404, prerenderContext, globalContext, globalContext_public, concurrencyLimit, true);
156
+ await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
155
157
  // Allow user to duplicate the list of `pageContext` for i18n
156
158
  // https://vike.dev/onPrerenderStart
157
159
  await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
@@ -170,8 +172,8 @@ async function runPrerender(options = {}, standaloneTrigger) {
170
172
  console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
171
173
  }
172
174
  await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
173
- const prerenderContextPublic = makePublic(prerenderContext);
174
- (0, utils_js_1.objectAssign)(vike.prerenderContext, prerenderContextPublic);
175
+ const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
176
+ (0, utils_js_1.objectAssign)(vike.prerenderContext, prerenderContextPublic, true);
175
177
  if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
176
178
  node_fs_1.default.rmSync(outDirServer, { recursive: true });
177
179
  }
@@ -233,7 +235,7 @@ function assertExportNames(pageFile) {
233
235
  const { exportNames, fileType } = pageFile;
234
236
  (0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
235
237
  }
236
- async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, globalContext_public, concurrencyLimit, doNotPrerenderList) {
238
+ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
237
239
  const onBeforePrerenderStartHooks = [];
238
240
  // V1 design
239
241
  await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
@@ -276,10 +278,11 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
276
278
  hookTimeout: (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerenderStart')
277
279
  });
278
280
  })));
279
- await Promise.all(onBeforePrerenderStartHooks.map(({ hookFn, hookName, hookFilePath, pageId, hookTimeout }) => concurrencyLimit(async () => {
281
+ await Promise.all(onBeforePrerenderStartHooks.map(({ pageId, ...hook }) => concurrencyLimit(async () => {
280
282
  if (doNotPrerenderList.find((p) => p.pageId === pageId))
281
283
  return;
282
- const prerenderResult = await (0, executeHook_js_1.executeHook)(() => hookFn(), { hookName, hookFilePath, hookTimeout }, null);
284
+ const { hookName, hookFilePath } = hook;
285
+ const prerenderResult = await (0, execHook_js_1.execHookWithoutPageContext)(() => hook.hookFn(), hook);
283
286
  const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
284
287
  // Handle result
285
288
  await Promise.all(result.map(async ({ url, pageContext }) => {
@@ -296,7 +299,7 @@ async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext,
296
299
  }
297
300
  // Add result
298
301
  const providedByHook = { hookFilePath, hookName };
299
- const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, globalContext_public, false, undefined, providedByHook);
302
+ const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
300
303
  prerenderContext.pageContexts.push(pageContextNew);
301
304
  if (pageContext) {
302
305
  (0, utils_js_1.objectAssign)(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
@@ -342,22 +345,22 @@ function getUrlList404(globalContext) {
342
345
  }
343
346
  return urlList;
344
347
  }
345
- async function createPageContexts(urlList, prerenderContext, globalContext, globalContext_public, concurrencyLimit, is404) {
348
+ async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
346
349
  await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
347
350
  // Already included in a onBeforePrerenderStart() hook
348
351
  if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
349
352
  return;
350
353
  }
351
- const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, null);
354
+ const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
352
355
  prerenderContext.pageContexts.push(pageContext);
353
356
  })));
354
357
  }
355
- async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, globalContext_public, is404, pageId, providedByHook) {
358
+ async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
356
359
  const pageContextInit = {
357
360
  urlOriginal,
358
361
  ...prerenderContext._pageContextInit
359
362
  };
360
- const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, globalContext_public, {
363
+ const pageContext = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
361
364
  isPrerendering: true
362
365
  });
363
366
  (0, utils_js_1.assert)(pageContext.isPrerendering === true);
@@ -501,26 +504,13 @@ async function callOnPrerenderStartHook(prerenderContext, globalContext, concurr
501
504
  (0, utils_js_1.assert)(pageContext.urlOriginal);
502
505
  pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
503
506
  });
504
- const docLink = 'https://vike.dev/i18n#pre-rendering';
505
507
  prerenderContext.pageContexts.forEach((pageContext) => {
506
508
  // Preserve URL computed properties when the user is copying pageContext is his onPrerenderStart() hook, e.g. /examples/i18n/
507
509
  // https://vike.dev/i18n#pre-rendering
508
510
  (0, utils_js_1.preservePropertyGetters)(pageContext);
509
511
  });
510
- let result = await (0, executeHook_js_1.executeHook)(() => {
511
- const prerenderContextPublic = makePublic(prerenderContext);
512
- // TODO/v1-release: remove warning
513
- Object.defineProperty(prerenderContextPublic, 'prerenderPageContexts', {
514
- get() {
515
- (0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${docLink}`, {
516
- showStackTrace: true,
517
- onlyOnce: true
518
- });
519
- return prerenderContext.pageContexts;
520
- }
521
- });
522
- return hookFn(prerenderContextPublic);
523
- }, onPrerenderStartHook, null);
512
+ const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
513
+ let result = await (0, execHook_js_1.execHookWithoutPageContext)(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
524
514
  // Before applying result
525
515
  prerenderContext.pageContexts.forEach((pageContext) => {
526
516
  ;
@@ -760,7 +750,7 @@ function assertIsNotAbort(err, urlOriginal) {
760
750
  if (!(0, abort_js_1.isAbortError)(err))
761
751
  return;
762
752
  const pageContextAbort = err._pageContextAbort;
763
- const hookLoc = (0, executeHook_js_1.isUserHookError)(err);
753
+ const hookLoc = (0, execHook_js_1.isUserHookError)(err);
764
754
  (0, utils_js_1.assert)(hookLoc);
765
755
  const thrownBy = ` by ${picocolors_1.default.cyan(`${hookLoc.hookName}()`)} hook defined at ${hookLoc.hookFilePath}`;
766
756
  const abortCaller = pageContextAbort._abortCaller;
@@ -769,10 +759,24 @@ function assertIsNotAbort(err, urlOriginal) {
769
759
  (0, utils_js_1.assert)(abortCall);
770
760
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
771
761
  }
772
- function makePublic(prerenderContext) {
773
- const prerenderContextPublic = (0, utils_js_1.getPublicProxy)(prerenderContext, 'prerenderContext', [
774
- 'output', // vite-plugin-vercel
775
- 'pageContexts' // https://vike.dev/i18n#pre-rendering
776
- ]);
762
+ function preparePrerenderContextForPublicUsage(prerenderContext) {
763
+ // TODO/v1-release: remove
764
+ if (!('prerenderPageContexts' in prerenderContext)) {
765
+ Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
766
+ get() {
767
+ (0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${picocolors_1.default.underline(docLink)}`, {
768
+ showStackTrace: true,
769
+ onlyOnce: true
770
+ });
771
+ return prerenderContext.pageContexts;
772
+ }
773
+ });
774
+ }
775
+ // Required because of https://vike.dev/i18n#pre-rendering
776
+ // - Thus, we have to let users access the original pageContext object => we cannot use ES proxies and we cannot use preparePageContextForPublicUsage()
777
+ prerenderContext.pageContexts.forEach((pageContext) => {
778
+ (0, utils_js_1.changeEnumerable)(pageContext, '_isOriginalObject', true);
779
+ });
780
+ const prerenderContextPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(prerenderContext, 'prerenderContext');
777
781
  return prerenderContextPublic;
778
782
  }
@@ -31,6 +31,6 @@ __exportStar(require("../../utils/pLimit.js"), exports);
31
31
  __exportStar(require("../../utils/isFilePathAbsoluteFilesystem.js"), exports);
32
32
  __exportStar(require("../../utils/isArray.js"), exports);
33
33
  __exportStar(require("../../utils/isObject.js"), exports);
34
- __exportStar(require("../../utils/getPublicProxy.js"), exports);
35
34
  __exportStar(require("../../utils/isNullish.js"), exports);
36
35
  __exportStar(require("../../utils/preservePropertyGetters.js"), exports);
36
+ __exportStar(require("../../utils/changeEnumerable.js"), exports);
@@ -36,6 +36,7 @@ const loadPageRoutes_js_1 = require("../../shared/route/loadPageRoutes.js");
36
36
  const assertV1Design_js_1 = require("../shared/assertV1Design.js");
37
37
  const resolveBase_js_1 = require("../shared/resolveBase.js");
38
38
  const createGlobalContextShared_js_1 = require("../../shared/createGlobalContextShared.js");
39
+ const prepareGlobalContextForPublicUsage_js_1 = require("../../shared/prepareGlobalContextForPublicUsage.js");
39
40
  const debug = (0, utils_js_1.createDebugger)('vike:globalContext');
40
41
  const globalObject = (0, utils_js_1.getGlobalObject)('runtime/globalContext.ts', getInitialGlobalContext());
41
42
  // Trick to break down TypeScript circular dependency
@@ -47,10 +48,9 @@ async function getGlobalContextServerInternal() {
47
48
  assertGlobalContextIsDefined();
48
49
  if (globalObject.isProduction !== true)
49
50
  await globalObject.waitForUserFilesUpdate;
50
- const { globalContext, globalContext_public } = globalObjectTyped;
51
+ const { globalContext } = globalObjectTyped;
51
52
  assertIsDefined(globalContext);
52
- (0, utils_js_1.assert)(globalContext_public);
53
- return { globalContext, globalContext_public };
53
+ return { globalContext };
54
54
  }
55
55
  function assertIsDefined(globalContext) {
56
56
  if (!globalContext) {
@@ -62,7 +62,6 @@ function assertIsDefined(globalContext) {
62
62
  function assertGlobalContextIsDefined() {
63
63
  assertIsDefined(globalObjectTyped.globalContext);
64
64
  (0, utils_js_1.assert)(globalObject.globalContext);
65
- (0, utils_js_1.assert)(globalObject.globalContext_public);
66
65
  }
67
66
  // We purposely return GlobalContext instead of GlobalContextServer because `import { getGlobalContext } from 'vike'` can resolve to the client-side implementation.
68
67
  /**
@@ -92,9 +91,7 @@ async function getGlobalContextAsync(isProduction) {
92
91
  if (!isProduction)
93
92
  await globalObject.waitForUserFilesUpdate;
94
93
  assertGlobalContextIsDefined();
95
- const { globalContext_public } = globalObjectTyped;
96
- (0, utils_js_1.assert)(globalContext_public);
97
- return globalContext_public;
94
+ return getGlobalContextForPublicUsage();
98
95
  }
99
96
  /**
100
97
  * Get runtime information about your app.
@@ -105,26 +102,19 @@ async function getGlobalContextAsync(isProduction) {
105
102
  */
106
103
  function getGlobalContextSync() {
107
104
  debug('getGlobalContextSync()');
108
- const { globalContext_public } = globalObjectTyped;
109
- (0, utils_js_1.assertUsage)(globalContext_public, createGlobalContextShared_js_1.getGlobalContextSyncErrMsg);
105
+ const { globalContext } = globalObjectTyped;
106
+ (0, utils_js_1.assertUsage)(globalContext, createGlobalContextShared_js_1.getGlobalContextSyncErrMsg);
110
107
  (0, utils_js_1.assertWarning)(false,
111
108
  // 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.
112
109
  // 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).
113
110
  'getGlobalContextSync() is going to be deprecated in the next major release, see https://vike.dev/getGlobalContext', { onlyOnce: true });
114
- return globalContext_public;
115
- }
116
- function makePublic(globalContext) {
117
- const globalContextPublic = (0, utils_js_1.getPublicProxy)(globalContext, 'globalContext', [
118
- 'assetsManifest',
119
- 'config',
120
- 'viteConfig',
121
- 'viteConfigRuntime',
122
- 'pages',
123
- 'baseServer',
124
- 'baseAssets',
125
- 'isClientSide'
126
- ], true);
127
- return globalContextPublic;
111
+ return getGlobalContextForPublicUsage();
112
+ }
113
+ function getGlobalContextForPublicUsage() {
114
+ const { globalContext } = globalObjectTyped;
115
+ (0, utils_js_1.assert)(globalContext);
116
+ const globalContextForPublicUsage = (0, prepareGlobalContextForPublicUsage_js_1.prepareGlobalContextForPublicUsage)(globalContext);
117
+ return globalContextForPublicUsage;
128
118
  }
129
119
  async function setGlobalContext_viteDevServer(viteDevServer) {
130
120
  debug('setGlobalContext_viteDevServer()');
@@ -338,8 +328,6 @@ async function setGlobalContext(virtualFileExports) {
338
328
  (0, assertV1Design_js_1.assertV1Design)(
339
329
  // pageConfigs is PageConfigRuntime[] but assertV1Design() requires PageConfigBuildTime[]
340
330
  globalContext._pageConfigs.length > 0, globalContext._pageFilesAll);
341
- // Public usage
342
- globalObject.globalContext_public = makePublic(globalContext);
343
331
  assertGlobalContextIsDefined();
344
332
  (0, utils_js_1.onSetupRuntime)();
345
333
  // Never actually used, only used for TypeScript `ReturnType<typeof setGlobalContext>`
@@ -361,7 +349,6 @@ async function addGlobalContext(globalContext) {
361
349
  (0, utils_js_1.assert)(viteConfigRuntime);
362
350
  (0, utils_js_1.assert)(!isPrerendering);
363
351
  return {
364
- ...globalContext,
365
352
  ...globalContextBase,
366
353
  ...resolveBaseRuntime(viteConfigRuntime, globalContext.config),
367
354
  _isProduction: false,
@@ -379,7 +366,6 @@ async function addGlobalContext(globalContext) {
379
366
  (0, utils_js_1.assert)(buildInfo);
380
367
  (0, utils_js_1.assert)(assetsManifest);
381
368
  const globalContextBase2 = {
382
- ...globalContext,
383
369
  ...globalContextBase,
384
370
  ...resolveBaseRuntime(buildInfo.viteConfigRuntime, globalContext.config),
385
371
  _isProduction: true,
@@ -41,7 +41,7 @@ function getPageContextClientSerialized(pageContext) {
41
41
  }
42
42
  function getGlobalContextClientSerialized(pageContext) {
43
43
  const passToClient = pageContext._passToClient;
44
- const globalContextClient = applyPassToClient(passToClient, pageContext.globalContext);
44
+ const globalContextClient = applyPassToClient(passToClient, pageContext._globalContext);
45
45
  const globalContextClientSerialized = serializeObject(globalContextClient, 'globalContext', passToClient);
46
46
  return globalContextClientSerialized;
47
47
  }
@@ -5,18 +5,13 @@ exports.createPageContextServerSideWithoutGlobalContext = createPageContextServe
5
5
  const utils_js_1 = require("../utils.js");
6
6
  const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
7
7
  const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
8
- async function createPageContextServerSide(pageContextInit, globalContext, globalObject_public, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
8
+ async function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
9
9
  urlHandler: null,
10
10
  isClientSideNavigation: false
11
11
  } }) {
12
12
  (0, utils_js_1.assert)(pageContextInit.urlOriginal);
13
13
  const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
14
14
  (0, utils_js_1.objectAssign)(pageContextCreated, {
15
- /* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
16
- // We must use Flatten<T> otherwise TypeScript complains upon assigning types
17
- ...(globalContext as Flatten<typeof globalContext>), // least precedence
18
- */
19
- globalContext: globalObject_public,
20
15
  _globalContext: globalContext,
21
16
  // The following is defined on `pageContext` because we can eventually make these non-global
22
17
  _baseServer: globalContext.baseServer,
@@ -65,10 +60,11 @@ function createPageContextServerSideWithoutGlobalContext(pageContextInit) {
65
60
  return pageContext;
66
61
  }
67
62
  function createPageContext(pageContextInit, isPrerendering) {
68
- const pageContext = {
63
+ const pageContext = (0, createPageContextShared_js_1.createPageContextObject)();
64
+ (0, utils_js_1.objectAssign)(pageContext, {
69
65
  isClientSide: false,
70
66
  isPrerendering
71
- };
67
+ });
72
68
  (0, utils_js_1.objectAssign)(pageContext, pageContextInit);
73
69
  return pageContext;
74
70
  }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.execHookServer = execHookServer;
4
+ const execHook_js_1 = require("../../../shared/hooks/execHook.js");
5
+ const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
6
+ async function execHookServer(hookName, pageContext) {
7
+ return await (0, execHook_js_1.execHook)(hookName, pageContext, (p) => {
8
+ (0, preparePageContextForPublicUsageServer_js_1.preparePageContextForPublicUsageServer)(p);
9
+ return p;
10
+ });
11
+ }
@@ -2,30 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeOnBeforeRenderAndDataHooks = executeOnBeforeRenderAndDataHooks;
4
4
  const assertOnBeforeRenderHookReturn_js_1 = require("../../../shared/assertOnBeforeRenderHookReturn.js");
5
- const executeHookServer_js_1 = require("./executeHookServer.js");
5
+ const execHookServer_js_1 = require("./execHookServer.js");
6
6
  async function executeOnBeforeRenderAndDataHooks(pageContext) {
7
7
  if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
8
8
  return;
9
9
  }
10
- const hooks = await (0, executeHookServer_js_1.executeHookServer)('data', pageContext);
10
+ const hooks = await (0, execHookServer_js_1.execHookServer)('data', pageContext);
11
11
  const dataHook = hooks[0]; // TO-DO/soon: support cumulative
12
12
  if (dataHook) {
13
- // Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
13
+ // Note: hookReturn can be anything (e.g. an object) and is to be assigned to pageContext.data
14
14
  const pageContextFromHook = {
15
- data: dataHook.hookResult
15
+ data: dataHook.hookReturn
16
16
  };
17
17
  Object.assign(pageContext, pageContextFromHook);
18
18
  // Execute +onData
19
19
  if (!pageContext.isClientSideNavigation) {
20
- await (0, executeHookServer_js_1.executeHookServer)('onData', pageContext);
20
+ await (0, execHookServer_js_1.execHookServer)('onData', pageContext);
21
21
  }
22
22
  }
23
- const res = await (0, executeHookServer_js_1.executeHookServer)('onBeforeRender', pageContext);
23
+ const res = await (0, execHookServer_js_1.execHookServer)('onBeforeRender', pageContext);
24
24
  const onBeforeRenderHook = res[0]; // TO-DO/soon: support cumulative
25
25
  if (onBeforeRenderHook) {
26
- const { hookResult } = onBeforeRenderHook;
27
- (0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookResult, onBeforeRenderHook.hookFilePath);
28
- const pageContextFromHook = hookResult?.pageContext;
26
+ const { hookReturn } = onBeforeRenderHook;
27
+ (0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookReturn, onBeforeRenderHook.hookFilePath);
28
+ const pageContextFromHook = hookReturn?.pageContext;
29
29
  Object.assign(pageContext, pageContextFromHook);
30
30
  }
31
31
  }
@@ -9,17 +9,16 @@ const getHook_js_1 = require("../../../shared/hooks/getHook.js");
9
9
  const utils_js_1 = require("../utils.js");
10
10
  const stream_js_1 = require("../html/stream.js");
11
11
  const assertPageContextProvidedByUser_js_1 = require("../../../shared/assertPageContextProvidedByUser.js");
12
- const preparePageContextForUserConsumptionServerSide_js_1 = require("./preparePageContextForUserConsumptionServerSide.js");
12
+ const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
13
13
  const assertHookReturnedObject_js_1 = require("../../../shared/assertHookReturnedObject.js");
14
14
  const loggerRuntime_js_1 = require("./loggerRuntime.js");
15
15
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
16
- const executeHook_js_1 = require("../../../shared/hooks/executeHook.js");
16
+ const execHook_js_1 = require("../../../shared/hooks/execHook.js");
17
17
  async function executeOnRenderHtmlHook(pageContext) {
18
- const { renderHook, hookFn } = getRenderHook(pageContext);
19
- (0, utils_js_1.objectAssign)(pageContext, { _renderHook: renderHook });
20
- (0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext);
21
- const hookReturnValue = await (0, executeHook_js_1.executeHook)(() => hookFn(pageContext), renderHook, pageContext);
22
- const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
18
+ const hook = getRenderHook(pageContext);
19
+ (0, utils_js_1.objectAssign)(pageContext, { _renderHook: hook });
20
+ const { hookReturn } = await (0, execHook_js_1.execHookSingleWithReturn)(hook, pageContext, preparePageContextForPublicUsageServer_js_1.preparePageContextForPublicUsageServer);
21
+ const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturn, hook);
23
22
  Object.assign(pageContext, pageContextProvidedByRenderHook);
24
23
  (0, utils_js_1.objectAssign)(pageContext, { _pageContextPromise: pageContextPromise });
25
24
  const onErrorWhileStreaming = (err) => {
@@ -34,7 +33,7 @@ async function executeOnRenderHtmlHook(pageContext) {
34
33
  };
35
34
  const htmlRender = await (0, renderHtml_js_1.renderDocumentHtml)(documentHtml, pageContext, onErrorWhileStreaming, injectFilter);
36
35
  (0, utils_js_1.assert)(typeof htmlRender === 'string' || (0, stream_js_1.isStream)(htmlRender));
37
- return { htmlRender, renderHook };
36
+ return { htmlRender, renderHook: hook };
38
37
  }
39
38
  function getRenderHook(pageContext) {
40
39
  let hookFound;
@@ -54,10 +53,7 @@ function getRenderHook(pageContext) {
54
53
  if (hook) {
55
54
  (0, utils_js_1.assert)(hookName);
56
55
  const { hookFilePath, hookFn, hookTimeout } = hook;
57
- hookFound = {
58
- hookFn,
59
- renderHook: { hookFn, hookFilePath, hookName, hookTimeout }
60
- };
56
+ hookFound = { hookFn, hookFilePath, hookName, hookTimeout };
61
57
  }
62
58
  }
63
59
  if (!hookFound) {
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preparePageContextForPublicUsageServer = preparePageContextForPublicUsageServer;
4
+ const preparePageContextForPublicUsage_js_1 = require("../../../shared/preparePageContextForPublicUsage.js");
5
+ function preparePageContextForPublicUsageServer(pageContext) {
6
+ // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
7
+ (0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
8
+ pageContext = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
9
+ return pageContext;
10
+ }
@@ -15,7 +15,7 @@ const executeOnRenderHtmlHook_js_1 = require("./executeOnRenderHtmlHook.js");
15
15
  const executeOnBeforeRenderAndDataHooks_js_1 = require("./executeOnBeforeRenderAndDataHooks.js");
16
16
  const loggerRuntime_js_1 = require("./loggerRuntime.js");
17
17
  const isNewError_js_1 = require("./isNewError.js");
18
- const preparePageContextForUserConsumptionServerSide_js_1 = require("./preparePageContextForUserConsumptionServerSide.js");
18
+ const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContextForPublicUsageServer.js");
19
19
  const executeGuardHook_js_1 = require("../../../shared/route/executeGuardHook.js");
20
20
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
21
21
  const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
@@ -28,7 +28,7 @@ async function renderPageAlreadyRouted(pageContext) {
28
28
  (0, utils_js_1.assert)(isError === (pageContext.pageId === (0, error_page_js_1.getErrorPageId)(pageContext._pageFilesAll, pageContext._pageConfigs)));
29
29
  (0, utils_js_1.objectAssign)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
30
30
  if (!isError) {
31
- await (0, executeGuardHook_js_1.executeGuardHook)(pageContext, (pageContext) => (0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext));
31
+ await (0, executeGuardHook_js_1.executeGuardHook)(pageContext, (pageContext) => (0, preparePageContextForPublicUsageServer_js_1.preparePageContextForPublicUsageServer)(pageContext));
32
32
  }
33
33
  if (!isError) {
34
34
  await (0, executeOnBeforeRenderAndDataHooks_js_1.executeOnBeforeRenderAndDataHooks)(pageContext);
@@ -65,7 +65,7 @@ async function prerenderPage(pageContext) {
65
65
  });
66
66
  /* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
67
67
  * - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
68
- await executeGuardHook(pageContext, (pageContext) => preparePageContextForUserConsumptionServerSide(pageContext))
68
+ await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext))
69
69
  */
70
70
  await (0, executeOnBeforeRenderAndDataHooks_js_1.executeOnBeforeRenderAndDataHooks)(pageContext);
71
71
  const { htmlRender, renderHook } = await (0, executeOnRenderHtmlHook_js_1.executeOnRenderHtmlHook)(pageContext);
@@ -24,6 +24,7 @@ const error_page_js_1 = require("../../shared/error-page.js");
24
24
  const handleErrorWithoutErrorPage_js_1 = require("./renderPage/handleErrorWithoutErrorPage.js");
25
25
  const loadPageConfigsLazyServerSide_js_1 = require("./renderPage/loadPageConfigsLazyServerSide.js");
26
26
  const resolveRedirects_js_1 = require("./renderPage/resolveRedirects.js");
27
+ const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
27
28
  const globalObject = (0, utils_js_1.getGlobalObject)('runtime/renderPage.ts', {
28
29
  httpRequestsCount: 0
29
30
  });
@@ -81,8 +82,8 @@ async function renderPagePrepare(pageContextInit, httpRequestId) {
81
82
  else {
82
83
  // `globalContext` now contains the entire Vike config and getVikeConfig() isn't called anymore for this request.
83
84
  }
84
- const { globalContext, globalContext_public } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
85
- const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, globalContext_public, httpRequestId);
85
+ const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
86
+ const pageContextBegin = await getPageContextBegin(pageContextInit, globalContext, httpRequestId);
86
87
  // Check Base URL
87
88
  {
88
89
  const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
@@ -304,9 +305,9 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
304
305
  (0, utils_js_1.assert)(pageContext.errorWhileRendering);
305
306
  return pageContext;
306
307
  }
307
- async function getPageContextBegin(pageContextInit, globalContext, globalContext_public, httpRequestId) {
308
+ async function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
308
309
  const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
309
- const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, globalContext_public, {
310
+ const pageContextBegin = await (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
310
311
  isPrerendering: false,
311
312
  ssr: {
312
313
  urlHandler: _urlHandler,
@@ -488,5 +489,6 @@ function getPageContextInvalidVikeConfig(err, pageContextInit, httpRequestId) {
488
489
  function forkPageContext(pageContextBegin) {
489
490
  const pageContext = {};
490
491
  (0, utils_js_1.objectAssign)(pageContext, pageContextBegin, true);
491
- return pageContext;
492
+ const pageContextWithProxy = (0, getProxyForPublicUsage_js_1.getProxyForMutationTracking)(pageContext);
493
+ return pageContextWithProxy;
492
494
  }
@@ -74,5 +74,5 @@ __exportStar(require("../../utils/isVikeReactApp.js"), exports);
74
74
  __exportStar(require("../../utils/getPropAccessNotation.js"), exports);
75
75
  __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
76
76
  __exportStar(require("../../utils/genPromise.js"), exports);
77
- __exportStar(require("../../utils/getPublicProxy.js"), exports);
78
77
  __exportStar(require("../../utils/augmentType.js"), exports);
78
+ __exportStar(require("../../utils/changeEnumerable.js"), exports);