vike 0.4.218-commit-85af52a → 0.4.218-commit-65f582c

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 (59) 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/cjs/utils/assertSetup.js +22 -14
  21. package/dist/esm/__internal/index.js +2 -3
  22. package/dist/esm/client/client-routing-runtime/createPageContext.js +1 -4
  23. package/dist/esm/client/server-routing-runtime/getPageContext.js +1 -4
  24. package/dist/esm/node/api/prepareViteApiCall.js +1 -2
  25. package/dist/esm/node/plugin/plugins/baseUrls.js +1 -1
  26. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -4
  27. package/dist/esm/node/plugin/plugins/commonConfig.js +1 -1
  28. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
  29. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -21
  30. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +1 -6
  31. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +108 -178
  32. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  33. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +2 -2
  34. package/dist/esm/node/prerender/runPrerender.js +75 -34
  35. package/dist/esm/node/prerender/utils.d.ts +1 -0
  36. package/dist/esm/node/prerender/utils.js +1 -0
  37. package/dist/esm/node/runtime/globalContext.d.ts +17 -3
  38. package/dist/esm/node/runtime/globalContext.js +32 -6
  39. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +27 -42
  40. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  41. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
  42. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
  43. package/dist/esm/node/runtime/renderPage.js +22 -23
  44. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  45. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
  46. package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
  47. package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +2 -0
  48. package/dist/esm/shared/getPageFiles/getPageFiles.js +6 -3
  49. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
  50. package/dist/esm/shared/page-configs/Config.d.ts +13 -1
  51. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +7 -4
  52. package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +2 -2
  53. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -6
  54. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +4 -4
  55. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  56. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  57. package/dist/esm/utils/assertSetup.js +22 -14
  58. package/dist/esm/utils/projectInfo.d.ts +1 -1
  59. package/package.json +1 -1
@@ -4,12 +4,15 @@ export { setPageFilesAsync };
4
4
  import { assert, unique } from '../utils.js';
5
5
  import { parseGlobResults } from './parseGlobResults.js';
6
6
  import { getGlobalObject } from '../../utils/getGlobalObject.js';
7
+ import { getPageConfigUserFriendlyNew } from '../page-configs/getPageConfigUserFriendly.js';
7
8
  const globalObject = getGlobalObject('setPageFiles.ts', {});
8
9
  function setPageFiles(pageFilesExports) {
9
10
  const { pageFiles, pageConfigs, pageConfigGlobal } = parseGlobResults(pageFilesExports);
10
11
  globalObject.pageFilesAll = pageFiles;
11
12
  globalObject.pageConfigs = pageConfigs;
12
13
  globalObject.pageConfigGlobal = pageConfigGlobal;
14
+ // TODO/now: re-use this call, instead of calling it twice
15
+ globalObject.globalConfig = getPageConfigUserFriendlyNew(pageConfigGlobal);
13
16
  }
14
17
  function setPageFilesAsync(getPageFilesExports) {
15
18
  globalObject.pageFilesGetter = async () => {
@@ -30,10 +33,10 @@ async function getPageFilesAll(isClientSide, isProduction) {
30
33
  await globalObject.pageFilesGetter();
31
34
  }
32
35
  }
33
- const { pageFilesAll, pageConfigs, pageConfigGlobal } = globalObject;
34
- assert(pageFilesAll && pageConfigs && pageConfigGlobal);
36
+ const { pageFilesAll, pageConfigs, pageConfigGlobal, globalConfig } = globalObject;
37
+ assert(pageFilesAll && pageConfigs && pageConfigGlobal && globalConfig);
35
38
  const allPageIds = getAllPageIds(pageFilesAll, pageConfigs);
36
- return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal };
39
+ return { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal, globalConfig };
37
40
  }
38
41
  function getAllPageIds(allPageFiles, pageConfigs) {
39
42
  const fileIds = allPageFiles.filter(({ isDefaultPageFile }) => !isDefaultPageFile).map(({ pageId }) => pageId);
@@ -1,11 +1,15 @@
1
1
  export type { PageContextConfig };
2
+ export type { ConfigResolved };
2
3
  import type { VikePackages } from '../../VikeNamespace.js';
3
- import type { ConfigBuiltIn, ImportString } from '../Config.js';
4
+ import type { ConfigBuiltIn, ConfigBuiltInResolved, ImportString } from '../Config.js';
4
5
  import type { Combine, IsNotEmpty, XOR5 } from './helpers.js';
5
- type WithoutImportString<T> = {
6
- [K in keyof T]: Exclude<T[K], ImportString>;
7
- };
8
- type PageContextConfig = ConfigBuiltIn & Vike.ConfigResolved & WithoutImportString<Omit<Vike.Config, keyof Vike.ConfigResolved>> & (ConfigVikePackagesNotEmptyXor extends true ? ConfigVikePackagesIntersection : ConfigVikePackagesCombined);
6
+ type PageContextConfig = ConfigResolved & (ConfigVikePackagesNotEmptyXor extends true ? ConfigVikePackagesIntersection : ConfigVikePackagesCombined);
7
+ type ConfigUnresolved = WithoutImportString<ConfigBuiltIn & Vike.Config>;
8
+ type ConfigResolvedOnly = ConfigBuiltInResolved & Vike.ConfigResolved;
9
+ type ConfigResolved = ConfigResolvedOnly & Omit<ConfigUnresolved, keyof ConfigResolvedOnly>;
9
10
  type ConfigVikePackagesIntersection = VikePackages.ConfigVikeReact & VikePackages.ConfigVikeVue & VikePackages.ConfigVikeSolid & VikePackages.ConfigVikeSvelte & VikePackages.ConfigVikeAngular;
10
11
  type ConfigVikePackagesCombined = Combine<VikePackages.ConfigVikeReact, Combine<VikePackages.ConfigVikeVue, Combine<VikePackages.ConfigVikeSolid, Combine<VikePackages.ConfigVikeSvelte, VikePackages.ConfigVikeAngular>>>>;
11
12
  type ConfigVikePackagesNotEmptyXor = XOR5<IsNotEmpty<VikePackages.ConfigVikeReact>, IsNotEmpty<VikePackages.ConfigVikeVue>, IsNotEmpty<VikePackages.ConfigVikeSolid>, IsNotEmpty<VikePackages.ConfigVikeSvelte>, IsNotEmpty<VikePackages.ConfigVikeAngular>>;
13
+ type WithoutImportString<T> = {
14
+ [K in keyof T]: Exclude<T[K], ImportString>;
15
+ };
@@ -1,6 +1,8 @@
1
1
  export type { Config };
2
2
  export type { ConfigBuiltIn };
3
+ export type { ConfigBuiltInResolved };
3
4
  export type { ConfigNameBuiltIn };
5
+ export type { ConfigNameGlobal };
4
6
  export type { ConfigMeta };
5
7
  export type { HookName };
6
8
  export type { HookNamePage };
@@ -44,7 +46,8 @@ type HookName = HookNamePage | HookNameGlobal | HookNameOldDesign;
44
46
  type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data';
45
47
  type HookNameGlobal = 'onBeforePrerender' | 'onBeforeRoute' | 'onPrerenderStart';
46
48
  type HookNameOldDesign = 'render' | 'prerender';
47
- type ConfigNameBuiltIn = Exclude<keyof Config, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite'> | 'prerender' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware';
49
+ type ConfigNameBuiltIn = Exclude<keyof Config, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite' | 'redirects'> | 'prerender' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware';
50
+ type ConfigNameGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization' | 'vite';
48
51
  type Config = ConfigBuiltIn & Vike.Config & (VikePackages.ConfigVikeReact | VikePackages.ConfigVikeVue | VikePackages.ConfigVikeSolid | VikePackages.ConfigVikeSvelte | VikePackages.ConfigVikeAngular);
49
52
  /** Hook for fetching data.
50
53
  *
@@ -350,6 +353,11 @@ type ConfigBuiltIn = {
350
353
  * https://vite.dev/config/
351
354
  */
352
355
  vite?: InlineConfig;
356
+ /** Permanent redirections (HTTP status code 301)
357
+ *
358
+ * https://vike.dev/redirects
359
+ */
360
+ redirects?: Record<string, string>;
353
361
  /**
354
362
  * @experimental DON'T USE: the API *will* have breaking changes upon any minor version release.
355
363
  *
@@ -396,5 +404,9 @@ type ConfigBuiltIn = {
396
404
  */
397
405
  keepScrollPosition?: KeepScrollPosition;
398
406
  };
407
+ type ConfigBuiltInResolved = {
408
+ passToClient?: string[][];
409
+ redirects?: Record<string, string>[];
410
+ };
399
411
  type ConfigMeta = Record<string, ConfigDefinition>;
400
412
  type ImportString = `import:${string}`;
@@ -1,5 +1,6 @@
1
1
  export { getPageConfigUserFriendly };
2
2
  export { getPageConfigUserFriendlyNew };
3
+ export type { ConfigUserFriendly };
3
4
  export type { PageConfigUserFriendly };
4
5
  export type { Source };
5
6
  export type { Sources };
@@ -10,6 +11,7 @@ import type { FileType } from '../getPageFiles/fileTypes.js';
10
11
  import type { PageFile } from '../getPageFiles/getPageFileObject.js';
11
12
  import type { ConfigValues, PageConfigRuntimeLoaded } from './PageConfig.js';
12
13
  import { type ConfigDefinedAtOptional } from './getConfigDefinedAt.js';
14
+ import type { ConfigResolved } from './Config/PageContextConfig.js';
13
15
  type ExportsAll = Record<string, {
14
16
  exportValue: unknown;
15
17
  exportSource: string;
@@ -72,13 +74,14 @@ type SourceConfigsComputed = {
72
74
  value: unknown;
73
75
  };
74
76
  declare function getPageConfigUserFriendly(pageFiles: PageFile[], pageConfig: PageConfigRuntimeLoaded | null): PageConfigUserFriendly;
75
- declare function getPageConfigUserFriendlyNew(pageConfig: {
76
- configValues: ConfigValues;
77
- }): {
78
- config: Record<string, unknown>;
77
+ type ConfigUserFriendly = {
78
+ config: ConfigResolved;
79
79
  configEntries: ConfigEntries;
80
80
  exportsAll: ExportsAll;
81
81
  source: Source;
82
82
  sources: Sources;
83
83
  from: From;
84
84
  };
85
+ declare function getPageConfigUserFriendlyNew(pageConfig: {
86
+ configValues: ConfigValues;
87
+ }): ConfigUserFriendly;
@@ -78,8 +78,8 @@ function getPageConfigUserFriendly(pageFiles, pageConfig) {
78
78
  // V1 design
79
79
  function getPageConfigUserFriendlyNew(pageConfig) {
80
80
  const config = {};
81
- const configEntries = {}; // TODO/v1-release: remove
82
- const exportsAll = {}; // TODO/v1-release: remove
81
+ const configEntries = {};
82
+ const exportsAll = {};
83
83
  const source = {};
84
84
  const sources = {};
85
85
  const from = {
@@ -1,12 +1,8 @@
1
1
  export { serializeConfigValues };
2
2
  export { getConfigValuesBase };
3
3
  import type { ConfigEnvInternal, ConfigValueSource, DefinedAtFile, PageConfigBuildTime, PageConfigGlobalBuildTime } from '../PageConfig.js';
4
- declare function serializeConfigValues(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, importStatements: string[], isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, { isEager }: {
5
- isEager: boolean;
6
- }, tabspace: string): string[];
7
- declare function getConfigValuesBase(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, { isEager }?: {
8
- isEager?: boolean;
9
- }): ConfigValuesBase;
4
+ declare function serializeConfigValues(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, importStatements: string[], isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, tabspace: string, isEager: boolean | null): string[];
5
+ declare function getConfigValuesBase(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, isEager: boolean | null): ConfigValuesBase;
10
6
  type ConfigValuesBase = ({
11
7
  configValueBase: {
12
8
  type: 'computed';
@@ -13,10 +13,10 @@ const REPLACE_ME_AFTER = '__VIKE__REPLACE_ME_AFTER__';
13
13
  // - vike/shared/page-configs/serialize/parsePageConfigs.ts
14
14
  // - parsePageConfigs() is loaded on both the client- and server-side.
15
15
  assertIsNotProductionRuntime();
16
- function serializeConfigValues(pageConfig, importStatements, isEnvMatch, { isEager }, tabspace) {
16
+ function serializeConfigValues(pageConfig, importStatements, isEnvMatch, tabspace, isEager) {
17
17
  const lines = [];
18
18
  tabspace += ' ';
19
- getConfigValuesBase(pageConfig, isEnvMatch, { isEager }).forEach((entry) => {
19
+ getConfigValuesBase(pageConfig, isEnvMatch, isEager).forEach((entry) => {
20
20
  if (entry.configValueBase.type === 'computed') {
21
21
  assert('value' in entry); // Help TS
22
22
  const { configValueBase, value, configName } = entry;
@@ -165,7 +165,7 @@ function logJsonSerializeError(err, configName, definedAtData) {
165
165
  assert(configValueFilePathToShowToUser);
166
166
  assertUsage(false, `${pc.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
167
167
  }
168
- function getConfigValuesBase(pageConfig, isEnvMatch, { isEager } = {}) {
168
+ function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
169
169
  const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
170
170
  if (!isEnvMatch(valueInfo.configEnv))
171
171
  return 'SKIP';
@@ -181,7 +181,7 @@ function getConfigValuesBase(pageConfig, isEnvMatch, { isEager } = {}) {
181
181
  const fromSources = Object.entries(pageConfig.configValueSources).map(([configName, sources]) => {
182
182
  const configDef = pageConfig.configDefinitions[configName];
183
183
  assert(configDef);
184
- if (isEager !== undefined && isEager !== !!configDef.eager)
184
+ if (isEager !== null && isEager !== !!configDef.eager)
185
185
  return 'SKIP';
186
186
  if (!configDef.cumulative) {
187
187
  const source = sources[0];
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.218-commit-85af52a";
1
+ export declare const PROJECT_VERSION: "0.4.218-commit-65f582c";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.218-commit-85af52a';
2
+ export const PROJECT_VERSION = '0.4.218-commit-65f582c';
@@ -30,7 +30,7 @@ function onSetupRuntime() {
30
30
  return;
31
31
  if (!isViteLoaded()) {
32
32
  // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
33
- assertWarning(!isNodeEnvDev(), `The ${getEnvDescription()}, which seems contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
33
+ assertWarning(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
34
34
  assertUsage(!setup.vikeVitePlugin, "Loading Vike's Vite plugin (the vike/plugin module) is prohibited in production.");
35
35
  // This assert() one of the main goal of this file: it ensures assertIsNotProductionRuntime()
36
36
  assert(!setup.shouldNotBeProduction);
@@ -57,7 +57,7 @@ function onSetupBuild() {
57
57
  }
58
58
  function onSetupPrerender() {
59
59
  markSetup_isPrerendering();
60
- if (getNodeEnvValue())
60
+ if (getNodeEnv())
61
61
  assertUsageNodeEnvIsNotDev('pre-rendering');
62
62
  setNodeEnvProduction();
63
63
  }
@@ -66,7 +66,7 @@ function isViteLoaded() {
66
66
  return setup.viteDevServer || setup.vitePreviewServer || setup.isViteDev !== undefined;
67
67
  }
68
68
  function isTest() {
69
- return isVitest() || getNodeEnvValue() === 'test';
69
+ return isVitest() || isNodeEnv('test');
70
70
  }
71
71
  // Called by Vite hook configureServer()
72
72
  function markSetup_viteDevServer() {
@@ -105,26 +105,34 @@ function assertUsageNodeEnvIsNotDev(operation) {
105
105
  assertWarning(false, `The ${getEnvDescription()} which is forbidden upon ${operation}, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
106
106
  }
107
107
  function getEnvDescription() {
108
- const nodeEnv = getNodeEnvValue();
109
- const isDev = isNodeEnvDev();
110
- const envType = `${(isDev ? 'development' : 'production')} environment`;
111
- const nodeEnvDesc = `environment is set to be a ${pc.bold(envType)} by ${pc.cyan(`process.env.NODE_ENV===${JSON.stringify(nodeEnv)}`)}`;
108
+ const envType = `${(isNodeEnvDev() ? 'development' : 'production')} environment`;
109
+ const nodeEnvDesc = `environment is set to be a ${pc.bold(envType)} by ${pc.cyan(`process.env.NODE_ENV===${JSON.stringify(getNodeEnv())}`)}`;
112
110
  return nodeEnvDesc;
113
111
  }
114
112
  function isNodeEnvDev() {
115
- const nodeEnv = getNodeEnvValue();
113
+ const nodeEnv = getNodeEnv();
116
114
  // That's quite strict, let's see if some user complains
117
- return !nodeEnv || ['development', 'dev'].includes(nodeEnv);
115
+ return !nodeEnv || isNodeEnv(['development', 'dev']);
118
116
  }
119
- function getNodeEnvValue() {
120
- if (typeof process === 'undefined')
121
- return null;
122
- return process.env.NODE_ENV?.toLowerCase();
117
+ function isNodeEnv(value) {
118
+ const values = Array.isArray(value) ? value : [value];
119
+ const nodeEnv = getNodeEnv();
120
+ return nodeEnv !== undefined && values.includes(nodeEnv.toLowerCase());
121
+ }
122
+ function getNodeEnv() {
123
+ let val;
124
+ try {
125
+ val = process.env.NODE_ENV;
126
+ }
127
+ catch {
128
+ return undefined;
129
+ }
130
+ return val;
123
131
  }
124
132
  function setNodeEnvProduction() {
125
133
  // The statement `process.env['NODE_ENV'] = 'production'` chokes webpack v4
126
134
  const proc = process;
127
135
  const { env } = proc;
128
136
  env.NODE_ENV = 'production';
129
- assert(getNodeEnvValue() === 'production');
137
+ assert(isNodeEnv('production'));
130
138
  }
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.218-commit-85af52a";
3
+ projectVersion: "0.4.218-commit-65f582c";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.218-commit-85af52a",
3
+ "version": "0.4.218-commit-65f582c",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {