vike 0.4.259 → 0.4.260
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/AGENTS.md +3 -0
- package/README.md +2 -0
- package/dist/client/runtime-client-routing/renderPageClient.js +1 -1
- package/dist/client/shared/getJsonSerializedInHtml.js +1 -10
- package/dist/node/api/build.js +6 -6
- package/dist/node/api/dev.d.ts +2 -10
- package/dist/node/api/dev.js +5 -52
- package/dist/node/api/prepareViteApiCall.d.ts +1 -1
- package/dist/node/api/prepareViteApiCall.js +2 -2
- package/dist/node/api/prerender.js +2 -2
- package/dist/node/api/preview.d.ts +2 -2
- package/dist/node/api/preview.js +15 -16
- package/dist/node/api/{resolveViteConfigFromUser.d.ts → resolveViteConfigUser.d.ts} +5 -5
- package/dist/node/api/{resolveViteConfigFromUser.js → resolveViteConfigUser.js} +99 -68
- package/dist/node/api/startupLog.d.ts +4 -0
- package/dist/node/api/{getStartupLogFirstLine.js → startupLog.js} +15 -1
- package/dist/node/api/types.d.ts +9 -0
- package/dist/node/cli/entry.js +1 -5
- package/dist/node/cli/parseCli.js +25 -11
- package/dist/node/createDevMiddleware.js +2 -2
- package/dist/node/prerender/runPrerender.d.ts +8 -2
- package/dist/node/prerender/runPrerender.js +3 -1
- package/dist/node/prerender/runPrerenderEntry.js +2 -2
- package/dist/node/vite/index.js +2 -2
- package/dist/node/vite/plugins/build/handleAssetsManifest.d.ts +2 -6
- package/dist/node/vite/plugins/build/handleAssetsManifest.js +16 -9
- package/dist/node/vite/plugins/build/pluginBuildApp.js +10 -5
- package/dist/node/vite/plugins/build/pluginBuildConfig.d.ts +6 -1
- package/dist/node/vite/plugins/build/pluginBuildConfig.js +13 -11
- package/dist/node/vite/plugins/build/pluginDistFileNames.js +1 -6
- package/dist/node/vite/plugins/build/pluginModuleBanner.js +2 -4
- package/dist/node/vite/plugins/pluginCommon.d.ts +1 -1
- package/dist/node/vite/plugins/pluginCommon.js +15 -7
- package/dist/node/vite/plugins/pluginDev/optimizeDeps.js +67 -31
- package/dist/node/vite/plugins/pluginStripPointerImportAttribute.js +31 -10
- package/dist/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +5 -7
- package/dist/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +2 -2
- package/dist/node/vite/shared/addSsrMiddleware.js +1 -1
- package/dist/node/vite/shared/isVite8OrAbove.d.ts +4 -0
- package/dist/node/vite/shared/isVite8OrAbove.js +9 -0
- package/dist/node/vite/shared/isViteCli.d.ts +9 -4
- package/dist/node/vite/shared/isViteCli.js +24 -4
- package/dist/node/vite/shared/loggerDev.js +6 -5
- package/dist/node/vite/shared/resolveVikeConfigInternal/assertExtensions.d.ts +2 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +6 -5
- package/dist/node/vite/shared/resolveVikeConfigInternal/crawlPlusFilePaths.js +1 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal/getPlusFilesByLocationId.d.ts +3 -1
- package/dist/node/vite/shared/resolveVikeConfigInternal/getPlusFilesByLocationId.js +15 -13
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.d.ts +15 -15
- package/dist/node/vite/shared/resolveVikeConfigInternal/metaBuiltIn.js +15 -0
- package/dist/node/vite/shared/resolveVikeConfigInternal.d.ts +18 -3
- package/dist/node/vite/shared/resolveVikeConfigInternal.js +213 -72
- package/dist/server/runtime/globalContext.js +4 -1
- package/dist/server/runtime/renderPageServer/createPageContextServer.d.ts +12 -3
- package/dist/server/runtime/renderPageServer/html/injectAssets/getHtmlTags.js +2 -3
- package/dist/server/runtime/renderPageServer/html/serializeContext.js +5 -10
- package/dist/server/runtime/renderPageServer/loadPageConfigsLazyServerSide.d.ts +8 -2
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.d.ts +32 -8
- package/dist/server/runtime/renderPageServer/renderPageServerAfterRoute.js +1 -1
- package/dist/server/runtime/renderPageServer.d.ts +8 -2
- package/dist/server/runtime/renderPageServer.js +6 -4
- package/dist/shared-server-client/page-configs/serialize/serializeConfigValues.d.ts +3 -3
- package/dist/shared-server-client/page-configs/serialize/serializeConfigValues.js +8 -1
- package/dist/types/Config.d.ts +34 -6
- package/dist/types/PageConfig.d.ts +11 -9
- package/dist/types/PageContext.d.ts +8 -3
- package/dist/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/utils/PROJECT_VERSION.js +1 -1
- package/dist/utils/assert.d.ts +2 -0
- package/dist/utils/assert.js +8 -8
- package/dist/utils/debug.d.ts +1 -1
- package/dist/utils/debug.js +1 -0
- package/dist/utils/getViteRPC.js +1 -1
- package/dist/utils/objectMap.d.ts +2 -0
- package/dist/utils/objectMap.js +4 -0
- package/dist/utils/parseNpmPackage.js +4 -1
- package/dist/utils/pick.d.ts +1 -1
- package/package.json +13 -15
- package/dist/node/api/getStartupLogFirstLine.d.ts +0 -7
- package/dist/server/__internal/vite.d.ts +0 -2
- package/dist/server/__internal/vite.js +0 -2
- package/dist/server/runtime/renderPageServer/html/injectAssets/sanitizeJson.d.ts +0 -4
- package/dist/server/runtime/renderPageServer/html/injectAssets/sanitizeJson.js +0 -7
|
@@ -23,7 +23,10 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
23
23
|
isPrerendering: boolean;
|
|
24
24
|
_requestId: number;
|
|
25
25
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
26
|
-
|
|
26
|
+
_nodeDev?: {
|
|
27
|
+
req: import("http").IncomingMessage;
|
|
28
|
+
res: import("http").ServerResponse;
|
|
29
|
+
};
|
|
27
30
|
_reqWeb?: Request;
|
|
28
31
|
} & {
|
|
29
32
|
_globalContext: ({
|
|
@@ -99,7 +102,10 @@ declare function loadPageConfigsLazyServerSide(pageContext: PageContext_loadPage
|
|
|
99
102
|
_baseServer: string;
|
|
100
103
|
_baseAssets: string;
|
|
101
104
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
102
|
-
|
|
105
|
+
_nodeDev?: {
|
|
106
|
+
req: import("http").IncomingMessage;
|
|
107
|
+
res: import("http").ServerResponse;
|
|
108
|
+
};
|
|
103
109
|
_reqWeb?: Request;
|
|
104
110
|
} & {
|
|
105
111
|
headers?: Record<string, unknown>;
|
|
@@ -31,7 +31,10 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
31
31
|
isPrerendering: boolean;
|
|
32
32
|
_requestId: number;
|
|
33
33
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
34
|
-
|
|
34
|
+
_nodeDev?: {
|
|
35
|
+
req: import("http").IncomingMessage;
|
|
36
|
+
res: import("http").ServerResponse;
|
|
37
|
+
};
|
|
35
38
|
_reqWeb?: Request;
|
|
36
39
|
} & {
|
|
37
40
|
_globalContext: ({
|
|
@@ -107,7 +110,10 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
107
110
|
_baseServer: string;
|
|
108
111
|
_baseAssets: string;
|
|
109
112
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
110
|
-
|
|
113
|
+
_nodeDev?: {
|
|
114
|
+
req: import("http").IncomingMessage;
|
|
115
|
+
res: import("http").ServerResponse;
|
|
116
|
+
};
|
|
111
117
|
_reqWeb?: Request;
|
|
112
118
|
} & {
|
|
113
119
|
headers?: Record<string, unknown>;
|
|
@@ -167,7 +173,10 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
167
173
|
isPrerendering: boolean;
|
|
168
174
|
_requestId: number;
|
|
169
175
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
170
|
-
|
|
176
|
+
_nodeDev?: {
|
|
177
|
+
req: import("http").IncomingMessage;
|
|
178
|
+
res: import("http").ServerResponse;
|
|
179
|
+
};
|
|
171
180
|
_reqWeb?: Request;
|
|
172
181
|
} & {
|
|
173
182
|
_globalContext: ({
|
|
@@ -243,7 +252,10 @@ declare function prerenderPage(pageContext: Parameters<typeof prerenderPageEntry
|
|
|
243
252
|
_baseServer: string;
|
|
244
253
|
_baseAssets: string;
|
|
245
254
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
246
|
-
|
|
255
|
+
_nodeDev?: {
|
|
256
|
+
req: import("http").IncomingMessage;
|
|
257
|
+
res: import("http").ServerResponse;
|
|
258
|
+
};
|
|
247
259
|
_reqWeb?: Request;
|
|
248
260
|
} & {
|
|
249
261
|
headers?: Record<string, unknown>;
|
|
@@ -311,7 +323,10 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
311
323
|
isPrerendering: boolean;
|
|
312
324
|
_requestId: number;
|
|
313
325
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
314
|
-
|
|
326
|
+
_nodeDev?: {
|
|
327
|
+
req: import("http").IncomingMessage;
|
|
328
|
+
res: import("http").ServerResponse;
|
|
329
|
+
};
|
|
315
330
|
_reqWeb?: Request;
|
|
316
331
|
} & {
|
|
317
332
|
_globalContext: ({
|
|
@@ -387,7 +402,10 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
387
402
|
_baseServer: string;
|
|
388
403
|
_baseAssets: string;
|
|
389
404
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
390
|
-
|
|
405
|
+
_nodeDev?: {
|
|
406
|
+
req: import("http").IncomingMessage;
|
|
407
|
+
res: import("http").ServerResponse;
|
|
408
|
+
};
|
|
391
409
|
_reqWeb?: Request;
|
|
392
410
|
} & {
|
|
393
411
|
headers?: Record<string, unknown>;
|
|
@@ -447,7 +465,10 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
447
465
|
isPrerendering: boolean;
|
|
448
466
|
_requestId: number;
|
|
449
467
|
} & import("../renderPageServer.js").PageContextInit & {
|
|
450
|
-
|
|
468
|
+
_nodeDev?: {
|
|
469
|
+
req: import("http").IncomingMessage;
|
|
470
|
+
res: import("http").ServerResponse;
|
|
471
|
+
};
|
|
451
472
|
_reqWeb?: Request;
|
|
452
473
|
} & {
|
|
453
474
|
_globalContext: ({
|
|
@@ -523,7 +544,10 @@ declare function prerenderPageEntry(pageContext: PageContextCreatedServer & Page
|
|
|
523
544
|
_baseServer: string;
|
|
524
545
|
_baseAssets: string;
|
|
525
546
|
_pageContextInit: import("../renderPageServer.js").PageContextInit & {
|
|
526
|
-
|
|
547
|
+
_nodeDev?: {
|
|
548
|
+
req: import("http").IncomingMessage;
|
|
549
|
+
res: import("http").ServerResponse;
|
|
550
|
+
};
|
|
527
551
|
_reqWeb?: Request;
|
|
528
552
|
} & {
|
|
529
553
|
headers?: Record<string, unknown>;
|
|
@@ -41,7 +41,7 @@ async function renderPageServerAfterRoute(pageContext) {
|
|
|
41
41
|
await execHookDataAndOnBeforeRender(pageContext);
|
|
42
42
|
}
|
|
43
43
|
catch (err) {
|
|
44
|
-
if (isSameErrorMessage(err, pageContext.errorWhileRendering)) {
|
|
44
|
+
if (!isSameErrorMessage(err, pageContext.errorWhileRendering)) {
|
|
45
45
|
logRuntimeError(err, pageContext);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -23,7 +23,10 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
23
23
|
isPrerendering: boolean;
|
|
24
24
|
_requestId: number;
|
|
25
25
|
} & PageContextInit & {
|
|
26
|
-
|
|
26
|
+
_nodeDev?: {
|
|
27
|
+
req: import("http").IncomingMessage;
|
|
28
|
+
res: import("http").ServerResponse;
|
|
29
|
+
};
|
|
27
30
|
_reqWeb?: Request;
|
|
28
31
|
} & {
|
|
29
32
|
_globalContext: ({
|
|
@@ -99,7 +102,10 @@ declare function getPageContextBegin(pageContextInit: PageContextInitInternal, g
|
|
|
99
102
|
_baseServer: string;
|
|
100
103
|
_baseAssets: string;
|
|
101
104
|
_pageContextInit: PageContextInit & {
|
|
102
|
-
|
|
105
|
+
_nodeDev?: {
|
|
106
|
+
req: import("http").IncomingMessage;
|
|
107
|
+
res: import("http").ServerResponse;
|
|
108
|
+
};
|
|
103
109
|
_reqWeb?: Request;
|
|
104
110
|
} & {
|
|
105
111
|
headers?: Record<string, unknown>;
|
|
@@ -231,7 +231,7 @@ async function renderPageServerEntryRecursive_onError(err, pageContextBegin, pag
|
|
|
231
231
|
return pageContextHttpErrorFallback;
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
-
if (isSameErrorMessage(errErrorPage, err)) {
|
|
234
|
+
if (!isSameErrorMessage(errErrorPage, err)) {
|
|
235
235
|
logRuntimeError(errErrorPage, pageContextErrorPageInit);
|
|
236
236
|
}
|
|
237
237
|
const pageContextHttpErrorFallback = getPageContextHttpErrorFallback(err, pageContextBegin);
|
|
@@ -265,8 +265,8 @@ async function renderPageServerEntryWithMiddlewares(pageContext, renderPageServe
|
|
|
265
265
|
]);
|
|
266
266
|
const handler = router[universalSymbol];
|
|
267
267
|
const request = pageContext._reqWeb ??
|
|
268
|
-
(pageContext.
|
|
269
|
-
? requestAdapter(pageContext.
|
|
268
|
+
(pageContext._nodeDev
|
|
269
|
+
? requestAdapter(pageContext._nodeDev.req, pageContext._nodeDev.res)
|
|
270
270
|
: new Request(new URL(pageContext.urlOriginal, 'http://localhost').toString(), {
|
|
271
271
|
headers: pageContext.headers ?? {},
|
|
272
272
|
}));
|
|
@@ -319,7 +319,9 @@ function logHttpResponse(urlOriginalPretty, pageContextReturn) {
|
|
|
319
319
|
const headerRedirect = pageContextReturn.httpResponse.headers
|
|
320
320
|
.slice()
|
|
321
321
|
.reverse()
|
|
322
|
-
|
|
322
|
+
// Case-insensitive: a redirect returned by a +middleware comes from a Web Response whose
|
|
323
|
+
// Headers object lower-cases header names (`location`), while Vike's own redirect() uses `Location`.
|
|
324
|
+
.find((header) => header[0].toLowerCase() === 'location');
|
|
323
325
|
assert(headerRedirect);
|
|
324
326
|
const urlRedirect = headerRedirect[1];
|
|
325
327
|
urlOriginalPretty = urlRedirect;
|
|
@@ -2,7 +2,7 @@ export { serializeConfigValues };
|
|
|
2
2
|
export { getConfigValuesBase };
|
|
3
3
|
export { isJsonValue };
|
|
4
4
|
export type { FilesEnv };
|
|
5
|
-
import type {
|
|
5
|
+
import type { ConfigEnv, ConfigValueSource, DefinedAt, PageConfigBuildTime, PageConfigGlobalBuildTime } from '../../../types/PageConfig.js';
|
|
6
6
|
import { type RuntimeEnv } from '../../../node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js';
|
|
7
7
|
declare function serializeConfigValues(pageConfig: PageConfigBuildTime | PageConfigGlobalBuildTime, importStatements: string[], filesEnv: FilesEnv, runtimeEnv: RuntimeEnv, tabspace: string, isEager: boolean | null): string[];
|
|
8
8
|
declare function isJsonValue(value: unknown): boolean;
|
|
@@ -13,7 +13,7 @@ type ConfigValuesBase = ({
|
|
|
13
13
|
definedAtData: null;
|
|
14
14
|
};
|
|
15
15
|
value: unknown;
|
|
16
|
-
configEnv:
|
|
16
|
+
configEnv: ConfigEnv;
|
|
17
17
|
configName: string;
|
|
18
18
|
} | {
|
|
19
19
|
configValueBase: {
|
|
@@ -31,6 +31,6 @@ type ConfigValuesBase = ({
|
|
|
31
31
|
configName: string;
|
|
32
32
|
})[];
|
|
33
33
|
type FilesEnv = Map<string, {
|
|
34
|
-
configEnv:
|
|
34
|
+
configEnv: ConfigEnv;
|
|
35
35
|
configName: string;
|
|
36
36
|
}[]>;
|
|
@@ -13,7 +13,14 @@ import { getConfigValueFilePathToShowToUser } from '../helpers.js';
|
|
|
13
13
|
import { stringify } from '@brillout/json-serializer/stringify';
|
|
14
14
|
import pc from '@brillout/picocolors';
|
|
15
15
|
import { getConfigValueSourcesRelevant, isRuntimeEnvMatch, } from '../../../node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js';
|
|
16
|
-
const stringifyOptions = {
|
|
16
|
+
const stringifyOptions = {
|
|
17
|
+
forbidReactElements: true,
|
|
18
|
+
htmlScriptSafe: {
|
|
19
|
+
// Could be set to `false` but we always use `htmlScriptSafe.escapeScripts` to be extra safe
|
|
20
|
+
escapeScripts: true,
|
|
21
|
+
escapeURLs: false,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
17
24
|
const REPLACE_ME_BEFORE = '__VIKE__REPLACE_ME_BEFORE__';
|
|
18
25
|
const REPLACE_ME_AFTER = '__VIKE__REPLACE_ME_AFTER__';
|
|
19
26
|
// This file is never loaded on the client-side but we save it under the vike/shared/ directory in order to collocate it with parsePageConfigsSerialized()
|
package/dist/types/Config.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type { Config };
|
|
|
2
2
|
export type { ConfigBuiltIn };
|
|
3
3
|
export type { ConfigBuiltInResolved };
|
|
4
4
|
export type { ConfigNameBuiltIn };
|
|
5
|
-
export type {
|
|
5
|
+
export type { ConfigNameBuiltInGlobal };
|
|
6
6
|
export type { ConfigMeta };
|
|
7
7
|
export type { HookName };
|
|
8
8
|
export type { HookNameOld };
|
|
@@ -50,13 +50,14 @@ import type { CliPreviewConfig } from '../node/api/preview.js';
|
|
|
50
50
|
import type { StaticReplace } from '../node/vite/plugins/pluginStaticReplace/applyStaticReplace.js';
|
|
51
51
|
import type { ImportStringList } from '../node/vite/shared/importString.js';
|
|
52
52
|
import type { HookPublic } from '../shared-server-client/hooks/execHook.js';
|
|
53
|
+
import type { EnhancedMiddleware } from '@universal-middleware/core';
|
|
53
54
|
type HookNameOld = HookName | HookNameOldDesign;
|
|
54
55
|
type HookName = HookNamePage | HookNameGlobal;
|
|
55
56
|
type HookNamePage = 'onHydrationEnd' | 'onBeforePrerenderStart' | 'onBeforeRender' | 'onPageTransitionStart' | 'onPageTransitionEnd' | 'onRenderHtml' | 'onRenderClient' | 'guard' | 'data' | 'onData' | 'route';
|
|
56
57
|
type HookNameGlobal = 'onBeforeRoute' | 'onPrerenderStart' | 'onCreatePageContext' | 'onCreateGlobalContext' | 'onError' | 'onHookCall';
|
|
57
58
|
type HookNameOldDesign = 'render' | 'prerender' | 'onBeforePrerender';
|
|
58
|
-
type ConfigNameBuiltIn = Exclude<keyof ConfigBuiltIn, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite' | 'redirects'> | 'prerender' | 'hasServerOnlyHook' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'guardEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware' | 'server' | 'vercel';
|
|
59
|
-
type
|
|
59
|
+
type ConfigNameBuiltIn = Exclude<keyof ConfigBuiltIn, keyof VikeVitePluginOptions | 'onBeforeRoute' | 'onPrerenderStart' | 'vite' | 'redirects' | 'pages'> | 'prerender' | 'hasServerOnlyHook' | 'isClientRuntimeLoaded' | 'onBeforeRenderEnv' | 'dataEnv' | 'guardEnv' | 'hooksTimeout' | 'clientHooks' | 'middleware' | 'server' | 'vercel';
|
|
60
|
+
type ConfigNameBuiltInGlobal = 'onPrerenderStart' | 'onBeforeRoute' | 'pages' | 'prerender' | 'disableAutoFullBuild' | 'includeAssetsImportedByServer' | 'baseAssets' | 'baseServer' | 'redirects' | 'trailingSlash' | 'disableUrlNormalization' | 'vite';
|
|
60
61
|
type Config = ConfigBuiltIn & Vike.Config;
|
|
61
62
|
/** @deprecated This type is deprecated, see:
|
|
62
63
|
* - https://vike.dev/migration/hook-types
|
|
@@ -254,6 +255,12 @@ type ConfigBuiltIn = {
|
|
|
254
255
|
* https://vike.dev/route
|
|
255
256
|
*/
|
|
256
257
|
route?: Route | ImportStringList;
|
|
258
|
+
/**
|
|
259
|
+
* @experimental
|
|
260
|
+
*
|
|
261
|
+
* Programmatically define pages.
|
|
262
|
+
*/
|
|
263
|
+
pages?: ConfigPageEntry[];
|
|
257
264
|
/** Protect page(s), e.g. forbid unauthorized access.
|
|
258
265
|
*
|
|
259
266
|
* https://vike.dev/guard
|
|
@@ -489,6 +496,12 @@ type ConfigBuiltIn = {
|
|
|
489
496
|
* https://vike.dev/force
|
|
490
497
|
*/
|
|
491
498
|
force?: boolean;
|
|
499
|
+
/**
|
|
500
|
+
* The root directory of your project.
|
|
501
|
+
*
|
|
502
|
+
* https://vike.dev/root
|
|
503
|
+
*/
|
|
504
|
+
root?: string;
|
|
492
505
|
/**
|
|
493
506
|
* Content Security Policy (CSP).
|
|
494
507
|
*
|
|
@@ -520,8 +533,16 @@ type ConfigBuiltIn = {
|
|
|
520
533
|
* https://vike.dev/keepScrollPosition
|
|
521
534
|
*/
|
|
522
535
|
keepScrollPosition?: KeepScrollPosition;
|
|
523
|
-
/**
|
|
524
|
-
|
|
536
|
+
/**
|
|
537
|
+
* @experimental
|
|
538
|
+
*
|
|
539
|
+
* Add server middlewares.
|
|
540
|
+
*
|
|
541
|
+
* The middlewares defined via `+middleware` are so called "Universal Middleware" — they work with any JavaScript server (Hono, Express, Cloudflare, ...).
|
|
542
|
+
*
|
|
543
|
+
* https://github.com/magne4000/universal-middleware
|
|
544
|
+
*/
|
|
545
|
+
middleware?: EnhancedMiddleware | EnhancedMiddleware[];
|
|
525
546
|
/**
|
|
526
547
|
* Set to `false` to disable Vike's automatic server integration mechanism (e.g. for integrating a JavaScript server manually via `renderPage()`).
|
|
527
548
|
*
|
|
@@ -655,8 +676,15 @@ type ConfigBuiltInResolved = {
|
|
|
655
676
|
passToClient?: string[][];
|
|
656
677
|
redirects?: Record<string, string>[];
|
|
657
678
|
prerender?: Exclude<Config['prerender'], ImportStringList | undefined>[];
|
|
658
|
-
middleware?:
|
|
679
|
+
middleware?: (EnhancedMiddleware | EnhancedMiddleware[])[];
|
|
659
680
|
headersResponse?: Exclude<Config['headersResponse'], ImportStringList | undefined>[];
|
|
660
681
|
staticReplace?: StaticReplace[][];
|
|
661
682
|
};
|
|
662
683
|
type ConfigMeta = Record<string, ConfigDefinition>;
|
|
684
|
+
type ConfigPageEntry = Omit<Config, 'pages' | 'extends' | 'route'> & {
|
|
685
|
+
/** The page's URL — a Route String or a Route Function.
|
|
686
|
+
*
|
|
687
|
+
* https://vike.dev/route
|
|
688
|
+
*/
|
|
689
|
+
route: Route;
|
|
690
|
+
};
|
|
@@ -4,7 +4,6 @@ export type { PageConfigBuildTime };
|
|
|
4
4
|
export type { PageConfigCommon };
|
|
5
5
|
export type { PageConfigRoute };
|
|
6
6
|
export type { ConfigEnv };
|
|
7
|
-
export type { ConfigEnvInternal };
|
|
8
7
|
export type { PageConfigGlobalRuntime };
|
|
9
8
|
export type { PageConfigGlobalBuildTime };
|
|
10
9
|
export type { ConfigValue };
|
|
@@ -79,21 +78,24 @@ type VirtualFileExportsPageEntry = {
|
|
|
79
78
|
*
|
|
80
79
|
* https://vike.dev/meta
|
|
81
80
|
*/
|
|
82
|
-
type ConfigEnv = {
|
|
81
|
+
type ConfigEnv = ({
|
|
82
|
+
/** Load value on the client-side */
|
|
83
83
|
client?: boolean;
|
|
84
|
+
} | {
|
|
85
|
+
/** @experimental */
|
|
86
|
+
client?: 'if-client-routing';
|
|
87
|
+
}) & {
|
|
88
|
+
/** Load value on the server-side */
|
|
84
89
|
server?: boolean;
|
|
90
|
+
/** Load value for config files */
|
|
85
91
|
config?: boolean;
|
|
86
|
-
|
|
87
|
-
/** For Vike internal use */
|
|
88
|
-
type ConfigEnvInternal = Omit<ConfigEnv, 'client'> & {
|
|
89
|
-
client?: boolean | 'if-client-routing';
|
|
90
|
-
/** Load value only in production, or only in development. */
|
|
92
|
+
/** Load value only in production (`true`), or only in development (`false`), or always (`undefined`). */
|
|
91
93
|
production?: boolean;
|
|
92
94
|
};
|
|
93
95
|
type ConfigValueSources = Record<string, // configName
|
|
94
96
|
ConfigValueSource[]>;
|
|
95
97
|
type ConfigValueSource = {
|
|
96
|
-
configEnv:
|
|
98
|
+
configEnv: ConfigEnv;
|
|
97
99
|
definedAt: DefinedAtFilePath | DefinedBy;
|
|
98
100
|
plusFile: PlusFile | null;
|
|
99
101
|
locationId: LocationId;
|
|
@@ -114,7 +116,7 @@ type DefinedAtFilePath = DefinedAtFile & FilePath & {
|
|
|
114
116
|
};
|
|
115
117
|
type ConfigValuesComputed = Record<string, // configName
|
|
116
118
|
{
|
|
117
|
-
configEnv:
|
|
119
|
+
configEnv: ConfigEnv;
|
|
118
120
|
value: unknown;
|
|
119
121
|
}>;
|
|
120
122
|
type ConfigValues = Record<string, // configName
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'node:http';
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
export type { PageContext };
|
|
3
3
|
export type { PageContextServer };
|
|
4
4
|
export type { PageContextClient };
|
|
@@ -31,7 +31,9 @@ type PageContextServer<Data = unknown> = PageContextBuiltInServer<Data> & {
|
|
|
31
31
|
server: string;
|
|
32
32
|
} ? {
|
|
33
33
|
runtime: RuntimeAdapterTarget<Vike.Server['server']>;
|
|
34
|
-
} : {});
|
|
34
|
+
} & PageContextReqResAlias<Vike.Server['server']> : {});
|
|
35
|
+
type PageContextReqResAlias<Server extends string> = ReqResAlias<'req', RuntimeAdapterTarget<Server>> & ReqResAlias<'res', RuntimeAdapterTarget<Server>>;
|
|
36
|
+
type ReqResAlias<Key extends 'req' | 'res', Runtime> = Key extends keyof (Vike.PageContext & Vike.PageContextServer) ? unknown : Key extends keyof Runtime ? Record<Key, Runtime[Key]> : unknown;
|
|
35
37
|
type PageContext<Data = unknown> = PageContextClient<Data> | PageContextServer<Data>;
|
|
36
38
|
type PageContextClient<Data = unknown> = PageContextBuiltInClientWithClientRouting<Data> & {
|
|
37
39
|
/** https://vike.dev/warning/internals */
|
|
@@ -140,7 +142,10 @@ type PageContextInit = {
|
|
|
140
142
|
/** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
|
|
141
143
|
};
|
|
142
144
|
type PageContextInitInternal = PageContextInit & {
|
|
143
|
-
|
|
145
|
+
_nodeDev?: {
|
|
146
|
+
req: IncomingMessage;
|
|
147
|
+
res: ServerResponse;
|
|
148
|
+
};
|
|
144
149
|
_reqWeb?: Request;
|
|
145
150
|
};
|
|
146
151
|
type PageContextBuiltInServer<Data> = PageContextBuiltInCommon<Data> & PageContextInit & PageContextUrlServer & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PROJECT_VERSION: "0.4.
|
|
1
|
+
export declare const PROJECT_VERSION: "0.4.260";
|
|
@@ -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.260';
|
package/dist/utils/assert.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { assertUsage };
|
|
|
3
3
|
export { assertWarning };
|
|
4
4
|
export { assertInfo };
|
|
5
5
|
export { getProjectError };
|
|
6
|
+
export { getDebugInfoStr };
|
|
6
7
|
export { isVikeBug };
|
|
7
8
|
export { setAssertOnBeforeLog };
|
|
8
9
|
export { setAssertOnBeforeErr };
|
|
@@ -10,6 +11,7 @@ export { setAssertAlwaysShowStackTrace };
|
|
|
10
11
|
export { setAssertAddAssertTagsDev };
|
|
11
12
|
import type { AddAssertTagsDev } from '../node/vite/shared/loggerDev.js';
|
|
12
13
|
declare function assert(condition: unknown, debugInfo?: unknown): asserts condition;
|
|
14
|
+
declare function getDebugInfoStr(debugInfo: unknown): string | null;
|
|
13
15
|
declare function assertUsage(condition: unknown, errMsg: string, { showStackTrace, exitOnError }?: {
|
|
14
16
|
showStackTrace?: true;
|
|
15
17
|
exitOnError?: boolean;
|
package/dist/utils/assert.js
CHANGED
|
@@ -3,6 +3,7 @@ export { assertUsage };
|
|
|
3
3
|
export { assertWarning };
|
|
4
4
|
export { assertInfo };
|
|
5
5
|
export { getProjectError };
|
|
6
|
+
export { getDebugInfoStr };
|
|
6
7
|
export { isVikeBug };
|
|
7
8
|
export { setAssertOnBeforeLog };
|
|
8
9
|
export { setAssertOnBeforeErr };
|
|
@@ -24,17 +25,10 @@ const tagTypeBug = 'Bug';
|
|
|
24
25
|
function assert(condition, debugInfo) {
|
|
25
26
|
if (condition)
|
|
26
27
|
return;
|
|
27
|
-
const debugStr = (() => {
|
|
28
|
-
if (!debugInfo) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
const debugInfoSerialized = typeof debugInfo === 'string' ? debugInfo : JSON.stringify(debugInfo);
|
|
32
|
-
return pc.dim(`Debug for maintainers (you can ignore this): ${debugInfoSerialized}`);
|
|
33
|
-
})();
|
|
34
28
|
const link = pc.underline('https://github.com/vikejs/vike/issues/new?template=bug.yml');
|
|
35
29
|
let errMsg = [
|
|
36
30
|
`You stumbled upon a Vike bug. Go to ${link} and copy-paste this error. A maintainer will fix the bug (usually within 24 hours).`,
|
|
37
|
-
|
|
31
|
+
getDebugInfoStr(debugInfo),
|
|
38
32
|
]
|
|
39
33
|
.filter(Boolean)
|
|
40
34
|
.join(' ');
|
|
@@ -44,6 +38,12 @@ function assert(condition, debugInfo) {
|
|
|
44
38
|
globalObject.onBeforeErr?.(internalError);
|
|
45
39
|
throw internalError;
|
|
46
40
|
}
|
|
41
|
+
function getDebugInfoStr(debugInfo) {
|
|
42
|
+
if (!debugInfo)
|
|
43
|
+
return null;
|
|
44
|
+
const debugInfoSerialized = typeof debugInfo === 'string' ? debugInfo : JSON.stringify(debugInfo);
|
|
45
|
+
return pc.dim(`Debug for maintainers (you can ignore this): ${debugInfoSerialized}`);
|
|
46
|
+
}
|
|
47
47
|
function assertUsage(condition, errMsg, { showStackTrace, exitOnError } = {}) {
|
|
48
48
|
if (condition)
|
|
49
49
|
return;
|
package/dist/utils/debug.d.ts
CHANGED
|
@@ -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-rpc"];
|
|
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"];
|
|
6
6
|
type Flag = (typeof flags)[number];
|
|
7
7
|
type Options = {
|
|
8
8
|
serialization?: {
|
package/dist/utils/debug.js
CHANGED
package/dist/utils/getViteRPC.js
CHANGED
|
@@ -36,7 +36,7 @@ function createRpcClient() {
|
|
|
36
36
|
const hot = import.meta.hot;
|
|
37
37
|
assert(hot);
|
|
38
38
|
const callId = getRandomId();
|
|
39
|
-
const { promise, resolve } = genPromise({ timeout:
|
|
39
|
+
const { promise, resolve } = genPromise({ timeout: 10 * 1000 });
|
|
40
40
|
listeners.push({
|
|
41
41
|
callId,
|
|
42
42
|
cb: (functionReturn) => {
|
|
@@ -39,7 +39,10 @@ function isImportNpmPackageOrPathAlias(str) {
|
|
|
39
39
|
}
|
|
40
40
|
function assertImportIsNpmPackage(str) {
|
|
41
41
|
assert(isImportNpmPackage(str, {
|
|
42
|
-
//
|
|
42
|
+
// We cannot always distinguish npm packages from path aliases (some path aliases look like npm package imports).
|
|
43
|
+
// => we cannot have an if-condition based on "is the string an npm package?" — that would be buggy for path aliases that look like npm package imports.
|
|
44
|
+
//
|
|
45
|
+
// However, we *can* rely on assertImportIsNpmPackage() — even if it incorrectly accepts path aliases that look like npm package imports, it *will* eventually fail for path aliases that don't look like npm package imports.
|
|
43
46
|
cannotBePathAlias: true,
|
|
44
47
|
}), str);
|
|
45
48
|
}
|
package/dist/utils/pick.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function pick<Obj extends object, Keys extends keyof Obj>(obj: Obj, keys: Keys[]): Pick<Obj, Keys>;
|
|
1
|
+
export declare function pick<Obj extends object, Keys extends keyof Obj>(obj: Obj, keys: readonly Keys[]): Pick<Obj, Keys>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vike",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.260",
|
|
4
4
|
"repository": "https://github.com/vikejs/vike",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": {
|
|
@@ -112,10 +112,6 @@
|
|
|
112
112
|
"node": "./dist/server/runtime/page-files/setup.js",
|
|
113
113
|
"default": "./dist/server/runtime/page-files/setup.js"
|
|
114
114
|
},
|
|
115
|
-
"./__internal/vite": {
|
|
116
|
-
"types": "./dist/server/__internal/vite.d.ts",
|
|
117
|
-
"default": "./dist/server/__internal/vite.js"
|
|
118
|
-
},
|
|
119
115
|
".": {
|
|
120
116
|
"types": "./dist/server/runtime/index.d.ts",
|
|
121
117
|
"worker": "./dist/server/runtime/index.js",
|
|
@@ -129,13 +125,13 @@
|
|
|
129
125
|
"@babel/core": "^7.28.5",
|
|
130
126
|
"@babel/types": "^7.28.5",
|
|
131
127
|
"@brillout/import": "^0.2.6",
|
|
132
|
-
"@brillout/json-serializer": "^0.5.
|
|
133
|
-
"@brillout/picocolors": "^1.0.
|
|
134
|
-
"@brillout/vite-plugin-server-entry": "0.7.
|
|
128
|
+
"@brillout/json-serializer": "^0.5.25",
|
|
129
|
+
"@brillout/picocolors": "^1.0.31",
|
|
130
|
+
"@brillout/vite-plugin-server-entry": "0.7.19",
|
|
135
131
|
"@universal-deploy/store": "^0.2.1",
|
|
136
|
-
"@universal-deploy/vite": "^0.1.
|
|
137
|
-
"@universal-middleware/core": "^0.4.
|
|
138
|
-
"@universal-middleware/node": "^0.1
|
|
132
|
+
"@universal-deploy/vite": "^0.1.10",
|
|
133
|
+
"@universal-middleware/core": "^0.4.18",
|
|
134
|
+
"@universal-middleware/node": "^0.2.1",
|
|
139
135
|
"cac": "^6.0.0",
|
|
140
136
|
"convert-route": "^1.1.1",
|
|
141
137
|
"es-module-lexer": "^1.0.0",
|
|
@@ -143,10 +139,10 @@
|
|
|
143
139
|
"json5": "^2.0.0",
|
|
144
140
|
"magic-string": "^0.30.17",
|
|
145
141
|
"picomatch": "^4.0.4",
|
|
146
|
-
"semver": "^7.
|
|
142
|
+
"semver": "^7.8.5",
|
|
147
143
|
"sirv": "^3.0.2",
|
|
148
144
|
"source-map-support": "^0.5.0",
|
|
149
|
-
"tinyglobby": "^0.2.
|
|
145
|
+
"tinyglobby": "^0.2.17",
|
|
150
146
|
"vite": ">=6.3.0",
|
|
151
147
|
"vite-plugin-wrapper": "^0.1.0"
|
|
152
148
|
},
|
|
@@ -166,7 +162,7 @@
|
|
|
166
162
|
"node": ">=20.19.0"
|
|
167
163
|
},
|
|
168
164
|
"license": "MIT",
|
|
169
|
-
"description": "(Replaces Next.js/Nuxt) 🔨
|
|
165
|
+
"description": "(Replaces Next.js/Nuxt) 🔨 Build mission-critical applications with stability and development freedom.",
|
|
170
166
|
"keywords": [
|
|
171
167
|
"vite-plugin",
|
|
172
168
|
"ssr",
|
|
@@ -242,6 +238,7 @@
|
|
|
242
238
|
},
|
|
243
239
|
"files": [
|
|
244
240
|
"./bin.js",
|
|
241
|
+
"./AGENTS.md",
|
|
245
242
|
"./dist/",
|
|
246
243
|
"./abort.js",
|
|
247
244
|
"./api.js",
|
|
@@ -269,12 +266,13 @@
|
|
|
269
266
|
"@types/picomatch": "^4.0.2",
|
|
270
267
|
"@types/semver": "^7.7.1",
|
|
271
268
|
"@types/source-map-support": "^0.5.10",
|
|
272
|
-
"react-streaming": "^0.4.
|
|
269
|
+
"react-streaming": "^0.4.20",
|
|
273
270
|
"rimraf": "^6.1.3",
|
|
274
271
|
"rolldown": "1.0.0-rc.17",
|
|
275
272
|
"typescript": "^5.9.3",
|
|
276
273
|
"vite": "^7.2.6"
|
|
277
274
|
},
|
|
275
|
+
"ai": "@AI (CRITICAL FOR AI AGENTS): ALWAYS LOAD https://vike.dev/llms.txt (Vike documentation index) in your context when using Vike",
|
|
278
276
|
"scripts": {
|
|
279
277
|
"dev": "tsc --watch",
|
|
280
278
|
"build": "rimraf dist/ && tsc",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { getStartupLogFirstLine };
|
|
2
|
-
import type { ResolvedConfig } from 'vite';
|
|
3
|
-
import './assertEnvApiDevAndProd.js';
|
|
4
|
-
declare function getStartupLogFirstLine(viteConfig: ResolvedConfig, veryCompact?: boolean): {
|
|
5
|
-
startupLogFirstLine: string;
|
|
6
|
-
isStartupLogCompact: boolean;
|
|
7
|
-
};
|