vike 0.4.266 → 0.4.267-commit-b005535

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 (32) hide show
  1. package/dist/client/runtime-client-routing/history.d.ts +19 -19
  2. package/dist/client/runtime-client-routing/history.js +89 -83
  3. package/dist/client/runtime-client-routing/renderPageClient.js +1 -6
  4. package/dist/client/runtime-client-routing/setScrollPosition.js +6 -5
  5. package/dist/node/prerender/runPrerender.js +11 -0
  6. package/dist/node/vite/assertEnvVite.js +1 -1
  7. package/dist/node/vite/plugins/build/handleAssetsManifest.js +2 -1
  8. package/dist/node/vite/plugins/pluginDev/logSkillHint.js +6 -4
  9. package/dist/node/vite/plugins/pluginUniversalDeploy.js +3 -2
  10. package/dist/node/vite/shared/resolveVikeConfigInternal/getPlusFiles.d.ts +2 -2
  11. package/dist/node/vite/shared/resolveVikeConfigInternal/getPlusFiles.js +3 -3
  12. package/dist/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.d.ts +4 -4
  13. package/dist/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +9 -9
  14. package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.js +4 -0
  15. package/dist/node/vite/shared/resolveVikeConfigInternal/pointerImports.d.ts +3 -1
  16. package/dist/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +18 -46
  17. package/dist/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.d.ts +3 -3
  18. package/dist/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +333 -212
  19. package/dist/node/vite/shared/resolveVikeConfigInternal.js +15 -15
  20. package/dist/server/runtime/renderPageServer/csp.d.ts +2 -1
  21. package/dist/server/runtime/renderPageServer/csp.js +2 -1
  22. package/dist/server/runtime/renderPageServer/headersResponse.js +2 -1
  23. package/dist/types/Config.d.ts +8 -0
  24. package/dist/utils/PROJECT_VERSION.d.ts +1 -1
  25. package/dist/utils/PROJECT_VERSION.js +1 -1
  26. package/dist/utils/assertNodeVersion.d.ts +2 -0
  27. package/dist/utils/assertNodeVersion.js +4 -1
  28. package/dist/utils/debug.d.ts +1 -1
  29. package/dist/utils/debug.js +1 -1
  30. package/dist/utils/requireResolve.d.ts +0 -6
  31. package/dist/utils/requireResolve.js +0 -8
  32. package/package.json +5 -6
@@ -134,7 +134,7 @@ function isV1Design() {
134
134
  async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
135
135
  const { promise, resolve, reject } = genPromise();
136
136
  globalObject.vikeConfigPromise = promise;
137
- const esbuildCache = {
137
+ const vikeTranspileCache = {
138
138
  transpileCache: {},
139
139
  vikeConfigDependencies: new Set(),
140
140
  };
@@ -143,7 +143,7 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
143
143
  let ret;
144
144
  let err;
145
145
  try {
146
- ret = await resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache);
146
+ ret = await resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, vikeTranspileCache);
147
147
  }
148
148
  catch (err_) {
149
149
  hasError = true;
@@ -193,7 +193,7 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
193
193
  }
194
194
  else {
195
195
  logErrorServerDev(err, null);
196
- resolve(await getVikeConfigDummy(esbuildCache));
196
+ resolve(await getVikeConfigDummy(vikeTranspileCache));
197
197
  }
198
198
  }
199
199
  }
@@ -215,9 +215,9 @@ function hasViteConfigChanged(vikeConfigOld, vikeConfigNew) {
215
215
  }
216
216
  return false;
217
217
  }
218
- async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esbuildCache) {
219
- const plusFilesByLocationId = await getPlusFiles(userRootDir, esbuildCache);
220
- const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesByLocationId, userRootDir, esbuildCache);
218
+ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, vikeTranspileCache) {
219
+ const plusFilesByLocationId = await getPlusFiles(userRootDir, vikeTranspileCache);
220
+ const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesByLocationId, userRootDir, vikeTranspileCache);
221
221
  const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesByLocationId, userRootDir);
222
222
  if (!globalObject.isV1Design_)
223
223
  globalObject.isV1Design_ = pageConfigs.length > 0;
@@ -239,7 +239,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
239
239
  prerenderContext,
240
240
  _pageConfigs: pageConfigs,
241
241
  _pageConfigGlobal: pageConfigGlobal,
242
- _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
242
+ _vikeConfigDependencies: vikeTranspileCache.vikeConfigDependencies,
243
243
  _extensions,
244
244
  };
245
245
  globalObject.vikeConfigSync = vikeConfig;
@@ -249,14 +249,14 @@ function resolveGlobalConfig(pageConfigGlobal, pageConfigs) {
249
249
  const globalConfigPublic = resolveGlobalConfigPublic(pageConfigs, pageConfigGlobal, getConfigValues);
250
250
  return globalConfigPublic;
251
251
  }
252
- async function resolveConfigDefinitions(plusFilesByLocationId, userRootDir, esbuildCache) {
252
+ async function resolveConfigDefinitions(plusFilesByLocationId, userRootDir, vikeTranspileCache) {
253
253
  const plusFilesByLocationIdOrdered = Object.values(plusFilesByLocationId)
254
254
  .flat()
255
255
  .sort((plusFile1, plusFile2) => sortAfterInheritanceOrderGlobal(plusFile1, plusFile2, plusFilesByLocationId, null));
256
256
  const configDefinitionsGlobal = getConfigDefinitions(
257
257
  // We use `plusFilesByLocationId` in order to allow non-global Vike extensions to create global configs, and to set the value of global configs such as `+vite` (enabling Vike extensions to add Vite plugins).
258
258
  plusFilesByLocationIdOrdered, (configDef) => !!configDef.global);
259
- await loadCustomConfigBuildTimeFiles(plusFilesByLocationId, configDefinitionsGlobal, userRootDir, esbuildCache);
259
+ await loadCustomConfigBuildTimeFiles(plusFilesByLocationId, configDefinitionsGlobal, userRootDir, vikeTranspileCache);
260
260
  const configNamesKnownAll = getConfigNames(Object.values(plusFilesByLocationId).flat());
261
261
  const configNamesKnownGlobal = Object.keys(configDefinitionsGlobal);
262
262
  assert(configNamesKnownGlobal.every((configName) => configNamesKnownAll.includes(configName)));
@@ -268,7 +268,7 @@ async function resolveConfigDefinitions(plusFilesByLocationId, userRootDir, esbu
268
268
  .flat()
269
269
  .sort((plusFile1, plusFile2) => sortAfterInheritanceOrderPage(plusFile1, plusFile2, locationIdPage, null));
270
270
  const { configDefinitions, peerDependencyConfigNames } = collectConfigDefinitions(plusFilesRelevant, (configDef) => configDef.global !== true);
271
- await loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache);
271
+ await loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, vikeTranspileCache);
272
272
  const configNamesKnownLocal = unique([
273
273
  ...Object.keys(configDefinitions),
274
274
  ...peerDependencyConfigNames,
@@ -293,15 +293,15 @@ async function resolveConfigDefinitions(plusFilesByLocationId, userRootDir, esbu
293
293
  }
294
294
  // Load value files (with `env.config===true`) of *custom* configs.
295
295
  // - The value files of *built-in* configs are already loaded at `getPlusFiles()`.
296
- async function loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, esbuildCache) {
296
+ async function loadCustomConfigBuildTimeFiles(plusFiles, configDefinitions, userRootDir, vikeTranspileCache) {
297
297
  const plusFileList = Object.values(plusFiles).flat(1);
298
298
  await Promise.all(plusFileList.map(async (plusFile) => {
299
299
  if (!plusFile.isConfigFile) {
300
- await loadValueFile(plusFile, configDefinitions, userRootDir, esbuildCache);
300
+ await loadValueFile(plusFile, configDefinitions, userRootDir, vikeTranspileCache);
301
301
  }
302
302
  else {
303
303
  await Promise.all(Object.entries(plusFile.pointerImportsByConfigName).map(async ([configName, pointerImports]) => {
304
- await Promise.all(pointerImports.map((pointerImport) => loadPointerImport(pointerImport, userRootDir, configName, configDefinitions, esbuildCache)));
304
+ await Promise.all(pointerImports.map((pointerImport) => loadPointerImport(pointerImport, userRootDir, configName, configDefinitions, vikeTranspileCache)));
305
305
  }));
306
306
  }
307
307
  }));
@@ -1325,7 +1325,7 @@ function restartViteDevServer() {
1325
1325
  })();
1326
1326
  swallowViteLogForceOptimization_disable();
1327
1327
  }
1328
- async function getVikeConfigDummy(esbuildCache) {
1328
+ async function getVikeConfigDummy(vikeTranspileCache) {
1329
1329
  const pageConfigsDummy = [];
1330
1330
  const pageConfigGlobalDummy = {
1331
1331
  configValueSources: {},
@@ -1345,7 +1345,7 @@ async function getVikeConfigDummy(esbuildCache) {
1345
1345
  },
1346
1346
  ...globalConfigPublicDummy,
1347
1347
  prerenderContext: prerenderContextDummy,
1348
- _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
1348
+ _vikeConfigDependencies: vikeTranspileCache.vikeConfigDependencies,
1349
1349
  _extensions: [],
1350
1350
  };
1351
1351
  globalObject.vikeConfigSync = vikeConfigDummy;
@@ -3,9 +3,10 @@ export { inferNonceAttr };
3
3
  export { addCspResponseHeader };
4
4
  export type { PageContextCspNonce };
5
5
  import type { PageContextConfig } from '../../../shared-server-client/getPageFiles.js';
6
+ import type { PageContextPublicMinimum } from '../../../shared-server-client/getPageContextPublicShared.js';
6
7
  import type { PageContextServer } from '../../../types/PageContext.js';
7
8
  import '../../assertEnvServer.js';
8
- declare function resolvePageContextCspNone(pageContext: PageContextConfig & Partial<PageContextCspNonce>): Promise<null | {
9
+ declare function resolvePageContextCspNone(pageContext: PageContextConfig & PageContextPublicMinimum & Partial<PageContextCspNonce>): Promise<null | {
9
10
  cspNonce: string | null;
10
11
  }>;
11
12
  type PageContextCspNonce = Pick<PageContextServer, 'cspNonce'>;
@@ -3,6 +3,7 @@ export { inferNonceAttr };
3
3
  export { addCspResponseHeader };
4
4
  import { import_ } from '@brillout/import';
5
5
  import { assert } from '../../../utils/assert.js';
6
+ import { getPageContextPublicServer } from './getPageContextPublicServer.js';
6
7
  import '../../assertEnvServer.js';
7
8
  async function resolvePageContextCspNone(pageContext) {
8
9
  if (pageContext.cspNonce)
@@ -14,7 +15,7 @@ async function resolvePageContextCspNone(pageContext) {
14
15
  pageContextAddendum.cspNonce = await generateNonce();
15
16
  }
16
17
  else {
17
- pageContextAddendum.cspNonce = await csp.nonce(pageContext);
18
+ pageContextAddendum.cspNonce = await csp.nonce(getPageContextPublicServer(pageContext));
18
19
  }
19
20
  }
20
21
  return pageContextAddendum;
@@ -3,6 +3,7 @@ export { resolveHeadersResponseFinal };
3
3
  import { addCspResponseHeader } from './csp.js';
4
4
  import { isCallable } from '../../../utils/isCallable.js';
5
5
  import { cacheControlDisable, getCacheControl } from './getCacheControl.js';
6
+ import { getPageContextPublicServer } from './getPageContextPublicServer.js';
6
7
  import '../../assertEnvServer.js';
7
8
  function resolveHeadersResponseFinal(pageContext, statusCode) {
8
9
  const headersResponse = pageContext.headersResponse || new Headers();
@@ -34,7 +35,7 @@ async function resolveHeadersResponseConfig(pageContext) {
34
35
  await Promise.all((pageContext.config.headersResponse ?? []).map(async (headers) => {
35
36
  let headersInit;
36
37
  if (isCallable(headers)) {
37
- headersInit = await headers(pageContext);
38
+ headersInit = await headers(getPageContextPublicServer(pageContext));
38
39
  }
39
40
  else {
40
41
  headersInit = headers;
@@ -551,6 +551,14 @@ type ConfigBuiltIn = {
551
551
  * https://vike.dev/server
552
552
  */
553
553
  server?: boolean | ImportStringList;
554
+ /**
555
+ * Set to `true` to create `.br` and `.gz` files for your static assets at build time, so that they don't have to be compressed on each request.
556
+ *
557
+ * https://vike.dev/precompress
558
+ *
559
+ * @default false
560
+ */
561
+ precompress?: boolean;
554
562
  cli?: {
555
563
  /** @experimental
556
564
  *
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: '0.4.266';
1
+ export declare const PROJECT_VERSION: '0.4.267-commit-b005535';
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.266';
2
+ export const PROJECT_VERSION = '0.4.267-commit-b005535';
@@ -1,2 +1,4 @@
1
1
  export { assertNodeVersion };
2
+ export { nodeVersionMin };
3
+ declare const nodeVersionMin = "20.19.0";
2
4
  declare function assertNodeVersion(): void;
@@ -1,6 +1,9 @@
1
1
  export { assertNodeVersion };
2
+ export { nodeVersionMin };
2
3
  import { isNodeJS } from './isNodeJS.js';
3
4
  import { assertVersion } from './assertVersion.js';
5
+ // Vike's minimum supported Node.js version
6
+ const nodeVersionMin = '20.19.0';
4
7
  // node_modules/vike/package.json#engines.node isn't enough, as users often ignore it
5
8
  function assertNodeVersion() {
6
9
  if (!isNodeJS())
@@ -8,5 +11,5 @@ function assertNodeVersion() {
8
11
  const version = process.versions.node;
9
12
  assertVersion('Node.js', version,
10
13
  // https://gist.github.com/brillout/8e0133716e169b981b6c4e8a938b0134
11
- ['20.19.0', '22.12.0']);
14
+ [nodeVersionMin, '22.12.0']);
12
15
  }
@@ -2,7 +2,7 @@ export { createDebug };
2
2
  export { isDebug };
3
3
  export { isDebugError };
4
4
  export { debug };
5
- declare const flags: ["vike", "vike:config", "vike:crawl", "vike:file-change", "vike:error", "vike:esbuild-resolve", "vike:pluginExtractAssets", "vike:pluginExtractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:requireResolve", "vike:routing", "vike:setup", "vike:staticReplace", "vike:stream", "vike:virtualFiles", "vike:vite-config-user", "vike:vite-rpc"];
5
+ declare const flags: ["vike", "vike:config", "vike:crawl", "vike:file-change", "vike:error", "vike:transpile-resolve", "vike:pluginExtractAssets", "vike:pluginExtractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:requireResolve", "vike:routing", "vike:setup", "vike:staticReplace", "vike:stream", "vike:virtualFiles", "vike:vite-config-user", "vike:vite-rpc"];
6
6
  type Flag = (typeof flags)[number];
7
7
  type Options = {
8
8
  serialization?: {
@@ -15,7 +15,7 @@ const flags = [
15
15
  'vike:crawl',
16
16
  'vike:file-change',
17
17
  'vike:error',
18
- 'vike:esbuild-resolve',
18
+ 'vike:transpile-resolve',
19
19
  'vike:pluginExtractAssets',
20
20
  'vike:pluginExtractExportNames',
21
21
  'vike:glob',
@@ -1,5 +1,4 @@
1
1
  export { requireResolveOptional };
2
- export { requireResolveOptionalDir };
3
2
  export { requireResolveNpmPackage };
4
3
  export { requireResolveDistFile };
5
4
  export { getPackageNodeModulesDirectory };
@@ -8,11 +7,6 @@ declare function requireResolveOptional({ importPath, importerFilePath, userRoot
8
7
  importerFilePath: string | null;
9
8
  userRootDir: string;
10
9
  }): string | null;
11
- declare function requireResolveOptionalDir({ importPath, importerDir, userRootDir, }: {
12
- importPath: string;
13
- importerDir: string;
14
- userRootDir: string;
15
- }): string | null;
16
10
  declare function requireResolveNpmPackage({ importPathNpmPackage, userRootDir, }: {
17
11
  importPathNpmPackage: string;
18
12
  userRootDir: string;
@@ -1,5 +1,4 @@
1
1
  export { requireResolveOptional };
2
- export { requireResolveOptionalDir };
3
2
  export { requireResolveNpmPackage };
4
3
  export { requireResolveDistFile };
5
4
  export { getPackageNodeModulesDirectory };
@@ -88,13 +87,6 @@ function requireResolveOptional({ importPath, importerFilePath, userRootDir, })
88
87
  return null;
89
88
  return res.importPathResolvedFilePath;
90
89
  }
91
- function requireResolveOptionalDir({ importPath, importerDir, userRootDir, }) {
92
- const importerFilePath = getFakeImporterFile(importerDir);
93
- const res = requireResolve_(importPath, importerFilePath, userRootDir);
94
- if (res.hasFailed)
95
- return null;
96
- return res.importPathResolvedFilePath;
97
- }
98
90
  function requireResolveNpmPackage({ importPathNpmPackage, userRootDir, }) {
99
91
  assertImportIsNpmPackage(importPathNpmPackage);
100
92
  const importerFilePath = getFakeImporterFile(userRootDir);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.266",
3
+ "version": "0.4.267-commit-b005535",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {
@@ -129,16 +129,16 @@
129
129
  "@brillout/picocolors": "^1.0.31",
130
130
  "@brillout/vite-plugin-server-entry": "^0.7.21",
131
131
  "@universal-deploy/store": "^0.2.2",
132
- "@universal-deploy/vite": "^0.1.11",
132
+ "@universal-deploy/vite": "^0.1.13",
133
133
  "@universal-middleware/core": "^0.4.18",
134
134
  "@universal-middleware/node": "^0.2.2",
135
135
  "cac": "^6.0.0",
136
136
  "convert-route": "^1.1.1",
137
137
  "es-module-lexer": "^1.0.0",
138
- "esbuild": ">=0.19.0",
139
138
  "json5": "^2.0.0",
140
- "magic-string": "^1.2.3",
139
+ "magic-string": "^1.4.2",
141
140
  "picomatch": "^4.0.7",
141
+ "rolldown": ">=1.0.0",
142
142
  "semver": "^7.8.5",
143
143
  "sirv": "^3.0.2",
144
144
  "source-map-support": "^0.5.0",
@@ -260,7 +260,7 @@
260
260
  "./fetch.js"
261
261
  ],
262
262
  "devDependencies": {
263
- "@brillout/release-me": "^0.4.16",
263
+ "@brillout/release-me": "^0.4.18",
264
264
  "@types/babel__core": "^7.20.5",
265
265
  "@types/estree": "^1.0.5",
266
266
  "@types/node": "^20.10.5",
@@ -269,7 +269,6 @@
269
269
  "@types/source-map-support": "^0.5.10",
270
270
  "react-streaming": "^0.4.20",
271
271
  "rimraf": "^6.1.3",
272
- "rolldown": "1.0.0-rc.17",
273
272
  "typescript": "^7.0.2",
274
273
  "vite": "^7.2.6"
275
274
  },