vike 0.4.235 → 0.4.236-commit-64431e7
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/__internal/index.js +1 -1
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +2 -3
- package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
- package/dist/cjs/node/api/prepareViteApiCall.js +1 -1
- package/dist/cjs/node/cli/index.js +1 -1
- package/dist/cjs/node/createPageRenderer.js +1 -1
- package/dist/cjs/node/importBuild.js +1 -1
- package/dist/cjs/node/prerender/context.js +1 -1
- package/dist/cjs/node/prerender/index.js +1 -1
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +2 -2
- package/dist/cjs/node/prerender/runPrerender.js +9 -13
- package/dist/cjs/node/runtime/globalContext.js +109 -28
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
- package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
- package/dist/cjs/node/runtime/html/serializeContext.js +73 -15
- package/dist/cjs/node/runtime/index-deprecated.js +1 -1
- package/dist/cjs/node/runtime/index.js +1 -1
- package/dist/cjs/node/runtime/page-files/setup.js +1 -1
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +9 -6
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
- package/dist/cjs/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +9 -9
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +4 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +15 -12
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +35 -16
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
- package/dist/cjs/node/runtime/renderPage.js +4 -6
- package/dist/cjs/node/runtime/utils.js +1 -0
- package/dist/cjs/node/vite/index.js +2 -0
- package/dist/cjs/node/vite/onLoad.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
- package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginCommon.js +9 -4
- package/dist/cjs/node/vite/plugins/pluginDev.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +4 -4
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginViteRPC.js +42 -0
- package/dist/cjs/node/vite/shared/addSsrMiddleware.js +1 -1
- package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +1 -0
- package/dist/cjs/node/vite/shared/loggerNotProd.js +10 -6
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +6 -6
- package/dist/cjs/shared/RenderErrorPage.js +1 -1
- package/dist/cjs/shared/abort.js +1 -1
- package/dist/cjs/shared/createGlobalContextShared.js +28 -7
- package/dist/cjs/shared/createPageContextShared.js +1 -2
- package/dist/cjs/shared/determinePageIdOld.js +1 -1
- package/dist/cjs/shared/error-page.js +3 -3
- package/dist/cjs/shared/getPageContextUrlComputed.js +4 -4
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +2 -2
- package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +1 -1
- package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +1 -1
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/cjs/shared/getPageFiles/parseVirtualFileExports.js +1 -1
- package/dist/cjs/shared/getProxyForPublicUsage.js +3 -3
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +4 -3
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +10 -10
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +1 -1
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +5 -5
- package/dist/cjs/shared/route/abort.js +1 -1
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/cjs/shared/route/execHookGuard.js +1 -1
- package/dist/cjs/shared/route/execHookOnBeforeRoute.js +1 -1
- package/dist/cjs/shared/route/index.js +1 -1
- package/dist/cjs/shared/route/loadPageRoutes.js +10 -4
- package/dist/cjs/shared/route/resolveRouteFunction.js +3 -3
- package/dist/cjs/shared/route/resolveRouteString.js +1 -1
- package/dist/cjs/shared/route/routing.js +1 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +11 -8
- package/dist/cjs/utils/debug.js +1 -0
- package/dist/cjs/utils/debugGlob.js +1 -1
- package/dist/cjs/utils/getViteRPC.js +79 -0
- package/dist/cjs/utils/parseNpmPackage.js +1 -1
- package/dist/esm/__internal/index.d.ts +1 -1
- package/dist/esm/__internal/index.js +1 -1
- package/dist/esm/client/node.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +10 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +6 -6
- package/dist/esm/client/runtime-client-routing/globalContext.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/index.js +1 -1
- package/dist/esm/client/runtime-client-routing/isClientSideRoutable.js +1 -1
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.js +6 -6
- package/dist/esm/client/runtime-client-routing/prefetch.js +10 -10
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +3 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +3 -3
- package/dist/esm/client/runtime-client-routing/skipLink.js +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +2 -2
- package/dist/esm/client/runtime-server-routing/globalContext.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/index.js +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +5 -4
- package/dist/esm/client/shared/createGetGlobalContextClient.js +1 -2
- package/dist/esm/client/shared/execHookOnRenderClient.js +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +2 -2
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.js +4 -4
- package/dist/esm/node/api/prepareViteApiCall.js +1 -1
- package/dist/esm/node/cli/index.js +1 -1
- package/dist/esm/node/createPageRenderer.js +1 -1
- package/dist/esm/node/importBuild.js +1 -1
- package/dist/esm/node/prerender/context.js +1 -1
- package/dist/esm/node/prerender/index.js +1 -1
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +2 -2
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -133
- package/dist/esm/node/prerender/runPrerender.js +9 -13
- package/dist/esm/node/runtime/globalContext.d.ts +39 -59
- package/dist/esm/node/runtime/globalContext.js +112 -31
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +8 -1
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +2 -0
- package/dist/esm/node/runtime/html/serializeContext.d.ts +7 -1
- package/dist/esm/node/runtime/html/serializeContext.js +73 -15
- package/dist/esm/node/runtime/index-deprecated.js +1 -1
- package/dist/esm/node/runtime/index.js +1 -1
- package/dist/esm/node/runtime/page-files/setup.js +1 -1
- package/dist/esm/node/runtime/renderPage/assertArguments.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +1 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +9 -6
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +12 -35
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -4
- package/dist/esm/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +2 -2
- package/dist/esm/node/runtime/renderPage/getCacheControl.d.ts +5 -0
- package/dist/esm/node/runtime/renderPage/{createHttpResponse/getCacheControl.js → getCacheControl.js} +8 -9
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +4 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +16 -13
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +8 -4
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +36 -17
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +24 -68
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +1 -0
- package/dist/esm/node/runtime/renderPage.d.ts +13 -36
- package/dist/esm/node/runtime/renderPage.js +4 -6
- package/dist/esm/node/runtime/utils.d.ts +1 -0
- package/dist/esm/node/runtime/utils.js +1 -0
- package/dist/esm/node/vite/index.js +3 -1
- package/dist/esm/node/vite/onLoad.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +3 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +16 -7
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -1
- package/dist/esm/node/vite/plugins/pluginCommon/assertResolveAlias.js +1 -1
- package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginCommon.js +9 -4
- package/dist/esm/node/vite/plugins/pluginDev.js +1 -1
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +1 -1
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +1 -1
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +1 -1
- package/dist/esm/node/vite/plugins/pluginViteRPC.d.ts +25 -0
- package/dist/esm/node/vite/plugins/pluginViteRPC.js +40 -0
- package/dist/esm/node/vite/shared/addSsrMiddleware.js +1 -1
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +1 -0
- package/dist/esm/node/vite/shared/loggerNotProd.js +10 -0
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +5 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +4 -6
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +6 -6
- package/dist/esm/shared/RenderErrorPage.js +1 -1
- package/dist/esm/shared/abort.js +1 -1
- package/dist/esm/shared/createGlobalContextShared.d.ts +3 -3
- package/dist/esm/shared/createGlobalContextShared.js +28 -7
- package/dist/esm/shared/createPageContextShared.d.ts +2 -3
- package/dist/esm/shared/createPageContextShared.js +1 -2
- package/dist/esm/shared/determinePageIdOld.js +1 -1
- package/dist/esm/shared/error-page.js +3 -3
- package/dist/esm/shared/getPageContextUrlComputed.js +4 -4
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +2 -2
- package/dist/esm/shared/getPageFiles/assert_exports_old_design.js +1 -1
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +1 -1
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +1 -1
- package/dist/esm/shared/getPageFiles/parseVirtualFileExports.js +1 -1
- package/dist/esm/shared/getProxyForPublicUsage.js +1 -1
- package/dist/esm/shared/hooks/getHook.js +1 -1
- package/dist/esm/shared/page-configs/getConfigDefinedAt.js +4 -3
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +12 -12
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +1 -1
- package/dist/esm/shared/preparePageContextForPublicUsage.js +5 -5
- package/dist/esm/shared/route/abort.js +1 -1
- package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +1 -1
- package/dist/esm/shared/route/execHookGuard.js +1 -1
- package/dist/esm/shared/route/execHookOnBeforeRoute.js +1 -1
- package/dist/esm/shared/route/index.js +1 -1
- package/dist/esm/shared/route/loadPageRoutes.d.ts +5 -0
- package/dist/esm/shared/route/loadPageRoutes.js +10 -4
- package/dist/esm/shared/route/resolveRouteFunction.js +3 -3
- package/dist/esm/shared/route/resolveRouteString.js +1 -1
- package/dist/esm/shared/route/routing.js +1 -1
- package/dist/esm/types/Config.d.ts +9 -1
- package/dist/esm/types/PageContext.d.ts +8 -2
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assertSetup.js +11 -8
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +1 -0
- package/dist/esm/utils/debugGlob.js +1 -1
- package/dist/esm/utils/getViteRPC.d.ts +6 -0
- package/dist/esm/utils/getViteRPC.js +77 -0
- package/dist/esm/utils/parseNpmPackage.js +1 -1
- package/package.json +12 -6
- package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.d.ts +0 -5
|
@@ -32,20 +32,41 @@ const passToClientBuiltInPageContext = [
|
|
|
32
32
|
const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
|
|
33
33
|
function getPageContextClientSerialized(pageContext) {
|
|
34
34
|
const passToClientPageContext = getPassToClientPageContext(pageContext);
|
|
35
|
-
const
|
|
36
|
-
|
|
35
|
+
const getObj = (passToClientEntry) => {
|
|
36
|
+
if (passToClientEntry.once)
|
|
37
|
+
return undefined; // pass it to client-side globalContext
|
|
38
|
+
return { obj: pageContext, objName: 'pageContext' };
|
|
39
|
+
};
|
|
40
|
+
const res = applyPassToClient(passToClientPageContext, getObj);
|
|
41
|
+
const pageContextClient = res.objClient;
|
|
42
|
+
const pageContextClientProps = res.objClientProps;
|
|
43
|
+
if (pageContextClientProps.some((prop) => (0, propKeys_js_1.getPropVal)(pageContext._pageContextInit, prop))) {
|
|
37
44
|
pageContextClient[pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient] = true;
|
|
38
45
|
}
|
|
39
|
-
const pageContextClientSerialized = serializeObject(pageContextClient,
|
|
46
|
+
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, getObj);
|
|
40
47
|
return pageContextClientSerialized;
|
|
41
48
|
}
|
|
42
49
|
function getGlobalContextClientSerialized(pageContext) {
|
|
43
50
|
const passToClient = pageContext._passToClient;
|
|
44
|
-
const
|
|
45
|
-
const
|
|
51
|
+
const globalContext = pageContext._globalContext;
|
|
52
|
+
const getObj = ({ prop, once }) => {
|
|
53
|
+
if (once && (0, propKeys_js_1.getPropVal)(pageContext, prop)) {
|
|
54
|
+
(0, utils_js_1.assert)(typeof pageContext.isClientSideNavigation === 'boolean');
|
|
55
|
+
if (!pageContext.isClientSideNavigation) {
|
|
56
|
+
return { obj: pageContext, objName: 'pageContext' }; // pass it to client-side globalContext
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return undefined; // already passed to client-side
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return { obj: globalContext, objName: 'globalContext' };
|
|
63
|
+
};
|
|
64
|
+
const res = applyPassToClient(passToClient, getObj);
|
|
65
|
+
const globalContextClient = res.objClient;
|
|
66
|
+
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, getObj);
|
|
46
67
|
return globalContextClientSerialized;
|
|
47
68
|
}
|
|
48
|
-
function serializeObject(obj,
|
|
69
|
+
function serializeObject(obj, passToClient, getObj) {
|
|
49
70
|
let serialized;
|
|
50
71
|
try {
|
|
51
72
|
serialized = serializeValue(obj);
|
|
@@ -54,11 +75,15 @@ function serializeObject(obj, objName, passToClient) {
|
|
|
54
75
|
const h = (s) => picocolors_1.default.cyan(s);
|
|
55
76
|
let hasWarned = false;
|
|
56
77
|
const propsNonSerializable = [];
|
|
57
|
-
passToClient.forEach((
|
|
78
|
+
passToClient.forEach((entry) => {
|
|
79
|
+
const entryNormalized = normalizePassToClientEntry(entry);
|
|
80
|
+
const { prop } = entryNormalized;
|
|
58
81
|
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
59
82
|
if (!res)
|
|
60
83
|
return;
|
|
61
84
|
const { value } = res;
|
|
85
|
+
const { objName } = getObj(entryNormalized) ?? {};
|
|
86
|
+
(0, utils_js_1.assert)(objName);
|
|
62
87
|
const varName = `${objName}${(0, propKeys_js_1.getPropKeys)(prop).map(utils_js_1.getPropAccessNotation).join('')}`;
|
|
63
88
|
try {
|
|
64
89
|
serializeValue(value, varName);
|
|
@@ -108,7 +133,20 @@ function serializeObject(obj, objName, passToClient) {
|
|
|
108
133
|
return serialized;
|
|
109
134
|
}
|
|
110
135
|
function serializeValue(value, varName) {
|
|
111
|
-
return (0, stringify_1.stringify)(value, {
|
|
136
|
+
return (0, stringify_1.stringify)(value, {
|
|
137
|
+
forbidReactElements: true,
|
|
138
|
+
valueName: varName,
|
|
139
|
+
// Prevent Google from crawling URLs in JSON:
|
|
140
|
+
// - https://github.com/vikejs/vike/discussions/2541#discussioncomment-13660198
|
|
141
|
+
// - https://github.com/vikejs/vike/discussions/2277
|
|
142
|
+
// - https://github.com/vikejs/vike/pull/2542
|
|
143
|
+
replacer(_key, value) {
|
|
144
|
+
if (typeof value === 'string' && value.startsWith('/')) {
|
|
145
|
+
// No need to use a reviver: https://github.com/brillout/json-serializer/blob/70fc8ed3741306391b51655b05df24e6963d1fdb/test/main.spec.ts#L74-L80
|
|
146
|
+
return { replacement: (value = '!' + value) };
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
});
|
|
112
150
|
}
|
|
113
151
|
function getPassToClientPageContext(pageContext) {
|
|
114
152
|
let passToClient = [...pageContext._passToClient, ...passToClientBuiltInPageContext];
|
|
@@ -144,7 +182,7 @@ function getPageContextClientSerializedAbort(pageContext) {
|
|
|
144
182
|
(0, utils_js_1.assert)(unknownProps.length === 0);
|
|
145
183
|
}
|
|
146
184
|
else {
|
|
147
|
-
//
|
|
185
|
+
// TO-DO/next-major-release: remove
|
|
148
186
|
(0, utils_js_1.assertWarning)(unknownProps.length === 0, [
|
|
149
187
|
"The following pageContext values won't be available on the client-side:",
|
|
150
188
|
unknownProps.map((p) => ` pageContext[${JSON.stringify(p)}]`),
|
|
@@ -155,16 +193,36 @@ function getPageContextClientSerializedAbort(pageContext) {
|
|
|
155
193
|
}
|
|
156
194
|
return serializeValue(pageContext);
|
|
157
195
|
}
|
|
158
|
-
function applyPassToClient(passToClient,
|
|
159
|
-
const
|
|
160
|
-
|
|
196
|
+
function applyPassToClient(passToClient, getObj) {
|
|
197
|
+
const objClient = {};
|
|
198
|
+
const objClientProps = [];
|
|
199
|
+
passToClient.forEach((entry) => {
|
|
200
|
+
const entryNormalized = normalizePassToClientEntry(entry);
|
|
201
|
+
const { prop } = entryNormalized;
|
|
202
|
+
const { obj } = getObj(entryNormalized) ?? {};
|
|
203
|
+
if (!obj)
|
|
204
|
+
return;
|
|
161
205
|
// Get value from pageContext
|
|
162
|
-
const res = (0, propKeys_js_1.getPropVal)(
|
|
206
|
+
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
163
207
|
if (!res)
|
|
164
208
|
return;
|
|
165
209
|
const { value } = res;
|
|
166
210
|
// Set value to pageContextClient
|
|
167
|
-
(0, propKeys_js_1.setPropVal)(
|
|
211
|
+
(0, propKeys_js_1.setPropVal)(objClient, prop, value);
|
|
212
|
+
objClientProps.push(prop);
|
|
168
213
|
});
|
|
169
|
-
return
|
|
214
|
+
return { objClient, objClientProps };
|
|
215
|
+
}
|
|
216
|
+
function normalizePassToClientEntry(entry) {
|
|
217
|
+
let once;
|
|
218
|
+
let prop;
|
|
219
|
+
if (typeof entry === 'string') {
|
|
220
|
+
prop = entry;
|
|
221
|
+
once = false;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
prop = entry.prop;
|
|
225
|
+
once = entry.once ?? false;
|
|
226
|
+
}
|
|
227
|
+
return { prop, once };
|
|
170
228
|
}
|
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
// TO-DO/
|
|
20
|
+
// TO-DO/eventually: point package.json#exports['./server'] to this file.
|
|
21
21
|
// - Write migration guide, see comment below.
|
|
22
22
|
__exportStar(require("./index.js"), exports);
|
|
23
23
|
const utils_js_1 = require("./utils.js");
|
|
@@ -39,7 +39,7 @@ Object.defineProperty(exports, "getGlobalContextSync", { enumerable: true, get:
|
|
|
39
39
|
Object.defineProperty(exports, "getGlobalContextAsync", { enumerable: true, get: function () { return globalContext_js_1.getGlobalContextAsync; } });
|
|
40
40
|
var index_js_1 = require("../runtime-dev/index.js");
|
|
41
41
|
Object.defineProperty(exports, "createDevMiddleware", { enumerable: true, get: function () { return index_js_1.createDevMiddleware; } });
|
|
42
|
-
//
|
|
42
|
+
// TO-DO/next-major-release: remove
|
|
43
43
|
// Deprecated exports
|
|
44
44
|
__exportStar(require("../../types/index-dreprecated.js"), exports);
|
|
45
45
|
var injectAssets__public_js_1 = require("./html/injectAssets/injectAssets__public.js");
|
|
@@ -15,7 +15,7 @@ function assertArguments(...args) {
|
|
|
15
15
|
showStackTrace: true,
|
|
16
16
|
});
|
|
17
17
|
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(pageContextInit), `${prefix} called with ${picocolors_1.default.code(`typeof pageContextInit === ${JSON.stringify(typeof pageContextInit)}`)} but ${picocolors_1.default.code('pageContextInit')} should be an object.`, { showStackTrace: true });
|
|
18
|
-
//
|
|
18
|
+
// TO-DO/next-major-release: remove
|
|
19
19
|
if ('url' in pageContextInit) {
|
|
20
20
|
(0, utils_js_1.assertWarning)(false, '`pageContextInit.url` has been renamed to `pageContextInit.urlOriginal`: replace `renderPage({ url })` with `renderPage({ urlOriginal })`. (See https://vike.dev/migration/0.4.23 for more information.)', { showStackTrace: true, onlyOnce: true });
|
|
21
21
|
pageContextInit.urlOriginal = pageContextInit.url;
|
|
@@ -11,8 +11,8 @@ const utils_js_1 = require("../utils.js");
|
|
|
11
11
|
const error_page_js_1 = require("../../../shared/error-page.js");
|
|
12
12
|
const getHttpResponseBody_js_1 = require("./getHttpResponseBody.js");
|
|
13
13
|
const getEarlyHints_js_1 = require("./getEarlyHints.js");
|
|
14
|
-
const getCacheControl_js_1 = require("./createHttpResponse/getCacheControl.js");
|
|
15
14
|
const assertNoInfiniteHttpRedirect_js_1 = require("./createHttpResponse/assertNoInfiniteHttpRedirect.js");
|
|
15
|
+
const getCacheControl_js_1 = require("./getCacheControl.js");
|
|
16
16
|
async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
|
|
17
17
|
let statusCode = pageContext.abortStatusCode;
|
|
18
18
|
if (!statusCode) {
|
|
@@ -31,10 +31,13 @@ async function createHttpResponsePage(htmlRender, renderHook, pageContext) {
|
|
|
31
31
|
}
|
|
32
32
|
const earlyHints = (0, getEarlyHints_js_1.getEarlyHints)(await pageContext.__getPageAssets());
|
|
33
33
|
const headers = [];
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
headers.push([
|
|
37
|
-
}
|
|
34
|
+
const headersResponse = pageContext.headersResponse || new Headers();
|
|
35
|
+
headersResponse.forEach((value, key) => {
|
|
36
|
+
headers.push([key, value]);
|
|
37
|
+
});
|
|
38
|
+
// An 5xx error page shouldn't be cached (it should be temporary)
|
|
39
|
+
if (statusCode >= 500)
|
|
40
|
+
headersResponse.set('Cache-Control', getCacheControl_js_1.cacheControlDisable);
|
|
38
41
|
return createHttpResponse(statusCode, 'text/html;charset=utf-8', headers, htmlRender, earlyHints, renderHook);
|
|
39
42
|
}
|
|
40
43
|
function createHttpResponse404(errMsg404) {
|
|
@@ -104,7 +107,7 @@ function createHttpResponse(statusCode, contentType, headers, htmlRender, earlyH
|
|
|
104
107
|
return {
|
|
105
108
|
statusCode,
|
|
106
109
|
headers,
|
|
107
|
-
//
|
|
110
|
+
// TO-DO/next-major-release: remove
|
|
108
111
|
get contentType() {
|
|
109
112
|
(0, utils_js_1.assertWarning)(false, 'pageContext.httpResponse.contentType is deprecated and will be removed in the next major release. Use pageContext.httpResponse.headers instead, see https://vike.dev/migration/0.4.134', { onlyOnce: true });
|
|
110
113
|
return contentType;
|
|
@@ -5,7 +5,7 @@ exports.createPageContextServerSideWithoutGlobalContext = createPageContextServe
|
|
|
5
5
|
const utils_js_1 = require("../utils.js");
|
|
6
6
|
const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
|
|
7
7
|
const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
|
|
8
|
-
|
|
8
|
+
function createPageContextServerSide(pageContextInit, globalContext, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
|
|
9
9
|
urlHandler: null,
|
|
10
10
|
isClientSideNavigation: false,
|
|
11
11
|
}, }) {
|
|
@@ -13,7 +13,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
13
13
|
const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
|
|
14
14
|
(0, utils_js_1.objectAssign)(pageContextCreated, {
|
|
15
15
|
_globalContext: globalContext,
|
|
16
|
-
_pageFilesAll: globalContext._pageFilesAll, //
|
|
16
|
+
_pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
|
|
17
17
|
// We use pageContext._baseServer and pageContext._baseAssets instead of pageContext._globalContext.baseServer and pageContext._globalContext.baseAssets because the Base URLs can (eventually one day if needed) be made non-global
|
|
18
18
|
_baseServer: globalContext.baseServer,
|
|
19
19
|
_baseAssets: globalContext.baseAssets,
|
|
@@ -35,7 +35,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
35
35
|
}
|
|
36
36
|
else if (pageContextInit.headers) {
|
|
37
37
|
headers = pageContextInit.headers;
|
|
38
|
-
//
|
|
38
|
+
// TO-DO/next-major-release: remove
|
|
39
39
|
(0, utils_js_1.assertWarning)(false, 'Setting pageContextInit.headers is deprecated: set pageContextInit.headersOriginal instead, see https://vike.dev/headers', { onlyOnce: true });
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
@@ -43,7 +43,7 @@ async function createPageContextServerSide(pageContextInit, globalContext, { isP
|
|
|
43
43
|
}
|
|
44
44
|
(0, utils_js_1.objectAssign)(pageContextCreated, { headers });
|
|
45
45
|
}
|
|
46
|
-
const pageContextAugmented =
|
|
46
|
+
const pageContextAugmented = (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
|
|
47
47
|
(0, utils_js_1.augmentType)(pageContextCreated, pageContextAugmented);
|
|
48
48
|
return pageContextCreated;
|
|
49
49
|
}
|
|
@@ -8,7 +8,7 @@ async function execHookDataAndOnBeforeRender(pageContext) {
|
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
10
|
const hooks = await (0, execHookServer_js_1.execHookServer)('data', pageContext);
|
|
11
|
-
const dataHook = hooks[0]; // TO-DO/soon: support cumulative
|
|
11
|
+
const dataHook = hooks[0]; // TO-DO/soon/cumulative-hooks: support cumulative
|
|
12
12
|
if (dataHook) {
|
|
13
13
|
// Note: hookReturn can be anything (e.g. an object) and is to be assigned to pageContext.data
|
|
14
14
|
const pageContextFromHook = {
|
|
@@ -21,7 +21,7 @@ async function execHookDataAndOnBeforeRender(pageContext) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
const res = await (0, execHookServer_js_1.execHookServer)('onBeforeRender', pageContext);
|
|
24
|
-
const onBeforeRenderHook = res[0]; // TO-DO/soon: support cumulative
|
|
24
|
+
const onBeforeRenderHook = res[0]; // TO-DO/soon/cumulative-hooks: support cumulative
|
|
25
25
|
if (onBeforeRenderHook) {
|
|
26
26
|
const { hookReturn } = onBeforeRenderHook;
|
|
27
27
|
(0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookReturn, onBeforeRenderHook.hookFilePath);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cacheControlDisable = void 0;
|
|
3
4
|
exports.getCacheControl = getCacheControl;
|
|
4
|
-
const helpers_js_1 = require("
|
|
5
|
-
const getConfigValueRuntime_js_1 = require("
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const helpers_js_1 = require("../../../shared/page-configs/helpers.js");
|
|
6
|
+
const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
|
|
7
|
+
const cacheControlDisable = 'no-store, max-age=0';
|
|
8
|
+
exports.cacheControlDisable = cacheControlDisable;
|
|
9
|
+
function getCacheControl(pageId, pageConfigs) {
|
|
10
|
+
// TO-DO/next-major-release: remove this line
|
|
9
11
|
if (pageConfigs.length === 0)
|
|
10
|
-
return
|
|
11
|
-
if (statusCode > 499)
|
|
12
|
-
return defaultValue;
|
|
12
|
+
return cacheControlDisable;
|
|
13
13
|
if (pageId) {
|
|
14
14
|
const pageConfig = (0, helpers_js_1.getPageConfig)(pageId, pageConfigs);
|
|
15
15
|
const configValue = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'cacheControl', 'string');
|
|
@@ -20,5 +20,5 @@ function getCacheControl(pageId, pageConfigs, statusCode) {
|
|
|
20
20
|
// - Disabling caching by default is the safest strategy, because caching is problematic with authentication as described in https://github.com/vikejs/vike/issues/1275#issuecomment-1824366875
|
|
21
21
|
// - Are there use cases when we don't need to disable caching?
|
|
22
22
|
// - When there isn't any <script id="vike_pageContext" type="application/json"> then we can safely have caching. (We don't implement this exception because we're lazy and it's quite a rare situation.)
|
|
23
|
-
return
|
|
23
|
+
return cacheControlDisable;
|
|
24
24
|
}
|
|
@@ -61,7 +61,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
61
61
|
const body = await (0, renderHtml_js_1.getHtmlString)(htmlRender);
|
|
62
62
|
return body;
|
|
63
63
|
},
|
|
64
|
-
//
|
|
64
|
+
// TO-DO/next-major-release: remove
|
|
65
65
|
async getNodeStream() {
|
|
66
66
|
(0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.getNodeStream()` is outdated, use `pageContext.httpResponse.getReadableNodeStream()` instead. ' +
|
|
67
67
|
streamDocs, { onlyOnce: true, showStackTrace: true });
|
|
@@ -71,7 +71,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
71
71
|
}
|
|
72
72
|
return nodeStream;
|
|
73
73
|
},
|
|
74
|
-
//
|
|
74
|
+
// TO-DO/next-major-release: remove
|
|
75
75
|
getWebStream() {
|
|
76
76
|
(0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.getWebStream(res)` is outdated, use `pageContext.httpResponse.getReadableWebStream(res)` instead. ' +
|
|
77
77
|
streamDocs, { onlyOnce: true, showStackTrace: true });
|
|
@@ -81,7 +81,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
81
81
|
}
|
|
82
82
|
return webStream;
|
|
83
83
|
},
|
|
84
|
-
//
|
|
84
|
+
// TO-DO/next-major-release: remove
|
|
85
85
|
pipeToWebWritable(writable) {
|
|
86
86
|
(0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.pipeToWebWritable(res)` is outdated, use `pageContext.httpResponse.pipe(res)` instead. ' +
|
|
87
87
|
streamDocs, { onlyOnce: true, showStackTrace: true });
|
|
@@ -90,7 +90,7 @@ function getHttpResponseBodyStreamHandlers(htmlRender, renderHook) {
|
|
|
90
90
|
(0, utils_js_1.assertUsage)(false, getErrMsg(htmlRender, renderHook, 'pipeToWebWritable()'));
|
|
91
91
|
}
|
|
92
92
|
},
|
|
93
|
-
//
|
|
93
|
+
// TO-DO/next-major-release: remove
|
|
94
94
|
pipeToNodeWritable(writable) {
|
|
95
95
|
(0, utils_js_1.assertWarning)(false, '`pageContext.httpResponse.pipeToNodeWritable(res)` is outdated, use `pageContext.httpResponse.pipe(res)` instead. ' +
|
|
96
96
|
streamDocs, { onlyOnce: true, showStackTrace: true });
|
|
@@ -11,7 +11,7 @@ function retrieveAssetsProd(clientDependencies, assetsManifest, includeAssetsImp
|
|
|
11
11
|
clientDependencies.forEach(({ id, onlyAssets, eagerlyImported }) => {
|
|
12
12
|
if (eagerlyImported)
|
|
13
13
|
return; // Eagerly imported assets aren't imported with import() and therefore don't create a new Rollup entry and aren't listed in the manifest file
|
|
14
|
-
//
|
|
14
|
+
// TO-DO/next-major-release: remove
|
|
15
15
|
if (includeAssetsImportedByServer &&
|
|
16
16
|
onlyAssets &&
|
|
17
17
|
id.includes('.page.server.') &&
|
|
@@ -16,18 +16,11 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
16
16
|
const globalContext = pageContext._globalContext;
|
|
17
17
|
const { _isProduction: isProduction } = globalContext;
|
|
18
18
|
const isDev = !isProduction;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
assetUrls = await (0, retrieveAssetsDev_js_1.retrieveAssetsDev)(clientDependencies, viteDevServer);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
const { assetsManifest } = globalContext;
|
|
28
|
-
clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
|
|
29
|
-
assetUrls = (0, retrieveAssetsProd_js_1.retrieveAssetsProd)(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(pageContext._globalContext.config));
|
|
30
|
-
}
|
|
19
|
+
const { assetUrls, clientEntriesSrc } = isDev
|
|
20
|
+
? !globalContext._viteDevServer
|
|
21
|
+
? await (0, utils_js_1.getViteRPC)().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
|
|
22
|
+
: await retrievePageAssetsDev(globalContext._viteDevServer, clientDependencies, clientEntries)
|
|
23
|
+
: retrievePageAssetsProd(globalContext.assetsManifest, clientDependencies, clientEntries, resolveIncludeAssetsImportedByServer(globalContext.config));
|
|
31
24
|
let pageAssets = [];
|
|
32
25
|
(0, utils_js_1.unique)([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
|
|
33
26
|
const { mediaType = null, assetType = null } = (0, inferMediaType_js_1.inferMediaType)(src) || {};
|
|
@@ -61,6 +54,16 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
61
54
|
await (0, sortPageAssetsForEarlyHintsHeader_js_1.sortPageAssetsForEarlyHintsHeader)(pageAssets, isProduction);
|
|
62
55
|
return pageAssets;
|
|
63
56
|
}
|
|
57
|
+
async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
|
|
58
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
|
|
59
|
+
const assetUrls = await (0, retrieveAssetsDev_js_1.retrieveAssetsDev)(clientDependencies, viteDevServer);
|
|
60
|
+
return { clientEntriesSrc, assetUrls };
|
|
61
|
+
}
|
|
62
|
+
function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, includeAssetsImportedByServer) {
|
|
63
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => resolveClientEntriesProd(clientEntry, assetsManifest));
|
|
64
|
+
const assetUrls = (0, retrieveAssetsProd_js_1.retrieveAssetsProd)(clientDependencies, assetsManifest, resolveIncludeAssetsImportedByServer(includeAssetsImportedByServer));
|
|
65
|
+
return { clientEntriesSrc, assetUrls };
|
|
66
|
+
}
|
|
64
67
|
function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
65
68
|
const { manifestEntry } = (0, getManifestEntry_js_1.getManifestEntry)(clientEntry, assetsManifest);
|
|
66
69
|
(0, utils_js_1.assert)(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
@@ -11,17 +11,19 @@ const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig
|
|
|
11
11
|
const analyzePage_js_1 = require("./analyzePage.js");
|
|
12
12
|
const loadConfigValues_js_1 = require("../../../shared/page-configs/loadConfigValues.js");
|
|
13
13
|
const execHookServer_js_1 = require("./execHookServer.js");
|
|
14
|
+
const getCacheControl_js_1 = require("./getCacheControl.js");
|
|
14
15
|
async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
|
|
15
16
|
const pageContextAddendum = await loadPageConfigsLazyServerSide(pageContext);
|
|
16
17
|
(0, utils_js_1.objectAssign)(pageContext, pageContextAddendum);
|
|
17
18
|
await (0, execHookServer_js_1.execHookServer)('onCreatePageContext', pageContext);
|
|
18
19
|
return pageContext;
|
|
19
20
|
}
|
|
21
|
+
// TODO/now: define new function resolveAfterLoad() ?
|
|
20
22
|
async function loadPageConfigsLazyServerSide(pageContext) {
|
|
21
23
|
const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
|
|
22
24
|
const globalContext = pageContext._globalContext;
|
|
23
|
-
const [{ pageFilesLoaded,
|
|
24
|
-
|
|
25
|
+
const [{ pageFilesLoaded, configPublicPageLazy }] = await Promise.all([
|
|
26
|
+
loadPageConfigFiles(pageContext._globalContext._pageFilesAll, pageConfig, globalContext._pageConfigGlobal, pageContext.pageId, !globalContext._isProduction),
|
|
25
27
|
(0, analyzePageClientSide_js_1.analyzePageClientSideInit)(pageContext._globalContext._pageFilesAll, pageContext.pageId, {
|
|
26
28
|
sharedPageFilesAlreadyLoaded: true,
|
|
27
29
|
}),
|
|
@@ -31,28 +33,27 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
31
33
|
const passToClient = [];
|
|
32
34
|
const errMsg = ' should be an array of strings.';
|
|
33
35
|
if (!isV1Design) {
|
|
34
|
-
|
|
36
|
+
configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
|
|
35
37
|
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsg}`);
|
|
36
38
|
passToClient.push(...e.exportValue);
|
|
37
39
|
});
|
|
38
40
|
}
|
|
39
41
|
else {
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isArrayOfStrings)(vals), `${e.configDefinedAt}${errMsg}`);
|
|
46
|
-
passToClient.push(...vals);
|
|
42
|
+
configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
|
|
43
|
+
const { value } = v;
|
|
44
|
+
// const { definedAt } = v
|
|
45
|
+
// assertUsage(isArrayOfStrings(value), `+passToClient value defined at ${definedAt}${errMsg}`)
|
|
46
|
+
passToClient.push(...value);
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
const pageContextAddendum = {};
|
|
50
|
-
(0, utils_js_1.objectAssign)(pageContextAddendum,
|
|
50
|
+
(0, utils_js_1.objectAssign)(pageContextAddendum, configPublicPageLazy);
|
|
51
51
|
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
52
|
-
Page:
|
|
52
|
+
Page: configPublicPageLazy.exports.Page,
|
|
53
53
|
_isHtmlOnly: isHtmlOnly,
|
|
54
54
|
_passToClient: passToClient,
|
|
55
55
|
_pageFilePathsLoaded: pageFilesLoaded.map((p) => p.filePath),
|
|
56
|
+
headersResponse: resolveHeadersResponse(pageContext, pageContextAddendum),
|
|
56
57
|
});
|
|
57
58
|
(0, utils_js_1.objectAssign)(pageContextAddendum, {
|
|
58
59
|
__getPageAssets: async () => {
|
|
@@ -66,7 +67,7 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
66
67
|
}
|
|
67
68
|
},
|
|
68
69
|
});
|
|
69
|
-
//
|
|
70
|
+
// TO-DO/next-major-release: remove
|
|
70
71
|
Object.assign(pageContextAddendum, {
|
|
71
72
|
_getPageAssets: async () => {
|
|
72
73
|
(0, utils_js_1.assertWarning)(false, 'pageContext._getPageAssets() deprecated, see https://vike.dev/preloading', {
|
|
@@ -105,13 +106,31 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
105
106
|
});
|
|
106
107
|
return pageContextAddendum;
|
|
107
108
|
}
|
|
108
|
-
async function
|
|
109
|
+
async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
|
|
109
110
|
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
|
|
110
111
|
const pageConfigLoaded = !pageConfig ? null : await (0, loadConfigValues_js_1.loadConfigValues)(pageConfig, isDev);
|
|
111
112
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
112
|
-
const
|
|
113
|
+
const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazy)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
|
|
113
114
|
return {
|
|
114
|
-
|
|
115
|
+
configPublicPageLazy,
|
|
115
116
|
pageFilesLoaded: pageFilesServerSide,
|
|
116
117
|
};
|
|
117
118
|
}
|
|
119
|
+
function resolveHeadersResponse(pageContext, pageContextAddendum) {
|
|
120
|
+
const headersResponse = mergeHeaders(pageContextAddendum.config.headersResponse);
|
|
121
|
+
if (!headersResponse.get('Cache-Control')) {
|
|
122
|
+
const cacheControl = (0, getCacheControl_js_1.getCacheControl)(pageContext.pageId, pageContext._globalContext._pageConfigs);
|
|
123
|
+
if (cacheControl)
|
|
124
|
+
headersResponse.set('Cache-Control', cacheControl);
|
|
125
|
+
}
|
|
126
|
+
return headersResponse;
|
|
127
|
+
}
|
|
128
|
+
function mergeHeaders(headersList = []) {
|
|
129
|
+
const headersMerged = new Headers();
|
|
130
|
+
headersList.forEach((headers) => {
|
|
131
|
+
new Headers(headers).forEach((value, key) => {
|
|
132
|
+
headersMerged.append(key, value);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
return headersMerged;
|
|
136
|
+
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.preparePageContextForPublicUsageServer = preparePageContextForPublicUsageServer;
|
|
4
4
|
const preparePageContextForPublicUsage_js_1 = require("../../../shared/preparePageContextForPublicUsage.js");
|
|
5
5
|
function preparePageContextForPublicUsageServer(pageContext) {
|
|
6
|
-
//
|
|
6
|
+
// TO-DO/next-major-release: after we remove supportVueReactiviy() we can call this later inside the agnostic preparePageContextForPublicUsage()
|
|
7
7
|
(0, preparePageContextForPublicUsage_js_1.assertPropertyGetters)(pageContext);
|
|
8
8
|
pageContext = (0, preparePageContextForPublicUsage_js_1.preparePageContextForPublicUsage)(pageContext);
|
|
9
9
|
return pageContext;
|
|
@@ -19,6 +19,7 @@ const preparePageContextForPublicUsageServer_js_1 = require("./preparePageContex
|
|
|
19
19
|
const execHookGuard_js_1 = require("../../../shared/route/execHookGuard.js");
|
|
20
20
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
21
21
|
const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
|
|
22
|
+
// TODO/now: rename?
|
|
22
23
|
async function renderPageAlreadyRouted(pageContext) {
|
|
23
24
|
// pageContext.pageId can either be the:
|
|
24
25
|
// - ID of the page matching the routing, or the
|
|
@@ -84,7 +84,7 @@ async function renderPagePrepare(pageContextInit, httpRequestId) {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
|
|
87
|
-
const pageContextBegin =
|
|
87
|
+
const pageContextBegin = getPageContextBegin(pageContextInit, globalContext, httpRequestId);
|
|
88
88
|
// Check Base URL
|
|
89
89
|
{
|
|
90
90
|
const pageContextHttpResponse = await checkBaseUrl(pageContextBegin, globalContext);
|
|
@@ -174,9 +174,7 @@ async function renderPageOnError(errNominalPage, pageContextBegin, pageContextNo
|
|
|
174
174
|
(0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: null });
|
|
175
175
|
return (0, handleErrorWithoutErrorPage_js_1.handleErrorWithoutErrorPage)(pageContextErrorPageInit);
|
|
176
176
|
}
|
|
177
|
-
|
|
178
|
-
(0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: errorPageId });
|
|
179
|
-
}
|
|
177
|
+
(0, utils_js_1.objectAssign)(pageContextErrorPageInit, { pageId: errorPageId });
|
|
180
178
|
}
|
|
181
179
|
let pageContextErrorPage;
|
|
182
180
|
try {
|
|
@@ -313,9 +311,9 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
|
|
|
313
311
|
(0, utils_js_1.assert)(pageContext.errorWhileRendering);
|
|
314
312
|
return pageContext;
|
|
315
313
|
}
|
|
316
|
-
|
|
314
|
+
function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
|
|
317
315
|
const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
318
|
-
const pageContextBegin =
|
|
316
|
+
const pageContextBegin = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
319
317
|
isPrerendering: false,
|
|
320
318
|
ssr: {
|
|
321
319
|
urlHandler: _urlHandler,
|
|
@@ -76,3 +76,4 @@ __exportStar(require("../../utils/PROJECT_VERSION.js"), exports);
|
|
|
76
76
|
__exportStar(require("../../utils/genPromise.js"), exports);
|
|
77
77
|
__exportStar(require("../../utils/augmentType.js"), exports);
|
|
78
78
|
__exportStar(require("../../utils/changeEnumerable.js"), exports);
|
|
79
|
+
__exportStar(require("../../utils/getViteRPC.js"), exports);
|
|
@@ -29,6 +29,7 @@ const resolveClientEntriesDev_js_1 = require("./shared/resolveClientEntriesDev.j
|
|
|
29
29
|
const pluginWorkaroundCssModuleHmr_js_1 = require("./plugins/pluginWorkaroundCssModuleHmr.js");
|
|
30
30
|
const pluginWorkaroundVite6HmrRegression_js_1 = require("./plugins/pluginWorkaroundVite6HmrRegression.js");
|
|
31
31
|
const pluginReplaceConstants_js_1 = require("./plugins/pluginReplaceConstants.js");
|
|
32
|
+
const pluginViteRPC_js_1 = require("./plugins/pluginViteRPC.js");
|
|
32
33
|
// We don't call this in ./onLoad.ts to avoid a cyclic dependency with utils.ts
|
|
33
34
|
(0, getPageAssets_js_1.setResolveClientEntriesDev)(resolveClientEntriesDev_js_1.resolveClientEntriesDev);
|
|
34
35
|
// Return `PluginInterop` instead of `Plugin` to avoid type mismatch upon different Vite versions
|
|
@@ -48,6 +49,7 @@ function plugin(vikeVitePluginOptions = {}) {
|
|
|
48
49
|
(0, pluginWorkaroundCssModuleHmr_js_1.pluginWorkaroundCssModuleHmr)(),
|
|
49
50
|
(0, pluginWorkaroundVite6HmrRegression_js_1.pluginWorkaroundVite6HmrRegression)(),
|
|
50
51
|
(0, pluginReplaceConstants_js_1.pluginReplaceConstants)(),
|
|
52
|
+
(0, pluginViteRPC_js_1.pluginViteRPC)(),
|
|
51
53
|
];
|
|
52
54
|
Object.assign(plugins, { _vikeVitePluginOptions: vikeVitePluginOptions });
|
|
53
55
|
return plugins;
|
|
@@ -12,7 +12,7 @@ function onLoad() {
|
|
|
12
12
|
(0, assertNodeVersion_js_1.assertNodeVersion)();
|
|
13
13
|
// package.json#peerDependencies isn't enough as users often ignore it
|
|
14
14
|
// This assertion isn't reliable: the user may still use a Vite version older than 5.1.0 — see https://github.com/vitejs/vite/pull/19355
|
|
15
|
-
// TO-DO/
|
|
15
|
+
// TO-DO/eventually: let's also use this.meta.viteVersion https://github.com/vitejs/vite/pull/20088
|
|
16
16
|
(0, assertVersion_js_1.assertVersion)('Vite', vite_1.version, '5.1.0');
|
|
17
17
|
// Ensure we don't bloat the server runtime with heavy dependencies such Vite and esbuild
|
|
18
18
|
(0, assertSetup_js_1.assertIsNotProductionRuntime)();
|
|
@@ -300,8 +300,8 @@ async function handleAssetsManifest_getBuildConfig(config) {
|
|
|
300
300
|
};
|
|
301
301
|
}
|
|
302
302
|
async function handleAssetsManifest(config, viteEnv, options, bundle) {
|
|
303
|
-
const
|
|
304
|
-
if (
|
|
303
|
+
const isSsrEnv = (0, isViteServerBuild_js_1.isViteServerBuild_onlySsrEnv)(config, viteEnv);
|
|
304
|
+
if (isSsrEnv) {
|
|
305
305
|
(0, utils_js_1.assert)(!assetsJsonFilePath);
|
|
306
306
|
const outDirs = (0, getOutDirs_js_1.getOutDirs)(config, viteEnv);
|
|
307
307
|
assetsJsonFilePath = node_path_1.default.posix.join(outDirs.outDirRoot, 'assets.json');
|
|
@@ -315,7 +315,7 @@ async function handleAssetsManifest(config, viteEnv, options, bundle) {
|
|
|
315
315
|
// - Also in some other server builds such as dist/vercel/ from vike-vercel
|
|
316
316
|
// - Don't replace it in dist/rsc/ from vike-react-rsc since __VITE_ASSETS_MANIFEST__ doesn't exist there
|
|
317
317
|
const noop = await (0, pluginBuildEntry_js_1.set_macro_ASSETS_MANIFEST)(assetsJsonFilePath, bundle, outDir);
|
|
318
|
-
if (
|
|
318
|
+
if (isSsrEnv)
|
|
319
319
|
(0, utils_js_1.assert)(!noop); // dist/server should always contain __VITE_ASSETS_MANIFEST__
|
|
320
320
|
}
|
|
321
321
|
}
|
|
@@ -16,7 +16,8 @@ const isViteServerBuild_js_1 = require("../../shared/isViteServerBuild.js");
|
|
|
16
16
|
const getOutDirs_js_1 = require("../../shared/getOutDirs.js");
|
|
17
17
|
const handleAssetsManifest_js_1 = require("./handleAssetsManifest.js");
|
|
18
18
|
const getPageAssets_js_1 = require("../../../runtime/renderPage/getPageAssets.js");
|
|
19
|
-
|
|
19
|
+
// TODO/now: stop setting `manifest` altogether and use the resolved value instead? So that other tools can easily read the manifest (e.g. @cloudflare/plugin-vite reads the manifest).
|
|
20
|
+
const manifestTempFile = '.vite/manifest.json';
|
|
20
21
|
exports.manifestTempFile = manifestTempFile;
|
|
21
22
|
function pluginBuildConfig() {
|
|
22
23
|
let config;
|
|
@@ -59,7 +60,7 @@ function pluginBuildConfig() {
|
|
|
59
60
|
async function getEntries(config) {
|
|
60
61
|
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
61
62
|
const { _pageConfigs: pageConfigs } = vikeConfig;
|
|
62
|
-
//
|
|
63
|
+
// TO-DO/next-major-release: remove
|
|
63
64
|
const pageFileEntries = await getPageFileEntries(config, (0, getPageAssets_js_1.resolveIncludeAssetsImportedByServer)(vikeConfig.config));
|
|
64
65
|
(0, utils_js_1.assertUsage)(Object.keys(pageFileEntries).length !== 0 || pageConfigs.length !== 0, 'At least one page should be defined, see https://vike.dev/add');
|
|
65
66
|
if ((0, isViteServerBuild_js_1.isViteServerBuild)(config)) {
|