vike 0.4.161 → 0.4.162

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 (157) hide show
  1. package/dist/cjs/__internal/index.js +2 -2
  2. package/dist/cjs/node/plugin/index.js +0 -2
  3. package/dist/cjs/node/plugin/plugins/buildConfig.js +20 -20
  4. package/dist/cjs/node/plugin/plugins/config/index.js +2 -7
  5. package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
  6. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -18
  7. package/dist/cjs/node/plugin/plugins/devConfig/index.js +2 -4
  8. package/dist/cjs/node/plugin/plugins/envVars.js +6 -2
  9. package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +10 -22
  10. package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  11. package/dist/cjs/node/plugin/plugins/importBuild/getVikeManifest.js +1 -21
  12. package/dist/cjs/node/plugin/plugins/importBuild/index.js +1 -1
  13. package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +29 -95
  14. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +8 -8
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
  19. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
  20. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
  21. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +109 -104
  22. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
  23. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +0 -14
  24. package/dist/cjs/node/plugin/shared/rollupSourceMap.js +20 -0
  25. package/dist/cjs/node/plugin/utils.js +0 -1
  26. package/dist/cjs/node/prerender/runPrerender.js +3 -2
  27. package/dist/cjs/node/prerender/utils.js +1 -1
  28. package/dist/cjs/node/runtime/globalContext.js +8 -19
  29. package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +1 -0
  30. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  31. package/dist/cjs/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
  32. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
  33. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  34. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +23 -28
  35. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -23
  36. package/dist/cjs/node/runtime/utils.js +1 -2
  37. package/dist/cjs/node/shared/assertPluginManifest.js +1 -4
  38. package/dist/cjs/node/shared/assertV1Design.js +26 -0
  39. package/dist/cjs/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +3 -3
  40. package/dist/cjs/node/shared/prependEntriesDir.js +13 -0
  41. package/dist/cjs/node/shared/utils.js +2 -0
  42. package/dist/cjs/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
  43. package/dist/cjs/shared/hooks/getHook.js +1 -1
  44. package/dist/cjs/shared/page-configs/helpers/getConfigValue.js +1 -0
  45. package/dist/cjs/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
  46. package/dist/cjs/shared/route/abort.js +1 -0
  47. package/dist/cjs/shared/route/resolvePrecedence.js +1 -0
  48. package/dist/cjs/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
  49. package/dist/cjs/utils/formatHintLog.js +1 -0
  50. package/dist/cjs/utils/hasProp.js +1 -0
  51. package/dist/cjs/utils/isScriptFile.js +15 -4
  52. package/dist/cjs/utils/projectInfo.js +1 -1
  53. package/dist/esm/__internal/index.js +1 -1
  54. package/dist/esm/client/shared/loadUserFilesClientSide.js +1 -0
  55. package/dist/esm/node/plugin/index.js +0 -2
  56. package/dist/esm/node/plugin/plugins/buildConfig.js +19 -19
  57. package/dist/esm/node/plugin/plugins/config/index.js +2 -7
  58. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.d.ts +1 -2
  59. package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +1 -8
  60. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +1 -2
  61. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -19
  62. package/dist/esm/node/plugin/plugins/devConfig/index.js +2 -4
  63. package/dist/esm/node/plugin/plugins/envVars.js +6 -2
  64. package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +11 -23
  65. package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -2
  66. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.d.ts +1 -2
  67. package/dist/esm/node/plugin/plugins/importBuild/getVikeManifest.js +2 -19
  68. package/dist/esm/node/plugin/plugins/importBuild/index.js +1 -1
  69. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +31 -97
  70. package/dist/esm/node/plugin/plugins/importUserCode/index.js +8 -8
  71. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getConfigValuesSerialized.js +1 -9
  72. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +3 -0
  73. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +3 -3
  74. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +1 -1
  75. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +1 -1
  76. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +4 -4
  77. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +1 -1
  78. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.d.ts +1 -13
  79. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transformFileImports.js +35 -36
  80. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +1 -1
  81. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +111 -106
  82. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -3
  83. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +39 -33
  84. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -15
  85. package/dist/esm/node/plugin/shared/rollupSourceMap.d.ts +14 -0
  86. package/dist/esm/node/plugin/shared/rollupSourceMap.js +17 -0
  87. package/dist/esm/node/plugin/utils.d.ts +0 -1
  88. package/dist/esm/node/plugin/utils.js +0 -1
  89. package/dist/esm/node/prerender/runPrerender.d.ts +3 -3
  90. package/dist/esm/node/prerender/runPrerender.js +4 -3
  91. package/dist/esm/node/prerender/utils.d.ts +1 -1
  92. package/dist/esm/node/prerender/utils.js +1 -1
  93. package/dist/esm/node/runtime/globalContext.d.ts +3 -10
  94. package/dist/esm/node/runtime/globalContext.js +7 -18
  95. package/dist/esm/node/runtime/html/serializePageContextClientSide.js +1 -0
  96. package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -2
  97. package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +2 -8
  98. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.d.ts +1 -1
  99. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +6 -7
  100. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +1 -1
  101. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
  102. package/dist/esm/node/runtime/renderPage/getPageAssets.js +24 -29
  103. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -24
  104. package/dist/esm/node/runtime/utils.d.ts +1 -2
  105. package/dist/esm/node/runtime/utils.js +1 -2
  106. package/dist/esm/node/shared/ViteManifest.d.ts +1 -0
  107. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  108. package/dist/esm/node/shared/assertPluginManifest.js +2 -5
  109. package/dist/esm/node/shared/assertV1Design.d.ts +4 -0
  110. package/dist/esm/node/shared/assertV1Design.js +23 -0
  111. package/dist/esm/node/shared/getClientEntry.d.ts +3 -0
  112. package/dist/esm/node/shared/{getClientEntryFilePath.js → getClientEntry.js} +2 -2
  113. package/dist/esm/node/shared/prependEntriesDir.d.ts +2 -0
  114. package/dist/esm/node/shared/prependEntriesDir.js +10 -0
  115. package/dist/esm/node/shared/utils.d.ts +2 -0
  116. package/dist/esm/node/shared/utils.js +2 -0
  117. package/dist/esm/node/shared/virtual-files/virtualFileImportUserCode.js +1 -0
  118. package/dist/esm/shared/ConfigVike.d.ts +0 -27
  119. package/dist/esm/shared/hooks/getHook.js +2 -2
  120. package/dist/esm/shared/page-configs/Config.d.ts +5 -0
  121. package/dist/esm/shared/page-configs/PageConfig.d.ts +2 -4
  122. package/dist/esm/shared/page-configs/helpers/getConfigValue.js +1 -0
  123. package/dist/esm/shared/page-configs/serialize/parseConfigValuesImported.js +1 -1
  124. package/dist/esm/shared/route/abort.js +1 -0
  125. package/dist/esm/shared/route/resolvePrecedence.js +1 -0
  126. package/dist/esm/utils/{nodeEnv.js → assertNodeEnv.js} +3 -0
  127. package/dist/esm/utils/debug.d.ts +1 -1
  128. package/dist/esm/utils/formatHintLog.js +1 -0
  129. package/dist/esm/utils/hasProp.js +1 -0
  130. package/dist/esm/utils/isScriptFile.d.ts +3 -1
  131. package/dist/esm/utils/isScriptFile.js +14 -3
  132. package/dist/esm/utils/projectInfo.d.ts +2 -2
  133. package/dist/esm/utils/projectInfo.js +1 -1
  134. package/package.json +4 -3
  135. package/dist/cjs/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -27
  136. package/dist/cjs/node/plugin/plugins/config/resolveExtensions.js +0 -107
  137. package/dist/cjs/node/plugin/plugins/config/stemUtils.js +0 -85
  138. package/dist/cjs/node/plugin/plugins/extensionsAssets.js +0 -101
  139. package/dist/cjs/node/plugin/shared/removeSourceMap.js +0 -12
  140. package/dist/cjs/utils/getDependencyPackageJson.js +0 -91
  141. package/dist/cjs/utils/isStemPackageName.js +0 -14
  142. package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.d.ts +0 -3
  143. package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +0 -24
  144. package/dist/esm/node/plugin/plugins/config/resolveExtensions.d.ts +0 -4
  145. package/dist/esm/node/plugin/plugins/config/resolveExtensions.js +0 -101
  146. package/dist/esm/node/plugin/plugins/config/stemUtils.d.ts +0 -8
  147. package/dist/esm/node/plugin/plugins/config/stemUtils.js +0 -79
  148. package/dist/esm/node/plugin/plugins/extensionsAssets.d.ts +0 -3
  149. package/dist/esm/node/plugin/plugins/extensionsAssets.js +0 -95
  150. package/dist/esm/node/plugin/shared/removeSourceMap.d.ts +0 -7
  151. package/dist/esm/node/plugin/shared/removeSourceMap.js +0 -9
  152. package/dist/esm/node/shared/getClientEntryFilePath.d.ts +0 -3
  153. package/dist/esm/utils/getDependencyPackageJson.d.ts +0 -6
  154. package/dist/esm/utils/getDependencyPackageJson.js +0 -85
  155. package/dist/esm/utils/isStemPackageName.d.ts +0 -1
  156. package/dist/esm/utils/isStemPackageName.js +0 -10
  157. /package/dist/esm/utils/{nodeEnv.d.ts → assertNodeEnv.d.ts} +0 -0
@@ -3,11 +3,10 @@ export { getGlobalContext };
3
3
  export { getViteDevServer };
4
4
  export { getViteConfig };
5
5
  export { setGlobalContext_viteDevServer };
6
- export { setGlobalContext_vitePreviewServer };
7
- export { setGlobalContext_viteConfig };
6
+ export { setGlobalContext_prerender };
8
7
  export { getRuntimeManifest };
9
8
  import type { ViteManifest } from '../shared/ViteManifest.js';
10
- import type { ResolvedConfig, ViteDevServer, PreviewServer as VitePreviewServer } from 'vite';
9
+ import type { ResolvedConfig, ViteDevServer } from 'vite';
11
10
  import { PluginManifest } from '../shared/assertPluginManifest.js';
12
11
  import type { ConfigVikeResolved } from '../../shared/ConfigVike.js';
13
12
  import { type RuntimeManifest } from '../shared/assertRuntimeManifest.js';
@@ -22,9 +21,7 @@ type GlobalContext = {
22
21
  isProduction: false;
23
22
  isPrerendering: false;
24
23
  viteConfig: ResolvedConfig;
25
- configVike: ConfigVikeResolved;
26
24
  viteDevServer: ViteDevServer;
27
- vitePreviewServer: null;
28
25
  clientManifest: null;
29
26
  pluginManifest: null;
30
27
  } | ({
@@ -32,21 +29,17 @@ type GlobalContext = {
32
29
  clientManifest: ViteManifest;
33
30
  pluginManifest: PluginManifest;
34
31
  viteDevServer: null;
35
- vitePreviewServer: null | VitePreviewServer;
36
32
  } & ({
37
33
  isPrerendering: false;
38
34
  viteConfig: null;
39
- configVike: null;
40
35
  } | {
41
36
  isPrerendering: true;
42
37
  viteConfig: ResolvedConfig;
43
- configVike: ConfigVikeResolved;
44
38
  })));
45
39
  declare function getGlobalContext(): GlobalContext;
46
40
  declare function setGlobalContext_viteDevServer(viteDevServer: ViteDevServer): void;
47
- declare function setGlobalContext_vitePreviewServer(vitePreviewServer: VitePreviewServer): void;
48
41
  declare function getViteDevServer(): ViteDevServer | null;
49
- declare function setGlobalContext_viteConfig(viteConfig: ResolvedConfig): void;
42
+ declare function setGlobalContext_prerender(viteConfig: ResolvedConfig): void;
50
43
  declare function getViteConfig(): ResolvedConfig | null;
51
44
  declare function initGlobalContext(isPrerendering?: boolean, outDir?: string): Promise<void>;
52
45
  declare function getRuntimeManifest(configVike: ConfigVikeResolved): RuntimeManifest;
@@ -3,8 +3,7 @@ export { getGlobalContext };
3
3
  export { getViteDevServer };
4
4
  export { getViteConfig };
5
5
  export { setGlobalContext_viteDevServer };
6
- export { setGlobalContext_vitePreviewServer };
7
- export { setGlobalContext_viteConfig };
6
+ export { setGlobalContext_prerender };
8
7
  export { getRuntimeManifest };
9
8
  import { assert, assertUsage, getGlobalObject, getNodeEnv, getNodeEnvDesc, isNodeEnvDev, isPlainObject, objectAssign } from './utils.js';
10
9
  import { loadImportBuild } from './globalContext/loadImportBuild.js';
@@ -22,18 +21,14 @@ function setGlobalContext_viteDevServer(viteDevServer) {
22
21
  if (globalObject.viteDevServer)
23
22
  return;
24
23
  assert(!globalObject.globalContext);
25
- globalObject.viteDevServer = viteDevServer;
26
- }
27
- function setGlobalContext_vitePreviewServer(vitePreviewServer) {
28
- if (globalObject.vitePreviewServer)
29
- return;
30
24
  assert(!globalObject.globalContext);
31
- globalObject.vitePreviewServer = vitePreviewServer;
25
+ globalObject.viteConfig = viteDevServer.config;
26
+ globalObject.viteDevServer = viteDevServer;
32
27
  }
33
28
  function getViteDevServer() {
34
29
  return globalObject.viteDevServer ?? null;
35
30
  }
36
- function setGlobalContext_viteConfig(viteConfig) {
31
+ function setGlobalContext_prerender(viteConfig) {
37
32
  if (globalObject.viteConfig)
38
33
  return;
39
34
  assert(!globalObject.globalContext);
@@ -45,13 +40,12 @@ function getViteConfig() {
45
40
  async function initGlobalContext(isPrerendering = false, outDir) {
46
41
  if (globalObject.globalContext)
47
42
  return;
48
- const { viteDevServer, vitePreviewServer, viteConfig } = globalObject;
43
+ const { viteDevServer, viteConfig } = globalObject;
49
44
  assertNodeEnv(!!viteDevServer);
50
45
  const isProduction = !viteDevServer;
51
46
  if (!isProduction) {
52
47
  assert(viteConfig);
53
48
  assert(!isPrerendering);
54
- assert(!vitePreviewServer);
55
49
  const configVike = await getConfigVike(viteConfig);
56
50
  const pluginManifest = getRuntimeManifest(configVike);
57
51
  globalObject.globalContext = {
@@ -60,9 +54,7 @@ async function initGlobalContext(isPrerendering = false, outDir) {
60
54
  clientManifest: null,
61
55
  pluginManifest: null,
62
56
  viteDevServer,
63
- vitePreviewServer: null,
64
57
  viteConfig,
65
- configVike,
66
58
  baseServer: pluginManifest.baseServer,
67
59
  baseAssets: pluginManifest.baseAssets,
68
60
  includeAssetsImportedByServer: pluginManifest.includeAssetsImportedByServer,
@@ -83,7 +75,6 @@ async function initGlobalContext(isPrerendering = false, outDir) {
83
75
  clientManifest,
84
76
  pluginManifest,
85
77
  viteDevServer: null,
86
- vitePreviewServer: vitePreviewServer ?? null,
87
78
  baseServer: pluginManifest.baseServer,
88
79
  baseAssets: pluginManifest.baseAssets,
89
80
  includeAssetsImportedByServer: pluginManifest.includeAssetsImportedByServer,
@@ -97,16 +88,14 @@ async function initGlobalContext(isPrerendering = false, outDir) {
97
88
  assert(configVike);
98
89
  objectAssign(globalContext, {
99
90
  isPrerendering: true,
100
- viteConfig,
101
- configVike
91
+ viteConfig
102
92
  });
103
93
  globalObject.globalContext = globalContext;
104
94
  }
105
95
  else {
106
96
  objectAssign(globalContext, {
107
97
  isPrerendering: false,
108
- viteConfig: null,
109
- configVike: null
98
+ viteConfig: null
110
99
  });
111
100
  globalObject.globalContext = globalContext;
112
101
  }
@@ -100,6 +100,7 @@ function serializePageContextAbort(pageContext) {
100
100
  delete pageContext._abortCaller;
101
101
  const unknownProps = Object.keys(pageContext).filter((prop) => ![
102
102
  // prettier-ignore
103
+ // biome-ignore format:
103
104
  '_abortCall',
104
105
  /* Not needed on the client-side
105
106
  '_abortCaller',
@@ -4,11 +4,11 @@ import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageC
4
4
  import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
5
5
  import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
6
6
  import { getGlobalContext } from '../globalContext.js';
7
- import { getClientEntryFilePath } from '../../shared/getClientEntryFilePath.js';
7
+ import { getClientEntry } from '../../shared/getClientEntry.js';
8
8
  function analyzePage(pageFilesAll, pageConfig, pageId) {
9
9
  if (pageConfig) {
10
10
  const { isClientSideRenderable, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
11
- const clientFilePath = getClientEntryFilePath(pageConfig);
11
+ const clientFilePath = getClientEntry(pageConfig);
12
12
  const clientEntry = !isClientSideRenderable ? clientFilePath : getVikeClientEntry(isClientRouting);
13
13
  const clientDependencies = [];
14
14
  clientDependencies.push({
@@ -1,11 +1,9 @@
1
1
  export { assertClientEntryId };
2
- import { getGlobalContext } from '../../globalContext.js';
3
2
  import { assert, assertPosixPath, isNpmPackageImport } from '../../utils.js';
4
3
  import { isVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
5
4
  function assertClientEntryId(id) {
6
5
  assertPosixPath(id);
7
6
  assert(!id.startsWith('/@fs'), id);
8
- const isPkg = isNpmPackageImport(id);
9
7
  assert(
10
8
  // Client entry
11
9
  id.startsWith('@@vike/') ||
@@ -13,10 +11,6 @@ function assertClientEntryId(id) {
13
11
  id.startsWith('/') ||
14
12
  // Page code importer
15
13
  isVirtualFileIdPageConfigValuesAll(id) ||
16
- // Stem packages
17
- isPkg, id);
18
- if (isPkg) {
19
- const { configVike } = getGlobalContext();
20
- assert(configVike === null || configVike.extensions.some(({ npmPackageName }) => id.startsWith(npmPackageName)), id);
21
- }
14
+ // Import
15
+ isNpmPackageImport(id), id);
22
16
  }
@@ -1,6 +1,6 @@
1
1
  export { getManifestEntry };
2
2
  import type { ViteManifest, ViteManifestEntry } from '../../../shared/ViteManifest.js';
3
- declare function getManifestEntry(id: string, clientManifest: ViteManifest, manifestKeyMap: Record<string, string>): {
3
+ declare function getManifestEntry(id: string, clientManifest: ViteManifest): {
4
4
  manifestKey: string;
5
5
  manifestEntry: ViteManifestEntry;
6
6
  };
@@ -2,7 +2,8 @@ export { getManifestEntry };
2
2
  import { assert, slice, isNpmPackageImport } from '../../utils.js';
3
3
  import { assertClientEntryId } from './assertClientEntryId.js';
4
4
  import { isVirtualFileIdPageConfigValuesAll } from '../../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
5
- function getManifestEntry(id, clientManifest, manifestKeyMap) {
5
+ import { prependEntriesDir } from '../../../shared/prependEntriesDir.js';
6
+ function getManifestEntry(id, clientManifest) {
6
7
  assertClientEntryId(id);
7
8
  const debugInfo = getDebugInfo(id, clientManifest);
8
9
  // Vike client entry
@@ -40,13 +41,11 @@ function getManifestEntry(id, clientManifest, manifestKeyMap) {
40
41
  assert(manifestEntry, debugInfo);
41
42
  return { manifestEntry, manifestKey };
42
43
  }
43
- // extensions[number].pageConfigsDistFiles
44
+ // npm package import
44
45
  if (isNpmPackageImport(id)) {
45
- const manifestKey = manifestKeyMap[id];
46
- const debugInfo2 = { ...debugInfo, manifestKey };
47
- assert(manifestKey, debugInfo2);
48
- const manifestEntry = clientManifest[manifestKey];
49
- assert(manifestEntry, debugInfo2);
46
+ const found = Object.entries(clientManifest).find(([, e]) => e.name === prependEntriesDir(id));
47
+ assert(found);
48
+ const [manifestKey, manifestEntry] = found;
50
49
  return { manifestEntry, manifestKey };
51
50
  }
52
51
  // extensions[number].pageConfigsSrcDir
@@ -1,4 +1,4 @@
1
1
  export { retrieveAssetsProd };
2
2
  import type { ViteManifest } from '../../../shared/ViteManifest.js';
3
3
  import type { ClientDependency } from '../../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
4
- declare function retrieveAssetsProd(clientDependencies: ClientDependency[], clientManifest: ViteManifest, includeAssetsImportedByServer: boolean, manifestKeyMap: Record<string, string>): string[];
4
+ declare function retrieveAssetsProd(clientDependencies: ClientDependency[], clientManifest: ViteManifest, includeAssetsImportedByServer: boolean): string[];
@@ -2,7 +2,7 @@ export { retrieveAssetsProd };
2
2
  import { assert, isNpmPackageImport } from '../../utils.js';
3
3
  import { getManifestEntry } from './getManifestEntry.js';
4
4
  import { extractAssetsAddQuery } from '../../../shared/extractAssetsQuery.js';
5
- function retrieveAssetsProd(clientDependencies, clientManifest, includeAssetsImportedByServer, manifestKeyMap) {
5
+ function retrieveAssetsProd(clientDependencies, clientManifest, includeAssetsImportedByServer) {
6
6
  let assetUrls = new Set();
7
7
  assert(clientManifest);
8
8
  const visistedAssets = new Set();
@@ -19,7 +19,7 @@ function retrieveAssetsProd(clientDependencies, clientManifest, includeAssetsImp
19
19
  id = extractAssetsAddQuery(id);
20
20
  }
21
21
  }
22
- const { manifestKey } = getManifestEntry(id, clientManifest, manifestKeyMap);
22
+ const { manifestKey } = getManifestEntry(id, clientManifest);
23
23
  collectAssets(manifestKey, assetUrls, visistedAssets, clientManifest, onlyAssets);
24
24
  });
25
25
  collectSingleStyle(assetUrls, clientManifest);
@@ -1,5 +1,5 @@
1
1
  export { getPageAssets };
2
- import { assert, prependBase, assertPosixPath, toPosixPath, isNpmPackageImport, unique, isNotNullish, pathJoin } from '../utils.js';
2
+ import { assert, prependBase, assertPosixPath, toPosixPath, isNpmPackageImport, unique, pathJoin } from '../utils.js';
3
3
  import { retrieveAssetsDev } from './getPageAssets/retrieveAssetsDev.js';
4
4
  import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
5
5
  import { inferMediaType } from './inferMediaType.js';
@@ -14,15 +14,14 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
14
  let assetUrls;
15
15
  let clientEntriesSrc;
16
16
  if (isDev) {
17
- const { viteDevServer, configVike } = globalContext;
18
- clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => resolveClientEntriesDev(clientEntry, viteDevServer, configVike)));
17
+ const { viteDevServer } = globalContext;
18
+ clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => resolveClientEntriesDev(clientEntry, viteDevServer)));
19
19
  assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
20
20
  }
21
21
  else {
22
- const { pluginManifest, clientManifest } = globalContext;
23
- const manifestKeyMap = pluginManifest.manifestKeyMap;
24
- clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, clientManifest, manifestKeyMap));
25
- assetUrls = retrieveAssetsProd(clientDependencies, clientManifest, pageContext._includeAssetsImportedByServer, manifestKeyMap);
22
+ const { clientManifest } = globalContext;
23
+ clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, clientManifest));
24
+ assetUrls = retrieveAssetsProd(clientDependencies, clientManifest, pageContext._includeAssetsImportedByServer);
26
25
  }
27
26
  let pageAssets = [];
28
27
  unique([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
@@ -56,7 +55,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
56
55
  sortPageAssetsForEarlyHintsHeader(pageAssets);
57
56
  return pageAssets;
58
57
  }
59
- async function resolveClientEntriesDev(clientEntry, viteDevServer, configVike) {
58
+ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
60
59
  assertClientEntryId(clientEntry);
61
60
  let root = viteDevServer.config.root;
62
61
  assert(root);
@@ -77,7 +76,7 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer, configVike) {
77
76
  // User files
78
77
  filePath = pathJoin(root, clientEntry);
79
78
  }
80
- else if (clientEntry.startsWith('@@vike/')) {
79
+ else if (clientEntry.startsWith('@@vike/') || isNpmPackageImport(clientEntry)) {
81
80
  // Vike client entry
82
81
  const { createRequire } = (await import_('module')).default;
83
82
  const { dirname } = (await import_('path')).default;
@@ -89,27 +88,23 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer, configVike) {
89
88
  // @ts-expect-error
90
89
  // Bun workaround https://github.com/vikejs/vike/pull/1048
91
90
  const res = typeof Bun !== 'undefined' ? (toPath) => Bun.resolveSync(toPath, __dirname_) : require_.resolve;
92
- assert(clientEntry.endsWith('.js'));
93
- try {
94
- // For Vitest (which doesn't resolve vike to its dist but to its source files)
95
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/runtime/renderPage/getPageAssets.js
96
- filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts')));
91
+ if (isNpmPackageImport(clientEntry)) {
92
+ filePath = res(clientEntry);
97
93
  }
98
- catch {
99
- // For users
100
- // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/runtime/renderPage/getPageAssets.js
101
- filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
94
+ else {
95
+ assert(clientEntry.endsWith('.js'));
96
+ try {
97
+ // For Vitest (which doesn't resolve vike to its dist but to its source files)
98
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/node/runtime/renderPage/getPageAssets.js
99
+ filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../client/').replace('.js', '.ts')));
100
+ }
101
+ catch {
102
+ // For users
103
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/vike/dist/esm/node/runtime/renderPage/getPageAssets.js
104
+ filePath = toPosixPath(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
105
+ }
102
106
  }
103
107
  }
104
- else if (isNpmPackageImport(clientEntry)) {
105
- const extensionPageFile = configVike.extensions
106
- .map(({ pageConfigsDistFiles }) => pageConfigsDistFiles)
107
- .flat()
108
- .filter(isNotNullish)
109
- .find((e) => e.importPath === clientEntry);
110
- assert(extensionPageFile, clientEntry);
111
- filePath = extensionPageFile.filePath;
112
- }
113
108
  else {
114
109
  assert(false);
115
110
  }
@@ -121,8 +116,8 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer, configVike) {
121
116
  assertPosixPath(filePath);
122
117
  return filePath;
123
118
  }
124
- function resolveClientEntriesProd(clientEntry, clientManifest, manifestKeyMap) {
125
- const { manifestEntry } = getManifestEntry(clientEntry, clientManifest, manifestKeyMap);
119
+ function resolveClientEntriesProd(clientEntry, clientManifest) {
120
+ const { manifestEntry } = getManifestEntry(clientEntry, clientManifest);
126
121
  assert(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
127
122
  let { file } = manifestEntry;
128
123
  assert(!file.startsWith('/'));
@@ -6,7 +6,7 @@ export { getRenderContext };
6
6
  import { getErrorPageId } from '../../../shared/error-page.js';
7
7
  import { getHtmlString } from '../html/renderHtml.js';
8
8
  import { getPageFilesAll } from '../../../shared/getPageFiles.js';
9
- import { assert, assertUsage, assertWarning, hasProp, isNotNullish, objectAssign, unique } from '../utils.js';
9
+ import { assert, assertUsage, hasProp, objectAssign } from '../utils.js';
10
10
  import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
11
11
  import { addUrlComputedProps } from '../../../shared/addUrlComputedProps.js';
12
12
  import { getGlobalContext } from '../globalContext.js';
@@ -20,8 +20,8 @@ import { preparePageContextForUserConsumptionServerSide } from './preparePageCon
20
20
  import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
21
21
  import { loadPageRoutes } from '../../../shared/route/loadPageRoutes.js';
22
22
  import pc from '@brillout/picocolors';
23
- import { getConfigValueFilePathToShowToUser } from '../../../shared/page-configs/helpers.js';
24
23
  import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
24
+ import { assertV1Design } from '../../shared/assertV1Design.js';
25
25
  async function renderPageAlreadyRouted(pageContext) {
26
26
  // pageContext._pageId can either be the:
27
27
  // - ID of the page matching the routing, or the
@@ -151,7 +151,7 @@ async function getRenderContext() {
151
151
  const globalContext = getGlobalContext();
152
152
  const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } = await getPageFilesAll(false, globalContext.isProduction);
153
153
  const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(pageFilesAll, pageConfigs, pageConfigGlobal, allPageIds);
154
- assertV1Design(pageFilesAll, pageConfigs);
154
+ assertV1Design(pageFilesAll.length > 0, pageConfigs, pageFilesAll);
155
155
  const renderContext = {
156
156
  pageFilesAll: pageFilesAll,
157
157
  pageConfigs,
@@ -162,24 +162,3 @@ async function getRenderContext() {
162
162
  };
163
163
  return renderContext;
164
164
  }
165
- function assertV1Design(pageFilesAll, pageConfigs) {
166
- const isV1Design = pageConfigs.length !== 0;
167
- const isDesignOld = pageFilesAll.length !== 0;
168
- if (isV1Design && isDesignOld) {
169
- const indent = '- ';
170
- const v1Files = unique(pageConfigs
171
- .map((p) => Object.values(p.configValues)
172
- .map(getConfigValueFilePathToShowToUser)
173
- .filter(isNotNullish)
174
- .map((filePathToShowToUser) => indent + filePathToShowToUser))
175
- .flat(2));
176
- assertUsage(false, [
177
- 'Mixing the new V1 design with the old V0.4 design is forbidden.',
178
- 'V1 files:',
179
- ...v1Files,
180
- 'V0.4 files:',
181
- ...pageFilesAll.map((p) => indent + p.filePath)
182
- ].join('\n'));
183
- }
184
- assertWarning(!isDesignOld, "You are using Vike's deprecated design. Update to the new V1 design, see https://vike.dev/migration/v1-design for how to migrate.", { onlyOnce: true });
185
- }
@@ -30,7 +30,6 @@ export * from '../../utils/debug.js';
30
30
  export * from '../../utils/urlToFile.js';
31
31
  export * from '../../utils/getGlobalObject.js';
32
32
  export * from '../../shared/hooks/executeHook.js';
33
- export * from '../../utils/isStemPackageName.js';
34
33
  export * from '../../utils/freezePartial.js';
35
34
  export * from '../../utils/isNpmPackage.js';
36
35
  export * from '../../utils/isNotNullish.js';
@@ -42,7 +41,7 @@ export * from '../../utils/getFileExtension.js';
42
41
  export * from '../../utils/assertIsNotProductionRuntime.js';
43
42
  export * from '../../utils/virtual-files.js';
44
43
  export * from '../../utils/path-shim.js';
45
- export * from '../../utils/nodeEnv.js';
44
+ export * from '../../utils/assertNodeEnv.js';
46
45
  export * from '../../utils/isHtml.js';
47
46
  export * from '../../utils/warnIfErrorIsNotObject.js';
48
47
  export * from '../../utils/stripAnsi.js';
@@ -33,7 +33,6 @@ export * from '../../utils/debug.js';
33
33
  export * from '../../utils/urlToFile.js';
34
34
  export * from '../../utils/getGlobalObject.js';
35
35
  export * from '../../shared/hooks/executeHook.js';
36
- export * from '../../utils/isStemPackageName.js';
37
36
  export * from '../../utils/freezePartial.js';
38
37
  export * from '../../utils/isNpmPackage.js';
39
38
  export * from '../../utils/isNotNullish.js';
@@ -45,7 +44,7 @@ export * from '../../utils/getFileExtension.js';
45
44
  export * from '../../utils/assertIsNotProductionRuntime.js';
46
45
  export * from '../../utils/virtual-files.js';
47
46
  export * from '../../utils/path-shim.js';
48
- export * from '../../utils/nodeEnv.js';
47
+ export * from '../../utils/assertNodeEnv.js';
49
48
  export * from '../../utils/isHtml.js';
50
49
  export * from '../../utils/warnIfErrorIsNotObject.js';
51
50
  export * from '../../utils/stripAnsi.js';
@@ -6,6 +6,7 @@ type ViteManifestEntry = {
6
6
  css?: string[];
7
7
  assets?: string[];
8
8
  isEntry?: boolean;
9
+ name?: string;
9
10
  isDynamicEntry?: boolean;
10
11
  imports?: string[];
11
12
  dynamicImports?: string[];
@@ -6,7 +6,6 @@ type PluginManifest = {
6
6
  baseAssets: string | null;
7
7
  usesClientRouter: boolean;
8
8
  includeAssetsImportedByServer: boolean;
9
- manifestKeyMap: Record<string, string>;
10
9
  redirects: Record<string, string>;
11
10
  trailingSlash: boolean;
12
11
  disableUrlNormalization: boolean;
@@ -1,21 +1,18 @@
1
1
  export { assertPluginManifest };
2
2
  import { assertRuntimeManifest } from './assertRuntimeManifest.js';
3
- import { assert, assertUsage, isPlainObject, projectInfo, checkType, hasProp, isStringRecord, objectAssign } from './utils.js';
3
+ import { assert, assertUsage, isPlainObject, projectInfo, checkType, hasProp } from './utils.js';
4
4
  function assertPluginManifest(pluginManifest) {
5
5
  assert(isPlainObject(pluginManifest));
6
6
  assertUsage(pluginManifest.version === projectInfo.projectVersion, `Re-build your app (you're using vike@${projectInfo.projectVersion} but your app was built with vike@${pluginManifest.version})`);
7
7
  assertRuntimeManifest(pluginManifest);
8
8
  assert(hasProp(pluginManifest, 'usesClientRouter', 'boolean'));
9
9
  assert(hasProp(pluginManifest, 'version', 'string'));
10
- assert(hasProp(pluginManifest, 'manifestKeyMap', 'object'));
11
- const { manifestKeyMap } = pluginManifest;
12
- assert(isStringRecord(manifestKeyMap));
13
10
  // Avoid:
14
11
  // ```
15
12
  // Uncaught (in promise) TypeError: Cannot set property manifestKeyMap of #<Object> which has only a getter
16
13
  // ```
14
+ // We removed manifestKeyMap, maybe this isn't needed anymore.
17
15
  // See https://github.com/vikejs/vike/issues/596
18
16
  const pluginManifestClone = { ...pluginManifest };
19
- objectAssign(pluginManifestClone, { manifestKeyMap });
20
17
  checkType(pluginManifestClone);
21
18
  }
@@ -0,0 +1,4 @@
1
+ export { assertV1Design };
2
+ import { PageFile } from '../../shared/getPageFiles.js';
3
+ import type { PageConfigBuildTime, PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
4
+ declare function assertV1Design(isOldDesign: boolean, pageConfigs: (PageConfigRuntime | PageConfigBuildTime)[], pageFilesAll?: PageFile[]): void;
@@ -0,0 +1,23 @@
1
+ export { assertV1Design };
2
+ import { getConfigValueFilePathToShowToUser } from '../../shared/page-configs/helpers.js';
3
+ import { assert, assertUsage, assertWarning, isNotNullish, unique } from './utils.js';
4
+ function assertV1Design(isOldDesign, pageConfigs, pageFilesAll) {
5
+ const isV1Design = pageConfigs.length > 0;
6
+ if (isV1Design && isOldDesign) {
7
+ const lines = ['Mixing the new V1 design with the old V0.4 design is forbidden.'];
8
+ if (pageFilesAll) {
9
+ assert(pageFilesAll.length > 0);
10
+ const indent = '- ';
11
+ const filesV1 = unique(pageConfigs
12
+ .map((p) => Object.values(p.configValues)
13
+ .map(getConfigValueFilePathToShowToUser)
14
+ .filter(isNotNullish)
15
+ .map((filePathToShowToUser) => indent + filePathToShowToUser))
16
+ .flat(2));
17
+ const filesOld = pageFilesAll.map((p) => indent + p.filePath);
18
+ lines.push(...['V1 design files:', ...filesV1, 'Old design files:', ...filesOld]);
19
+ }
20
+ assertUsage(false, lines.join('\n'));
21
+ }
22
+ assertWarning(!isOldDesign, "You are using Vike's deprecated design. Update to the new V1 design, see https://vike.dev/migration/v1-design for how to migrate.", { onlyOnce: true });
23
+ }
@@ -0,0 +1,3 @@
1
+ export { getClientEntry };
2
+ import type { PageConfigRuntime, PageConfigBuildTime } from '../../shared/page-configs/PageConfig.js';
3
+ declare function getClientEntry(pageConfig: PageConfigRuntime | PageConfigBuildTime): null | string;
@@ -1,6 +1,6 @@
1
- export { getClientEntryFilePath };
1
+ export { getClientEntry };
2
2
  import { getConfigValue } from '../../shared/page-configs/helpers.js';
3
- function getClientEntryFilePath(pageConfig) {
3
+ function getClientEntry(pageConfig) {
4
4
  const configName = 'client';
5
5
  const configValue = getConfigValue(pageConfig, configName, 'string');
6
6
  if (!configValue)
@@ -0,0 +1,2 @@
1
+ export { prependEntriesDir };
2
+ declare function prependEntriesDir(entryName: string): string;
@@ -0,0 +1,10 @@
1
+ export { prependEntriesDir };
2
+ import { assert } from './utils.js';
3
+ function prependEntriesDir(entryName) {
4
+ if (entryName.startsWith('/')) {
5
+ entryName = entryName.slice(1);
6
+ }
7
+ assert(!entryName.startsWith('/'));
8
+ entryName = `entries/${entryName}`;
9
+ return entryName;
10
+ }
@@ -13,3 +13,5 @@ export * from '../../utils/parseUrl-extras.js';
13
13
  export * from '../../utils/isObject.js';
14
14
  export * from '../../utils/virtual-files.js';
15
15
  export * from '../../utils/assertIsNotBrowser.js';
16
+ export * from '../../utils/isNotNullish.js';
17
+ export * from '../../utils/unique.js';
@@ -15,3 +15,5 @@ export * from '../../utils/parseUrl-extras.js';
15
15
  export * from '../../utils/isObject.js';
16
16
  export * from '../../utils/virtual-files.js';
17
17
  export * from '../../utils/assertIsNotBrowser.js';
18
+ export * from '../../utils/isNotNullish.js';
19
+ export * from '../../utils/unique.js';
@@ -13,6 +13,7 @@ function isVirtualFileIdImportUserCode(id) {
13
13
  return false;
14
14
  assert(
15
15
  // prettier-ignore
16
+ // biome-ignore format:
16
17
  [
17
18
  virtualFileIdImportUserCodeServer,
18
19
  virtualFileIdImportUserCodeClientCR,
@@ -1,26 +1,5 @@
1
1
  export type { ConfigVikeUserProvided };
2
2
  export type { ConfigVikeResolved };
3
- export type { ExtensionResolved };
4
- type ExtensionUserProvided = {
5
- npmPackageName: string;
6
- pageConfigsDistFiles?: string[];
7
- pageConfigsSrcDir?: string;
8
- assetsDir?: string;
9
- /** @deprecated */
10
- pageFilesDist?: string[];
11
- /** @deprecated */
12
- pageFilesSrc?: string;
13
- };
14
- type ExtensionResolved = {
15
- npmPackageName: string;
16
- npmPackageRootDir: string;
17
- pageConfigsDistFiles: null | {
18
- importPath: string;
19
- filePath: string;
20
- }[];
21
- pageConfigsSrcDir: null | string;
22
- assetsDir: null | string;
23
- };
24
3
  type ConfigVikeResolved = {
25
4
  prerender: false | {
26
5
  noExtraDir: boolean;
@@ -28,7 +7,6 @@ type ConfigVikeResolved = {
28
7
  partial: boolean;
29
8
  disableAutoRun: boolean;
30
9
  };
31
- extensions: ExtensionResolved[];
32
10
  disableAutoFullBuild: boolean | null;
33
11
  includeAssetsImportedByServer: boolean;
34
12
  baseAssets: string;
@@ -81,11 +59,6 @@ type ConfigVikeUserProvided = {
81
59
  */
82
60
  disableAutoRun?: boolean;
83
61
  };
84
- /**
85
- * @beta
86
- * Don't use without having talked to a vike maintainer.
87
- */
88
- extensions?: ExtensionUserProvided[];
89
62
  /**
90
63
  * Set to `true` to disable the automatic chaining of all the build steps.
91
64
  *
@@ -4,7 +4,7 @@ export { getHookFromPageConfigGlobal };
4
4
  export { assertHook };
5
5
  export { setIsPrerenderering };
6
6
  // TODO/v1-release: remove
7
- // We export for old V0.4 design which doesn't support config.hooksTimeout
7
+ // We export for old V0.4 design which doesn't support configooksTimeout
8
8
  export { getHookTimeoutDefault };
9
9
  import { getGlobalObject } from '../../utils/getGlobalObject.js';
10
10
  import { getConfigValue, getHookFilePathToShowToUser } from '../page-configs/helpers.js';
@@ -56,7 +56,7 @@ function getHookFromPageConfigGlobal(pageConfigGlobal, hookName) {
56
56
  // hook isn't a computed nor a cumulative config => definedAt should always be defined
57
57
  assert(hookFilePath);
58
58
  assertHookFn(hookFn, { hookName, hookFilePath });
59
- // We could use the global value of config.hooksTimeout but it requires some non-trivial refactoring
59
+ // We could use the global value of configooksTimeout but it requires some non-trivial refactoring
60
60
  const hookTimeout = getHookTimeoutDefault(hookName);
61
61
  return { hookFn, hookName, hookFilePath, hookTimeout };
62
62
  }
@@ -347,6 +347,11 @@ type ConfigBuiltIn = {
347
347
  * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control
348
348
  */
349
349
  cacheControl?: string;
350
+ /** Used by Vike extensions to set their name.
351
+ *
352
+ * https://vike.dev/extends
353
+ */
354
+ name?: string;
350
355
  };
351
356
  type ConfigMeta = Record<string, ConfigDefinition>;
352
357
  type ImportString = `import:${string}`;