vike 0.4.220 → 0.4.221-commit-ab9e52a
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 +5 -23
- package/dist/cjs/node/api/build.js +33 -24
- package/dist/cjs/node/api/context.js +6 -8
- package/dist/cjs/node/api/prepareViteApiCall.js +23 -21
- package/dist/cjs/node/api/prerender.js +1 -0
- package/dist/cjs/node/api/utils.js +2 -1
- package/dist/cjs/node/cli/context.js +16 -0
- package/dist/cjs/node/cli/entry.js +2 -0
- package/dist/cjs/node/cli/utils.js +1 -0
- package/dist/cjs/node/plugin/index.js +4 -8
- package/dist/cjs/node/plugin/onLoad.js +6 -1
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +34 -33
- package/dist/cjs/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/cjs/node/plugin/plugins/buildApp.js +72 -0
- package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +12 -12
- package/dist/cjs/node/plugin/plugins/buildConfig.js +17 -12
- package/dist/cjs/node/plugin/plugins/buildEntry/index.js +28 -24
- package/dist/cjs/node/plugin/plugins/commonConfig.js +9 -7
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +7 -4
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +15 -10
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +11 -6
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +59 -22
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +159 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +40 -23
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +9 -64
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +11 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +403 -590
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
- package/dist/cjs/node/plugin/plugins/packageJsonFile.js +2 -2
- package/dist/cjs/node/plugin/plugins/previewConfig.js +7 -7
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +3 -5
- package/dist/cjs/node/plugin/shared/findPageFiles.js +2 -1
- package/dist/cjs/node/plugin/shared/getFullBuildInlineConfig.js +20 -0
- package/dist/cjs/{utils → node/plugin/shared}/getOutDirs.js +70 -61
- package/dist/cjs/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
- package/dist/cjs/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
- package/dist/cjs/node/plugin/utils.js +1 -2
- package/dist/cjs/node/prerender/context.js +31 -0
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +46 -0
- package/dist/cjs/node/prerender/runPrerender.js +89 -68
- package/dist/cjs/node/prerender/utils.js +2 -2
- package/dist/cjs/node/runtime/globalContext.js +222 -150
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/cjs/node/runtime/html/injectAssets.js +4 -4
- package/dist/cjs/node/runtime/html/renderHtml.js +4 -5
- package/dist/cjs/node/runtime/page-files/setup.js +1 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +2 -27
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/cjs/node/runtime/renderPage/isFontFallback.js +29 -0
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +5 -4
- package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +6 -5
- package/dist/cjs/node/runtime/renderPage.js +31 -29
- package/dist/cjs/node/runtime/utils.js +3 -3
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/cjs/node/shared/resolveBase.js +7 -0
- package/dist/cjs/shared/getPageConfigsRuntime.js +20 -0
- package/dist/cjs/shared/getPageContextUrlComputed.js +6 -1
- package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -1
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -3
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -5
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/cjs/shared/getPageFiles.js +1 -3
- package/dist/cjs/shared/page-configs/getPageConfigUserFriendly.js +15 -6
- package/dist/cjs/shared/page-configs/loadConfigValues.js +5 -1
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +69 -18
- package/dist/cjs/shared/route/loadPageRoutes.js +1 -0
- package/dist/cjs/shared/utils.js +0 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/assertSetup.js +1 -1
- package/dist/cjs/utils/catchInfiniteLoop.js +34 -0
- package/dist/cjs/utils/debug.js +8 -6
- package/dist/cjs/utils/findFile.js +4 -3
- package/dist/cjs/utils/isDev.js +2 -2
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +2 -2
- package/dist/cjs/utils/makePublicCopy.js +32 -0
- package/dist/cjs/utils/objectAssignSafe.js +7 -0
- package/dist/cjs/utils/path.js +48 -0
- package/dist/cjs/utils/requireResolve.js +3 -3
- package/dist/esm/__internal/index.d.ts +2 -2
- package/dist/esm/__internal/index.js +7 -26
- package/dist/esm/client/client-routing-runtime/createPageContext.js +5 -9
- package/dist/esm/client/client-routing-runtime/history.d.ts +3 -1
- package/dist/esm/client/client-routing-runtime/history.js +23 -18
- package/dist/esm/client/client-routing-runtime/index.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/index.js +0 -1
- package/dist/esm/client/client-routing-runtime/initClientRouter.js +2 -2
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.d.ts +0 -4
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +0 -11
- package/dist/esm/client/client-routing-runtime/initOnPopState.d.ts +0 -10
- package/dist/esm/client/client-routing-runtime/initOnPopState.js +50 -70
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +15 -15
- package/dist/esm/client/client-routing-runtime/scrollRestoration.d.ts +4 -6
- package/dist/esm/client/client-routing-runtime/scrollRestoration.js +17 -12
- package/dist/esm/client/client-routing-runtime/setScrollPosition.d.ts +1 -1
- package/dist/esm/client/client-routing-runtime/setScrollPosition.js +29 -5
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +0 -2
- package/dist/esm/client/client-routing-runtime/skipLink.js +0 -1
- package/dist/esm/client/client-routing-runtime/utils.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/utils.js +1 -0
- package/dist/esm/client/server-routing-runtime/getPageContext.js +3 -4
- package/dist/esm/client/shared/loadUserFilesClientSide.js +3 -2
- package/dist/esm/node/api/build.d.ts +1 -6
- package/dist/esm/node/api/build.js +31 -25
- package/dist/esm/node/api/context.d.ts +4 -4
- package/dist/esm/node/api/context.js +6 -9
- package/dist/esm/node/api/prepareViteApiCall.d.ts +4 -3
- package/dist/esm/node/api/prepareViteApiCall.js +24 -22
- package/dist/esm/node/api/prerender.js +1 -0
- package/dist/esm/node/api/utils.d.ts +2 -1
- package/dist/esm/node/api/utils.js +2 -1
- package/dist/esm/node/cli/context.d.ts +5 -0
- package/dist/esm/node/cli/context.js +14 -0
- package/dist/esm/node/cli/entry.js +2 -0
- package/dist/esm/node/cli/parseCli.d.ts +3 -1
- package/dist/esm/node/cli/utils.d.ts +1 -0
- package/dist/esm/node/cli/utils.js +1 -0
- package/dist/esm/node/plugin/index.d.ts +29 -1
- package/dist/esm/node/plugin/index.js +5 -9
- package/dist/esm/node/plugin/onLoad.js +7 -2
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +35 -34
- package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/esm/node/plugin/plugins/buildApp.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/buildApp.js +70 -0
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.d.ts +0 -2
- package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +11 -11
- package/dist/esm/node/plugin/plugins/buildConfig.js +16 -11
- package/dist/esm/node/plugin/plugins/buildEntry/index.d.ts +3 -3
- package/dist/esm/node/plugin/plugins/buildEntry/index.js +28 -24
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +8 -2
- package/dist/esm/node/plugin/plugins/commonConfig.js +7 -5
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +6 -3
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +2 -1
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +14 -9
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +11 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/assertExtensions.d.ts +6 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{assertExtensions.js → getVikeConfig/assertExtensions.js} +41 -36
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +58 -21
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.js → getVikeConfig/getConfigFileExport.js} +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.d.ts +39 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/getPlusFilesAll.js +154 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +15 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +41 -24
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +8 -18
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +10 -65
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +6 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +12 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +10 -122
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +407 -594
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.js → virtual-files/debug.js} +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.js → virtual-files/getVirtualFilePageConfigValuesAll.js} +12 -9
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.js → virtual-files/getVirtualFilePageConfigs.js} +13 -11
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.d.ts → virtual-files/isRuntimeEnvMatch.d.ts} +1 -1
- package/dist/esm/node/plugin/plugins/packageJsonFile.js +1 -1
- package/dist/esm/node/plugin/plugins/previewConfig.js +5 -5
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +4 -6
- package/dist/esm/node/plugin/shared/findPageFiles.js +2 -1
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.d.ts +2 -0
- package/dist/esm/node/plugin/shared/getFullBuildInlineConfig.js +17 -0
- package/dist/esm/{utils → node/plugin/shared}/getOutDirs.d.ts +1 -1
- package/dist/esm/{utils → node/plugin/shared}/getOutDirs.js +52 -43
- package/dist/esm/node/plugin/{resolveClientEntriesDev.js → shared/resolveClientEntriesDev.js} +5 -8
- package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.d.ts +2 -5
- package/dist/esm/{utils → node/plugin/shared}/viteIsSSR.js +2 -2
- package/dist/esm/node/plugin/utils.d.ts +0 -1
- package/dist/esm/node/plugin/utils.js +1 -2
- package/dist/esm/node/prerender/context.d.ts +11 -0
- package/dist/esm/node/prerender/context.js +29 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.d.ts +12 -0
- package/dist/esm/node/prerender/resolvePrerenderConfig.js +44 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +42 -1
- package/dist/esm/node/prerender/runPrerender.js +90 -69
- package/dist/esm/node/prerender/utils.d.ts +2 -2
- package/dist/esm/node/prerender/utils.js +2 -2
- package/dist/esm/node/runtime/globalContext.d.ts +44 -36
- package/dist/esm/node/runtime/globalContext.js +223 -151
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.d.ts +1 -1
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +11 -7
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +4 -1
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -3
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets.js +4 -4
- package/dist/esm/node/runtime/html/renderHtml.js +4 -5
- package/dist/esm/node/runtime/page-files/setup.js +1 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -3
- package/dist/esm/node/runtime/renderPage/getEarlyHints.js +1 -26
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +2 -4
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +3 -1
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +4 -4
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +3 -5
- package/dist/esm/node/runtime/renderPage/isFontFallback.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/isFontFallback.js +27 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +6 -5
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/log404/index.js +1 -2
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +26 -10
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +14 -10
- package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/resolveRedirects.js +5 -5
- package/dist/esm/node/runtime/renderPage.js +32 -30
- package/dist/esm/node/runtime/utils.d.ts +3 -3
- package/dist/esm/node/runtime/utils.js +3 -3
- package/dist/esm/node/runtime-dev/createDevMiddleware.js +5 -3
- package/dist/esm/node/shared/resolveBase.d.ts +5 -1
- package/dist/esm/node/shared/resolveBase.js +7 -0
- package/dist/esm/shared/getPageConfigsRuntime.d.ts +13 -0
- package/dist/esm/shared/getPageConfigsRuntime.js +18 -0
- package/dist/esm/shared/getPageContextUrlComputed.js +6 -1
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -2
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +0 -3
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +0 -5
- package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +1 -1
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +4 -3
- package/dist/esm/shared/getPageFiles.d.ts +0 -1
- package/dist/esm/shared/getPageFiles.js +0 -1
- package/dist/esm/shared/page-configs/Config.d.ts +83 -3
- package/dist/esm/shared/page-configs/PageConfig.d.ts +30 -18
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.d.ts +6 -8
- package/dist/esm/shared/page-configs/getPageConfigUserFriendly.js +15 -6
- package/dist/esm/shared/page-configs/loadConfigValues.js +6 -2
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +7 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +70 -19
- package/dist/esm/shared/route/loadPageRoutes.js +1 -0
- package/dist/esm/shared/utils.d.ts +0 -1
- package/dist/esm/shared/utils.js +0 -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 +1 -1
- package/dist/esm/utils/catchInfiniteLoop.d.ts +2 -0
- package/dist/esm/utils/catchInfiniteLoop.js +32 -0
- package/dist/esm/utils/debug.d.ts +1 -1
- package/dist/esm/utils/debug.js +8 -6
- package/dist/esm/utils/findFile.js +2 -1
- package/dist/esm/utils/isDev.js +3 -3
- package/dist/esm/utils/isFilePathAbsoluteFilesystem.js +1 -1
- package/dist/esm/utils/makePublicCopy.d.ts +3 -0
- package/dist/esm/utils/makePublicCopy.js +30 -0
- package/dist/esm/utils/objectAssignSafe.d.ts +1 -0
- package/dist/esm/utils/objectAssignSafe.js +4 -0
- package/dist/esm/utils/path.d.ts +14 -0
- package/dist/esm/utils/path.js +46 -0
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/requireResolve.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -17
- package/dist/cjs/node/plugin/plugins/importUserCode/addImportStatement.js +0 -29
- package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +0 -16
- package/dist/cjs/node/shared/assertPluginManifest.js +0 -20
- package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -16
- package/dist/cjs/shared/assertPageFilePath.js +0 -11
- package/dist/cjs/shared/getPageFiles/getPageFiles.js +0 -48
- package/dist/cjs/utils/filesystemPathHandling.js +0 -18
- package/dist/cjs/utils/path-shim.js +0 -19
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.d.ts +0 -5
- package/dist/esm/node/plugin/plugins/buildEntry/getVikeManifest.js +0 -15
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.d.ts +0 -14
- package/dist/esm/node/plugin/plugins/importUserCode/addImportStatement.js +0 -27
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/assertExtensions.d.ts +0 -5
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +0 -5
- package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +0 -14
- package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -12
- package/dist/esm/node/shared/assertPluginManifest.js +0 -18
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -10
- package/dist/esm/node/shared/assertRuntimeManifest.js +0 -14
- package/dist/esm/shared/assertPageFilePath.d.ts +0 -2
- package/dist/esm/shared/assertPageFilePath.js +0 -9
- package/dist/esm/shared/getPageFiles/getPageFiles.d.ts +0 -15
- package/dist/esm/shared/getPageFiles/getPageFiles.js +0 -46
- package/dist/esm/utils/filesystemPathHandling.d.ts +0 -4
- package/dist/esm/utils/filesystemPathHandling.js +0 -16
- package/dist/esm/utils/path-shim.d.ts +0 -2
- package/dist/esm/utils/path-shim.js +0 -17
- /package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getConfigFileExport.d.ts → getVikeConfig/getConfigFileExport.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{debug.d.ts → virtual-files/debug.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigValuesAll.d.ts → virtual-files/getVirtualFilePageConfigValuesAll.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{getVirtualFilePageConfigs.d.ts → virtual-files/getVirtualFilePageConfigs.d.ts} +0 -0
- /package/dist/esm/node/plugin/plugins/importUserCode/v1-design/{isRuntimeEnvMatch.js → virtual-files/isRuntimeEnvMatch.js} +0 -0
- /package/dist/esm/node/plugin/{resolveClientEntriesDev.d.ts → shared/resolveClientEntriesDev.d.ts} +0 -0
|
@@ -7,7 +7,6 @@ import { assert, assertUsage, assertWarning, checkType, escapeHtml, hasProp, isH
|
|
|
7
7
|
import { injectHtmlTagsToString, injectHtmlTagsToStream } from './injectAssets.js';
|
|
8
8
|
import { processStream, isStream, streamToString } from './stream.js';
|
|
9
9
|
import { isStreamFromReactStreamingPackage } from './stream/react-streaming.js';
|
|
10
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
11
10
|
import pc from '@brillout/picocolors';
|
|
12
11
|
function isDocumentHtml(something) {
|
|
13
12
|
if (isTemplateWrapped(something) || isEscapedString(something) || isStream(something)) {
|
|
@@ -31,7 +30,7 @@ async function renderDocumentHtml(documentHtml, pageContext, onErrorWhileStreami
|
|
|
31
30
|
}
|
|
32
31
|
if (isTemplateWrapped(documentHtml)) {
|
|
33
32
|
const templateContent = documentHtml._template;
|
|
34
|
-
const render =
|
|
33
|
+
const render = renderTemplate(templateContent, pageContext);
|
|
35
34
|
if (!('htmlStream' in render)) {
|
|
36
35
|
objectAssign(pageContext, { _isStream: false });
|
|
37
36
|
const { htmlPartsAll } = render;
|
|
@@ -120,7 +119,7 @@ function _dangerouslySkipEscape(arg) {
|
|
|
120
119
|
});
|
|
121
120
|
return { _escaped: String(arg) };
|
|
122
121
|
}
|
|
123
|
-
|
|
122
|
+
function renderTemplate(templateContent, pageContext) {
|
|
124
123
|
const htmlPartsBegin = [];
|
|
125
124
|
const htmlPartsEnd = [];
|
|
126
125
|
let htmlStream = null;
|
|
@@ -151,7 +150,7 @@ async function renderTemplate(templateContent, pageContext) {
|
|
|
151
150
|
// Process `escapeInject` fragments
|
|
152
151
|
if (isTemplateWrapped(templateVar)) {
|
|
153
152
|
const templateContentInner = templateVar._template;
|
|
154
|
-
const result =
|
|
153
|
+
const result = renderTemplate(templateContentInner, pageContext);
|
|
155
154
|
if (!('htmlStream' in result)) {
|
|
156
155
|
result.htmlPartsAll.forEach(addHtmlPart);
|
|
157
156
|
}
|
|
@@ -193,7 +192,7 @@ async function renderTemplate(templateContent, pageContext) {
|
|
|
193
192
|
}
|
|
194
193
|
}
|
|
195
194
|
{
|
|
196
|
-
const { isProduction } =
|
|
195
|
+
const { isProduction } = pageContext._globalContext;
|
|
197
196
|
if (isHtml(templateVar) &&
|
|
198
197
|
// We don't show this warning in production because it's expected that some users may (un)willingly do some XSS injection: we avoid flooding the production logs.
|
|
199
198
|
!isProduction) {
|
|
@@ -2,4 +2,5 @@ export { analyzePage };
|
|
|
2
2
|
import type { PageFile } from '../../../shared/getPageFiles/getPageFileObject.js';
|
|
3
3
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
4
4
|
import { type AnalysisResult } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
5
|
-
|
|
5
|
+
import type { GlobalContext } from '../globalContext.js';
|
|
6
|
+
declare function analyzePage(pageFilesAll: PageFile[], pageConfig: null | PageConfigRuntime, pageId: string, globalContext: GlobalContext): Promise<AnalysisResult>;
|
|
@@ -3,9 +3,8 @@ import { getVikeClientEntry } from '../../../shared/getPageFiles/analyzePageClie
|
|
|
3
3
|
import { analyzePageClientSide } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
4
4
|
import { getVirtualFileIdPageConfigValuesAll } from '../../shared/virtual-files/virtualFilePageConfigValuesAll.js';
|
|
5
5
|
import { analyzeClientSide } from '../../../shared/getPageFiles/analyzeClientSide.js';
|
|
6
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
7
6
|
import { getConfigValueRuntime } from '../../../shared/page-configs/getConfigValueRuntime.js';
|
|
8
|
-
function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
7
|
+
async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
9
8
|
if (pageConfig) {
|
|
10
9
|
const { isClientRuntimeLoaded, isClientRouting } = analyzeClientSide(pageConfig, pageFilesAll, pageId);
|
|
11
10
|
const clientEntries = [];
|
|
@@ -21,7 +20,7 @@ function analyzePage(pageFilesAll, pageConfig, pageId) {
|
|
|
21
20
|
eagerlyImported: false
|
|
22
21
|
});
|
|
23
22
|
// In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
|
|
24
|
-
if (!
|
|
23
|
+
if (!globalContext.isProduction) {
|
|
25
24
|
clientDependencies.push({
|
|
26
25
|
id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, false),
|
|
27
26
|
onlyAssets: true,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { getEarlyHints };
|
|
2
|
+
import { isFontFallback } from './isFontFallback.js';
|
|
2
3
|
import { inferEarlyHintLink } from '../html/injectAssets/inferHtmlTags.js';
|
|
3
|
-
import { assert } from '../utils.js';
|
|
4
4
|
function getEarlyHints(assets) {
|
|
5
5
|
const earlyHints = [];
|
|
6
6
|
{
|
|
@@ -16,28 +16,3 @@ function getEarlyHints(assets) {
|
|
|
16
16
|
}
|
|
17
17
|
return earlyHints;
|
|
18
18
|
}
|
|
19
|
-
function isFontFallback(asset, earlyHints) {
|
|
20
|
-
if (asset.assetType !== 'font') {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
const fontUrlBase = removeFileExtentionAndHash(asset.src);
|
|
24
|
-
return earlyHints.some((hint) => {
|
|
25
|
-
return hint.assetType === 'font' && removeFileExtentionAndHash(hint.src) === fontUrlBase;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function removeFileExtentionAndHash(assetUrl) {
|
|
29
|
-
assert(!assetUrl.includes('\\'));
|
|
30
|
-
// The logic below doesn't work for '/assets/chunk-0e184ced.js'
|
|
31
|
-
assert(!assetUrl.endsWith('.js'));
|
|
32
|
-
const paths = assetUrl.split('/');
|
|
33
|
-
{
|
|
34
|
-
const filename = paths[paths.length - 1];
|
|
35
|
-
const filenameParts = filename.split('.');
|
|
36
|
-
assert(filenameParts.length >= 2);
|
|
37
|
-
// User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
|
|
38
|
-
const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
|
|
39
|
-
assert(filenameBase.length >= 1);
|
|
40
|
-
paths[paths.length - 1] = filenameBase.join('.');
|
|
41
|
-
}
|
|
42
|
-
return paths.join('/');
|
|
43
|
-
}
|
package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { sortPageAssetsForEarlyHintsHeader };
|
|
2
2
|
import type { PageAsset } from '../getPageAssets.js';
|
|
3
|
-
declare function sortPageAssetsForEarlyHintsHeader(pageAssets: PageAsset[]): void
|
|
3
|
+
declare function sortPageAssetsForEarlyHintsHeader(pageAssets: PageAsset[], isProduction: boolean): Promise<void>;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export { sortPageAssetsForEarlyHintsHeader };
|
|
2
|
-
import { getGlobalContext } from '../../globalContext.js';
|
|
3
2
|
import { higherFirst } from '../../utils.js';
|
|
4
|
-
function sortPageAssetsForEarlyHintsHeader(pageAssets) {
|
|
5
|
-
const globalContext = getGlobalContext();
|
|
3
|
+
async function sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction) {
|
|
6
4
|
pageAssets.sort(higherFirst(({ assetType }) => {
|
|
7
5
|
// In dev, we load scripts first in order to parallelize I/O and CPU
|
|
8
|
-
if (!
|
|
6
|
+
if (!isProduction && assetType === 'script') {
|
|
9
7
|
return 1;
|
|
10
8
|
}
|
|
11
9
|
let priority = 0;
|
|
@@ -5,7 +5,8 @@ export type { GetPageAssets };
|
|
|
5
5
|
export type { PageContextGetPageAssets };
|
|
6
6
|
import { type MediaType } from './inferMediaType.js';
|
|
7
7
|
import type { ClientDependency } from '../../../shared/getPageFiles/analyzePageClientSide/ClientDependency.js';
|
|
8
|
-
import type {
|
|
8
|
+
import type { GlobalContext } from '../globalContext.js';
|
|
9
|
+
import type { ResolveClientEntriesDev } from '../../plugin/shared/resolveClientEntriesDev.js';
|
|
9
10
|
type PageAsset = {
|
|
10
11
|
src: string;
|
|
11
12
|
assetType: null | NonNullable<MediaType>['assetType'];
|
|
@@ -17,6 +18,7 @@ type PageContextGetPageAssets = {
|
|
|
17
18
|
_baseServer: string;
|
|
18
19
|
_baseAssets: string | null;
|
|
19
20
|
_includeAssetsImportedByServer: boolean;
|
|
21
|
+
_globalContext: GlobalContext;
|
|
20
22
|
};
|
|
21
23
|
declare function getPageAssets(pageContext: PageContextGetPageAssets, clientDependencies: ClientDependency[], clientEntries: string[]): Promise<PageAsset[]>;
|
|
22
24
|
declare function setResolveClientEntriesDev(resolveClientEntriesDev: ResolveClientEntriesDev): void;
|
|
@@ -6,13 +6,13 @@ import { retrieveAssetsProd } from './getPageAssets/retrieveAssetsProd.js';
|
|
|
6
6
|
import { inferMediaType } from './inferMediaType.js';
|
|
7
7
|
import { getManifestEntry } from './getPageAssets/getManifestEntry.js';
|
|
8
8
|
import { sortPageAssetsForEarlyHintsHeader } from './getPageAssets/sortPageAssetsForEarlyHintsHeader.js';
|
|
9
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
10
9
|
const globalObject = getGlobalObject('getPageAssets.ts', {
|
|
11
10
|
resolveClientEntriesDev: null
|
|
12
11
|
});
|
|
13
12
|
async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
14
|
-
const globalContext =
|
|
15
|
-
const
|
|
13
|
+
const globalContext = pageContext._globalContext;
|
|
14
|
+
const { isProduction } = globalContext;
|
|
15
|
+
const isDev = !isProduction;
|
|
16
16
|
let assetUrls;
|
|
17
17
|
let clientEntriesSrc;
|
|
18
18
|
if (isDev) {
|
|
@@ -55,7 +55,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
|
|
|
55
55
|
pageAsset.src = prependBase(toPosixPath(pageAsset.src), baseServerAssets);
|
|
56
56
|
return pageAsset;
|
|
57
57
|
});
|
|
58
|
-
sortPageAssetsForEarlyHintsHeader(pageAssets);
|
|
58
|
+
await sortPageAssetsForEarlyHintsHeader(pageAssets, isProduction);
|
|
59
59
|
return pageAssets;
|
|
60
60
|
}
|
|
61
61
|
function resolveClientEntriesProd(clientEntry, assetsManifest) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { handleErrorWithoutErrorPage };
|
|
2
|
+
import type { GlobalContext } from '../globalContext.js';
|
|
2
3
|
import type { PageContextAfterRender } from './renderPageAlreadyRouted.js';
|
|
3
4
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
4
5
|
import type { PageFile } from '../../../shared/getPageFiles.js';
|
|
@@ -9,5 +10,6 @@ declare function handleErrorWithoutErrorPage<PageContext extends {
|
|
|
9
10
|
pageId: null;
|
|
10
11
|
_pageFilesAll: PageFile[];
|
|
11
12
|
_pageConfigs: PageConfigRuntime[];
|
|
13
|
+
_globalContext: GlobalContext;
|
|
12
14
|
urlOriginal: string;
|
|
13
15
|
}>(pageContext: PageContext): Promise<PageContext & PageContextAfterRender>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { handleErrorWithoutErrorPage };
|
|
2
2
|
import { stringify } from '@brillout/json-serializer/stringify';
|
|
3
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
4
3
|
import { assert, assertWarning, objectAssign } from '../utils.js';
|
|
5
4
|
import { createHttpResponsePage, createHttpResponseError } from './createHttpResponse.js';
|
|
6
5
|
import pc from '@brillout/picocolors';
|
|
@@ -10,7 +9,7 @@ async function handleErrorWithoutErrorPage(pageContext) {
|
|
|
10
9
|
assert(pageContext.errorWhileRendering || pageContext.is404);
|
|
11
10
|
{
|
|
12
11
|
const isV1 = pageContext._pageConfigs.length > 0;
|
|
13
|
-
warnMissingErrorPage(isV1);
|
|
12
|
+
await warnMissingErrorPage(isV1, pageContext._globalContext.isProduction);
|
|
14
13
|
}
|
|
15
14
|
if (!pageContext.isClientSideNavigation) {
|
|
16
15
|
const httpResponse = createHttpResponseError(pageContext);
|
|
@@ -25,9 +24,8 @@ async function handleErrorWithoutErrorPage(pageContext) {
|
|
|
25
24
|
return pageContext;
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
|
-
function warnMissingErrorPage(isV1) {
|
|
29
|
-
|
|
30
|
-
if (!globalContext.isProduction) {
|
|
27
|
+
async function warnMissingErrorPage(isV1, isProduction) {
|
|
28
|
+
if (!isProduction) {
|
|
31
29
|
const msg = [
|
|
32
30
|
`No ${isV1 ? 'error page' : pc.cyan('_error.page.js')} found,`,
|
|
33
31
|
'we recommend defining one',
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export { isFontFallback };
|
|
2
|
+
import { assert } from '../../../utils/assert.js';
|
|
3
|
+
function isFontFallback(asset, pageAssets) {
|
|
4
|
+
if (asset.assetType !== 'font') {
|
|
5
|
+
return false;
|
|
6
|
+
}
|
|
7
|
+
const fontUrlBase = removeFileExtentionAndHash(asset.src);
|
|
8
|
+
return pageAssets.some((assetOther) => {
|
|
9
|
+
return assetOther.assetType === 'font' && removeFileExtentionAndHash(assetOther.src) === fontUrlBase;
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function removeFileExtentionAndHash(assetUrl) {
|
|
13
|
+
assert(!assetUrl.includes('\\'));
|
|
14
|
+
// The logic below doesn't work for '/assets/chunk-0e184ced.js'
|
|
15
|
+
assert(!assetUrl.endsWith('.js'));
|
|
16
|
+
const paths = assetUrl.split('/');
|
|
17
|
+
{
|
|
18
|
+
const filename = paths[paths.length - 1];
|
|
19
|
+
const filenameParts = filename.split('.');
|
|
20
|
+
assert(filenameParts.length >= 2);
|
|
21
|
+
// User may set config.build.rollupOptions.output.assetFileNames => we can't assume the filename to be `*.${hash}.${ext}`
|
|
22
|
+
const filenameBase = filenameParts.slice(0, filenameParts.length === 2 ? -1 : -2);
|
|
23
|
+
assert(filenameBase.length >= 1);
|
|
24
|
+
paths[paths.length - 1] = filenameBase.join('.');
|
|
25
|
+
}
|
|
26
|
+
return paths.join('/');
|
|
27
|
+
}
|
|
@@ -6,10 +6,12 @@ import { PromiseType } from '../utils.js';
|
|
|
6
6
|
import { PageContextGetPageAssets, type PageAsset } from './getPageAssets.js';
|
|
7
7
|
import { type PageContextDebugRouteMatches } from './debugPageFiles.js';
|
|
8
8
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
9
|
+
import type { GlobalContext } from '../globalContext.js';
|
|
9
10
|
type PageContext_loadUserFilesServerSide = PageContextGetPageAssets & PageContextDebugRouteMatches & {
|
|
10
11
|
urlOriginal: string;
|
|
11
12
|
_pageFilesAll: PageFile[];
|
|
12
13
|
_pageConfigs: PageConfigRuntime[];
|
|
14
|
+
_globalContext: GlobalContext;
|
|
13
15
|
};
|
|
14
16
|
type PageFiles = PromiseType<ReturnType<typeof loadUserFilesServerSide>>;
|
|
15
17
|
declare function loadUserFilesServerSide(pageContext: {
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
export { loadUserFilesServerSide };
|
|
2
|
-
import { getPageFilesServerSide
|
|
2
|
+
import { getPageFilesServerSide } from '../../../shared/getPageFiles.js';
|
|
3
|
+
import { getPageConfigUserFriendlyOld } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
3
4
|
import { analyzePageClientSideInit } from '../../../shared/getPageFiles/analyzePageClientSide.js';
|
|
4
5
|
import { assert, assertUsage, assertWarning, hasProp, isArrayOfStrings, objectAssign, isArray } from '../utils.js';
|
|
5
6
|
import { getPageAssets } from './getPageAssets.js';
|
|
6
7
|
import { debugPageFiles } from './debugPageFiles.js';
|
|
7
8
|
import { findPageConfig } from '../../../shared/page-configs/findPageConfig.js';
|
|
8
9
|
import { analyzePage } from './analyzePage.js';
|
|
9
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
10
10
|
import { loadConfigValues } from '../../../shared/page-configs/loadConfigValues.js';
|
|
11
11
|
async function loadUserFilesServerSide(pageContext) {
|
|
12
12
|
const pageConfig = findPageConfig(pageContext._pageConfigs, pageContext.pageId); // Make pageConfig globally available as pageContext._pageConfig?
|
|
13
|
+
const globalContext = pageContext._globalContext;
|
|
13
14
|
const [{ pageFilesLoaded, pageContextExports }] = await Promise.all([
|
|
14
|
-
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !
|
|
15
|
+
loadPageUserFiles(pageContext._pageFilesAll, pageConfig, pageContext.pageId, !globalContext.isProduction),
|
|
15
16
|
analyzePageClientSideInit(pageContext._pageFilesAll, pageContext.pageId, { sharedPageFilesAlreadyLoaded: true })
|
|
16
17
|
]);
|
|
17
|
-
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.pageId);
|
|
18
|
+
const { isHtmlOnly, isClientRouting, clientEntries, clientDependencies, pageFilesClientSide, pageFilesServerSide } = await analyzePage(pageContext._pageFilesAll, pageConfig, pageContext.pageId, globalContext);
|
|
18
19
|
const isV1Design = !!pageConfig;
|
|
19
20
|
const passToClient = [];
|
|
20
21
|
const errMsg = ' should be an array of strings.';
|
|
@@ -99,7 +100,7 @@ async function loadPageUserFiles(pageFilesAll, pageConfig, pageId, isDev) {
|
|
|
99
100
|
const pageFilesServerSide = getPageFilesServerSide(pageFilesAll, pageId);
|
|
100
101
|
const pageConfigLoaded = !pageConfig ? null : await loadConfigValues(pageConfig, isDev);
|
|
101
102
|
await Promise.all(pageFilesServerSide.map((p) => p.loadFile?.()));
|
|
102
|
-
const pageContextExports =
|
|
103
|
+
const pageContextExports = getPageConfigUserFriendlyOld(pageFilesServerSide, pageConfigLoaded);
|
|
103
104
|
return {
|
|
104
105
|
pageContextExports,
|
|
105
106
|
pageFilesLoaded: pageFilesServerSide
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export { log404 };
|
|
2
2
|
export { getRoutesInfo };
|
|
3
3
|
import type { PageRoutes } from '../../../../shared/route/index.js';
|
|
4
|
+
import type { GlobalContext } from '../../globalContext.js';
|
|
4
5
|
declare function log404(pageContext: {
|
|
5
6
|
urlPathname: string;
|
|
6
7
|
errorWhileRendering: null | Error;
|
|
7
8
|
isClientSideNavigation: boolean;
|
|
8
9
|
_pageRoutes: PageRoutes;
|
|
10
|
+
_globalContext: GlobalContext;
|
|
9
11
|
}): Promise<void>;
|
|
10
12
|
declare function getRoutesInfo(pageRoutes: PageRoutes): string | null;
|
|
@@ -2,7 +2,6 @@ export { log404 };
|
|
|
2
2
|
// Exported for ./index.spec.ts
|
|
3
3
|
export { getRoutesInfo };
|
|
4
4
|
import { noRouteMatch } from '../../../../shared/route/noRouteMatch.js';
|
|
5
|
-
import { getGlobalContext } from '../../globalContext.js';
|
|
6
5
|
import { assert, assertUsage, assertInfo, compareString, stripAnsi, getTerminalWidth, truncateString } from '../../utils.js';
|
|
7
6
|
import pc from '@brillout/picocolors';
|
|
8
7
|
async function log404(pageContext) {
|
|
@@ -13,7 +12,7 @@ async function log404(pageContext) {
|
|
|
13
12
|
'No page found. Create at least one /pages/some-page/+Page.js file.'
|
|
14
13
|
*/
|
|
15
14
|
);
|
|
16
|
-
const globalContext =
|
|
15
|
+
const globalContext = pageContext._globalContext;
|
|
17
16
|
if (!globalContext.isProduction && !isFileRequest(urlPathname) && !pageContext.isClientSideNavigation) {
|
|
18
17
|
const routesInfo = getRoutesInfo(pageRoutes);
|
|
19
18
|
let msg = `URL ${pc.cyan(urlPathname)} ${noRouteMatch}`;
|
package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { PageContextUrlInternal } from '../../../shared/getPageContextUrlCompute
|
|
|
4
4
|
import type { PageConfigRuntime } from '../../../shared/page-configs/PageConfig.js';
|
|
5
5
|
import type { PageConfigUserFriendly } from '../../../shared/page-configs/getPageConfigUserFriendly.js';
|
|
6
6
|
import { PageContextBuiltInServerInternal } from '../../../shared/types.js';
|
|
7
|
+
import type { GlobalContext, GlobalContextPublic } from '../globalContext.js';
|
|
7
8
|
type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal & PageConfigUserFriendly & {
|
|
8
9
|
urlOriginal: string;
|
|
9
10
|
/** @deprecated */
|
|
@@ -17,5 +18,7 @@ type PageContextForUserConsumptionServerSide = PageContextBuiltInServerInternal
|
|
|
17
18
|
is404: null | boolean;
|
|
18
19
|
isClientSideNavigation: boolean;
|
|
19
20
|
pageProps?: Record<string, unknown>;
|
|
21
|
+
_globalContext: GlobalContext;
|
|
22
|
+
globalContext: GlobalContextPublic;
|
|
20
23
|
} & Record<string, unknown>;
|
|
21
24
|
declare function preparePageContextForUserConsumptionServerSide(pageContext: PageContextForUserConsumptionServerSide): void;
|
|
@@ -5,6 +5,7 @@ export { getPageContextInitEnhanced };
|
|
|
5
5
|
export type { PageContextAfterRender };
|
|
6
6
|
export type { PageContextInitEnhanced };
|
|
7
7
|
import { type PageContextUrlInternal } from '../../../shared/getPageContextUrlComputed.js';
|
|
8
|
+
import type { GlobalContext } from '../globalContext.js';
|
|
8
9
|
import { HttpResponse } from './createHttpResponse.js';
|
|
9
10
|
import { PageContext_loadUserFilesServerSide, type PageFiles } from './loadUserFilesServerSide.js';
|
|
10
11
|
type PageContextAfterRender = {
|
|
@@ -37,7 +38,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
37
38
|
} & {
|
|
38
39
|
_objectCreatedByVike: boolean;
|
|
39
40
|
_baseServer: string;
|
|
40
|
-
_baseAssets: string
|
|
41
|
+
_baseAssets: string;
|
|
41
42
|
_includeAssetsImportedByServer: boolean;
|
|
42
43
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
43
44
|
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
@@ -45,6 +46,9 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
45
46
|
_allPageIds: string[];
|
|
46
47
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
47
48
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
49
|
+
_globalContext: GlobalContext;
|
|
50
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
51
|
+
globalContext: import("../globalContext.js").GlobalContextPublic;
|
|
48
52
|
_pageContextInit: {
|
|
49
53
|
urlOriginal: string;
|
|
50
54
|
headersOriginal?: unknown;
|
|
@@ -88,7 +92,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
88
92
|
} & {
|
|
89
93
|
_objectCreatedByVike: boolean;
|
|
90
94
|
_baseServer: string;
|
|
91
|
-
_baseAssets: string
|
|
95
|
+
_baseAssets: string;
|
|
92
96
|
_includeAssetsImportedByServer: boolean;
|
|
93
97
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
94
98
|
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
@@ -96,6 +100,9 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
96
100
|
_allPageIds: string[];
|
|
97
101
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
98
102
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
103
|
+
_globalContext: GlobalContext;
|
|
104
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
105
|
+
globalContext: import("../globalContext.js").GlobalContextPublic;
|
|
99
106
|
_pageContextInit: {
|
|
100
107
|
urlOriginal: string;
|
|
101
108
|
headersOriginal?: unknown;
|
|
@@ -130,7 +137,7 @@ declare function prerenderPage(pageContext: PageContextInitEnhanced & PageFiles
|
|
|
130
137
|
_urlHandler: null;
|
|
131
138
|
};
|
|
132
139
|
}>;
|
|
133
|
-
declare function prerender404Page(pageContextInit_: Record<string, unknown> | null): Promise<{
|
|
140
|
+
declare function prerender404Page(pageContextInit_: Record<string, unknown> | null, globalContext: GlobalContext): Promise<{
|
|
134
141
|
documentHtml: string;
|
|
135
142
|
pageContextSerialized: null;
|
|
136
143
|
pageContext: {
|
|
@@ -140,7 +147,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
140
147
|
} & {
|
|
141
148
|
_objectCreatedByVike: boolean;
|
|
142
149
|
_baseServer: string;
|
|
143
|
-
_baseAssets: string
|
|
150
|
+
_baseAssets: string;
|
|
144
151
|
_includeAssetsImportedByServer: boolean;
|
|
145
152
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
146
153
|
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
@@ -148,6 +155,9 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
148
155
|
_allPageIds: string[];
|
|
149
156
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
150
157
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
158
|
+
_globalContext: GlobalContext;
|
|
159
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
160
|
+
globalContext: import("../globalContext.js").GlobalContextPublic;
|
|
151
161
|
_pageContextInit: {
|
|
152
162
|
urlOriginal: string;
|
|
153
163
|
headersOriginal?: unknown;
|
|
@@ -191,7 +201,7 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
191
201
|
} & {
|
|
192
202
|
_objectCreatedByVike: boolean;
|
|
193
203
|
_baseServer: string;
|
|
194
|
-
_baseAssets: string
|
|
204
|
+
_baseAssets: string;
|
|
195
205
|
_includeAssetsImportedByServer: boolean;
|
|
196
206
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
197
207
|
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
@@ -199,6 +209,9 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
199
209
|
_allPageIds: string[];
|
|
200
210
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
201
211
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
212
|
+
_globalContext: GlobalContext;
|
|
213
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
214
|
+
globalContext: import("../globalContext.js").GlobalContextPublic;
|
|
202
215
|
_pageContextInit: {
|
|
203
216
|
urlOriginal: string;
|
|
204
217
|
headersOriginal?: unknown;
|
|
@@ -233,25 +246,25 @@ declare function prerender404Page(pageContextInit_: Record<string, unknown> | nu
|
|
|
233
246
|
_urlHandler: null;
|
|
234
247
|
};
|
|
235
248
|
} | null>;
|
|
236
|
-
type PageContextInitEnhanced = ReturnType<typeof getPageContextInitEnhanced
|
|
249
|
+
type PageContextInitEnhanced = Awaited<ReturnType<typeof getPageContextInitEnhanced>>;
|
|
237
250
|
declare function getPageContextInitEnhanced(pageContextInit: {
|
|
238
251
|
urlOriginal: string;
|
|
239
252
|
headersOriginal?: unknown;
|
|
240
253
|
headers?: unknown;
|
|
241
|
-
}, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
|
|
254
|
+
}, globalContext: GlobalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } }?: {
|
|
242
255
|
ssr?: {
|
|
243
256
|
urlRewrite: null | string;
|
|
244
257
|
urlHandler: null | ((url: string) => string);
|
|
245
258
|
isClientSideNavigation: boolean;
|
|
246
259
|
};
|
|
247
|
-
}): {
|
|
260
|
+
}): Promise<{
|
|
248
261
|
urlOriginal: string;
|
|
249
262
|
headersOriginal?: unknown;
|
|
250
263
|
headers?: unknown;
|
|
251
264
|
} & {
|
|
252
265
|
_objectCreatedByVike: boolean;
|
|
253
266
|
_baseServer: string;
|
|
254
|
-
_baseAssets: string
|
|
267
|
+
_baseAssets: string;
|
|
255
268
|
_includeAssetsImportedByServer: boolean;
|
|
256
269
|
_pageFilesAll: import("../../../shared/getPageFiles.js").PageFile[];
|
|
257
270
|
_pageConfigs: import("../../../__internal/index.js").PageConfig[];
|
|
@@ -259,6 +272,9 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
259
272
|
_allPageIds: string[];
|
|
260
273
|
_pageRoutes: import("../../../__internal/index.js").PageRoutes;
|
|
261
274
|
_onBeforeRouteHook: import("../../../shared/hooks/getHook.js").Hook | null;
|
|
275
|
+
_globalContext: GlobalContext;
|
|
276
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
277
|
+
globalContext: import("../globalContext.js").GlobalContextPublic;
|
|
262
278
|
_pageContextInit: {
|
|
263
279
|
urlOriginal: string;
|
|
264
280
|
headersOriginal?: unknown;
|
|
@@ -273,4 +289,4 @@ declare function getPageContextInitEnhanced(pageContextInit: {
|
|
|
273
289
|
url: string;
|
|
274
290
|
} & {
|
|
275
291
|
headers: Record<string, string> | null;
|
|
276
|
-
}
|
|
292
|
+
}>;
|
|
@@ -7,7 +7,6 @@ import { getHtmlString } from '../html/renderHtml.js';
|
|
|
7
7
|
import { assert, assertUsage, assertWarning, hasProp, normalizeHeaders, objectAssign } from '../utils.js';
|
|
8
8
|
import { serializePageContextClientSide } from '../html/serializePageContextClientSide.js';
|
|
9
9
|
import { getPageContextUrlComputed } from '../../../shared/getPageContextUrlComputed.js';
|
|
10
|
-
import { getGlobalContext } from '../globalContext.js';
|
|
11
10
|
import { createHttpResponsePage, createHttpResponsePageContextJson } from './createHttpResponse.js';
|
|
12
11
|
import { loadUserFilesServerSide } from './loadUserFilesServerSide.js';
|
|
13
12
|
import { executeOnRenderHtmlHook } from './executeOnRenderHtmlHook.js';
|
|
@@ -18,6 +17,7 @@ import { preparePageContextForUserConsumptionServerSide } from './preparePageCon
|
|
|
18
17
|
import { executeGuardHook } from '../../../shared/route/executeGuardHook.js';
|
|
19
18
|
import pc from '@brillout/picocolors';
|
|
20
19
|
import { isServerSideError } from '../../../shared/misc/isServerSideError.js';
|
|
20
|
+
import { resolveBaseRuntime } from '../../shared/resolveBase.js';
|
|
21
21
|
async function renderPageAlreadyRouted(pageContext) {
|
|
22
22
|
// pageContext.pageId can either be the:
|
|
23
23
|
// - ID of the page matching the routing, or the
|
|
@@ -80,8 +80,7 @@ async function prerenderPage(pageContext) {
|
|
|
80
80
|
return { documentHtml, pageContextSerialized, pageContext };
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
async function prerender404Page(pageContextInit_) {
|
|
84
|
-
const globalContext = getGlobalContext();
|
|
83
|
+
async function prerender404Page(pageContextInit_, globalContext) {
|
|
85
84
|
const errorPageId = getErrorPageId(globalContext.pageFilesAll, globalContext.pageConfigs);
|
|
86
85
|
if (!errorPageId) {
|
|
87
86
|
return null;
|
|
@@ -101,34 +100,39 @@ async function prerender404Page(pageContextInit_) {
|
|
|
101
100
|
};
|
|
102
101
|
objectAssign(pageContextInit, pageContextInit_);
|
|
103
102
|
{
|
|
104
|
-
const pageContextInitEnhanced = getPageContextInitEnhanced(pageContextInit);
|
|
103
|
+
const pageContextInitEnhanced = await getPageContextInitEnhanced(pageContextInit, globalContext);
|
|
105
104
|
objectAssign(pageContext, pageContextInitEnhanced);
|
|
106
105
|
}
|
|
107
106
|
objectAssign(pageContext, await loadUserFilesServerSide(pageContext));
|
|
108
107
|
return prerenderPage(pageContext);
|
|
109
108
|
}
|
|
110
|
-
function getPageContextInitEnhanced(pageContextInit, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
|
|
109
|
+
async function getPageContextInitEnhanced(pageContextInit, globalContext, { ssr: { urlRewrite, urlHandler, isClientSideNavigation } = {
|
|
111
110
|
urlRewrite: null,
|
|
112
111
|
urlHandler: null,
|
|
113
112
|
isClientSideNavigation: false
|
|
114
113
|
} } = {}) {
|
|
115
114
|
assert(pageContextInit.urlOriginal);
|
|
116
|
-
const
|
|
115
|
+
const { baseServer, baseAssets } = resolveBaseRuntime(globalContext);
|
|
117
116
|
const pageContextInitEnhanced = {};
|
|
118
117
|
objectAssign(pageContextInitEnhanced, pageContextInit);
|
|
119
118
|
objectAssign(pageContextInitEnhanced, {
|
|
120
119
|
_objectCreatedByVike: true,
|
|
121
120
|
// The following is defined on `pageContext` because we can eventually make these non-global
|
|
122
|
-
_baseServer:
|
|
123
|
-
_baseAssets:
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
_baseServer: baseServer,
|
|
122
|
+
_baseAssets: baseAssets,
|
|
123
|
+
// TODO/now: add meta.default
|
|
124
|
+
_includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
|
|
125
|
+
// TODO/soon: use GloablContext instead
|
|
126
126
|
_pageFilesAll: globalContext.pageFilesAll,
|
|
127
127
|
_pageConfigs: globalContext.pageConfigs,
|
|
128
128
|
_pageConfigGlobal: globalContext.pageConfigGlobal,
|
|
129
129
|
_allPageIds: globalContext.allPageIds,
|
|
130
130
|
_pageRoutes: globalContext.pageRoutes,
|
|
131
131
|
_onBeforeRouteHook: globalContext.onBeforeRouteHook,
|
|
132
|
+
_globalContext: globalContext,
|
|
133
|
+
// TODO/now: add PageContext['globalContext']
|
|
134
|
+
/** @experimental This is a beta feature https://vike.dev/getGlobalContext */
|
|
135
|
+
globalContext: globalContext.globalContext_public,
|
|
132
136
|
_pageContextInit: pageContextInit,
|
|
133
137
|
_urlRewrite: urlRewrite,
|
|
134
138
|
_urlHandler: urlHandler,
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { resolveRedirects };
|
|
2
2
|
export { resolveRouteStringRedirect };
|
|
3
|
+
export { redirectsErrPrefix };
|
|
4
|
+
declare const redirectsErrPrefix = "[+redirects]";
|
|
3
5
|
declare function resolveRedirects(redirectsAll: Record<string, string>[], urlPathname: string): null | string;
|
|
4
6
|
declare function resolveRouteStringRedirect(urlSource: string, urlTarget: string, urlPathname: string): null | string;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export { resolveRedirects };
|
|
2
2
|
// For ./resolveRedirects.spec.ts
|
|
3
3
|
export { resolveRouteStringRedirect };
|
|
4
|
+
export { redirectsErrPrefix };
|
|
4
5
|
import { assertIsNotBrowser } from '../../../utils/assertIsNotBrowser.js';
|
|
5
6
|
import { assert, assertUsage, assertUsageUrlRedirectTarget, isUrlRedirectTarget } from '../../../shared/utils.js';
|
|
6
7
|
import { resolveUrlPathname } from '../../../shared/route/resolveUrlPathname.js';
|
|
7
8
|
import { assertRouteString, resolveRouteString } from '../../../shared/route/resolveRouteString.js';
|
|
8
9
|
import pc from '@brillout/picocolors';
|
|
9
10
|
assertIsNotBrowser(); // Don't bloat the client
|
|
10
|
-
|
|
11
|
-
const configSrc = '[vite.config.js > vike({ redirects })]';
|
|
11
|
+
const redirectsErrPrefix = '[+redirects]';
|
|
12
12
|
function resolveRedirects(redirectsAll, urlPathname) {
|
|
13
13
|
const redirects = merge(redirectsAll);
|
|
14
14
|
for (const [urlSource, urlTarget] of Object.entries(redirects)) {
|
|
@@ -19,9 +19,9 @@ function resolveRedirects(redirectsAll, urlPathname) {
|
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
21
|
function resolveRouteStringRedirect(urlSource, urlTarget, urlPathname) {
|
|
22
|
-
assertRouteString(urlSource, `${
|
|
22
|
+
assertRouteString(urlSource, `${redirectsErrPrefix} Invalid`);
|
|
23
23
|
// Is allowing any protocol a safety issue? https://github.com/vikejs/vike/pull/1292#issuecomment-1828043917
|
|
24
|
-
assertUsageUrlRedirectTarget(urlTarget, `${
|
|
24
|
+
assertUsageUrlRedirectTarget(urlTarget, `${redirectsErrPrefix} The URL redirection target`, true);
|
|
25
25
|
assertParams(urlSource, urlTarget);
|
|
26
26
|
const match = resolveRouteString(urlSource, urlPathname);
|
|
27
27
|
if (!match)
|
|
@@ -37,7 +37,7 @@ function assertParams(urlSource, urlTarget) {
|
|
|
37
37
|
routeSegments.forEach((routeSegment) => {
|
|
38
38
|
if (routeSegment.startsWith('@') || routeSegment.startsWith('*')) {
|
|
39
39
|
const segments = urlSource.split('/');
|
|
40
|
-
assertUsage(segments.includes(routeSegment), `${
|
|
40
|
+
assertUsage(segments.includes(routeSegment), `${redirectsErrPrefix} The redirection source URL ${pc.string(urlSource)} is missing the URL parameter ${pc.string(routeSegment)} used by the redirection target URL ${pc.string(urlTarget)}`);
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
}
|