vike 0.4.218-commit-85af52a → 0.4.218-commit-ea8bb27

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 (57) hide show
  1. package/dist/cjs/__internal/index.js +2 -3
  2. package/dist/cjs/node/api/prepareViteApiCall.js +1 -2
  3. package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
  4. package/dist/cjs/node/plugin/plugins/commonConfig.js +1 -1
  5. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -22
  6. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +111 -181
  7. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  8. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -2
  9. package/dist/cjs/node/prerender/runPrerender.js +73 -32
  10. package/dist/cjs/node/prerender/utils.js +1 -0
  11. package/dist/cjs/node/runtime/globalContext.js +31 -5
  12. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  13. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
  14. package/dist/cjs/node/runtime/renderPage.js +21 -22
  15. package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
  16. package/dist/cjs/shared/getPageFiles/getPageFiles.js +6 -3
  17. package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +2 -2
  18. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +4 -4
  19. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  20. package/dist/esm/__internal/index.js +2 -3
  21. package/dist/esm/client/client-routing-runtime/createPageContext.js +1 -4
  22. package/dist/esm/client/server-routing-runtime/getPageContext.js +1 -4
  23. package/dist/esm/node/api/prepareViteApiCall.js +1 -2
  24. package/dist/esm/node/plugin/plugins/baseUrls.js +1 -1
  25. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -4
  26. package/dist/esm/node/plugin/plugins/commonConfig.js +1 -1
  27. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
  28. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -21
  29. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -6
  30. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +108 -178
  31. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  32. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -2
  33. package/dist/esm/node/prerender/runPrerender.js +75 -34
  34. package/dist/esm/node/prerender/utils.d.ts +1 -0
  35. package/dist/esm/node/prerender/utils.js +1 -0
  36. package/dist/esm/node/runtime/globalContext.d.ts +17 -3
  37. package/dist/esm/node/runtime/globalContext.js +32 -6
  38. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +27 -42
  39. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  40. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
  41. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
  42. package/dist/esm/node/runtime/renderPage.js +22 -23
  43. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  44. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
  45. package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
  46. package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +2 -0
  47. package/dist/esm/shared/getPageFiles/getPageFiles.js +6 -3
  48. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
  49. package/dist/esm/shared/page-configs/Config.d.ts +13 -1
  50. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +7 -4
  51. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +2 -2
  52. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -6
  53. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +4 -4
  54. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  55. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  56. package/dist/esm/utils/projectInfo.d.ts +1 -1
  57. package/package.json +1 -1
@@ -6,12 +6,15 @@ exports.setPageFilesAsync = setPageFilesAsync;
6
6
  const utils_js_1 = require("../utils.js");
7
7
  const parseGlobResults_js_1 = require("./parseGlobResults.js");
8
8
  const getGlobalObject_js_1 = require("../../utils/getGlobalObject.js");
9
+ const getPageConfigUserFriendly_js_1 = require("../page-configs/getPageConfigUserFriendly.js");
9
10
  const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('setPageFiles.ts', {});
10
11
  function setPageFiles(pageFilesExports) {
11
12
  const { pageFiles, pageConfigs, pageConfigGlobal } = (0, parseGlobResults_js_1.parseGlobResults)(pageFilesExports);
12
13
  globalObject.pageFilesAll = pageFiles;
13
14
  globalObject.pageConfigs = pageConfigs;
14
15
  globalObject.pageConfigGlobal = pageConfigGlobal;
16
+ // TODO/now: re-use this call, instead of calling it twice
17
+ globalObject.globalConfig = (0, getPageConfigUserFriendly_js_1.getPageConfigUserFriendlyNew)(pageConfigGlobal);
15
18
  }
16
19
  function setPageFilesAsync(getPageFilesExports) {
17
20
  globalObject.pageFilesGetter = async () => {
@@ -32,10 +35,10 @@ async function getPageFilesAll(isClientSide, isProduction) {
32
35
  await globalObject.pageFilesGetter();
33
36
  }
34
37
  }
35
- const { pageFilesAll, pageConfigs, pageConfigGlobal } = globalObject;
36
- (0, utils_js_1.assert)(pageFilesAll && pageConfigs && pageConfigGlobal);
38
+ const { pageFilesAll, pageConfigs, pageConfigGlobal, globalConfig } = globalObject;
39
+ (0, utils_js_1.assert)(pageFilesAll && pageConfigs && pageConfigGlobal && globalConfig);
37
40
  const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
38
- return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal };
41
+ return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig };
39
42
  }
40
43
  function getAllPageIds(allPageFiles, pageConfigs) {
41
44
  const fileIds = allPageFiles.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
@@ -83,8 +83,8 @@ function getPageConfigUserFriendly(pageFiles, pageConfig) {
83
83
  // V1 design
84
84
  function getPageConfigUserFriendlyNew(pageConfig) {
85
85
  const config = {};
86
- const configEntries = {}; // TODO/v1-release: remove
87
- const exportsAll = {}; // TODO/v1-release: remove
86
+ const configEntries = {};
87
+ const exportsAll = {};
88
88
  const source = {};
89
89
  const sources = {};
90
90
  const from = {
@@ -18,10 +18,10 @@ const REPLACE_ME_AFTER = '__VIKE__REPLACE_ME_AFTER__';
18
18
  // - vike/shared/page-configs/serialize/parsePageConfigs.ts
19
19
  // - parsePageConfigs() is loaded on both the client- and server-side.
20
20
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
21
- function serializeConfigValues(pageConfig, importStatements, isEnvMatch, { isEager }, tabspace) {
21
+ function serializeConfigValues(pageConfig, importStatements, isEnvMatch, tabspace, isEager) {
22
22
  const lines = [];
23
23
  tabspace += ' ';
24
- getConfigValuesBase(pageConfig, isEnvMatch, { isEager }).forEach((entry) => {
24
+ getConfigValuesBase(pageConfig, isEnvMatch, isEager).forEach((entry) => {
25
25
  if (entry.configValueBase.type === 'computed') {
26
26
  (0, utils_js_1.assert)('value' in entry); // Help TS
27
27
  const { configValueBase, value, configName } = entry;
@@ -170,7 +170,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
170
170
  (0, utils_js_1.assert)(configValueFilePathToShowToUser);
171
171
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
172
172
  }
173
- function getConfigValuesBase(pageConfig, isEnvMatch, { isEager } = {}) {
173
+ function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
174
174
  const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
175
175
  if (!isEnvMatch(valueInfo.configEnv))
176
176
  return 'SKIP';
@@ -186,7 +186,7 @@ function getConfigValuesBase(pageConfig, isEnvMatch, { isEager } = {}) {
186
186
  const fromSources = Object.entries(pageConfig.configValueSources).map(([configName, sources]) => {
187
187
  const configDef = pageConfig.configDefinitions[configName];
188
188
  (0, utils_js_1.assert)(configDef);
189
- if (isEager !== undefined && isEager !== !!configDef.eager)
189
+ if (isEager !== null && isEager !== !!configDef.eager)
190
190
  return 'SKIP';
191
191
  if (!configDef.cumulative) {
192
192
  const source = sources[0];
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.218-commit-85af52a';
5
+ exports.PROJECT_VERSION = '0.4.218-commit-ea8bb27';
@@ -8,16 +8,15 @@ import { route as routeInternal } from '../shared/route/index.js';
8
8
  import { getPageFilesAll } from '../shared/getPageFiles/getPageFiles.js';
9
9
  import { getGlobalContext, initGlobalContext_getGlobalContextAsync } from '../node/runtime/globalContext.js';
10
10
  import { setNodeEnvProduction } from '../utils/assertSetup.js';
11
- import { getRenderContext } from '../node/runtime/renderPage/renderPageAlreadyRouted.js';
12
11
  /**
13
12
  * Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel} to compute some rewrite rules and extract { isr } configs.
14
13
  */
15
14
  async function getPagesAndRoutes() {
16
15
  setNodeEnvProduction();
17
- const renderContext = await getRenderContext();
16
+ const globalContext = getGlobalContext();
18
17
  const {
19
18
  //
20
- pageRoutes, pageFilesAll, pageConfigs, allPageIds } = renderContext;
19
+ pageRoutes, pageFilesAll, pageConfigs, allPageIds } = globalContext;
21
20
  return {
22
21
  pageRoutes,
23
22
  pageFilesAll,
@@ -7,7 +7,7 @@ import { assert, isBaseServer, getGlobalObject, objectAssign } from './utils.js'
7
7
  // @ts-ignore
8
8
  import * as pageFilesExports from 'virtual:vike:importUserCode:client:client-routing';
9
9
  const globalObject = getGlobalObject('createPageContext.ts', {});
10
- initDevEntry();
10
+ setPageFiles(pageFilesExports);
11
11
  async function createPageContext(urlOriginal) {
12
12
  if (!globalObject.pageFilesData) {
13
13
  globalObject.pageFilesData = await getPageFilesAll(true);
@@ -34,6 +34,3 @@ async function createPageContext(urlOriginal) {
34
34
  objectAssign(pageContext, pageContextUrlComputed);
35
35
  return pageContext;
36
36
  }
37
- function initDevEntry() {
38
- setPageFiles(pageFilesExports);
39
- }
@@ -7,7 +7,7 @@ import { getCurrentUrl } from '../shared/getCurrentUrl.js';
7
7
  // @ts-ignore
8
8
  import * as pageFilesExports from 'virtual:vike:importUserCode:client:server-routing';
9
9
  const urlFirst = getCurrentUrl({ withoutHash: true });
10
- initDevEntry();
10
+ setPageFiles(pageFilesExports);
11
11
  async function getPageContext() {
12
12
  const pageContext = getPageContextSerializedInHtml();
13
13
  objectAssign(pageContext, {
@@ -39,6 +39,3 @@ async function loadPageUserFiles(pageId) {
39
39
  });
40
40
  return pageContextAddendum;
41
41
  }
42
- function initDevEntry() {
43
- setPageFiles(pageFilesExports);
44
- }
@@ -32,8 +32,7 @@ async function enhanceViteConfig(viteConfig, operation) {
32
32
  };
33
33
  }
34
34
  function addViteSettingsSetByUser(viteConfigEnhanced, vikeConfig) {
35
- const { global } = vikeConfig.vikeConfigNew;
36
- const viteConfigs = global.from.configsCumulative.vite;
35
+ const viteConfigs = vikeConfig.global.from.configsCumulative.vite;
37
36
  if (!viteConfigs)
38
37
  return viteConfigEnhanced;
39
38
  viteConfigs.values.forEach((v) => {
@@ -11,7 +11,7 @@ function baseUrls() {
11
11
  const isDev = config._isDev;
12
12
  assert(typeof isDev === 'boolean');
13
13
  const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
14
- basesResolved = resolveBase(baseViteOriginal, config.vikeTmp.vikeConfigGlobal.baseServer, config.vikeTmp.vikeConfigGlobal.baseAssets);
14
+ basesResolved = resolveBase(baseViteOriginal, config.vike.vikeConfigGlobal.baseServer, config.vike.vikeConfigGlobal.baseAssets);
15
15
  // We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
16
16
  process.env.BASE_SERVER = basesResolved.baseServer;
17
17
  process.env.BASE_ASSETS = basesResolved.baseAssets;
@@ -1,14 +1,12 @@
1
1
  export { commonConfig };
2
2
  import { type Plugin } from 'vite';
3
- import { type VikeConfigObject, type VikeConfigNew } from './importUserCode/v1-design/getVikeConfig.js';
3
+ import { type VikeConfigObject } from './importUserCode/v1-design/getVikeConfig.js';
4
4
  declare module 'vite' {
5
5
  interface UserConfig {
6
6
  _isDev?: boolean;
7
7
  _vikeVitePluginOptions?: unknown;
8
8
  _root?: string;
9
- vike?: VikeConfigNew;
10
- /** @deprecated */
11
- vikeTmp?: VikeConfigObject;
9
+ vike?: VikeConfigObject;
12
10
  }
13
11
  }
14
12
  declare function commonConfig(vikeVitePluginOptions: unknown): Plugin[];
@@ -29,7 +29,7 @@ function commonConfig(vikeVitePluginOptions) {
29
29
  _isDev: isDev,
30
30
  _root: root,
31
31
  _vikeVitePluginOptions: vikeVitePluginOptions,
32
- vike: vikeConfig.vikeConfigNew,
32
+ vike: vikeConfig,
33
33
  vikeTmp: vikeConfig
34
34
  };
35
35
  }
@@ -1,12 +1,10 @@
1
- export { configDefinitionsBuiltIn };
2
- export { configDefinitionsBuiltInGlobal };
1
+ export { configDefinitionsBuiltInAll };
3
2
  export type { ConfigDefinition };
4
3
  export type { ConfigDefinitions };
5
4
  export type { ConfigDefinitionInternal };
6
- export type { ConfigNameGlobal };
7
5
  export type { ConfigEffect };
8
6
  import type { ConfigEnvInternal, ConfigEnv, ConfigValueSources, DefinedAtFilePath } from '../../../../../../shared/page-configs/PageConfig.js';
9
- import type { Config, ConfigNameBuiltIn } from '../../../../../../shared/page-configs/Config.js';
7
+ import type { Config, ConfigNameBuiltIn, ConfigNameGlobal } from '../../../../../../shared/page-configs/Config.js';
10
8
  import { type ConfigDefinedAt } from '../../../../../../shared/page-configs/getConfigDefinedAt.js';
11
9
  /** The meta definition of a config.
12
10
  *
@@ -46,7 +44,8 @@ type ConfigDefinition = {
46
44
  *
47
45
  * https://vike.dev/extends#inheritance
48
46
  */
49
- global?: boolean;
47
+ global?: boolean | ((value: unknown) => boolean);
48
+ type?: string | string[];
50
49
  };
51
50
  /**
52
51
  * Function called when the config value is defined.
@@ -74,7 +73,5 @@ type ConfigDefinitionInternal = Omit<ConfigDefinition, 'env'> & {
74
73
  };
75
74
  type ConfigDefinitions = Record<string, // configName
76
75
  ConfigDefinitionInternal>;
77
- type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn, ConfigDefinitionInternal>;
78
- declare const configDefinitionsBuiltIn: ConfigDefinitionsBuiltIn;
79
- type ConfigNameGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization' | 'vite';
80
- declare const configDefinitionsBuiltInGlobal: Record<ConfigNameGlobal, ConfigDefinitionInternal>;
76
+ type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn | ConfigNameGlobal, ConfigDefinitionInternal>;
77
+ declare const configDefinitionsBuiltInAll: ConfigDefinitionsBuiltIn;
@@ -1,8 +1,7 @@
1
- export { configDefinitionsBuiltIn };
2
- export { configDefinitionsBuiltInGlobal };
1
+ export { configDefinitionsBuiltInAll };
3
2
  import { assert, assertUsage } from '../../../../utils.js';
4
3
  import { getConfigDefinedAt } from '../../../../../../shared/page-configs/getConfigDefinedAt.js';
5
- const configDefinitionsBuiltIn = {
4
+ const configDefinitionsBuiltInAll = {
6
5
  onRenderHtml: {
7
6
  env: { server: true }
8
7
  },
@@ -61,9 +60,6 @@ const configDefinitionsBuiltIn = {
61
60
  clientHooks: {
62
61
  env: { config: true }
63
62
  },
64
- prerender: {
65
- env: { config: true }
66
- },
67
63
  hydrationCanBeAborted: {
68
64
  env: { client: true }
69
65
  },
@@ -132,26 +128,34 @@ const configDefinitionsBuiltIn = {
132
128
  env: { client: true }
133
129
  },
134
130
  // TODO/eventually: define it as a global config.
135
- middleware: { env: { server: true }, cumulative: true, eager: true }
136
- };
137
- const configDefinitionsBuiltInGlobal = {
131
+ middleware: { env: { server: true }, cumulative: true, eager: true },
138
132
  onPrerenderStart: {
139
133
  env: { server: true, production: true },
140
- eager: true
134
+ eager: true,
135
+ global: true
141
136
  },
142
137
  onBeforeRoute: {
143
138
  env: { server: true, client: 'if-client-routing' },
144
- eager: true
145
- },
146
- prerender: { env: { config: true } },
147
- vite: { env: { config: true }, cumulative: true },
148
- disableAutoFullBuild: { env: { config: true } },
149
- includeAssetsImportedByServer: { env: { config: true } },
150
- baseAssets: { env: { config: true } },
151
- baseServer: { env: { config: true } },
152
- redirects: { env: { server: true } },
153
- trailingSlash: { env: { server: true } },
154
- disableUrlNormalization: { env: { server: true } }
139
+ eager: true,
140
+ global: true
141
+ },
142
+ prerender: { env: { config: true }, global: (value) => typeof value !== 'object', type: ['boolean', 'object'] },
143
+ vite: { env: { config: true }, global: true, cumulative: true, type: 'object' },
144
+ disableAutoFullBuild: {
145
+ env: { config: true },
146
+ global: true,
147
+ type: [
148
+ 'boolean',
149
+ // Can be 'prerender'
150
+ 'string'
151
+ ]
152
+ },
153
+ includeAssetsImportedByServer: { env: { config: true }, global: true, type: 'boolean' },
154
+ baseAssets: { env: { config: true }, global: true, type: 'string' },
155
+ baseServer: { env: { config: true }, global: true, type: 'string' },
156
+ redirects: { env: { server: true }, global: true, type: 'string{}', cumulative: true },
157
+ trailingSlash: { env: { server: true }, global: true, type: 'boolean' },
158
+ disableUrlNormalization: { env: { server: true }, global: true, type: 'boolean' }
155
159
  };
156
160
  function getConfigEnv(configValueSources, configName) {
157
161
  const configValueSource = getConfigValueSource(configValueSources, configName);
@@ -9,7 +9,6 @@ export type { VikeConfigObject };
9
9
  export type { InterfaceValueFile };
10
10
  export type { InterfaceFile };
11
11
  export type { VikeConfigGlobal };
12
- export type { VikeConfigNew };
13
12
  export type { VikeVitePluginOptions };
14
13
  import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
15
14
  import { type LocationId } from './getVikeConfig/filesystemRouting.js';
@@ -36,14 +35,11 @@ type InterfaceValueFile = InterfaceFileCommons & {
36
35
  configName: string;
37
36
  };
38
37
  type ConfigName = string;
39
- type VikeConfigNew = {
40
- global: ReturnType<typeof getPageConfigUserFriendlyNew>;
41
- };
42
38
  type VikeConfigObject = {
43
39
  pageConfigs: PageConfigBuildTime[];
44
40
  pageConfigGlobal: PageConfigGlobalBuildTime;
45
41
  vikeConfigGlobal: VikeConfigGlobal;
46
- vikeConfigNew: VikeConfigNew;
42
+ global: ReturnType<typeof getPageConfigUserFriendlyNew>;
47
43
  };
48
44
  declare const vikeConfigDependencies: Set<string>;
49
45
  declare function reloadVikeConfig(config: ResolvedConfig): void;
@@ -65,7 +61,6 @@ type VikeConfigGlobal = {
65
61
  includeAssetsImportedByServer: boolean;
66
62
  baseAssets: string | null;
67
63
  baseServer: string | null;
68
- redirects: Record<string, string>;
69
64
  trailingSlash: boolean;
70
65
  disableUrlNormalization: boolean;
71
66
  };