vike 0.4.235 → 0.4.236-commit-64431e7

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 (227) hide show
  1. package/dist/cjs/__internal/index.js +1 -1
  2. package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -3
  3. package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  4. package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
  5. package/dist/cjs/node/cli/index.js +1 -1
  6. package/dist/cjs/node/createPageRenderer.js +1 -1
  7. package/dist/cjs/node/importBuild.js +1 -1
  8. package/dist/cjs/node/prerender/context.js +1 -1
  9. package/dist/cjs/node/prerender/index.js +1 -1
  10. package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
  11. package/dist/cjs/node/prerender/runPrerender.js +9 -13
  12. package/dist/cjs/node/runtime/globalContext.js +109 -28
  13. package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  14. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  15. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  16. package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
  17. package/dist/cjs/node/runtime/index-deprecated.js +1 -1
  18. package/dist/cjs/node/runtime/index.js +1 -1
  19. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  21. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
  22. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  23. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  24. package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
  25. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  26. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  27. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +15 -12
  28. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
  29. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  30. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  31. package/dist/cjs/node/runtime/renderPage.js +4 -6
  32. package/dist/cjs/node/runtime/utils.js +1 -0
  33. package/dist/cjs/node/vite/index.js +2 -0
  34. package/dist/cjs/node/vite/onLoad.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  36. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  37. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  38. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  39. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  40. package/dist/cjs/node/vite/plugins/pluginCommon.js +9 -4
  41. package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
  42. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
  43. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  44. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
  45. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
  46. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
  47. package/dist/cjs/node/vite/plugins/pluginViteRPC.js +42 -0
  48. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
  49. package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
  50. package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
  51. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  52. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  53. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  54. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  55. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  56. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  57. package/dist/cjs/shared/abort.js +1 -1
  58. package/dist/cjs/shared/createGlobalContextShared.js +28 -7
  59. package/dist/cjs/shared/createPageContextShared.js +1 -2
  60. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  61. package/dist/cjs/shared/error-page.js +3 -3
  62. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  63. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  64. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  65. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  66. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  67. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  68. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  69. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  70. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  71. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  72. package/dist/cjs/shared/getProxyForPublicUsage.js +3 -3
  73. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  74. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  75. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  76. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  77. package/dist/cjs/shared/route/abort.js +1 -1
  78. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  79. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  80. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  81. package/dist/cjs/shared/route/index.js +1 -1
  82. package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
  83. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  84. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  85. package/dist/cjs/shared/route/routing.js +1 -1
  86. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  87. package/dist/cjs/utils/assertSetup.js +11 -8
  88. package/dist/cjs/utils/debug.js +1 -0
  89. package/dist/cjs/utils/debugGlob.js +1 -1
  90. package/dist/cjs/utils/getViteRPC.js +79 -0
  91. package/dist/cjs/utils/parseNpmPackage.js +1 -1
  92. package/dist/esm/__internal/index.d.ts +1 -1
  93. package/dist/esm/__internal/index.js +1 -1
  94. package/dist/esm/client/node.js +1 -1
  95. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
  96. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  97. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +10 -2
  98. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  99. package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
  100. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  101. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  102. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  103. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  104. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +3 -1
  105. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  106. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  107. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
  108. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  109. package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
  110. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  111. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
  112. package/dist/esm/client/shared/createGetGlobalContextClient.js +1 -2
  113. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  114. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  115. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  116. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  117. package/dist/esm/node/cli/index.js +1 -1
  118. package/dist/esm/node/createPageRenderer.js +1 -1
  119. package/dist/esm/node/importBuild.js +1 -1
  120. package/dist/esm/node/prerender/context.js +1 -1
  121. package/dist/esm/node/prerender/index.js +1 -1
  122. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  123. package/dist/esm/node/prerender/runPrerender.d.ts +42 -133
  124. package/dist/esm/node/prerender/runPrerender.js +9 -13
  125. package/dist/esm/node/runtime/globalContext.d.ts +39 -59
  126. package/dist/esm/node/runtime/globalContext.js +112 -31
  127. package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
  128. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  129. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
  130. package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
  131. package/dist/esm/node/runtime/html/serializeContext.js +73 -15
  132. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  133. package/dist/esm/node/runtime/index.js +1 -1
  134. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  135. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  136. package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
  137. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
  138. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +12 -35
  139. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  140. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  141. package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
  142. package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
  143. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  144. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  145. package/dist/esm/node/runtime/renderPage/getPageAssets.js +16 -13
  146. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
  147. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
  148. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  149. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +24 -68
  150. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
  151. package/dist/esm/node/runtime/renderPage.d.ts +13 -36
  152. package/dist/esm/node/runtime/renderPage.js +4 -6
  153. package/dist/esm/node/runtime/utils.d.ts +1 -0
  154. package/dist/esm/node/runtime/utils.js +1 -0
  155. package/dist/esm/node/vite/index.js +3 -1
  156. package/dist/esm/node/vite/onLoad.js +1 -1
  157. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
  158. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
  159. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +1 -1
  160. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
  161. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  162. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
  163. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  164. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  165. package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
  166. package/dist/esm/node/vite/plugins/pluginCommon.js +9 -4
  167. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  168. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  169. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  170. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
  171. package/dist/esm/node/vite/plugins/pluginViteRPC.d.ts +25 -0
  172. package/dist/esm/node/vite/plugins/pluginViteRPC.js +40 -0
  173. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  174. package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
  175. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  176. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
  177. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
  178. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
  179. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  180. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  181. package/dist/esm/shared/RenderErrorPage.js +1 -1
  182. package/dist/esm/shared/abort.js +1 -1
  183. package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
  184. package/dist/esm/shared/createGlobalContextShared.js +28 -7
  185. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  186. package/dist/esm/shared/createPageContextShared.js +1 -2
  187. package/dist/esm/shared/determinePageIdOld.js +1 -1
  188. package/dist/esm/shared/error-page.js +3 -3
  189. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  190. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  191. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  192. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  193. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  194. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  195. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  196. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  197. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  198. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  199. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  200. package/dist/esm/shared/hooks/getHook.js +1 -1
  201. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  202. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  203. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  204. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  205. package/dist/esm/shared/route/abort.js +1 -1
  206. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  207. package/dist/esm/shared/route/execHookGuard.js +1 -1
  208. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  209. package/dist/esm/shared/route/index.js +1 -1
  210. package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
  211. package/dist/esm/shared/route/loadPageRoutes.js +10 -4
  212. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  213. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  214. package/dist/esm/shared/route/routing.js +1 -1
  215. package/dist/esm/types/Config.d.ts +9 -1
  216. package/dist/esm/types/PageContext.d.ts +8 -2
  217. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  218. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  219. package/dist/esm/utils/assertSetup.js +11 -8
  220. package/dist/esm/utils/debug.d.ts +1 -1
  221. package/dist/esm/utils/debug.js +1 -0
  222. package/dist/esm/utils/debugGlob.js +1 -1
  223. package/dist/esm/utils/getViteRPC.d.ts +6 -0
  224. package/dist/esm/utils/getViteRPC.js +77 -0
  225. package/dist/esm/utils/parseNpmPackage.js +1 -1
  226. package/package.json +12 -6
  227. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
@@ -50,7 +50,7 @@ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSer
50
50
  } & {
51
51
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
52
52
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
53
- };
53
+ } & Record<string, any>;
54
54
  _pageFilesAll: PageFile[];
55
55
  _urlHandler: null;
56
56
  _urlRewrite: null | string;
@@ -85,6 +85,7 @@ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSer
85
85
  urlOriginal: string;
86
86
  headers: Record<string, string> | null;
87
87
  headersOriginal?: unknown;
88
+ headersResponse: Headers;
88
89
  is404: boolean | null;
89
90
  isClientSideNavigation: boolean;
90
91
  abortReason?: unknown;
@@ -109,6 +110,7 @@ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSer
109
110
  urlOriginal: string;
110
111
  headers: Record<string, string> | null;
111
112
  headersOriginal?: unknown;
113
+ headersResponse: Headers;
112
114
  is404: boolean | null;
113
115
  isClientSideNavigation: boolean;
114
116
  abortReason?: unknown;
@@ -156,6 +158,7 @@ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSer
156
158
  urlOriginal: string;
157
159
  headers: Record<string, string> | null;
158
160
  headersOriginal?: unknown;
161
+ headersResponse: Headers;
159
162
  is404: boolean | null;
160
163
  isClientSideNavigation: boolean;
161
164
  abortReason?: unknown;
@@ -180,6 +183,7 @@ declare function getPageContextFromHooks_isHydration(pageContext: PageContextSer
180
183
  urlOriginal: string;
181
184
  headers: Record<string, string> | null;
182
185
  headersOriginal?: unknown;
186
+ headersResponse: Headers;
183
187
  is404: boolean | null;
184
188
  isClientSideNavigation: boolean;
185
189
  abortReason?: unknown;
@@ -260,7 +264,7 @@ declare function getPageContextFromClientHooks(pageContext: {
260
264
  } & {
261
265
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
262
266
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
263
- };
267
+ } & Record<string, any>;
264
268
  _pageFilesAll: PageFile[];
265
269
  _urlHandler: null;
266
270
  _urlRewrite: null | string;
@@ -295,6 +299,7 @@ declare function getPageContextFromClientHooks(pageContext: {
295
299
  urlOriginal: string;
296
300
  headers: Record<string, string> | null;
297
301
  headersOriginal?: unknown;
302
+ headersResponse: Headers;
298
303
  is404: boolean | null;
299
304
  isClientSideNavigation: boolean;
300
305
  abortReason?: unknown;
@@ -319,6 +324,7 @@ declare function getPageContextFromClientHooks(pageContext: {
319
324
  urlOriginal: string;
320
325
  headers: Record<string, string> | null;
321
326
  headersOriginal?: unknown;
327
+ headersResponse: Headers;
322
328
  is404: boolean | null;
323
329
  isClientSideNavigation: boolean;
324
330
  abortReason?: unknown;
@@ -364,6 +370,7 @@ declare function getPageContextFromClientHooks(pageContext: {
364
370
  urlOriginal: string;
365
371
  headers: Record<string, string> | null;
366
372
  headersOriginal?: unknown;
373
+ headersResponse: Headers;
367
374
  is404: boolean | null;
368
375
  isClientSideNavigation: boolean;
369
376
  abortReason?: unknown;
@@ -388,6 +395,7 @@ declare function getPageContextFromClientHooks(pageContext: {
388
395
  urlOriginal: string;
389
396
  headers: Record<string, string> | null;
390
397
  headersOriginal?: unknown;
398
+ headersResponse: Headers;
391
399
  is404: boolean | null;
392
400
  isClientSideNavigation: boolean;
393
401
  abortReason?: unknown;
@@ -113,7 +113,7 @@ async function execHookDataLike(hookName, pageContext) {
113
113
  }
114
114
  async function execHookData(pageContext) {
115
115
  const res = await execHookClient('data', pageContext);
116
- const hook = res[0]; // TO-DO/soon: support cumulative
116
+ const hook = res[0]; // TO-DO/soon/cumulative-hooks: support cumulative
117
117
  if (!hook)
118
118
  return;
119
119
  const { hookReturn } = hook;
@@ -122,7 +122,7 @@ async function execHookData(pageContext) {
122
122
  }
123
123
  async function execHookOnBeforeRender(pageContext) {
124
124
  const res = await execHookClient('onBeforeRender', pageContext);
125
- const hook = res[0]; // TO-DO/soon: support cumulative
125
+ const hook = res[0]; // TO-DO/soon/cumulative-hooks: support cumulative
126
126
  if (!hook)
127
127
  return;
128
128
  const { hookReturn, hookFilePath } = hook;
@@ -152,13 +152,13 @@ function setPageContextInitIsPassedToClient(pageContext) {
152
152
  globalObject.pageContextInitIsPassedToClient = true;
153
153
  }
154
154
  }
155
- // TODO/v1-release: make it sync
155
+ // TO-DO/next-major-release: make it sync
156
156
  async function hasPageContextServer(pageContext) {
157
157
  return (!!globalObject.pageContextInitIsPassedToClient ||
158
158
  (await hookServerOnlyExists('data', pageContext)) ||
159
159
  (await hookServerOnlyExists('onBeforeRender', pageContext)));
160
160
  }
161
- // TODO/v1-release: make it sync
161
+ // TO-DO/next-major-release: make it sync
162
162
  /**
163
163
  * @param hookName
164
164
  * @param pageContext
@@ -179,7 +179,7 @@ async function hookServerOnlyExists(hookName, pageContext) {
179
179
  return !!server && !client;
180
180
  }
181
181
  else {
182
- // TODO/v1-release: remove
182
+ // TO-DO/next-major-release: remove
183
183
  // V0.4
184
184
  // data() hooks didn't exist in the V0.4 design
185
185
  if (hookName === 'data')
@@ -202,7 +202,7 @@ function getHookEnv(hookName, pageContext) {
202
202
  return hookEnv;
203
203
  }
204
204
  else {
205
- // TODO/v1-release: remove
205
+ // TO-DO/next-major-release: remove
206
206
  // Client-only onBeforeRender() or data() hooks were never supported for the V0.4 design
207
207
  return { client: false, server: true };
208
208
  }
@@ -27,4 +27,4 @@ declare const getGlobalContextClientInternal: () => Promise<{
27
27
  } & {
28
28
  _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
29
29
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
30
- }>;
30
+ } & Record<string, any>>;
@@ -1,4 +1,4 @@
1
- // TODO/v1-release - move:
1
+ // TO-DO/next-major-release: move
2
2
  // import { navigate, prefetch } from 'vike/client/router'
3
3
  // to:
4
4
  // import { navigate, prefetch } from 'vike'
@@ -2,7 +2,7 @@ export { isClientSideRoutable };
2
2
  import { analyzePageClientSideInit } from '../../shared/getPageFiles/analyzePageClientSide.js';
3
3
  import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
4
4
  import { analyzeClientSide } from '../../shared/getPageFiles/analyzeClientSide.js';
5
- // TODO/next-major-release: make it sync
5
+ // TO-DO/next-major-release: make it sync
6
6
  async function isClientSideRoutable(pageId, pageContext) {
7
7
  await analyzePageClientSideInit(pageContext._pageFilesAll, pageId, {
8
8
  sharedPageFilesAlreadyLoaded: false,
@@ -1,8 +1,8 @@
1
- // TODO/pageContext-prefetch: rename this file to getPrefetchSettingResolved.ts
1
+ // TO-DO/pageContext-prefetch: rename this file to getPrefetchSettingResolved.ts
2
2
  export { getPrefetchSettings };
3
3
  export { PAGE_CONTEXT_MAX_AGE_DEFAULT };
4
4
  import { assertUsage, assertInfo } from '../utils.js';
5
- // TODO/pageContext-prefetch: Make it `Infinity` for pre-rendered pages.
5
+ // TO-DO/pageContext-prefetch: Make it `Infinity` for pre-rendered pages.
6
6
  const PAGE_CONTEXT_MAX_AGE_DEFAULT = 5000;
7
7
  const prefetchSettingTrue = {
8
8
  staticAssets: 'hover',
@@ -12,18 +12,18 @@ const prefetchSettingFalse = {
12
12
  staticAssets: 'hover',
13
13
  pageContext: false,
14
14
  };
15
- // TODO/v1-release: change to `prefetchSettingTrue`?
15
+ // TO-DO/eventually: change to `prefetchSettingTrue`
16
16
  const prefetchSettingDefault = prefetchSettingFalse;
17
17
  function getPrefetchSettings(pageContext, linkTag) {
18
18
  let prefetchSetting = prefetchSettingDefault;
19
- // TODO/v1-release: remove
19
+ // TO-DO/next-major-release: remove
20
20
  if ('prefetchLinks' in pageContext.exports) {
21
21
  assertUsage(false, '`export { prefetchLinks }` is deprecated, use `export { prefetchStaticAssets }` instead.');
22
22
  }
23
- // TODO/v1-release: remove
23
+ // TO-DO/next-major-release: remove
24
24
  if ('prefetchStaticAssets' in pageContext.exports) {
25
25
  const prefetchStaticAssets = pageContext.exports.prefetchStaticAssets;
26
- /* TODO/pageContext-prefetch: uncomment
26
+ /* TO-DO/pageContext-prefetch: uncomment
27
27
  const msg = `The 'prefetchStaticAssets' setting is deprecated in favor of the 'prefetch' setting, see https://vike.dev/prefetch`
28
28
  assertWarning(false, msg, { onlyOnce: true })
29
29
  assertUsage(
@@ -29,7 +29,7 @@ const globalObject = getGlobalObject('runtime-client-routing/prefetch.ts', {
29
29
  });
30
30
  function getPageContextPrefetched(pageContext) {
31
31
  const prefetchSettings = getPrefetchSettings(pageContext, null);
32
- // TODO/pageContext-prefetch: I guess we need linkTag to make this condition work
32
+ // TO-DO/pageContext-prefetch: I guess we need linkTag to make this condition work
33
33
  if (!prefetchSettings.pageContext)
34
34
  return null;
35
35
  const key = getCacheKey(pageContext.urlPathname);
@@ -37,7 +37,7 @@ function getPageContextPrefetched(pageContext) {
37
37
  if (!found || found.result.is404ServerSideRouted || isExpired(found))
38
38
  return null;
39
39
  const pageContextPrefetched = found.result.pageContextFromServerHooks;
40
- /* TODO/pageContext-prefetch: make it work for when resultMaxAge is Infinity.
40
+ /* TO-DO/pageContext-prefetch: make it work for when resultMaxAge is Infinity.
41
41
  // We discard the prefetched pageContext whenever we use it, so that the user always sees fresh data upon naivgating.
42
42
  delete globalObject.prefetchedPageContexts[key]
43
43
  */
@@ -61,7 +61,7 @@ async function prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge)
61
61
  setPageContextPrefetchCache(pageContextLink, result, resultMaxAge);
62
62
  }
63
63
  function populatePageContextPrefetchCache(pageContext /*& VikeConfigPublicPageLazy*/, result) {
64
- // TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use VikeConfigPublicPageLazy as it isn't available here.)
64
+ // TO-DO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use VikeConfigPublicPageLazy as it isn't available here.)
65
65
  if (!isBrilloutDocpress())
66
66
  return;
67
67
  setPageContextPrefetchCache(pageContext, result, null);
@@ -79,7 +79,7 @@ function setPageContextPrefetchCache(pageContext, result, resultMaxAge) {
79
79
  }
80
80
  function getResultMaxAge() {
81
81
  const pageContextCurrent = getPageContextCurrent();
82
- // TODO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
82
+ // TO-DO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
83
83
  if (!pageContextCurrent)
84
84
  return Infinity;
85
85
  const prefetchSettings = getPrefetchSettings(pageContextCurrent, null);
@@ -94,7 +94,7 @@ function getResultMaxAge() {
94
94
  * @param url - The URL of the page you want to prefetch.
95
95
  */
96
96
  async function prefetch(url,
97
- /* TODO/pageContext-prefetch
97
+ /* TO-DO/pageContext-prefetch:
98
98
  options?: {
99
99
  pageContext?: boolean
100
100
  staticAssets?: boolean
@@ -196,11 +196,11 @@ async function prefetchOnEvent(linkTag, event) {
196
196
  }
197
197
  else {
198
198
  if (isBrilloutDocpress()) {
199
- // TODO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
199
+ // TO-DO/pageContext-prefetch: remove this dirty hack used by @brillout/docpress and, instead, use Vike's default if pageContextCurrent isn't defined yet.
200
200
  prefetchSettings = { staticAssets: 'hover', pageContext: Infinity };
201
201
  }
202
202
  else {
203
- // TODO/pageContext-prefetch: consider pageContextLink
203
+ // TO-DO/pageContext-prefetch: consider pageContextLink
204
204
  return;
205
205
  }
206
206
  }
@@ -225,7 +225,7 @@ async function prefetchOnEvent(linkTag, event) {
225
225
  const key = getCacheKey(urlOfLink);
226
226
  const found = globalObject.prefetchedPageContexts[key];
227
227
  if (!found || isExpired(found)) {
228
- // TODO/pageContext-prefetch: move this logic in getPrefetchSettings()
228
+ // TO-DO/pageContext-prefetch: move this logic in getPrefetchSettings()
229
229
  const resultMaxAge = prefetchSettings.pageContext;
230
230
  await prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge);
231
231
  }
@@ -236,7 +236,7 @@ async function prefetchOnEvent(linkTag, event) {
236
236
  function isExpired(found) {
237
237
  return Date.now() - found.resultFetchedAt > found.resultMaxAge;
238
238
  }
239
- // TODO/next-major-release: make it sync
239
+ // TO-DO/next-major-release: make it sync
240
240
  async function getPageContextLink(urlOfLink) {
241
241
  const pageContextLink = await createPageContextClientSide(urlOfLink);
242
242
  let pageContextFromRoute;
@@ -257,7 +257,7 @@ function getCacheKey(url) {
257
257
  const key = url.split('#')[0];
258
258
  return key;
259
259
  }
260
- // TODO/pageContext-prefetch: remove
260
+ // TO-DO/pageContext-prefetch: remove
261
261
  function isBrilloutDocpress() {
262
262
  return '_isBrilloutDocpress' in window;
263
263
  }
@@ -63,7 +63,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
63
63
  } & {
64
64
  _pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
65
65
  _onBeforeRouteHook: import("../../shared/hooks/getHook.js").Hook | null;
66
- };
66
+ } & Record<string, any>;
67
67
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
68
68
  _urlHandler: null;
69
69
  _urlRewrite: null | string;
@@ -95,6 +95,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
95
95
  urlOriginal: string;
96
96
  headers: Record<string, string> | null;
97
97
  headersOriginal?: unknown;
98
+ headersResponse: Headers;
98
99
  is404: boolean | null;
99
100
  isClientSideNavigation: boolean;
100
101
  abortReason?: unknown;
@@ -119,6 +120,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
119
120
  urlOriginal: string;
120
121
  headers: Record<string, string> | null;
121
122
  headersOriginal?: unknown;
123
+ headersResponse: Headers;
122
124
  is404: boolean | null;
123
125
  isClientSideNavigation: boolean;
124
126
  abortReason?: unknown;
@@ -90,7 +90,7 @@ async function renderPageClientSide(renderArgs) {
90
90
  // TO-DO/eventually: create helper assertPageContextFromHook()
91
91
  assert(!('urlOriginal' in pageContextSerialized));
92
92
  objectAssign(pageContext, pageContextSerialized);
93
- // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
93
+ // TO-DO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
94
94
  populatePageContextPrefetchCache(pageContext, { pageContextFromServerHooks: pageContextSerialized });
95
95
  }
96
96
  else {
@@ -188,7 +188,7 @@ async function renderPageClientSide(renderArgs) {
188
188
  if (result.is404ServerSideRouted)
189
189
  return;
190
190
  pageContextFromServerHooks = result.pageContextFromServerHooks;
191
- // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
191
+ // TO-DO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
192
192
  populatePageContextPrefetchCache(pageContext, result);
193
193
  }
194
194
  catch (err) {
@@ -462,7 +462,7 @@ async function getPageContextBegin(isForErrorPage, { urlOriginal, isBackwardNavi
462
462
  previousPageContext,
463
463
  ...pageContextInitClient,
464
464
  });
465
- // TODO/next-major-release: remove
465
+ // TO-DO/next-major-release: remove
466
466
  Object.defineProperty(pageContext, '_previousPageContext', {
467
467
  get() {
468
468
  assertWarning(false, 'pageContext._previousPageContext has been renamed pageContext.previousPageContext', {
@@ -15,7 +15,7 @@ function skipLink(linkTag) {
15
15
  // Purposely last because disableAutomaticLinkInterception will be removed in the next major release
16
16
  !isVikeLink(linkTag));
17
17
  }
18
- // TODO/next-major-release: remove this in favor of synchronously checking whether URL matches the route of a page (possible since Async Route Functions will be deprecated)
18
+ // TO-DO/next-major-release: remove this in favor of synchronously checking whether URL matches the route of a page (possible since Async Route Functions will be deprecated)
19
19
  function isVikeLink(linkTag) {
20
20
  const disableAutomaticLinkInterception = isDisableAutomaticLinkInterception();
21
21
  if (!disableAutomaticLinkInterception) {
@@ -26,7 +26,7 @@ declare function createPageContextClientSide(): Promise<{
26
26
  };
27
27
  } & {
28
28
  isClientSide: true;
29
- } & object;
29
+ } & object & Record<string, any>;
30
30
  _pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
31
31
  isBackwardNavigation: null;
32
32
  _hasPageContextFromServer: true;
@@ -16,13 +16,13 @@ async function createPageContextClientSide() {
16
16
  isPrerendering: false,
17
17
  isHydration: true,
18
18
  _globalContext: globalContext,
19
- _pageFilesAll: globalContext._pageFilesAll, // TODO/v1-release: remove
19
+ _pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
20
20
  isBackwardNavigation: null,
21
21
  _hasPageContextFromServer: true,
22
22
  });
23
23
  objectAssign(pageContextCreated, getPageContextSerializedInHtml());
24
24
  // Sets pageContext.config to global configs
25
- augmentType(pageContextCreated, await createPageContextShared(pageContextCreated, globalContext._pageConfigGlobal, globalContext._vikeConfigPublicGlobal));
25
+ augmentType(pageContextCreated, createPageContextShared(pageContextCreated, globalContext._vikeConfigPublicGlobal));
26
26
  // Sets pageContext.config to local configs (overrides the pageContext.config set above)
27
27
  augmentType(pageContextCreated, await loadPageConfigsLazyClientSideAndExecHook(pageContextCreated));
28
28
  assertPristineUrl();
@@ -24,4 +24,4 @@ declare const getGlobalContextClientInternal: () => Promise<{
24
24
  };
25
25
  } & {
26
26
  isClientSide: true;
27
- } & object>;
27
+ } & object & Record<string, any>>;
@@ -1,2 +1,2 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export {};
@@ -23,13 +23,14 @@ declare function createGetGlobalContextClient<GlobalContextAddendum extends obje
23
23
  pages: {
24
24
  [k: string]: import("../../shared/page-configs/resolveVikeConfigPublic.js").VikeConfigPublicPageEager;
25
25
  };
26
- } & Awaited<{
26
+ } & {
27
27
  /**
28
28
  * Whether the environment is client-side or server-side / pre-rendering.
29
29
  *
30
30
  * We recommend using `import.meta.env.SSR` instead, see https://vike.dev/globalContext
31
31
  */
32
32
  isClientSide: true;
33
- } & Awaited<GlobalContextAddendum>>>;
34
- declare function getGlobalContext(): Promise<never>;
35
- declare function getGlobalContextSync(): never;
33
+ } & Awaited<GlobalContextAddendum> & Record<string, any>>;
34
+ type NeverExported = never;
35
+ declare function getGlobalContext(): Promise<NeverExported>;
36
+ declare function getGlobalContextSync(): NeverExported;
@@ -27,7 +27,7 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
27
27
  return globalObject.globalContext;
28
28
  }
29
29
  // Create
30
- const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, async (globalContext) => {
30
+ const globalContext = await createGlobalContextShared(virtualFileExports, globalObject, undefined, async (globalContext) => {
31
31
  const globalContextAddendum = {
32
32
  /**
33
33
  * Whether the environment is client-side or server-side / pre-rendering.
@@ -46,7 +46,6 @@ function createGetGlobalContextClient(virtualFileExports, isClientRouting, addGl
46
46
  return globalContext;
47
47
  }
48
48
  }
49
- // The type is never used: it's the type of the server-side getGlobalContext() that is used.
50
49
  async function getGlobalContext() {
51
50
  const globalContext = await globalObject.globalContextPromise;
52
51
  return globalContext;
@@ -22,7 +22,7 @@ async function execHookOnRenderClient(pageContext, prepareForPublicUsage) {
22
22
  assertUsage(false, `No onRenderClient() hook defined for URL '${urlToShowToUser}', but it's needed, see https://vike.dev/onRenderClient`);
23
23
  }
24
24
  else {
25
- // TODO/v1-release: remove
25
+ // TO-DO/next-major-release: remove
26
26
  // V0.4 design
27
27
  const pageClientsFilesLoaded = pageContext._pageFilesLoaded.filter((p) => p.fileType === '.page.client');
28
28
  let errMsg;
@@ -30,9 +30,9 @@ async function loadPageConfigsLazyClientSide(pageId, pageFilesAll, pageConfigs,
30
30
  }
31
31
  throw err;
32
32
  }
33
- const pageContextExports = resolveVikeConfigPublicPageLazy(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
33
+ const configPublicPageLazy = resolveVikeConfigPublicPageLazy(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
34
34
  const pageContextAddendum = {};
35
- objectAssign(pageContextAddendum, pageContextExports);
35
+ objectAssign(pageContextAddendum, configPublicPageLazy);
36
36
  objectAssign(pageContextAddendum, { _pageFilesLoaded: pageFilesClientSide });
37
37
  return pageContextAddendum;
38
38
  }
@@ -3,14 +3,14 @@ export { preparePageContextForPublicUsageClientMinimal };
3
3
  import { objectAssign } from '../runtime-server-routing/utils.js';
4
4
  import { assertPropertyGetters, preparePageContextForPublicUsage, } from '../../shared/preparePageContextForPublicUsage.js';
5
5
  function preparePageContextForPublicUsageClientShared(pageContext) {
6
- // TODO/now-proxy use proxy
6
+ // TO-DO/soon/proxy: use proxy
7
7
  const Page = pageContext.config?.Page ||
8
- // TODO/next-major-release: remove
8
+ // TO-DO/next-major-release: remove
9
9
  pageContext.exports?.Page;
10
10
  objectAssign(pageContext, { Page });
11
- // TODO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
11
+ // TO-DO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
12
12
  assertPropertyGetters(pageContext);
13
- // TODO/next-major-release: remove
13
+ // TO-DO/next-major-release: remove
14
14
  // - Requires https://github.com/vikejs/vike-vue/issues/198
15
15
  // - 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.
16
16
  supportVueReactiviy(pageContext);
@@ -84,7 +84,7 @@ async function getViteInfo(viteConfigFromUserApiOptions, operation) {
84
84
  const root = normalizeViteRoot(viteConfigResolved.root ?? process.cwd());
85
85
  globalObject.root = root;
86
86
  // - Find options `vike(options)` set in vite.config.js
87
- // - TODO/next-major: remove
87
+ // - TO-DO/next-major-release: remove
88
88
  // - Add Vike's Vite plugin if missing
89
89
  let vikeVitePluginOptions;
90
90
  const found = findVikeVitePlugin(viteConfigResolved);
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { prerender } from '../api/prerender.js';
3
3
  import { assertWarning } from '../../utils/assert.js';
4
4
  import pc from '@brillout/picocolors';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  //import { SsrEnv, setSsrEnv } from './ssrEnv.js'
3
3
  import { renderPage } from './runtime/renderPage.js';
4
4
  import { assertWarning } from './runtime/utils.js';
@@ -1,3 +1,3 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  console.warn("[vike][Warning] importBuild.js is not needed anymore; it has no effect. Remove `import 'dist/server/importBuild.js'` to remove this warning. More infos at https://vike.dev/importBuild.js");
3
3
  export {};
@@ -12,7 +12,7 @@ function isPrerenderAutoRunEnabled(vikeConfig) {
12
12
  !globalObject.isDisabled &&
13
13
  vikeConfig.config.disableAutoFullBuild !== 'prerender');
14
14
  }
15
- // TODO/v1-release: remove
15
+ // TO-DO/next-major-release: remove
16
16
  function temp_disablePrerenderAutoRun() {
17
17
  globalObject.isDisabled = true;
18
18
  }
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { prerender } from '../api/prerender.js';
3
3
  import { assertWarning } from '../../utils/assert.js';
4
4
  import pc from '@brillout/picocolors';
@@ -22,7 +22,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
22
22
  defaultLocalValue = true;
23
23
  }
24
24
  }
25
- // TODO/next-major: remove
25
+ // TO-DO/next-major-release: remove
26
26
  // Backwards compatibility for `vike({prerender:true})` in vite.config.js
27
27
  {
28
28
  const valuesWithDefinedAt = vikeConfig._from.configsCumulative.prerender?.values ?? [];
@@ -37,7 +37,7 @@ function resolvePrerenderConfigGlobal(vikeConfig) {
37
37
  isPrerenderingEnabled: vikeConfig._pageConfigs.length > 0 &&
38
38
  vikeConfig._pageConfigs.some((pageConfig) => resolvePrerenderConfigLocal(pageConfig)?.value ?? defaultLocalValue),
39
39
  });
40
- // TODO/next-major remove
40
+ // TO-DO/next-major-release: remove
41
41
  if (vikeConfig._pageConfigs.length === 0 && defaultLocalValue)
42
42
  prerenderConfigGlobal.isPrerenderingEnabled = true;
43
43
  return prerenderConfigGlobal;