vike 0.4.236 → 0.4.237-commit-85e89b1
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/runtime-client-routing/globalContext.js +2 -2
- package/dist/cjs/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +21 -13
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +10 -1
- package/dist/cjs/client/shared/utils.js +1 -0
- package/dist/cjs/node/api/preview.js +1 -1
- package/dist/cjs/node/prerender/runPrerender.js +4 -4
- package/dist/cjs/node/runtime/globalContext.js +127 -41
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +3 -1
- package/dist/cjs/node/runtime/html/serializeContext.js +25 -64
- package/dist/cjs/node/runtime/html/stream.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +21 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +8 -34
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +50 -14
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +23 -9
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
- package/dist/cjs/node/runtime/renderPage.js +9 -8
- package/dist/cjs/node/runtime/utils.js +4 -0
- package/dist/cjs/node/shared/utils.js +1 -0
- package/dist/cjs/node/shared/virtualFileId.js +110 -0
- package/dist/cjs/node/vite/index.js +5 -3
- package/dist/cjs/node/vite/onLoad.js +5 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +31 -23
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +20 -14
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +6 -12
- package/dist/cjs/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +119 -73
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +8 -15
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +8 -9
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +7 -3
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +47 -0
- package/dist/cjs/node/vite/plugins/pluginPreview.js +11 -4
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +6 -13
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +67 -0
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +18 -17
- package/dist/cjs/node/vite/shared/findPageFiles.js +1 -1
- package/dist/cjs/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/cjs/node/vite/shared/getMagicString.js +18 -0
- package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +10 -0
- package/dist/cjs/node/vite/shared/getOutDirs.js +18 -12
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/cjs/node/vite/shared/isViteServerBuild.js +54 -31
- package/dist/cjs/node/vite/shared/loggerVite.js +1 -1
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +8 -19
- package/dist/cjs/node/vite/utils.js +1 -0
- package/dist/cjs/shared/createGlobalContextShared.js +36 -15
- package/dist/cjs/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
- package/dist/cjs/shared/getProxyForPublicUsage.js +2 -2
- package/dist/cjs/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/cjs/shared/page-configs/loadPageEntry.js +25 -0
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/cjs/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +16 -16
- package/dist/cjs/shared/utils.js +2 -0
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +7 -5
- package/dist/cjs/utils/cast.js +1 -1
- package/dist/cjs/utils/debug.js +1 -0
- package/dist/cjs/utils/getViteRPC.js +79 -0
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +1 -0
- package/dist/cjs/utils/isRunnableDevEnvironment.js +9 -0
- package/dist/cjs/utils/virtualFileId.js +39 -0
- package/dist/esm/client/node.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +3 -3
- package/dist/esm/client/runtime-client-routing/getPageContextCurrent.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +14 -14
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +35 -48
- package/dist/esm/client/runtime-client-routing/globalContext.d.ts +3 -3
- package/dist/esm/client/runtime-client-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-client-routing/history.d.ts +3 -5
- package/dist/esm/client/runtime-client-routing/history.js +39 -22
- package/dist/esm/client/runtime-client-routing/initClientRouter.js +2 -3
- package/dist/esm/client/runtime-client-routing/prefetch/getPrefetchSettings.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/prefetch.js +2 -2
- package/dist/esm/client/runtime-client-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +5 -5
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +43 -30
- package/dist/esm/client/runtime-client-routing/utils.d.ts +2 -0
- package/dist/esm/client/runtime-client-routing/utils.js +2 -0
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +4 -4
- package/dist/esm/client/runtime-server-routing/globalContext.d.ts +3 -3
- package/dist/esm/client/runtime-server-routing/globalContext.js +2 -2
- package/dist/esm/client/runtime-server-routing/preparePageContextForPublicUsageClient.d.ts +2 -2
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +4 -4
- package/dist/esm/client/shared/createGetGlobalContextClient.js +21 -13
- package/dist/esm/client/shared/execHookOnRenderClient.d.ts +2 -2
- package/dist/esm/client/shared/getJsonSerializedInHtml.js +10 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.d.ts +1 -1
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +4 -4
- package/dist/esm/client/shared/preparePageContextForPublicUsageClientShared.d.ts +2 -2
- package/dist/esm/client/shared/utils.d.ts +1 -0
- package/dist/esm/client/shared/utils.js +1 -0
- package/dist/esm/node/api/preview.js +1 -1
- package/dist/esm/node/prerender/runPrerender.d.ts +49 -141
- package/dist/esm/node/prerender/runPrerender.js +4 -4
- package/dist/esm/node/runtime/globalContext.d.ts +43 -63
- package/dist/esm/node/runtime/globalContext.js +128 -42
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +4 -2
- package/dist/esm/node/runtime/html/serializeContext.d.ts +11 -6
- package/dist/esm/node/runtime/html/serializeContext.js +25 -64
- package/dist/esm/node/runtime/html/stream.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +3 -3
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +13 -36
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +4 -7
- package/dist/esm/node/runtime/renderPage/execHookServer.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +5 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsDev.js → retrievePageAssetsDev.js} +22 -3
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/{retrieveAssetsProd.js → retrievePageAssetsProd.js} +19 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +0 -6
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +8 -34
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +51 -15
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +26 -12
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForPublicUsageServer.d.ts +2 -3
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +30 -77
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -5
- package/dist/esm/node/runtime/renderPage.d.ts +13 -35
- package/dist/esm/node/runtime/renderPage.js +9 -8
- package/dist/esm/node/runtime/utils.d.ts +4 -0
- package/dist/esm/node/runtime/utils.js +4 -0
- package/dist/esm/node/shared/utils.d.ts +1 -0
- package/dist/esm/node/shared/utils.js +1 -0
- package/dist/esm/node/shared/virtualFileId.d.ts +28 -0
- package/dist/esm/node/shared/virtualFileId.js +107 -0
- package/dist/esm/node/vite/index.js +5 -3
- package/dist/esm/node/vite/onLoad.js +5 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.d.ts +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +32 -24
- package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +3 -3
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildApp.js +29 -13
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +21 -14
- package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +4 -4
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +17 -5
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +1 -1
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +7 -10
- package/dist/esm/node/vite/plugins/pluginCommon.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginCommon.js +1 -0
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +121 -75
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +6 -10
- package/dist/esm/node/vite/plugins/pluginExtractAssets.js +7 -8
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +6 -2
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.d.ts +26 -0
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +45 -0
- package/dist/esm/node/vite/plugins/pluginPreview.js +13 -6
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +6 -10
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.d.ts +2 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigsEager.js → generateVirtualFileGlobalEntry.js} +11 -9
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.d.ts +6 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFileEntry.js → generateVirtualFileGlobalEntryWithOldDesign.js} +11 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/{getVirtualFilePageConfigLazy.js → generateVirtualFilePageEntry.js} +10 -11
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.d.ts +14 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +65 -0
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +17 -16
- package/dist/esm/node/vite/shared/findPageFiles.js +1 -1
- package/dist/esm/node/vite/shared/getClientEntrySrcDev.d.ts +4 -0
- package/dist/esm/node/vite/shared/{resolveClientEntriesDev.js → getClientEntrySrcDev.js} +2 -2
- package/dist/esm/node/vite/shared/getMagicString.d.ts +9 -0
- package/dist/esm/node/vite/shared/getMagicString.js +13 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.d.ts +2 -0
- package/dist/esm/node/vite/shared/getManifestFilePathRelative.js +8 -0
- package/dist/esm/node/vite/shared/getOutDirs.d.ts +6 -3
- package/dist/esm/node/vite/shared/getOutDirs.js +19 -13
- package/dist/esm/node/vite/shared/getViteConfigRuntime.js +1 -1
- package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +14 -11
- package/dist/esm/node/vite/shared/isViteServerBuild.js +55 -31
- package/dist/esm/node/vite/shared/loggerVite.js +1 -1
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +31 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +1 -3
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.d.ts +3 -5
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +10 -21
- package/dist/esm/node/vite/utils.d.ts +1 -0
- package/dist/esm/node/vite/utils.js +1 -0
- package/dist/esm/shared/createGlobalContextShared.d.ts +8 -8
- package/dist/esm/shared/createGlobalContextShared.js +38 -17
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.d.ts → parseVirtualFileExportsGlobalEntry.d.ts} +2 -2
- package/dist/esm/shared/getPageFiles/{parseVirtualFileExports.js → parseVirtualFileExportsGlobalEntry.js} +20 -20
- package/dist/esm/shared/getPageFiles.d.ts +1 -1
- package/dist/esm/shared/hooks/execHook.d.ts +2 -2
- package/dist/esm/shared/hooks/getHook.d.ts +3 -3
- package/dist/esm/shared/modifyUrlSameOrigin.d.ts +1 -1
- package/dist/esm/shared/modifyUrlSameOrigin.js +9 -4
- package/dist/esm/shared/page-configs/loadPageEntry.d.ts +3 -0
- package/dist/esm/shared/page-configs/loadPageEntry.js +23 -0
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.d.ts +9 -9
- package/dist/esm/shared/page-configs/resolveVikeConfigPublic.js +4 -4
- package/dist/esm/shared/page-configs/serialize/PageConfigSerialized.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.d.ts → parsePageConfigsSerialized.d.ts} +2 -2
- package/dist/esm/shared/page-configs/serialize/{parsePageConfigs.js → parsePageConfigsSerialized.js} +2 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +3 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +17 -17
- package/dist/esm/shared/utils.d.ts +2 -0
- package/dist/esm/shared/utils.js +2 -0
- package/dist/esm/types/Config.d.ts +33 -98
- package/dist/esm/types/PageConfig.d.ts +9 -7
- package/dist/esm/types/VikeNamespace.d.ts +13 -0
- package/dist/esm/types/index.d.ts +3 -1
- 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 +7 -5
- package/dist/esm/utils/cast.d.ts +2 -2
- package/dist/esm/utils/cast.js +1 -1
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +1 -0
- package/dist/esm/utils/getViteRPC.d.ts +6 -0
- package/dist/esm/utils/getViteRPC.js +77 -0
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.d.ts +7 -0
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -0
- package/dist/esm/utils/isRunnableDevEnvironment.d.ts +3 -0
- package/dist/esm/utils/isRunnableDevEnvironment.js +7 -0
- package/dist/esm/utils/objectFilter.d.ts +1 -1
- package/dist/esm/utils/virtualFileId.d.ts +6 -0
- package/dist/esm/{node/shared/virtualFiles.js → utils/virtualFileId.js} +15 -17
- package/package.json +16 -7
- package/dist/cjs/node/shared/virtualFiles/virtualFileEntry.js +0 -29
- package/dist/cjs/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -39
- package/dist/cjs/node/shared/virtualFiles.js +0 -41
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -23
- package/dist/cjs/node/vite/shared/applyRegExWithMagicString.js +0 -10
- package/dist/cjs/shared/page-configs/loadConfigValues.js +0 -21
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +0 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +0 -4
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.d.ts +0 -11
- package/dist/esm/node/shared/virtualFiles/virtualFileEntry.js +0 -26
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.d.ts +0 -9
- package/dist/esm/node/shared/virtualFiles/virtualFilePageConfigLazy.js +0 -37
- package/dist/esm/node/shared/virtualFiles.d.ts +0 -8
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFileEntry.d.ts +0 -5
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigLazy.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/getVirtualFilePageConfigsEager.d.ts +0 -2
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.d.ts +0 -7
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/isRuntimeEnvMatch.js +0 -21
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.d.ts +0 -3
- package/dist/esm/node/vite/shared/applyRegExWithMagicString.js +0 -8
- package/dist/esm/node/vite/shared/resolveClientEntriesDev.d.ts +0 -4
- package/dist/esm/shared/page-configs/loadConfigValues.d.ts +0 -3
- package/dist/esm/shared/page-configs/loadConfigValues.js +0 -19
|
@@ -30,63 +30,42 @@ const passToClientBuiltInPageContext = [
|
|
|
30
30
|
'data', // for data() hook
|
|
31
31
|
];
|
|
32
32
|
const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
|
|
33
|
-
function getPageContextClientSerialized(pageContext) {
|
|
33
|
+
function getPageContextClientSerialized(pageContext, isHtmlJsonScript) {
|
|
34
34
|
const passToClientPageContext = getPassToClientPageContext(pageContext);
|
|
35
|
-
const
|
|
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);
|
|
35
|
+
const res = applyPassToClient(passToClientPageContext, pageContext);
|
|
41
36
|
const pageContextClient = res.objClient;
|
|
42
37
|
const pageContextClientProps = res.objClientProps;
|
|
43
38
|
if (pageContextClientProps.some((prop) => (0, propKeys_js_1.getPropVal)(pageContext._pageContextInit, prop))) {
|
|
44
39
|
pageContextClient[pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient] = true;
|
|
45
40
|
}
|
|
46
|
-
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext,
|
|
41
|
+
const pageContextClientSerialized = serializeObject(pageContextClient, passToClientPageContext, 'pageContext', isHtmlJsonScript);
|
|
47
42
|
return pageContextClientSerialized;
|
|
48
43
|
}
|
|
49
|
-
function getGlobalContextClientSerialized(pageContext) {
|
|
44
|
+
function getGlobalContextClientSerialized(pageContext, isHtmlJsonScript) {
|
|
50
45
|
const passToClient = pageContext._passToClient;
|
|
51
46
|
const globalContext = pageContext._globalContext;
|
|
52
|
-
const
|
|
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);
|
|
47
|
+
const res = applyPassToClient(passToClient, globalContext);
|
|
65
48
|
const globalContextClient = res.objClient;
|
|
66
|
-
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient,
|
|
49
|
+
const globalContextClientSerialized = serializeObject(globalContextClient, passToClient, 'globalContext', isHtmlJsonScript);
|
|
67
50
|
return globalContextClientSerialized;
|
|
68
51
|
}
|
|
69
|
-
function serializeObject(obj, passToClient,
|
|
52
|
+
function serializeObject(obj, passToClient, objName, isHtmlJsonScript) {
|
|
70
53
|
let serialized;
|
|
71
54
|
try {
|
|
72
|
-
serialized = serializeValue(obj);
|
|
55
|
+
serialized = serializeValue(obj, isHtmlJsonScript);
|
|
73
56
|
}
|
|
74
57
|
catch (err) {
|
|
75
58
|
const h = (s) => picocolors_1.default.cyan(s);
|
|
76
59
|
let hasWarned = false;
|
|
77
60
|
const propsNonSerializable = [];
|
|
78
|
-
passToClient.forEach((
|
|
79
|
-
const entryNormalized = normalizePassToClientEntry(entry);
|
|
80
|
-
const { prop } = entryNormalized;
|
|
61
|
+
passToClient.forEach((prop) => {
|
|
81
62
|
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
82
63
|
if (!res)
|
|
83
64
|
return;
|
|
84
65
|
const { value } = res;
|
|
85
|
-
const { objName } = getObj(entryNormalized) ?? {};
|
|
86
|
-
(0, utils_js_1.assert)(objName);
|
|
87
66
|
const varName = `${objName}${(0, propKeys_js_1.getPropKeys)(prop).map(utils_js_1.getPropAccessNotation).join('')}`;
|
|
88
67
|
try {
|
|
89
|
-
serializeValue(value, varName);
|
|
68
|
+
serializeValue(value, isHtmlJsonScript, varName);
|
|
90
69
|
}
|
|
91
70
|
catch (err) {
|
|
92
71
|
propsNonSerializable.push(prop);
|
|
@@ -124,7 +103,7 @@ function serializeObject(obj, passToClient, getObj) {
|
|
|
124
103
|
obj[(0, propKeys_js_1.getPropKeys)(prop)[0]] = NOT_SERIALIZABLE_js_1.NOT_SERIALIZABLE;
|
|
125
104
|
});
|
|
126
105
|
try {
|
|
127
|
-
serialized = serializeValue(obj);
|
|
106
|
+
serialized = serializeValue(obj, isHtmlJsonScript);
|
|
128
107
|
}
|
|
129
108
|
catch (err) {
|
|
130
109
|
(0, utils_js_1.assert)(false);
|
|
@@ -132,20 +111,20 @@ function serializeObject(obj, passToClient, getObj) {
|
|
|
132
111
|
}
|
|
133
112
|
return serialized;
|
|
134
113
|
}
|
|
135
|
-
function serializeValue(value, varName) {
|
|
114
|
+
function serializeValue(value, isHtmlJsonScript, varName) {
|
|
136
115
|
return (0, stringify_1.stringify)(value, {
|
|
137
116
|
forbidReactElements: true,
|
|
138
117
|
valueName: varName,
|
|
139
118
|
// Prevent Google from crawling URLs in JSON:
|
|
140
|
-
//
|
|
141
|
-
//
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
119
|
+
// - https://github.com/vikejs/vike/pull/2603
|
|
120
|
+
// - https://github.com/brillout/json-serializer/blob/38edbb9945de4938da1e65d6285ce1dd123a45ef/test/main.spec.ts#L44-L95
|
|
121
|
+
replacer: !isHtmlJsonScript
|
|
122
|
+
? undefined
|
|
123
|
+
: (_key, value) => {
|
|
124
|
+
if (typeof value === 'string') {
|
|
125
|
+
return { replacement: value.replaceAll('/', '\\/'), resolved: false };
|
|
126
|
+
}
|
|
127
|
+
},
|
|
149
128
|
});
|
|
150
129
|
}
|
|
151
130
|
function getPassToClientPageContext(pageContext) {
|
|
@@ -158,7 +137,7 @@ function getPassToClientPageContext(pageContext) {
|
|
|
158
137
|
passToClient = (0, utils_js_1.unique)(passToClient);
|
|
159
138
|
return passToClient;
|
|
160
139
|
}
|
|
161
|
-
function getPageContextClientSerializedAbort(pageContext) {
|
|
140
|
+
function getPageContextClientSerializedAbort(pageContext, isHtmlJsonScript) {
|
|
162
141
|
(0, utils_js_1.assert)(pageContext._urlRedirect || pageContext._urlRewrite || pageContext.abortStatusCode);
|
|
163
142
|
(0, utils_js_1.assert)(pageContext._abortCall);
|
|
164
143
|
(0, utils_js_1.assert)(pageContext._abortCaller);
|
|
@@ -191,17 +170,12 @@ function getPageContextClientSerializedAbort(pageContext) {
|
|
|
191
170
|
onlyOnce: false,
|
|
192
171
|
});
|
|
193
172
|
}
|
|
194
|
-
return serializeValue(pageContext);
|
|
173
|
+
return serializeValue(pageContext, isHtmlJsonScript);
|
|
195
174
|
}
|
|
196
|
-
function applyPassToClient(passToClient,
|
|
175
|
+
function applyPassToClient(passToClient, obj) {
|
|
197
176
|
const objClient = {};
|
|
198
177
|
const objClientProps = [];
|
|
199
|
-
passToClient.forEach((
|
|
200
|
-
const entryNormalized = normalizePassToClientEntry(entry);
|
|
201
|
-
const { prop } = entryNormalized;
|
|
202
|
-
const { obj } = getObj(entryNormalized) ?? {};
|
|
203
|
-
if (!obj)
|
|
204
|
-
return;
|
|
178
|
+
passToClient.forEach((prop) => {
|
|
205
179
|
// Get value from pageContext
|
|
206
180
|
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
207
181
|
if (!res)
|
|
@@ -213,16 +187,3 @@ function applyPassToClient(passToClient, getObj) {
|
|
|
213
187
|
});
|
|
214
188
|
return { objClient, objClientProps };
|
|
215
189
|
}
|
|
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 };
|
|
228
|
-
}
|
|
@@ -527,8 +527,8 @@ async function createStreamWrapper({ streamOriginal, onError, onData, onEnd, onF
|
|
|
527
527
|
const closeStream = async () => {
|
|
528
528
|
if (isClosed)
|
|
529
529
|
return;
|
|
530
|
-
isClosed = true;
|
|
531
530
|
await onEnd(isCancel);
|
|
531
|
+
isClosed = true;
|
|
532
532
|
controllerProxy.close();
|
|
533
533
|
};
|
|
534
534
|
let controllerProxy;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.analyzePage = analyzePage;
|
|
4
4
|
const determineClientEntry_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide/determineClientEntry.js");
|
|
5
5
|
const analyzePageClientSide_js_1 = require("../../../shared/getPageFiles/analyzePageClientSide.js");
|
|
6
|
-
const
|
|
6
|
+
const virtualFileId_js_1 = require("../../shared/virtualFileId.js");
|
|
7
7
|
const analyzeClientSide_js_1 = require("../../../shared/getPageFiles/analyzeClientSide.js");
|
|
8
8
|
const getConfigValueRuntime_js_1 = require("../../../shared/page-configs/getConfigValueRuntime.js");
|
|
9
9
|
async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
@@ -17,14 +17,14 @@ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
|
17
17
|
clientEntries.push((0, determineClientEntry_js_1.getVikeClientEntry)(isClientRouting));
|
|
18
18
|
const clientDependencies = [];
|
|
19
19
|
clientDependencies.push({
|
|
20
|
-
id: (0,
|
|
20
|
+
id: (0, virtualFileId_js_1.generateVirtualFileId)({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: true }),
|
|
21
21
|
onlyAssets: isClientRuntimeLoaded ? false : true,
|
|
22
22
|
eagerlyImported: false,
|
|
23
23
|
});
|
|
24
24
|
// In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
|
|
25
25
|
if (!globalContext._isProduction) {
|
|
26
26
|
clientDependencies.push({
|
|
27
|
-
id: (0,
|
|
27
|
+
id: (0, virtualFileId_js_1.generateVirtualFileId)({ type: 'page-entry', pageId: pageConfig.pageId, isForClientSide: false }),
|
|
28
28
|
onlyAssets: true,
|
|
29
29
|
eagerlyImported: false,
|
|
30
30
|
});
|
|
@@ -5,12 +5,9 @@ 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
|
-
function createPageContextServerSide(pageContextInit, globalContext,
|
|
9
|
-
urlHandler: null,
|
|
10
|
-
isClientSideNavigation: false,
|
|
11
|
-
}, }) {
|
|
8
|
+
function createPageContextServerSide(pageContextInit, globalContext, args) {
|
|
12
9
|
(0, utils_js_1.assert)(pageContextInit.urlOriginal);
|
|
13
|
-
const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
|
|
10
|
+
const pageContextCreated = createPageContext(pageContextInit, args.isPrerendering);
|
|
14
11
|
(0, utils_js_1.objectAssign)(pageContextCreated, {
|
|
15
12
|
_globalContext: globalContext,
|
|
16
13
|
_pageFilesAll: globalContext._pageFilesAll, // TO-DO/next-major-release: remove
|
|
@@ -19,8 +16,8 @@ function createPageContextServerSide(pageContextInit, globalContext, { isPrerend
|
|
|
19
16
|
_baseAssets: globalContext.baseAssets,
|
|
20
17
|
_pageContextInit: pageContextInit,
|
|
21
18
|
_urlRewrite: null,
|
|
22
|
-
_urlHandler: urlHandler,
|
|
23
|
-
isClientSideNavigation,
|
|
19
|
+
_urlHandler: args.ssr?.urlHandler ?? null,
|
|
20
|
+
isClientSideNavigation: args.ssr?.isClientSideNavigation ?? false,
|
|
24
21
|
});
|
|
25
22
|
(0, utils_js_1.objectAssign)(pageContextCreated, globalContext._vikeConfigPublicGlobal);
|
|
26
23
|
// pageContext.urlParsed
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getManifestEntry = getManifestEntry;
|
|
4
4
|
const utils_js_1 = require("../../utils.js");
|
|
5
|
-
const
|
|
5
|
+
const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
|
|
6
6
|
const prependEntriesDir_js_1 = require("../../../shared/prependEntriesDir.js");
|
|
7
7
|
function getManifestEntry(id, assetsManifest) {
|
|
8
8
|
const debugInfo = getDebugInfo(id, assetsManifest);
|
|
@@ -14,7 +14,8 @@ function getManifestEntry(id, assetsManifest) {
|
|
|
14
14
|
return { manifestEntry, manifestKey };
|
|
15
15
|
}
|
|
16
16
|
// Page code importer
|
|
17
|
-
|
|
17
|
+
const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(id);
|
|
18
|
+
if (virtualFile && virtualFile.type === 'page-entry') {
|
|
18
19
|
{
|
|
19
20
|
const manifestKey = id;
|
|
20
21
|
const manifestEntry = assetsManifest[manifestKey];
|
|
@@ -24,9 +25,9 @@ function getManifestEntry(id, assetsManifest) {
|
|
|
24
25
|
}
|
|
25
26
|
// Workaround for what seems to be a Vite bug when process.cwd() !== config.root
|
|
26
27
|
// - Manifest key is:
|
|
27
|
-
// ../../virtual:vike:
|
|
28
|
+
// ../../virtual:vike:page-entry:client:/pages/index
|
|
28
29
|
// But it should be this instead:
|
|
29
|
-
// virtual:vike:
|
|
30
|
+
// virtual:vike:page-entry:client:/pages/index
|
|
30
31
|
// - This workaround was implemented to support Vitest running /tests/*
|
|
31
32
|
// - I don't know whether end users actually need this workaround? (I'm not sure what the bug actually is.)
|
|
32
33
|
const manifestKeyEnd = id;
|
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.retrievePageAssetsDev = retrievePageAssetsDev;
|
|
4
|
+
exports.setGetClientEntrySrcDev = setGetClientEntrySrcDev;
|
|
4
5
|
const utils_js_1 = require("../../utils.js");
|
|
5
|
-
|
|
6
|
+
const virtualFileId_js_1 = require("../../../shared/virtualFileId.js");
|
|
7
|
+
const globalObject = (0, utils_js_1.getGlobalObject)('getPageAssets/retrievePageAssetsDev.ts', {
|
|
8
|
+
// We cannot define getClientEntrySrcDev() in this file because it depends on utils/requireResolve.ts which isn't available in production
|
|
9
|
+
getClientEntrySrcDev: null,
|
|
10
|
+
});
|
|
11
|
+
async function retrievePageAssetsDev(viteDevServer, clientDependencies, clientEntries) {
|
|
12
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.getClientEntrySrcDev(clientEntry, viteDevServer));
|
|
13
|
+
const assetUrls = await getAssetUrls(clientDependencies, viteDevServer);
|
|
14
|
+
return { clientEntriesSrc, assetUrls };
|
|
15
|
+
}
|
|
16
|
+
function setGetClientEntrySrcDev(getClientEntrySrcDev) {
|
|
17
|
+
globalObject.getClientEntrySrcDev = getClientEntrySrcDev;
|
|
18
|
+
}
|
|
19
|
+
async function getAssetUrls(clientDependencies, viteDevServer) {
|
|
6
20
|
const assetUrls = new Set();
|
|
7
21
|
await Promise.all(clientDependencies.map(async ({ id }) => {
|
|
8
22
|
if (id.startsWith('@@vike'))
|
|
9
23
|
return; // vike doesn't have any CSS
|
|
10
24
|
(0, utils_js_1.assert)(id);
|
|
25
|
+
const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(id);
|
|
26
|
+
(0, utils_js_1.assert)(!virtualFile || virtualFile.type !== 'global-entry');
|
|
11
27
|
const { moduleGraph } = viteDevServer;
|
|
12
28
|
const [_, graphId] = await moduleGraph.resolveUrl(id);
|
|
13
29
|
(0, utils_js_1.assert)(graphId, { id });
|
|
@@ -34,6 +50,9 @@ function collectCss(mod, styleUrls, visitedModules, importer) {
|
|
|
34
50
|
if (visitedModules.has(mod.url))
|
|
35
51
|
return;
|
|
36
52
|
visitedModules.add(mod.url);
|
|
53
|
+
const virtualFile = (0, virtualFileId_js_1.parseVirtualFileId)(mod.id || mod.url);
|
|
54
|
+
if (virtualFile && virtualFile.type === 'global-entry')
|
|
55
|
+
return; // virtual:vike:global-entry:server dependency list includes all pages
|
|
37
56
|
if (isStyle(mod) && (!importer || !isStyle(importer))) {
|
|
38
57
|
if (mod.url.startsWith('/')) {
|
|
39
58
|
styleUrls.add(mod.url);
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.retrievePageAssetsProd = retrievePageAssetsProd;
|
|
4
|
+
exports.resolveIncludeAssetsImportedByServer = resolveIncludeAssetsImportedByServer;
|
|
4
5
|
const utils_js_1 = require("../../utils.js");
|
|
5
6
|
const getManifestEntry_js_1 = require("./getManifestEntry.js");
|
|
6
7
|
const extractAssetsQuery_js_1 = require("../../../shared/extractAssetsQuery.js");
|
|
7
|
-
function
|
|
8
|
+
function retrievePageAssetsProd(assetsManifest, clientDependencies, clientEntries, config) {
|
|
9
|
+
const clientEntriesSrc = clientEntries.map((clientEntry) => getClientEntrySrcProd(clientEntry, assetsManifest));
|
|
10
|
+
const assetUrls = getAssetsUrl(clientDependencies, assetsManifest, config);
|
|
11
|
+
return { clientEntriesSrc, assetUrls };
|
|
12
|
+
}
|
|
13
|
+
function getClientEntrySrcProd(clientEntry, assetsManifest) {
|
|
14
|
+
const { manifestEntry } = (0, getManifestEntry_js_1.getManifestEntry)(clientEntry, assetsManifest);
|
|
15
|
+
(0, utils_js_1.assert)(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
16
|
+
let { file } = manifestEntry;
|
|
17
|
+
(0, utils_js_1.assert)(!file.startsWith('/'));
|
|
18
|
+
return '/' + file;
|
|
19
|
+
}
|
|
20
|
+
function getAssetsUrl(clientDependencies, assetsManifest, config) {
|
|
21
|
+
const includeAssetsImportedByServer = resolveIncludeAssetsImportedByServer(config);
|
|
8
22
|
let assetUrls = new Set();
|
|
9
23
|
(0, utils_js_1.assert)(assetsManifest);
|
|
10
24
|
const visistedAssets = new Set();
|
|
@@ -58,3 +72,6 @@ function collectSingleStyle(assetUrls, assetsManifest) {
|
|
|
58
72
|
assetUrls.add(`/${style.file}`);
|
|
59
73
|
}
|
|
60
74
|
}
|
|
75
|
+
function resolveIncludeAssetsImportedByServer(config) {
|
|
76
|
+
return config.includeAssetsImportedByServer ?? true;
|
|
77
|
+
}
|
|
@@ -1,33 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getPageAssets = getPageAssets;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const utils_js_1 = require("../utils.js");
|
|
7
|
-
const retrieveAssetsDev_js_1 = require("./getPageAssets/retrieveAssetsDev.js");
|
|
8
|
-
const retrieveAssetsProd_js_1 = require("./getPageAssets/retrieveAssetsProd.js");
|
|
4
|
+
const retrievePageAssetsProd_js_1 = require("./getPageAssets/retrievePageAssetsProd.js");
|
|
5
|
+
const retrievePageAssetsDev_js_1 = require("./getPageAssets/retrievePageAssetsDev.js");
|
|
9
6
|
const inferMediaType_js_1 = require("./inferMediaType.js");
|
|
10
|
-
const getManifestEntry_js_1 = require("./getPageAssets/getManifestEntry.js");
|
|
11
7
|
const sortPageAssetsForEarlyHintsHeader_js_1 = require("./getPageAssets/sortPageAssetsForEarlyHintsHeader.js");
|
|
12
|
-
const
|
|
13
|
-
resolveClientEntriesDev: null,
|
|
14
|
-
});
|
|
8
|
+
const utils_js_1 = require("../utils.js");
|
|
15
9
|
async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
16
10
|
const globalContext = pageContext._globalContext;
|
|
17
11
|
const { _isProduction: isProduction } = globalContext;
|
|
18
12
|
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
|
-
}
|
|
13
|
+
const { assetUrls, clientEntriesSrc } = isDev
|
|
14
|
+
? !globalContext._viteDevServer
|
|
15
|
+
? await (0, utils_js_1.getViteRPC)().retrievePageAssetsDevRPC(clientDependencies, clientEntries)
|
|
16
|
+
: await (0, retrievePageAssetsDev_js_1.retrievePageAssetsDev)(globalContext._viteDevServer, clientDependencies, clientEntries)
|
|
17
|
+
: (0, retrievePageAssetsProd_js_1.retrievePageAssetsProd)(globalContext.assetsManifest, clientDependencies, clientEntries, globalContext.config);
|
|
31
18
|
let pageAssets = [];
|
|
32
19
|
(0, utils_js_1.unique)([...clientEntriesSrc, ...assetUrls]).forEach((src) => {
|
|
33
20
|
const { mediaType = null, assetType = null } = (0, inferMediaType_js_1.inferMediaType)(src) || {};
|
|
@@ -61,16 +48,3 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
61
48
|
await (0, sortPageAssetsForEarlyHintsHeader_js_1.sortPageAssetsForEarlyHintsHeader)(pageAssets, isProduction);
|
|
62
49
|
return pageAssets;
|
|
63
50
|
}
|
|
64
|
-
function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
65
|
-
const { manifestEntry } = (0, getManifestEntry_js_1.getManifestEntry)(clientEntry, assetsManifest);
|
|
66
|
-
(0, utils_js_1.assert)(manifestEntry.isEntry || manifestEntry.isDynamicEntry || clientEntry.endsWith('.css'), { clientEntry });
|
|
67
|
-
let { file } = manifestEntry;
|
|
68
|
-
(0, utils_js_1.assert)(!file.startsWith('/'));
|
|
69
|
-
return '/' + file;
|
|
70
|
-
}
|
|
71
|
-
function setResolveClientEntriesDev(resolveClientEntriesDev) {
|
|
72
|
-
globalObject.resolveClientEntriesDev = resolveClientEntriesDev;
|
|
73
|
-
}
|
|
74
|
-
function resolveIncludeAssetsImportedByServer(config) {
|
|
75
|
-
return config.includeAssetsImportedByServer ?? true;
|
|
76
|
-
}
|
|
@@ -2,31 +2,67 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.handlePageContextRequestUrl = handlePageContextRequestUrl;
|
|
4
4
|
const getPageContextRequestUrl_js_1 = require("../../../shared/getPageContextRequestUrl.js");
|
|
5
|
+
const modifyUrl_js_1 = require("../../../shared/modifyUrl.js");
|
|
5
6
|
const utils_js_1 = require("../utils.js");
|
|
6
7
|
// See also shared/getPageContextRequestUrl.ts
|
|
7
8
|
function handlePageContextRequestUrl(url) {
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
|
|
10
|
+
if (!isMatch(urlParsed)) {
|
|
11
|
+
return {
|
|
12
|
+
isPageContextJsonRequest: false,
|
|
13
|
+
urlWithoutPageContextRequestSuffix: url,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
const { urlWithoutPageContextRequestSuffix, searchVikeArgs } = processUrl(urlParsed, url);
|
|
18
|
+
const previousUrl = parseSearchVikeArgs(searchVikeArgs);
|
|
19
|
+
return {
|
|
20
|
+
/* TO-DO/soon/once: pass & use previousUrl
|
|
21
|
+
isPageContextJsonRequest: { previousUrl },
|
|
22
|
+
/*/
|
|
23
|
+
isPageContextJsonRequest: true,
|
|
24
|
+
//*/
|
|
25
|
+
urlWithoutPageContextRequestSuffix,
|
|
26
|
+
};
|
|
10
27
|
}
|
|
11
|
-
return { urlWithoutPageContextRequestSuffix: removePageContextUrlSuffix(url), isPageContextRequest: true };
|
|
12
28
|
}
|
|
13
|
-
function
|
|
14
|
-
const { pathnameOriginal, pathname } =
|
|
15
|
-
(0, utils_js_1.assert)(
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
return pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
|
|
29
|
+
function isMatch(urlParsed) {
|
|
30
|
+
const { pathnameOriginal, pathname } = urlParsed;
|
|
31
|
+
(0, utils_js_1.assert)(pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension) === pathnameOriginal.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension));
|
|
32
|
+
return pathname.endsWith(getPageContextRequestUrl_js_1.pageContextJsonFileExtension);
|
|
19
33
|
}
|
|
20
|
-
function
|
|
21
|
-
const urlParsed = (0, utils_js_1.parseUrl)(url, utils_js_1.baseServer);
|
|
34
|
+
function processUrl(urlParsed, url) {
|
|
22
35
|
// We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
|
|
23
|
-
const {
|
|
36
|
+
const { pathnameOriginal, search } = urlParsed;
|
|
24
37
|
(0, utils_js_1.assert)(getPageContextRequestUrl_js_1.doNotCreateExtraDirectory === false);
|
|
25
38
|
const urlSuffix = `/index${getPageContextRequestUrl_js_1.pageContextJsonFileExtension}`;
|
|
26
39
|
(0, utils_js_1.assert)(pathnameOriginal.endsWith(urlSuffix), { url });
|
|
27
40
|
let pathnameModified = (0, utils_js_1.slice)(pathnameOriginal, 0, -1 * urlSuffix.length);
|
|
28
41
|
if (pathnameModified === '')
|
|
29
42
|
pathnameModified = '/';
|
|
30
|
-
|
|
31
|
-
|
|
43
|
+
const searchVikeArgs = search?._vike;
|
|
44
|
+
const urlWithoutPageContextRequestSuffix = (0, modifyUrl_js_1.modifyUrl)(url, {
|
|
45
|
+
pathname: pathnameModified,
|
|
46
|
+
search: {
|
|
47
|
+
_vike: searchVikeArgs ? null : undefined,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
searchVikeArgs,
|
|
52
|
+
urlWithoutPageContextRequestSuffix,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function parseSearchVikeArgs(searchVikeArgs) {
|
|
56
|
+
const args = {
|
|
57
|
+
previousUrl: null,
|
|
58
|
+
};
|
|
59
|
+
if (searchVikeArgs) {
|
|
60
|
+
const parsed = JSON.parse(searchVikeArgs);
|
|
61
|
+
(0, utils_js_1.assert)((0, utils_js_1.isObject)(parsed));
|
|
62
|
+
if ('previousUrl' in parsed) {
|
|
63
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(parsed, 'previousUrl', 'string'));
|
|
64
|
+
args.previousUrl = parsed.previousUrl;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return args;
|
|
32
68
|
}
|
|
@@ -9,7 +9,7 @@ const getPageAssets_js_1 = require("./getPageAssets.js");
|
|
|
9
9
|
const debugPageFiles_js_1 = require("./debugPageFiles.js");
|
|
10
10
|
const findPageConfig_js_1 = require("../../../shared/page-configs/findPageConfig.js");
|
|
11
11
|
const analyzePage_js_1 = require("./analyzePage.js");
|
|
12
|
-
const
|
|
12
|
+
const loadPageEntry_js_1 = require("../../../shared/page-configs/loadPageEntry.js");
|
|
13
13
|
const execHookServer_js_1 = require("./execHookServer.js");
|
|
14
14
|
const getCacheControl_js_1 = require("./getCacheControl.js");
|
|
15
15
|
async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
|
|
@@ -18,6 +18,7 @@ async function loadPageConfigsLazyServerSideAndExecHook(pageContext) {
|
|
|
18
18
|
await (0, execHookServer_js_1.execHookServer)('onCreatePageContext', pageContext);
|
|
19
19
|
return pageContext;
|
|
20
20
|
}
|
|
21
|
+
// TODO/now: define new function resolveAfterLoad() ?
|
|
21
22
|
async function loadPageConfigsLazyServerSide(pageContext) {
|
|
22
23
|
const pageConfig = (0, findPageConfig_js_1.findPageConfig)(pageContext._globalContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig ?
|
|
23
24
|
const globalContext = pageContext._globalContext;
|
|
@@ -30,19 +31,32 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
30
31
|
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await (0, analyzePage_js_1.analyzePage)(pageContext._globalContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
|
|
31
32
|
const isV1Design = !!pageConfig;
|
|
32
33
|
const passToClient = [];
|
|
33
|
-
const
|
|
34
|
+
const errMsgSuffix = ' should be an array of strings.';
|
|
34
35
|
if (!isV1Design) {
|
|
35
36
|
configPublicPageLazy.exportsAll.passToClient?.forEach((e) => {
|
|
36
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${
|
|
37
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(e, 'exportValue', 'string[]'), `${e.exportSource}${errMsgSuffix}`);
|
|
37
38
|
passToClient.push(...e.exportValue);
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
41
42
|
configPublicPageLazy.from.configsCumulative.passToClient?.values.forEach((v) => {
|
|
42
|
-
const { value } = v;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
const { value, definedAt } = v;
|
|
44
|
+
const errMsg = `+passToClient value defined at ${definedAt}${errMsgSuffix}`;
|
|
45
|
+
//*/ TO-DO/next-major-release: remove the passToClient once setting from the public API
|
|
46
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isArray)(value), `+passToClient value defined at ${definedAt} should be an array`);
|
|
47
|
+
const valS = value.map((el) => {
|
|
48
|
+
if ((0, utils_js_1.isObject)(el)) {
|
|
49
|
+
(0, utils_js_1.assertWarning)(!('once' in el), 'The passToClient once setting is deprecated and no longer has any effect. Instead, see the upcoming .once.js suffix (see https://github.com/vikejs/vike/issues/2566 for more information).', { onlyOnce: true });
|
|
50
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(el, 'prop', 'string'), errMsg);
|
|
51
|
+
return el.prop;
|
|
52
|
+
}
|
|
53
|
+
(0, utils_js_1.assertUsage)(typeof el === 'string', errMsg);
|
|
54
|
+
return el;
|
|
55
|
+
});
|
|
56
|
+
/*/
|
|
57
|
+
assertUsage(isArrayOfStrings(value), errMsg)
|
|
58
|
+
//*/
|
|
59
|
+
passToClient.push(...valS);
|
|
46
60
|
});
|
|
47
61
|
}
|
|
48
62
|
const pageContextAddendum = {};
|
|
@@ -107,9 +121,9 @@ async function loadPageConfigsLazyServerSide(pageContext) {
|
|
|
107
121
|
}
|
|
108
122
|
async function loadPageConfigFiles(pageFilesAll, pageConfig, pageConfigGlobal, pageId, isDev) {
|
|
109
123
|
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(pageFilesAll, pageId);
|
|
110
|
-
const pageConfigLoaded = !pageConfig ? null : await (0,
|
|
124
|
+
const pageConfigLoaded = !pageConfig ? null : await (0, loadPageEntry_js_1.loadPageEntry)(pageConfig, isDev);
|
|
111
125
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
112
|
-
const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.
|
|
126
|
+
const configPublicPageLazy = (0, resolveVikeConfigPublic_js_1.resolveVikeConfigPublicPageLazyLoaded)(pageFilesServerSide, pageConfigLoaded, pageConfigGlobal);
|
|
113
127
|
return {
|
|
114
128
|
configPublicPageLazy,
|
|
115
129
|
pageFilesLoaded: pageFilesServerSide,
|
|
@@ -50,7 +50,7 @@ async function renderPageAlreadyRouted(pageContext) {
|
|
|
50
50
|
if (isError) {
|
|
51
51
|
(0, utils_js_1.objectAssign)(pageContext, { [isServerSideError_js_1.isServerSideError]: true });
|
|
52
52
|
}
|
|
53
|
-
const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
|
|
53
|
+
const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
|
|
54
54
|
const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
|
|
55
55
|
(0, utils_js_1.objectAssign)(pageContext, { httpResponse });
|
|
56
56
|
return pageContext;
|
|
@@ -63,8 +63,7 @@ async function renderPageAlreadyRouted(pageContext) {
|
|
|
63
63
|
}
|
|
64
64
|
async function prerenderPage(pageContext) {
|
|
65
65
|
(0, utils_js_1.objectAssign)(pageContext, {
|
|
66
|
-
|
|
67
|
-
_urlHandler: null,
|
|
66
|
+
_isPageContextJsonRequest: null,
|
|
68
67
|
});
|
|
69
68
|
/* Should we execute the guard() hook upon pre-rendering? Is there a use case for this?
|
|
70
69
|
* - It isn't trivial to implement, as it requires to duplicate / factor out the isAbortError() handling
|
|
@@ -73,14 +72,13 @@ async function prerenderPage(pageContext) {
|
|
|
73
72
|
await (0, execHookDataAndOnBeforeRender_js_1.execHookDataAndOnBeforeRender)(pageContext);
|
|
74
73
|
const { htmlRender, renderHook } = await (0, execHookOnRenderHtml_js_1.execHookOnRenderHtml)(pageContext);
|
|
75
74
|
(0, utils_js_1.assertUsage)(htmlRender !== null, `Cannot pre-render ${picocolors_1.default.cyan(pageContext.urlOriginal)} because the ${renderHook.hookName}() hook defined by ${renderHook.hookFilePath} didn't return an HTML string.`);
|
|
76
|
-
(0, utils_js_1.assert)(pageContext.isClientSideNavigation === false);
|
|
77
75
|
const documentHtml = await (0, renderHtml_js_1.getHtmlString)(htmlRender);
|
|
78
76
|
(0, utils_js_1.assert)(typeof documentHtml === 'string');
|
|
79
77
|
if (!pageContext._usesClientRouter) {
|
|
80
78
|
return { documentHtml, pageContextSerialized: null, pageContext };
|
|
81
79
|
}
|
|
82
80
|
else {
|
|
83
|
-
const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
|
|
81
|
+
const pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
|
|
84
82
|
return { documentHtml, pageContextSerialized, pageContext };
|
|
85
83
|
}
|
|
86
84
|
}
|
|
@@ -312,7 +312,7 @@ async function getPageContextErrorPageInit(pageContextBegin, errNominalPage, pag
|
|
|
312
312
|
return pageContext;
|
|
313
313
|
}
|
|
314
314
|
function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
|
|
315
|
-
const { isClientSideNavigation, _urlHandler } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
315
|
+
const { isClientSideNavigation, _urlHandler, _isPageContextJsonRequest } = handlePageContextUrl(pageContextInit.urlOriginal);
|
|
316
316
|
const pageContextBegin = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
317
317
|
isPrerendering: false,
|
|
318
318
|
ssr: {
|
|
@@ -320,13 +320,14 @@ function getPageContextBegin(pageContextInit, globalContext, httpRequestId) {
|
|
|
320
320
|
isClientSideNavigation,
|
|
321
321
|
},
|
|
322
322
|
});
|
|
323
|
-
(0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId });
|
|
323
|
+
(0, utils_js_1.objectAssign)(pageContextBegin, { _httpRequestId: httpRequestId, _isPageContextJsonRequest });
|
|
324
324
|
return pageContextBegin;
|
|
325
325
|
}
|
|
326
326
|
function handlePageContextUrl(urlOriginal) {
|
|
327
|
-
const {
|
|
327
|
+
const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
|
|
328
328
|
return {
|
|
329
|
-
isClientSideNavigation:
|
|
329
|
+
isClientSideNavigation: !!isPageContextJsonRequest,
|
|
330
|
+
_isPageContextJsonRequest: isPageContextJsonRequest,
|
|
330
331
|
_urlHandler: (url) => (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(url).urlWithoutPageContextRequestSuffix,
|
|
331
332
|
};
|
|
332
333
|
}
|
|
@@ -350,8 +351,8 @@ async function normalizeUrl(pageContextBegin, globalContext, httpRequestId) {
|
|
|
350
351
|
if (disableUrlNormalization)
|
|
351
352
|
return null;
|
|
352
353
|
const { urlOriginal } = pageContext;
|
|
353
|
-
const {
|
|
354
|
-
if (
|
|
354
|
+
const { isPageContextJsonRequest } = (0, handlePageContextRequestUrl_js_1.handlePageContextRequestUrl)(urlOriginal);
|
|
355
|
+
if (isPageContextJsonRequest)
|
|
355
356
|
return null;
|
|
356
357
|
const urlNormalized = (0, utils_js_1.normalizeUrlPathname)(urlOriginal, trailingSlash ?? false, globalContext.baseServer);
|
|
357
358
|
if (!urlNormalized)
|
|
@@ -424,10 +425,10 @@ pageContextNominalPageBegin, httpRequestId, pageContextErrorPageInit, globalCont
|
|
|
424
425
|
(0, utils_js_1.objectAssign)(pageContext, pageContextErrorPageInit, true);
|
|
425
426
|
(0, utils_js_1.augmentType)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSideAndExecHook)(pageContext));
|
|
426
427
|
// We include pageContextInit: we don't only serialize pageContextAbort because the error page may need to access pageContextInit
|
|
427
|
-
pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext);
|
|
428
|
+
pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerialized)(pageContext, false);
|
|
428
429
|
}
|
|
429
430
|
else {
|
|
430
|
-
pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerializedAbort)(pageContextAbort);
|
|
431
|
+
pageContextSerialized = (0, serializeContext_js_1.getPageContextClientSerializedAbort)(pageContextAbort, false);
|
|
431
432
|
}
|
|
432
433
|
const httpResponse = await (0, createHttpResponse_js_1.createHttpResponsePageContextJson)(pageContextSerialized);
|
|
433
434
|
const pageContextReturn = { httpResponse };
|