vike 0.4.239 → 0.4.240-commit-bac5dee
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/esm/client/index.d.ts +1 -1
- package/dist/esm/client/index.js +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/runtime-client-routing/entry.js +5 -3
- package/dist/esm/client/runtime-client-routing/getBaseServer.js +0 -1
- package/dist/esm/client/runtime-client-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
- package/dist/esm/client/runtime-client-routing/{globalContext.js → getGlobalContextClientInternal.js} +8 -4
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.d.ts +6 -6
- package/dist/esm/client/runtime-client-routing/getPageContextFromHooks.js +1 -1
- package/dist/esm/client/runtime-client-routing/isClientSideRoutable.d.ts +1 -1
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +4 -4
- package/dist/esm/client/runtime-client-routing/renderPageClientSide.js +15 -4
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.d.ts +1 -1
- package/dist/esm/client/runtime-server-routing/createPageContextClientSide.js +1 -1
- package/dist/esm/client/runtime-server-routing/entry.js +5 -3
- package/dist/esm/client/runtime-server-routing/{globalContext.d.ts → getGlobalContextClientInternal.d.ts} +2 -2
- package/dist/esm/client/runtime-server-routing/getGlobalContextClientInternal.js +6 -0
- package/dist/esm/client/shared/execHookOnRenderClient.d.ts +1 -1
- package/dist/esm/client/shared/{createGetGlobalContextClient.d.ts → getGlobalContextClientInternalShared.d.ts} +11 -8
- package/dist/esm/client/shared/getGlobalContextClientInternalShared.js +66 -0
- package/dist/esm/client/shared/loadPageConfigsLazyClientSide.js +1 -3
- package/dist/esm/node/prerender/runPrerender.d.ts +4 -2
- package/dist/esm/node/prerender/runPrerender.js +5 -2
- package/dist/esm/node/runtime/globalContext.d.ts +15 -2
- package/dist/esm/node/runtime/globalContext.js +46 -32
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +4 -2
- package/dist/esm/node/runtime/renderPage/loadPageConfigsLazyServerSide.d.ts +4 -2
- package/dist/esm/node/runtime/renderPage/renderPageAfterRoute.d.ts +8 -4
- package/dist/esm/node/runtime/renderPage.d.ts +4 -2
- package/dist/esm/node/vite/index.js +42 -18
- package/dist/esm/node/vite/onLoad.js +1 -1
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.d.ts +4 -0
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/handleAssetsManifest.js +21 -6
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.js +24 -20
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.js +20 -6
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistFileNames.d.ts +1 -1
- package/dist/esm/node/vite/plugins/build/pluginDistFileNames.js +253 -0
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginDistPackageJsonFile.d.ts +1 -1
- package/dist/esm/node/vite/plugins/build/pluginDistPackageJsonFile.js +40 -0
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginModuleBanner.d.ts +1 -1
- package/dist/esm/node/vite/plugins/build/pluginModuleBanner.js +49 -0
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.js +4 -2
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.d.ts +1 -1
- package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginSuppressRollupWarning.js +27 -23
- package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.d.ts +7 -0
- package/dist/esm/node/vite/plugins/non-runnable-dev/pluginReplaceConstantsNonRunnableDev.js +47 -0
- package/dist/esm/node/vite/plugins/{pluginNonRunnableDev.d.ts → non-runnable-dev/pluginViteRPC.d.ts} +3 -7
- package/dist/esm/node/vite/plugins/non-runnable-dev/pluginViteRPC.js +30 -0
- package/dist/esm/node/vite/plugins/pluginBaseUrls.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginBaseUrls.js +39 -33
- package/dist/esm/node/vite/plugins/pluginCommon.js +8 -28
- package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -1
- package/dist/esm/node/vite/plugins/pluginDev/determineOptimizeDeps.js +1 -1
- package/dist/esm/node/vite/plugins/pluginDev.js +51 -47
- package/dist/esm/node/vite/plugins/pluginExtractAssets.js +108 -92
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +39 -23
- package/dist/esm/node/vite/plugins/pluginFileEnv.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginFileEnv.js +117 -92
- package/dist/esm/node/vite/plugins/pluginPreview.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginPreview.js +38 -30
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsEnvVars.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsEnvVars.js +127 -0
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsGlobalThis.d.ts +17 -0
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsGlobalThis.js +52 -0
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsPageContext.d.ts +3 -0
- package/dist/esm/node/vite/plugins/pluginReplaceConstantsPageContext.js +89 -0
- package/dist/esm/node/vite/plugins/pluginSetGlobalContext.js +4 -2
- package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +1 -1
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginVirtualFiles.js +67 -47
- package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +13 -9
- package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.d.ts +1 -1
- package/dist/esm/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +26 -24
- package/dist/esm/node/vite/shared/getMagicString.d.ts +1 -1
- package/dist/esm/node/vite/shared/getMagicString.js +2 -0
- package/dist/esm/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +2 -2
- package/dist/esm/shared/createGlobalContextShared.d.ts +4 -4
- package/dist/esm/shared/route/abort.d.ts +22 -11
- package/dist/esm/shared/route/abort.js +45 -5
- package/dist/esm/shared/route/index.js +13 -4
- package/dist/esm/shared/route/utils.d.ts +1 -0
- package/dist/esm/shared/route/utils.js +1 -0
- package/dist/esm/types/Config.d.ts +1 -1
- package/dist/esm/types/PageContext.d.ts +8 -8
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/assert.js +1 -0
- package/dist/esm/utils/debug.d.ts +5 -3
- package/dist/esm/utils/debug.js +28 -11
- package/dist/esm/utils/findPackageJson.js +0 -1
- package/dist/esm/utils/getGlobalObject.d.ts +5 -1
- package/dist/esm/utils/getGlobalObject.js +5 -1
- package/dist/esm/utils/getViteRPC.js +0 -2
- package/dist/esm/utils/isDev.js +3 -1
- package/dist/esm/utils/isNonRunnableDev.js +2 -2
- package/dist/esm/utils/requireResolve.js +1 -2
- package/dist/esm/utils/virtualFileId.d.ts +4 -0
- package/dist/esm/utils/virtualFileId.js +14 -11
- package/package.json +7 -26
- package/dist/cjs/__internal/index.js +0 -35
- package/dist/cjs/client/runtime-client-routing/globalContext.js +0 -49
- package/dist/cjs/client/runtime-client-routing/prefetch/PrefetchSetting.js +0 -2
- package/dist/cjs/client/runtime-server-routing/globalContext.js +0 -41
- package/dist/cjs/client/runtime-server-routing/onLoad.js +0 -7
- package/dist/cjs/client/runtime-server-routing/utils.js +0 -34
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +0 -65
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +0 -40
- package/dist/cjs/client/shared/preparePageContextForPublicUsageClientShared.js +0 -41
- package/dist/cjs/client/shared/utils.js +0 -23
- package/dist/cjs/node/api/build.js +0 -24
- package/dist/cjs/node/api/context.js +0 -23
- package/dist/cjs/node/api/dev.js +0 -18
- package/dist/cjs/node/api/index.js +0 -44
- package/dist/cjs/node/api/onLoad.js +0 -9
- package/dist/cjs/node/api/prepareViteApiCall.js +0 -206
- package/dist/cjs/node/api/prerender.js +0 -18
- package/dist/cjs/node/api/preview.js +0 -38
- package/dist/cjs/node/api/types.js +0 -2
- package/dist/cjs/node/api/utils.js +0 -27
- package/dist/cjs/node/cli/context.js +0 -17
- package/dist/cjs/node/cli/entry.js +0 -121
- package/dist/cjs/node/cli/index.js +0 -12
- package/dist/cjs/node/cli/onLoad.js +0 -9
- package/dist/cjs/node/cli/parseCli.js +0 -95
- package/dist/cjs/node/cli/utils.js +0 -24
- package/dist/cjs/node/client/router.js +0 -19
- package/dist/cjs/node/createPageRenderer.js +0 -132
- package/dist/cjs/node/importBuild.js +0 -3
- package/dist/cjs/node/prerender/context.js +0 -26
- package/dist/cjs/node/prerender/index.js +0 -12
- package/dist/cjs/node/prerender/resolvePrerenderConfig.js +0 -66
- package/dist/cjs/node/prerender/runPrerender.js +0 -777
- package/dist/cjs/node/prerender/runPrerenderEntry.js +0 -55
- package/dist/cjs/node/prerender/utils.js +0 -37
- package/dist/cjs/node/runtime/globalContext.js +0 -572
- package/dist/cjs/node/runtime/index-deprecated.js +0 -33
- package/dist/cjs/node/runtime/index.js +0 -74
- package/dist/cjs/node/runtime/loggerRuntime.js +0 -17
- package/dist/cjs/node/runtime/onLoad.js +0 -29
- package/dist/cjs/node/runtime/page-files/setup.js +0 -5
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +0 -71
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +0 -42
- package/dist/cjs/node/runtime/renderPage/createHttpResponse/assertNoInfiniteHttpRedirect.js +0 -51
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +0 -114
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +0 -59
- package/dist/cjs/node/runtime/renderPage/csp.js +0 -47
- package/dist/cjs/node/runtime/renderPage/execHookDataAndOnBeforeRender.js +0 -31
- package/dist/cjs/node/runtime/renderPage/execHookOnRenderHtml.js +0 -120
- package/dist/cjs/node/runtime/renderPage/execHookServer.js +0 -8
- package/dist/cjs/node/runtime/renderPage/getCacheControl.js +0 -24
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +0 -20
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +0 -137
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +0 -125
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsDev.js +0 -86
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrievePageAssetsProd.js +0 -77
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +0 -36
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +0 -50
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +0 -41
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +0 -68
- package/dist/cjs/node/runtime/renderPage/headersResponse.js +0 -48
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/getHtmlTags.js +0 -269
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/getViteDevScript.js +0 -32
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/inferHtmlTags.js +0 -55
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectAssets__public.js +0 -31
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/injectHtmlTags.js +0 -161
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/mergeScriptTags.js +0 -73
- package/dist/cjs/node/runtime/renderPage/html/injectAssets/sanitizeJson.js +0 -8
- package/dist/cjs/node/runtime/renderPage/html/injectAssets.js +0 -93
- package/dist/cjs/node/runtime/renderPage/html/propKeys.js +0 -47
- package/dist/cjs/node/runtime/renderPage/html/renderHtml.js +0 -245
- package/dist/cjs/node/runtime/renderPage/html/serializeContext.js +0 -189
- package/dist/cjs/node/runtime/renderPage/html/stream/react-streaming.js +0 -36
- package/dist/cjs/node/runtime/renderPage/html/stream.js +0 -829
- package/dist/cjs/node/runtime/renderPage/inferMediaType.js +0 -81
- package/dist/cjs/node/runtime/renderPage/isFontFallback.js +0 -29
- package/dist/cjs/node/runtime/renderPage/isNewError.js +0 -25
- package/dist/cjs/node/runtime/renderPage/loadPageConfigsLazyServerSide.js +0 -124
- package/dist/cjs/node/runtime/renderPage/log404/index.js +0 -154
- package/dist/cjs/node/runtime/renderPage/logErrorHint/errors.js +0 -20
- package/dist/cjs/node/runtime/renderPage/logErrorHint.js +0 -200
- package/dist/cjs/node/runtime/renderPage/loggerProd.js +0 -34
- package/dist/cjs/node/runtime/renderPage/preparePageContextForPublicUsageServer.js +0 -10
- package/dist/cjs/node/runtime/renderPage/renderPageAfterRoute.js +0 -83
- package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +0 -71
- package/dist/cjs/node/runtime/renderPage.js +0 -502
- package/dist/cjs/node/runtime/universal-middleware.js +0 -20
- package/dist/cjs/node/runtime/utils.js +0 -83
- package/dist/cjs/node/runtime-dev/createDevMiddleware.js +0 -27
- package/dist/cjs/node/runtime-dev/index.js +0 -42
- package/dist/cjs/node/shared/assertV1Design.js +0 -30
- package/dist/cjs/node/shared/extractAssetsQuery.js +0 -29
- package/dist/cjs/node/shared/getVikeConfigError.js +0 -22
- package/dist/cjs/node/shared/isErrorDebug.js +0 -7
- package/dist/cjs/node/shared/prependEntriesDir.js +0 -13
- package/dist/cjs/node/shared/resolveBase.js +0 -35
- package/dist/cjs/node/shared/utils.js +0 -35
- package/dist/cjs/node/shared/virtualFileId.js +0 -110
- package/dist/cjs/node/vite/index.js +0 -69
- package/dist/cjs/node/vite/onLoad.js +0 -21
- package/dist/cjs/node/vite/plugins/pluginBaseUrls.js +0 -48
- package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +0 -342
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildApp.js +0 -179
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +0 -220
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -254
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -36
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -41
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginProdBuildEntry.js +0 -109
- package/dist/cjs/node/vite/plugins/pluginBuild/pluginSuppressRollupWarning.js +0 -63
- package/dist/cjs/node/vite/plugins/pluginBuild.js +0 -21
- package/dist/cjs/node/vite/plugins/pluginCommon/assertResolveAlias.js +0 -88
- package/dist/cjs/node/vite/plugins/pluginCommon.js +0 -197
- package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +0 -28
- package/dist/cjs/node/vite/plugins/pluginDev/determineOptimizeDeps.js +0 -163
- package/dist/cjs/node/vite/plugins/pluginDev.js +0 -107
- package/dist/cjs/node/vite/plugins/pluginEnvVars.js +0 -87
- package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +0 -227
- package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +0 -99
- package/dist/cjs/node/vite/plugins/pluginFileEnv.js +0 -149
- package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +0 -52
- package/dist/cjs/node/vite/plugins/pluginPreview.js +0 -76
- package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +0 -69
- package/dist/cjs/node/vite/plugins/pluginSetGlobalContext.js +0 -49
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/debug.js +0 -5
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntry.js +0 -56
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +0 -190
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFilePageEntry.js +0 -54
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles/getConfigValueSourcesRelevant.js +0 -97
- package/dist/cjs/node/vite/plugins/pluginVirtualFiles.js +0 -215
- package/dist/cjs/node/vite/plugins/pluginWorkaroundCssModuleHmr.js +0 -15
- package/dist/cjs/node/vite/plugins/pluginWorkaroundVite6HmrRegression.js +0 -35
- package/dist/cjs/node/vite/shared/addSsrMiddleware.js +0 -60
- package/dist/cjs/node/vite/shared/findPageFiles.js +0 -25
- package/dist/cjs/node/vite/shared/getAssetsDir.js +0 -10
- package/dist/cjs/node/vite/shared/getClientEntrySrcDev.js +0 -42
- package/dist/cjs/node/vite/shared/getEnvVarObject.js +0 -37
- package/dist/cjs/node/vite/shared/getFilePath.js +0 -172
- package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +0 -125
- package/dist/cjs/node/vite/shared/getMagicString.js +0 -18
- package/dist/cjs/node/vite/shared/getManifestFilePathRelative.js +0 -10
- package/dist/cjs/node/vite/shared/getOutDirs.js +0 -146
- package/dist/cjs/node/vite/shared/getViteConfigRuntime.js +0 -21
- package/dist/cjs/node/vite/shared/isAsset.js +0 -40
- package/dist/cjs/node/vite/shared/isViteCliCall.js +0 -83
- package/dist/cjs/node/vite/shared/isViteServerSide.js +0 -68
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +0 -38
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.js +0 -26
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.js +0 -85
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +0 -30
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +0 -19
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +0 -19
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +0 -29
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +0 -13
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +0 -15
- package/dist/cjs/node/vite/shared/loggerNotProd/errorWithCodeSnippet.js +0 -162
- package/dist/cjs/node/vite/shared/loggerNotProd/log.js +0 -102
- package/dist/cjs/node/vite/shared/loggerNotProd.js +0 -208
- package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +0 -26
- package/dist/cjs/node/vite/shared/loggerVite.js +0 -54
- package/dist/cjs/node/vite/shared/normalizeId.js +0 -9
- package/dist/cjs/node/vite/shared/parseEsModule.js +0 -33
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/assertExtensions.js +0 -136
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/configDefinitionsBuiltIn.js +0 -262
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles/ignorePatternsBuiltIn.js +0 -18
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +0 -252
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/filesystemRouting.js +0 -190
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getConfigFileExport.js +0 -17
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/getPlusFilesAll.js +0 -127
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/loadFileAtConfigTime.js +0 -129
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/pointerImports.js +0 -195
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/resolvePointerImport.js +0 -102
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/transpileAndExecuteFile.js +0 -425
- package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +0 -1151
- package/dist/cjs/node/vite/shared/rollupIsEsm.js +0 -15
- package/dist/cjs/node/vite/utils.js +0 -45
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/shared/NOT_SERIALIZABLE.js +0 -4
- package/dist/cjs/shared/RenderErrorPage.js +0 -6
- package/dist/cjs/shared/abort.js +0 -16
- package/dist/cjs/shared/addIs404ToPageProps.js +0 -18
- package/dist/cjs/shared/assertHookReturnedObject.js +0 -21
- package/dist/cjs/shared/assertOnBeforeRenderHookReturn.js +0 -21
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +0 -20
- package/dist/cjs/shared/createGlobalContextShared.js +0 -109
- package/dist/cjs/shared/createPageContextShared.js +0 -17
- package/dist/cjs/shared/determinePageIdOld.js +0 -11
- package/dist/cjs/shared/error-page.js +0 -40
- package/dist/cjs/shared/getPageContext.js +0 -6
- package/dist/cjs/shared/getPageContextRequestUrl.js +0 -16
- package/dist/cjs/shared/getPageContextUrlComputed.js +0 -132
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +0 -19
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +0 -2
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +0 -50
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +0 -30
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/getExportNames.js +0 -15
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +0 -59
- package/dist/cjs/shared/getPageFiles/analyzePageServerSide.js +0 -22
- package/dist/cjs/shared/getPageFiles/assert_exports_old_design.js +0 -24
- package/dist/cjs/shared/getPageFiles/fileTypes.js +0 -52
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +0 -102
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +0 -56
- package/dist/cjs/shared/getPageFiles/parseVirtualFileExportsGlobalEntry.js +0 -100
- package/dist/cjs/shared/getPageFiles.js +0 -7
- package/dist/cjs/shared/getProxyForPublicUsage.js +0 -56
- package/dist/cjs/shared/hooks/execHook.js +0 -147
- package/dist/cjs/shared/hooks/getHook.js +0 -173
- package/dist/cjs/shared/htmlElementIds.js +0 -5
- package/dist/cjs/shared/misc/isServerSideError.js +0 -4
- package/dist/cjs/shared/misc/pageContextInitIsPassedToClient.js +0 -4
- package/dist/cjs/shared/modifyUrl.js +0 -28
- package/dist/cjs/shared/modifyUrlSameOrigin.js +0 -47
- package/dist/cjs/shared/page-configs/assertPlusFileExport.js +0 -42
- package/dist/cjs/shared/page-configs/findPageConfig.js +0 -10
- package/dist/cjs/shared/page-configs/getConfigDefinedAt.js +0 -65
- package/dist/cjs/shared/page-configs/getConfigValueBuildTime.js +0 -68
- package/dist/cjs/shared/page-configs/getConfigValueRuntime.js +0 -10
- package/dist/cjs/shared/page-configs/getConfigValueTyped.js +0 -32
- package/dist/cjs/shared/page-configs/getExportPath.js +0 -29
- package/dist/cjs/shared/page-configs/helpers.js +0 -27
- package/dist/cjs/shared/page-configs/loadAndParseVirtualFilePageEntry.js +0 -25
- package/dist/cjs/shared/page-configs/resolveVikeConfigPublic.js +0 -287
- package/dist/cjs/shared/page-configs/serialize/PageConfigSerialized.js +0 -2
- package/dist/cjs/shared/page-configs/serialize/assertPageConfigsSerialized.js +0 -1
- package/dist/cjs/shared/page-configs/serialize/parsePageConfigsSerialized.js +0 -145
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +0 -290
- package/dist/cjs/shared/prepareGlobalContextForPublicUsage.js +0 -10
- package/dist/cjs/shared/preparePageContextForPublicUsage.js +0 -80
- package/dist/cjs/shared/route/abort.js +0 -178
- package/dist/cjs/shared/route/debug.js +0 -23
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +0 -52
- package/dist/cjs/shared/route/execHookGuard.js +0 -37
- package/dist/cjs/shared/route/execHookOnBeforeRoute.js +0 -84
- package/dist/cjs/shared/route/index.js +0 -107
- package/dist/cjs/shared/route/loadPageRoutes.js +0 -197
- package/dist/cjs/shared/route/noRouteMatch.js +0 -4
- package/dist/cjs/shared/route/resolvePrecedence.js +0 -93
- package/dist/cjs/shared/route/resolveRoute.js +0 -20
- package/dist/cjs/shared/route/resolveRouteFunction.js +0 -73
- package/dist/cjs/shared/route/resolveRouteString.js +0 -153
- package/dist/cjs/shared/route/resolveUrlPathname.js +0 -47
- package/dist/cjs/shared/route/routing.js +0 -9
- package/dist/cjs/shared/route/utils.js +0 -40
- package/dist/cjs/shared/utils.js +0 -49
- package/dist/cjs/types/Config/ConfigResolved.js +0 -2
- package/dist/cjs/types/Config.js +0 -2
- package/dist/cjs/types/FilePath.js +0 -2
- package/dist/cjs/types/PageConfig.js +0 -2
- package/dist/cjs/types/PageContext.js +0 -2
- package/dist/cjs/types/VikeGlobalInternal.js +0 -2
- package/dist/cjs/types/VikeNamespace.js +0 -2
- package/dist/cjs/types/ViteManifest.js +0 -2
- package/dist/cjs/types/defineConfig.js +0 -6
- package/dist/cjs/types/index-dreprecated.js +0 -3
- package/dist/cjs/types/index.js +0 -5
- package/dist/cjs/utils/PROJECT_VERSION.js +0 -5
- package/dist/cjs/utils/PromiseType.js +0 -2
- package/dist/cjs/utils/assert.js +0 -211
- package/dist/cjs/utils/assertIsBrowser.js +0 -8
- package/dist/cjs/utils/assertIsNotBrowser.js +0 -9
- package/dist/cjs/utils/assertKeys.js +0 -27
- package/dist/cjs/utils/assertNodeVersion.js +0 -14
- package/dist/cjs/utils/assertRoutingType.js +0 -29
- package/dist/cjs/utils/assertSetup.js +0 -171
- package/dist/cjs/utils/assertSingleInstance.js +0 -110
- package/dist/cjs/utils/assertVersion.js +0 -60
- package/dist/cjs/utils/capitalizeFirstLetter.js +0 -9
- package/dist/cjs/utils/cast.js +0 -6
- package/dist/cjs/utils/catchInfiniteLoop.js +0 -34
- package/dist/cjs/utils/changeEnumerable.js +0 -8
- package/dist/cjs/utils/checkType.js +0 -6
- package/dist/cjs/utils/compareString.js +0 -10
- package/dist/cjs/utils/createErrorWithCleanStackTrace.js +0 -39
- package/dist/cjs/utils/debug.js +0 -178
- package/dist/cjs/utils/debugGlob.js +0 -6
- package/dist/cjs/utils/deepEqual.js +0 -10
- package/dist/cjs/utils/escapeHtml.js +0 -13
- package/dist/cjs/utils/escapeRegex.js +0 -7
- package/dist/cjs/utils/findFile.js +0 -30
- package/dist/cjs/utils/findPackageJson.js +0 -18
- package/dist/cjs/utils/formatHintLog.js +0 -17
- package/dist/cjs/utils/freezePartial.js +0 -35
- package/dist/cjs/utils/genPromise.js +0 -51
- package/dist/cjs/utils/getFileExtension.js +0 -16
- package/dist/cjs/utils/getGlobalObject.js +0 -15
- package/dist/cjs/utils/getMostSimilar.js +0 -68
- package/dist/cjs/utils/getPropAccessNotation.js +0 -9
- package/dist/cjs/utils/getRandomId.js +0 -14
- package/dist/cjs/utils/getTerminalWidth.js +0 -7
- package/dist/cjs/utils/getValuePrintable.js +0 -10
- package/dist/cjs/utils/getViteRPC.js +0 -79
- package/dist/cjs/utils/hasProp.js +0 -50
- package/dist/cjs/utils/humanizeTime.js +0 -24
- package/dist/cjs/utils/includes.js +0 -13
- package/dist/cjs/utils/injectRollupInputs.js +0 -29
- package/dist/cjs/utils/isArray.js +0 -7
- package/dist/cjs/utils/isArrayOfStrings.js +0 -7
- package/dist/cjs/utils/isBrowser.js +0 -8
- package/dist/cjs/utils/isCallable.js +0 -6
- package/dist/cjs/utils/isDev.js +0 -20
- package/dist/cjs/utils/isDocker.js +0 -45
- package/dist/cjs/utils/isEqualStringList.js +0 -13
- package/dist/cjs/utils/isFilePathAbsoluteFilesystem.js +0 -66
- package/dist/cjs/utils/isHtml.js +0 -9
- package/dist/cjs/utils/isImportPath.js +0 -21
- package/dist/cjs/utils/isNodeJS.js +0 -16
- package/dist/cjs/utils/isNonRunnableDev.js +0 -12
- package/dist/cjs/utils/isNullish.js +0 -16
- package/dist/cjs/utils/isObject.js +0 -6
- package/dist/cjs/utils/isObjectOfStrings.js +0 -7
- package/dist/cjs/utils/isObjectWithKeys.js +0 -15
- package/dist/cjs/utils/isPlainObject.js +0 -19
- package/dist/cjs/utils/isPromise.js +0 -7
- package/dist/cjs/utils/isPropertyGetter.js +0 -7
- package/dist/cjs/utils/isReact.js +0 -23
- package/dist/cjs/utils/isRunnableDevEnvironment.js +0 -9
- package/dist/cjs/utils/isSameErrorMessage.js +0 -9
- package/dist/cjs/utils/isScriptFile.js +0 -67
- package/dist/cjs/utils/isVikeReactApp.js +0 -8
- package/dist/cjs/utils/isVitest.js +0 -6
- package/dist/cjs/utils/joinEnglish.js +0 -14
- package/dist/cjs/utils/normalizeHeaders.js +0 -17
- package/dist/cjs/utils/objectAssign.js +0 -14
- package/dist/cjs/utils/objectAssignSafe.js +0 -7
- package/dist/cjs/utils/objectDefineProperty.js +0 -7
- package/dist/cjs/utils/objectEntries.js +0 -8
- package/dist/cjs/utils/objectEntriesForEach.js +0 -7
- package/dist/cjs/utils/objectFilter.js +0 -10
- package/dist/cjs/utils/objectFromEntries.js +0 -7
- package/dist/cjs/utils/objectKeys.js +0 -9
- package/dist/cjs/utils/objectReplace.js +0 -9
- package/dist/cjs/utils/onPageVisibilityChange.js +0 -18
- package/dist/cjs/utils/pLimit.js +0 -134
- package/dist/cjs/utils/parseNpmPackage.js +0 -106
- package/dist/cjs/utils/parseUrl-extras.js +0 -110
- package/dist/cjs/utils/parseUrl.js +0 -338
- package/dist/cjs/utils/path.js +0 -59
- package/dist/cjs/utils/pick.js +0 -12
- package/dist/cjs/utils/preservePropertyGetters.js +0 -30
- package/dist/cjs/utils/redirectHard.js +0 -6
- package/dist/cjs/utils/removeEmptyLines.js +0 -9
- package/dist/cjs/utils/removeFileExtension.js +0 -6
- package/dist/cjs/utils/requireResolve.js +0 -214
- package/dist/cjs/utils/rollupSourceMap.js +0 -19
- package/dist/cjs/utils/sleep.js +0 -6
- package/dist/cjs/utils/slice.js +0 -35
- package/dist/cjs/utils/sorter.js +0 -117
- package/dist/cjs/utils/stringifyStringArray.js +0 -6
- package/dist/cjs/utils/stripAnsi.js +0 -21
- package/dist/cjs/utils/styleFileRE.js +0 -6
- package/dist/cjs/utils/throttle.js +0 -15
- package/dist/cjs/utils/trackLogs.js +0 -31
- package/dist/cjs/utils/trimWithAnsi.js +0 -40
- package/dist/cjs/utils/truncateString.js +0 -23
- package/dist/cjs/utils/unique.js +0 -6
- package/dist/cjs/utils/updateType.js +0 -9
- package/dist/cjs/utils/urlToFile.js +0 -36
- package/dist/cjs/utils/virtualFileId.js +0 -39
- package/dist/cjs/utils/warnIfErrorIsNotObject.js +0 -23
- package/dist/esm/client/runtime-server-routing/globalContext.js +0 -5
- package/dist/esm/client/shared/createGetGlobalContextClient.js +0 -65
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistFileNames.js +0 -249
- package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +0 -34
- package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +0 -39
- package/dist/esm/node/vite/plugins/pluginBuild.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginBuild.js +0 -19
- package/dist/esm/node/vite/plugins/pluginEnvVars.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginEnvVars.js +0 -85
- package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +0 -50
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.d.ts +0 -3
- package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +0 -67
- package/dist/esm/shared/route/debug.d.ts +0 -6
- package/dist/esm/shared/route/debug.js +0 -21
- /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildApp.d.ts +0 -0
- /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginBuildConfig.d.ts +0 -0
- /package/dist/esm/node/vite/plugins/{pluginBuild → build}/pluginProdBuildEntry.d.ts +0 -0
|
@@ -1,777 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.runPrerender = runPrerender;
|
|
40
|
-
// Failed attempt to run this file (i.e. pre-rendering) in a separate process: https://github.com/vikejs/vike/commit/48feda87012115b32a5c9701da354cb8c138dfd2
|
|
41
|
-
// - The issue is that prerenderContext needs to be serialized for being able to pass it from the child process to the parent process.
|
|
42
|
-
// - The prerenderContext is used by vike-vercel
|
|
43
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
44
|
-
const index_js_1 = require("../../shared/route/index.js");
|
|
45
|
-
const utils_js_1 = require("./utils.js");
|
|
46
|
-
const renderPageAfterRoute_js_1 = require("../runtime/renderPage/renderPageAfterRoute.js");
|
|
47
|
-
const createPageContextServerSide_js_1 = require("../runtime/renderPage/createPageContextServerSide.js");
|
|
48
|
-
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
49
|
-
const node_os_1 = require("node:os");
|
|
50
|
-
const globalContext_js_1 = require("../runtime/globalContext.js");
|
|
51
|
-
const vite_1 = require("vite");
|
|
52
|
-
const getPageFiles_js_1 = require("../../shared/getPageFiles.js");
|
|
53
|
-
const getPageContextRequestUrl_js_1 = require("../../shared/getPageContextRequestUrl.js");
|
|
54
|
-
const resolveRouteString_js_1 = require("../../shared/route/resolveRouteString.js");
|
|
55
|
-
const getConfigValueRuntime_js_1 = require("../../shared/page-configs/getConfigValueRuntime.js");
|
|
56
|
-
const loadAndParseVirtualFilePageEntry_js_1 = require("../../shared/page-configs/loadAndParseVirtualFilePageEntry.js");
|
|
57
|
-
const error_page_js_1 = require("../../shared/error-page.js");
|
|
58
|
-
const abort_js_1 = require("../../shared/route/abort.js");
|
|
59
|
-
const loadPageConfigsLazyServerSide_js_1 = require("../runtime/renderPage/loadPageConfigsLazyServerSide.js");
|
|
60
|
-
const getHook_js_1 = require("../../shared/hooks/getHook.js");
|
|
61
|
-
const noRouteMatch_js_1 = require("../../shared/route/noRouteMatch.js");
|
|
62
|
-
const resolveVikeConfigInternal_js_1 = require("../vite/shared/resolveVikeConfigInternal.js");
|
|
63
|
-
const execHook_js_1 = require("../../shared/hooks/execHook.js");
|
|
64
|
-
const context_js_1 = require("./context.js");
|
|
65
|
-
const resolvePrerenderConfig_js_1 = require("./resolvePrerenderConfig.js");
|
|
66
|
-
const getOutDirs_js_1 = require("../vite/shared/getOutDirs.js");
|
|
67
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
68
|
-
const getProxyForPublicUsage_js_1 = require("../../shared/getProxyForPublicUsage.js");
|
|
69
|
-
const resolveRedirects_js_1 = require("../runtime/renderPage/resolveRedirects.js");
|
|
70
|
-
const utils_js_2 = require("../runtime/utils.js");
|
|
71
|
-
const docLink = 'https://vike.dev/i18n#pre-rendering';
|
|
72
|
-
async function runPrerender(options = {}, trigger) {
|
|
73
|
-
(0, context_js_1.setWasPrerenderRun)(trigger);
|
|
74
|
-
checkOutdatedOptions(options);
|
|
75
|
-
(0, utils_js_1.onSetupPrerender)();
|
|
76
|
-
(0, globalContext_js_1.setGlobalContext_isPrerendering)();
|
|
77
|
-
(0, getHook_js_1.getHook_setIsPrerenderering)();
|
|
78
|
-
const logLevel = !!options.onPagePrerender ? 'warn' : 'info';
|
|
79
|
-
if (logLevel === 'info') {
|
|
80
|
-
console.log(`${picocolors_1.default.cyan(`vike v${utils_js_1.PROJECT_VERSION}`)} ${picocolors_1.default.green('pre-rendering HTML...')}`);
|
|
81
|
-
}
|
|
82
|
-
await disableReactStreaming();
|
|
83
|
-
const viteConfig = await (0, vite_1.resolveConfig)(options.viteConfig || {}, 'build', 'production');
|
|
84
|
-
const vikeConfig = await (0, resolveVikeConfigInternal_js_1.getVikeConfigInternal)();
|
|
85
|
-
const { outDirServer } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
|
|
86
|
-
const prerenderConfigGlobal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
|
|
87
|
-
const { partial, noExtraDir, parallel, defaultLocalValue, isPrerenderingEnabled } = prerenderConfigGlobal;
|
|
88
|
-
if (!isPrerenderingEnabled) {
|
|
89
|
-
(0, utils_js_1.assert)(trigger !== 'auto-run');
|
|
90
|
-
/* TO-DO/next-major-release: use this assertUsage() again.
|
|
91
|
-
* - Make sure https://github.com/magne4000/vite-plugin-vercel/pull/156 is merged before using this assertUsage() again. (Otherwise vite-plugin-vercel will trigger this assertUsage() call.)
|
|
92
|
-
* - Done: PR is merged as of June 20205
|
|
93
|
-
assertUsage(
|
|
94
|
-
false,
|
|
95
|
-
`You're executing ${pc.cyan(standaloneTrigger)} but you didn't enable pre-rendering. Use the ${pc.cyan('prerender')} setting (${pc.underline('https://vike.dev/prerender')}) to enable pre-rendering for at least one page.`
|
|
96
|
-
)
|
|
97
|
-
*/
|
|
98
|
-
return { viteConfig };
|
|
99
|
-
}
|
|
100
|
-
const concurrencyLimit = (0, utils_js_1.pLimit)(parallel === false || parallel === 0 ? 1 : parallel === true || parallel === undefined ? (0, node_os_1.cpus)().length : parallel);
|
|
101
|
-
await (0, globalContext_js_1.initGlobalContext_runPrerender)();
|
|
102
|
-
const { globalContext } = await (0, globalContext_js_1.getGlobalContextServerInternal)();
|
|
103
|
-
globalContext._pageFilesAll.forEach(assertExportNames);
|
|
104
|
-
const prerenderContext = {
|
|
105
|
-
pageContexts: [],
|
|
106
|
-
output: [],
|
|
107
|
-
_noExtraDir: noExtraDir,
|
|
108
|
-
_pageContextInit: options.pageContextInit ?? null,
|
|
109
|
-
_prerenderedPageContexts: {},
|
|
110
|
-
};
|
|
111
|
-
const doNotPrerenderList = [];
|
|
112
|
-
await collectDoNoPrerenderList(vikeConfig._pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext);
|
|
113
|
-
// Allow user to create `pageContext` for parameterized routes and/or bulk data fetching
|
|
114
|
-
// https://vike.dev/onBeforePrerenderStart
|
|
115
|
-
await callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList);
|
|
116
|
-
// Create `pageContext` for each page with a static route
|
|
117
|
-
const urlList = getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList);
|
|
118
|
-
await createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, false);
|
|
119
|
-
// Create `pageContext` for 404 page
|
|
120
|
-
const urlList404 = getUrlList404(globalContext);
|
|
121
|
-
await createPageContexts(urlList404, prerenderContext, globalContext, concurrencyLimit, true);
|
|
122
|
-
// Allow user to duplicate the list of `pageContext` for i18n
|
|
123
|
-
// https://vike.dev/onPrerenderStart
|
|
124
|
-
await callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit);
|
|
125
|
-
let prerenderedCount = 0;
|
|
126
|
-
// Write files as soon as pages finish rendering (instead of writing all files at once only after all pages have rendered).
|
|
127
|
-
const onComplete = async (htmlFile) => {
|
|
128
|
-
prerenderedCount++;
|
|
129
|
-
const { pageId } = htmlFile.pageContext;
|
|
130
|
-
(0, utils_js_1.assert)((typeof pageId === 'string' && pageId) || pageId === null);
|
|
131
|
-
if (pageId) {
|
|
132
|
-
prerenderContext._prerenderedPageContexts[pageId] = htmlFile.pageContext;
|
|
133
|
-
}
|
|
134
|
-
await writeFiles(htmlFile, viteConfig, options.onPagePrerender, prerenderContext, logLevel);
|
|
135
|
-
};
|
|
136
|
-
await prerenderPages(prerenderContext, concurrencyLimit, onComplete);
|
|
137
|
-
warnContradictoryNoPrerenderList(prerenderContext._prerenderedPageContexts, doNotPrerenderList);
|
|
138
|
-
const { redirects, isPrerenderingEnabledForAllPages } = prerenderConfigGlobal;
|
|
139
|
-
if (redirects !== null ? redirects : isPrerenderingEnabledForAllPages) {
|
|
140
|
-
const showWarningUponDynamicRedirects = !prerenderConfigGlobal.partial;
|
|
141
|
-
await prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects);
|
|
142
|
-
}
|
|
143
|
-
if (logLevel === 'info') {
|
|
144
|
-
console.log(`${picocolors_1.default.green(`✓`)} ${prerenderedCount} HTML documents pre-rendered.`);
|
|
145
|
-
}
|
|
146
|
-
await warnMissingPages(prerenderContext._prerenderedPageContexts, globalContext, doNotPrerenderList, partial);
|
|
147
|
-
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
148
|
-
(0, utils_js_1.objectAssign)(vikeConfig.prerenderContext, prerenderContextPublic, true);
|
|
149
|
-
if (prerenderConfigGlobal.isPrerenderingEnabledForAllPages && !prerenderConfigGlobal.keepDistServer) {
|
|
150
|
-
node_fs_1.default.rmSync(outDirServer, { recursive: true });
|
|
151
|
-
}
|
|
152
|
-
return { viteConfig };
|
|
153
|
-
}
|
|
154
|
-
async function collectDoNoPrerenderList(pageConfigs, doNotPrerenderList, defaultLocalValue, concurrencyLimit, globalContext) {
|
|
155
|
-
// V1 design
|
|
156
|
-
pageConfigs.forEach((pageConfig) => {
|
|
157
|
-
const prerenderConfigLocal = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigLocal)(pageConfig);
|
|
158
|
-
const { pageId } = pageConfig;
|
|
159
|
-
if (!prerenderConfigLocal) {
|
|
160
|
-
if (!defaultLocalValue) {
|
|
161
|
-
doNotPrerenderList.push({ pageId });
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
const { value } = prerenderConfigLocal;
|
|
166
|
-
if (value === false) {
|
|
167
|
-
doNotPrerenderList.push({ pageId });
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
// Old design
|
|
172
|
-
// TO-DO/next-major-release: remove
|
|
173
|
-
await Promise.all(globalContext._pageFilesAll
|
|
174
|
-
.filter((p) => {
|
|
175
|
-
assertExportNames(p);
|
|
176
|
-
if (!p.exportNames?.includes('doNotPrerender'))
|
|
177
|
-
return false;
|
|
178
|
-
(0, utils_js_1.assertUsage)(p.fileType !== '.page.client', `${p.filePath} (which is a \`.page.client.js\` file) has \`export { doNotPrerender }\` but it is only allowed in \`.page.server.js\` or \`.page.js\` files`);
|
|
179
|
-
return true;
|
|
180
|
-
})
|
|
181
|
-
.map((p) => concurrencyLimit(async () => {
|
|
182
|
-
(0, utils_js_1.assert)(p.loadFile);
|
|
183
|
-
await p.loadFile();
|
|
184
|
-
})));
|
|
185
|
-
globalContext._allPageIds.forEach((pageId) => {
|
|
186
|
-
const pageFilesServerSide = (0, getPageFiles_js_1.getPageFilesServerSide)(globalContext._pageFilesAll, pageId);
|
|
187
|
-
for (const p of pageFilesServerSide) {
|
|
188
|
-
if (!p.exportNames?.includes('doNotPrerender'))
|
|
189
|
-
continue;
|
|
190
|
-
const { fileExports } = p;
|
|
191
|
-
(0, utils_js_1.assert)(fileExports);
|
|
192
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(fileExports, 'doNotPrerender'));
|
|
193
|
-
const { doNotPrerender } = fileExports;
|
|
194
|
-
(0, utils_js_1.assertUsage)(doNotPrerender === true || doNotPrerender === false, `The \`export { doNotPrerender }\` value of ${p.filePath} should be \`true\` or \`false\``);
|
|
195
|
-
if (!doNotPrerender) {
|
|
196
|
-
// Do pre-render `pageId`
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
// Don't pre-render `pageId`
|
|
201
|
-
doNotPrerenderList.push({ pageId });
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
function assertExportNames(pageFile) {
|
|
207
|
-
const { exportNames, fileType } = pageFile;
|
|
208
|
-
(0, utils_js_1.assert)(exportNames || fileType === '.page.route' || fileType === '.css', pageFile.filePath);
|
|
209
|
-
}
|
|
210
|
-
async function callOnBeforePrerenderStartHooks(prerenderContext, globalContext, concurrencyLimit, doNotPrerenderList) {
|
|
211
|
-
const onBeforePrerenderStartHooks = [];
|
|
212
|
-
// V1 design
|
|
213
|
-
await Promise.all(globalContext._pageConfigs.map((pageConfig) => concurrencyLimit(async () => {
|
|
214
|
-
const hookName = 'onBeforePrerenderStart';
|
|
215
|
-
const pageConfigLoaded = await (0, loadAndParseVirtualFilePageEntry_js_1.loadAndParseVirtualFilePageEntry)(pageConfig, false);
|
|
216
|
-
const hook = (0, getHook_js_1.getHookFromPageConfig)(pageConfigLoaded, hookName);
|
|
217
|
-
if (!hook)
|
|
218
|
-
return;
|
|
219
|
-
const { hookFn, hookFilePath, hookTimeout } = hook;
|
|
220
|
-
onBeforePrerenderStartHooks.push({
|
|
221
|
-
hookFn,
|
|
222
|
-
hookName: 'onBeforePrerenderStart',
|
|
223
|
-
hookFilePath,
|
|
224
|
-
pageId: pageConfig.pageId,
|
|
225
|
-
hookTimeout,
|
|
226
|
-
});
|
|
227
|
-
})));
|
|
228
|
-
// 0.4 design
|
|
229
|
-
await Promise.all(globalContext._pageFilesAll
|
|
230
|
-
.filter((p) => {
|
|
231
|
-
assertExportNames(p);
|
|
232
|
-
if (!p.exportNames?.includes('prerender'))
|
|
233
|
-
return false;
|
|
234
|
-
(0, utils_js_1.assertUsage)(p.fileType === '.page.server', `${p.filePath} (which is a \`${p.fileType}.js\` file) has \`export { prerender }\` but it is only allowed in \`.page.server.js\` files`);
|
|
235
|
-
return true;
|
|
236
|
-
})
|
|
237
|
-
.map((p) => concurrencyLimit(async () => {
|
|
238
|
-
await p.loadFile?.();
|
|
239
|
-
const hookFn = p.fileExports?.prerender;
|
|
240
|
-
if (!hookFn)
|
|
241
|
-
return;
|
|
242
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `\`export { prerender }\` of ${p.filePath} should be a function.`);
|
|
243
|
-
const hookFilePath = p.filePath;
|
|
244
|
-
(0, utils_js_1.assert)(hookFilePath);
|
|
245
|
-
onBeforePrerenderStartHooks.push({
|
|
246
|
-
hookFn,
|
|
247
|
-
hookName: 'prerender',
|
|
248
|
-
hookFilePath,
|
|
249
|
-
pageId: p.pageId,
|
|
250
|
-
hookTimeout: (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerenderStart'),
|
|
251
|
-
});
|
|
252
|
-
})));
|
|
253
|
-
await Promise.all(onBeforePrerenderStartHooks.map(({ pageId, ...hook }) => concurrencyLimit(async () => {
|
|
254
|
-
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
255
|
-
return;
|
|
256
|
-
const { hookName, hookFilePath } = hook;
|
|
257
|
-
const prerenderResult = await (0, execHook_js_1.execHookDirectWithoutPageContext)(() => hook.hookFn(), hook);
|
|
258
|
-
const result = normalizeOnPrerenderHookResult(prerenderResult, hookFilePath, hookName);
|
|
259
|
-
// Handle result
|
|
260
|
-
await Promise.all(result.map(async ({ url, pageContext }) => {
|
|
261
|
-
// Assert no duplication
|
|
262
|
-
{
|
|
263
|
-
const pageContextFound = prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, url));
|
|
264
|
-
if (pageContextFound) {
|
|
265
|
-
(0, utils_js_1.assert)(pageContextFound._providedByHook);
|
|
266
|
-
const providedTwice = hookFilePath === pageContextFound._providedByHook.hookFilePath
|
|
267
|
-
? `twice by the ${hookName}() hook (${hookFilePath})`
|
|
268
|
-
: `twice: by the ${hookName}() hook (${hookFilePath}) as well as by the hook ${pageContextFound._providedByHook.hookFilePath}() (${pageContextFound._providedByHook.hookName})`;
|
|
269
|
-
(0, utils_js_1.assertUsage)(false, `URL ${picocolors_1.default.cyan(url)} provided ${providedTwice}. Make sure to provide the URL only once instead.`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// Add result
|
|
273
|
-
const providedByHook = { hookFilePath, hookName };
|
|
274
|
-
const pageContextNew = await createPageContextPrerendering(url, prerenderContext, globalContext, false, undefined, providedByHook);
|
|
275
|
-
prerenderContext.pageContexts.push(pageContextNew);
|
|
276
|
-
if (pageContext) {
|
|
277
|
-
(0, utils_js_1.objectAssign)(pageContextNew, { _pageContextAlreadyProvidedByOnPrerenderHook: true });
|
|
278
|
-
(0, utils_js_1.objectAssign)(pageContextNew, pageContext);
|
|
279
|
-
}
|
|
280
|
-
}));
|
|
281
|
-
})));
|
|
282
|
-
}
|
|
283
|
-
function getUrlListFromPagesWithStaticRoute(globalContext, doNotPrerenderList) {
|
|
284
|
-
const urlList = [];
|
|
285
|
-
globalContext._pageRoutes.map((pageRoute) => {
|
|
286
|
-
const { pageId } = pageRoute;
|
|
287
|
-
if (doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
288
|
-
return;
|
|
289
|
-
let urlOriginal;
|
|
290
|
-
if (!('routeString' in pageRoute)) {
|
|
291
|
-
// Abort since the page's route is a Route Function
|
|
292
|
-
(0, utils_js_1.assert)(pageRoute.routeType === 'FUNCTION');
|
|
293
|
-
return;
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
const url = (0, resolveRouteString_js_1.getUrlFromRouteString)(pageRoute.routeString);
|
|
297
|
-
if (!url) {
|
|
298
|
-
// Abort since no URL can be deduced from a parameterized Route String
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
urlOriginal = url;
|
|
302
|
-
}
|
|
303
|
-
(0, utils_js_1.assert)(urlOriginal.startsWith('/'));
|
|
304
|
-
urlList.push({ urlOriginal, pageId });
|
|
305
|
-
});
|
|
306
|
-
return urlList;
|
|
307
|
-
}
|
|
308
|
-
function getUrlList404(globalContext) {
|
|
309
|
-
const urlList = [];
|
|
310
|
-
const errorPageId = (0, error_page_js_1.getErrorPageId)(globalContext._pageFilesAll, globalContext._pageConfigs);
|
|
311
|
-
if (errorPageId) {
|
|
312
|
-
urlList.push({
|
|
313
|
-
// A URL is required for `viteDevServer.transformIndexHtml(url,html)`
|
|
314
|
-
urlOriginal: '/404',
|
|
315
|
-
pageId: errorPageId,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
return urlList;
|
|
319
|
-
}
|
|
320
|
-
async function createPageContexts(urlList, prerenderContext, globalContext, concurrencyLimit, is404) {
|
|
321
|
-
await Promise.all(urlList.map(({ urlOriginal, pageId }) => concurrencyLimit(async () => {
|
|
322
|
-
// Already included in a onBeforePrerenderStart() hook
|
|
323
|
-
if (prerenderContext.pageContexts.find((pageContext) => isSameUrl(pageContext.urlOriginal, urlOriginal))) {
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
const pageContext = await createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, null);
|
|
327
|
-
prerenderContext.pageContexts.push(pageContext);
|
|
328
|
-
})));
|
|
329
|
-
}
|
|
330
|
-
async function createPageContextPrerendering(urlOriginal, prerenderContext, globalContext, is404, pageId, providedByHook) {
|
|
331
|
-
const pageContextInit = {
|
|
332
|
-
urlOriginal,
|
|
333
|
-
...prerenderContext._pageContextInit,
|
|
334
|
-
};
|
|
335
|
-
const pageContext = (0, createPageContextServerSide_js_1.createPageContextServerSide)(pageContextInit, globalContext, {
|
|
336
|
-
isPrerendering: true,
|
|
337
|
-
});
|
|
338
|
-
(0, utils_js_1.assert)(pageContext.isPrerendering === true);
|
|
339
|
-
(0, utils_js_1.objectAssign)(pageContext, {
|
|
340
|
-
_urlHandler: null,
|
|
341
|
-
_httpRequestId: null,
|
|
342
|
-
_urlRewrite: null,
|
|
343
|
-
_noExtraDir: prerenderContext._noExtraDir,
|
|
344
|
-
_prerenderContext: prerenderContext,
|
|
345
|
-
_providedByHook: providedByHook,
|
|
346
|
-
_urlOriginalModifiedByHook: null,
|
|
347
|
-
is404,
|
|
348
|
-
});
|
|
349
|
-
if (!is404) {
|
|
350
|
-
const pageContextFromRoute = await (0, index_js_1.route)(pageContext);
|
|
351
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContextFromRoute, 'pageId', 'null') || (0, utils_js_1.hasProp)(pageContextFromRoute, 'pageId', 'string')); // Help TS
|
|
352
|
-
assertRouteMatch(pageContextFromRoute, pageContext);
|
|
353
|
-
(0, utils_js_1.assert)(pageContextFromRoute.pageId);
|
|
354
|
-
(0, utils_js_1.objectAssign)(pageContext, pageContextFromRoute);
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
(0, utils_js_1.assert)(pageId);
|
|
358
|
-
(0, utils_js_1.objectAssign)(pageContext, {
|
|
359
|
-
pageId,
|
|
360
|
-
routeParams: {},
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
(0, utils_js_2.updateType)(pageContext, await (0, loadPageConfigsLazyServerSide_js_1.loadPageConfigsLazyServerSide)(pageContext));
|
|
364
|
-
let usesClientRouter;
|
|
365
|
-
{
|
|
366
|
-
const { pageId } = pageContext;
|
|
367
|
-
(0, utils_js_1.assert)(pageId);
|
|
368
|
-
(0, utils_js_1.assert)(globalContext._isPrerendering);
|
|
369
|
-
if (globalContext._pageConfigs.length > 0) {
|
|
370
|
-
const pageConfig = globalContext._pageConfigs.find((p) => p.pageId === pageId);
|
|
371
|
-
(0, utils_js_1.assert)(pageConfig);
|
|
372
|
-
usesClientRouter = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'clientRouting', 'boolean')?.value ?? false;
|
|
373
|
-
}
|
|
374
|
-
else {
|
|
375
|
-
usesClientRouter = globalContext._usesClientRouter;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
(0, utils_js_1.objectAssign)(pageContext, { _usesClientRouter: usesClientRouter });
|
|
379
|
-
return pageContext;
|
|
380
|
-
}
|
|
381
|
-
function assertRouteMatch(pageContextFromRoute, pageContext) {
|
|
382
|
-
if (pageContextFromRoute.pageId !== null) {
|
|
383
|
-
(0, utils_js_1.assert)(pageContextFromRoute.pageId);
|
|
384
|
-
return;
|
|
385
|
-
}
|
|
386
|
-
let hookName;
|
|
387
|
-
let hookFilePath;
|
|
388
|
-
if (pageContext._urlOriginalModifiedByHook) {
|
|
389
|
-
hookName = pageContext._urlOriginalModifiedByHook.hookName;
|
|
390
|
-
hookFilePath = pageContext._urlOriginalModifiedByHook.hookFilePath;
|
|
391
|
-
}
|
|
392
|
-
else if (pageContext._providedByHook) {
|
|
393
|
-
hookName = pageContext._providedByHook.hookName;
|
|
394
|
-
hookFilePath = pageContext._providedByHook.hookFilePath;
|
|
395
|
-
}
|
|
396
|
-
if (hookName) {
|
|
397
|
-
(0, utils_js_1.assert)(hookFilePath);
|
|
398
|
-
const { urlOriginal } = pageContext;
|
|
399
|
-
(0, utils_js_1.assert)(urlOriginal);
|
|
400
|
-
(0, utils_js_1.assertUsage)(false, `The ${hookName}() hook defined by ${hookFilePath} returns a URL ${picocolors_1.default.cyan(urlOriginal)} that ${noRouteMatch_js_1.noRouteMatch}. Make sure that the URLs returned by ${hookName}() always match the route of a page.`);
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
// `prerenderHookFile` is `null` when the URL was deduced by the Filesystem Routing of `.page.js` files. The `onBeforeRoute()` can override Filesystem Routing; it is therefore expected that the deduced URL may not match any page.
|
|
404
|
-
(0, utils_js_1.assert)(pageContextFromRoute._routingProvidedByOnBeforeRouteHook);
|
|
405
|
-
// Abort since the URL doesn't correspond to any page
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
async function callOnPrerenderStartHook(prerenderContext, globalContext, concurrencyLimit) {
|
|
410
|
-
let onPrerenderStartHook;
|
|
411
|
-
// V1 design
|
|
412
|
-
if (globalContext._pageConfigs.length > 0) {
|
|
413
|
-
const hookName = 'onPrerenderStart';
|
|
414
|
-
const hook = (0, getHook_js_1.getHookFromPageConfigGlobal)(globalContext._pageConfigGlobal, hookName);
|
|
415
|
-
if (hook) {
|
|
416
|
-
(0, utils_js_1.assert)(hook.hookName === 'onPrerenderStart');
|
|
417
|
-
onPrerenderStartHook = {
|
|
418
|
-
...hook,
|
|
419
|
-
// Make TypeScript happy
|
|
420
|
-
hookName,
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
// Old design
|
|
425
|
-
// TO-DO/next-major-release: remove
|
|
426
|
-
if (globalContext._pageConfigs.length === 0) {
|
|
427
|
-
const hookTimeout = (0, getHook_js_1.getHookTimeoutDefault)('onBeforePrerender');
|
|
428
|
-
const pageFilesWithOnBeforePrerenderHook = globalContext._pageFilesAll.filter((p) => {
|
|
429
|
-
assertExportNames(p);
|
|
430
|
-
if (!p.exportNames?.includes('onBeforePrerender'))
|
|
431
|
-
return false;
|
|
432
|
-
(0, utils_js_1.assertUsage)(p.fileType !== '.page.client', `${p.filePath} (which is a \`.page.client.js\` file) has \`export { onBeforePrerender }\` but it is only allowed in \`.page.server.js\` or \`.page.js\` files`);
|
|
433
|
-
(0, utils_js_1.assertUsage)(p.isDefaultPageFile, `${p.filePath} has \`export { onBeforePrerender }\` but it is only allowed in \`_default.page.\` files`);
|
|
434
|
-
return true;
|
|
435
|
-
});
|
|
436
|
-
if (pageFilesWithOnBeforePrerenderHook.length === 0) {
|
|
437
|
-
return;
|
|
438
|
-
}
|
|
439
|
-
(0, utils_js_1.assertUsage)(pageFilesWithOnBeforePrerenderHook.length === 1, 'There can be only one `onBeforePrerender()` hook. If you need to be able to define several, open a new GitHub issue.');
|
|
440
|
-
await Promise.all(pageFilesWithOnBeforePrerenderHook.map((p) => p.loadFile?.()));
|
|
441
|
-
const hooks = pageFilesWithOnBeforePrerenderHook.map((p) => {
|
|
442
|
-
(0, utils_js_1.assert)(p.fileExports);
|
|
443
|
-
const { onBeforePrerender } = p.fileExports;
|
|
444
|
-
(0, utils_js_1.assert)(onBeforePrerender);
|
|
445
|
-
const hookFilePath = p.filePath;
|
|
446
|
-
return { hookFilePath, onBeforePrerender };
|
|
447
|
-
});
|
|
448
|
-
(0, utils_js_1.assert)(hooks.length === 1);
|
|
449
|
-
const hook = hooks[0];
|
|
450
|
-
onPrerenderStartHook = {
|
|
451
|
-
hookFn: hook.onBeforePrerender,
|
|
452
|
-
hookFilePath: hook.hookFilePath,
|
|
453
|
-
hookName: 'onBeforePrerender',
|
|
454
|
-
hookTimeout,
|
|
455
|
-
};
|
|
456
|
-
}
|
|
457
|
-
if (!onPrerenderStartHook) {
|
|
458
|
-
return;
|
|
459
|
-
}
|
|
460
|
-
const msgPrefix = `The ${onPrerenderStartHook.hookName}() hook defined by ${onPrerenderStartHook.hookFilePath}`;
|
|
461
|
-
const { hookFn, hookFilePath, hookName } = onPrerenderStartHook;
|
|
462
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isCallable)(hookFn), `${msgPrefix} should be a function.`);
|
|
463
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
464
|
-
Object.defineProperty(pageContext, 'url', {
|
|
465
|
-
// TO-DO/next-major-release: remove warning
|
|
466
|
-
get() {
|
|
467
|
-
(0, utils_js_1.assertWarning)(false, msgPrefix +
|
|
468
|
-
' uses pageContext.url but it should use pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { showStackTrace: true, onlyOnce: true });
|
|
469
|
-
return pageContext.urlOriginal;
|
|
470
|
-
},
|
|
471
|
-
enumerable: false,
|
|
472
|
-
configurable: true,
|
|
473
|
-
});
|
|
474
|
-
(0, utils_js_1.assert)((0, utils_js_1.isPropertyGetter)(pageContext, 'url'));
|
|
475
|
-
(0, utils_js_1.assert)(pageContext.urlOriginal);
|
|
476
|
-
pageContext._urlOriginalBeforeHook = pageContext.urlOriginal;
|
|
477
|
-
});
|
|
478
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
479
|
-
// Preserve URL computed properties when the user is copying pageContext is his onPrerenderStart() hook, e.g. /examples/i18n/
|
|
480
|
-
// https://vike.dev/i18n#pre-rendering
|
|
481
|
-
(0, utils_js_1.preservePropertyGetters)(pageContext);
|
|
482
|
-
});
|
|
483
|
-
const prerenderContextPublic = preparePrerenderContextForPublicUsage(prerenderContext);
|
|
484
|
-
let result = await (0, execHook_js_1.execHookDirectWithoutPageContext)(() => hookFn(prerenderContextPublic), onPrerenderStartHook);
|
|
485
|
-
// Before applying result
|
|
486
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
487
|
-
;
|
|
488
|
-
pageContext._restorePropertyGetters?.();
|
|
489
|
-
});
|
|
490
|
-
if (result === null || result === undefined) {
|
|
491
|
-
return;
|
|
492
|
-
}
|
|
493
|
-
const errPrefix = `The ${hookName}() hook exported by ${hookFilePath}`;
|
|
494
|
-
const rightUsage = `${errPrefix} should return ${picocolors_1.default.cyan('null')}, ${picocolors_1.default.cyan('undefined')}, or ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}`;
|
|
495
|
-
// TO-DO/next-major-release: remove
|
|
496
|
-
if ((0, utils_js_1.hasProp)(result, 'globalContext')) {
|
|
497
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['globalContext']) &&
|
|
498
|
-
(0, utils_js_1.hasProp)(result, 'globalContext', 'object') &&
|
|
499
|
-
(0, utils_js_1.hasProp)(result.globalContext, 'prerenderPageContexts', 'array'), rightUsage);
|
|
500
|
-
(0, utils_js_1.assertWarning)(false, `${errPrefix} returns ${picocolors_1.default.cyan('{ globalContext: { prerenderPageContexts } }')} but the return value has been renamed to ${picocolors_1.default.cyan('{ prerenderContext: { pageContexts } }')}, see ${docLink}`, { onlyOnce: true });
|
|
501
|
-
result = {
|
|
502
|
-
prerenderContext: {
|
|
503
|
-
pageContexts: result.globalContext.prerenderPageContexts,
|
|
504
|
-
},
|
|
505
|
-
};
|
|
506
|
-
}
|
|
507
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isObjectWithKeys)(result, ['prerenderContext']) &&
|
|
508
|
-
(0, utils_js_1.hasProp)(result, 'prerenderContext', 'object') &&
|
|
509
|
-
(0, utils_js_1.hasProp)(result.prerenderContext, 'pageContexts', 'array'), rightUsage);
|
|
510
|
-
prerenderContext.pageContexts = result.prerenderContext.pageContexts;
|
|
511
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
512
|
-
// TO-DO/next-major-release: remove
|
|
513
|
-
if (pageContext.url && !(0, utils_js_1.isPropertyGetter)(pageContext, 'url')) {
|
|
514
|
-
(0, utils_js_1.assertWarning)(false, msgPrefix +
|
|
515
|
-
' provided pageContext.url but it should provide pageContext.urlOriginal instead, see https://vike.dev/migration/0.4.23', { onlyOnce: true });
|
|
516
|
-
pageContext.urlOriginal = pageContext.url;
|
|
517
|
-
}
|
|
518
|
-
delete pageContext.url;
|
|
519
|
-
});
|
|
520
|
-
// After applying result
|
|
521
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
522
|
-
;
|
|
523
|
-
pageContext._restorePropertyGetters?.();
|
|
524
|
-
});
|
|
525
|
-
// Assert URL modified by user
|
|
526
|
-
await Promise.all(prerenderContext.pageContexts.map((pageContext) => concurrencyLimit(async () => {
|
|
527
|
-
if (pageContext.urlOriginal !== pageContext._urlOriginalBeforeHook && !pageContext.is404) {
|
|
528
|
-
pageContext._urlOriginalModifiedByHook = {
|
|
529
|
-
hookFilePath,
|
|
530
|
-
hookName,
|
|
531
|
-
};
|
|
532
|
-
const pageContextFromRoute = await (0, index_js_1.route)(pageContext,
|
|
533
|
-
// Avoid calling onBeforeRoute() twice, otherwise onBeforeRoute() will wrongfully believe URL doesn't have locale after onBeforeRoute() already removed the local from the URL when called the first time.
|
|
534
|
-
true);
|
|
535
|
-
assertRouteMatch(pageContextFromRoute, pageContext);
|
|
536
|
-
}
|
|
537
|
-
})));
|
|
538
|
-
}
|
|
539
|
-
async function prerenderPages(prerenderContext, concurrencyLimit, onComplete) {
|
|
540
|
-
await Promise.all(prerenderContext.pageContexts.map((pageContextBeforeRender) => concurrencyLimit(async () => {
|
|
541
|
-
let res;
|
|
542
|
-
try {
|
|
543
|
-
res = await (0, renderPageAfterRoute_js_1.prerenderPage)(pageContextBeforeRender);
|
|
544
|
-
}
|
|
545
|
-
catch (err) {
|
|
546
|
-
assertIsNotAbort(err, picocolors_1.default.cyan(pageContextBeforeRender.urlOriginal));
|
|
547
|
-
throw err;
|
|
548
|
-
}
|
|
549
|
-
const { documentHtml, pageContext } = res;
|
|
550
|
-
const pageContextSerialized = pageContext.is404 ? null : res.pageContextSerialized;
|
|
551
|
-
await onComplete({
|
|
552
|
-
pageContext,
|
|
553
|
-
htmlString: documentHtml,
|
|
554
|
-
pageContextSerialized,
|
|
555
|
-
});
|
|
556
|
-
})));
|
|
557
|
-
}
|
|
558
|
-
function warnContradictoryNoPrerenderList(prerenderedPageContexts, doNotPrerenderList) {
|
|
559
|
-
Object.entries(prerenderedPageContexts).forEach(([pageId, pageContext]) => {
|
|
560
|
-
const doNotPrerenderListEntry = doNotPrerenderList.find((p) => p.pageId === pageId);
|
|
561
|
-
const { urlOriginal, _providedByHook: providedByHook } = pageContext;
|
|
562
|
-
{
|
|
563
|
-
const isContradictory = !!doNotPrerenderListEntry && providedByHook;
|
|
564
|
-
if (!isContradictory)
|
|
565
|
-
return;
|
|
566
|
-
}
|
|
567
|
-
(0, utils_js_1.assertWarning)(false, `The ${providedByHook.hookName}() hook defined by ${providedByHook.hookFilePath} returns the URL ${picocolors_1.default.cyan(urlOriginal)} matching the route of the page ${picocolors_1.default.cyan(pageId)} which isn't configured to be pre-rendered. This is contradictory: either enable pre-rendering for ${picocolors_1.default.cyan(pageId)} or remove the URL ${picocolors_1.default.cyan(urlOriginal)} from the list of URLs to be pre-rendered.`, { onlyOnce: true });
|
|
568
|
-
});
|
|
569
|
-
}
|
|
570
|
-
async function warnMissingPages(prerenderedPageContexts, globalContext, doNotPrerenderList, partial) {
|
|
571
|
-
const isV1 = globalContext._pageConfigs.length > 0;
|
|
572
|
-
const hookName = isV1 ? 'onBeforePrerenderStart' : 'prerender';
|
|
573
|
-
globalContext._allPageIds
|
|
574
|
-
.filter((pageId) => !prerenderedPageContexts[pageId])
|
|
575
|
-
.filter((pageId) => !doNotPrerenderList.find((p) => p.pageId === pageId))
|
|
576
|
-
.filter((pageId) => !(0, error_page_js_1.isErrorPage)(pageId, globalContext._pageConfigs))
|
|
577
|
-
.forEach((pageId) => {
|
|
578
|
-
const pageAt = isV1 ? pageId : `\`${pageId}.page.*\``;
|
|
579
|
-
(0, utils_js_1.assertWarning)(partial, `Cannot pre-render page ${pageAt} because it has a non-static route, while there isn't any ${hookName}() hook returning an URL matching the page's route. You must use a ${hookName}() hook (https://vike.dev/${hookName}) for providing the list of URLs to be pre-rendered for that page. If you want to skip pre-rendering that page, you can remove this warning by setting +prerender to false at ${pageAt} (https://vike.dev/prerender#toggle) or by setting +prerender.partial to true (https://vike.dev/prerender#partial).`, { onlyOnce: true });
|
|
580
|
-
});
|
|
581
|
-
}
|
|
582
|
-
async function writeFiles({ pageContext, htmlString, pageContextSerialized }, viteConfig, onPagePrerender, prerenderContext, logLevel) {
|
|
583
|
-
const writeJobs = [write(pageContext, 'HTML', htmlString, viteConfig, onPagePrerender, prerenderContext, logLevel)];
|
|
584
|
-
if (pageContextSerialized !== null) {
|
|
585
|
-
writeJobs.push(write(pageContext, 'JSON', pageContextSerialized, viteConfig, onPagePrerender, prerenderContext, logLevel));
|
|
586
|
-
}
|
|
587
|
-
await Promise.all(writeJobs);
|
|
588
|
-
}
|
|
589
|
-
async function write(pageContext, fileType, fileContent, viteConfig, onPagePrerender, prerenderContext, logLevel) {
|
|
590
|
-
const { urlOriginal } = pageContext;
|
|
591
|
-
(0, utils_js_1.assert)(urlOriginal.startsWith('/'));
|
|
592
|
-
const { outDirClient } = (0, getOutDirs_js_1.getOutDirs)(viteConfig, undefined);
|
|
593
|
-
const { root } = viteConfig;
|
|
594
|
-
let fileUrl;
|
|
595
|
-
if (fileType === 'HTML') {
|
|
596
|
-
const doNotCreateExtraDirectory = prerenderContext._noExtraDir ?? pageContext.is404;
|
|
597
|
-
fileUrl = (0, utils_js_1.urlToFile)(urlOriginal, '.html', doNotCreateExtraDirectory);
|
|
598
|
-
}
|
|
599
|
-
else {
|
|
600
|
-
(0, utils_js_1.assert)(fileType === 'JSON');
|
|
601
|
-
fileUrl = (0, getPageContextRequestUrl_js_1.getPageContextRequestUrl)(urlOriginal);
|
|
602
|
-
}
|
|
603
|
-
(0, utils_js_1.assertPosixPath)(fileUrl);
|
|
604
|
-
(0, utils_js_1.assert)(fileUrl.startsWith('/'));
|
|
605
|
-
const filePathRelative = fileUrl.slice(1);
|
|
606
|
-
(0, utils_js_1.assert)(!filePathRelative.startsWith('/'),
|
|
607
|
-
// https://github.com/vikejs/vike/issues/1929
|
|
608
|
-
{ urlOriginal, fileUrl });
|
|
609
|
-
(0, utils_js_1.assertPosixPath)(outDirClient);
|
|
610
|
-
(0, utils_js_1.assertPosixPath)(filePathRelative);
|
|
611
|
-
const filePath = node_path_1.default.posix.join(outDirClient, filePathRelative);
|
|
612
|
-
(0, utils_js_1.objectAssign)(pageContext, {
|
|
613
|
-
_prerenderResult: {
|
|
614
|
-
filePath,
|
|
615
|
-
fileContent,
|
|
616
|
-
},
|
|
617
|
-
});
|
|
618
|
-
prerenderContext.output.push({
|
|
619
|
-
filePath,
|
|
620
|
-
fileType,
|
|
621
|
-
fileContent,
|
|
622
|
-
pageContext,
|
|
623
|
-
});
|
|
624
|
-
if (onPagePrerender) {
|
|
625
|
-
await onPagePrerender(pageContext);
|
|
626
|
-
}
|
|
627
|
-
else {
|
|
628
|
-
const { promises } = await Promise.resolve().then(() => __importStar(require('node:fs')));
|
|
629
|
-
const { writeFile, mkdir } = promises;
|
|
630
|
-
await mkdir(node_path_1.default.posix.dirname(filePath), { recursive: true });
|
|
631
|
-
await writeFile(filePath, fileContent);
|
|
632
|
-
if (logLevel === 'info') {
|
|
633
|
-
(0, utils_js_1.assertPosixPath)(root);
|
|
634
|
-
(0, utils_js_1.assertPosixPath)(outDirClient);
|
|
635
|
-
let outDirClientRelative = node_path_1.default.posix.relative(root, outDirClient);
|
|
636
|
-
if (!outDirClientRelative.endsWith('/')) {
|
|
637
|
-
outDirClientRelative = outDirClientRelative + '/';
|
|
638
|
-
}
|
|
639
|
-
console.log(`${picocolors_1.default.dim(outDirClientRelative)}${picocolors_1.default.blue(filePathRelative)}`);
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
function normalizeOnPrerenderHookResult(prerenderResult, prerenderHookFile, hookName) {
|
|
644
|
-
if ((0, utils_js_1.isArray)(prerenderResult)) {
|
|
645
|
-
return prerenderResult.map(normalize);
|
|
646
|
-
}
|
|
647
|
-
else {
|
|
648
|
-
return [normalize(prerenderResult)];
|
|
649
|
-
}
|
|
650
|
-
function normalize(prerenderElement) {
|
|
651
|
-
if (typeof prerenderElement === 'string') {
|
|
652
|
-
prerenderElement = { url: prerenderElement, pageContext: null };
|
|
653
|
-
}
|
|
654
|
-
const errMsg1 = `The ${hookName}() hook defined by ${prerenderHookFile} returned`;
|
|
655
|
-
const errMsg2 = `${errMsg1} an invalid value`;
|
|
656
|
-
const errHint = `Make sure your ${hookName}() hook returns an object ${picocolors_1.default.cyan('{ url, pageContext }')} or an array of such objects.`;
|
|
657
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isPlainObject)(prerenderElement), `${errMsg2}. ${errHint}`);
|
|
658
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'url'), `${errMsg2}: ${picocolors_1.default.cyan('url')} is missing. ${errHint}`);
|
|
659
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'url', 'string'), `${errMsg2}: ${picocolors_1.default.cyan('url')} should be a string (but ${picocolors_1.default.cyan(`typeof url === "${typeof prerenderElement.url}"`)}).`);
|
|
660
|
-
(0, utils_js_1.assertUsage)(prerenderElement.url.startsWith('/'), `${errMsg1} a URL with an invalid value ${picocolors_1.default.cyan(prerenderElement.url)} which doesn't start with ${picocolors_1.default.cyan('/')}. Make sure each URL starts with ${picocolors_1.default.cyan('/')}.`);
|
|
661
|
-
Object.keys(prerenderElement).forEach((key) => {
|
|
662
|
-
(0, utils_js_1.assertUsage)(key === 'url' || key === 'pageContext', `${errMsg2}: unexpected object key ${picocolors_1.default.cyan(key)}. ${errHint}`);
|
|
663
|
-
});
|
|
664
|
-
if (!(0, utils_js_1.hasProp)(prerenderElement, 'pageContext')) {
|
|
665
|
-
prerenderElement.pageContext = null;
|
|
666
|
-
}
|
|
667
|
-
else if (!(0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'null')) {
|
|
668
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'object'), `${errMsg1} an invalid ${picocolors_1.default.cyan('pageContext')} value: make sure ${picocolors_1.default.cyan('pageContext')} is an object.`);
|
|
669
|
-
(0, utils_js_1.assertUsage)((0, utils_js_1.isPlainObject)(prerenderElement.pageContext), `${errMsg1} an invalid ${picocolors_1.default.cyan('pageContext')} object: make sure ${picocolors_1.default.cyan('pageContext')} is a plain JavaScript object.`);
|
|
670
|
-
}
|
|
671
|
-
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'object') || (0, utils_js_1.hasProp)(prerenderElement, 'pageContext', 'null'));
|
|
672
|
-
return prerenderElement;
|
|
673
|
-
}
|
|
674
|
-
}
|
|
675
|
-
// TO-DO/next-major-release: remove
|
|
676
|
-
function checkOutdatedOptions(options) {
|
|
677
|
-
(0, utils_js_1.assertUsage)(options.root === undefined, 'Option `prerender({ root })` deprecated: set `prerender({ viteConfig: { root }})` instead.', { showStackTrace: true });
|
|
678
|
-
(0, utils_js_1.assertUsage)(options.configFile === undefined, 'Option `prerender({ configFile })` deprecated: set `prerender({ viteConfig: { configFile }})` instead.', { showStackTrace: true });
|
|
679
|
-
['noExtraDir', 'partial', 'parallel'].forEach((prop) => {
|
|
680
|
-
(0, utils_js_1.assertUsage)(options[prop] === undefined, `[prerender()] Option ${picocolors_1.default.cyan(prop)} is deprecated. Define ${picocolors_1.default.cyan(prop)} in vite.config.js instead. See https://vike.dev/prerender`, { showStackTrace: true });
|
|
681
|
-
});
|
|
682
|
-
['base', 'outDir'].forEach((prop) => {
|
|
683
|
-
(0, utils_js_1.assertWarning)(options[prop] === undefined, `[prerender()] Option ${picocolors_1.default.cyan(prop)} is outdated and has no effect (vike now automatically determines ${picocolors_1.default.cyan(prop)})`, {
|
|
684
|
-
showStackTrace: true,
|
|
685
|
-
onlyOnce: true,
|
|
686
|
-
});
|
|
687
|
-
});
|
|
688
|
-
}
|
|
689
|
-
async function disableReactStreaming() {
|
|
690
|
-
let mod;
|
|
691
|
-
try {
|
|
692
|
-
mod = await Promise.resolve().then(() => __importStar(require('react-streaming/server')));
|
|
693
|
-
}
|
|
694
|
-
catch {
|
|
695
|
-
return;
|
|
696
|
-
}
|
|
697
|
-
const { disable } = mod;
|
|
698
|
-
disable();
|
|
699
|
-
}
|
|
700
|
-
function isSameUrl(url1, url2) {
|
|
701
|
-
return normalizeUrl(url1) === normalizeUrl(url2);
|
|
702
|
-
}
|
|
703
|
-
function normalizeUrl(url) {
|
|
704
|
-
return '/' + url.split('/').filter(Boolean).join('/');
|
|
705
|
-
}
|
|
706
|
-
function assertIsNotAbort(err, urlOriginal) {
|
|
707
|
-
if (!(0, abort_js_1.isAbortError)(err))
|
|
708
|
-
return;
|
|
709
|
-
const pageContextAbort = err._pageContextAbort;
|
|
710
|
-
const hookLoc = (0, execHook_js_1.isUserHookError)(err);
|
|
711
|
-
(0, utils_js_1.assert)(hookLoc);
|
|
712
|
-
const thrownBy = ` by ${picocolors_1.default.cyan(`${hookLoc.hookName}()`)} hook defined at ${hookLoc.hookFilePath}`;
|
|
713
|
-
const abortCaller = pageContextAbort._abortCaller;
|
|
714
|
-
(0, utils_js_1.assert)(abortCaller);
|
|
715
|
-
const abortCall = pageContextAbort._abortCall;
|
|
716
|
-
(0, utils_js_1.assert)(abortCall);
|
|
717
|
-
(0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(abortCall)} thrown${thrownBy} while pre-rendering ${urlOriginal} but ${picocolors_1.default.cyan(abortCaller)} isn't supported for pre-rendered pages`);
|
|
718
|
-
}
|
|
719
|
-
function preparePrerenderContextForPublicUsage(prerenderContext) {
|
|
720
|
-
// TO-DO/next-major-release: remove
|
|
721
|
-
if (!('prerenderPageContexts' in prerenderContext)) {
|
|
722
|
-
Object.defineProperty(prerenderContext, 'prerenderPageContexts', {
|
|
723
|
-
get() {
|
|
724
|
-
(0, utils_js_1.assertWarning)(false, `prerenderPageContexts has been renamed pageContexts, see ${picocolors_1.default.underline(docLink)}`, {
|
|
725
|
-
showStackTrace: true,
|
|
726
|
-
onlyOnce: true,
|
|
727
|
-
});
|
|
728
|
-
return prerenderContext.pageContexts;
|
|
729
|
-
},
|
|
730
|
-
});
|
|
731
|
-
}
|
|
732
|
-
// Required because of https://vike.dev/i18n#pre-rendering
|
|
733
|
-
// - Thus, we have to let users access the original pageContext object => we cannot use ES proxies and we cannot use preparePageContextForPublicUsage()
|
|
734
|
-
prerenderContext.pageContexts.forEach((pageContext) => {
|
|
735
|
-
(0, utils_js_1.changeEnumerable)(pageContext, '_isOriginalObject', true);
|
|
736
|
-
});
|
|
737
|
-
const prerenderContextPublic = (0, getProxyForPublicUsage_js_1.getProxyForPublicUsage)(prerenderContext, 'prerenderContext');
|
|
738
|
-
return prerenderContextPublic;
|
|
739
|
-
}
|
|
740
|
-
async function prerenderRedirects(globalContext, onComplete, showWarningUponDynamicRedirects) {
|
|
741
|
-
const redirects = globalContext.config.redirects ?? [];
|
|
742
|
-
const redirectsStatic = (0, resolveRedirects_js_1.getStaticRedirectsForPrerender)(redirects, showWarningUponDynamicRedirects);
|
|
743
|
-
for (const [urlSource, urlTarget] of Object.entries(redirectsStatic)) {
|
|
744
|
-
const urlOriginal = urlSource;
|
|
745
|
-
const htmlString = getRedirectHtml(urlTarget);
|
|
746
|
-
await onComplete({
|
|
747
|
-
pageContext: { urlOriginal, pageId: null, is404: false, isRedirect: true },
|
|
748
|
-
htmlString,
|
|
749
|
-
pageContextSerialized: null,
|
|
750
|
-
});
|
|
751
|
-
}
|
|
752
|
-
}
|
|
753
|
-
function getRedirectHtml(urlTarget) {
|
|
754
|
-
const urlTargetSafe = (0, utils_js_1.escapeHtml)(urlTarget);
|
|
755
|
-
// To test it: /test/playground => http://localhost:3000/download
|
|
756
|
-
const htmlString = `<!DOCTYPE html>
|
|
757
|
-
<html lang="en">
|
|
758
|
-
<head>
|
|
759
|
-
<meta charset="UTF-8">
|
|
760
|
-
<meta http-equiv="refresh" content="0;url=${urlTargetSafe}">
|
|
761
|
-
<title>Redirect ${urlTargetSafe}</title>
|
|
762
|
-
<style>body{opacity:0}</style>
|
|
763
|
-
<noscript>
|
|
764
|
-
<style>body{opacity:1}</style>
|
|
765
|
-
</noscript>
|
|
766
|
-
</head>
|
|
767
|
-
<body style="min-height: 100vh; margin: 0; font-family: sans-serif; display: flex; justify-content: center; align-items: center; transition: opacity 0.3s;">
|
|
768
|
-
<script>setTimeout(()=>{document.body.style.opacity=1},2000)</script>
|
|
769
|
-
<div>
|
|
770
|
-
<h1>Redirect <a href="${urlTargetSafe}"><code style="background-color: #eaeaea; padding: 3px 5px; border-radius: 4px;">${urlTargetSafe}</code></a></h1>
|
|
771
|
-
<p>If you aren't redirected, click the link above.</p>
|
|
772
|
-
<!-- This HTML was generated by Vike. -->
|
|
773
|
-
</div>
|
|
774
|
-
</body>
|
|
775
|
-
</html>`;
|
|
776
|
-
return htmlString;
|
|
777
|
-
}
|