vike 0.4.229-commit-58f7ed0 → 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 (173) 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/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
  5. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
  6. package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -2
  7. package/dist/cjs/node/prerender/runPrerender.js +42 -38
  8. package/dist/cjs/node/prerender/utils.js +1 -1
  9. package/dist/cjs/node/runtime/globalContext.js +13 -27
  10. package/dist/cjs/node/runtime/html/serializeContext.js +1 -1
  11. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
  12. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -1
  13. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +6 -9
  14. package/dist/cjs/node/runtime/renderPage/execHookServer.js +11 -0
  15. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
  16. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  17. package/dist/cjs/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
  18. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +10 -0
  19. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
  20. package/dist/cjs/node/runtime/renderPage.js +9 -7
  21. package/dist/cjs/node/runtime/utils.js +1 -1
  22. package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -1
  23. package/dist/cjs/shared/addIs404ToPageProps.js +0 -7
  24. package/dist/cjs/shared/createGlobalContextShared.js +37 -8
  25. package/dist/cjs/shared/createPageContextShared.js +16 -11
  26. package/dist/cjs/shared/getPageContext.js +3 -3
  27. package/dist/cjs/shared/getPageContextUrlComputed.js +2 -36
  28. package/dist/cjs/shared/getProxyForPublicUsage.js +106 -0
  29. package/dist/cjs/shared/hooks/execHook.js +164 -0
  30. package/dist/cjs/shared/hooks/getHook.js +23 -4
  31. package/dist/cjs/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +54 -47
  32. package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +10 -0
  33. package/dist/cjs/shared/preparePageContextForPublicUsage.js +75 -0
  34. package/dist/cjs/shared/route/abort.js +2 -2
  35. package/dist/cjs/shared/route/executeGuardHook.js +4 -9
  36. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +4 -3
  37. package/dist/cjs/shared/route/index.js +2 -4
  38. package/dist/cjs/shared/route/loadPageRoutes.js +6 -0
  39. package/dist/cjs/shared/route/resolveRouteFunction.js +14 -10
  40. package/dist/cjs/shared/utils.js +2 -0
  41. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  42. package/dist/cjs/utils/objectAssign.js +3 -3
  43. package/dist/cjs/utils/objectDefineProperty.js +1 -1
  44. package/dist/esm/client/client-routing-runtime/{createPageContext.d.ts → createPageContextClientSide.d.ts} +21 -13
  45. package/dist/esm/client/client-routing-runtime/{createPageContext.js → createPageContextClientSide.js} +9 -11
  46. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +400 -15
  47. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +46 -44
  48. package/dist/esm/client/client-routing-runtime/globalContext.d.ts +11 -1
  49. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +3 -8
  50. package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
  51. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.d.ts +11 -0
  52. package/dist/esm/client/client-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  53. package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +135 -0
  54. package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +79 -78
  55. package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
  56. package/dist/esm/client/client-routing-runtime/utils.js +1 -0
  57. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +19 -13
  58. package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +12 -15
  59. package/dist/esm/client/server-routing-runtime/entry.js +4 -4
  60. package/dist/esm/client/server-routing-runtime/globalContext.d.ts +11 -1
  61. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.d.ts +9 -0
  62. package/dist/esm/client/server-routing-runtime/preparePageContextForPublicUsageClient.js +5 -0
  63. package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -0
  64. package/dist/esm/client/server-routing-runtime/utils.js +1 -0
  65. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +11 -1
  66. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +3 -3
  67. package/dist/esm/client/shared/executeOnRenderClientHook.js +4 -13
  68. package/dist/esm/client/shared/{loadUserFilesClientSide.d.ts → loadPageConfigsLazyClientSide.d.ts} +2 -2
  69. package/dist/esm/client/shared/{loadUserFilesClientSide.js → loadPageConfigsLazyClientSide.js} +4 -4
  70. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +11 -0
  71. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +40 -0
  72. package/dist/esm/node/api/build.js +1 -2
  73. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +4 -0
  74. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -1
  75. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +12 -6
  76. package/dist/esm/node/plugin/shared/loggerNotProd.js +1 -1
  77. package/dist/esm/node/prerender/runPrerender.d.ts +37 -73
  78. package/dist/esm/node/prerender/runPrerender.js +42 -38
  79. package/dist/esm/node/prerender/utils.d.ts +1 -1
  80. package/dist/esm/node/prerender/utils.js +1 -1
  81. package/dist/esm/node/runtime/globalContext.d.ts +46 -251
  82. package/dist/esm/node/runtime/globalContext.js +14 -28
  83. package/dist/esm/node/runtime/html/serializeContext.d.ts +1 -1
  84. package/dist/esm/node/runtime/html/serializeContext.js +1 -1
  85. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +1 -1
  86. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +7 -5
  87. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +0 -1
  88. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +26 -41
  89. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +7 -10
  90. package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +12 -0
  91. package/dist/esm/node/runtime/renderPage/execHookServer.js +9 -0
  92. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -3
  93. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +14 -15
  94. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +4 -2
  95. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +8 -12
  96. package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.d.ts → loadPageConfigsLazyServerSide.d.ts} +6 -6
  97. package/dist/esm/node/runtime/renderPage/{loadUserFilesServerSide.js → loadPageConfigsLazyServerSide.js} +4 -4
  98. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +20 -0
  99. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +8 -0
  100. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +38 -74
  101. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +5 -5
  102. package/dist/esm/node/runtime/renderPage.d.ts +21 -39
  103. package/dist/esm/node/runtime/renderPage.js +9 -7
  104. package/dist/esm/node/runtime/utils.d.ts +1 -1
  105. package/dist/esm/node/runtime/utils.js +1 -1
  106. package/dist/esm/shared/NOT_SERIALIZABLE.js +0 -1
  107. package/dist/esm/shared/addIs404ToPageProps.d.ts +1 -6
  108. package/dist/esm/shared/addIs404ToPageProps.js +1 -8
  109. package/dist/esm/shared/createGlobalContextShared.d.ts +28 -6
  110. package/dist/esm/shared/createGlobalContextShared.js +37 -8
  111. package/dist/esm/shared/createPageContextShared.d.ts +7 -6
  112. package/dist/esm/shared/createPageContextShared.js +17 -12
  113. package/dist/esm/shared/getPageContext.d.ts +1 -1
  114. package/dist/esm/shared/getPageContext.js +1 -1
  115. package/dist/esm/shared/getPageContextUrlComputed.d.ts +2 -5
  116. package/dist/esm/shared/getPageContextUrlComputed.js +3 -37
  117. package/dist/esm/shared/getPageFiles.d.ts +1 -1
  118. package/dist/esm/shared/getProxyForPublicUsage.d.ts +12 -0
  119. package/dist/esm/shared/getProxyForPublicUsage.js +104 -0
  120. package/dist/esm/shared/hooks/execHook.d.ts +63 -0
  121. package/dist/esm/shared/hooks/execHook.js +162 -0
  122. package/dist/esm/shared/hooks/getHook.d.ts +10 -11
  123. package/dist/esm/shared/hooks/getHook.js +23 -4
  124. package/dist/esm/shared/page-configs/Config.d.ts +11 -4
  125. package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.d.ts → getUserFriendlyConfigs.d.ts} +8 -6
  126. package/dist/esm/shared/page-configs/{getPageConfigUserFriendly.js → getUserFriendlyConfigs.js} +55 -48
  127. package/dist/esm/shared/prepareGlobalContextForPublicUsage.d.ts +7 -0
  128. package/dist/esm/shared/prepareGlobalContextForPublicUsage.js +8 -0
  129. package/dist/esm/shared/preparePageContextForPublicUsage.d.ts +12 -0
  130. package/dist/esm/shared/preparePageContextForPublicUsage.js +73 -0
  131. package/dist/esm/shared/route/abort.js +1 -1
  132. package/dist/esm/shared/route/executeGuardHook.d.ts +4 -3
  133. package/dist/esm/shared/route/executeGuardHook.js +4 -9
  134. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +4 -3
  135. package/dist/esm/shared/route/index.js +2 -4
  136. package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -1
  137. package/dist/esm/shared/route/loadPageRoutes.js +7 -1
  138. package/dist/esm/shared/route/resolveRouteFunction.d.ts +2 -2
  139. package/dist/esm/shared/route/resolveRouteFunction.js +14 -10
  140. package/dist/esm/shared/types.d.ts +14 -4
  141. package/dist/esm/shared/utils.d.ts +2 -0
  142. package/dist/esm/shared/utils.js +2 -0
  143. package/dist/esm/types/index.d.ts +1 -1
  144. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  145. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  146. package/dist/esm/utils/objectAssign.d.ts +1 -1
  147. package/dist/esm/utils/objectAssign.js +3 -3
  148. package/dist/esm/utils/objectDefineProperty.d.ts +0 -1
  149. package/dist/esm/utils/objectDefineProperty.js +1 -1
  150. package/package.json +2 -2
  151. package/dist/cjs/client/shared/getPageContextProxyForUser.js +0 -16
  152. package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -16
  153. package/dist/cjs/shared/getPageConfigsRuntime.js +0 -23
  154. package/dist/cjs/shared/hooks/executeHook.js +0 -87
  155. package/dist/cjs/shared/hooks/executeHookGeneric.js +0 -18
  156. package/dist/cjs/shared/preparePageContextForUserConsumption.js +0 -34
  157. package/dist/cjs/utils/getPublicProxy.js +0 -27
  158. package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +0 -2
  159. package/dist/esm/client/shared/getPageContextProxyForUser.js +0 -14
  160. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +0 -12
  161. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +0 -44
  162. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +0 -24
  163. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +0 -14
  164. package/dist/esm/shared/getPageConfigsRuntime.d.ts +0 -14
  165. package/dist/esm/shared/getPageConfigsRuntime.js +0 -21
  166. package/dist/esm/shared/hooks/executeHook.d.ts +0 -21
  167. package/dist/esm/shared/hooks/executeHook.js +0 -85
  168. package/dist/esm/shared/hooks/executeHookGeneric.d.ts +0 -8
  169. package/dist/esm/shared/hooks/executeHookGeneric.js +0 -16
  170. package/dist/esm/shared/preparePageContextForUserConsumption.d.ts +0 -5
  171. package/dist/esm/shared/preparePageContextForUserConsumption.js +0 -32
  172. package/dist/esm/utils/getPublicProxy.d.ts +0 -2
  173. 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,22 +14,34 @@ 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[];
29
32
  _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
30
33
  _allPageIds: string[];
34
+ _userFriendlyConfigsGlobal: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly;
31
35
  config: import("../../../types/index.js").ConfigResolved;
32
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
36
+ pages: {
37
+ [k: string]: import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & ({
38
+ route: import("../../../shared/page-configs/Config.js").Route;
39
+ isErrorPage?: undefined;
40
+ } | {
41
+ route?: undefined;
42
+ isErrorPage: true;
43
+ });
44
+ };
33
45
  } & ({
34
46
  _isProduction: false;
35
47
  _isPrerendering: false;
@@ -51,14 +63,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
51
63
  isClientSide: false;
52
64
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
53
65
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
54
- isGlobalContext: true;
55
- _virtualFileExports: unknown;
56
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
57
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
58
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
59
- _allPageIds: string[];
60
- config: import("../../../types/index.js").ConfigResolved;
61
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
62
66
  } | {
63
67
  _isPrerendering: true;
64
68
  viteConfig: import("vite").ResolvedConfig;
@@ -81,14 +85,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
81
85
  isClientSide: false;
82
86
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
83
87
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
84
- isGlobalContext: true;
85
- _virtualFileExports: unknown;
86
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
87
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
88
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
89
- _allPageIds: string[];
90
- config: import("../../../types/index.js").ConfigResolved;
91
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
92
88
  } | {
93
89
  _isPrerendering: false;
94
90
  viteConfig: null;
@@ -111,14 +107,6 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
111
107
  isClientSide: false;
112
108
  _pageRoutes: import("../../../__internal/index.js").PageRoutes;
113
109
  _onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
114
- isGlobalContext: true;
115
- _virtualFileExports: unknown;
116
- _pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
117
- _pageConfigs: import("../../../__internal/index.js").PageConfig[];
118
- _pageConfigGlobal: import("../../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
119
- _allPageIds: string[];
120
- config: import("../../../types/index.js").ConfigResolved;
121
- pages: import("../../../shared/page-configs/getPageConfigUserFriendly.js").PageConfigsUserFriendly;
122
110
  });
123
111
  _baseServer: string;
124
112
  _baseAssets: string;
@@ -133,23 +121,20 @@ declare function createPageContextServerSide(pageContextInit: PageContextInit, g
133
121
  _urlRewrite: null;
134
122
  _urlHandler: ((url: string) => string) | null;
135
123
  isClientSideNavigation: boolean;
136
- } & {
124
+ } & import("../../../shared/page-configs/getUserFriendlyConfigs.js").PageConfigUserFriendly & {
137
125
  urlParsed: import("../utils.js").UrlPublic;
138
126
  urlPathname: string;
139
127
  url: string;
140
128
  } & {
141
129
  headers: Record<string, string> | null;
142
- } & {
143
- config: import("../../../types/index.js").ConfigResolved;
144
- _source: import("../../../shared/page-configs/getPageConfigUserFriendly.js").Source;
145
- _sources: import("../../../shared/page-configs/getPageConfigUserFriendly.js").Sources;
146
- _from: import("../../../shared/page-configs/getPageConfigUserFriendly.js").From;
147
- isPageContext: true;
148
130
  }>;
149
131
  declare function createPageContextServerSideWithoutGlobalContext(pageContextInit: PageContextInit): {
150
- isClientSide: boolean;
132
+ _isOriginalObject: true;
133
+ isPageContext: true;
134
+ } & {
135
+ isClientSide: false;
151
136
  isPrerendering: boolean;
152
- } & Pick<import("../../../shared/types.js").PageContextBuiltInServerInternal, "urlOriginal" | "headersOriginal"> & {
137
+ } & Pick<import("../../../shared/types.js").PageContextInternalServer, "urlOriginal" | "headersOriginal"> & {
153
138
  url?: string;
154
139
  headers?: Record<string, string>;
155
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,
@@ -33,6 +28,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, globa
33
28
  _urlHandler: urlHandler,
34
29
  isClientSideNavigation
35
30
  });
31
+ objectAssign(pageContextCreated, globalContext._userFriendlyConfigsGlobal);
36
32
  // pageContext.urlParsed
37
33
  const pageContextUrlComputed = getPageContextUrlComputed(pageContextCreated);
38
34
  objectAssign(pageContextCreated, pageContextUrlComputed);
@@ -53,7 +49,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, globa
53
49
  }
54
50
  objectAssign(pageContextCreated, { headers });
55
51
  }
56
- const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal);
52
+ const pageContextAugmented = await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._userFriendlyConfigsGlobal);
57
53
  augmentType(pageContextCreated, pageContextAugmented);
58
54
  return pageContextCreated;
59
55
  }
@@ -62,10 +58,11 @@ function createPageContextServerSideWithoutGlobalContext(pageContextInit) {
62
58
  return pageContext;
63
59
  }
64
60
  function createPageContext(pageContextInit, isPrerendering) {
65
- const pageContext = {
61
+ const pageContext = createPageContextObject();
62
+ objectAssign(pageContext, {
66
63
  isClientSide: false,
67
64
  isPrerendering
68
- };
65
+ });
69
66
  objectAssign(pageContext, pageContextInit);
70
67
  return pageContext;
71
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,7 +1,6 @@
1
1
  export { executeOnBeforeRenderAndDataHooks };
2
- import { type PageConfigUserFriendlyOld } from '../../../shared/getPageFiles.js';
3
- import { type PageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
2
+ import { type PageContextExecuteHookServer } from './execHookServer.js';
4
3
  declare function executeOnBeforeRenderAndDataHooks(pageContext: {
5
4
  pageId: string;
6
5
  _pageContextAlreadyProvidedByOnPrerenderHook?: true;
7
- } & PageConfigUserFriendlyOld & PageContextForUserConsumptionServerSide): Promise<void>;
6
+ } & PageContextExecuteHookServer): Promise<void>;
@@ -1,30 +1,29 @@
1
1
  export { executeOnBeforeRenderAndDataHooks };
2
- import { getHookFromPageContext } from '../../../shared/hooks/getHook.js';
3
- import { preparePageContextForUserConsumptionServerSide } from './preparePageContextForUserConsumptionServerSide.js';
4
2
  import { assertOnBeforeRenderHookReturn } from '../../../shared/assertOnBeforeRenderHookReturn.js';
5
- import { executeHook } from '../../../shared/hooks/executeHook.js';
3
+ import { execHookServer } from './execHookServer.js';
6
4
  async function executeOnBeforeRenderAndDataHooks(pageContext) {
7
5
  if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
8
6
  return;
9
7
  }
10
- const dataHook = getHookFromPageContext(pageContext, 'data');
11
- const onBeforeRenderHook = getHookFromPageContext(pageContext, 'onBeforeRender');
12
- if (!dataHook && !onBeforeRenderHook) {
13
- return;
14
- }
15
- preparePageContextForUserConsumptionServerSide(pageContext);
8
+ const hooks = await execHookServer('data', pageContext);
9
+ const dataHook = hooks[0]; // TO-DO/soon: support cumulative
16
10
  if (dataHook) {
17
- const hookResult = await executeHook(() => dataHook.hookFn(pageContext), dataHook, pageContext);
18
- // 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
19
12
  const pageContextFromHook = {
20
- data: hookResult
13
+ data: dataHook.hookReturn
21
14
  };
22
15
  Object.assign(pageContext, pageContextFromHook);
16
+ // Execute +onData
17
+ if (!pageContext.isClientSideNavigation) {
18
+ await execHookServer('onData', pageContext);
19
+ }
23
20
  }
21
+ const res = await execHookServer('onBeforeRender', pageContext);
22
+ const onBeforeRenderHook = res[0]; // TO-DO/soon: support cumulative
24
23
  if (onBeforeRenderHook) {
25
- const hookResult = await executeHook(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook, pageContext);
26
- assertOnBeforeRenderHookReturn(hookResult, onBeforeRenderHook.hookFilePath);
27
- const pageContextFromHook = hookResult?.pageContext;
24
+ const { hookReturn } = onBeforeRenderHook;
25
+ assertOnBeforeRenderHookReturn(hookReturn, onBeforeRenderHook.hookFilePath);
26
+ const pageContextFromHook = hookReturn?.pageContext;
28
27
  Object.assign(pageContext, pageContextFromHook);
29
28
  }
30
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) {
@@ -1,22 +1,22 @@
1
- export { loadUserFilesServerSide };
1
+ export { loadPageConfigsLazyServerSide };
2
2
  export type { PageFiles };
3
- export type { PageContext_loadUserFilesServerSide };
3
+ export type { PageContext_loadPageConfigsLazyServerSide };
4
4
  import { type PageFile } from '../../../shared/getPageFiles.js';
5
5
  import { PromiseType } from '../utils.js';
6
6
  import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
7
7
  import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
8
8
  import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
9
9
  import type { GlobalContextServerInternal } from '../globalContext.js';
10
- type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
10
+ type PageContext_loadPageConfigsLazyServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
11
11
  urlOriginal: string;
12
12
  _pageFilesAll: PageFile[];
13
13
  _pageConfigs: PageConfigRuntime[];
14
14
  _globalContext: GlobalContextServerInternal;
15
15
  };
16
- type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
17
- declare function loadUserFilesServerSide(pageContext: {
16
+ type PageFiles = PromiseType<ReturnType<typeof loadPageConfigsLazyServerSide>>;
17
+ declare function loadPageConfigsLazyServerSide(pageContext: {
18
18
  pageId: string;
19
- } & PageContext_loadUserFilesServerSide): Promise<import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
19
+ } & PageContext_loadPageConfigsLazyServerSide): Promise<import("../../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
20
20
  Page: unknown;
21
21
  _isHtmlOnly: boolean;
22
22
  _passToClient: string[];
@@ -1,6 +1,6 @@
1
- export { loadUserFilesServerSide };
1
+ export { loadPageConfigsLazyServerSide };
2
2
  import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
3
- import { getPageConfigUserFriendly_oldDesign } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
3
+ import { getUserFriendlyConfigsPageLazy } from '../../../shared/page-configs/getUserFriendlyConfigs.js';
4
4
  import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
5
5
  import { assert, assertUsage, assertWarning, hasProp, isArrayOfStrings, objectAssign, isArray } from '../utils.js';
6
6
  import { getPageAssets } from './getPageAssets.js';
@@ -8,7 +8,7 @@ import { debugPageFiles } from './debugPageFiles.js';
8
8
  import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
9
9
  import { analyzePage } from './analyzePage.js';
10
10
  import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
11
- async function loadUserFilesServerSide(pageContext) {
11
+ async function loadPageConfigsLazyServerSide(pageContext) {
12
12
  const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
13
13
  const globalContext = pageContext._globalContext;
14
14
  const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
@@ -100,7 +100,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageConfigGlobal, pag
100
100
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
101
101
  const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
102
102
  await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
103
- const pageContextExports = getPageConfigUserFriendly_oldDesign(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
103
+ const pageContextExports = getUserFriendlyConfigsPageLazy(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
104
104
  return {
105
105
  pageContextExports,
106
106
  pageFilesLoaded: pageFilesServerSide
@@ -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
+ }