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
@@ -1,10 +1,10 @@
1
1
  export { createPageContextServerSide };
2
2
  export { createPageContextServerSideWithoutGlobalContext };
3
- export type { PageContextCreatedServerSide };
4
- import type { GlobalContextServerInternal, GlobalContextServer } from '../globalContext.js';
3
+ export type { PageContextCreated };
4
+ import type { GlobalContextServerInternal } from '../globalContext.js';
5
5
  import type { PageContextInit } from '../renderPage.js';
6
- type PageContextCreatedServerSide = Awaited<ReturnType<typeof createPageContextServerSide>>;
7
- declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, globalObject_public: GlobalContextServer, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } }: {
6
+ type PageContextCreated = Awaited<ReturnType<typeof createPageContextServerSide>>;
7
+ declare function createPageContextServerSide(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } }: {
8
8
  isPrerendering: false;
9
9
  ssr: {
10
10
  urlHandler: null | ((url: string) => string);
@@ -14,15 +14,18 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
14
14
  isPrerendering: true;
15
15
  ssr?: undefined;
16
16
  }): Promise<{
17
- isClientSide: boolean;
17
+ _isOriginalObject: true;
18
+ isPageContext: true;
19
+ } & {
20
+ isClientSide: false;
18
21
  isPrerendering: boolean;
19
- } & Pick<import("../../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
22
+ } & Pick<import("../../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
20
23
  url?: string;
21
24
  headers?: Record<string, string>;
22
25
  } & {
23
- globalContext: GlobalContextServer;
24
26
  _globalContext: {
25
27
  isGlobalContext: true;
28
+ _isOriginalObject: true;
26
29
  _virtualFileExports: unknown;
27
30
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
28
31
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -60,23 +63,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
60
63
  isClientSide: false;
61
64
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
62
65
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
63
- isGlobalContext: true;
64
- _virtualFileExports: unknown;
65
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
66
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
67
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
68
- _allPageIds: string[];
69
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
70
- config: import("../../../types/index.js").ConfigResolved;
71
- pages: {
72
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
73
- route: import("../../../shared/page-configs/Config.js").Route;
74
- isErrorPage?: undefined;
75
- } | {
76
- route?: undefined;
77
- isErrorPage: true;
78
- });
79
- };
80
66
  } | {
81
67
  _isPrerendering: true;
82
68
  viteConfig: import("vite").ResolvedConfig;
@@ -99,23 +85,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
99
85
  isClientSide: false;
100
86
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
101
87
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
102
- isGlobalContext: true;
103
- _virtualFileExports: unknown;
104
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
105
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
106
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
107
- _allPageIds: string[];
108
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
109
- config: import("../../../types/index.js").ConfigResolved;
110
- pages: {
111
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
112
- route: import("../../../shared/page-configs/Config.js").Route;
113
- isErrorPage?: undefined;
114
- } | {
115
- route?: undefined;
116
- isErrorPage: true;
117
- });
118
- };
119
88
  } | {
120
89
  _isPrerendering: false;
121
90
  viteConfig: null;
@@ -138,23 +107,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
138
107
  isClientSide: false;
139
108
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
140
109
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
141
- isGlobalContext: true;
142
- _virtualFileExports: unknown;
143
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
144
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
145
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
146
- _allPageIds: string[];
147
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
148
- config: import("../../../types/index.js").ConfigResolved;
149
- pages: {
150
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
151
- route: import("../../../shared/page-configs/Config.js").Route;
152
- isErrorPage?: undefined;
153
- } | {
154
- route?: undefined;
155
- isErrorPage: true;
156
- });
157
- };
158
110
  });
159
111
  _baseServer: string;
160
112
  _baseAssets: string;
@@ -175,13 +127,14 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
175
127
  url: string;
176
128
  } & {
177
129
  headers: Record<string, string> | null;
178
- } & {
179
- isPageContext: true;
180
130
  }>;
181
131
  declare function createPageContextServerSideWithoutGlobalContext(pageContextInit: PageContextInit): {
182
- isClientSide: boolean;
132
+ _isOriginalObject: true;
133
+ isPageContext: true;
134
+ } & {
135
+ isClientSide: false;
183
136
  isPrerendering: boolean;
184
- } & Pick<import("../../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
137
+ } & Pick<import("../../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
185
138
  url?: string;
186
139
  headers?: Record<string, string>;
187
140
  };
@@ -2,19 +2,14 @@ export { createPageContextServerSide };
2
2
  export { createPageContextServerSideWithoutGlobalContext };
3
3
  import { assert, assertUsage, assertWarning, augmentType, normalizeHeaders, objectAssign } from '../utils.js';
4
4
  import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
5
- import { createPageContextShared } from '../../../shared/createPageContextShared.js';
6
- async function createPageContextServerSide(pageContextInit, globalContext, globalObject_public, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
5
+ import { createPageContextObject, createPageContextShared } from '../../../shared/createPageContextShared.js';
6
+ async function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
7
7
  urlHandler: null,
8
8
  isClientSideNavigation: false
9
9
  } }) {
10
10
  assert(pageContextInit.urlOriginal);
11
11
  const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
12
12
  objectAssign(pageContextCreated, {
13
- /* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
14
- // We must use Flatten<T> otherwise TypeScript complains upon assigning types
15
- ...(globalContext as Flatten<typeof globalContext>), // least precedence
16
- */
17
- globalContext: globalObject_public,
18
13
  _globalContext: globalContext,
19
14
  // The following is defined on `pageContext` because we can eventually make these non-global
20
15
  _baseServer: globalContext.baseServer,
@@ -63,10 +58,11 @@ function createPageContextServerSideWithoutGlobalContext(pageContextInit) {
63
58
  return pageContext;
64
59
  }
65
60
  function createPageContext(pageContextInit, isPrerendering) {
66
- const pageContext = {
61
+ const pageContext = createPageContextObject();
62
+ objectAssign(pageContext, {
67
63
  isClientSide: false,
68
64
  isPrerendering
69
- };
65
+ });
70
66
  objectAssign(pageContext, pageContextInit);
71
67
  return pageContext;
72
68
  }
@@ -0,0 +1,12 @@
1
+ export { execHookServer };
2
+ export type { PageContextExecuteHookServer };
3
+ import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
4
+ import type { PageConfigUserFriendlyOld } from '../../../shared/getPageFiles.js';
5
+ import type { HookName } from '../../../shared/page-configs/Config.js';
6
+ type PageContextExecuteHookServer = PageConfigUserFriendlyOld & PageContextForPublicUsageServer;
7
+ declare function execHookServer(hookName: HookName, pageContext: PageContextExecuteHookServer): Promise<(import("../../../shared/hooks/getHook.js").HookLoc & {
8
+ hookFn: (arg: import("../../../shared/preparePageContextForPublicUsage.js").PageContextPrepareMinimum | import("../../../shared/prepareGlobalContextForPublicUsage.js").GlobalContextPrepareMinimum) => unknown;
9
+ hookTimeout: import("../../../shared/hooks/getHook.js").HookTimeout;
10
+ } & {
11
+ hookReturn: unknown;
12
+ })[]>;
@@ -0,0 +1,9 @@
1
+ export { execHookServer };
2
+ import { execHook } from '../../../shared/hooks/execHook.js';
3
+ import { preparePageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
4
+ async function execHookServer(hookName, pageContext) {
5
+ return await execHook(hookName, pageContext, (p) => {
6
+ preparePageContextForPublicUsageServer(p);
7
+ return p;
8
+ });
9
+ }
@@ -1,5 +1,5 @@
1
1
  export { executeOnBeforeRenderAndDataHooks };
2
- import { type PageContextExecuteHookServer } from './executeHookServer.js';
2
+ import { type PageContextExecuteHookServer } from './execHookServer.js';
3
3
  declare function executeOnBeforeRenderAndDataHooks(pageContext: {
4
4
  pageId: string;
5
5
  _pageContextAlreadyProvidedByOnPrerenderHook?: true;
@@ -1,29 +1,29 @@
1
1
  export { executeOnBeforeRenderAndDataHooks };
2
2
  import { assertOnBeforeRenderHookReturn } from '../../../shared/assertOnBeforeRenderHookReturn.js';
3
- import { executeHookServer } from './executeHookServer.js';
3
+ import { execHookServer } from './execHookServer.js';
4
4
  async function executeOnBeforeRenderAndDataHooks(pageContext) {
5
5
  if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
6
6
  return;
7
7
  }
8
- const hooks = await executeHookServer('data', pageContext);
8
+ const hooks = await execHookServer('data', pageContext);
9
9
  const dataHook = hooks[0]; // TO-DO/soon: support cumulative
10
10
  if (dataHook) {
11
- // Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
11
+ // Note: hookReturn can be anything (e.g. an object) and is to be assigned to pageContext.data
12
12
  const pageContextFromHook = {
13
- data: dataHook.hookResult
13
+ data: dataHook.hookReturn
14
14
  };
15
15
  Object.assign(pageContext, pageContextFromHook);
16
16
  // Execute +onData
17
17
  if (!pageContext.isClientSideNavigation) {
18
- await executeHookServer('onData', pageContext);
18
+ await execHookServer('onData', pageContext);
19
19
  }
20
20
  }
21
- const res = await executeHookServer('onBeforeRender', pageContext);
21
+ const res = await execHookServer('onBeforeRender', pageContext);
22
22
  const onBeforeRenderHook = res[0]; // TO-DO/soon: support cumulative
23
23
  if (onBeforeRenderHook) {
24
- const { hookResult } = onBeforeRenderHook;
25
- assertOnBeforeRenderHookReturn(hookResult, onBeforeRenderHook.hookFilePath);
26
- const pageContextFromHook = hookResult?.pageContext;
24
+ const { hookReturn } = onBeforeRenderHook;
25
+ assertOnBeforeRenderHookReturn(hookReturn, onBeforeRenderHook.hookFilePath);
26
+ const pageContextFromHook = hookReturn?.pageContext;
27
27
  Object.assign(pageContext, pageContextFromHook);
28
28
  }
29
29
  }
@@ -3,16 +3,18 @@ export type { RenderHook };
3
3
  import { type HtmlRender } from '../html/renderHtml.js';
4
4
  import { type Hook } from '../../../shared/hooks/getHook.js';
5
5
  import type { PageAsset } from './getPageAssets.js';
6
- import { type PageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
6
+ import { type PageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
7
7
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
8
8
  import type { PageContextSerialization } from '../html/serializeContext.js';
9
+ import type { GlobalContextServerInternal } from '../globalContext.js';
9
10
  type GetPageAssets = () => Promise<PageAsset[]>;
10
11
  type RenderHook = Hook & {
11
12
  hookName: HookName;
12
13
  };
13
14
  type HookName = 'onRenderHtml' | 'render';
14
- declare function executeOnRenderHtmlHook(pageContext: PageContextForUserConsumptionServerSide & PageContextSerialization & {
15
+ declare function executeOnRenderHtmlHook(pageContext: PageContextForPublicUsageServer & PageContextSerialization & {
15
16
  pageId: string;
17
+ _globalContext: GlobalContextServerInternal;
16
18
  _pageConfigs: PageConfigRuntime[];
17
19
  __getPageAssets: GetPageAssets;
18
20
  _isHtmlOnly: boolean;
@@ -4,17 +4,16 @@ import { getHookFromPageContext } from '../../../shared/hooks/getHook.js';
4
4
  import { assert, assertUsage, assertWarning, isObject, objectAssign, isPromise, isCallable } from '../utils.js';
5
5
  import { isStream } from '../html/stream.js';
6
6
  import { assertPageContextProvidedByUser } from '../../../shared/assertPageContextProvidedByUser.js';
7
- import { preparePageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
7
+ import { preparePageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
8
8
  import { assertHookReturnedObject } from '../../../shared/assertHookReturnedObject.js';
9
9
  import { logRuntimeError } from './loggerRuntime.js';
10
10
  import pc from '@brillout/picocolors';
11
- import { executeHook } from '../../../shared/hooks/executeHook.js';
11
+ import { execHookSingleWithReturn } from '../../../shared/hooks/execHook.js';
12
12
  async function executeOnRenderHtmlHook(pageContext) {
13
- const { renderHook, hookFn } = getRenderHook(pageContext);
14
- objectAssign(pageContext, { _renderHook: renderHook });
15
- preparePageContextForUserConsumptionServerSide(pageContext);
16
- const hookReturnValue = await executeHook(() => hookFn(pageContext), renderHook, pageContext);
17
- const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
13
+ const hook = getRenderHook(pageContext);
14
+ objectAssign(pageContext, { _renderHook: hook });
15
+ const { hookReturn } = await execHookSingleWithReturn(hook, pageContext, preparePageContextForPublicUsageServer);
16
+ const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturn, hook);
18
17
  Object.assign(pageContext, pageContextProvidedByRenderHook);
19
18
  objectAssign(pageContext, { _pageContextPromise: pageContextPromise });
20
19
  const onErrorWhileStreaming = (err) => {
@@ -29,7 +28,7 @@ async function executeOnRenderHtmlHook(pageContext) {
29
28
  };
30
29
  const htmlRender = await renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreaming, injectFilter);
31
30
  assert(typeof htmlRender === 'string' || isStream(htmlRender));
32
- return { htmlRender, renderHook };
31
+ return { htmlRender, renderHook: hook };
33
32
  }
34
33
  function getRenderHook(pageContext) {
35
34
  let hookFound;
@@ -49,10 +48,7 @@ function getRenderHook(pageContext) {
49
48
  if (hook) {
50
49
  assert(hookName);
51
50
  const { hookFilePath, hookFn, hookTimeout } = hook;
52
- hookFound = {
53
- hookFn,
54
- renderHook: { hookFn, hookFilePath, hookName, hookTimeout }
55
- };
51
+ hookFound = { hookFn, hookFilePath, hookName, hookTimeout };
56
52
  }
57
53
  }
58
54
  if (!hookFound) {
@@ -0,0 +1,20 @@
1
+ export { preparePageContextForPublicUsageServer };
2
+ export type { PageContextForPublicUsageServer };
3
+ import type { PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
4
+ import type { PageConfigUserFriendlyOld } from '../../../shared/page-configs/getUserFriendlyConfigs.js';
5
+ import type { PageContextInternalServer } from '../../../shared/types.js';
6
+ import type { GlobalContextServerInternal } from '../globalContext.js';
7
+ type PageContextForPublicUsageServer = PageContextInternalServer & PageConfigUserFriendlyOld & {
8
+ urlOriginal: string;
9
+ /** @deprecated */
10
+ url: string;
11
+ urlPathname: string;
12
+ urlParsed: PageContextUrlInternal['urlParsed'];
13
+ routeParams: Record<string, string>;
14
+ Page: unknown;
15
+ pageId: string;
16
+ is404: null | boolean;
17
+ isClientSideNavigation: boolean;
18
+ _globalContext: GlobalContextServerInternal;
19
+ };
20
+ declare function preparePageContextForPublicUsageServer<PageContext extends PageContextForPublicUsageServer>(pageContext: PageContext): PageContext;
@@ -0,0 +1,8 @@
1
+ export { preparePageContextForPublicUsageServer };
2
+ import { assertPropertyGetters, preparePageContextForPublicUsage } from '../../../shared/preparePageContextForPublicUsage.js';
3
+ function preparePageContextForPublicUsageServer(pageContext) {
4
+ // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
5
+ assertPropertyGetters(pageContext);
6
+ pageContext = preparePageContextForPublicUsage(pageContext);
7
+ return pageContext;
8
+ }
@@ -4,7 +4,7 @@ export type { PageContextAfterRender };
4
4
  import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
5
5
  import { HttpResponse } from './createHttpResponse.js';
6
6
  import { PageContext_loadPageConfigsLazyServerSide, type PageFiles } from './loadPageConfigsLazyServerSide.js';
7
- import type { PageContextCreatedServerSide } from './createPageContextServerSide.js';
7
+ import type { PageContextCreated } from './createPageContextServerSide.js';
8
8
  type PageContextAfterRender = {
9
9
  httpResponse: HttpResponse;
10
10
  errorWhileRendering: null | Error;
@@ -16,8 +16,8 @@ declare function renderPageAlreadyRouted<PageContext extends {
16
16
  routeParams: Record<string, string>;
17
17
  errorWhileRendering: null | Error;
18
18
  _httpRequestId: number;
19
- } & PageContextCreatedServerSide & PageContextUrlInternal & PageContext_loadPageConfigsLazyServerSide>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
20
- declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageFiles & {
19
+ } & PageContextCreated & PageContextUrlInternal & PageContext_loadPageConfigsLazyServerSide>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
20
+ declare function prerenderPage(pageContext: PageContextCreated & PageFiles & {
21
21
  routeParams: Record<string, string>;
22
22
  pageId: string;
23
23
  _urlRewrite: null;
@@ -29,15 +29,18 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
29
29
  documentHtml: string;
30
30
  pageContextSerialized: null;
31
31
  pageContext: {
32
- isClientSide: boolean;
32
+ _isOriginalObject: true;
33
+ isPageContext: true;
34
+ } & {
35
+ isClientSide: false;
33
36
  isPrerendering: boolean;
34
- } & Pick<import("../../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
37
+ } & Pick<import("../../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
35
38
  url?: string;
36
39
  headers?: Record<string, string>;
37
40
  } & {
38
- globalContext: import("../globalContext.js").GlobalContextServer;
39
41
  _globalContext: {
40
42
  isGlobalContext: true;
43
+ _isOriginalObject: true;
41
44
  _virtualFileExports: unknown;
42
45
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
43
46
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -75,23 +78,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
75
78
  isClientSide: false;
76
79
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
77
80
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
78
- isGlobalContext: true;
79
- _virtualFileExports: unknown;
80
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
81
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
82
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
83
- _allPageIds: string[];
84
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
85
- config: import("../../../types/index.js").ConfigResolved;
86
- pages: {
87
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
88
- route: import("../../../shared/page-configs/Config.js").Route;
89
- isErrorPage?: undefined;
90
- } | {
91
- route?: undefined;
92
- isErrorPage: true;
93
- });
94
- };
95
81
  } | {
96
82
  _isPrerendering: true;
97
83
  viteConfig: import("vite").ResolvedConfig;
@@ -114,23 +100,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
114
100
  isClientSide: false;
115
101
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
116
102
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
117
- isGlobalContext: true;
118
- _virtualFileExports: unknown;
119
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
120
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
121
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
122
- _allPageIds: string[];
123
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
124
- config: import("../../../types/index.js").ConfigResolved;
125
- pages: {
126
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
127
- route: import("../../../shared/page-configs/Config.js").Route;
128
- isErrorPage?: undefined;
129
- } | {
130
- route?: undefined;
131
- isErrorPage: true;
132
- });
133
- };
134
103
  } | {
135
104
  _isPrerendering: false;
136
105
  viteConfig: null;
@@ -153,23 +122,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
153
122
  isClientSide: false;
154
123
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
155
124
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
156
- isGlobalContext: true;
157
- _virtualFileExports: unknown;
158
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
159
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
160
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
161
- _allPageIds: string[];
162
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
163
- config: import("../../../types/index.js").ConfigResolved;
164
- pages: {
165
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
166
- route: import("../../../shared/page-configs/Config.js").Route;
167
- isErrorPage?: undefined;
168
- } | {
169
- route?: undefined;
170
- isErrorPage: true;
171
- });
172
- };
173
125
  });
174
126
  _baseServer: string;
175
127
  _baseAssets: string;
@@ -190,8 +142,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
190
142
  url: string;
191
143
  } & {
192
144
  headers: Record<string, string> | null;
193
- } & {
194
- isPageContext: true;
195
145
  } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
196
146
  Page: unknown;
197
147
  _isHtmlOnly: boolean;
@@ -215,15 +165,18 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
215
165
  documentHtml: string;
216
166
  pageContextSerialized: string;
217
167
  pageContext: {
218
- isClientSide: boolean;
168
+ _isOriginalObject: true;
169
+ isPageContext: true;
170
+ } & {
171
+ isClientSide: false;
219
172
  isPrerendering: boolean;
220
- } & Pick<import("../../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
173
+ } & Pick<import("../../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
221
174
  url?: string;
222
175
  headers?: Record<string, string>;
223
176
  } & {
224
- globalContext: import("../globalContext.js").GlobalContextServer;
225
177
  _globalContext: {
226
178
  isGlobalContext: true;
179
+ _isOriginalObject: true;
227
180
  _virtualFileExports: unknown;
228
181
  _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
229
182
  _pageConfigs: import("../../../__internal/index.js").PageConfig[];
@@ -261,23 +214,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
261
214
  isClientSide: false;
262
215
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
263
216
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
264
- isGlobalContext: true;
265
- _virtualFileExports: unknown;
266
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
267
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
268
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
269
- _allPageIds: string[];
270
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
271
- config: import("../../../types/index.js").ConfigResolved;
272
- pages: {
273
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
274
- route: import("../../../shared/page-configs/Config.js").Route;
275
- isErrorPage?: undefined;
276
- } | {
277
- route?: undefined;
278
- isErrorPage: true;
279
- });
280
- };
281
217
  } | {
282
218
  _isPrerendering: true;
283
219
  viteConfig: import("vite").ResolvedConfig;
@@ -300,23 +236,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
300
236
  isClientSide: false;
301
237
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
302
238
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
303
- isGlobalContext: true;
304
- _virtualFileExports: unknown;
305
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
306
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
307
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
308
- _allPageIds: string[];
309
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
310
- config: import("../../../types/index.js").ConfigResolved;
311
- pages: {
312
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
313
- route: import("../../../shared/page-configs/Config.js").Route;
314
- isErrorPage?: undefined;
315
- } | {
316
- route?: undefined;
317
- isErrorPage: true;
318
- });
319
- };
320
239
  } | {
321
240
  _isPrerendering: false;
322
241
  viteConfig: null;
@@ -339,23 +258,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
339
258
  isClientSide: false;
340
259
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
341
260
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
342
- isGlobalContext: true;
343
- _virtualFileExports: unknown;
344
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
345
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
346
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
347
- _allPageIds: string[];
348
- _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
349
- config: import("../../../types/index.js").ConfigResolved;
350
- pages: {
351
- [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
352
- route: import("../../../shared/page-configs/Config.js").Route;
353
- isErrorPage?: undefined;
354
- } | {
355
- route?: undefined;
356
- isErrorPage: true;
357
- });
358
- };
359
261
  });
360
262
  _baseServer: string;
361
263
  _baseAssets: string;
@@ -376,8 +278,6 @@ declare function prerenderPage(pageContext: PageContextCreatedServerSide & PageF
376
278
  url: string;
377
279
  } & {
378
280
  headers: Record<string, string> | null;
379
- } & {
380
- isPageContext: true;
381
281
  } & import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
382
282
  Page: unknown;
383
283
  _isHtmlOnly: boolean;
@@ -10,7 +10,7 @@ import { executeOnRenderHtmlHook } from './executeOnRenderHtmlHook.js';
10
10
  import { executeOnBeforeRenderAndDataHooks } from './executeOnBeforeRenderAndDataHooks.js';
11
11
  import { logRuntimeError } from './loggerRuntime.js';
12
12
  import { isNewError } from './isNewError.js';
13
- import { preparePageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
13
+ import { preparePageContextForPublicUsageServer } from './preparePageContextForPublicUsageServer.js';
14
14
  import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
15
15
  import pc from '@brillout/picocolors';
16
16
  import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
@@ -23,7 +23,7 @@ async function renderPageAlreadyRouted(pageContext) {
23
23
  assert(isError === (pageContext.pageId === getErrorPageId(pageContext._pageFilesAll, pageContext._pageConfigs)));
24
24
  objectAssign(pageContext, await loadPageConfigsLazyServerSide(pageContext));
25
25
  if (!isError) {
26
- await executeGuardHook(pageContext, (pageContext) => preparePageContextForUserConsumptionServerSide(pageContext));
26
+ await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext));
27
27
  }
28
28
  if (!isError) {
29
29
  await executeOnBeforeRenderAndDataHooks(pageContext);
@@ -60,7 +60,7 @@ async function prerenderPage(pageContext) {
60
60
  });
61
61
  /* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
62
62
  * - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
63
- await executeGuardHook(pageContext, (pageContext) => preparePageContextForUserConsumptionServerSide(pageContext))
63
+ await executeGuardHook(pageContext, (pageContext) => preparePageContextForPublicUsageServer(pageContext))
64
64
  */
65
65
  await executeOnBeforeRenderAndDataHooks(pageContext);
66
66
  const { htmlRender, renderHook } = await executeOnRenderHtmlHook(pageContext);