vike 0.4.224 → 0.4.225-commit-2b7971f
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.
- package/dist/cjs/client/shared/getPageContextProxyForUser.js +3 -66
- package/dist/cjs/node/api/build.js +1 -1
- package/dist/cjs/node/api/context.js +4 -4
- package/dist/cjs/node/api/dev.js +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +25 -14
- package/dist/cjs/node/api/prerender.js +1 -1
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/cli/context.js +5 -4
- package/dist/cjs/node/cli/entry.js +3 -3
- package/dist/cjs/node/cli/parseCli.js +43 -15
- package/dist/cjs/node/cli/utils.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +1 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +16 -11
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +14 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +139 -84
- package/dist/cjs/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +10 -1
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/cjs/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/cjs/node/plugin/shared/loggerNotProd/log.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +33 -18
- package/dist/cjs/node/prerender/runPrerender.js +12 -18
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +9 -5
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +67 -14
- package/dist/cjs/node/runtime/html/stream.js +7 -0
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +14 -5
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
- package/dist/cjs/node/runtime/renderPage.js +19 -38
- package/dist/cjs/node/runtime/utils.js +0 -1
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/cjs/node/shared/assertV1Design.js +2 -1
- package/dist/cjs/node/shared/utils.js +0 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +5 -0
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +19 -2
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/cjs/shared/page-configs/helpers.js +1 -1
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -2
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +12 -5
- package/dist/cjs/utils/assertSingleInstance.js +11 -17
- package/dist/cjs/utils/debug.js +2 -1
- package/dist/cjs/utils/getRandomId.js +1 -1
- package/dist/cjs/utils/normalizeHeaders.js +1 -1
- package/dist/cjs/utils/objectAssign.js +7 -2
- package/dist/cjs/utils/parseUrl-extras.js +1 -0
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -3
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +1 -1
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +6 -3
- package/dist/esm/client/server-routing-runtime/getPageContext.js +6 -3
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +1 -11
- package/dist/esm/client/shared/getPageContextProxyForUser.js +4 -67
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/build.js +1 -1
- package/dist/esm/node/api/context.d.ts +8 -2
- package/dist/esm/node/api/context.js +4 -4
- package/dist/esm/node/api/dev.js +1 -1
- package/dist/esm/node/api/prepareViteApiCall.d.ts +2 -2
- package/dist/esm/node/api/prepareViteApiCall.js +25 -14
- package/dist/esm/node/api/prerender.js +1 -1
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/api/types.d.ts +7 -0
- package/dist/esm/node/cli/context.d.ts +4 -2
- package/dist/esm/node/cli/context.js +5 -4
- package/dist/esm/node/cli/entry.js +4 -4
- package/dist/esm/node/cli/parseCli.d.ts +3 -0
- package/dist/esm/node/cli/parseCli.js +44 -16
- package/dist/esm/node/cli/utils.d.ts +1 -1
- package/dist/esm/node/cli/utils.js +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +2 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +16 -11
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -4
- package/dist/esm/node/plugin/plugins/devConfig/index.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +15 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +3 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +10 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +5 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -12
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +141 -85
- package/dist/esm/node/plugin/plugins/previewConfig.js +12 -7
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +11 -2
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +1 -1
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +5 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.d.ts +3 -1
- package/dist/esm/node/plugin/shared/getEnvVarObject.js +9 -8
- package/dist/esm/node/plugin/shared/loggerNotProd/log.js +2 -2
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +2 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +34 -19
- package/dist/esm/node/prerender/runPrerender.js +13 -19
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +1 -1
- package/dist/esm/node/runtime/globalContext.js +10 -6
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +6 -3
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +2 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +69 -15
- package/dist/esm/node/runtime/html/stream.js +7 -0
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -3
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +15 -6
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +2 -4
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +6 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +3 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +32 -6
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +18 -12
- package/dist/esm/node/runtime/renderPage.js +21 -40
- package/dist/esm/node/runtime/utils.d.ts +0 -1
- package/dist/esm/node/runtime/utils.js +0 -1
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +10 -8
- package/dist/esm/node/shared/assertV1Design.js +2 -1
- package/dist/esm/node/shared/utils.d.ts +0 -1
- package/dist/esm/node/shared/utils.js +0 -1
- package/dist/esm/shared/NOT_SERIALIZABLE.d.ts +1 -0
- package/dist/esm/shared/NOT_SERIALIZABLE.js +2 -0
- package/dist/esm/shared/page-configs/Config.d.ts +23 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +17 -6
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +5 -3
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +20 -3
- package/dist/esm/shared/page-configs/getConfigValueBuildTime.js +8 -5
- package/dist/esm/shared/page-configs/helpers.js +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -5
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -3
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +9 -5
- package/dist/esm/shared/route/abort.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +2 -2
- package/dist/esm/shared/types.d.ts +39 -3
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.d.ts +2 -1
- package/dist/esm/utils/assert.js +12 -5
- package/dist/esm/utils/assertSingleInstance.js +11 -17
- package/dist/esm/utils/debug.js +2 -1
- package/dist/esm/utils/getRandomId.d.ts +1 -1
- package/dist/esm/utils/getRandomId.js +1 -1
- package/dist/esm/utils/normalizeHeaders.js +1 -1
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +7 -2
- package/dist/esm/utils/parseUrl-extras.js +1 -0
- package/package.json +6 -3
- package/dist/cjs/shared/notSerializable.js +0 -5
- package/dist/cjs/utils/projectInfo.js +0 -8
- package/dist/esm/shared/notSerializable.d.ts +0 -1
- package/dist/esm/shared/notSerializable.js +0 -2
- package/dist/esm/utils/projectInfo.d.ts +0 -4
- package/dist/esm/utils/projectInfo.js +0 -5
|
@@ -4,10 +4,6 @@ import { assert, assertUsage, isCallable } from '../../utils.js';
|
|
|
4
4
|
import { getConfigDefinedAt } from '../getConfigDefinedAt.js';
|
|
5
5
|
import { parseTransform } from '@brillout/json-serializer/parse';
|
|
6
6
|
import { assertPlusFileExport } from '../assertPlusFileExport.js';
|
|
7
|
-
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
8
|
-
const configValues = parseConfigValuesSerialized_tmp(configValuesSerialized);
|
|
9
|
-
return configValues;
|
|
10
|
-
}
|
|
11
7
|
function parsePageConfigs(pageConfigsSerialized, pageConfigGlobalSerialized) {
|
|
12
8
|
// pageConfigs
|
|
13
9
|
const pageConfigs = pageConfigsSerialized.map((pageConfigSerialized) => {
|
|
@@ -43,7 +39,7 @@ function assertRouteConfigValue(configValues) {
|
|
|
43
39
|
}
|
|
44
40
|
*/
|
|
45
41
|
}
|
|
46
|
-
function
|
|
42
|
+
function parseConfigValuesSerialized(configValuesSerialized) {
|
|
47
43
|
const configValues = {};
|
|
48
44
|
Object.entries(configValuesSerialized).forEach(([configName, configValueSeriliazed]) => {
|
|
49
45
|
let configValue;
|
|
@@ -100,6 +96,7 @@ function parseValueSerialized(valueSerialized, configName, getDefinedAtFile) {
|
|
|
100
96
|
if (valueSerialized.type === 'plus-file') {
|
|
101
97
|
const definedAtFile = getDefinedAtFile();
|
|
102
98
|
const { exportValues } = valueSerialized;
|
|
99
|
+
assert(!definedAtFile.definedBy);
|
|
103
100
|
assertPlusFileExport(exportValues, definedAtFile.filePathToShowToUser, configName);
|
|
104
101
|
let value;
|
|
105
102
|
let valueWasFound = false;
|
|
@@ -2,7 +2,7 @@ export { serializeConfigValues };
|
|
|
2
2
|
export { getConfigValuesBase };
|
|
3
3
|
export { isJsonValue };
|
|
4
4
|
export type { FilesEnv };
|
|
5
|
-
import type { ConfigEnvInternal, ConfigValueSource,
|
|
5
|
+
import type { ConfigEnvInternal, ConfigValueSource, DefinedAt, PageConfigBuildTime, PageConfigGlobalBuildTime } from '../PageConfig.js';
|
|
6
6
|
declare function serializeConfigValues(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, importStatements: string[], filesEnv: FilesEnv, isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, tabspace: string, isEager: boolean | null): string[];
|
|
7
7
|
declare function isJsonValue(value: unknown): boolean;
|
|
8
8
|
declare function getConfigValuesBase(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, isEnvMatch: (configEnv: ConfigEnvInternal) => boolean, isEager: boolean | null): ConfigValuesBase;
|
|
@@ -17,14 +17,14 @@ type ConfigValuesBase = ({
|
|
|
17
17
|
} | {
|
|
18
18
|
configValueBase: {
|
|
19
19
|
type: 'standard';
|
|
20
|
-
definedAtData:
|
|
20
|
+
definedAtData: DefinedAt;
|
|
21
21
|
};
|
|
22
22
|
sourceRelevant: ConfigValueSource;
|
|
23
23
|
configName: string;
|
|
24
24
|
} | {
|
|
25
25
|
configValueBase: {
|
|
26
26
|
type: 'cumulative';
|
|
27
|
-
definedAtData:
|
|
27
|
+
definedAtData: DefinedAt[];
|
|
28
28
|
};
|
|
29
29
|
sourcesRelevant: ConfigValueSource[];
|
|
30
30
|
configName: string;
|
|
@@ -47,7 +47,7 @@ function serializeConfigValues(pageConfig, importStatements, filesEnv, isEnvMatc
|
|
|
47
47
|
function getValueSerializedFromSource(configValueSource, configName, importStatements, filesEnv) {
|
|
48
48
|
let valueData;
|
|
49
49
|
if (configValueSource.valueIsLoaded && !configValueSource.valueIsLoadedWithImport) {
|
|
50
|
-
valueData = getValueSerializedWithJson(configValueSource.value, configName, configValueSource.
|
|
50
|
+
valueData = getValueSerializedWithJson(configValueSource.value, configName, configValueSource.definedAt, importStatements, filesEnv, configValueSource.configEnv);
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
53
|
valueData = getValueSerializedWithImport(configValueSource, importStatements, filesEnv, configName);
|
|
@@ -98,8 +98,9 @@ function serializeConfigValue(configValueBase, valueData, configName, lines, tab
|
|
|
98
98
|
}
|
|
99
99
|
function getValueSerializedWithImport(configValueSource, importStatements, filesEnv, configName) {
|
|
100
100
|
assert(!configValueSource.valueIsFilePath);
|
|
101
|
-
const { valueIsDefinedByPlusValueFile,
|
|
102
|
-
|
|
101
|
+
const { valueIsDefinedByPlusValueFile, definedAt, configEnv } = configValueSource;
|
|
102
|
+
assert(!definedAt.definedBy);
|
|
103
|
+
const { filePathAbsoluteVite, fileExportName } = definedAt;
|
|
103
104
|
if (valueIsDefinedByPlusValueFile)
|
|
104
105
|
assert(fileExportName === undefined);
|
|
105
106
|
const { importName } = addImportStatement(importStatements, filePathAbsoluteVite, fileExportName || '*', filesEnv, configEnv, configName);
|
|
@@ -226,9 +227,12 @@ function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
|
|
|
226
227
|
return [...fromComputed, ...fromSources].filter((r) => r !== 'SKIP');
|
|
227
228
|
}
|
|
228
229
|
function getDefinedAtFileSource(source) {
|
|
230
|
+
const { definedAt } = source;
|
|
231
|
+
if (definedAt.definedBy)
|
|
232
|
+
return definedAt;
|
|
229
233
|
const definedAtFile = {
|
|
230
|
-
filePathToShowToUser:
|
|
231
|
-
fileExportPathToShowToUser:
|
|
234
|
+
filePathToShowToUser: definedAt.filePathToShowToUser,
|
|
235
|
+
fileExportPathToShowToUser: definedAt.fileExportPathToShowToUser
|
|
232
236
|
};
|
|
233
237
|
return definedAtFile;
|
|
234
238
|
}
|
|
@@ -100,9 +100,9 @@ declare function logAbortErrorHandled(err: ErrorAbort, isProduction: boolean, pa
|
|
|
100
100
|
}): void;
|
|
101
101
|
type PageContextFromRewrite = {
|
|
102
102
|
_urlRewrite: string;
|
|
103
|
-
}
|
|
103
|
+
};
|
|
104
104
|
type PageContextFromAllRewrites = {
|
|
105
105
|
_urlRewrite: null | string;
|
|
106
|
-
}
|
|
106
|
+
};
|
|
107
107
|
declare function getPageContextFromAllRewrites(pageContextsFromRewrite: PageContextFromRewrite[]): PageContextFromAllRewrites;
|
|
108
108
|
declare function assertNoInfiniteAbortLoop(rewriteCount: number, redirectCount: number): void;
|
|
@@ -60,11 +60,11 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
|
|
|
60
60
|
if (!pageRoute) {
|
|
61
61
|
const { routeFilesystem } = pageConfig;
|
|
62
62
|
assert(routeFilesystem);
|
|
63
|
-
const { routeString,
|
|
63
|
+
const { routeString, definedAtLocation } = routeFilesystem;
|
|
64
64
|
assert(routeFilesystem.routeString.startsWith('/'));
|
|
65
65
|
pageRoute = {
|
|
66
66
|
pageId,
|
|
67
|
-
routeFilesystemDefinedBy:
|
|
67
|
+
routeFilesystemDefinedBy: definedAtLocation,
|
|
68
68
|
comesFromV1PageConfig,
|
|
69
69
|
routeString,
|
|
70
70
|
routeDefinedAtString: null,
|
|
@@ -138,8 +138,27 @@ type PageContextBuiltInCommon<Data> = {
|
|
|
138
138
|
*/
|
|
139
139
|
isBaseMissing?: true;
|
|
140
140
|
};
|
|
141
|
-
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextUrlServer
|
|
142
|
-
|
|
141
|
+
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextUrlServer & {
|
|
142
|
+
/**
|
|
143
|
+
* Whether the page is being rendered on the client-side, or rendered on the server-side / pre-rendered.
|
|
144
|
+
*
|
|
145
|
+
* In order to save client-side KBs, we recommend using `import.meta.env.SSR` whenever possible instead, see https://vike.dev/pageContext
|
|
146
|
+
*/
|
|
147
|
+
isClientSide: false;
|
|
148
|
+
/**
|
|
149
|
+
* Whether the page is being pre-rendered.
|
|
150
|
+
*
|
|
151
|
+
* The value is always `false` in development.
|
|
152
|
+
*
|
|
153
|
+
* https://vike.dev/pre-rendering
|
|
154
|
+
* https://vike.dev/pageContext
|
|
155
|
+
*/
|
|
156
|
+
isPrerendering: boolean;
|
|
157
|
+
isHydration?: undefined;
|
|
158
|
+
isBackwardNavigation?: undefined;
|
|
159
|
+
previousPageContext?: undefined;
|
|
160
|
+
};
|
|
161
|
+
type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'routeParams' | 'pageExports' | 'config' | 'configEntries' | 'exports' | 'exportsAll' | 'abortReason' | 'data' | 'pageId' | 'source' | 'sources' | 'from'> & PageContextClientCommon & {
|
|
143
162
|
/** Whether the current page is already rendered to HTML */
|
|
144
163
|
isHydration: boolean;
|
|
145
164
|
/**
|
|
@@ -155,7 +174,7 @@ type PageContextBuiltInClientWithClientRouting<Data> = Partial<PageContextBuiltI
|
|
|
155
174
|
*/
|
|
156
175
|
previousPageContext: PageContextClient<Data> | null;
|
|
157
176
|
} & PageContextUrlClient;
|
|
158
|
-
type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'pageExports' | 'exports' | 'abortReason' | 'pageId' | 'data'> & {
|
|
177
|
+
type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltInCommon<Data>> & Pick<PageContextBuiltInCommon<Data>, 'Page' | 'pageExports' | 'exports' | 'abortReason' | 'pageId' | 'data'> & PageContextClientCommon & {
|
|
159
178
|
/**
|
|
160
179
|
* Whether the current page is already rendered to HTML.
|
|
161
180
|
*
|
|
@@ -169,6 +188,23 @@ type PageContextBuiltInClientWithServerRouting<Data> = Partial<PageContextBuiltI
|
|
|
169
188
|
*/
|
|
170
189
|
isBackwardNavigation: null;
|
|
171
190
|
};
|
|
191
|
+
type PageContextClientCommon = {
|
|
192
|
+
/**
|
|
193
|
+
* Whether the page is being rendered on the client-side, or rendered on the server-side / pre-rendered.
|
|
194
|
+
*
|
|
195
|
+
* In order to save client-side KBs, we recommend using `import.meta.env.SSR` whenever possible instead, see https://vike.dev/pageContext
|
|
196
|
+
*/
|
|
197
|
+
isClientSide: true;
|
|
198
|
+
/**
|
|
199
|
+
* Whether the page is being pre-rendered.
|
|
200
|
+
*
|
|
201
|
+
* The value is always `false` in development.
|
|
202
|
+
*
|
|
203
|
+
* https://vike.dev/pre-rendering
|
|
204
|
+
* https://vike.dev/pageContext
|
|
205
|
+
*/
|
|
206
|
+
isPrerendering: false;
|
|
207
|
+
};
|
|
172
208
|
/** For Vike internal use */
|
|
173
209
|
type PageContextBuiltInServerInternal = Omit<PageContextBuiltInCommon<unknown> & PageContextUrlInternal, 'data'>;
|
|
174
210
|
/** @deprecated
|
|
@@ -8,9 +8,11 @@ export type { PageContextBuiltInServer } from '../shared/types.js';
|
|
|
8
8
|
export type { PageContextBuiltInClientWithClientRouting } from '../shared/types.js';
|
|
9
9
|
export type { PageContextBuiltInClientWithServerRouting } from '../shared/types.js';
|
|
10
10
|
export type { Config, ConfigMeta as Meta, ImportString, DataAsync, DataSync, GuardAsync, GuardSync, OnBeforePrerenderStartAsync, OnBeforePrerenderStartSync, OnBeforeRenderAsync, OnBeforeRenderSync, OnBeforeRouteAsync, OnBeforeRouteSync, OnHydrationEndAsync, OnHydrationEndSync, OnPageTransitionEndAsync, OnPageTransitionEndSync, OnPageTransitionStartAsync, OnPageTransitionStartSync, OnPrerenderStartAsync, OnPrerenderStartSync, OnRenderClientAsync, OnRenderClientSync, OnRenderHtmlAsync, OnRenderHtmlSync, RouteAsync, RouteSync, KeepScrollPosition } from '../shared/page-configs/Config.js';
|
|
11
|
+
export type { ConfigResolved } from '../shared/page-configs/Config/PageContextConfig.js';
|
|
11
12
|
export type { ConfigEnv } from '../shared/page-configs/PageConfig.js';
|
|
12
13
|
export type { ConfigDefinition, ConfigEffect } from '../node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js';
|
|
13
14
|
export type { ConfigEntries } from '../shared/page-configs/getPageConfigUserFriendly.js';
|
|
15
|
+
export type { VikeConfigPublic as VikeConfig } from '../node/plugin/plugins/commonConfig.js';
|
|
14
16
|
export type { UrlPublic as Url } from '../utils/parseUrl.js';
|
|
15
17
|
export type { InjectFilterEntry } from '../node/runtime/html/injectAssets/getHtmlTags.js';
|
|
16
18
|
export { defineConfig } from './defineConfig.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.225-commit-2b7971f";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Automatically updated by @brillout/release-me
|
|
2
|
-
export const PROJECT_VERSION = '0.4.
|
|
2
|
+
export const PROJECT_VERSION = '0.4.225-commit-2b7971f';
|
|
@@ -10,8 +10,9 @@ export { isBug };
|
|
|
10
10
|
export { setAlwaysShowStackTrace };
|
|
11
11
|
type Logger = (msg: string | Error, logType: 'warn' | 'info') => void;
|
|
12
12
|
declare function assert(condition: unknown, debugInfo?: unknown): asserts condition;
|
|
13
|
-
declare function assertUsage(condition: unknown, errMsg: string, { showStackTrace }?: {
|
|
13
|
+
declare function assertUsage(condition: unknown, errMsg: string, { showStackTrace, exitOnError }?: {
|
|
14
14
|
showStackTrace?: true;
|
|
15
|
+
exitOnError?: boolean;
|
|
15
16
|
}): asserts condition;
|
|
16
17
|
declare function getProjectError(errMsg: string): Error;
|
|
17
18
|
declare function assertWarning(condition: unknown, msg: string, { onlyOnce, showStackTrace }: {
|
package/dist/esm/utils/assert.js
CHANGED
|
@@ -12,7 +12,7 @@ import { assertSingleInstance_onAssertModuleLoad } from './assertSingleInstance.
|
|
|
12
12
|
import { createErrorWithCleanStackTrace } from './createErrorWithCleanStackTrace.js';
|
|
13
13
|
import { getGlobalObject } from './getGlobalObject.js';
|
|
14
14
|
import { isObject } from './isObject.js';
|
|
15
|
-
import {
|
|
15
|
+
import { PROJECT_VERSION } from './PROJECT_VERSION.js';
|
|
16
16
|
import pc from '@brillout/picocolors';
|
|
17
17
|
const globalObject = getGlobalObject('utils/assert.ts', {
|
|
18
18
|
alreadyLogged: new Set(),
|
|
@@ -29,7 +29,7 @@ const globalObject = getGlobalObject('utils/assert.ts', {
|
|
|
29
29
|
});
|
|
30
30
|
assertSingleInstance_onAssertModuleLoad();
|
|
31
31
|
const projectTag = `[vike]`;
|
|
32
|
-
const projectTagWithVersion = `[vike@${
|
|
32
|
+
const projectTagWithVersion = `[vike@${PROJECT_VERSION}]`;
|
|
33
33
|
const bugTag = 'Bug';
|
|
34
34
|
const numberOfStackTraceLinesToRemove = 2;
|
|
35
35
|
function assert(condition, debugInfo) {
|
|
@@ -42,7 +42,7 @@ function assert(condition, debugInfo) {
|
|
|
42
42
|
const debugInfoSerialized = typeof debugInfo === 'string' ? debugInfo : JSON.stringify(debugInfo);
|
|
43
43
|
return pc.dim(`Debug info (for Vike maintainers; you can ignore this): ${debugInfoSerialized}`);
|
|
44
44
|
})();
|
|
45
|
-
const link = pc.
|
|
45
|
+
const link = pc.underline('https://github.com/vikejs/vike/issues/new?template=bug.yml');
|
|
46
46
|
let errMsg = [
|
|
47
47
|
`You stumbled upon a Vike bug. Go to ${link} and copy-paste this error. A maintainer will fix the bug (usually within 24 hours).`,
|
|
48
48
|
debugStr
|
|
@@ -56,7 +56,7 @@ function assert(condition, debugInfo) {
|
|
|
56
56
|
globalObject.onBeforeLog?.();
|
|
57
57
|
throw internalError;
|
|
58
58
|
}
|
|
59
|
-
function assertUsage(condition, errMsg, { showStackTrace } = {}) {
|
|
59
|
+
function assertUsage(condition, errMsg, { showStackTrace, exitOnError } = {}) {
|
|
60
60
|
if (condition)
|
|
61
61
|
return;
|
|
62
62
|
showStackTrace = showStackTrace || globalObject.alwaysShowStackTrace;
|
|
@@ -68,7 +68,13 @@ function assertUsage(condition, errMsg, { showStackTrace } = {}) {
|
|
|
68
68
|
globalObject.showStackTraceList.add(usageError);
|
|
69
69
|
}
|
|
70
70
|
globalObject.onBeforeLog?.();
|
|
71
|
-
|
|
71
|
+
if (!exitOnError) {
|
|
72
|
+
throw usageError;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
console.error(showStackTrace ? usageError : errMsg);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
79
|
function getProjectError(errMsg) {
|
|
74
80
|
errMsg = addWhitespace(errMsg);
|
|
@@ -182,6 +188,7 @@ function overwriteAssertProductionLogger(logger) {
|
|
|
182
188
|
function isBug(err) {
|
|
183
189
|
return String(err).includes(`[${bugTag}]`);
|
|
184
190
|
}
|
|
191
|
+
// Called upon `DEBUG=vike:error`
|
|
185
192
|
function setAlwaysShowStackTrace() {
|
|
186
193
|
globalObject.alwaysShowStackTrace = true;
|
|
187
194
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export { assertSingleInstance_onClientEntryServerRouting };
|
|
2
2
|
export { assertSingleInstance_onClientEntryClientRouting };
|
|
3
3
|
export { assertSingleInstance_onAssertModuleLoad };
|
|
4
|
-
// -
|
|
4
|
+
// - Show warning if there are two different Vike versions loaded
|
|
5
5
|
// - Show warning if entry of Client Routing and entry of Server Routing are both loaded
|
|
6
|
-
// - Show warning if
|
|
6
|
+
// - Show warning if Vike is loaded twice
|
|
7
7
|
import { unique } from './unique.js';
|
|
8
8
|
import { getGlobalObject } from './getGlobalObject.js';
|
|
9
|
-
import { projectInfo } from './projectInfo.js';
|
|
10
9
|
import pc from '@brillout/picocolors';
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
import { PROJECT_VERSION } from './PROJECT_VERSION.js';
|
|
11
|
+
/* Use original assertWarning() after all CJS is removed from node_modules/vike/dist/
|
|
12
|
+
import { assertWarning } from './assert.js'
|
|
13
13
|
*/
|
|
14
14
|
const globalObject = getGlobalObject('utils/assertSingleInstance.ts', {
|
|
15
15
|
instances: [],
|
|
@@ -20,9 +20,10 @@ const clientNotSingleInstance = 'Client runtime loaded twice https://vike.dev/cl
|
|
|
20
20
|
function assertSingleInstance() {
|
|
21
21
|
{
|
|
22
22
|
const versions = unique(globalObject.instances);
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
|
|
23
|
+
assertWarning(versions.length <= 1,
|
|
24
|
+
// Do *NOT* patch Vike to remove this warning: you *will* eventually encounter the issues listed at https://vike.dev/warning/version-mismatch
|
|
25
|
+
// - This happened before: https://github.com/vikejs/vike/issues/1108#issuecomment-1719061509
|
|
26
|
+
`vike@${pc.bold(versions[0])} and vike@${pc.bold(versions[1])} loaded which is highly discouraged, see ${pc.underline('https://vike.dev/warning/version-mismatch')}`, { onlyOnce: true, showStackTrace: false });
|
|
26
27
|
}
|
|
27
28
|
if (globalObject.checkSingleInstance && globalObject.instances.length > 1) {
|
|
28
29
|
/*/ Not sure whether circular dependency can cause problems? In principle not since client-side code is ESM.
|
|
@@ -62,21 +63,14 @@ function assertSingleInstance_onClientEntryClientRouting(isProduction) {
|
|
|
62
63
|
}
|
|
63
64
|
// Called by utils/assert.ts which is (most certainly) loaded by all entries. That way we don't have to call a callback for every entry. (There are a lot of entries: `client/router/`, `client/`, `node/runtime/`, `node/plugin/`, `node/cli`.)
|
|
64
65
|
function assertSingleInstance_onAssertModuleLoad() {
|
|
65
|
-
globalObject.instances.push(
|
|
66
|
+
globalObject.instances.push(PROJECT_VERSION);
|
|
66
67
|
assertSingleInstance();
|
|
67
68
|
}
|
|
68
|
-
function assertUsage(condition, errorMessage) {
|
|
69
|
-
if (condition) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const errMsg = `[vike][Wrong Usage] ${errorMessage}`;
|
|
73
|
-
throw new Error(errMsg);
|
|
74
|
-
}
|
|
75
69
|
function assertWarning(condition, errorMessage, { onlyOnce, showStackTrace }) {
|
|
76
70
|
if (condition) {
|
|
77
71
|
return;
|
|
78
72
|
}
|
|
79
|
-
const msg = `[
|
|
73
|
+
const msg = `[Vike][Warning] ${errorMessage}`;
|
|
80
74
|
if (onlyOnce) {
|
|
81
75
|
const { alreadyLogged } = globalObject;
|
|
82
76
|
const key = onlyOnce === true ? msg : onlyOnce;
|
package/dist/esm/utils/debug.js
CHANGED
|
@@ -11,6 +11,8 @@ import { isArray } from './isArray.js';
|
|
|
11
11
|
// Avoid this to be loaded in the browser. For isomorphic code: instead of `import { createDebugger } from './utils.js'`, use `globalThis.createDebugger()`.
|
|
12
12
|
assert(!isBrowser());
|
|
13
13
|
globalThis.__brillout_debug_createDebugger = createDebugger;
|
|
14
|
+
// We purposely read process.env.DEBUG early, in order to avoid users from the temptation to set process.env.DEBUG with JavaScript, since reading & writing process.env.DEBUG dynamically leads to inconsistencies: for example https://github.com/vikejs/vike/issues/2239
|
|
15
|
+
const DEBUG = getDEBUG() ?? '';
|
|
14
16
|
const flags = [
|
|
15
17
|
'vike:crawl',
|
|
16
18
|
'vike:error',
|
|
@@ -145,7 +147,6 @@ function assertFlagsActivated() {
|
|
|
145
147
|
});
|
|
146
148
|
}
|
|
147
149
|
function getFlagsActivated() {
|
|
148
|
-
const DEBUG = getDEBUG() ?? '';
|
|
149
150
|
const flagsActivated = DEBUG.match(flagRegex) ?? [];
|
|
150
151
|
const all = DEBUG.includes('vike:*');
|
|
151
152
|
return { flagsActivated, all };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { getRandomId };
|
|
2
|
-
declare function getRandomId(length
|
|
2
|
+
declare function getRandomId(length?: number): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { getRandomId };
|
|
2
2
|
import { assert } from './assert.js';
|
|
3
3
|
// https://stackoverflow.com/questions/1349404/generate-random-string-characters-in-javascript
|
|
4
|
-
function getRandomId(length) {
|
|
4
|
+
function getRandomId(length = 12) {
|
|
5
5
|
let randomId = '';
|
|
6
6
|
while (randomId.length < length) {
|
|
7
7
|
randomId += Math.random().toString(36).slice(2);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { normalizeHeaders };
|
|
2
2
|
import { isObject } from './isObject.js';
|
|
3
3
|
function normalizeHeaders(
|
|
4
|
-
/* This type is
|
|
4
|
+
/* This type is too strict which is annoying: cannot pass `string[][]` because it doesn't match the more precise type `[string,string][]`.
|
|
5
5
|
headersOriginal ConstructorParameters<typeof Headers>[0]
|
|
6
6
|
*/
|
|
7
7
|
headersOriginal) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { objectAssign };
|
|
2
|
-
declare function objectAssign<Obj extends object, ObjAddendum extends object | null>(obj: Obj, objAddendum: ObjAddendum): asserts obj is Obj & ObjAddendum;
|
|
2
|
+
declare function objectAssign<Obj extends object, ObjAddendum extends object | null>(obj: Obj, objAddendum: ObjAddendum, objAddendumCanBePageContextObject?: true): asserts obj is Obj & ObjAddendum;
|
|
@@ -3,9 +3,14 @@ import { assert } from './assert.js';
|
|
|
3
3
|
// Same as Object.assign() but:
|
|
4
4
|
// - With type inference
|
|
5
5
|
// - Preserves property descriptors, which we need for preserving the getters added by getPageContextUrlComputed()
|
|
6
|
-
function objectAssign(obj, objAddendum) {
|
|
6
|
+
function objectAssign(obj, objAddendum, objAddendumCanBePageContextObject) {
|
|
7
7
|
if (objAddendum) {
|
|
8
|
-
|
|
8
|
+
if (!objAddendumCanBePageContextObject) {
|
|
9
|
+
// We only need this assert() in the rare case when the user is expected to mutate `pageContext` after the Vike hook was executed (and its promise resolved).
|
|
10
|
+
// - The only use case I can think of is the user mutating `pageContext` after the onRenderClient() promise resolved (which can happen when client-side rendering finishes after onRenderClient() resolves). In that case, having Vike await async Vike hooks isn't enough.
|
|
11
|
+
// - IIRC this assert() was mostly needed for preserving the getters added by getPageContextUrlComputed() but we don't need this anymore.
|
|
12
|
+
assert(!('_isPageContextObject' in objAddendum));
|
|
13
|
+
}
|
|
9
14
|
Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
|
|
10
15
|
}
|
|
11
16
|
}
|
|
@@ -92,6 +92,7 @@ function modifyUrlPathname(url, modifier) {
|
|
|
92
92
|
function removeUrlOrigin(url) {
|
|
93
93
|
const { origin, pathnameOriginal, searchOriginal, hashOriginal } = parseUrl(url, '/');
|
|
94
94
|
const urlModified = createUrlFromComponents(null, pathnameOriginal, searchOriginal, hashOriginal);
|
|
95
|
+
assert(urlModified.startsWith('/'));
|
|
95
96
|
return { urlModified, origin };
|
|
96
97
|
}
|
|
97
98
|
function setUrlOrigin(url, origin) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.225-commit-2b7971f",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -131,6 +131,7 @@
|
|
|
131
131
|
"json5": "^2.0.0",
|
|
132
132
|
"picomatch": "^4.0.2",
|
|
133
133
|
"semver": "^7.0.0",
|
|
134
|
+
"sirv": "^3.0.1",
|
|
134
135
|
"source-map-support": "^0.5.0",
|
|
135
136
|
"tinyglobby": "^0.2.10",
|
|
136
137
|
"vite": ">=5.1.0"
|
|
@@ -253,8 +254,8 @@
|
|
|
253
254
|
"@types/source-map-support": "^0.5.10",
|
|
254
255
|
"react-streaming": "^0.3.47",
|
|
255
256
|
"rimraf": "^5.0.5",
|
|
256
|
-
"typescript": "^5.
|
|
257
|
-
"vite": "^6.2.
|
|
257
|
+
"typescript": "^5.8.2",
|
|
258
|
+
"vite": "^6.2.1"
|
|
258
259
|
},
|
|
259
260
|
"scripts": {
|
|
260
261
|
"dev": "tsc --watch",
|
|
@@ -263,8 +264,10 @@
|
|
|
263
264
|
"build:cjs": "pnpm run build:cjs:ts && pnpm run build:cjs:fixup",
|
|
264
265
|
"build:cjs:ts": "tsc --project ./tsconfig.cjs.json",
|
|
265
266
|
"build:cjs:fixup": "node ./dist-cjs-fixup.mjs",
|
|
267
|
+
"========= Release": "",
|
|
266
268
|
"release": "release-me patch",
|
|
267
269
|
"release:minor": "release-me minor",
|
|
270
|
+
"release:major": "release-me major",
|
|
268
271
|
"release:commit": "release-me commit"
|
|
269
272
|
}
|
|
270
273
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.projectInfo = void 0;
|
|
4
|
-
const PROJECT_VERSION_js_1 = require("./PROJECT_VERSION.js");
|
|
5
|
-
exports.projectInfo = {
|
|
6
|
-
projectName: 'Vike',
|
|
7
|
-
projectVersion: PROJECT_VERSION_js_1.PROJECT_VERSION
|
|
8
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const notSerializable = "not-serializable";
|