vike 0.4.252 → 0.4.253-commit-1658209

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 (47) hide show
  1. package/dist/client/runtime-client-routing/createPageContextClient.d.ts +1 -1
  2. package/dist/client/runtime-client-routing/entry.js +0 -4
  3. package/dist/client/runtime-client-routing/getGlobalContextClientInternal.d.ts +1 -1
  4. package/dist/client/runtime-client-routing/getPageContextCurrent.js +1 -1
  5. package/dist/client/runtime-client-routing/getPageContextFromHooks.d.ts +12 -4
  6. package/dist/client/runtime-client-routing/getPageContextFromHooks.js +1 -1
  7. package/dist/client/runtime-client-routing/history.d.ts +1 -1
  8. package/dist/client/runtime-client-routing/history.js +2 -2
  9. package/dist/client/runtime-client-routing/initClientRouter.d.ts +1 -1
  10. package/dist/client/runtime-client-routing/initClientRouter.js +13 -6
  11. package/dist/client/runtime-client-routing/navigate.js +4 -3
  12. package/dist/client/runtime-client-routing/prefetch.js +1 -1
  13. package/dist/client/runtime-client-routing/renderPageClient.d.ts +4 -6
  14. package/dist/client/runtime-client-routing/renderPageClient.js +25 -19
  15. package/dist/client/runtime-client-routing/scrollRestoration.js +1 -1
  16. package/dist/client/runtime-client-routing/setScrollPosition.d.ts +3 -0
  17. package/dist/client/runtime-client-routing/setScrollPosition.js +6 -2
  18. package/dist/node/prerender/runPrerender.d.ts +6 -4
  19. package/dist/node/vite/plugins/pluginReplaceConstantsEnvVars.js +27 -12
  20. package/dist/node/vite/plugins/pluginReplaceConstantsGlobalThis.d.ts +2 -0
  21. package/dist/node/vite/plugins/pluginReplaceConstantsGlobalThis.js +1 -0
  22. package/dist/node/vite/shared/loggerVite.js +11 -4
  23. package/dist/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +7 -3
  24. package/dist/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +7 -2
  25. package/dist/server/runtime/globalContext.d.ts +10 -10
  26. package/dist/server/runtime/renderPageServer/addErrorHint.js +2 -1
  27. package/dist/server/runtime/renderPageServer/createPageContextServer.d.ts +9 -5
  28. package/dist/server/runtime/renderPageServer/execHookOnRenderHtml.d.ts +2 -2
  29. package/dist/server/runtime/renderPageServer/handlePageContextRequestUrl.js +5 -5
  30. package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +6 -4
  31. package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +24 -16
  32. package/dist/server/runtime/renderPageServer.d.ts +6 -4
  33. package/dist/shared-server-client/assertVirtualFileExports.js +3 -3
  34. package/dist/shared-server-client/createGlobalContextShared.d.ts +2 -2
  35. package/dist/shared-server-client/hooks/execHook.d.ts +13 -7
  36. package/dist/shared-server-client/hooks/execHook.js +1 -0
  37. package/dist/shared-server-client/hooks/getHook.d.ts +7 -7
  38. package/dist/shared-server-client/route/abort.js +1 -4
  39. package/dist/shared-server-client/route/loadPageRoutes.d.ts +3 -3
  40. package/dist/types/Config.d.ts +2 -5
  41. package/dist/types/PageContext.d.ts +2 -1
  42. package/dist/utils/PROJECT_VERSION.d.ts +1 -1
  43. package/dist/utils/PROJECT_VERSION.js +1 -1
  44. package/dist/utils/debug.js +8 -12
  45. package/dist/utils/isBrowser.d.ts +1 -0
  46. package/dist/utils/isBrowser.js +5 -3
  47. package/package.json +17 -17
@@ -17,7 +17,7 @@ const globalObject = getGlobalObject('vite/shared/loggerDev.ts', {
17
17
  processStartupLog_hasViteLoggedStartup: null,
18
18
  processStartupLog_hasViteLoggedHelpShortcut: null,
19
19
  swallowViteLogForceOptimization_enabled: false,
20
- swallowViteLogConnected_originalConsoleLog: null,
20
+ swallowViteLogConnected_originalConsoleLog: undefined,
21
21
  });
22
22
  function interceptViteLogs(config) {
23
23
  if (isDebugError())
@@ -123,22 +123,29 @@ function swallowViteLogForceOptimization_enable() {
123
123
  function swallowViteLogForceOptimization_disable() {
124
124
  globalObject.swallowViteLogForceOptimization_enabled = false;
125
125
  }
126
- // Suppress "[vite] connected." message. (It doesn't go through Vite's logger thus we must monkey patch the console.log() function.)
126
+ // Swallow message `[vite] connected.`
127
127
  function swallowViteLogConnected() {
128
128
  if (isDebugError())
129
129
  return;
130
130
  if (globalObject.swallowViteLogConnected_originalConsoleLog)
131
131
  return;
132
132
  globalObject.swallowViteLogConnected_originalConsoleLog = console.log;
133
+ // The message `[vite] connected.` doesn't go through Vite's logger thus we must monkey patch console.log()
133
134
  console.log = swallowViteLogConnected_logPatch;
134
135
  setTimeout(swallowViteLogConnected_clean, 3000);
135
136
  }
136
137
  // Remove console.log() monkey patch
137
138
  function swallowViteLogConnected_clean() {
138
- // Don't remove console.log() patches from other libraries (e.g. instrumentation)
139
- if (console.log === swallowViteLogConnected_logPatch)
139
+ if (isDebugError()) {
140
+ assert(globalObject.swallowViteLogConnected_originalConsoleLog === undefined);
140
141
  return;
142
+ }
143
+ if (globalObject.swallowViteLogConnected_originalConsoleLog === null)
144
+ return; // already cleaned
141
145
  assert(globalObject.swallowViteLogConnected_originalConsoleLog);
146
+ // Don't remove console.log() patches from other libraries (e.g. instrumentation)
147
+ if (console.log !== swallowViteLogConnected_logPatch)
148
+ return;
142
149
  console.log = globalObject.swallowViteLogConnected_originalConsoleLog;
143
150
  globalObject.swallowViteLogConnected_originalConsoleLog = null;
144
151
  }
@@ -35,7 +35,7 @@ const configDefinitionsBuiltIn = {
35
35
  cumulative: true,
36
36
  },
37
37
  onHookCall: {
38
- env: { server: true, client: true },
38
+ env: { server: true },
39
39
  global: true,
40
40
  cumulative: true,
41
41
  },
@@ -219,7 +219,12 @@ const configDefinitionsBuiltIn = {
219
219
  keepScrollPosition: {
220
220
  env: { client: true },
221
221
  },
222
- middleware: { env: { server: true }, cumulative: true, eager: true, global: true },
222
+ middleware: {
223
+ env: { server: true },
224
+ cumulative: true,
225
+ eager: true,
226
+ global: true,
227
+ },
223
228
  cli: {
224
229
  env: { config: true },
225
230
  global: true,
@@ -229,7 +234,6 @@ const configDefinitionsBuiltIn = {
229
234
  eager: true,
230
235
  global: true,
231
236
  },
232
- // TODO: align all meta configs
233
237
  prerender: {
234
238
  env: { config: true },
235
239
  global: (value, { isGlobalLocation }) => typeof value === 'object' || isGlobalLocation,
@@ -9,7 +9,7 @@ import path from 'node:path';
9
9
  import crypto from 'node:crypto';
10
10
  import pc from '@brillout/picocolors';
11
11
  import { import_ } from '@brillout/import';
12
- import { assert, assertWarning, assertUsage } from '../../../../utils/assert.js';
12
+ import { assert, assertWarning } from '../../../../utils/assert.js';
13
13
  import { assertIsNotProductionRuntime } from '../../../../utils/assertSetup.js';
14
14
  import { createDebug } from '../../../../utils/debug.js';
15
15
  import { genPromise } from '../../../../utils/genPromise.js';
@@ -39,7 +39,12 @@ async function transpileAndExecuteFile(filePath, userRootDir, isExtensionConfig,
39
39
  }
40
40
  const { promise, resolve } = genPromise();
41
41
  esbuildCache.transpileCache[filePathAbsoluteFilesystem] = promise;
42
- assertUsage(isPlainScriptFile(filePathAbsoluteFilesystem), `${filePathToShowToUserResolved} has file extension .${fileExtension} but a config file can only be a JavaScript/TypeScript file`);
42
+ /* We tolerate .tsx so that a file can be both a runtime and config file (`meta.env.config === true && meta.env.server === true`), e.g. https://github.com/brillout/docpress/issues/86
43
+ assertUsage(
44
+ isPlainScriptFile(filePathAbsoluteFilesystem),
45
+ `${filePathToShowToUserResolved} has file extension .${fileExtension} but a config file can only be a JavaScript/TypeScript file`,
46
+ )
47
+ */
43
48
  const isHeader = isHeaderFile(filePathAbsoluteFilesystem);
44
49
  if (isHeader) {
45
50
  assertWarning(false, `${pc.cyan('.h.js')} files are deprecated: simply renaming ${filePathToShowToUserResolved} to ${removeHeaderFileExtension(filePathToShowToUserResolved)} is usually enough, although you may occasionally need to use ${pc.cyan("with { type: 'pointer' }")} as explained at https://vike.dev/config#pointer-imports`, { onlyOnce: true });
@@ -26,7 +26,7 @@ import type { ResolvedConfig, ViteDevServer } from 'vite';
26
26
  import { type PageRoutes } from '../../shared-server-client/route/loadPageRoutes.js';
27
27
  import type { ViteConfigRuntime } from '../../node/vite/shared/getViteConfigRuntime.js';
28
28
  import type { GlobalContext } from '../../types/GlobalContext.js';
29
- import type { Hook } from '../../shared-server-client/hooks/getHook.js';
29
+ import type { HookInternal } from '../../shared-server-client/hooks/getHook.js';
30
30
  import type { PrerenderContext } from '../../types/index.js';
31
31
  declare const vikeConfigErrorRecoverMsg: "Vike config loaded";
32
32
  type GlobalContextServerInternal = Awaited<ReturnType<typeof createGlobalContext>>;
@@ -85,7 +85,7 @@ declare function getGlobalContextServerInternal(): Promise<{
85
85
  viteConfig: ResolvedConfig | undefined;
86
86
  isClientSide: false;
87
87
  _pageRoutes: PageRoutes;
88
- _onBeforeRouteHook: Hook | null;
88
+ _onBeforeRouteHook: HookInternal | null;
89
89
  } & {
90
90
  baseServer: string;
91
91
  baseAssets: string;
@@ -156,7 +156,7 @@ declare function getGlobalContextServerInternal(): Promise<{
156
156
  _usesClientRouter: boolean;
157
157
  isClientSide: false;
158
158
  _pageRoutes: PageRoutes;
159
- _onBeforeRouteHook: Hook | null;
159
+ _onBeforeRouteHook: HookInternal | null;
160
160
  } & {
161
161
  baseServer: string;
162
162
  baseAssets: string;
@@ -227,7 +227,7 @@ declare function getGlobalContextServerInternal(): Promise<{
227
227
  _usesClientRouter: boolean;
228
228
  isClientSide: false;
229
229
  _pageRoutes: PageRoutes;
230
- _onBeforeRouteHook: Hook | null;
230
+ _onBeforeRouteHook: HookInternal | null;
231
231
  } & {
232
232
  baseServer: string;
233
233
  baseAssets: string;
@@ -299,7 +299,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
299
299
  viteConfig: ResolvedConfig | undefined;
300
300
  isClientSide: false;
301
301
  _pageRoutes: PageRoutes;
302
- _onBeforeRouteHook: Hook | null;
302
+ _onBeforeRouteHook: HookInternal | null;
303
303
  } | {
304
304
  _isPrerendering: true;
305
305
  viteConfig: ResolvedConfig;
@@ -309,7 +309,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
309
309
  _usesClientRouter: boolean;
310
310
  isClientSide: false;
311
311
  _pageRoutes: PageRoutes;
312
- _onBeforeRouteHook: Hook | null;
312
+ _onBeforeRouteHook: HookInternal | null;
313
313
  } | {
314
314
  _isPrerendering: false;
315
315
  viteConfig: null;
@@ -319,7 +319,7 @@ declare function getGlobalContextServerInternalOptional(): (Record<string, unkno
319
319
  _usesClientRouter: boolean;
320
320
  isClientSide: false;
321
321
  _pageRoutes: PageRoutes;
322
- _onBeforeRouteHook: Hook | null;
322
+ _onBeforeRouteHook: HookInternal | null;
323
323
  }) & {
324
324
  baseServer: string;
325
325
  baseAssets: string;
@@ -428,7 +428,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
428
428
  viteConfig: ResolvedConfig | undefined;
429
429
  isClientSide: false;
430
430
  _pageRoutes: PageRoutes;
431
- _onBeforeRouteHook: Hook | null;
431
+ _onBeforeRouteHook: HookInternal | null;
432
432
  } | {
433
433
  _isPrerendering: true;
434
434
  viteConfig: ResolvedConfig;
@@ -438,7 +438,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
438
438
  _usesClientRouter: boolean;
439
439
  isClientSide: false;
440
440
  _pageRoutes: PageRoutes;
441
- _onBeforeRouteHook: Hook | null;
441
+ _onBeforeRouteHook: HookInternal | null;
442
442
  } | {
443
443
  _isPrerendering: false;
444
444
  viteConfig: null;
@@ -448,7 +448,7 @@ declare function createGlobalContext(virtualFileExportsGlobalEntry: unknown): Pr
448
448
  _usesClientRouter: boolean;
449
449
  isClientSide: false;
450
450
  _pageRoutes: PageRoutes;
451
- _onBeforeRouteHook: Hook | null;
451
+ _onBeforeRouteHook: HookInternal | null;
452
452
  }) & {
453
453
  baseServer: string;
454
454
  baseAssets: string;
@@ -91,7 +91,8 @@ function addErrorHint(error) {
91
91
  const hint = getErrorHint(error);
92
92
  if (!hint)
93
93
  return error;
94
- const append = `\n${pc.bold(formatHintLog(hint))}`;
94
+ const color = hint === hintDefault ? pc.gray : pc.bold;
95
+ const append = `\n${color(formatHintLog(hint))}`;
95
96
  return getBetterError(error, { message: { append } });
96
97
  }
97
98
  function getErrorHint(error) {
@@ -6,7 +6,9 @@ export type { PageContextCreatedServerWithoutGlobalContext };
6
6
  import type { GlobalContextServerInternal } from '../globalContext.js';
7
7
  import type { PageContextInit } from '../renderPageServer.js';
8
8
  type PageContextCreatedServer = Awaited<ReturnType<typeof createPageContextServer>>;
9
- declare function createPageContextServer(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, args: {
9
+ declare function createPageContextServer(pageContextInit: PageContextInit & {
10
+ headers?: Record<string, unknown>;
11
+ }, globalContext: GlobalContextServerInternal, args: {
10
12
  requestId: number;
11
13
  } & ({
12
14
  isPrerendering: true;
@@ -76,7 +78,7 @@ declare function createPageContextServer(pageContextInit: PageContextInit, globa
76
78
  viteConfig: import("vite").ResolvedConfig | undefined;
77
79
  isClientSide: false;
78
80
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
79
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
81
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
80
82
  } | {
81
83
  _isPrerendering: true;
82
84
  viteConfig: import("vite").ResolvedConfig;
@@ -86,7 +88,7 @@ declare function createPageContextServer(pageContextInit: PageContextInit, globa
86
88
  _usesClientRouter: boolean;
87
89
  isClientSide: false;
88
90
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
89
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
91
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
90
92
  } | {
91
93
  _isPrerendering: false;
92
94
  viteConfig: null;
@@ -96,7 +98,7 @@ declare function createPageContextServer(pageContextInit: PageContextInit, globa
96
98
  _usesClientRouter: boolean;
97
99
  isClientSide: false;
98
100
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
99
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
101
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
100
102
  }) & {
101
103
  baseServer: string;
102
104
  baseAssets: string;
@@ -116,7 +118,9 @@ declare function createPageContextServer(pageContextInit: PageContextInit, globa
116
118
  _pageFilesAll: import("../../__internal/index.js").PageFile[];
117
119
  _baseServer: string;
118
120
  _baseAssets: string;
119
- _pageContextInit: PageContextInit;
121
+ _pageContextInit: PageContextInit & {
122
+ headers?: Record<string, unknown>;
123
+ };
120
124
  _urlHandler: ((url: string) => string) | null;
121
125
  isClientSideNavigation: boolean;
122
126
  } & {
@@ -2,14 +2,14 @@ import '../../assertEnvServer.js';
2
2
  export { execHookOnRenderHtml };
3
3
  export type { RenderHook };
4
4
  import { type HtmlRender } from './html/renderHtml.js';
5
- import { type Hook } from '../../../shared-server-client/hooks/getHook.js';
5
+ import { type HookInternal } from '../../../shared-server-client/hooks/getHook.js';
6
6
  import type { PageAsset } from './getPageAssets.js';
7
7
  import type { PageContextSerialization } from './html/serializeContext.js';
8
8
  import { type PageContextExecHook } from '../../../shared-server-client/hooks/execHook.js';
9
9
  import type { PageContextConfig } from '../../../shared-server-client/getPageFiles.js';
10
10
  import type { PageContextInternalServer } from '../../../types/PageContext.js';
11
11
  type GetPageAssets = () => Promise<PageAsset[]>;
12
- type RenderHook = Hook & {
12
+ type RenderHook = HookInternal & {
13
13
  hookName: HookName;
14
14
  };
15
15
  type HookName = 'onRenderHtml' | 'render';
@@ -8,6 +8,7 @@ import { assert } from '../../../utils/assert.js';
8
8
  import { hasProp } from '../../../utils/hasProp.js';
9
9
  import { isObject } from '../../../utils/isObject.js';
10
10
  import { parseUrl } from '../../../utils/parseUrl.js';
11
+ const pageContextJsonFileExtensionUrl = `/index${pageContextJsonFileExtension}`;
11
12
  // See also shared/getPageContextRequestUrl.ts
12
13
  function handlePageContextRequestUrl(url) {
13
14
  const urlParsed = parseUrl(url, baseServer);
@@ -33,16 +34,15 @@ function handlePageContextRequestUrl(url) {
33
34
  }
34
35
  function isMatch(urlParsed) {
35
36
  const { pathnameOriginal, pathname } = urlParsed;
36
- assert(pathname.endsWith(pageContextJsonFileExtension) === pathnameOriginal.endsWith(pageContextJsonFileExtension));
37
- return pathname.endsWith(pageContextJsonFileExtension);
37
+ assert(pathname.endsWith(pageContextJsonFileExtensionUrl) === pathnameOriginal.endsWith(pageContextJsonFileExtensionUrl));
38
+ return pathname.endsWith(pageContextJsonFileExtensionUrl);
38
39
  }
39
40
  function processUrl(urlParsed, url) {
40
41
  // We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
41
42
  const { pathnameOriginal, search } = urlParsed;
42
43
  assert(doNotCreateExtraDirectory === false);
43
- const urlSuffix = `/index${pageContextJsonFileExtension}`;
44
- assert(pathnameOriginal.endsWith(urlSuffix), { url });
45
- let pathnameModified = slice(pathnameOriginal, 0, -1 * urlSuffix.length);
44
+ assert(pathnameOriginal.endsWith(pageContextJsonFileExtensionUrl), { url });
45
+ let pathnameModified = slice(pathnameOriginal, 0, -1 * pageContextJsonFileExtensionUrl.length);
46
46
  if (pathnameModified === '')
47
47
  pathnameModified = '/';
48
48
  const searchVikeArgs = search?._vike;
@@ -77,7 +77,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
77
77
  viteConfig: import("vite").ResolvedConfig | undefined;
78
78
  isClientSide: false;
79
79
  _pageRoutes: import("../../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
80
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
80
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
81
81
  } | {
82
82
  _isPrerendering: true;
83
83
  viteConfig: import("vite").ResolvedConfig;
@@ -87,7 +87,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
87
87
  _usesClientRouter: boolean;
88
88
  isClientSide: false;
89
89
  _pageRoutes: import("../../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
90
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
90
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
91
91
  } | {
92
92
  _isPrerendering: false;
93
93
  viteConfig: null;
@@ -97,7 +97,7 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
97
97
  _usesClientRouter: boolean;
98
98
  isClientSide: false;
99
99
  _pageRoutes: import("../../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
100
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
100
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
101
101
  }) & {
102
102
  baseServer: string;
103
103
  baseAssets: string;
@@ -117,7 +117,9 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
117
117
  _pageFilesAll: import("../../../shared-server-client/getPageFiles.js").PageFile[];
118
118
  _baseServer: string;
119
119
  _baseAssets: string;
120
- _pageContextInit: import("../renderPageServer.js").PageContextInit;
120
+ _pageContextInit: import("../renderPageServer.js").PageContextInit & {
121
+ headers?: Record<string, unknown>;
122
+ };
121
123
  _urlHandler: ((url: string) => string) | null;
122
124
  isClientSideNavigation: boolean;
123
125
  } & {
@@ -85,7 +85,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
85
85
  viteConfig: import("vite").ResolvedConfig | undefined;
86
86
  isClientSide: false;
87
87
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
88
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
88
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
89
89
  } | {
90
90
  _isPrerendering: true;
91
91
  viteConfig: import("vite").ResolvedConfig;
@@ -95,7 +95,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
95
95
  _usesClientRouter: boolean;
96
96
  isClientSide: false;
97
97
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
98
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
98
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
99
99
  } | {
100
100
  _isPrerendering: false;
101
101
  viteConfig: null;
@@ -105,7 +105,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
105
105
  _usesClientRouter: boolean;
106
106
  isClientSide: false;
107
107
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
108
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
108
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
109
109
  }) & {
110
110
  baseServer: string;
111
111
  baseAssets: string;
@@ -125,7 +125,9 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
125
125
  _pageFilesAll: import("../../__internal/index.js").PageFile[];
126
126
  _baseServer: string;
127
127
  _baseAssets: string;
128
- _pageContextInit: import("../renderPageServer.js").PageContextInit;
128
+ _pageContextInit: import("../renderPageServer.js").PageContextInit & {
129
+ headers?: Record<string, unknown>;
130
+ };
129
131
  _urlHandler: ((url: string) => string) | null;
130
132
  isClientSideNavigation: boolean;
131
133
  } & {
@@ -246,7 +248,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
246
248
  viteConfig: import("vite").ResolvedConfig | undefined;
247
249
  isClientSide: false;
248
250
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
249
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
251
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
250
252
  } | {
251
253
  _isPrerendering: true;
252
254
  viteConfig: import("vite").ResolvedConfig;
@@ -256,7 +258,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
256
258
  _usesClientRouter: boolean;
257
259
  isClientSide: false;
258
260
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
259
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
261
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
260
262
  } | {
261
263
  _isPrerendering: false;
262
264
  viteConfig: null;
@@ -266,7 +268,7 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
266
268
  _usesClientRouter: boolean;
267
269
  isClientSide: false;
268
270
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
269
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
271
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
270
272
  }) & {
271
273
  baseServer: string;
272
274
  baseAssets: string;
@@ -286,7 +288,9 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
286
288
  _pageFilesAll: import("../../__internal/index.js").PageFile[];
287
289
  _baseServer: string;
288
290
  _baseAssets: string;
289
- _pageContextInit: import("../renderPageServer.js").PageContextInit;
291
+ _pageContextInit: import("../renderPageServer.js").PageContextInit & {
292
+ headers?: Record<string, unknown>;
293
+ };
290
294
  _urlHandler: ((url: string) => string) | null;
291
295
  isClientSideNavigation: boolean;
292
296
  } & {
@@ -415,7 +419,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
415
419
  viteConfig: import("vite").ResolvedConfig | undefined;
416
420
  isClientSide: false;
417
421
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
418
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
422
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
419
423
  } | {
420
424
  _isPrerendering: true;
421
425
  viteConfig: import("vite").ResolvedConfig;
@@ -425,7 +429,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
425
429
  _usesClientRouter: boolean;
426
430
  isClientSide: false;
427
431
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
428
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
432
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
429
433
  } | {
430
434
  _isPrerendering: false;
431
435
  viteConfig: null;
@@ -435,7 +439,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
435
439
  _usesClientRouter: boolean;
436
440
  isClientSide: false;
437
441
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
438
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
442
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
439
443
  }) & {
440
444
  baseServer: string;
441
445
  baseAssets: string;
@@ -455,7 +459,9 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
455
459
  _pageFilesAll: import("../../__internal/index.js").PageFile[];
456
460
  _baseServer: string;
457
461
  _baseAssets: string;
458
- _pageContextInit: import("../renderPageServer.js").PageContextInit;
462
+ _pageContextInit: import("../renderPageServer.js").PageContextInit & {
463
+ headers?: Record<string, unknown>;
464
+ };
459
465
  _urlHandler: ((url: string) => string) | null;
460
466
  isClientSideNavigation: boolean;
461
467
  } & {
@@ -576,7 +582,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
576
582
  viteConfig: import("vite").ResolvedConfig | undefined;
577
583
  isClientSide: false;
578
584
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
579
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
585
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
580
586
  } | {
581
587
  _isPrerendering: true;
582
588
  viteConfig: import("vite").ResolvedConfig;
@@ -586,7 +592,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
586
592
  _usesClientRouter: boolean;
587
593
  isClientSide: false;
588
594
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
589
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
595
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
590
596
  } | {
591
597
  _isPrerendering: false;
592
598
  viteConfig: null;
@@ -596,7 +602,7 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
596
602
  _usesClientRouter: boolean;
597
603
  isClientSide: false;
598
604
  _pageRoutes: import("../../__internal/index.js").PageRoutes;
599
- _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").Hook | null;
605
+ _onBeforeRouteHook: import("../../../shared-server-client/hooks/getHook.js").HookInternal | null;
600
606
  }) & {
601
607
  baseServer: string;
602
608
  baseAssets: string;
@@ -616,7 +622,9 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
616
622
  _pageFilesAll: import("../../__internal/index.js").PageFile[];
617
623
  _baseServer: string;
618
624
  _baseAssets: string;
619
- _pageContextInit: import("../renderPageServer.js").PageContextInit;
625
+ _pageContextInit: import("../renderPageServer.js").PageContextInit & {
626
+ headers?: Record<string, unknown>;
627
+ };
620
628
  _urlHandler: ((url: string) => string) | null;
621
629
  isClientSideNavigation: boolean;
622
630
  } & {
@@ -76,7 +76,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
76
76
  viteConfig: import("vite").ResolvedConfig | undefined;
77
77
  isClientSide: false;
78
78
  _pageRoutes: import("../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
79
- _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").Hook | null;
79
+ _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").HookInternal | null;
80
80
  } | {
81
81
  _isPrerendering: true;
82
82
  viteConfig: import("vite").ResolvedConfig;
@@ -86,7 +86,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
86
86
  _usesClientRouter: boolean;
87
87
  isClientSide: false;
88
88
  _pageRoutes: import("../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
89
- _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").Hook | null;
89
+ _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").HookInternal | null;
90
90
  } | {
91
91
  _isPrerendering: false;
92
92
  viteConfig: null;
@@ -96,7 +96,7 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
96
96
  _usesClientRouter: boolean;
97
97
  isClientSide: false;
98
98
  _pageRoutes: import("../../shared-server-client/route/loadPageRoutes.js").PageRoutes;
99
- _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").Hook | null;
99
+ _onBeforeRouteHook: import("../../shared-server-client/hooks/getHook.js").HookInternal | null;
100
100
  }) & {
101
101
  baseServer: string;
102
102
  baseAssets: string;
@@ -116,7 +116,9 @@ declare function getPageContextBegin(pageContextInit: PageContextInit, globalCon
116
116
  _pageFilesAll: import("../__internal/index.js").PageFile[];
117
117
  _baseServer: string;
118
118
  _baseAssets: string;
119
- _pageContextInit: PageContextInit;
119
+ _pageContextInit: PageContextInit & {
120
+ headers?: Record<string, unknown>;
121
+ };
120
122
  _urlHandler: ((url: string) => string) | null;
121
123
  isClientSideNavigation: boolean;
122
124
  } & {
@@ -1,7 +1,9 @@
1
+ // TO-DO/eventually: remove
1
2
  export { assertVirtualFileExports };
2
3
  import { assert } from '../utils/assert.js';
3
4
  function assertVirtualFileExports(moduleExports, test, moduleId) {
4
- if (!moduleExports || !test(moduleExports)) {
5
+ assert(moduleExports, typeof moduleExports);
6
+ if (!test(moduleExports)) {
5
7
  /* https://github.com/vikejs/vike/issues/2903#issuecomment-3642285811
6
8
  throw getProjectError('@cloudflare/vite-plugin error https://github.com/vikejs/vike/issues/2903#issuecomment-3642285811')
7
9
  /*/
@@ -10,7 +12,5 @@ function assertVirtualFileExports(moduleExports, test, moduleId) {
10
12
  }
11
13
  }
12
14
  function getKeys(obj) {
13
- if (obj === undefined)
14
- return null;
15
15
  return [...Object.getOwnPropertyNames(obj), ...Object.getOwnPropertySymbols(obj), ...Object.keys(obj)];
16
16
  }
@@ -8,11 +8,11 @@ import type { PageConfigRuntime } from '../types/PageConfig.js';
8
8
  import { type GlobalContextPublicMinimum } from './getGlobalContextPublicShared.js';
9
9
  import type { GlobalContextServerInternal } from '../server/runtime/globalContext.js';
10
10
  import type { GlobalContextClientInternal } from '../client/runtime-client-routing/getGlobalContextClientInternal.js';
11
- import { type Hook } from './hooks/getHook.js';
11
+ import { type HookInternal } from './hooks/getHook.js';
12
12
  declare const getGlobalContextSyncErrMsg = "The global context isn't set yet, call getGlobalContextSync() later or use getGlobalContext() instead.";
13
13
  declare function createGlobalContextShared<GlobalContextAdded extends {}, GlobalContextAddedAsync extends {}>(virtualFileExportsGlobalEntry: unknown, globalObject: {
14
14
  globalContext?: {};
15
- onCreateGlobalContextHooks?: Hook<GlobalContextPublicMinimum>[];
15
+ onCreateGlobalContextHooks?: HookInternal<GlobalContextPublicMinimum>[];
16
16
  previousCreateGlobalContextPromise?: Promise<void>;
17
17
  }, addGlobalContext?: (globalContext: GlobalContextBase) => GlobalContextAdded, addGlobalContextTmp?: (globalContext: GlobalContextBase) => Promise<GlobalContextAdded>, addGlobalContextAsync?: (globalContext: GlobalContextBase) => Promise<GlobalContextAddedAsync>): Promise<{
18
18
  _globalConfigPublic: {
@@ -9,28 +9,34 @@ export { getPageContext_sync };
9
9
  export { providePageContext };
10
10
  export { isUserHookError };
11
11
  export type { PageContextExecHook };
12
+ export type { HookPublic };
12
13
  import type { PageContextClient, PageContextServer } from '../../types/PageContext.js';
13
- import type { Hook, HookLoc } from './getHook.js';
14
+ import type { HookInternal, HookLoc } from './getHook.js';
14
15
  import type { PageContextConfig } from '../getPageFiles.js';
15
16
  import type { HookName, HookNameGlobal } from '../../types/Config.js';
16
17
  import { type PageContextPublicMinimum } from '../getPageContextPublicShared.js';
17
18
  import type { GlobalContextPublicMinimum } from '../getGlobalContextPublicShared.js';
18
- type HookWithResult = Hook & {
19
+ type HookWithResult = HookInternal & {
19
20
  hookReturn: unknown;
20
21
  };
21
22
  type PageContextExecHook = PageContextPublicMinimum;
22
23
  declare function execHook<PageContext extends PageContextExecHook & PageContextConfig>(hookName: HookName, pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
23
24
  declare function execHookGlobal(hookName: HookNameGlobal, globalContext: GlobalContextPublicMinimum, getGlobalContextPublic: (globalContext: GlobalContextPublicMinimum) => GlobalContextPublicMinimum): Promise<void>;
24
- declare function execHookList<PageContext extends PageContextExecHook>(hooks: Hook[], pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
25
- declare function execHookSingle<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<void>;
26
- declare function execHookSingleWithReturn<PageContext extends PageContextExecHook>(hook: Hook, pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<{
25
+ declare function execHookList<PageContext extends PageContextExecHook>(hooks: HookInternal[], pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<HookWithResult[]>;
26
+ declare function execHookSingle<PageContext extends PageContextExecHook>(hook: HookInternal, pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<void>;
27
+ declare function execHookSingleWithReturn<PageContext extends PageContextExecHook>(hook: HookInternal, pageContext: PageContext, getPageContextPublic: (pageContext: PageContext) => PageContext): Promise<{
27
28
  hookReturn: unknown;
28
29
  }>;
29
30
  declare function isUserHookError(err: unknown): false | HookLoc;
30
- declare function execHookSingleWithoutPageContext<HookReturn>(hook: Omit<Hook, 'hookFn'>, globalContext: GlobalContextPublicMinimum, hookFnCaller: () => HookReturn): Promise<HookReturn>;
31
- declare function execHookSingleSync<PageContext extends PageContextExecHook>(hook: Omit<Hook<PageContext>, 'hookTimeout'>, globalContext: GlobalContextPublicMinimum, pageContext: PageContext | null, getPageContextPublic: (pageContext: PageContext) => PageContext, hookFnCaller?: () => unknown): {
31
+ declare function execHookSingleWithoutPageContext<HookReturn>(hook: Omit<HookInternal, 'hookFn'>, globalContext: GlobalContextPublicMinimum, hookFnCaller: () => HookReturn): Promise<HookReturn>;
32
+ declare function execHookSingleSync<PageContext extends PageContextExecHook>(hook: Omit<HookInternal<PageContext>, 'hookTimeout'>, globalContext: GlobalContextPublicMinimum, pageContext: PageContext | null, getPageContextPublic: (pageContext: PageContext) => PageContext, hookFnCaller?: () => unknown): {
32
33
  hookReturn: unknown;
33
34
  };
35
+ type HookPublic = {
36
+ name: HookName;
37
+ filePath: string;
38
+ call: () => void | Promise<void>;
39
+ };
34
40
  declare function getPageContext_sync<PageContext = PageContextClient | PageContextServer>(): null | PageContext;
35
41
  /**
36
42
  * Provide `pageContext` for universal hooks.
@@ -136,6 +136,7 @@ function execHookBase(hookFnCaller, hook, globalContext, pageContext) {
136
136
  return originalReturn;
137
137
  };
138
138
  for (const onHookCall of configValue.value) {
139
+ // @ts-expect-error
139
140
  const hookPublic = { name: hookName, filePath: hookFilePath, call };
140
141
  // Recursively wrap callOriginal() so +onHookCall can use async hooks. (E.g. vike-react-sentry integrates Sentry's `Tracer.startActiveSpan()`.)
141
142
  call = () => {