vike 0.4.234 → 0.4.235-commit-7b1ab35

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 (172) hide show
  1. package/dist/cjs/__internal/index.js +1 -1
  2. package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -1
  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 +8 -6
  13. package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  14. package/dist/cjs/node/runtime/html/serializeContext.js +1 -1
  15. package/dist/cjs/node/runtime/index-deprecated.js +1 -1
  16. package/dist/cjs/node/runtime/index.js +1 -1
  17. package/dist/cjs/node/runtime/page-files/setup.js +1 -1
  18. package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
  19. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  20. package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +1 -1
  21. package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  22. package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  23. package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  24. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  25. package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +11 -14
  26. package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  27. package/dist/cjs/node/runtime/renderPage.js +3 -3
  28. package/dist/cjs/node/vite/onLoad.js +1 -1
  29. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
  30. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  31. package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  32. package/dist/cjs/node/vite/plugins/pluginCommon.js +8 -4
  33. package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
  34. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +1 -1
  35. package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
  36. package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +31 -26
  37. package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
  38. package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
  39. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +1 -1
  40. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  41. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  42. package/dist/cjs/shared/RenderErrorPage.js +1 -1
  43. package/dist/cjs/shared/abort.js +1 -1
  44. package/dist/cjs/shared/createPageContextShared.js +1 -2
  45. package/dist/cjs/shared/determinePageIdOld.js +1 -1
  46. package/dist/cjs/shared/error-page.js +3 -3
  47. package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
  48. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
  49. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  50. package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  51. package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
  52. package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
  53. package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
  54. package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  55. package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
  56. package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  57. package/dist/cjs/shared/getProxyForPublicUsage.js +1 -1
  58. package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
  59. package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
  60. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  61. package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
  62. package/dist/cjs/shared/route/abort.js +1 -1
  63. package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  64. package/dist/cjs/shared/route/execHookGuard.js +1 -1
  65. package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
  66. package/dist/cjs/shared/route/index.js +1 -1
  67. package/dist/cjs/shared/route/loadPageRoutes.js +4 -4
  68. package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
  69. package/dist/cjs/shared/route/resolveRouteString.js +1 -1
  70. package/dist/cjs/shared/route/routing.js +1 -1
  71. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  72. package/dist/cjs/utils/assertSetup.js +3 -3
  73. package/dist/cjs/utils/debugGlob.js +1 -1
  74. package/dist/esm/__internal/index.d.ts +1 -1
  75. package/dist/esm/__internal/index.js +1 -1
  76. package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
  77. package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
  78. package/dist/esm/client/runtime-client-routing/history.d.ts +2 -4
  79. package/dist/esm/client/runtime-client-routing/history.js +35 -13
  80. package/dist/esm/client/runtime-client-routing/index.js +1 -1
  81. package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
  82. package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
  83. package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
  84. package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
  85. package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
  86. package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
  87. package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
  88. package/dist/esm/client/runtime-server-routing/index.js +1 -1
  89. package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +3 -2
  90. package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -1
  91. package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
  92. package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
  93. package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
  94. package/dist/esm/node/api/prepareViteApiCall.js +1 -1
  95. package/dist/esm/node/cli/index.js +1 -1
  96. package/dist/esm/node/createPageRenderer.js +1 -1
  97. package/dist/esm/node/importBuild.js +1 -1
  98. package/dist/esm/node/prerender/context.js +1 -1
  99. package/dist/esm/node/prerender/index.js +1 -1
  100. package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
  101. package/dist/esm/node/prerender/runPrerender.js +9 -13
  102. package/dist/esm/node/runtime/globalContext.d.ts +0 -2
  103. package/dist/esm/node/runtime/globalContext.js +8 -6
  104. package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
  105. package/dist/esm/node/runtime/html/serializeContext.js +1 -1
  106. package/dist/esm/node/runtime/index-deprecated.js +1 -1
  107. package/dist/esm/node/runtime/index.js +1 -1
  108. package/dist/esm/node/runtime/page-files/setup.js +1 -1
  109. package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
  110. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  111. package/dist/esm/node/runtime/renderPage/createHttpResponse.js +1 -1
  112. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +2 -2
  113. package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
  114. package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
  115. package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
  116. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
  117. package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +12 -15
  118. package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
  119. package/dist/esm/node/runtime/renderPage.d.ts +3 -3
  120. package/dist/esm/node/runtime/renderPage.js +3 -3
  121. package/dist/esm/node/vite/index.js +1 -1
  122. package/dist/esm/node/vite/onLoad.js +1 -1
  123. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +1 -1
  124. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  125. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
  126. package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
  127. package/dist/esm/node/vite/plugins/pluginCommon.js +8 -4
  128. package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
  129. package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
  130. package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
  131. package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +31 -26
  132. package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
  133. package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
  134. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +1 -1
  135. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
  136. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
  137. package/dist/esm/shared/RenderErrorPage.js +1 -1
  138. package/dist/esm/shared/abort.js +1 -1
  139. package/dist/esm/shared/createPageContextShared.d.ts +2 -3
  140. package/dist/esm/shared/createPageContextShared.js +1 -2
  141. package/dist/esm/shared/determinePageIdOld.js +1 -1
  142. package/dist/esm/shared/error-page.js +3 -3
  143. package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
  144. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  145. package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
  146. package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
  147. package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
  148. package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
  149. package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
  150. package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
  151. package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
  152. package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
  153. package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
  154. package/dist/esm/shared/hooks/getHook.js +1 -1
  155. package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
  156. package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
  157. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
  158. package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
  159. package/dist/esm/shared/route/abort.js +1 -1
  160. package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
  161. package/dist/esm/shared/route/execHookGuard.js +1 -1
  162. package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
  163. package/dist/esm/shared/route/index.js +1 -1
  164. package/dist/esm/shared/route/loadPageRoutes.js +4 -4
  165. package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
  166. package/dist/esm/shared/route/resolveRouteString.js +1 -1
  167. package/dist/esm/shared/route/routing.js +1 -1
  168. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  169. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  170. package/dist/esm/utils/assertSetup.js +3 -3
  171. package/dist/esm/utils/debugGlob.js +1 -1
  172. package/package.json +1 -4
@@ -25,13 +25,13 @@ function pluginCommon(vikeVitePluginOptions) {
25
25
  ? normalizeViteRoot(configFromUser.root)
26
26
  : await getViteRoot(operation);
27
27
  assert(rootResolvedEarly);
28
- // TODO/v1-release: we can remove setVikeConfigContext() call here since with Vike's CLI it's already called at vike/node/api/prepareViteApiCall.ts
28
+ // TO-DO/next-major-release: we can remove setVikeConfigContext() call here since with Vike's CLI it's already called at vike/node/api/prepareViteApiCall.ts
29
29
  setVikeConfigContext({ userRootDir: rootResolvedEarly, isDev, vikeVitePluginOptions });
30
30
  const vikeConfig = await getVikeConfigInternal();
31
31
  return {
32
32
  _isDev: isDev,
33
33
  _rootResolvedEarly: rootResolvedEarly,
34
- // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
34
+ // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
35
35
  configVikePromise: Promise.resolve({
36
36
  prerender: vikeConfig.prerenderContext.isPrerenderingEnabled,
37
37
  }),
@@ -53,7 +53,11 @@ function pluginCommon(vikeVitePluginOptions) {
53
53
  configResolved: {
54
54
  order: 'post',
55
55
  async handler(config) {
56
- /* TODO: do this after implementing vike.config.js and new setting transformLinkedDependencies (or probably a better name like transpileLinkedDependencies/bundleLinkedDependencies or something else)
56
+ /* Also externalize linked dependencies by default?
57
+ * - Can this be done while the user sets ssr.external to `string[]`? I guess not?
58
+ * - If not then it's a problem: it makes the default inconsistent.
59
+ * - https://vite.dev/config/ssr-options.html#ssr-external
60
+ * - New setting +transpileLinkedDependencies ?
57
61
  overrideViteDefaultSsrExternal(config)
58
62
  //*/
59
63
  workaroundCI(config);
@@ -157,7 +161,7 @@ function assertVikeCliOrApi(config) {
157
161
  onlyOnce: true,
158
162
  });
159
163
  }
160
- // TODO/v1-release: remove https://github.com/vikejs/vike/issues/2122
164
+ // TO-DO/next-major-release: remove https://github.com/vikejs/vike/issues/2122
161
165
  function temp_supportOldInterface(config) {
162
166
  if (!('vitePluginSsr' in config))
163
167
  return;
@@ -20,7 +20,7 @@ function pluginDev() {
20
20
  config() {
21
21
  return {
22
22
  appType: 'custom',
23
- // TODO:v1-release: remove (AFAICT we only need to use config.optimizeDeps for the old design)
23
+ // TO-DO/next-major-release: remove (AFAICT we only need to use config.optimizeDeps for the old design)
24
24
  optimizeDeps: {
25
25
  exclude: [
26
26
  // We exclude Vike's client runtime to be able to use Vite's import.meta.glob()
@@ -6,7 +6,7 @@ import { getModuleFilePathAbsolute } from '../shared/getFilePath.js';
6
6
  import { normalizeId } from '../shared/normalizeId.js';
7
7
  import { isViteServerBuild_safe } from '../shared/isViteServerBuild.js';
8
8
  import { applyRegExpWithMagicString } from '../shared/applyRegExWithMagicString.js';
9
- // TODO/enventually:
9
+ // TO-DO/eventually:
10
10
  // - Make import.meta.env work inside +config.js
11
11
  // - For it to work, we'll probably need the user to define the settings (e.g. `envDir`) for loadEnv() inside vike.config.js instead of vite.config.js
12
12
  // - Or stop using Vite's `mode` implementation and have Vike implement its own `mode` feature? (So that the only dependencies are `$ vike build --mode staging` and `$ MODE=staging vike build`.)
@@ -119,7 +119,7 @@ function pluginFileEnv() {
119
119
  return modulePath.includes(suffixWrong);
120
120
  }
121
121
  function skip(id) {
122
- // TODO/v1-release: remove
122
+ // TO-DO/next-major-release: remove
123
123
  if (extractAssetsRE.test(id) || extractExportNamesRE.test(id))
124
124
  return true;
125
125
  if (!id.includes(getSuffix('client')) && !id.includes(getSuffix('server')))
@@ -20,7 +20,7 @@ function pluginVirtualFiles() {
20
20
  name: 'vike:pluginVirtualFiles',
21
21
  async configResolved(config_) {
22
22
  config = config_;
23
- // TODO/v1-release: remove
23
+ // TO-DO/next-major-release: remove
24
24
  if (!isV1Design())
25
25
  config.experimental.importGlobRestoreExtension = true;
26
26
  },
@@ -68,28 +68,33 @@ function handleFileAddRemove(server, config) {
68
68
  if (isTemporaryBuildFile(file))
69
69
  return;
70
70
  const { moduleGraph } = server;
71
- const isVikeConfig = await isVikeConfigDependency(file, moduleGraph);
71
+ const isVikeConfigDep = await isVikeConfigDependency(file, moduleGraph);
72
72
  const reload = () => reloadConfig(file, config, isRemove ? 'removed' : 'created', server);
73
- if (isVikeConfig) {
74
- if (isVikeConfig.isNotProcessedByVite) {
75
- reload();
76
- }
77
- else {
78
- // Let Vite handle it
79
- assert(existsInViteModuleGraph(file, moduleGraph));
80
- }
73
+ // Config code
74
+ if (isVikeConfigDep && !isVikeConfigDep.isProcessedByVite) {
75
+ reload();
76
+ return;
81
77
  }
82
- else {
83
- // Trick: when importing a file that doesn't exist => we don't know whether `file` is that missing file => we take a leap of faith when the conditions below are met.
84
- // - Not sure how reliable that trick is.
85
- // - Reloading Vike's config is cheap and file creation/removal is rare => the trick is worth it.
86
- // - Reproduction:
87
- // ```bash
88
- // rm someDep.js && sleep 2 && git checkout someDep.js
89
- // ```
90
- if (isScriptFile(file) && getVikeConfigError() && !existsInViteModuleGraph(file, moduleGraph)) {
91
- reload();
92
- }
78
+ // New or deleted + file
79
+ if (isPlusFile(file)) {
80
+ reload();
81
+ return;
82
+ }
83
+ // Runtime code => let Vite handle it
84
+ if (isVikeConfigDep && isVikeConfigDep.isProcessedByVite) {
85
+ assert(existsInViteModuleGraph(file, moduleGraph));
86
+ return;
87
+ }
88
+ // Trick: when importing a file that doesn't exist => we don't know whether `file` is that missing file => we take a leap of faith when the conditions below are met.
89
+ // - Not sure how reliable that trick is.
90
+ // - Reloading Vike's config is cheap and file creation/removal is rare => the trick is worth it.
91
+ // - Reproduction:
92
+ // ```bash
93
+ // rm someDep.js && sleep 2 && git checkout someDep.js
94
+ // ```
95
+ if (isScriptFile(file) && getVikeConfigError() && !existsInViteModuleGraph(file, moduleGraph)) {
96
+ reload();
97
+ return;
93
98
  }
94
99
  }
95
100
  }
@@ -102,9 +107,9 @@ function invalidateVikeVirtualFiles(server) {
102
107
  // Vite calls its hook handleHotUpdate() whenever *any file* is modified — including files that aren't in Vite's module graph such as `pages/+config.js`
103
108
  async function handleHotUpdate(ctx, config) {
104
109
  const { file, server } = ctx;
105
- const isVikeConfig = await isVikeConfigDependency(ctx.file, ctx.server.moduleGraph);
106
- if (isVikeConfig) {
107
- if (isVikeConfig.isNotProcessedByVite) {
110
+ const isVikeConfigDep = await isVikeConfigDependency(ctx.file, ctx.server.moduleGraph);
111
+ if (isVikeConfigDep) {
112
+ if (!isVikeConfigDep.isProcessedByVite) {
108
113
  /* Tailwind breaks this assertion, see https://github.com/vikejs/vike/discussions/1330#discussioncomment-7787238
109
114
  const isViteModule = ctx.modules.length > 0
110
115
  assert(!isViteModule)
@@ -134,7 +139,7 @@ async function isVikeConfigDependency(filePathAbsoluteFilesystem, moduleGraph) {
134
139
  const { _vikeConfigDependencies: vikeConfigDependencies } = vikeConfigObject;
135
140
  vikeConfigDependencies.forEach((f) => assertPosixPath(f));
136
141
  if (vikeConfigDependencies.has(filePathAbsoluteFilesystem))
137
- return { isNotProcessedByVite: true };
142
+ return { isProcessedByVite: false };
138
143
  }
139
144
  // Runtime Vike config files such as +data.js which are processed by Vite.
140
145
  // - They're included in Vite's module graph.
@@ -143,7 +148,7 @@ async function isVikeConfigDependency(filePathAbsoluteFilesystem, moduleGraph) {
143
148
  const importers = getImporters(filePathAbsoluteFilesystem, moduleGraph);
144
149
  const isPlusValueFileDependency = Array.from(importers).some((importer) => importer.file && isPlusFile(importer.file));
145
150
  if (isPlusValueFileDependency)
146
- return { isNotProcessedByVite: false };
151
+ return { isProcessedByVite: true };
147
152
  return null;
148
153
  }
149
154
  function reloadConfig(filePath, config, op, server) {
@@ -16,7 +16,7 @@ function addSsrMiddleware(middlewares, config, isPreview, isPrerenderingEnabled)
16
16
  };
17
17
  Object.defineProperty(pageContextInit, 'userAgent', {
18
18
  get() {
19
- // TODO/next-major-release: assertUsage() instead of assertWarning()
19
+ // TO-DO/next-major-release: assertUsage() instead of assertWarning()
20
20
  assertWarning(false, `${pc.cyan('pageContext.userAgent')} is deprecated: use ${pc.cyan("pageContext.headers['user-agent']")} instead.`, {
21
21
  showStackTrace: true,
22
22
  onlyOnce: true,
@@ -1,3 +1,13 @@
1
+ // TO-DO/eventually:
2
+ // - New hook onLog(): https://github.com/vikejs/vike/issues/1438
3
+ // - Exact same logs between prod and dev, only difference is that some log objects have:
4
+ // - `isDevLog: true`
5
+ // - `willBeLogged: false` in production
6
+ // - `showTimestamp: true`
7
+ // - Never clear screen (it's complex with little benefit)
8
+ // - Add shortcut to clear screen
9
+ // - Maybe rotate colors upon no requests within 30s?
10
+ // - Only show a one-liner init log (instead of Vite's multi-line log)
1
11
  // Non-production logger used for:
2
12
  // - Development
3
13
  // - Preview
@@ -85,7 +85,7 @@ const configDefinitionsBuiltIn = {
85
85
  env: { client: true },
86
86
  eager: true,
87
87
  },
88
- // TODO/v1-release: remove
88
+ // TO-DO/next-major-release: remove
89
89
  prefetchStaticAssets: {
90
90
  env: { client: true },
91
91
  },
@@ -347,7 +347,7 @@ function isTemporaryBuildFile(filePath) {
347
347
  const fileName = path.posix.basename(filePath);
348
348
  return /\.build-[a-z0-9]{12}\.mjs$/.test(fileName);
349
349
  }
350
- // TODO/next-major: remove
350
+ // TO-DO/next-major-release: remove
351
351
  function isHeaderFile(filePath) {
352
352
  assertPosixPath(filePath);
353
353
  const fileExtensions = getFileExtensions(filePath);
@@ -41,7 +41,7 @@ let restartVite = false;
41
41
  let vikeConfigHasBuildError = null;
42
42
  let isV1Design_ = null;
43
43
  let vikeConfigPromise = null;
44
- // TODO/v1-release: remove
44
+ // TO-DO/next-major-release: remove
45
45
  let vikeConfigSync = null;
46
46
  let vikeConfigCtx = null; // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
47
47
  let prerenderContext;
@@ -53,14 +53,14 @@ function reloadVikeConfig() {
53
53
  }
54
54
  async function getVikeConfigInternal(
55
55
  // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
56
- // TO-DO: eventually rethink all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
56
+ // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
57
57
  doNotRestartViteOnError = false) {
58
58
  assert(vikeConfigCtx);
59
59
  const { userRootDir, isDev, vikeVitePluginOptions } = vikeConfigCtx;
60
60
  const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
61
61
  return vikeConfig;
62
62
  }
63
- // TODO/v1-release: remove
63
+ // TO-DO/next-major-release: remove
64
64
  function getVikeConfigInternalSync() {
65
65
  assert(vikeConfigSync);
66
66
  return vikeConfigSync;
@@ -484,7 +484,7 @@ function sortConfigValueSources(configValueSources, locationIdPage) {
484
484
  return sortAfterInheritanceOrderPage(source1.plusFile, source2.plusFile, locationIdPage, configName);
485
485
  }
486
486
  })
487
- // TODO/next-major: remove
487
+ // TO-DO/next-major-release: remove
488
488
  // Interop with vike(options) in vite.config.js — make it least precedence.
489
489
  .sort(makeLast((source) => !source.plusFile));
490
490
  });
@@ -780,7 +780,7 @@ function assertMetaUsage(metaVal, metaConfigDefinedAt) {
780
780
  }
781
781
  configEnv = getConfigEnvValue(def.env, `${metaConfigDefinedAt} sets ${pc.cyan(`meta.${configName}.env`)} to`);
782
782
  // Overwrite deprecated value with valid value
783
- // TODO/v1-release: remove once support for the deprecated values is removed
783
+ // TO-DO/next-major-release: remove once support for the deprecated values is removed
784
784
  if (typeof def.env === 'string')
785
785
  def.env = configEnv;
786
786
  }
@@ -1026,7 +1026,7 @@ function determineIsErrorPage(routeFilesystem) {
1026
1026
  function getConfigEnvValue(val, errMsgIntro) {
1027
1027
  const errInvalidValue = `${errMsgIntro} an invalid value ${pc.cyan(JSON.stringify(val))}`;
1028
1028
  // Legacy outdated values
1029
- // TODO/v1-release: remove
1029
+ // TO-DO/next-major-release: remove
1030
1030
  if (typeof val === 'string') {
1031
1031
  const valConverted = (() => {
1032
1032
  if (val === 'client-only')
@@ -1,2 +1,2 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { RenderErrorPage } from './route/abort.js';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: Move all universal imports (when using Client Routing) to:
1
+ // TO-DO/next-major-release: Move all universal imports (when using Client Routing) to:
2
2
  // import {
3
3
  // redirect,
4
4
  // render,
@@ -1,14 +1,13 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
3
  import type { VikeConfigPublicGlobal } from './page-configs/resolveVikeConfigPublic.js';
4
- import type { PageConfigGlobalRuntime } from '../types/PageConfig.js';
5
4
  import { type PageContextPrepareMinimum } from './preparePageContextForPublicUsage.js';
6
- declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, pageConfigGlobal: PageConfigGlobalRuntime, vikeConfigPublicGlobal: VikeConfigPublicGlobal): Promise<T & {
5
+ declare function createPageContextShared<T extends PageContextPrepareMinimum>(pageContextCreated: T, vikeConfigPublicGlobal: VikeConfigPublicGlobal): T & {
7
6
  config: import("../types/index.js").ConfigResolved;
8
7
  _source: import("./page-configs/resolveVikeConfigPublic.js").Source;
9
8
  _sources: import("./page-configs/resolveVikeConfigPublic.js").Sources;
10
9
  _from: import("./page-configs/resolveVikeConfigPublic.js").From;
11
- }>;
10
+ };
12
11
  declare function createPageContextObject(): {
13
12
  _isOriginalObject: true;
14
13
  isPageContext: true;
@@ -1,8 +1,7 @@
1
1
  export { createPageContextShared };
2
2
  export { createPageContextObject };
3
3
  import { changeEnumerable, objectAssign } from './utils.js';
4
- // TODO/now: make this and parents sync
5
- async function createPageContextShared(pageContextCreated, pageConfigGlobal, vikeConfigPublicGlobal) {
4
+ function createPageContextShared(pageContextCreated, vikeConfigPublicGlobal) {
6
5
  objectAssign(pageContextCreated, vikeConfigPublicGlobal);
7
6
  return pageContextCreated;
8
7
  }
@@ -1,6 +1,6 @@
1
1
  export { determinePageIdOld };
2
2
  import { slice, assert } from './utils.js';
3
- // TODO/v1-release: remove
3
+ // TO-DO/next-major-release: remove
4
4
  function determinePageIdOld(filePath) {
5
5
  const pageSuffix = '.page.';
6
6
  const pageId = slice(filePath.split(pageSuffix), 0, -1).join(pageSuffix);
@@ -1,7 +1,7 @@
1
1
  export { getErrorPageId };
2
2
  export { isErrorPageId };
3
3
  export { isErrorPage };
4
- // TODO/v1-release: consider loading this file only for Client Routing
4
+ // TO-DO/next-major-release: consider loading this file only for Client Routing
5
5
  import { assert, assertUsage, unique } from './utils.js';
6
6
  function getErrorPageId(pageFilesAll, pageConfigs) {
7
7
  if (pageConfigs.length > 0) {
@@ -11,7 +11,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
11
11
  assertUsage(errorPageConfigs.length === 1, 'Only one error page can be defined');
12
12
  return errorPageConfigs[0].pageId;
13
13
  }
14
- // TODO/v1-release: remove
14
+ // TO-DO/next-major-release: remove
15
15
  const errorPageIds = unique(pageFilesAll.map(({ pageId }) => pageId).filter((pageId) => isErrorPageId(pageId, false)));
16
16
  assertUsage(errorPageIds.length <= 1, `Only one _error.page.js is allowed, but found several: ${errorPageIds.join(' ')}`);
17
17
  if (errorPageIds.length > 0) {
@@ -21,7 +21,7 @@ function getErrorPageId(pageFilesAll, pageConfigs) {
21
21
  }
22
22
  return null;
23
23
  }
24
- // TODO/v1-release: remove
24
+ // TO-DO/next-major-release: remove
25
25
  function isErrorPageId(pageId, _isV1Design) {
26
26
  assert(!pageId.includes('\\'));
27
27
  return pageId.includes('/_error');
@@ -38,7 +38,7 @@ function getUrlParsed(pageContext) {
38
38
  // Reproduction: https://github.com/vikejs/vike/discussions/1436#discussioncomment-8142023
39
39
  // Determine logical URL
40
40
  const assertUrlResolved = (src) => assert(typeof urlResolved === 'string',
41
- // TODO/eventually: remove debug logs, see:
41
+ // TO-DO/eventually: remove debug logs, see:
42
42
  // - https://github.com/vikejs/vike/issues/2138#issuecomment-2631713411
43
43
  // - https://github.com/vikejs/vike/commit/5c7810f3080ab62536950f26e019bb2a3a517082
44
44
  { src, urlResolved });
@@ -83,7 +83,7 @@ function urlPathnameGetter() {
83
83
  return urlPathname;
84
84
  }
85
85
  function urlGetter() {
86
- // TODO/v1-release: remove
86
+ // TO-DO/next-major-release: remove
87
87
  assertWarning(false, '`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://vike.dev/migration/0.4.23 for more information.)', { onlyOnce: true, showStackTrace: true });
88
88
  return urlPathnameGetter.call(this);
89
89
  }
@@ -105,7 +105,7 @@ function urlParsedGetter() {
105
105
  warnHashNotAvailable('hashOriginal');
106
106
  return urlParsed.hashOriginal;
107
107
  },
108
- // TODO/next-major-release: remove
108
+ // TO-DO/next-major-release: remove
109
109
  get hashString() {
110
110
  assertWarning(false, 'pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal', {
111
111
  onlyOnce: true,
@@ -114,7 +114,7 @@ function urlParsedGetter() {
114
114
  warnHashNotAvailable('hashString');
115
115
  return urlParsed.hashOriginal;
116
116
  },
117
- // TODO/next-major-release: remove
117
+ // TO-DO/next-major-release: remove
118
118
  get searchString() {
119
119
  assertWarning(false, 'pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal', { onlyOnce: true, showStackTrace: true });
120
120
  return urlParsed.searchOriginal;
@@ -9,7 +9,7 @@ function analyzeClientSide(pageConfig, pageFilesAll, pageId) {
9
9
  return { isClientRuntimeLoaded, isClientRouting };
10
10
  }
11
11
  else {
12
- // TODO/v1-release: remove
12
+ // TO-DO/next-major-release: remove
13
13
  // V0.4 design
14
14
  const { isHtmlOnly, isClientRouting } = analyzePageClientSide(pageFilesAll, pageId);
15
15
  return { isClientRuntimeLoaded: !isHtmlOnly, isClientRouting };
@@ -1,7 +1,7 @@
1
1
  export { analyzeExports };
2
2
  import { getExportNames } from './getExportNames.js';
3
3
  import { assertUsage } from '../../utils.js';
4
- // TODO/v1-release: remove
4
+ // TO-DO/next-major-release: remove
5
5
  function analyzeExports({ pageFilesClientSide, pageFilesServerSide, pageId, }) {
6
6
  return { isHtmlOnly: isHtmlOnly(), isClientRouting: isClientRouting() };
7
7
  function isHtmlOnly() {
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { determineClientEntry };
3
3
  export { getVikeClientEntry };
4
4
  function determineClientEntry({ pageFilesClientSide, pageFilesServerSide, isHtmlOnly, isClientRouting, }) {
@@ -6,7 +6,7 @@ import { getPageFilesClientSide } from './getAllPageIdFiles.js';
6
6
  import { getPageFilesServerSide } from './getAllPageIdFiles.js';
7
7
  import { assert } from '../utils.js';
8
8
  import { getExportNames } from './analyzePageClientSide/getExportNames.js';
9
- // TODO/v1-release: remove analyzePageClientSide(), use analyzeClientSide() instead
9
+ // TO-DO/next-major-release: remove analyzePageClientSide(), use analyzeClientSide() instead
10
10
  function analyzePageClientSide(pageFilesAll, pageId) {
11
11
  let pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
12
12
  const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
@@ -24,7 +24,7 @@ function analyzePageClientSide(pageFilesAll, pageId) {
24
24
  });
25
25
  return { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide };
26
26
  }
27
- // TODO:v1-release: remove
27
+ // TO-DO/next-major-release: remove
28
28
  async function analyzePageClientSideInit(pageFilesAll, pageId, { sharedPageFilesAlreadyLoaded }) {
29
29
  const pageFilesClientSide = getPageFilesClientSide(pageFilesAll, pageId);
30
30
  await Promise.all(pageFilesClientSide.map(async (p) => {
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove this
1
+ // TO-DO/next-major-release: remove this
2
2
  export { assertDefaultExports };
3
3
  export { assertExportValues };
4
4
  export { forbiddenDefaultExports };
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { fileTypes };
3
3
  export { isValidFileType };
4
4
  export { determineFileType };
@@ -1,4 +1,4 @@
1
- // TODO:v1-release: remove this file
1
+ // TO-DO/next-major-release: remove this file
2
2
  export { getPageFilesClientSide };
3
3
  export { getPageFilesServerSide };
4
4
  import { assert, assertUsage, isNotNullish } from '../utils.js';
@@ -1,4 +1,4 @@
1
- // TODO/v1-release: remove
1
+ // TO-DO/next-major-release: remove
2
2
  export { getPageFileObject };
3
3
  import { determinePageIdOld } from '../determinePageIdOld.js';
4
4
  import { isErrorPageId } from '../error-page.js';
@@ -1,5 +1,5 @@
1
1
  export { parseVirtualFileExports };
2
- // TODO/v1-release: remove old design code, and remove all assertions.
2
+ // TO-DO/next-major-release: remove old design code, and remove all assertions.
3
3
  import { assert, hasProp, isCallable, isObject, cast, isArray } from '../utils.js';
4
4
  import { assertExportValues } from './assert_exports_old_design.js';
5
5
  import { getPageFileObject } from './getPageFileObject.js';
@@ -45,7 +45,7 @@ function onInternalProp(propStr, objName) {
45
45
  // - If Rolldown Vite + Rolldowns always transpiles node_modules/ then we can simply use import.meta.env.SSR
46
46
  if (isBrowser())
47
47
  return;
48
- // TODO/now-proxy remove this and only warn on built-in access instead
48
+ // TO-DO/soon/proxy: remove this and only warn on built-in access instead
49
49
  if (propStr === '_configFromHook')
50
50
  return;
51
51
  if (propStr.startsWith('_')) {
@@ -4,7 +4,7 @@ export { getHookFromPageConfig };
4
4
  export { getHookFromPageConfigGlobal };
5
5
  export { getHookFromPageConfigGlobalCumulative };
6
6
  export { getHook_setIsPrerenderering };
7
- // TODO/v1-release: remove
7
+ // TO-DO/next-major-release: remove
8
8
  // We export for old V0.4 design which doesn't support config.hooksTimeout
9
9
  export { getHookTimeoutDefault };
10
10
  import { getGlobalObject } from '../../utils/getGlobalObject.js';
@@ -33,12 +33,13 @@ function getDefinedAtString(definedAtData, configName) {
33
33
  if (definedAt.definedBy)
34
34
  return getDefinedByString(definedAt, configName);
35
35
  const { filePathToShowToUser, fileExportPathToShowToUser } = definedAt;
36
- let s = filePathToShowToUser;
37
36
  const exportPath = getExportPath(fileExportPathToShowToUser, configName);
38
37
  if (exportPath) {
39
- s = `${s} > ${pc.cyan(exportPath)}`;
38
+ return `${filePathToShowToUser} > ${pc.cyan(exportPath)}`;
39
+ }
40
+ else {
41
+ return filePathToShowToUser;
40
42
  }
41
- return s;
42
43
  })
43
44
  .join(' / ');
44
45
  return definedAtString;
@@ -1,5 +1,5 @@
1
- // TODO/now-same-api: use public API internally?
2
- // TODO/now-flat-pageContext: rename definedAt => definedBy
1
+ // TO-DO/soon/same-api: use public API internally?
2
+ // TO-DO/soon/flat-pageContext: rename definedAt => definedBy
3
3
  export { resolveVikeConfigPublicGlobal };
4
4
  export { resolveVikeConfigPublicPageEager };
5
5
  export { resolveVikeConfigPublicPageLazy };
@@ -47,10 +47,10 @@ function resolveVikeConfigPublicPageLazy(pageFiles, // V0.4 design
47
47
  pageConfig, // V1 design
48
48
  pageConfigGlobal) {
49
49
  const config = {};
50
- const configEntries = {}; // TODO/v1-release: remove
51
- const exportsAll = {}; // TODO/v1-release: remove
50
+ const configEntries = {}; // TO-DO/next-major-release: remove
51
+ const exportsAll = {}; // TO-DO/next-major-release: remove
52
52
  // V0.4 design
53
- // TODO/v1-release: remove
53
+ // TO-DO/next-major-release: remove
54
54
  pageFiles.forEach((pageFile) => {
55
55
  const exportValues = getExportValues(pageFile);
56
56
  exportValues.forEach(({ exportName, exportValue, isFromDefaultExport }) => {
@@ -60,7 +60,7 @@ pageConfigGlobal) {
60
60
  exportValue,
61
61
  exportSource: `${pageFile.filePath} > ${isFromDefaultExport ? `\`export default { ${exportName} }\`` : `\`export { ${exportName} }\``}`,
62
62
  filePath: pageFile.filePath,
63
- _filePath: pageFile.filePath, // TODO/next-major-release: remove
63
+ _filePath: pageFile.filePath, // TO-DO/next-major-release: remove
64
64
  _fileType: pageFile.fileType,
65
65
  _isFromDefaultExport: isFromDefaultExport,
66
66
  });
@@ -105,18 +105,18 @@ pageConfigGlobal) {
105
105
  });
106
106
  assert(!('default' in exports));
107
107
  assert(!('default' in exportsAll));
108
- const pageContextExports = {
108
+ const configPublicPageLazy = {
109
109
  config: config,
110
110
  from,
111
111
  source,
112
112
  sources,
113
- // TODO/now-flat-pageContext: deprecate every prop below
113
+ // TO-DO/soon/flat-pageContext: deprecate every prop below
114
114
  configEntries,
115
115
  exports,
116
116
  exportsAll,
117
117
  };
118
- // TODO/v1-release: remove
119
- objectDefineProperty(pageContextExports, 'pageExports', {
118
+ // TO-DO/next-major-release: remove
119
+ objectDefineProperty(configPublicPageLazy, 'pageExports', {
120
120
  get: () => {
121
121
  // We only show the warning in Node.js because when using Client Routing Vue integration uses `Object.assign(pageContextReactive, pageContext)` which will wrongully trigger the warning. There is no cross-browser way to catch whether the property accessor was initiated by an `Object.assign()` call.
122
122
  if (!isBrowser()) {
@@ -130,7 +130,7 @@ pageConfigGlobal) {
130
130
  enumerable: false,
131
131
  configurable: true,
132
132
  });
133
- return pageContextExports;
133
+ return configPublicPageLazy;
134
134
  }
135
135
  // V1 design
136
136
  function resolveVikeConfigPublic_V1Design(pageConfig) {
@@ -158,7 +158,7 @@ function resolveVikeConfigPublic_V1Design(pageConfig) {
158
158
  configDefinedAt,
159
159
  configDefinedByFile: configValueFilePathToShowToUser,
160
160
  });
161
- // TODO/v1-release: remove
161
+ // TO-DO/next-major-release: remove
162
162
  const exportName = configName;
163
163
  exportsAll[exportName] = exportsAll[exportName] ?? [];
164
164
  exportsAll[exportName].push({
@@ -173,7 +173,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
173
173
  //*/
174
174
  const configValueFilePathToShowToUser = getConfigValueFilePathToShowToUser(definedAtData);
175
175
  assert(configValueFilePathToShowToUser);
176
- assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
176
+ assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined using a separate file ${pc.bold(`+${configName}.js`)}, see https://vike.dev/error/runtime-in-config`);
177
177
  }
178
178
  function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
179
179
  const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
@@ -9,7 +9,7 @@ function preparePageContextForPublicUsage(pageContext) {
9
9
  assert(!pageContext.globalContext); // pageContext.globalContext should only be available to users — Vike itself should use pageContext._globalContext instead
10
10
  assert(pageContext._isOriginalObject); // ensure we preserve the original object reference
11
11
  addIs404ToPageProps(pageContext);
12
- // TODO/next-major-release: remove
12
+ // TO-DO/next-major-release: remove
13
13
  if (!('_pageId' in pageContext)) {
14
14
  Object.defineProperty(pageContext, '_pageId', {
15
15
  get() {
@@ -27,7 +27,7 @@ function preparePageContextForPublicUsage(pageContext) {
27
27
  const globalContextPublic = prepareGlobalContextForPublicUsage(pageContext._globalContext);
28
28
  const pageContextPublic = getProxyForPublicUsage(pageContext, 'pageContext',
29
29
  // We must skip it in the client-side because of the reactivity mechanism of UI frameworks like Solid.
30
- // - TODO/now-proxy: double check whether that's true
30
+ // - TO-DO/soon/proxy: double check whether that's true
31
31
  true, (prop) => {
32
32
  if (prop === 'globalContext') {
33
33
  return globalContextPublic;
@@ -65,11 +65,11 @@ function assertPropertyGetters(pageContext) {
65
65
  ;
66
66
  [
67
67
  'urlPathname',
68
- // TODO/v1-release: remove
68
+ // TO-DO/next-major-release: remove
69
69
  'urlParsed',
70
- // TODO/v1-release: remove
70
+ // TO-DO/next-major-release: remove
71
71
  'url',
72
- // TODO/v1-release: remove
72
+ // TO-DO/next-major-release: remove
73
73
  'pageExports',
74
74
  ].forEach((prop) => {
75
75
  if (pageContext.prop)
@@ -82,7 +82,7 @@ function AbortRender(pageContextAbort) {
82
82
  checkType(err);
83
83
  return err;
84
84
  }
85
- // TODO/v1-release: remove
85
+ // TO-DO/next-major-release: remove
86
86
  /**
87
87
  * @deprecated Use `throw render()` or `throw redirect()` instead, see https://vike.dev/render'
88
88
  */