vike 0.4.222 → 0.4.223-commit-586dbfb
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 +1 -1
- package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
- package/dist/cjs/node/plugin/index.js +6 -4
- package/dist/cjs/node/plugin/plugins/baseUrls.js +9 -2
- package/dist/cjs/node/plugin/plugins/buildApp.js +14 -7
- package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
- package/dist/cjs/node/plugin/plugins/buildConfig.js +6 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +17 -1
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +2 -18
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +2 -2
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +11 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +36 -71
- package/dist/cjs/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +1 -1
- package/dist/cjs/node/plugin/shared/viteIsSSR.js +19 -10
- package/dist/cjs/node/prerender/runPrerender.js +3 -1
- package/dist/cjs/node/runtime/globalContext.js +19 -8
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +24 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +1 -1
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/cjs/node/runtime/renderPage/isNewError.js +1 -1
- package/dist/cjs/node/runtime/renderPage/isVikeConfigInvalid.js +10 -0
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
- package/dist/cjs/node/runtime/renderPage.js +63 -49
- package/dist/cjs/node/runtime/universal-middleware.js +14 -0
- package/dist/cjs/node/shared/resolveBase.js +0 -13
- package/dist/cjs/shared/getPageConfigsRuntime.js +2 -8
- package/dist/cjs/shared/getPageContextRequestUrl.js +1 -1
- package/dist/cjs/shared/getPageContextUrlComputed.js +12 -9
- package/dist/cjs/shared/hooks/getHook.js +1 -1
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +44 -12
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigs.js +2 -8
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -6
- package/dist/cjs/shared/route/loadPageRoutes.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assert.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/assertSingleInstance.js +2 -2
- package/dist/cjs/utils/findFile.js +1 -1
- package/dist/cjs/utils/getGlobalObject.js +2 -6
- package/dist/cjs/utils/parseUrl-extras.js +2 -2
- package/dist/cjs/utils/parseUrl.js +5 -5
- package/dist/cjs/utils/requireResolve.js +3 -3
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContextCurrent.js +1 -1
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/client-routing-runtime/history.js +1 -1
- package/dist/esm/client/client-routing-runtime/index.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/index.js +1 -0
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +3 -3
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.d.ts +8 -0
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +12 -3
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +1 -1
- package/dist/esm/client/client-routing-runtime/skipLink.js +2 -2
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/getPageContextProxyForUser.js +1 -1
- package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/api/prepareViteApiCall.js +1 -1
- package/dist/esm/node/plugin/index.d.ts +6 -2
- package/dist/esm/node/plugin/index.js +2 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +9 -2
- package/dist/esm/node/plugin/plugins/buildApp.js +14 -7
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +49 -19
- package/dist/esm/node/plugin/plugins/buildConfig.js +6 -1
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +14 -6
- package/dist/esm/node/plugin/plugins/commonConfig.js +17 -1
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- package/dist/esm/node/plugin/plugins/envVars.js +2 -18
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +3 -3
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.js +4 -4
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +6 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +10 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +8 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +5 -5
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +38 -73
- package/dist/esm/node/plugin/shared/findPageFiles.js +3 -3
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +2 -2
- package/dist/esm/node/plugin/shared/viteIsSSR.d.ts +7 -4
- package/dist/esm/node/plugin/shared/viteIsSSR.js +20 -11
- package/dist/esm/node/prerender/runPrerender.js +3 -1
- package/dist/esm/node/runtime/globalContext.d.ts +9 -8
- package/dist/esm/node/runtime/globalContext.js +19 -8
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +24 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +1 -1
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +1 -1
- package/dist/esm/node/runtime/renderPage/isNewError.js +1 -1
- package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.d.ts +6 -0
- package/dist/esm/node/runtime/renderPage/isVikeConfigInvalid.js +8 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/logErrorHint.js +7 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +4 -4
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +12 -12
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +2 -4
- package/dist/esm/node/runtime/renderPage.d.ts +5 -5
- package/dist/esm/node/runtime/renderPage.js +64 -49
- package/dist/esm/node/runtime/universal-middleware.d.ts +1 -0
- package/dist/esm/node/runtime/universal-middleware.js +11 -0
- package/dist/esm/node/shared/resolveBase.d.ts +1 -9
- package/dist/esm/node/shared/resolveBase.js +0 -13
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +2 -2
- package/dist/esm/shared/getPageConfigsRuntime.js +3 -9
- package/dist/esm/shared/getPageContextRequestUrl.js +1 -1
- package/dist/esm/shared/getPageContextUrlComputed.js +12 -9
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/Config.d.ts +3 -1
- package/dist/esm/shared/page-configs/PageConfig.d.ts +12 -4
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +24 -16
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +44 -12
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +3 -2
- package/dist/esm/shared/page-configs/serialize/parsePageConfigs.js +2 -8
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +2 -0
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +16 -6
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +1 -1
- package/dist/esm/shared/types.d.ts +6 -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.js +1 -1
- package/dist/esm/utils/assertSetup.js +1 -1
- package/dist/esm/utils/assertSingleInstance.js +2 -2
- package/dist/esm/utils/findFile.js +1 -1
- package/dist/esm/utils/getGlobalObject.d.ts +3 -2
- package/dist/esm/utils/getGlobalObject.js +2 -6
- package/dist/esm/utils/parseUrl-extras.js +2 -2
- package/dist/esm/utils/parseUrl.d.ts +3 -4
- package/dist/esm/utils/parseUrl.js +5 -5
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +3 -3
- package/package.json +18 -6
- package/universal-middleware.js +3 -0
- package/dist/cjs/node/runtime/renderPage/isConfigInvalid.js +0 -10
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.d.ts +0 -6
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.js +0 -8
- package/dist-cjs-fixup.mjs +0 -41
|
@@ -49,7 +49,7 @@ function parseUrl(url, baseServer) {
|
|
|
49
49
|
const pathnameOriginal = urlWithoutHashNorSearch.slice((origin || '').length);
|
|
50
50
|
assertUrlComponents(url, origin, pathnameOriginal, searchOriginal, hashOriginal);
|
|
51
51
|
// Base URL
|
|
52
|
-
let { pathname,
|
|
52
|
+
let { pathname, isBaseMissing } = removeBaseServer(pathnameAbsoluteWithBase, baseServer);
|
|
53
53
|
// pageContext.urlParsed.href
|
|
54
54
|
const href = createUrlFromComponents(origin, pathname, searchOriginal, hashOriginal);
|
|
55
55
|
// pageContext.urlParsed.{hostname, port}
|
|
@@ -66,7 +66,7 @@ function parseUrl(url, baseServer) {
|
|
|
66
66
|
origin,
|
|
67
67
|
pathname,
|
|
68
68
|
pathnameOriginal: pathnameOriginal,
|
|
69
|
-
|
|
69
|
+
isBaseMissing,
|
|
70
70
|
search,
|
|
71
71
|
searchAll,
|
|
72
72
|
searchOriginal,
|
|
@@ -235,7 +235,7 @@ function removeBaseServer(pathnameAbsoluteWithBase, baseServer) {
|
|
|
235
235
|
(0, assert_js_1.assert)(baseServer.startsWith('/'));
|
|
236
236
|
if (baseServer === '/') {
|
|
237
237
|
const pathname = pathnameAbsoluteWithBase;
|
|
238
|
-
return { pathname,
|
|
238
|
+
return { pathname, isBaseMissing: false };
|
|
239
239
|
}
|
|
240
240
|
// Support `url === '/some-base-url' && baseServer === '/some-base-url/'`
|
|
241
241
|
let baseServerNormalized = baseServer;
|
|
@@ -245,7 +245,7 @@ function removeBaseServer(pathnameAbsoluteWithBase, baseServer) {
|
|
|
245
245
|
}
|
|
246
246
|
if (!urlPathname.startsWith(baseServerNormalized)) {
|
|
247
247
|
const pathname = pathnameAbsoluteWithBase;
|
|
248
|
-
return { pathname,
|
|
248
|
+
return { pathname, isBaseMissing: true };
|
|
249
249
|
}
|
|
250
250
|
(0, assert_js_1.assert)(urlPathname.startsWith('/') || urlPathname.startsWith('http'));
|
|
251
251
|
(0, assert_js_1.assert)(urlPathname.startsWith(baseServerNormalized));
|
|
@@ -253,7 +253,7 @@ function removeBaseServer(pathnameAbsoluteWithBase, baseServer) {
|
|
|
253
253
|
if (!urlPathname.startsWith('/'))
|
|
254
254
|
urlPathname = '/' + urlPathname;
|
|
255
255
|
(0, assert_js_1.assert)(urlPathname.startsWith('/'));
|
|
256
|
-
return { pathname: urlPathname,
|
|
256
|
+
return { pathname: urlPathname, isBaseMissing: false };
|
|
257
257
|
}
|
|
258
258
|
function isBaseServer(baseServer) {
|
|
259
259
|
return baseServer.startsWith('/');
|
|
@@ -47,14 +47,14 @@ function addFileExtensionsToRequireResolve() {
|
|
|
47
47
|
isScriptFile_js_1.scriptFileExtensionList.forEach((ext) => {
|
|
48
48
|
(0, assert_js_1.assert)(!ext.includes('.'));
|
|
49
49
|
ext = `.${ext}`;
|
|
50
|
-
if (!
|
|
51
|
-
|
|
50
|
+
if (!require_.extensions[ext]) {
|
|
51
|
+
require_.extensions[ext] = require_.extensions['.js'];
|
|
52
52
|
added.push(ext);
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
const clean = () => {
|
|
56
56
|
added.forEach((ext) => {
|
|
57
|
-
delete
|
|
57
|
+
delete require_.extensions[ext];
|
|
58
58
|
});
|
|
59
59
|
};
|
|
60
60
|
return clean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { setPageContextCurrent };
|
|
2
2
|
export { getPageContextCurrent };
|
|
3
|
-
import type {
|
|
4
|
-
type PageContextCurrent =
|
|
3
|
+
import type { PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
4
|
+
type PageContextCurrent = PageConfigUserFriendlyOld & {
|
|
5
5
|
urlPathname: string;
|
|
6
6
|
};
|
|
7
7
|
declare function getPageContextCurrent(): null | PageContextCurrent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { setPageContextCurrent };
|
|
2
2
|
export { getPageContextCurrent };
|
|
3
3
|
import { getGlobalObject } from './utils.js';
|
|
4
|
-
const globalObject = getGlobalObject('getPageContextCurrent.ts', {
|
|
4
|
+
const globalObject = getGlobalObject('client-routing-runtime/getPageContextCurrent.ts', {
|
|
5
5
|
pageContextCurrent: null
|
|
6
6
|
});
|
|
7
7
|
function getPageContextCurrent() {
|
|
@@ -5,7 +5,7 @@ export { getPageContextFromClientHooks };
|
|
|
5
5
|
export { setPageContextInitIsPassedToClient };
|
|
6
6
|
export type { PageContextFromServerHooks };
|
|
7
7
|
export type { PageContextFromClientHooks };
|
|
8
|
-
import type {
|
|
8
|
+
import type { PageConfigUserFriendlyOld, PageFile } from '../../shared/getPageFiles.js';
|
|
9
9
|
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
10
10
|
type PageContext = {
|
|
11
11
|
urlOriginal: string;
|
|
@@ -21,9 +21,9 @@ declare function getPageContextFromHooks_serialized(): PageContextSerialized & {
|
|
|
21
21
|
routeParams: Record<string, string>;
|
|
22
22
|
_hasPageContextFromServer: true;
|
|
23
23
|
};
|
|
24
|
-
declare function getPageContextFromHooks_isHydration(pageContext: PageContextSerialized & PageContext &
|
|
24
|
+
declare function getPageContextFromHooks_isHydration(pageContext: PageContextSerialized & PageContext & PageConfigUserFriendlyOld & {
|
|
25
25
|
_hasPageContextFromServer: true;
|
|
26
|
-
}): Promise<PageContextSerialized & PageContext &
|
|
26
|
+
}): Promise<PageContextSerialized & PageContext & PageConfigUserFriendlyOld & {
|
|
27
27
|
_hasPageContextFromServer: true;
|
|
28
28
|
} & {
|
|
29
29
|
_hasPageContextFromClient: boolean;
|
|
@@ -45,5 +45,5 @@ type PageContextFromClientHooks = {
|
|
|
45
45
|
declare function getPageContextFromClientHooks(pageContext: {
|
|
46
46
|
pageId: string;
|
|
47
47
|
_hasPageContextFromServer: boolean;
|
|
48
|
-
} & PageContext &
|
|
48
|
+
} & PageContext & PageConfigUserFriendlyOld, isErrorPage: boolean): Promise<PageContextFromClientHooks>;
|
|
49
49
|
declare function setPageContextInitIsPassedToClient(pageContext: Record<string, unknown>): void;
|
|
@@ -18,7 +18,7 @@ import { executeGuardHook } from '../../shared/route/executeGuardHook.js';
|
|
|
18
18
|
import { AbortRender, isAbortPageContext } from '../../shared/route/abort.js';
|
|
19
19
|
import { pageContextInitIsPassedToClient } from '../../shared/misc/pageContextInitIsPassedToClient.js';
|
|
20
20
|
import { isServerSideError } from '../../shared/misc/isServerSideError.js';
|
|
21
|
-
const globalObject = getGlobalObject('
|
|
21
|
+
const globalObject = getGlobalObject('client-routing-runtime/getPageContextFromHooks.ts', {});
|
|
22
22
|
// TODO/eventually: rename
|
|
23
23
|
function getPageContextFromHooks_serialized() {
|
|
24
24
|
const pageContextSerialized = getPageContextSerializedInHtml();
|
|
@@ -7,7 +7,7 @@ export { monkeyPatchHistoryAPI };
|
|
|
7
7
|
import { getCurrentUrl } from '../shared/getCurrentUrl.js';
|
|
8
8
|
import { assert, assertUsage, getGlobalObject, isObject } from './utils.js';
|
|
9
9
|
initHistoryState(); // we redundantly call initHistoryState() to ensure it's called early
|
|
10
|
-
const globalObject = getGlobalObject('history.ts', { previous: getHistoryInfo() });
|
|
10
|
+
const globalObject = getGlobalObject('client-routing-runtime/history.ts', { previous: getHistoryInfo() });
|
|
11
11
|
// `window.history.state === null` when:
|
|
12
12
|
// - The very first render
|
|
13
13
|
// - Click on `<a href="#some-hash" />`
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { navigate, reload } from './navigate.js';
|
|
2
2
|
export { prefetch } from './prefetch.js';
|
|
3
|
+
export { getPageContextClient } from './renderPageClientSide.js';
|
|
3
4
|
export { PROJECT_VERSION as version } from './utils.js';
|
|
4
5
|
import type { PageContextBuiltInClientWithClientRouting } from '../../shared/types.js';
|
|
5
6
|
/** @deprecated
|
|
@@ -5,4 +5,5 @@
|
|
|
5
5
|
// Use package.json#exports to make the imports isomorphic.
|
|
6
6
|
export { navigate, reload } from './navigate.js';
|
|
7
7
|
export { prefetch } from './prefetch.js';
|
|
8
|
+
export { getPageContextClient } from './renderPageClientSide.js';
|
|
8
9
|
export { PROJECT_VERSION as version } from './utils.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { getPrefetchSettings };
|
|
2
2
|
export { PAGE_CONTEXT_MAX_AGE_DEFAULT };
|
|
3
3
|
export type { PrefetchSettingResolved };
|
|
4
|
-
import type {
|
|
4
|
+
import type { PageConfigUserFriendlyOld } from '../../../shared/getPageFiles.js';
|
|
5
5
|
declare const PAGE_CONTEXT_MAX_AGE_DEFAULT = 5000;
|
|
6
6
|
type PrefetchSettingResolved = {
|
|
7
7
|
staticAssets: false | 'hover' | 'viewport';
|
|
8
8
|
pageContext: false | number;
|
|
9
9
|
};
|
|
10
|
-
declare function getPrefetchSettings(pageContext:
|
|
10
|
+
declare function getPrefetchSettings(pageContext: PageConfigUserFriendlyOld, linkTag: null | HTMLElement): PrefetchSettingResolved;
|
|
@@ -6,7 +6,7 @@ export { addLinkPrefetchHandlers };
|
|
|
6
6
|
export { addLinkPrefetchHandlers_watch };
|
|
7
7
|
export { addLinkPrefetchHandlers_unwatch };
|
|
8
8
|
import { type PageContextFromServerHooks, getPageContextFromServerHooks } from './getPageContextFromHooks.js';
|
|
9
|
-
import type {
|
|
9
|
+
import type { PageConfigUserFriendlyOld, PageFile } from '../../shared/getPageFiles.js';
|
|
10
10
|
import { type PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
11
11
|
type ResultPageContextFromServer = Awaited<ReturnType<typeof getPageContextFromServerHooks>>;
|
|
12
12
|
type PageContextForPrefetch = {
|
|
@@ -19,7 +19,7 @@ type PageContextForPrefetch = {
|
|
|
19
19
|
};
|
|
20
20
|
declare function getPageContextPrefetched(pageContext: {
|
|
21
21
|
urlPathname: string;
|
|
22
|
-
} &
|
|
22
|
+
} & PageConfigUserFriendlyOld): null | PageContextFromServerHooks;
|
|
23
23
|
declare function populatePageContextPrefetchCache(pageContext: PageContextForPrefetch, result: ResultPageContextFromServer): void;
|
|
24
24
|
/**
|
|
25
25
|
* Programmatically prefetch client assets.
|
|
@@ -19,7 +19,7 @@ import { PAGE_CONTEXT_MAX_AGE_DEFAULT, getPrefetchSettings } from './prefetch/ge
|
|
|
19
19
|
import pc from '@brillout/picocolors';
|
|
20
20
|
import { normalizeUrlArgument } from './normalizeUrlArgument.js';
|
|
21
21
|
assertClientRouting();
|
|
22
|
-
const globalObject = getGlobalObject('prefetch.ts', {
|
|
22
|
+
const globalObject = getGlobalObject('client-routing-runtime/prefetch.ts', {
|
|
23
23
|
linkPrefetchHandlerAdded: new WeakSet(),
|
|
24
24
|
addLinkPrefetchHandlers_debounce: null,
|
|
25
25
|
mutationObserver: new MutationObserver(addLinkPrefetchHandlers),
|
|
@@ -60,8 +60,8 @@ async function prefetchPageContextFromServerHooks(pageContextLink, resultMaxAge)
|
|
|
60
60
|
const result = await getPageContextFromServerHooks(pageContextLink, false);
|
|
61
61
|
setPageContextPrefetchCache(pageContextLink, result, resultMaxAge);
|
|
62
62
|
}
|
|
63
|
-
function populatePageContextPrefetchCache(pageContext /*&
|
|
64
|
-
// TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use
|
|
63
|
+
function populatePageContextPrefetchCache(pageContext /*& PageConfigUserFriendlyOld*/, result) {
|
|
64
|
+
// TODO/pageContext-prefetch: replace with using pageContext.config.prerender instead. (For being able to do that: eager configs need to be accessible without have to use PageConfigUserFriendlyOld as it isn't available here.)
|
|
65
65
|
if (!isBrilloutDocpress())
|
|
66
66
|
return;
|
|
67
67
|
setPageContextPrefetchCache(pageContext, result, null);
|
|
@@ -2,8 +2,10 @@ export { renderPageClientSide };
|
|
|
2
2
|
export { getRenderCount };
|
|
3
3
|
export { disableClientRouting };
|
|
4
4
|
export { firstRenderStartPromise };
|
|
5
|
+
export { getPageContextClient };
|
|
5
6
|
import { type PageContextFromRewrite } from '../../shared/route/abort.js';
|
|
6
7
|
import { type ScrollTarget } from './setScrollPosition.js';
|
|
8
|
+
import type { PageContextClient } from '../../shared/types.js';
|
|
7
9
|
declare const firstRenderStartPromise: Promise<void>;
|
|
8
10
|
type RenderArgs = {
|
|
9
11
|
scrollTarget: ScrollTarget;
|
|
@@ -24,3 +26,9 @@ declare global {
|
|
|
24
26
|
}
|
|
25
27
|
declare function disableClientRouting(err: unknown, log: boolean): void;
|
|
26
28
|
declare function getRenderCount(): number;
|
|
29
|
+
/**
|
|
30
|
+
* Get the `pageContext` object on the client-side.
|
|
31
|
+
*
|
|
32
|
+
* https://vike.dev/getPageContextClient
|
|
33
|
+
*/
|
|
34
|
+
declare function getPageContextClient(): PageContextClient | null;
|
|
@@ -2,6 +2,7 @@ export { renderPageClientSide };
|
|
|
2
2
|
export { getRenderCount };
|
|
3
3
|
export { disableClientRouting };
|
|
4
4
|
export { firstRenderStartPromise };
|
|
5
|
+
export { getPageContextClient };
|
|
5
6
|
import { assert, isSameErrorMessage, objectAssign, redirectHard, getGlobalObject, executeHook, hasProp, augmentType, genPromise, isCallable, catchInfiniteLoop } from './utils.js';
|
|
6
7
|
import { getPageContextFromClientHooks, getPageContextFromServerHooks, getPageContextFromHooks_isHydration, getPageContextFromHooks_serialized, setPageContextInitIsPassedToClient } from './getPageContextFromHooks.js';
|
|
7
8
|
import { createPageContext } from './createPageContext.js';
|
|
@@ -20,10 +21,9 @@ import { getErrorPageId } from '../../shared/error-page.js';
|
|
|
20
21
|
import { setPageContextCurrent } from './getPageContextCurrent.js';
|
|
21
22
|
import { getRouteStringParameterList } from '../../shared/route/resolveRouteString.js';
|
|
22
23
|
import { getCurrentUrl } from '../shared/getCurrentUrl.js';
|
|
23
|
-
const globalObject = getGlobalObject('renderPageClientSide.ts', (() => {
|
|
24
|
+
const globalObject = getGlobalObject('client-routing-runtime/renderPageClientSide.ts', (() => {
|
|
24
25
|
const { promise: firstRenderStartPromise, resolve: firstRenderStartPromiseResolve } = genPromise();
|
|
25
26
|
return {
|
|
26
|
-
previousPageContext: null,
|
|
27
27
|
renderCounter: 0,
|
|
28
28
|
firstRenderStartPromise,
|
|
29
29
|
firstRenderStartPromiseResolve
|
|
@@ -484,11 +484,12 @@ async function renderPageClientSide(renderArgs) {
|
|
|
484
484
|
// Add link prefetch handlers
|
|
485
485
|
addLinkPrefetchHandlers_watch();
|
|
486
486
|
addLinkPrefetchHandlers();
|
|
487
|
+
globalObject.renderedPageContext = pageContext;
|
|
487
488
|
stampFinished(urlOriginal);
|
|
488
489
|
}
|
|
489
490
|
}
|
|
490
491
|
// For Vike tests (but also potentially for Vike users)
|
|
491
|
-
//
|
|
492
|
+
// https://github.com/vikejs/vike/blob/ffbc5cf16407bcc075f414447e50d997c87c0c94/test/playground/pages/nested-layout/e2e-test.ts#L59
|
|
492
493
|
function stampFinished(urlOriginal) {
|
|
493
494
|
window._vike ?? (window._vike = {});
|
|
494
495
|
window._vike.fullyRenderedUrl = urlOriginal;
|
|
@@ -595,3 +596,11 @@ function areKeysEqual(key1, key2) {
|
|
|
595
596
|
return false;
|
|
596
597
|
return key1.length === key2.length && key1.every((_, i) => key1[i] === key2[i]);
|
|
597
598
|
}
|
|
599
|
+
/**
|
|
600
|
+
* Get the `pageContext` object on the client-side.
|
|
601
|
+
*
|
|
602
|
+
* https://vike.dev/getPageContextClient
|
|
603
|
+
*/
|
|
604
|
+
function getPageContextClient() {
|
|
605
|
+
return globalObject.renderedPageContext ?? null;
|
|
606
|
+
}
|
|
@@ -6,7 +6,7 @@ export { scrollRestoration_initialRenderIsDone };
|
|
|
6
6
|
// - Firefox doesn't restore the scroll position upon page reload but does upon Cmd-Shift-T
|
|
7
7
|
// See also: https://github.com/cyco130/knave/blob/e9e1bc7687848504293197f1b314b7d12ad0d228/design.md#scroll-restoration
|
|
8
8
|
import { getGlobalObject, onPageHide, onPageShow } from './utils.js';
|
|
9
|
-
const globalObject = getGlobalObject('scrollRestoration.ts', {});
|
|
9
|
+
const globalObject = getGlobalObject('client-routing-runtime/scrollRestoration.ts', {});
|
|
10
10
|
function scrollRestoration_init() {
|
|
11
11
|
// Use the native scroll restoration mechanism only for the first render
|
|
12
12
|
scrollRestoration_enable();
|
|
@@ -49,8 +49,8 @@ function isSameAsCurrentUrl(href) {
|
|
|
49
49
|
function hasBaseServer(href) {
|
|
50
50
|
const baseServer = getBaseServer();
|
|
51
51
|
assert(isBaseServer(baseServer));
|
|
52
|
-
const {
|
|
53
|
-
return
|
|
52
|
+
const { isBaseMissing } = parseUrl(href, baseServer);
|
|
53
|
+
return !isBaseMissing;
|
|
54
54
|
}
|
|
55
55
|
function isDisableAutomaticLinkInterception() {
|
|
56
56
|
// @ts-ignore
|
|
@@ -11,6 +11,6 @@ declare function getPageContext(): Promise<{
|
|
|
11
11
|
_pageFilesAll: import("../../shared/getPageFiles.js").PageFile[];
|
|
12
12
|
_pageConfigs: import("../../__internal/index.js").PageConfig[];
|
|
13
13
|
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
14
|
-
} & import("../../shared/getPageFiles.js").
|
|
14
|
+
} & import("../../shared/getPageFiles.js").PageConfigUserFriendlyOld & {
|
|
15
15
|
_pageFilesLoaded: import("../../shared/getPageFiles.js").PageFile[];
|
|
16
16
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { executeOnRenderClientHook };
|
|
2
2
|
export type { PageContextBeforeRenderClient };
|
|
3
|
-
import type { PageFile,
|
|
3
|
+
import type { PageFile, PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
4
4
|
import { type PageContextForUserConsumptionClientSide } from './preparePageContextForUserConsumptionClientSide.js';
|
|
5
5
|
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
6
6
|
type PageContextBeforeRenderClient = {
|
|
@@ -9,5 +9,5 @@ type PageContextBeforeRenderClient = {
|
|
|
9
9
|
urlPathname?: string;
|
|
10
10
|
pageId: string;
|
|
11
11
|
_pageConfigs: PageConfigRuntime[];
|
|
12
|
-
} &
|
|
12
|
+
} & PageConfigUserFriendlyOld & PageContextForUserConsumptionClientSide;
|
|
13
13
|
declare function executeOnRenderClientHook<PC extends PageContextBeforeRenderClient>(pageContext: PC, isClientRouting: boolean): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { getPageContextProxyForUser };
|
|
2
2
|
import { assert, assertUsage, assertWarning, getGlobalObject, getPropAccessNotation } from '../server-routing-runtime/utils.js';
|
|
3
3
|
import { notSerializable } from '../../shared/notSerializable.js';
|
|
4
|
-
const globalObject = getGlobalObject('getPageContextProxyForUser.ts', {});
|
|
4
|
+
const globalObject = getGlobalObject('shared/getPageContextProxyForUser.ts', {});
|
|
5
5
|
/**
|
|
6
6
|
* Throw error when pageContext value isn't:
|
|
7
7
|
* - serializable, or
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { loadUserFilesClientSide };
|
|
2
2
|
export { isErrorFetchingStaticAssets };
|
|
3
3
|
export type { PageContextUserFiles };
|
|
4
|
-
import { type PageFile, type
|
|
4
|
+
import { type PageFile, type PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
5
5
|
import type { PageConfigGlobalRuntime, PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
6
|
-
type PageContextUserFilesLoaded =
|
|
6
|
+
type PageContextUserFilesLoaded = PageConfigUserFriendlyOld & {
|
|
7
7
|
_pageFilesLoaded: PageFile[];
|
|
8
8
|
};
|
|
9
9
|
type PageContextUserFiles = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { loadUserFilesClientSide };
|
|
2
2
|
export { isErrorFetchingStaticAssets };
|
|
3
3
|
import { getPageFilesClientSide } from '../../shared/getPageFiles.js';
|
|
4
|
-
import {
|
|
4
|
+
import { getPageConfigUserFriendly_oldDesign } from '../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
5
5
|
import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
|
|
6
6
|
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
7
7
|
import { objectAssign } from '../server-routing-runtime/utils.js';
|
|
@@ -30,7 +30,7 @@ async function loadUserFilesClientSide(pageId, pageFilesAll, pageConfigs, pageCo
|
|
|
30
30
|
}
|
|
31
31
|
throw err;
|
|
32
32
|
}
|
|
33
|
-
const pageContextExports =
|
|
33
|
+
const pageContextExports = getPageConfigUserFriendly_oldDesign(pageFilesClientSide, pageConfigLoaded, pageConfigGlobal);
|
|
34
34
|
const pageContextAddendum = {};
|
|
35
35
|
objectAssign(pageContextAddendum, pageContextExports);
|
|
36
36
|
objectAssign(pageContextAddendum, { _pageFilesLoaded: pageFilesClientSide });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { preparePageContextForUserConsumptionClientSide };
|
|
2
2
|
export type { PageContextForUserConsumptionClientSide };
|
|
3
|
-
import type {
|
|
3
|
+
import type { PageConfigUserFriendlyOld } from '../../shared/getPageFiles.js';
|
|
4
4
|
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
5
5
|
import { PageContextForPassToClientWarning } from './getPageContextProxyForUser.js';
|
|
6
|
-
type PageContextForUserConsumptionClientSide =
|
|
6
|
+
type PageContextForUserConsumptionClientSide = PageConfigUserFriendlyOld & PageContextForPassToClientWarning & {
|
|
7
7
|
pageId: string;
|
|
8
8
|
_pageConfigs: PageConfigRuntime[];
|
|
9
9
|
};
|
|
@@ -10,7 +10,7 @@ import path from 'path';
|
|
|
10
10
|
import { assert, assertUsage, getGlobalObject, isObject, toPosixPath } from './utils.js';
|
|
11
11
|
import pc from '@brillout/picocolors';
|
|
12
12
|
import { clearGlobalContext } from '../runtime/globalContext.js';
|
|
13
|
-
const globalObject = getGlobalObject('prepareViteApiCall.ts', {});
|
|
13
|
+
const globalObject = getGlobalObject('api/prepareViteApiCall.ts', {});
|
|
14
14
|
async function prepareViteApiCall(viteConfigFromOptions, operation) {
|
|
15
15
|
clear();
|
|
16
16
|
setContextApiOperation(operation);
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
export default plugin;
|
|
2
2
|
export { plugin };
|
|
3
3
|
export { plugin as ssr };
|
|
4
|
+
export { getVikeConfigPublic as getVikeConfig } from './plugins/commonConfig.js';
|
|
5
|
+
export { PROJECT_VERSION as version } from './utils.js';
|
|
4
6
|
export type { VikeVitePluginOptions as UserConfig };
|
|
5
7
|
export type { VikeVitePluginOptions };
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
type PluginInterop = Record<string, unknown> & {
|
|
9
|
+
name: string;
|
|
10
|
+
};
|
|
11
|
+
declare function plugin(vikeVitePluginOptions?: VikeVitePluginOptions): PluginInterop[];
|
|
8
12
|
/** @deprecated Define Vike settings in +config.js instead of vite.config.js */
|
|
9
13
|
type VikeVitePluginOptions = {
|
|
10
14
|
/** @deprecated Define Vike settings in +config.js instead of vite.config.js */
|
|
@@ -2,6 +2,7 @@ export default plugin;
|
|
|
2
2
|
export { plugin };
|
|
3
3
|
// TODO/v1-release: remove
|
|
4
4
|
export { plugin as ssr };
|
|
5
|
+
export { getVikeConfigPublic as getVikeConfig } from './plugins/commonConfig.js';
|
|
5
6
|
export { PROJECT_VERSION as version } from './utils.js';
|
|
6
7
|
import { assertUsage } from './utils.js';
|
|
7
8
|
import { buildConfig } from './plugins/buildConfig.js';
|
|
@@ -29,7 +30,7 @@ import { workaroundVite6HmrRegression } from './plugins/workaroundVite6HmrRegres
|
|
|
29
30
|
import { buildApp } from './plugins/buildApp.js';
|
|
30
31
|
// We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
|
|
31
32
|
setResolveClientEntriesDev(resolveClientEntriesDev);
|
|
32
|
-
// Return
|
|
33
|
+
// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
|
|
33
34
|
function plugin(vikeVitePluginOptions = {}) {
|
|
34
35
|
const plugins = [
|
|
35
36
|
...commonConfig(vikeVitePluginOptions),
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { baseUrls };
|
|
2
|
-
import { resolveBase
|
|
2
|
+
import { resolveBase } from '../../shared/resolveBase.js';
|
|
3
3
|
import { assert } from '../utils.js';
|
|
4
4
|
import { getVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
|
|
5
|
+
import { getVikeConfigPublic } from './commonConfig.js';
|
|
5
6
|
function baseUrls() {
|
|
6
7
|
let basesResolved;
|
|
7
8
|
return {
|
|
@@ -11,7 +12,8 @@ function baseUrls() {
|
|
|
11
12
|
const isDev = config._isDev;
|
|
12
13
|
assert(typeof isDev === 'boolean');
|
|
13
14
|
const baseViteOriginal = config.base ?? '/__UNSET__'; // '/__UNSET__' because Vite resolves `_baseViteOriginal: null` to `undefined`
|
|
14
|
-
|
|
15
|
+
const vike = getVikeConfigPublic(config);
|
|
16
|
+
basesResolved = resolveBase(baseViteOriginal, vike.config.baseServer ?? null, vike.config.baseAssets ?? null);
|
|
15
17
|
// We cannot define these in configResolved() because Vite picks up the env variables before any configResolved() hook is called
|
|
16
18
|
process.env.BASE_SERVER = basesResolved.baseServer;
|
|
17
19
|
process.env.BASE_ASSETS = basesResolved.baseAssets;
|
|
@@ -38,3 +40,8 @@ function baseUrls() {
|
|
|
38
40
|
}
|
|
39
41
|
};
|
|
40
42
|
}
|
|
43
|
+
function resolveBaseFromResolvedConfig(baseServer, baseAssets, config) {
|
|
44
|
+
let baseViteOriginal = config._baseViteOriginal;
|
|
45
|
+
assert(baseViteOriginal === null || typeof baseViteOriginal == 'string');
|
|
46
|
+
return resolveBase(baseViteOriginal, baseServer, baseAssets);
|
|
47
|
+
}
|
|
@@ -5,14 +5,19 @@ import { resolveOutDir } from '../shared/getOutDirs.js';
|
|
|
5
5
|
import { assert } from '../utils.js';
|
|
6
6
|
import { getVikeConfig } from './importUserCode/v1-design/getVikeConfig.js';
|
|
7
7
|
import { getFullBuildInlineConfig } from '../shared/getFullBuildInlineConfig.js';
|
|
8
|
+
import { getVikeConfigPublic } from './commonConfig.js';
|
|
8
9
|
function buildApp() {
|
|
9
10
|
let config;
|
|
11
|
+
// `builder.buildApp` can be overriden by another plugin e.g vike-vercel https://github.com/vikejs/vike/pull/2184#issuecomment-2659425195
|
|
12
|
+
// In that case, we should'nt `forceExit`.
|
|
13
|
+
let forceExit = false;
|
|
10
14
|
return [
|
|
11
15
|
{
|
|
12
16
|
name: 'vike:buildApp',
|
|
13
17
|
apply: 'build',
|
|
14
18
|
config(config) {
|
|
15
|
-
|
|
19
|
+
const vike = getVikeConfigPublic(config);
|
|
20
|
+
if (!vike.config.viteEnvironmentAPI)
|
|
16
21
|
return;
|
|
17
22
|
return {
|
|
18
23
|
builder: {
|
|
@@ -21,6 +26,10 @@ function buildApp() {
|
|
|
21
26
|
assert(builder.environments.ssr);
|
|
22
27
|
await builder.build(builder.environments.client);
|
|
23
28
|
await builder.build(builder.environments.ssr);
|
|
29
|
+
if (forceExit) {
|
|
30
|
+
runPrerender_forceExit();
|
|
31
|
+
assert(false);
|
|
32
|
+
}
|
|
24
33
|
}
|
|
25
34
|
},
|
|
26
35
|
environments: {
|
|
@@ -53,17 +62,15 @@ function buildApp() {
|
|
|
53
62
|
config = _config;
|
|
54
63
|
},
|
|
55
64
|
async writeBundle() {
|
|
56
|
-
|
|
65
|
+
const vike = getVikeConfigPublic(config);
|
|
66
|
+
if (!vike.config.viteEnvironmentAPI)
|
|
57
67
|
return;
|
|
58
68
|
const vikeConfig = await getVikeConfig(config);
|
|
59
69
|
if (!isPrerenderAutoRunEnabled(vikeConfig))
|
|
60
70
|
return;
|
|
61
71
|
const configInline = getFullBuildInlineConfig(config);
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
runPrerender_forceExit();
|
|
65
|
-
assert(false);
|
|
66
|
-
}
|
|
72
|
+
const res = await runPrerenderFromAutoRun(configInline, config);
|
|
73
|
+
forceExit = res.forceExit;
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
];
|