@revealui/core 0.0.1-pre.1 → 0.0.1-pre.2
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/exports/bin-entry.js +3 -1
- package/dist/node/cli/index.js +3 -0
- package/package.json +2 -2
- package/dist/core/__internal/index.ts +0 -63
- package/dist/core/__tests__/assertNoInfiniteHttpRedirect.spec.ts +0 -76
- package/dist/core/__tests__/deduceRouteStringFromFilesystemPath.spec.ts +0 -88
- package/dist/core/__tests__/freezePartial.spec.ts +0 -40
- package/dist/core/__tests__/getValuePrintable.spec.ts +0 -15
- package/dist/core/__tests__/injectHtmlTags.spec.ts +0 -101
- package/dist/core/__tests__/isHtml.spec.ts +0 -23
- package/dist/core/__tests__/isNpmPackage.spec.ts +0 -93
- package/dist/core/__tests__/normalizeHeaders.spec.ts +0 -142
- package/dist/core/__tests__/parseUrl-extras.spec.ts +0 -60
- package/dist/core/__tests__/parseUrl.spec.ts +0 -1339
- package/dist/core/__tests__/resolvePrecedence/resolvePrecedence_overall.spec.ts +0 -106
- package/dist/core/__tests__/resolvePrecedence/resolvePrecedence_route-strings.spec.ts +0 -99
- package/dist/core/__tests__/resolveRedirects.spec.ts +0 -132
- package/dist/core/__tests__/resolveRouteString.spec.ts +0 -211
- package/dist/core/__tests__/resolveUrlPathname.spec.ts +0 -22
- package/dist/core/__tests__/trimWithAnsi.spec.ts +0 -40
- package/dist/core/api/ssr.ts +0 -63
- package/dist/core/assets/extractAssetsQuery.ts +0 -29
- package/dist/core/assets/index.ts +0 -173
- package/dist/core/assets/inferHtmlTags.ts +0 -61
- package/dist/core/assets/injectHtmlTags.ts +0 -236
- package/dist/core/assets/mergeScriptTags.ts +0 -77
- package/dist/core/assets/sanitizeJson.ts +0 -8
- package/dist/core/cli/bin.ts +0 -161
- package/dist/core/cli/commands/add.ts +0 -158
- package/dist/core/cli/commands/check.ts +0 -47
- package/dist/core/cli/commands/doctor/checks/build.ts +0 -83
- package/dist/core/cli/commands/doctor/checks/config.ts +0 -130
- package/dist/core/cli/commands/doctor/checks/dependencies.ts +0 -144
- package/dist/core/cli/commands/doctor/checks/practices.ts +0 -156
- package/dist/core/cli/commands/doctor/checks/structure.ts +0 -127
- package/dist/core/cli/commands/doctor/fixes/index.ts +0 -136
- package/dist/core/cli/commands/doctor/index.ts +0 -47
- package/dist/core/cli/commands/doctor/print.ts +0 -44
- package/dist/core/cli/commands/doctor/types.ts +0 -16
- package/dist/core/cli/commands/fix.ts +0 -161
- package/dist/core/cli/commands/init.ts +0 -145
- package/dist/core/cli/commands/upgrade.ts +0 -115
- package/dist/core/cli/onLoad.ts +0 -7
- package/dist/core/cli/utils.ts +0 -6
- package/dist/core/components/Config/Config-client.ts +0 -14
- package/dist/core/components/Config/Config-server.ts +0 -16
- package/dist/core/components/Head/Head-client.ts +0 -4
- package/dist/core/components/Head/Head-server.ts +0 -16
- package/dist/core/components/Loading.tsx +0 -23
- package/dist/core/config/findPageConfig.ts +0 -14
- package/dist/core/config/loadConfigValues.ts +0 -28
- package/dist/core/constants/UnifiedConstants.ts +0 -348
- package/dist/core/dom/applyHeadSettings.tsx +0 -13
- package/dist/core/dom/onPageVisibilityChange.ts +0 -17
- package/dist/core/dom/updateDocumentHead.ts +0 -15
- package/dist/core/errors/ErrorHandler.ts +0 -480
- package/dist/core/files/file-system/filesystemPath.ts +0 -27
- package/dist/core/files/file-system/findFile.ts +0 -35
- package/dist/core/files/file-system/findPackageJson.ts +0 -19
- package/dist/core/files/file-system/findPageFiles.ts +0 -40
- package/dist/core/files/file-system/pathShim.ts +0 -16
- package/dist/core/files/file-system/prependEntriesDir.ts +0 -13
- package/dist/core/files/file-system/removeFileExtention.ts +0 -3
- package/dist/core/files/file-system/requireResolve.ts +0 -59
- package/dist/core/files/file-system/scanCodebase.ts +0 -64
- package/dist/core/files/virtual-files/index.ts +0 -31
- package/dist/core/files/virtual-files/virtualFileImportUserCode.ts +0 -34
- package/dist/core/files/virtual-files/virtualFilePageConfigValuesAll.ts +0 -49
- package/dist/core/gaurds/assertions/assert/base.ts +0 -6
- package/dist/core/gaurds/assertions/assert/index.ts +0 -2
- package/dist/core/gaurds/assertions/assert/log.ts +0 -42
- package/dist/core/gaurds/assertions/assertArguments.ts +0 -83
- package/dist/core/gaurds/assertions/assertCast.ts +0 -9
- package/dist/core/gaurds/assertions/assertCommonJS/base.ts +0 -9
- package/dist/core/gaurds/assertions/assertCommonJS/common.ts +0 -30
- package/dist/core/gaurds/assertions/assertCommonJS/index.ts +0 -2
- package/dist/core/gaurds/assertions/assertExtensions/base.ts +0 -187
- package/dist/core/gaurds/assertions/assertExtensions/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertHookReturnedObject.ts +0 -30
- package/dist/core/gaurds/assertions/assertInfo/base.ts +0 -14
- package/dist/core/gaurds/assertions/assertInfo/index.ts +0 -2
- package/dist/core/gaurds/assertions/assertInfo/log.ts +0 -28
- package/dist/core/gaurds/assertions/assertIs404.ts +0 -12
- package/dist/core/gaurds/assertions/assertIsBrowser/base.ts +0 -8
- package/dist/core/gaurds/assertions/assertIsBrowser/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertIsNotBrowser/base.ts +0 -9
- package/dist/core/gaurds/assertions/assertIsNotBrowser/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertIsNotProductionRuntime/base.ts +0 -71
- package/dist/core/gaurds/assertions/assertIsNotProductionRuntime/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertKeys/base.ts +0 -31
- package/dist/core/gaurds/assertions/assertKeys/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertNoInfiniteHttpRedirect.ts +0 -55
- package/dist/core/gaurds/assertions/assertNodeEnv/base.ts +0 -120
- package/dist/core/gaurds/assertions/assertNodeEnv/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertNodeVersion/base.ts +0 -11
- package/dist/core/gaurds/assertions/assertNodeVersion/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertOnBeforeRenderHookReturn.ts +0 -37
- package/dist/core/gaurds/assertions/assertPageContextProvidedByUser.ts +0 -60
- package/dist/core/gaurds/assertions/assertPluginManifest.ts +0 -41
- package/dist/core/gaurds/assertions/assertPlusFileExport.ts +0 -66
- package/dist/core/gaurds/assertions/assertRoutingType/base.ts +0 -41
- package/dist/core/gaurds/assertions/assertRoutingType/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertRuntimeManifest.ts +0 -34
- package/dist/core/gaurds/assertions/assertSingleInstance/index.ts +0 -142
- package/dist/core/gaurds/assertions/assertSingleInstance/onAssertModuleLoad.ts +0 -0
- package/dist/core/gaurds/assertions/assertSingleInstance/onClientEntryClientRouting.ts +0 -0
- package/dist/core/gaurds/assertions/assertSingleInstance/onClientEntryServerRouting.ts +0 -0
- package/dist/core/gaurds/assertions/assertType.ts +0 -12
- package/dist/core/gaurds/assertions/assertUsage/base.ts +0 -43
- package/dist/core/gaurds/assertions/assertUsage/index.ts +0 -3
- package/dist/core/gaurds/assertions/assertUsage/log.ts +0 -29
- package/dist/core/gaurds/assertions/assertUsage/node.ts +0 -16
- package/dist/core/gaurds/assertions/assertV1Design.ts +0 -29
- package/dist/core/gaurds/assertions/assertVersion/base.ts +0 -55
- package/dist/core/gaurds/assertions/assertVersion/index.ts +0 -1
- package/dist/core/gaurds/assertions/assertWarning/base.ts +0 -43
- package/dist/core/gaurds/assertions/assertWarning/index.ts +0 -2
- package/dist/core/gaurds/assertions/assertWarning/log.ts +0 -43
- package/dist/core/gaurds/assertions/checkType.ts +0 -2
- package/dist/core/gaurds/debugger/createDebugger.ts +0 -196
- package/dist/core/gaurds/debugger/debugPageFiles.ts +0 -121
- package/dist/core/gaurds/debugger/index.ts +0 -2
- package/dist/core/gaurds/errors/createErrorWithCleanStackTrace.ts +0 -56
- package/dist/core/gaurds/errors/removeErrMsg.ts +0 -8
- package/dist/core/gaurds/logger/addOnBeforeLogHook/index.ts +0 -7
- package/dist/core/gaurds/logger/formatHintLog.ts +0 -17
- package/dist/core/gaurds/logger/log404/index.spec.ts +0 -78
- package/dist/core/gaurds/logger/log404/index.ts +0 -208
- package/dist/core/gaurds/logger/logErrorHint/errors.ts +0 -17
- package/dist/core/gaurds/logger/logErrorHint/getErrorHint.spec.ts +0 -1057
- package/dist/core/gaurds/logger/logErrorHint.ts +0 -196
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.ts +0 -16
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.ts +0 -16
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.ts +0 -39
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.ts +0 -24
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.ts +0 -83
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.ts +0 -33
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.ts +0 -20
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.ts +0 -19
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.ts +0 -36
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.ts +0 -17
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.ts +0 -16
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/getPrettyErrMessage.spec.ts +0 -101
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/getPrettyErrorWithCodeSnippet.spec.ts +0 -232
- package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet.ts +0 -212
- package/dist/core/gaurds/logger/loggerNotProd/log.ts +0 -124
- package/dist/core/gaurds/logger/loggerNotProd.ts +0 -271
- package/dist/core/gaurds/logger/loggerProd.ts +0 -37
- package/dist/core/gaurds/logger/loggerRuntime.ts +0 -46
- package/dist/core/gaurds/logger/loggerVite/removeSuperfluousViteLog.ts +0 -30
- package/dist/core/gaurds/logger/loggerVite.ts +0 -65
- package/dist/core/gaurds/logger/overwriteAssertProductionLogger/index.ts +0 -9
- package/dist/core/gaurds/logger/trackLogs.ts +0 -35
- package/dist/core/gaurds/logger/warnIfErrorIsNotObject.ts +0 -31
- package/dist/core/gaurds/normalization/freezePartial.ts +0 -39
- package/dist/core/gaurds/normalization/normalizeHeaders.ts +0 -20
- package/dist/core/gaurds/normalization/normalizeLink.tsx +0 -14
- package/dist/core/gaurds/normalization/normalizeUrlArgument.ts +0 -22
- package/dist/core/gaurds/validators/hasProp.ts +0 -116
- package/dist/core/gaurds/validators/isArray.ts +0 -4
- package/dist/core/gaurds/validators/isArrayOfStrings.ts +0 -7
- package/dist/core/gaurds/validators/isAsset.ts +0 -43
- package/dist/core/gaurds/validators/isBrowser.ts +0 -5
- package/dist/core/gaurds/validators/isBug.ts +0 -5
- package/dist/core/gaurds/validators/isCallable.ts +0 -11
- package/dist/core/gaurds/validators/isClientSideRoutable.ts +0 -19
- package/dist/core/gaurds/validators/isConfigInvalid.ts +0 -10
- package/dist/core/gaurds/validators/isDev.ts +0 -56
- package/dist/core/gaurds/validators/isErrorDebug.ts +0 -7
- package/dist/core/gaurds/validators/isErrorPage.ts +0 -16
- package/dist/core/gaurds/validators/isFilePathAbsoluteFilesystem.ts +0 -55
- package/dist/core/gaurds/validators/isHtml.ts +0 -9
- package/dist/core/gaurds/validators/isNewError.ts +0 -29
- package/dist/core/gaurds/validators/isNodeJS.ts +0 -10
- package/dist/core/gaurds/validators/isNotFalse.ts +0 -3
- package/dist/core/gaurds/validators/isNotNullish.ts +0 -2
- package/dist/core/gaurds/validators/isNpmPackage.ts +0 -127
- package/dist/core/gaurds/validators/isObject.ts +0 -3
- package/dist/core/gaurds/validators/isObjectOfStrings.ts +0 -9
- package/dist/core/gaurds/validators/isObjectWithKeys.ts +0 -18
- package/dist/core/gaurds/validators/isPlainObject.ts +0 -21
- package/dist/core/gaurds/validators/isPromise.ts +0 -9
- package/dist/core/gaurds/validators/isPropertyGetter.ts +0 -4
- package/dist/core/gaurds/validators/isReact.ts +0 -24
- package/dist/core/gaurds/validators/isReactElement.ts +0 -21
- package/dist/core/gaurds/validators/isRevealApp.ts +0 -4
- package/dist/core/gaurds/validators/isSameErrorMessage.ts +0 -8
- package/dist/core/gaurds/validators/isScriptFile.ts +0 -75
- package/dist/core/gaurds/validators/isServerSideError.ts +0 -1
- package/dist/core/gaurds/validators/isViteCliCall.ts +0 -93
- package/dist/core/gaurds/validators/isVitest.ts +0 -7
- package/dist/core/gaurds/validators/rollupIsEsm.ts +0 -14
- package/dist/core/gaurds/validators/viteIsSSR.ts +0 -23
- package/dist/core/globals/contexts/globalContext/getPageFilesExports.ts +0 -28
- package/dist/core/globals/contexts/globalContext/index.ts +0 -374
- package/dist/core/globals/contexts/globalContext/loadImportBuild.ts +0 -44
- package/dist/core/globals/contexts/globalContext/setup.ts +0 -4
- package/dist/core/globals/contexts/index.ts +0 -1
- package/dist/core/globals/logger/index.ts +0 -1
- package/dist/core/globals/logger/numberOfStackTraceLinesToRemove.ts +0 -3
- package/dist/core/globals/objects/index.ts +0 -1
- package/dist/core/globals/objects/log.ts +0 -24
- package/dist/core/globals/patterns/styleFileRE.ts +0 -3
- package/dist/core/globals/tags/addPrefixAssertType.ts +0 -11
- package/dist/core/globals/tags/addPrefixProjectName.ts +0 -9
- package/dist/core/globals/tags/projectTag.ts +0 -3
- package/dist/core/globals/tags/projectTagWithVersion.ts +0 -5
- package/dist/core/globals/versions/PROJECT_VERSION.ts +0 -2
- package/dist/core/globals/versions/projectInfo.ts +0 -5
- package/dist/core/handlers/handleErrorWithoutErrorPage.ts +0 -70
- package/dist/core/handlers/handlePageContext.ts +0 -15
- package/dist/core/handlers/handlePageContextRequestUrl.ts +0 -56
- package/dist/core/handlers/openFacebook.ts +0 -20
- package/dist/core/hocs/clientOnly.tsx +0 -130
- package/dist/core/hooks/callCumulativeHooks.ts +0 -22
- package/dist/core/hooks/executeHook.ts +0 -118
- package/dist/core/hooks/useConfig/configsCumulative.ts +0 -6
- package/dist/core/hooks/useConfig/useConfig-client.ts +0 -82
- package/dist/core/hooks/useConfig/useConfig-server.ts +0 -152
- package/dist/core/hydration/progressive.ts +0 -252
- package/dist/core/index.ts +0 -60
- package/dist/core/islands/index.tsx +0 -198
- package/dist/core/logging/UnifiedLoggerV2.ts +0 -555
- package/dist/core/logging/index.ts +0 -80
- package/dist/core/logging/plugins/FilePlugin.ts +0 -132
- package/dist/core/logging/plugins/PayloadCMSPlugin.ts +0 -71
- package/dist/core/logging/plugins/RemotePlugin.ts +0 -110
- package/dist/core/logging/plugins/index.ts +0 -11
- package/dist/core/naming/UnifiedNaming.ts +0 -424
- package/dist/core/observability/logger.ts +0 -195
- package/dist/core/observability/metrics.ts +0 -156
- package/dist/core/processing/getters/getAssertErrMsg.ts +0 -49
- package/dist/core/processing/getters/getAssetsDir.ts +0 -11
- package/dist/core/processing/getters/getBaseServer.ts +0 -16
- package/dist/core/processing/getters/getCacheControl.ts +0 -26
- package/dist/core/processing/getters/getConfigDefinedAt.ts +0 -73
- package/dist/core/processing/getters/getConfigReveal.ts +0 -14
- package/dist/core/processing/getters/getConfigValue.ts +0 -68
- package/dist/core/processing/getters/getConfigValueBuildTime.ts +0 -92
- package/dist/core/processing/getters/getConfigValueFilePathToShowToUser.ts +0 -17
- package/dist/core/processing/getters/getCurrentUrl.ts +0 -42
- package/dist/core/processing/getters/getEarlyHints.ts +0 -58
- package/dist/core/processing/getters/getEnv.ts +0 -33
- package/dist/core/processing/getters/getErrorPageId.ts +0 -23
- package/dist/core/processing/getters/getExportPath.spec.ts +0 -34
- package/dist/core/processing/getters/getExportPath.ts +0 -33
- package/dist/core/processing/getters/getFileExtension.ts +0 -19
- package/dist/core/processing/getters/getFilePath.ts +0 -269
- package/dist/core/processing/getters/getGlobalObject.ts +0 -53
- package/dist/core/processing/getters/getHeadSetting.tsx +0 -36
- package/dist/core/processing/getters/getHook.ts +0 -222
- package/dist/core/processing/getters/getHookFilePathToShowToUser.ts +0 -12
- package/dist/core/processing/getters/getHtmlTags.ts +0 -341
- package/dist/core/processing/getters/getHttpRequestAsyncStore.ts +0 -122
- package/dist/core/processing/getters/getHttpResponseBody.ts +0 -177
- package/dist/core/processing/getters/getMostSimilar.ts +0 -72
- package/dist/core/processing/getters/getOutDirs.ts +0 -160
- package/dist/core/processing/getters/getPageAssets/getManifestEntry.ts +0 -164
- package/dist/core/processing/getters/getPageAssets/retrieveAssetsDev.ts +0 -96
- package/dist/core/processing/getters/getPageAssets/retrieveAssetsProd.ts +0 -86
- package/dist/core/processing/getters/getPageAssets/sortPageAssetsForEarlyHintsHeader.ts +0 -40
- package/dist/core/processing/getters/getPageAssets.ts +0 -140
- package/dist/core/processing/getters/getPageConfig.ts +0 -14
- package/dist/core/processing/getters/getPageContext.ts +0 -64
- package/dist/core/processing/getters/getPageContextCurrent.ts +0 -19
- package/dist/core/processing/getters/getPageContextFromHooks.ts +0 -335
- package/dist/core/processing/getters/getPageContextProxyForUser.ts +0 -97
- package/dist/core/processing/getters/getPageContextRequestUrl.ts +0 -22
- package/dist/core/processing/getters/getPageContextSerializedInHtml.ts +0 -32
- package/dist/core/processing/getters/getPageContextUrlComputed.ts +0 -410
- package/dist/core/processing/getters/getPageElement.tsx +0 -148
- package/dist/core/processing/getters/getPageFiles/analyzeClientSide.ts +0 -50
- package/dist/core/processing/getters/getPageFiles/analyzePageServerSide.ts +0 -32
- package/dist/core/processing/getters/getPageFiles/getExportNames.ts +0 -16
- package/dist/core/processing/getters/getPageFiles/getExports.ts +0 -193
- package/dist/core/processing/getters/getPageFiles/index.ts +0 -9
- package/dist/core/processing/getters/getPageFiles/parseGlobResults.ts +0 -167
- package/dist/core/processing/getters/getPageFiles/setPageFiles.ts +0 -76
- package/dist/core/processing/getters/getPrefetchSettingResolved.ts.ts +0 -87
- package/dist/core/processing/getters/getProjectError.ts +0 -18
- package/dist/core/processing/getters/getPropAccessNotation.ts +0 -10
- package/dist/core/processing/getters/getRandomId.ts +0 -15
- package/dist/core/processing/getters/getRevalidationKey.ts +0 -5
- package/dist/core/processing/getters/getRevealClientEntry.ts +0 -7
- package/dist/core/processing/getters/getRevealConfig/configDefinitionsBuiltIn.ts +0 -711
- package/dist/core/processing/getters/getRevealConfig/crawlPlusFiles.ts +0 -409
- package/dist/core/processing/getters/getRevealConfig/filesystemRouting.spec.ts +0 -40
- package/dist/core/processing/getters/getRevealConfig/filesystemRouting.ts +0 -286
- package/dist/core/processing/getters/getRevealConfig/index.ts +0 -1641
- package/dist/core/processing/getters/getRevealConfig/loadFileAtConfigTime.ts +0 -181
- package/dist/core/processing/getters/getRevealConfig/resolvePointerImport.ts +0 -240
- package/dist/core/processing/getters/getRevealConfig/transformPointerImports.spec.ts +0 -30
- package/dist/core/processing/getters/getRevealConfig/transformPointerImports.ts +0 -244
- package/dist/core/processing/getters/getRevealConfig/transpileAndExecuteFile.ts +0 -490
- package/dist/core/processing/getters/getTagAttributesString.ts +0 -27
- package/dist/core/processing/getters/getTerminWidth.ts +0 -9
- package/dist/core/processing/getters/getValuePrintable.ts +0 -6
- package/dist/core/processing/getters/getViteDevScript.ts +0 -47
- package/dist/core/processing/iterators/analyzePage.ts +0 -65
- package/dist/core/processing/iterators/includes.ts +0 -10
- package/dist/core/processing/iterators/index.ts +0 -2
- package/dist/core/processing/iterators/objectKeys.ts +0 -6
- package/dist/core/processing/parsers/parseEsModule.ts +0 -43
- package/dist/core/processing/parsers/parseTransform.ts +0 -36
- package/dist/core/processing/serializers/notSerializable.ts +0 -2
- package/dist/core/processing/serializers/replaceWithParserPath.ts +0 -30
- package/dist/core/processing/serializers/serializePage/PageConfigSerialized.ts +0 -45
- package/dist/core/processing/serializers/serializePage/parsePageConfigs.ts +0 -223
- package/dist/core/processing/serializers/serializePage/serializeConfigValues.ts +0 -336
- package/dist/core/processing/serializers/serializePageContextClientSide.ts +0 -179
- package/dist/core/processing/serializers/stringify.ts +0 -188
- package/dist/core/processing/serializers/stringifyTypes.ts +0 -103
- package/dist/core/processing/setters/addIs404ToPageProps.ts +0 -27
- package/dist/core/processing/setters/setAlwaysShowStackTrace.ts +0 -7
- package/dist/core/processing/transformers/augmentType.ts +0 -10
- package/dist/core/processing/transformers/rollupSourceMap.ts +0 -23
- package/dist/core/processing/transformers/slice.ts +0 -52
- package/dist/core/renderer/page/executeOnBeforeRenderAndDataHooks.ts +0 -53
- package/dist/core/renderer/page/executeOnRenderHtmlHook.ts +0 -261
- package/dist/core/renderer/page/index.ts +0 -804
- package/dist/core/renderer/page/inferMediaType.ts +0 -128
- package/dist/core/renderer/page/loadUserFilesServerSide.ts +0 -154
- package/dist/core/renderer/page/preparePageContextForUserConsumption.ts +0 -55
- package/dist/core/renderer/page/preparePageContextForUserConsumptionServerSide.ts +0 -38
- package/dist/core/renderer/page/renderPageAlreadyRouted.ts +0 -373
- package/dist/core/renderer/page/resolveRedirects.ts +0 -75
- package/dist/core/renderer/prerender/index.ts +0 -1
- package/dist/core/renderer/prerender/runPrerender.ts +0 -1141
- package/dist/core/renderer/prerender/utils.ts +0 -22
- package/dist/core/renderer/stream/html.ts +0 -408
- package/dist/core/renderer/stream/index.ts +0 -1001
- package/dist/core/renderer/stream/onLoad.ts +0 -14
- package/dist/core/renderer/stream/react-streaming.ts +0 -69
- package/dist/core/renderer/stream/utils.ts +0 -66
- package/dist/core/resilience/circuit-breaker.ts +0 -212
- package/dist/core/resilience/retry.ts +0 -172
- package/dist/core/result/adapters.ts +0 -254
- package/dist/core/result.ts +0 -332
- package/dist/core/router/abort.ts +0 -339
- package/dist/core/router/apiRoutes.ts +0 -94
- package/dist/core/router/debug.ts +0 -19
- package/dist/core/router/deduceRouteStringFromFilesystemPath.ts +0 -75
- package/dist/core/router/dynamicApiRoutes.ts +0 -18
- package/dist/core/router/dynamicPageRoutes.ts +0 -18
- package/dist/core/router/executeGuardHook.ts +0 -45
- package/dist/core/router/executeOnBeforeRouteHook.ts +0 -161
- package/dist/core/router/index.ts +0 -230
- package/dist/core/router/loadPageRoutes.ts +0 -155
- package/dist/core/router/noRouteMatch.ts +0 -1
- package/dist/core/router/pageRoutes.ts +0 -159
- package/dist/core/router/resolvePrecedence.ts +0 -128
- package/dist/core/router/resolveRoute.ts +0 -29
- package/dist/core/router/resolveRouteFunction.ts +0 -193
- package/dist/core/router/resolveRouteString.ts +0 -204
- package/dist/core/router/resolveRouteUtils.ts +0 -77
- package/dist/core/router/resolveUrlPathname.ts +0 -67
- package/dist/core/router/routeInternal.ts +0 -97
- package/dist/core/router/utils.ts +0 -30
- package/dist/core/services/BaseService.ts +0 -403
- package/dist/core/targets/client/abort.ts +0 -11
- package/dist/core/targets/client/createPageContext.ts +0 -48
- package/dist/core/targets/client/entry.ts +0 -15
- package/dist/core/targets/client/executeOnRenderClientHook.ts +0 -94
- package/dist/core/targets/client/history.ts +0 -142
- package/dist/core/targets/client/index.ts +0 -9
- package/dist/core/targets/client/initClientRouter.ts +0 -48
- package/dist/core/targets/client/initOnLinkClick.ts +0 -54
- package/dist/core/targets/client/loadUserFilesClientSide.ts +0 -92
- package/dist/core/targets/client/navigate.ts +0 -45
- package/dist/core/targets/client/onBrowserHistoryNavigation.ts +0 -85
- package/dist/core/targets/client/onLoad.ts +0 -10
- package/dist/core/targets/client/pageContextInitIsPassedToClient.ts +0 -2
- package/dist/core/targets/client/pageFiles.ts +0 -4
- package/dist/core/targets/client/prefetch.ts +0 -399
- package/dist/core/targets/client/preparePageContextForUserConsumptionClientSide.ts +0 -48
- package/dist/core/targets/client/removeBuiltInOverrides.ts +0 -37
- package/dist/core/targets/client/removeFoucBuster.ts +0 -70
- package/dist/core/targets/client/renderPageClientSide.ts +0 -1817
- package/dist/core/targets/client/router.ts +0 -15
- package/dist/core/targets/client/scrollRestoration.ts +0 -37
- package/dist/core/targets/client/setScrollPosition.ts +0 -87
- package/dist/core/targets/client/skipLink.ts +0 -63
- package/dist/core/targets/client/utils.ts +0 -34
- package/dist/core/targets/http/createHttpResponse.ts +0 -254
- package/dist/core/targets/http/fetchBanner.ts +0 -25
- package/dist/core/targets/http/fetchCard.ts +0 -25
- package/dist/core/targets/http/fetchEvents.ts +0 -25
- package/dist/core/targets/http/fetchHero.ts +0 -25
- package/dist/core/targets/http/fetchMainInfos.ts +0 -25
- package/dist/core/targets/http/fetchPage.ts +0 -78
- package/dist/core/targets/http/fetchPages.ts +0 -70
- package/dist/core/targets/http/fetchVideos.ts +0 -26
- package/dist/core/targets/http/fetchYouTube.ts +0 -90
- package/dist/core/targets/server/entry.ts +0 -43
- package/dist/core/targets/server/middleware/addSsrMiddleware.ts +0 -52
- package/dist/core/targets/server/onLoad.ts +0 -7
- package/dist/core/targets/server/pageFiles.ts +0 -4
- package/dist/core/targets/server/root.ts +0 -10
- package/dist/core/targets/server/utils.ts +0 -20
- package/dist/core/targets/url/index.ts +0 -439
- package/dist/core/targets/url/modifyUrl.ts +0 -45
- package/dist/core/targets/url/parseUrl.ts +0 -440
- package/dist/core/targets/url/parseUrlExtras.ts +0 -193
- package/dist/core/targets/url/redirectHard.ts +0 -3
- package/dist/core/targets/url/updateCurrentPath.ts +0 -52
- package/dist/core/targets/url/urlToFile.ts +0 -47
- package/dist/core/types/UnifiedTypes.ts +0 -493
- package/dist/core/types/contracts.ts +0 -61
- package/dist/core/types/generator.ts +0 -316
- package/dist/core/utils/array/includes.ts +0 -10
- package/dist/core/utils/array/slice.ts +0 -52
- package/dist/core/utils/array/sorter.ts +0 -130
- package/dist/core/utils/array/stringifyStringArray.ts +0 -7
- package/dist/core/utils/array/unique.ts +0 -5
- package/dist/core/utils/async/genPromise.ts +0 -8
- package/dist/core/utils/async/pLimit.ts +0 -157
- package/dist/core/utils/async/sleep.ts +0 -3
- package/dist/core/utils/async/throttle.ts +0 -14
- package/dist/core/utils/index.ts +0 -31
- package/dist/core/utils/object/changeEnumerable.ts +0 -9
- package/dist/core/utils/object/deepEqual.ts +0 -10
- package/dist/core/utils/object/objectAssign.ts +0 -16
- package/dist/core/utils/object/objectDefineProperty.ts +0 -15
- package/dist/core/utils/object/objectEntries.ts +0 -7
- package/dist/core/utils/object/objectEntriesForEach.ts +0 -7
- package/dist/core/utils/object/objectFromEntries.ts +0 -6
- package/dist/core/utils/string/addWhitespace.ts +0 -9
- package/dist/core/utils/string/capitalizeFirstLetter.ts +0 -8
- package/dist/core/utils/string/compareString.ts +0 -7
- package/dist/core/utils/string/escapeHtml.ts +0 -10
- package/dist/core/utils/string/escapeRegex.ts +0 -4
- package/dist/core/utils/string/joinEnglish.ts +0 -18
- package/dist/core/utils/string/removeEmptyLines.ts +0 -6
- package/dist/core/utils/string/stripAnsi.ts +0 -24
- package/dist/core/utils/string/trimWithAnsi.ts +0 -40
- package/dist/core/utils/string/truncateString.ts +0 -19
- package/dist/core/utils/time/humanizeTime.ts +0 -24
- package/dist/integration/hydration.ts +0 -52
- package/dist/integration/onRenderClient.tsx +0 -377
- package/dist/integration/onRenderHtml.tsx +0 -761
- package/dist/integration/ssrEffect.ts +0 -31
- package/dist/plugins/baseUrls.ts +0 -54
- package/dist/plugins/buildConfig/index.ts +0 -701
- package/dist/plugins/buildConfig/injectRollupInputs.ts +0 -36
- package/dist/plugins/commonConfig.ts +0 -112
- package/dist/plugins/config/assertResolveAlias.ts +0 -99
- package/dist/plugins/config/assertRevealConfig.ts +0 -116
- package/dist/plugins/config/fixServerAssets.ts +0 -213
- package/dist/plugins/config/index.ts +0 -227
- package/dist/plugins/config/pickFirst.ts +0 -3
- package/dist/plugins/config/resolveBase.ts +0 -78
- package/dist/plugins/devConfig/determineFsAllowList.ts +0 -34
- package/dist/plugins/devConfig/determineOptimizeDeps.ts +0 -129
- package/dist/plugins/devConfig/index.ts +0 -222
- package/dist/plugins/distFileNames.ts +0 -341
- package/dist/plugins/envVars.ts +0 -150
- package/dist/plugins/extractAssetsPlugin.ts +0 -318
- package/dist/plugins/extractExportNamesPlugin.ts +0 -154
- package/dist/plugins/fileEnv.ts +0 -374
- package/dist/plugins/importBuild/getRevealManifest.ts +0 -20
- package/dist/plugins/importBuild/index.ts +0 -120
- package/dist/plugins/importUserCode/addImportStatement.ts +0 -32
- package/dist/plugins/importUserCode/debug.ts +0 -2
- package/dist/plugins/importUserCode/getConfigFileExport.ts +0 -24
- package/dist/plugins/importUserCode/getVirtualFilePageConfigValuesAll.ts +0 -95
- package/dist/plugins/importUserCode/getVirtualFilePageConfigs.ts +0 -150
- package/dist/plugins/importUserCode/index.ts +0 -375
- package/dist/plugins/importUserCode/isRuntimeEnvMatch.ts +0 -31
- package/dist/plugins/index.ts +0 -233
- package/dist/plugins/onLoad.ts +0 -12
- package/dist/plugins/packageJsonFile.ts +0 -62
- package/dist/plugins/payload/index.ts +0 -62
- package/dist/plugins/previewConfig.ts +0 -95
- package/dist/plugins/react/index.ts +0 -72
- package/dist/plugins/removeRequireHookPlugin.ts +0 -27
- package/dist/plugins/resolveClientEntriesDev.ts +0 -87
- package/dist/plugins/reveal/index.ts +0 -39
- package/dist/plugins/reveal/remove-use-client-server.ts +0 -52
- package/dist/plugins/setGlobalContext.ts +0 -53
- package/dist/plugins/suppressRollupWarning.ts +0 -94
- package/dist/plugins/utils.ts +0 -33
- package/dist/plugins/vercel/+config.ts +0 -18
- package/dist/plugins/vercel/functions/assert.ts +0 -13
- package/dist/plugins/vercel/functions/build.ts +0 -484
- package/dist/plugins/vercel/functions/config.ts +0 -147
- package/dist/plugins/vercel/functions/helpers.ts +0 -134
- package/dist/plugins/vercel/functions/prerender.ts +0 -140
- package/dist/plugins/vercel/functions/route-regex.ts +0 -37
- package/dist/plugins/vercel/functions/utils.ts +0 -33
- package/dist/plugins/vercel/functions/vike.ts +0 -754
- package/dist/plugins/vercel/index.ts +0 -186
- package/dist/plugins/vercel/plugin.ts +0 -45
- package/dist/plugins/vercel/schemas/config/prerender-config.ts +0 -20
- package/dist/plugins/vercel/schemas/config/vc-config.ts +0 -45
- package/dist/plugins/vercel/schemas/config/vercel.ts +0 -130
- package/dist/plugins/vercel/schemas/exports.ts +0 -12
- package/dist/plugins/vercel/templates/edge-helpers.ts +0 -72
- package/dist/plugins/vercel/templates/node-helpers.ts +0 -60
- package/dist/plugins/vercel/templates/ssr_.template.ts +0 -25
- package/dist/plugins/vercel/templates/ssr_edge_.template.ts +0 -20
- package/dist/plugins/vercel/templates/utils.ts +0 -31
- package/dist/plugins/workaroundCssModuleHmr.ts +0 -23
- package/dist/types/index.ts +0 -50
- package/dist/types/interfaces/app.ts +0 -700
- package/dist/types/interfaces/client.ts +0 -10
- package/dist/types/interfaces/config.ts +0 -481
- package/dist/types/interfaces/context.ts +0 -677
- package/dist/types/interfaces/error.ts +0 -6
- package/dist/types/interfaces/file.ts +0 -98
- package/dist/types/interfaces/host.ts +0 -209
- package/dist/types/interfaces/log.ts +0 -3
- package/dist/types/interfaces/logic.ts +0 -46
- package/dist/types/interfaces/manifest.ts +0 -15
- package/dist/types/interfaces/node.ts +0 -8
- package/dist/types/interfaces/page.ts +0 -154
- package/dist/types/interfaces/reveal.ts +0 -118
- package/dist/types/interfaces/tag.ts +0 -3
- package/dist/types/modules/assets.d.ts +0 -57
- package/dist/types/modules/env.d.ts +0 -34
- package/dist/types/modules/global.d.ts +0 -10
- package/dist/types/modules/index.d.ts +0 -1
- package/dist/types/modules/node.d.ts +0 -2
- package/dist/types/modules/payload.d.ts +0 -2
- package/dist/types/modules/reveal-vercel.d.ts +0 -19
- package/dist/types/modules/reveal.d.ts +0 -1
- package/dist/types/modules/stripe.d.ts +0 -41
- package/dist/types/modules/supabase.d.ts +0 -19
- package/dist/types/modules/tailwindcss.d.ts +0 -49
- package/dist/types/modules/vite.d.ts +0 -7
- package/dist/types/namespaces/Config.ts +0 -291
- package/dist/types/namespaces/PageContext.ts +0 -23
- package/dist/types/namespaces/RevealNamespace.ts +0 -51
- package/dist/types/namespaces/index.ts +0 -3
- package/dist/ui/accents/DiagonalGrid.tsx +0 -36
- package/dist/ui/accents/Glass.tsx +0 -33
- package/dist/ui/accents/Parallax.tsx +0 -78
- package/dist/ui/accents/Shadow.tsx +0 -28
- package/dist/ui/accents/index.tsx +0 -4
- package/dist/ui/accessibility/index.ts +0 -168
- package/dist/ui/ai/ChatGPTAssistant.tsx +0 -113
- package/dist/ui/ai/index.ts +0 -3
- package/dist/ui/animations/container.ts +0 -7
- package/dist/ui/animations/content.ts +0 -16
- package/dist/ui/animations/fade.ts +0 -16
- package/dist/ui/animations/index.ts +0 -6
- package/dist/ui/animations/slide.ts +0 -23
- package/dist/ui/animations/text.ts +0 -14
- package/dist/ui/animations/transition.ts +0 -1
- package/dist/ui/audio/AudioTrack.tsx +0 -26
- package/dist/ui/audio/index.tsx +0 -1
- package/dist/ui/backgrounds/Diagonal.tsx +0 -46
- package/dist/ui/backgrounds/GradientConic.tsx +0 -21
- package/dist/ui/backgrounds/GradientConicRev.tsx +0 -50
- package/dist/ui/backgrounds/GradientGlass.tsx +0 -28
- package/dist/ui/backgrounds/GradientRadial.tsx +0 -37
- package/dist/ui/backgrounds/GradientRadialLeft.tsx +0 -33
- package/dist/ui/backgrounds/GradientToBottom.tsx +0 -59
- package/dist/ui/backgrounds/GradientToTop.tsx +0 -60
- package/dist/ui/backgrounds/Solid.tsx +0 -50
- package/dist/ui/backgrounds/Straight.tsx +0 -55
- package/dist/ui/backgrounds/TopRight.tsx +0 -15
- package/dist/ui/backgrounds/Wrapper.tsx +0 -33
- package/dist/ui/backgrounds/index.tsx +0 -12
- package/dist/ui/buttons/Button.tsx +0 -54
- package/dist/ui/buttons/DisclosureButton.tsx +0 -35
- package/dist/ui/buttons/GradientButton.tsx +0 -51
- package/dist/ui/buttons/IconButton.tsx +0 -24
- package/dist/ui/buttons/LikeButton.tsx +0 -221
- package/dist/ui/buttons/MobileMenuButton.tsx +0 -63
- package/dist/ui/buttons/MusicButton.tsx +0 -53
- package/dist/ui/buttons/SignUpButton.tsx +0 -18
- package/dist/ui/buttons/index.tsx +0 -8
- package/dist/ui/cards/Card.tsx +0 -255
- package/dist/ui/cards/ProductCard.tsx +0 -291
- package/dist/ui/cards/VideoCard.tsx +0 -201
- package/dist/ui/cards/index.tsx +0 -3
- package/dist/ui/contexts/DisclosureContext.tsx +0 -44
- package/dist/ui/contexts/GlobalContext.tsx +0 -67
- package/dist/ui/contexts/MenuContext.tsx +0 -8
- package/dist/ui/contexts/PageContext.tsx +0 -28
- package/dist/ui/contexts/ThemeContext.tsx +0 -195
- package/dist/ui/controls/MusicHeader.tsx +0 -484
- package/dist/ui/controls/MusicPlayer.tsx +0 -76
- package/dist/ui/controls/MusicSidebar.tsx +0 -118
- package/dist/ui/controls/MusicSlider.tsx +0 -25
- package/dist/ui/controls/MusicUpload.tsx +0 -296
- package/dist/ui/controls/PlayPause.tsx +0 -64
- package/dist/ui/controls/PlayerContent.tsx +0 -205
- package/dist/ui/controls/SearchContent.tsx +0 -58
- package/dist/ui/controls/SearchInput.tsx +0 -118
- package/dist/ui/controls/Searchbar.tsx +0 -53
- package/dist/ui/controls/SidebarItem.tsx +0 -57
- package/dist/ui/controls/SongItem.tsx +0 -45
- package/dist/ui/controls/VideoPlayer.tsx +0 -36
- package/dist/ui/controls/index.tsx +0 -13
- package/dist/ui/dividers/Horizontal.tsx +0 -18
- package/dist/ui/dividers/Transparent.tsx +0 -7
- package/dist/ui/dividers/index.tsx +0 -2
- package/dist/ui/error/ErrorBoundary.tsx +0 -150
- package/dist/ui/error/index.tsx +0 -1
- package/dist/ui/forms/Input.tsx +0 -38
- package/dist/ui/forms/MediaItem.tsx +0 -105
- package/dist/ui/forms/index.tsx +0 -2
- package/dist/ui/game/Enemy.tsx +0 -52
- package/dist/ui/game/Fighters.tsx +0 -38
- package/dist/ui/game/GameControls.tsx +0 -37
- package/dist/ui/game/HealthBar.tsx +0 -18
- package/dist/ui/game/Player.tsx +0 -70
- package/dist/ui/game/index.tsx +0 -5
- package/dist/ui/hooks/useApiData.ts +0 -57
- package/dist/ui/hooks/useAuthModal.ts +0 -18
- package/dist/ui/hooks/useCart.ts +0 -21
- package/dist/ui/hooks/useChatGPT.ts +0 -94
- package/dist/ui/hooks/useCustomProps.ts +0 -31
- package/dist/ui/hooks/useData.ts +0 -10
- package/dist/ui/hooks/useDebounce.ts +0 -52
- package/dist/ui/hooks/useDisclosure.ts +0 -8
- package/dist/ui/hooks/useGame.ts +0 -1147
- package/dist/ui/hooks/useLayoutClasses.ts +0 -70
- package/dist/ui/hooks/useLazyLoad.ts +0 -78
- package/dist/ui/hooks/useLikeSong.ts +0 -22
- package/dist/ui/hooks/useLivePreview.ts +0 -60
- package/dist/ui/hooks/useMenu.ts +0 -6
- package/dist/ui/hooks/useOnPlay.ts +0 -23
- package/dist/ui/hooks/usePageContext.ts +0 -174
- package/dist/ui/hooks/useParallax.ts +0 -161
- package/dist/ui/hooks/usePreviewModal.ts +0 -25
- package/dist/ui/hooks/useScreenSize.ts +0 -56
- package/dist/ui/hooks/useTheme.ts +0 -6
- package/dist/ui/images/Carousel.tsx +0 -326
- package/dist/ui/images/Circle.tsx +0 -9
- package/dist/ui/images/Defs.tsx +0 -7
- package/dist/ui/images/Image.tsx +0 -127
- package/dist/ui/images/ImageGrid.tsx +0 -73
- package/dist/ui/images/Logo.tsx +0 -22
- package/dist/ui/images/Path.tsx +0 -27
- package/dist/ui/images/Pattern.tsx +0 -70
- package/dist/ui/images/PromoBanner.tsx +0 -25
- package/dist/ui/images/Rect.tsx +0 -10
- package/dist/ui/images/SVG.tsx +0 -58
- package/dist/ui/images/Stop.tsx +0 -15
- package/dist/ui/images/index.tsx +0 -12
- package/dist/ui/layouts/classNames.ts +0 -8
- package/dist/ui/layouts/container.ts +0 -20
- package/dist/ui/layouts/flex.ts +0 -13
- package/dist/ui/layouts/grid.ts +0 -11
- package/dist/ui/layouts/main.ts +0 -31
- package/dist/ui/layouts/responsive.ts +0 -28
- package/dist/ui/layouts/stack.ts +0 -24
- package/dist/ui/lists/DescriptionList.tsx +0 -41
- package/dist/ui/lists/DisclosurePanel.tsx +0 -20
- package/dist/ui/lists/JobOpeningsList.tsx +0 -54
- package/dist/ui/lists/List.tsx +0 -18
- package/dist/ui/lists/ListElements.tsx +0 -43
- package/dist/ui/lists/ListItem.tsx +0 -63
- package/dist/ui/lists/ProductList.tsx +0 -37
- package/dist/ui/lists/StatsList.tsx +0 -64
- package/dist/ui/lists/UList.tsx +0 -54
- package/dist/ui/lists/index.ts +0 -9
- package/dist/ui/navigation/DesktopMenu.tsx +0 -14
- package/dist/ui/navigation/Footer.tsx +0 -128
- package/dist/ui/navigation/Link.tsx +0 -225
- package/dist/ui/navigation/MobileMenu.tsx +0 -26
- package/dist/ui/navigation/NavigationLinks.tsx +0 -244
- package/dist/ui/navigation/NotFound.tsx +0 -12
- package/dist/ui/navigation/Route.tsx +0 -120
- package/dist/ui/navigation/Transition.tsx +0 -40
- package/dist/ui/navigation/index.tsx +0 -8
- package/dist/ui/notifications/Banner.tsx +0 -69
- package/dist/ui/notifications/Error.tsx +0 -12
- package/dist/ui/notifications/Loader.tsx +0 -14
- package/dist/ui/notifications/NoResults.tsx +0 -11
- package/dist/ui/notifications/index.tsx +0 -4
- package/dist/ui/providers/AppProvider.tsx +0 -115
- package/dist/ui/providers/DisclosureProvider.tsx +0 -21
- package/dist/ui/providers/MenuProvider.tsx +0 -40
- package/dist/ui/providers/PageContextProvider.tsx +0 -176
- package/dist/ui/providers/ThemeProvider.tsx +0 -196
- package/dist/ui/shells/App.tsx +0 -57
- package/dist/ui/shells/Container.tsx +0 -74
- package/dist/ui/shells/Disclosure.tsx +0 -72
- package/dist/ui/shells/Field.tsx +0 -21
- package/dist/ui/shells/Flex.tsx +0 -193
- package/dist/ui/shells/Grid.tsx +0 -118
- package/dist/ui/shells/Header.tsx +0 -123
- package/dist/ui/shells/Main.tsx +0 -96
- package/dist/ui/shells/Nav.tsx +0 -138
- package/dist/ui/shells/Section.tsx +0 -94
- package/dist/ui/shells/Skeleton.tsx +0 -24
- package/dist/ui/shells/index.ts +0 -11
- package/dist/ui/text/Article.tsx +0 -141
- package/dist/ui/text/Currency.tsx +0 -29
- package/dist/ui/text/Heading.tsx +0 -29
- package/dist/ui/text/Label.tsx +0 -24
- package/dist/ui/text/Motto.tsx +0 -40
- package/dist/ui/text/Paragraph.tsx +0 -20
- package/dist/ui/text/Span.tsx +0 -20
- package/dist/ui/text/TagLine.tsx +0 -20
- package/dist/ui/text/Time.tsx +0 -36
- package/dist/ui/text/WelcomeHeading.tsx +0 -40
- package/dist/ui/text/index.ts +0 -10
- package/dist/ui/video/VideoComponent.tsx +0 -23
- package/dist/ui/video/VideoDetail.tsx +0 -33
- package/dist/ui/video/VideoItem.tsx +0 -51
- package/dist/ui/video/VideoList.tsx +0 -155
- package/dist/ui/video/index.ts +0 -4
|
@@ -1,1817 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
disableClientRouting,
|
|
3
|
-
firstRenderStartPromise,
|
|
4
|
-
getRenderCount,
|
|
5
|
-
renderPageClientSide,
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
import { isClientSideRoutable } from "../../gaurds/validators/isClientSideRoutable.js"
|
|
9
|
-
import { assertHook, getHook } from "../../processing/getters/getHook.js"
|
|
10
|
-
import { setPageContextCurrent } from "../../processing/getters/getPageContextCurrent.js"
|
|
11
|
-
import {
|
|
12
|
-
getPageContextFromClientHooks,
|
|
13
|
-
getPageContextFromHooks_isHydration,
|
|
14
|
-
getPageContextFromHooks_serialized,
|
|
15
|
-
getPageContextFromServerHooks,
|
|
16
|
-
PageContextFromClientHooks,
|
|
17
|
-
setPageContextInitIsPassedToClient,
|
|
18
|
-
type PageContextFromServerHooks,
|
|
19
|
-
} from "../../processing/getters/getPageContextFromHooks.js"
|
|
20
|
-
import {
|
|
21
|
-
assertNoInfiniteAbortLoop,
|
|
22
|
-
getPageContextFromAllRewrites,
|
|
23
|
-
isAbortError,
|
|
24
|
-
logAbortErrorHandled,
|
|
25
|
-
type PageContextFromRewrite,
|
|
26
|
-
} from "../../router/abort.js"
|
|
27
|
-
import { route } from "../../router/index.js"
|
|
28
|
-
import { getRouteStringParameterList } from "../../router/resolveRouteString.js"
|
|
29
|
-
import { createPageContext } from "./createPageContext.js"
|
|
30
|
-
import {
|
|
31
|
-
executeOnRenderClientHook,
|
|
32
|
-
type PageContextBeforeRenderClient,
|
|
33
|
-
} from "./executeOnRenderClientHook.js"
|
|
34
|
-
import { pushHistory } from "./history.js"
|
|
35
|
-
import {
|
|
36
|
-
isErrorFetchingStaticAssets,
|
|
37
|
-
loadUserFilesClientSide,
|
|
38
|
-
} from "./loadUserFilesClientSide.js"
|
|
39
|
-
import { updateState } from "./onBrowserHistoryNavigation.js"
|
|
40
|
-
import {
|
|
41
|
-
addLinkPrefetchHandlers,
|
|
42
|
-
addLinkPrefetchHandlers_unwatch,
|
|
43
|
-
addLinkPrefetchHandlers_watch,
|
|
44
|
-
getPageContextPrefetched,
|
|
45
|
-
populatePageContextPrefetchCache,
|
|
46
|
-
} from "./prefetch.js"
|
|
47
|
-
import {
|
|
48
|
-
browserNativeScrollRestoration_disable,
|
|
49
|
-
setInitialRenderIsDone,
|
|
50
|
-
} from "./scrollRestoration.js"
|
|
51
|
-
import { setScrollPosition, type ScrollTarget } from "./setScrollPosition.js"
|
|
52
|
-
import {
|
|
53
|
-
executeHook,
|
|
54
|
-
genPromise,
|
|
55
|
-
getCurrentUrl,
|
|
56
|
-
hasProp,
|
|
57
|
-
isCallable,
|
|
58
|
-
isReact,
|
|
59
|
-
isSameErrorMessage,
|
|
60
|
-
objectAssign,
|
|
61
|
-
redirectHard,
|
|
62
|
-
} from "./utils.js"
|
|
63
|
-
|
|
64
|
-
import {
|
|
65
|
-
PageContext,
|
|
66
|
-
PageContextConfig,
|
|
67
|
-
PageContextPageFiles,
|
|
68
|
-
} from "../../../types/interfaces/context.js"
|
|
69
|
-
import {
|
|
70
|
-
ConfigValue,
|
|
71
|
-
PageConfigRuntime,
|
|
72
|
-
} from "../../../types/interfaces/page.js"
|
|
73
|
-
import { Head } from "../../../types/namespaces/Config.js"
|
|
74
|
-
import { assert } from "../../gaurds/assertions/assert/base.js"
|
|
75
|
-
import { assertWarning } from "../../gaurds/assertions/assertWarning/index.js"
|
|
76
|
-
import { getErrorPageId } from "../../processing/getters/getErrorPageId.js"
|
|
77
|
-
import getGlobalObject from "../../processing/getters/getGlobalObject.js"
|
|
78
|
-
import {
|
|
79
|
-
Source,
|
|
80
|
-
Sources,
|
|
81
|
-
} from "../../processing/getters/getPageFiles/getExports.js"
|
|
82
|
-
import { ConfigValueSerialized } from "../../processing/serializers/serializePage/PageConfigSerialized.js"
|
|
83
|
-
import { augmentType } from "../../processing/transformers/augmentType.js"
|
|
84
|
-
|
|
85
|
-
type PageContextExports = {
|
|
86
|
-
exports?: Record<string, unknown>
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Extend PageContextPageFiles to include config
|
|
90
|
-
interface ExtendedPageContextPageFiles extends PageContextPageFiles {
|
|
91
|
-
config: { [key: string]: unknown; Head?: NonNullable<Head>[] | undefined }
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Define ConfigValues as a record of string to ConfigValue
|
|
95
|
-
type ConfigValues = Record<string, ConfigValue>
|
|
96
|
-
|
|
97
|
-
// Define PageFile
|
|
98
|
-
// type PageFile = {
|
|
99
|
-
// filePath: string;
|
|
100
|
-
// fileExports: Record<string, unknown>;
|
|
101
|
-
// };
|
|
102
|
-
|
|
103
|
-
// Define PageConfigRuntime
|
|
104
|
-
// type PageConfigRuntime = {
|
|
105
|
-
// pageId: string;
|
|
106
|
-
// route: string;
|
|
107
|
-
// configValues: ConfigValues;
|
|
108
|
-
// configElements?: any; // Placeholder for actual config elements
|
|
109
|
-
// };
|
|
110
|
-
|
|
111
|
-
// Define PageConfigBase
|
|
112
|
-
type PageConfigBase = {
|
|
113
|
-
pageId: string
|
|
114
|
-
route: string
|
|
115
|
-
configValues?: ConfigValues
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
type PageConfig = PageConfigBase & {
|
|
119
|
-
loadConfigValuesAll: () => Promise<{ configValuesSerialized: ConfigValues }>
|
|
120
|
-
Page?: () => React.ReactNode
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
type PageContextRouted = {
|
|
124
|
-
pageId: string
|
|
125
|
-
routeParams: Record<string, string>
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// type PageContextExports = {
|
|
129
|
-
// exports: Record<string, unknown>;
|
|
130
|
-
// };
|
|
131
|
-
|
|
132
|
-
// type PageContext = {
|
|
133
|
-
// _pageFilesLoaded: PageFile[];
|
|
134
|
-
// urlOriginal?: string;
|
|
135
|
-
// urlPathname?: string;
|
|
136
|
-
// pageId: string;
|
|
137
|
-
// _pageConfigs: PageConfigRuntime[];
|
|
138
|
-
// config: PageConfig;
|
|
139
|
-
// } & PageContextExports & {
|
|
140
|
-
// from: {
|
|
141
|
-
// configsStandard: {
|
|
142
|
-
// keepScrollPosition: {
|
|
143
|
-
// value: any;
|
|
144
|
-
// definedAt: string;
|
|
145
|
-
// } | null;
|
|
146
|
-
// };
|
|
147
|
-
// };
|
|
148
|
-
// configValues?: ConfigValues;
|
|
149
|
-
// routeParams: Record<string, string>;
|
|
150
|
-
// hydrationCanBeAborted?: boolean;
|
|
151
|
-
// _pageFilesAll?: PageFile[];
|
|
152
|
-
// _hasPageContextFromServer?: boolean;
|
|
153
|
-
// errorWhileRendering?: unknown;
|
|
154
|
-
// is404?: boolean;
|
|
155
|
-
// isBackwardNavigation?: boolean | null;
|
|
156
|
-
// isClientSideNavigation?: boolean;
|
|
157
|
-
// isHydration?: boolean;
|
|
158
|
-
// _previousPageContext?: PreviousPageContext;
|
|
159
|
-
// } & PageContextRouted;
|
|
160
|
-
|
|
161
|
-
const globalObject = getGlobalObject<{
|
|
162
|
-
clientRoutingIsDisabled?: true
|
|
163
|
-
renderCounter: number
|
|
164
|
-
onRenderClientPromise?: Promise<unknown>
|
|
165
|
-
isFirstRenderDone?: true
|
|
166
|
-
isTransitioning?: true
|
|
167
|
-
previousPageContext?: PreviousPageContext
|
|
168
|
-
firstRenderStartPromise: Promise<void>
|
|
169
|
-
firstRenderStartPromiseResolve: () => void
|
|
170
|
-
}>(
|
|
171
|
-
"renderPageClientSide.ts",
|
|
172
|
-
(() => {
|
|
173
|
-
const {
|
|
174
|
-
promise: firstRenderStartPromise,
|
|
175
|
-
resolve: firstRenderStartPromiseResolve,
|
|
176
|
-
} = genPromise()
|
|
177
|
-
return {
|
|
178
|
-
renderCounter: 0,
|
|
179
|
-
firstRenderStartPromise,
|
|
180
|
-
firstRenderStartPromiseResolve,
|
|
181
|
-
}
|
|
182
|
-
})()
|
|
183
|
-
)
|
|
184
|
-
const { firstRenderStartPromise } = globalObject
|
|
185
|
-
|
|
186
|
-
type SourceConfigsStandard = {
|
|
187
|
-
type: "configsStandard"
|
|
188
|
-
value: unknown
|
|
189
|
-
definedAt: string
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
type SourceConfigsCumulative = {
|
|
193
|
-
type: "configsCumulative"
|
|
194
|
-
values: {
|
|
195
|
-
value: unknown
|
|
196
|
-
definedAt: string
|
|
197
|
-
}[]
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
type SourceConfigsComputed = {
|
|
201
|
-
type: "configsComputed"
|
|
202
|
-
value: unknown
|
|
203
|
-
definedAt: string
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
type From = {
|
|
207
|
-
configsStandard: Omit<
|
|
208
|
-
Record<string, SourceConfigsStandard>,
|
|
209
|
-
"keepScrollPosition"
|
|
210
|
-
> & {
|
|
211
|
-
keepScrollPosition: SourceConfigsStandard
|
|
212
|
-
}
|
|
213
|
-
configsCumulative: Record<string, SourceConfigsCumulative>
|
|
214
|
-
configsComputed: Record<string, SourceConfigsComputed>
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
type PreviousPageContext = { pageId: string } & PageContextExports &
|
|
218
|
-
PageContextRouted & {
|
|
219
|
-
source: Source
|
|
220
|
-
sources: Sources
|
|
221
|
-
from: From
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
type RenderArgs = {
|
|
225
|
-
scrollTarget: ScrollTarget
|
|
226
|
-
isBackwardNavigation: boolean | null
|
|
227
|
-
urlOriginal?: string
|
|
228
|
-
overwriteLastHistoryEntry?: boolean
|
|
229
|
-
pageContextsFromRewrite?: PageContextFromRewrite[]
|
|
230
|
-
redirectCount?: number
|
|
231
|
-
/** Whether the navigation was triggered by the user land calling history.pushState() */
|
|
232
|
-
isUserLandPushStateNavigation?: boolean
|
|
233
|
-
isClientSideNavigation?: boolean
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
async function renderPageClientSide(renderArgs: RenderArgs): Promise<void> {
|
|
237
|
-
const {
|
|
238
|
-
urlOriginal = getCurrentUrl(),
|
|
239
|
-
overwriteLastHistoryEntry = false,
|
|
240
|
-
isBackwardNavigation,
|
|
241
|
-
pageContextsFromRewrite = [],
|
|
242
|
-
redirectCount = 0,
|
|
243
|
-
isUserLandPushStateNavigation,
|
|
244
|
-
isClientSideNavigation = true,
|
|
245
|
-
} = renderArgs
|
|
246
|
-
let { scrollTarget } = renderArgs
|
|
247
|
-
const { previousPageContext } = globalObject
|
|
248
|
-
|
|
249
|
-
addLinkPrefetchHandlers_unwatch()
|
|
250
|
-
|
|
251
|
-
const { isRenderOutdated, setHydrationCanBeAborted, isFirstRender } =
|
|
252
|
-
getIsRenderOutdated()
|
|
253
|
-
assertNoInfiniteAbortLoop(pageContextsFromRewrite.length, redirectCount)
|
|
254
|
-
|
|
255
|
-
if (globalObject.clientRoutingIsDisabled) {
|
|
256
|
-
redirectHard(urlOriginal)
|
|
257
|
-
return
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
globalObject.firstRenderStartPromiseResolve()
|
|
261
|
-
if (isRenderOutdated()) return
|
|
262
|
-
|
|
263
|
-
await renderPageNominal()
|
|
264
|
-
|
|
265
|
-
return
|
|
266
|
-
|
|
267
|
-
async function renderPageNominal() {
|
|
268
|
-
const onError = async (err: unknown) => {
|
|
269
|
-
await renderErrorPage({ err })
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
const pageContext = await getPageContextBegin(false)
|
|
273
|
-
if (isRenderOutdated()) return
|
|
274
|
-
|
|
275
|
-
// onPageTransitionStart()
|
|
276
|
-
if (globalObject.isFirstRenderDone) {
|
|
277
|
-
assert(previousPageContext)
|
|
278
|
-
// We use the hook of the previous page in order to be able to call onPageTransitionStart() before fetching the files of the next page.
|
|
279
|
-
// https://github.com/revealjs/reveal/issues/1560
|
|
280
|
-
assertHook(previousPageContext, "onPageTransitionStart")
|
|
281
|
-
if (!globalObject.isTransitioning) {
|
|
282
|
-
globalObject.isTransitioning = true
|
|
283
|
-
const onPageTransitionStartHook = getHook(
|
|
284
|
-
previousPageContext,
|
|
285
|
-
"onPageTransitionStart"
|
|
286
|
-
)
|
|
287
|
-
if (onPageTransitionStartHook) {
|
|
288
|
-
const hook = onPageTransitionStartHook
|
|
289
|
-
const { hookFn } = hook
|
|
290
|
-
try {
|
|
291
|
-
await executeHook(() => hookFn(pageContext), hook, pageContext)
|
|
292
|
-
} catch (err) {
|
|
293
|
-
await onError(err)
|
|
294
|
-
return
|
|
295
|
-
}
|
|
296
|
-
if (isRenderOutdated()) return
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// Route
|
|
302
|
-
if (isFirstRender) {
|
|
303
|
-
const pageContextSerialized = getPageContextFromHooks_serialized()
|
|
304
|
-
assert(!("urlOriginal" in pageContextSerialized))
|
|
305
|
-
objectAssign(pageContext, pageContextSerialized)
|
|
306
|
-
|
|
307
|
-
// Populate prefetch cache
|
|
308
|
-
populatePageContextPrefetchCache(
|
|
309
|
-
{
|
|
310
|
-
...pageContext,
|
|
311
|
-
config: {
|
|
312
|
-
pageId: pageContext.pageId,
|
|
313
|
-
configValues: (pageContext.config as PageConfig).configValues ?? {},
|
|
314
|
-
loadConfigValuesAll: async () => {
|
|
315
|
-
const result = await (
|
|
316
|
-
pageContext.config as PageConfig
|
|
317
|
-
).loadConfigValuesAll()
|
|
318
|
-
return {
|
|
319
|
-
configValuesSerialized:
|
|
320
|
-
result.configValuesSerialized as unknown as Record<
|
|
321
|
-
string,
|
|
322
|
-
ConfigValueSerialized
|
|
323
|
-
>,
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
Page: {
|
|
327
|
-
getInitialProps: async () => ({
|
|
328
|
-
pageProps: {
|
|
329
|
-
pageId: pageContext.pageId,
|
|
330
|
-
routeParams: getRouteStringParameterList(pageContext.pageId),
|
|
331
|
-
},
|
|
332
|
-
}),
|
|
333
|
-
},
|
|
334
|
-
},
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
pageContextFromServerHooks: pageContextSerialized,
|
|
338
|
-
}
|
|
339
|
-
)
|
|
340
|
-
} else {
|
|
341
|
-
let pageContextFromRoute: Awaited<ReturnType<typeof route>>
|
|
342
|
-
try {
|
|
343
|
-
pageContextFromRoute = await route(pageContext)
|
|
344
|
-
} catch (err) {
|
|
345
|
-
await onError(err)
|
|
346
|
-
return
|
|
347
|
-
}
|
|
348
|
-
if (isRenderOutdated()) return
|
|
349
|
-
|
|
350
|
-
if (!pageContextFromRoute.pageId) {
|
|
351
|
-
redirectHard(urlOriginal)
|
|
352
|
-
return
|
|
353
|
-
}
|
|
354
|
-
assert(hasProp(pageContextFromRoute, "pageId", "string")) // Help TS
|
|
355
|
-
|
|
356
|
-
const isClientRoutable = await isClientSideRoutable(
|
|
357
|
-
pageContextFromRoute.pageId,
|
|
358
|
-
{
|
|
359
|
-
...pageContext,
|
|
360
|
-
config: {
|
|
361
|
-
...(typeof pageContext.config === "object" &&
|
|
362
|
-
pageContext.config !== null
|
|
363
|
-
? pageContext.config
|
|
364
|
-
: {}),
|
|
365
|
-
Page: undefined,
|
|
366
|
-
} as Partial<PageConfig>,
|
|
367
|
-
}
|
|
368
|
-
)
|
|
369
|
-
if (isRenderOutdated()) return
|
|
370
|
-
if (!isClientRoutable) {
|
|
371
|
-
redirectHard(urlOriginal)
|
|
372
|
-
return
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
const isSamePage =
|
|
376
|
-
pageContextFromRoute.pageId &&
|
|
377
|
-
previousPageContext?.pageId &&
|
|
378
|
-
pageContextFromRoute.pageId === previousPageContext.pageId
|
|
379
|
-
if (isUserLandPushStateNavigation && isSamePage) {
|
|
380
|
-
// Skip rendering; let the user handle the navigation
|
|
381
|
-
return
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
objectAssign(pageContext, pageContextFromRoute)
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
try {
|
|
388
|
-
objectAssign(
|
|
389
|
-
{
|
|
390
|
-
...pageContext,
|
|
391
|
-
config: {
|
|
392
|
-
...(typeof pageContext.config === "object" &&
|
|
393
|
-
pageContext.config !== null
|
|
394
|
-
? pageContext.config
|
|
395
|
-
: {}),
|
|
396
|
-
Page: undefined,
|
|
397
|
-
} as Partial<PageConfig>,
|
|
398
|
-
},
|
|
399
|
-
await loadUserFilesClientSide(
|
|
400
|
-
pageContext.pageId,
|
|
401
|
-
pageContext._pageFilesAll || [],
|
|
402
|
-
pageContext._pageConfigs || []
|
|
403
|
-
)
|
|
404
|
-
)
|
|
405
|
-
} catch (err) {
|
|
406
|
-
if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
|
|
407
|
-
return
|
|
408
|
-
} else {
|
|
409
|
-
// A user file has a syntax error
|
|
410
|
-
await onError(err)
|
|
411
|
-
return
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
if (isRenderOutdated()) return
|
|
415
|
-
// Ensure that pageContext has the 'config' property
|
|
416
|
-
augmentType(pageContext as unknown as PageContext, {
|
|
417
|
-
config: pageContext.config as PageContextConfig,
|
|
418
|
-
})
|
|
419
|
-
setPageContextCurrent({
|
|
420
|
-
...pageContext,
|
|
421
|
-
source: pageContext.source as Source,
|
|
422
|
-
sources: pageContext.sources as Sources,
|
|
423
|
-
from: pageContext.from as From,
|
|
424
|
-
})
|
|
425
|
-
|
|
426
|
-
// Set global hydrationCanBeAborted
|
|
427
|
-
if (pageContext.hydrationCanBeAborted) {
|
|
428
|
-
setHydrationCanBeAborted()
|
|
429
|
-
} else {
|
|
430
|
-
assertWarning(
|
|
431
|
-
!isReact(),
|
|
432
|
-
"You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://reveal.dev/hydrationCanBeAborted",
|
|
433
|
-
{ onlyOnce: true }
|
|
434
|
-
)
|
|
435
|
-
}
|
|
436
|
-
if (isRenderOutdated()) return
|
|
437
|
-
|
|
438
|
-
// Get pageContext from hooks (fetched from server, and/or directly called on the client-side)
|
|
439
|
-
if (isFirstRender) {
|
|
440
|
-
assert(hasProp(pageContext, "_hasPageContextFromServer", "true"))
|
|
441
|
-
let pageContextAugmented: Awaited<
|
|
442
|
-
ReturnType<typeof getPageContextFromHooks_isHydration>
|
|
443
|
-
>
|
|
444
|
-
try {
|
|
445
|
-
pageContextAugmented = await getPageContextFromHooks_isHydration(
|
|
446
|
-
pageContext as any
|
|
447
|
-
)
|
|
448
|
-
} catch (err) {
|
|
449
|
-
await onError(err)
|
|
450
|
-
return
|
|
451
|
-
}
|
|
452
|
-
if (isRenderOutdated()) return
|
|
453
|
-
augmentType(
|
|
454
|
-
pageContext as unknown as PageContext,
|
|
455
|
-
pageContextAugmented as unknown as Partial<PageContext>
|
|
456
|
-
)
|
|
457
|
-
|
|
458
|
-
// Render page view
|
|
459
|
-
await renderPageView(pageContext as any)
|
|
460
|
-
} else {
|
|
461
|
-
// Fetch pageContext from server-side hooks
|
|
462
|
-
let pageContextFromServerHooks: PageContextFromServerHooks
|
|
463
|
-
const pageContextPrefetched = getPageContextPrefetched({
|
|
464
|
-
...pageContext,
|
|
465
|
-
urlPathname: pageContext.urlPathname || "",
|
|
466
|
-
source: pageContext.source as Source,
|
|
467
|
-
sources: pageContext.sources as Sources,
|
|
468
|
-
from: pageContext.from as From,
|
|
469
|
-
})
|
|
470
|
-
if (pageContextPrefetched) {
|
|
471
|
-
pageContextFromServerHooks = pageContextPrefetched
|
|
472
|
-
} else {
|
|
473
|
-
try {
|
|
474
|
-
const result = await getPageContextFromServerHooks(
|
|
475
|
-
pageContext as any,
|
|
476
|
-
false
|
|
477
|
-
)
|
|
478
|
-
if (result.is404ServerSideRouted) return
|
|
479
|
-
pageContextFromServerHooks = result.pageContextFromServerHooks
|
|
480
|
-
populatePageContextPrefetchCache(pageContext as any, result)
|
|
481
|
-
} catch (err) {
|
|
482
|
-
await onError(err)
|
|
483
|
-
return
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
if (isRenderOutdated()) return
|
|
487
|
-
objectAssign(pageContext, pageContextFromServerHooks)
|
|
488
|
-
|
|
489
|
-
// Get pageContext from client-side hooks
|
|
490
|
-
let pageContextFromClientHooks: PageContextFromClientHooks
|
|
491
|
-
try {
|
|
492
|
-
pageContextFromClientHooks = await getPageContextFromClientHooks(
|
|
493
|
-
{
|
|
494
|
-
...pageContext,
|
|
495
|
-
source: pageContext.source as Source,
|
|
496
|
-
sources: pageContext.sources as Sources,
|
|
497
|
-
from: pageContext.from as From,
|
|
498
|
-
config: {
|
|
499
|
-
pageId: pageContext.pageId,
|
|
500
|
-
configValues: (pageContext.config as PageConfig).configValues ?? {},
|
|
501
|
-
loadConfigValuesAll: async () => ({
|
|
502
|
-
configValuesSerialized: {},
|
|
503
|
-
}),
|
|
504
|
-
Page: {} as Record<string, unknown>,
|
|
505
|
-
} as PageConfigRuntime & { Page: Record<string, unknown> },
|
|
506
|
-
},
|
|
507
|
-
false
|
|
508
|
-
)
|
|
509
|
-
} catch (err) {
|
|
510
|
-
await onError(err)
|
|
511
|
-
return
|
|
512
|
-
}
|
|
513
|
-
if (isRenderOutdated()) return
|
|
514
|
-
augmentType(
|
|
515
|
-
pageContext as unknown as PageContext,
|
|
516
|
-
pageContextFromClientHooks as unknown as Partial<PageContext>
|
|
517
|
-
)
|
|
518
|
-
|
|
519
|
-
await renderPageView(pageContext as any)
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
|
-
|
|
523
|
-
async function getPageContextBegin(isForErrorPage: boolean) {
|
|
524
|
-
const pageContext = await createPageContext(urlOriginal)
|
|
525
|
-
objectAssign(pageContext, {
|
|
526
|
-
isBackwardNavigation,
|
|
527
|
-
isClientSideNavigation,
|
|
528
|
-
isHydration: isFirstRender && !isForErrorPage,
|
|
529
|
-
_previousPageContext: previousPageContext,
|
|
530
|
-
})
|
|
531
|
-
{
|
|
532
|
-
const pageContextFromAllRewrites = getPageContextFromAllRewrites(
|
|
533
|
-
pageContextsFromRewrite
|
|
534
|
-
)
|
|
535
|
-
assert(!("urlOriginal" in pageContextFromAllRewrites))
|
|
536
|
-
objectAssign(pageContext, pageContextFromAllRewrites)
|
|
537
|
-
}
|
|
538
|
-
return pageContext
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
async function renderErrorPage(args: {
|
|
542
|
-
err?: unknown
|
|
543
|
-
pageContextError?: Record<string, unknown>
|
|
544
|
-
is404?: boolean
|
|
545
|
-
}) {
|
|
546
|
-
const onError = (err: unknown) => {
|
|
547
|
-
if (!isSameErrorMessage(err, args.err)) {
|
|
548
|
-
console.error(err)
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
if ("err" in args) {
|
|
553
|
-
const { err } = args
|
|
554
|
-
assert(err)
|
|
555
|
-
|
|
556
|
-
if (!isAbortError(err)) {
|
|
557
|
-
console.error(err)
|
|
558
|
-
} else {
|
|
559
|
-
// We swallow throw redirect()/render() called by client-side hooks onBeforeRender()/data()/guard()
|
|
560
|
-
// We handle the abort error down below.
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
const pageContext = await getPageContextBegin(true)
|
|
565
|
-
if (isRenderOutdated()) return
|
|
566
|
-
|
|
567
|
-
if (args.is404) objectAssign(pageContext, { is404: true })
|
|
568
|
-
if (args.pageContextError) objectAssign(pageContext, args.pageContextError)
|
|
569
|
-
|
|
570
|
-
if ("err" in args) {
|
|
571
|
-
const { err } = args
|
|
572
|
-
assert(!("errorWhileRendering" in pageContext))
|
|
573
|
-
pageContext.errorWhileRendering = err
|
|
574
|
-
|
|
575
|
-
if (isAbortError(err)) {
|
|
576
|
-
const errAbort = err
|
|
577
|
-
logAbortErrorHandled(err, !import.meta.env.DEV, pageContext)
|
|
578
|
-
const pageContextAbort = errAbort._pageContextAbort
|
|
579
|
-
|
|
580
|
-
// throw render('/some-url')
|
|
581
|
-
if (pageContextAbort._urlRewrite) {
|
|
582
|
-
await renderPageClientSide({
|
|
583
|
-
...renderArgs,
|
|
584
|
-
scrollTarget: undefined,
|
|
585
|
-
pageContextsFromRewrite: [
|
|
586
|
-
...pageContextsFromRewrite,
|
|
587
|
-
pageContextAbort,
|
|
588
|
-
],
|
|
589
|
-
})
|
|
590
|
-
return
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
// throw redirect('/some-url')
|
|
594
|
-
if (pageContextAbort._urlRedirect) {
|
|
595
|
-
const urlRedirect = pageContextAbort._urlRedirect.url
|
|
596
|
-
if (!urlRedirect.startsWith("/")) {
|
|
597
|
-
// External redirection
|
|
598
|
-
redirectHard(urlRedirect)
|
|
599
|
-
return
|
|
600
|
-
} else {
|
|
601
|
-
await renderPageClientSide({
|
|
602
|
-
...renderArgs,
|
|
603
|
-
scrollTarget: undefined,
|
|
604
|
-
urlOriginal: urlRedirect,
|
|
605
|
-
overwriteLastHistoryEntry: false,
|
|
606
|
-
isBackwardNavigation: false,
|
|
607
|
-
redirectCount: redirectCount + 1,
|
|
608
|
-
})
|
|
609
|
-
}
|
|
610
|
-
return
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
// throw render(statusCode)
|
|
614
|
-
assert(pageContextAbort.abortStatusCode)
|
|
615
|
-
assert(!("urlOriginal" in pageContextAbort))
|
|
616
|
-
objectAssign(pageContext, pageContextAbort)
|
|
617
|
-
if (pageContextAbort.abortStatusCode === 404) {
|
|
618
|
-
objectAssign(pageContext, { is404: true })
|
|
619
|
-
}
|
|
620
|
-
} else {
|
|
621
|
-
objectAssign(pageContext, { is404: false })
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
const errorPageId = getErrorPageId(
|
|
626
|
-
pageContext._pageFilesAll || [],
|
|
627
|
-
pageContext._pageConfigs || []
|
|
628
|
-
)
|
|
629
|
-
if (!errorPageId) throw new Error("No error page defined.")
|
|
630
|
-
objectAssign(pageContext, {
|
|
631
|
-
pageId: errorPageId,
|
|
632
|
-
})
|
|
633
|
-
|
|
634
|
-
const isClientRoutable = await isClientSideRoutable(pageContext.pageId, {
|
|
635
|
-
...pageContext,
|
|
636
|
-
config: {
|
|
637
|
-
...(typeof pageContext.config === "object" &&
|
|
638
|
-
pageContext.config !== null
|
|
639
|
-
? pageContext.config
|
|
640
|
-
: {}),
|
|
641
|
-
Page: {} as Record<string, unknown>,
|
|
642
|
-
} as PageContextPageFiles["config"],
|
|
643
|
-
})
|
|
644
|
-
if (isRenderOutdated()) return
|
|
645
|
-
if (!isClientRoutable) {
|
|
646
|
-
redirectHard(urlOriginal)
|
|
647
|
-
return
|
|
648
|
-
}
|
|
649
|
-
|
|
650
|
-
try {
|
|
651
|
-
objectAssign(
|
|
652
|
-
pageContext,
|
|
653
|
-
await loadUserFilesClientSide(
|
|
654
|
-
pageContext.pageId,
|
|
655
|
-
pageContext._pageFilesAll || [],
|
|
656
|
-
pageContext._pageConfigs || []
|
|
657
|
-
)
|
|
658
|
-
)
|
|
659
|
-
} catch (err) {
|
|
660
|
-
if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
|
|
661
|
-
return
|
|
662
|
-
} else {
|
|
663
|
-
// A user file has a syntax error
|
|
664
|
-
onError(err)
|
|
665
|
-
return
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
if (isRenderOutdated()) return
|
|
669
|
-
setPageContextCurrent(pageContext)
|
|
670
|
-
|
|
671
|
-
let pageContextFromServerHooks: PageContextFromServerHooks
|
|
672
|
-
try {
|
|
673
|
-
const result = await getPageContextFromServerHooks(
|
|
674
|
-
pageContext as any,
|
|
675
|
-
true
|
|
676
|
-
)
|
|
677
|
-
if (result.is404ServerSideRouted) return
|
|
678
|
-
pageContextFromServerHooks = result.pageContextFromServerHooks
|
|
679
|
-
} catch (err: unknown) {
|
|
680
|
-
onError(err)
|
|
681
|
-
return
|
|
682
|
-
}
|
|
683
|
-
if (isRenderOutdated()) return
|
|
684
|
-
objectAssign(pageContext, pageContextFromServerHooks)
|
|
685
|
-
|
|
686
|
-
let pageContextFromClientHooks: PageContextFromClientHooks
|
|
687
|
-
try {
|
|
688
|
-
pageContextFromClientHooks = await getPageContextFromClientHooks(
|
|
689
|
-
pageContext as any,
|
|
690
|
-
true
|
|
691
|
-
)
|
|
692
|
-
} catch (err: unknown) {
|
|
693
|
-
onError(err)
|
|
694
|
-
return
|
|
695
|
-
}
|
|
696
|
-
if (isRenderOutdated()) return
|
|
697
|
-
augmentType(
|
|
698
|
-
pageContext as unknown as PageContext,
|
|
699
|
-
pageContextFromClientHooks as unknown as Partial<PageContext>
|
|
700
|
-
)
|
|
701
|
-
|
|
702
|
-
objectAssign(pageContext, { routeParams: {} })
|
|
703
|
-
|
|
704
|
-
await renderPageView(pageContext as any, args)
|
|
705
|
-
}
|
|
706
|
-
|
|
707
|
-
async function renderPageView(
|
|
708
|
-
pageContext: PageContextBeforeRenderClient & {
|
|
709
|
-
urlPathname: string
|
|
710
|
-
} & PageContextRouted,
|
|
711
|
-
isErrorPage?: { err?: unknown }
|
|
712
|
-
) {
|
|
713
|
-
const onError = async (err: unknown) => {
|
|
714
|
-
if (!isErrorPage) {
|
|
715
|
-
await renderErrorPage({ err })
|
|
716
|
-
} else {
|
|
717
|
-
if (!isSameErrorMessage(err, isErrorPage.err)) {
|
|
718
|
-
console.error(err)
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
// We use globalObject.onRenderClientPromise to ensure that there is never two concurrent onRenderClient() calls
|
|
724
|
-
if (globalObject.onRenderClientPromise) {
|
|
725
|
-
// Make sure that the previous render has finished
|
|
726
|
-
await globalObject.onRenderClientPromise
|
|
727
|
-
assert(globalObject.onRenderClientPromise === undefined)
|
|
728
|
-
if (isRenderOutdated()) return
|
|
729
|
-
}
|
|
730
|
-
changeUrl(urlOriginal, overwriteLastHistoryEntry)
|
|
731
|
-
globalObject.previousPageContext = {
|
|
732
|
-
pageId: pageContext.pageId,
|
|
733
|
-
...((pageContext as PageContextExports).exports || {}),
|
|
734
|
-
routeParams: pageContext.routeParams,
|
|
735
|
-
source: pageContext.source,
|
|
736
|
-
sources: pageContext.sources,
|
|
737
|
-
from: {
|
|
738
|
-
configsStandard: {
|
|
739
|
-
keepScrollPosition: pageContext.from.configsStandard
|
|
740
|
-
.keepScrollPosition ?? {
|
|
741
|
-
type: "configsStandard",
|
|
742
|
-
value: null,
|
|
743
|
-
definedAt: "",
|
|
744
|
-
},
|
|
745
|
-
},
|
|
746
|
-
configsCumulative: {},
|
|
747
|
-
configsComputed: {},
|
|
748
|
-
},
|
|
749
|
-
}
|
|
750
|
-
assert(globalObject.onRenderClientPromise === undefined)
|
|
751
|
-
globalObject.onRenderClientPromise = (async () => {
|
|
752
|
-
let onRenderClientError: unknown
|
|
753
|
-
try {
|
|
754
|
-
await executeOnRenderClientHook(pageContext, true)
|
|
755
|
-
} catch (err) {
|
|
756
|
-
onRenderClientError = err
|
|
757
|
-
}
|
|
758
|
-
globalObject.onRenderClientPromise = undefined
|
|
759
|
-
globalObject.isFirstRenderDone = true
|
|
760
|
-
return onRenderClientError
|
|
761
|
-
})()
|
|
762
|
-
const onRenderClientError = await globalObject.onRenderClientPromise
|
|
763
|
-
assert(globalObject.onRenderClientPromise === undefined)
|
|
764
|
-
if (onRenderClientError) {
|
|
765
|
-
await onError(onRenderClientError)
|
|
766
|
-
if (!isErrorPage) return
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
// onHydrationEnd()
|
|
770
|
-
if (isFirstRender && !onRenderClientError) {
|
|
771
|
-
assertHook(pageContext, "onHydrationEnd")
|
|
772
|
-
const hook = getHook(pageContext, "onHydrationEnd")
|
|
773
|
-
if (hook) {
|
|
774
|
-
const { hookFn } = hook
|
|
775
|
-
try {
|
|
776
|
-
await executeHook(() => hookFn(pageContext), hook, pageContext)
|
|
777
|
-
} catch (err) {
|
|
778
|
-
await onError(err)
|
|
779
|
-
if (!isErrorPage) return
|
|
780
|
-
}
|
|
781
|
-
if (isRenderOutdated(true)) return
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
// We purposely abort *after* onHydrationEnd() is called (see comment above).
|
|
786
|
-
if (isRenderOutdated(true)) return
|
|
787
|
-
|
|
788
|
-
// onPageTransitionEnd()
|
|
789
|
-
if (globalObject.isTransitioning) {
|
|
790
|
-
globalObject.isTransitioning = undefined
|
|
791
|
-
assert(previousPageContext)
|
|
792
|
-
assertHook(previousPageContext, "onPageTransitionEnd")
|
|
793
|
-
const hook = getHook(previousPageContext, "onPageTransitionEnd")
|
|
794
|
-
if (hook) {
|
|
795
|
-
const { hookFn } = hook
|
|
796
|
-
try {
|
|
797
|
-
await executeHook(() => hookFn(pageContext), hook, pageContext)
|
|
798
|
-
} catch (err) {
|
|
799
|
-
await onError(err)
|
|
800
|
-
if (!isErrorPage) return
|
|
801
|
-
}
|
|
802
|
-
if (isRenderOutdated(true)) return
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
if (!scrollTarget && previousPageContext) {
|
|
807
|
-
const keepScrollPositionPrev = getKeepScrollPositionSetting({
|
|
808
|
-
...previousPageContext,
|
|
809
|
-
from: {
|
|
810
|
-
configsStandard: {
|
|
811
|
-
keepScrollPosition: previousPageContext.from?.configsStandard
|
|
812
|
-
?.keepScrollPosition ?? {
|
|
813
|
-
type: "configsStandard",
|
|
814
|
-
value: null,
|
|
815
|
-
definedAt: "",
|
|
816
|
-
},
|
|
817
|
-
},
|
|
818
|
-
},
|
|
819
|
-
})
|
|
820
|
-
const keepScrollPositionNext = getKeepScrollPositionSetting({
|
|
821
|
-
...pageContext,
|
|
822
|
-
from: {
|
|
823
|
-
configsStandard: {
|
|
824
|
-
keepScrollPosition: pageContext.from?.configsStandard
|
|
825
|
-
?.keepScrollPosition ?? { value: null, definedAt: "" },
|
|
826
|
-
},
|
|
827
|
-
},
|
|
828
|
-
})
|
|
829
|
-
if (
|
|
830
|
-
keepScrollPositionNext !== false &&
|
|
831
|
-
keepScrollPositionPrev !== false &&
|
|
832
|
-
areKeysEqual(keepScrollPositionNext, keepScrollPositionPrev)
|
|
833
|
-
) {
|
|
834
|
-
scrollTarget = { preserveScroll: true }
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
// Page scrolling
|
|
839
|
-
setScrollPosition(scrollTarget)
|
|
840
|
-
browserNativeScrollRestoration_disable()
|
|
841
|
-
setInitialRenderIsDone()
|
|
842
|
-
if (pageContext._hasPageContextFromServer)
|
|
843
|
-
setPageContextInitIsPassedToClient(pageContext)
|
|
844
|
-
|
|
845
|
-
// Add link prefetch handlers
|
|
846
|
-
addLinkPrefetchHandlers_watch()
|
|
847
|
-
addLinkPrefetchHandlers()
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
function changeUrl(url: string, overwriteLastHistoryEntry: boolean) {
|
|
852
|
-
if (getCurrentUrl() === url) return
|
|
853
|
-
browserNativeScrollRestoration_disable()
|
|
854
|
-
pushHistory(url, overwriteLastHistoryEntry)
|
|
855
|
-
updateState()
|
|
856
|
-
}
|
|
857
|
-
|
|
858
|
-
function handleErrorFetchingStaticAssets(
|
|
859
|
-
err: unknown,
|
|
860
|
-
pageContext: { urlOriginal: string },
|
|
861
|
-
isFirstRender: boolean
|
|
862
|
-
): boolean {
|
|
863
|
-
if (!isErrorFetchingStaticAssets(err)) {
|
|
864
|
-
return false
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
if (isFirstRender) {
|
|
868
|
-
disableClientRouting(err, false)
|
|
869
|
-
// This may happen if the frontend was newly deployed during hydration.
|
|
870
|
-
// Ideally: re-try a couple of times by reloading the page (not entirely trivial to implement since localStorage is needed.)
|
|
871
|
-
throw err
|
|
872
|
-
} else {
|
|
873
|
-
disableClientRouting(err, true)
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
redirectHard(pageContext.urlOriginal)
|
|
877
|
-
|
|
878
|
-
return true
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
function disableClientRouting(err: unknown, log: boolean) {
|
|
882
|
-
assert(isErrorFetchingStaticAssets(err))
|
|
883
|
-
|
|
884
|
-
globalObject.clientRoutingIsDisabled = true
|
|
885
|
-
|
|
886
|
-
if (log) {
|
|
887
|
-
// We don't use console.error() to avoid flooding error trackers such as Sentry
|
|
888
|
-
console.log(err)
|
|
889
|
-
}
|
|
890
|
-
// @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
891
|
-
const isProd: boolean = import.meta.env.PROD
|
|
892
|
-
assertWarning(
|
|
893
|
-
false,
|
|
894
|
-
[
|
|
895
|
-
"Failed to fetch static asset.",
|
|
896
|
-
isProd ? "This usually happens when a new frontend is deployed." : null,
|
|
897
|
-
"Falling back to Server Routing.",
|
|
898
|
-
"(The next page navigation will use Server Routing instead of Client Routing.)",
|
|
899
|
-
]
|
|
900
|
-
.filter(Boolean)
|
|
901
|
-
.join(" "),
|
|
902
|
-
{ onlyOnce: true }
|
|
903
|
-
)
|
|
904
|
-
}
|
|
905
|
-
|
|
906
|
-
function getIsRenderOutdated() {
|
|
907
|
-
const renderNumber = ++globalObject.renderCounter
|
|
908
|
-
assert(renderNumber >= 1)
|
|
909
|
-
|
|
910
|
-
let hydrationCanBeAborted = false
|
|
911
|
-
const setHydrationCanBeAborted = () => {
|
|
912
|
-
hydrationCanBeAborted = true
|
|
913
|
-
}
|
|
914
|
-
|
|
915
|
-
/** Whether the rendering should be aborted because a new rendering has started. We should call this after each await. */
|
|
916
|
-
const isRenderOutdated = (isRenderCleanup?: true) => {
|
|
917
|
-
// Never abort first render if hydrationCanBeAborted isn't true
|
|
918
|
-
{
|
|
919
|
-
const isFirstRender = renderNumber === 1
|
|
920
|
-
if (isFirstRender && !hydrationCanBeAborted && !isRenderCleanup) {
|
|
921
|
-
return false
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
|
|
925
|
-
// If there is a newer rendering, we should abort all previous renderings
|
|
926
|
-
return renderNumber !== globalObject.renderCounter
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
return {
|
|
930
|
-
isRenderOutdated,
|
|
931
|
-
setHydrationCanBeAborted,
|
|
932
|
-
isFirstRender: renderNumber === 1,
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
function getRenderCount(): number {
|
|
936
|
-
return globalObject.renderCounter
|
|
937
|
-
}
|
|
938
|
-
|
|
939
|
-
function getKeepScrollPositionSetting(
|
|
940
|
-
pageContext: PageContextExports &
|
|
941
|
-
PageContextRouted & {
|
|
942
|
-
from: {
|
|
943
|
-
configsStandard: {
|
|
944
|
-
keepScrollPosition: { value: unknown; definedAt: string } | null
|
|
945
|
-
}
|
|
946
|
-
}
|
|
947
|
-
}
|
|
948
|
-
): false | string | string[] {
|
|
949
|
-
const c = pageContext.from.configsStandard.keepScrollPosition
|
|
950
|
-
if (!c) return false
|
|
951
|
-
let val = c.value
|
|
952
|
-
const configDefinedAt = c.definedAt
|
|
953
|
-
assert(configDefinedAt)
|
|
954
|
-
const routeParameterList = getRouteStringParameterList(configDefinedAt)
|
|
955
|
-
if (isCallable(val))
|
|
956
|
-
val = val(pageContext, {
|
|
957
|
-
configDefinedAt: c.definedAt,
|
|
958
|
-
})
|
|
959
|
-
if (val === true) {
|
|
960
|
-
return [
|
|
961
|
-
configDefinedAt,
|
|
962
|
-
...routeParameterList.map((param) => {
|
|
963
|
-
const val = pageContext.routeParams[param]
|
|
964
|
-
assert(val)
|
|
965
|
-
return val
|
|
966
|
-
}),
|
|
967
|
-
]
|
|
968
|
-
}
|
|
969
|
-
// We skip validation and type-cast instead of assertUsage() in order to save client-side KBs
|
|
970
|
-
return val as any
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
function areKeysEqual(
|
|
974
|
-
key1: string | string[],
|
|
975
|
-
key2: string | string[]
|
|
976
|
-
): boolean {
|
|
977
|
-
if (key1 === key2) return true
|
|
978
|
-
if (!Array.isArray(key1) || !Array.isArray(key2)) return false
|
|
979
|
-
return (
|
|
980
|
-
key1.length === key2.length && key1.every((_, i) => key1[i] === key2[i])
|
|
981
|
-
)
|
|
982
|
-
}
|
|
983
|
-
|
|
984
|
-
// export { renderPageClientSide };
|
|
985
|
-
// export { getRenderCount };
|
|
986
|
-
// export { disableClientRouting };
|
|
987
|
-
// export { firstRenderStartPromise };
|
|
988
|
-
|
|
989
|
-
// import {
|
|
990
|
-
// assert,
|
|
991
|
-
// getCurrentUrl,
|
|
992
|
-
// isSameErrorMessage,
|
|
993
|
-
// objectAssign,
|
|
994
|
-
// redirectHard,
|
|
995
|
-
// getGlobalObject,
|
|
996
|
-
// executeHook,
|
|
997
|
-
// hasProp,
|
|
998
|
-
// augmentType,
|
|
999
|
-
// genPromise,
|
|
1000
|
-
// isCallable,
|
|
1001
|
-
// } from "./utils.js";
|
|
1002
|
-
// import {
|
|
1003
|
-
// getPageContextFromClientHooks,
|
|
1004
|
-
// getPageContextFromServerHooks,
|
|
1005
|
-
// getPageContextFromHooks_isHydration,
|
|
1006
|
-
// getPageContextFromHooks_serialized,
|
|
1007
|
-
// type PageContextFromServerHooks,
|
|
1008
|
-
// setPageContextInitIsPassedToClient,
|
|
1009
|
-
// PageContextFromClientHooks,
|
|
1010
|
-
// } from "./getPageContextFromHooks.js";
|
|
1011
|
-
// import { createPageContext } from "./createPageContext.js";
|
|
1012
|
-
// import {
|
|
1013
|
-
// addLinkPrefetchHandlers,
|
|
1014
|
-
// addLinkPrefetchHandlers_unwatch,
|
|
1015
|
-
// addLinkPrefetchHandlers_watch,
|
|
1016
|
-
// getPageContextPrefetched,
|
|
1017
|
-
// populatePageContextPrefetchCache,
|
|
1018
|
-
// } from "./prefetch.js";
|
|
1019
|
-
// import { assertInfo, assertWarning, isReact } from "./utils.js";
|
|
1020
|
-
// import {
|
|
1021
|
-
// type PageContextBeforeRenderClient,
|
|
1022
|
-
// executeOnRenderClientHook,
|
|
1023
|
-
// } from "../shared/executeOnRenderClientHook.js";
|
|
1024
|
-
// import { assertHook, getHook } from "../hooks/getHook.js";
|
|
1025
|
-
// import {
|
|
1026
|
-
// isErrorFetchingStaticAssets,
|
|
1027
|
-
// loadUserFilesClientSide,
|
|
1028
|
-
// } from "../shared/loadUserFilesClientSide.js";
|
|
1029
|
-
// import { pushHistory } from "./history.js";
|
|
1030
|
-
// import {
|
|
1031
|
-
// assertNoInfiniteAbortLoop,
|
|
1032
|
-
// getPageContextFromAllRewrites,
|
|
1033
|
-
// isAbortError,
|
|
1034
|
-
// logAbortErrorHandled,
|
|
1035
|
-
// type PageContextFromRewrite,
|
|
1036
|
-
// } from "../route/abort.js";
|
|
1037
|
-
// import { route } from "../route/index.js";
|
|
1038
|
-
// import { isClientSideRoutable } from "./isClientSideRoutable.js";
|
|
1039
|
-
// import { setScrollPosition, type ScrollTarget } from "./setScrollPosition.js";
|
|
1040
|
-
// import { updateState } from "./onBrowserHistoryNavigation.js";
|
|
1041
|
-
// import {
|
|
1042
|
-
// browserNativeScrollRestoration_disable,
|
|
1043
|
-
// setInitialRenderIsDone,
|
|
1044
|
-
// } from "./scrollRestoration.js";
|
|
1045
|
-
// import { getErrorPageId } from "../error-page.js";
|
|
1046
|
-
// import type { PageContextExports } from "../getPageFiles.js";
|
|
1047
|
-
// import { setPageContextCurrent } from "./getPageContextCurrent.js";
|
|
1048
|
-
// import { getRouteStringParameterList } from "../route/resolveRouteString.js";
|
|
1049
|
-
// import {PageFile} from "reveal/__internal";
|
|
1050
|
-
// import {PageConfigRuntime,ConfigValues} from "../page-configs/PageConfig.js";
|
|
1051
|
-
// // Assuming PageConfigBase, ConfigValues, and other required types are defined elsewhere
|
|
1052
|
-
// // import type { PageFile, PageConfigRuntime, PageConfigBase } from "../types";
|
|
1053
|
-
// type PageConfigBase = {
|
|
1054
|
-
// pageId: string;
|
|
1055
|
-
// route: string;
|
|
1056
|
-
// configValues: ConfigValues;
|
|
1057
|
-
// };
|
|
1058
|
-
|
|
1059
|
-
// type PageContext = {
|
|
1060
|
-
// _pageFilesLoaded: PageFile[];
|
|
1061
|
-
// urlOriginal?: string;
|
|
1062
|
-
// urlPathname?: string;
|
|
1063
|
-
// pageId: string;
|
|
1064
|
-
// _pageConfigs: PageConfigRuntime[];
|
|
1065
|
-
// config: PageConfigBase & {
|
|
1066
|
-
// configValues: ConfigValues;
|
|
1067
|
-
// loadConfigValuesAll: () => Promise<any>;
|
|
1068
|
-
// };
|
|
1069
|
-
// } & PageContextRouted;
|
|
1070
|
-
|
|
1071
|
-
// const globalObject = getGlobalObject<{
|
|
1072
|
-
// clientRoutingIsDisabled?: true;
|
|
1073
|
-
// renderCounter: number;
|
|
1074
|
-
// onRenderClientPromise?: Promise<unknown>;
|
|
1075
|
-
// isFirstRenderDone?: true;
|
|
1076
|
-
// isTransitioning?: true;
|
|
1077
|
-
// previousPageContext?: PreviousPageContext;
|
|
1078
|
-
// firstRenderStartPromise: Promise<void>;
|
|
1079
|
-
// firstRenderStartPromiseResolve: () => void;
|
|
1080
|
-
// }>(
|
|
1081
|
-
// "renderPageClientSide.ts",
|
|
1082
|
-
// (() => {
|
|
1083
|
-
// const {
|
|
1084
|
-
// promise: firstRenderStartPromise,
|
|
1085
|
-
// resolve: firstRenderStartPromiseResolve,
|
|
1086
|
-
// } = genPromise();
|
|
1087
|
-
// return {
|
|
1088
|
-
// renderCounter: 0,
|
|
1089
|
-
// firstRenderStartPromise,
|
|
1090
|
-
// firstRenderStartPromiseResolve,
|
|
1091
|
-
// };
|
|
1092
|
-
// })(),
|
|
1093
|
-
// );
|
|
1094
|
-
// const { firstRenderStartPromise } = globalObject;
|
|
1095
|
-
// type PreviousPageContext = { pageId: string } & PageContextExports &
|
|
1096
|
-
// PageContextRouted;
|
|
1097
|
-
// type PageContextRouted = {
|
|
1098
|
-
// pageId: string;
|
|
1099
|
-
// routeParams: Record<string, string>;
|
|
1100
|
-
// };
|
|
1101
|
-
|
|
1102
|
-
// type RenderArgs = {
|
|
1103
|
-
// scrollTarget: ScrollTarget;
|
|
1104
|
-
// isBackwardNavigation: boolean | null;
|
|
1105
|
-
// urlOriginal?: string;
|
|
1106
|
-
// overwriteLastHistoryEntry?: boolean;
|
|
1107
|
-
// pageContextsFromRewrite?: PageContextFromRewrite[];
|
|
1108
|
-
// redirectCount?: number;
|
|
1109
|
-
// /** Whether the navigation was triggered by the user land calling `history.pushState()` */
|
|
1110
|
-
// isUserLandPushStateNavigation?: boolean;
|
|
1111
|
-
// isClientSideNavigation?: boolean;
|
|
1112
|
-
// };
|
|
1113
|
-
// async function renderPageClientSide(renderArgs: RenderArgs): Promise<void> {
|
|
1114
|
-
// const {
|
|
1115
|
-
// urlOriginal = getCurrentUrl(),
|
|
1116
|
-
// overwriteLastHistoryEntry = false,
|
|
1117
|
-
// isBackwardNavigation,
|
|
1118
|
-
// pageContextsFromRewrite = [],
|
|
1119
|
-
// redirectCount = 0,
|
|
1120
|
-
// isUserLandPushStateNavigation,
|
|
1121
|
-
// isClientSideNavigation = true,
|
|
1122
|
-
// } = renderArgs;
|
|
1123
|
-
// let { scrollTarget } = renderArgs;
|
|
1124
|
-
// const { previousPageContext } = globalObject;
|
|
1125
|
-
|
|
1126
|
-
// addLinkPrefetchHandlers_unwatch();
|
|
1127
|
-
|
|
1128
|
-
// const { isRenderOutdated, setHydrationCanBeAborted, isFirstRender } =
|
|
1129
|
-
// getIsRenderOutdated();
|
|
1130
|
-
// assertNoInfiniteAbortLoop(pageContextsFromRewrite.length, redirectCount);
|
|
1131
|
-
|
|
1132
|
-
// if (globalObject.clientRoutingIsDisabled) {
|
|
1133
|
-
// redirectHard(urlOriginal);
|
|
1134
|
-
// return;
|
|
1135
|
-
// }
|
|
1136
|
-
|
|
1137
|
-
// globalObject.firstRenderStartPromiseResolve();
|
|
1138
|
-
// if (isRenderOutdated()) return;
|
|
1139
|
-
|
|
1140
|
-
// await renderPageNominal();
|
|
1141
|
-
|
|
1142
|
-
// return;
|
|
1143
|
-
|
|
1144
|
-
// async function renderPageNominal() {
|
|
1145
|
-
// const onError = async (err: unknown) => {
|
|
1146
|
-
// await renderErrorPage({ err });
|
|
1147
|
-
// };
|
|
1148
|
-
|
|
1149
|
-
// const pageContext = await getPageContextBegin(false);
|
|
1150
|
-
// if (isRenderOutdated()) return;
|
|
1151
|
-
|
|
1152
|
-
// // onPageTransitionStart()
|
|
1153
|
-
// if (globalObject.isFirstRenderDone) {
|
|
1154
|
-
// assert(previousPageContext);
|
|
1155
|
-
// // We use the hook of the previous page in order to be able to call onPageTransitionStart() before fetching the files of the next page.
|
|
1156
|
-
// // https://github.com/revealjs/reveal/issues/1560
|
|
1157
|
-
// assertHook(previousPageContext, "onPageTransitionStart");
|
|
1158
|
-
// if (!globalObject.isTransitioning) {
|
|
1159
|
-
// globalObject.isTransitioning = true;
|
|
1160
|
-
// const onPageTransitionStartHook = getHook(
|
|
1161
|
-
// previousPageContext,
|
|
1162
|
-
// "onPageTransitionStart",
|
|
1163
|
-
// );
|
|
1164
|
-
// if (onPageTransitionStartHook) {
|
|
1165
|
-
// const hook = onPageTransitionStartHook;
|
|
1166
|
-
// const { hookFn } = hook;
|
|
1167
|
-
// try {
|
|
1168
|
-
// await executeHook(() => hookFn(pageContext), hook, pageContext);
|
|
1169
|
-
// } catch (err) {
|
|
1170
|
-
// await onError(err);
|
|
1171
|
-
// return;
|
|
1172
|
-
// }
|
|
1173
|
-
// if (isRenderOutdated()) return;
|
|
1174
|
-
// }
|
|
1175
|
-
// }
|
|
1176
|
-
// }
|
|
1177
|
-
|
|
1178
|
-
// // Route
|
|
1179
|
-
// if (isFirstRender) {
|
|
1180
|
-
// const pageContextSerialized = getPageContextFromHooks_serialized();
|
|
1181
|
-
// // TODO/eventually: create helper assertPageContextFromHook()
|
|
1182
|
-
// assert(!("urlOriginal" in pageContextSerialized));
|
|
1183
|
-
// objectAssign(pageContext, pageContextSerialized);
|
|
1184
|
-
// // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
|
|
1185
|
-
// populatePageContextPrefetchCache(
|
|
1186
|
-
// {
|
|
1187
|
-
// ...pageContext,
|
|
1188
|
-
// config: {
|
|
1189
|
-
// pageId: pageContext.pageId,
|
|
1190
|
-
// configValues: pageContext.configValues as ConfigValues,
|
|
1191
|
-
// loadConfigValuesAll: async () => {
|
|
1192
|
-
// return {
|
|
1193
|
-
// configValuesSerialized: {} // Replace with actual logic to load config values
|
|
1194
|
-
// };
|
|
1195
|
-
// },
|
|
1196
|
-
// Page: {} // Add the missing Page property
|
|
1197
|
-
// }
|
|
1198
|
-
// },
|
|
1199
|
-
// {
|
|
1200
|
-
// pageContextFromServerHooks: pageContextSerialized,
|
|
1201
|
-
// }
|
|
1202
|
-
// );
|
|
1203
|
-
// } else {
|
|
1204
|
-
// let pageContextFromRoute: Awaited<ReturnType<typeof route>>;
|
|
1205
|
-
// try {
|
|
1206
|
-
// pageContextFromRoute = await route(pageContext);
|
|
1207
|
-
// } catch (err) {
|
|
1208
|
-
// await onError(err);
|
|
1209
|
-
// return;
|
|
1210
|
-
// }
|
|
1211
|
-
// if (isRenderOutdated()) return;
|
|
1212
|
-
|
|
1213
|
-
// if (!pageContextFromRoute.pageId) {
|
|
1214
|
-
// /*
|
|
1215
|
-
// // We don't use the client router to render the 404 page:
|
|
1216
|
-
// // - So that the +redirects setting (https://reveal.dev/redirects) can be applied.
|
|
1217
|
-
// // - This is the main argument.
|
|
1218
|
-
// // - See also failed CI: https://github.com/revealjs/reveal/pull/1871
|
|
1219
|
-
// // - So that server-side error tracking can track 404 links?
|
|
1220
|
-
// // - We do use the client router for rendering the error page, so I don't think this is much of an argument.
|
|
1221
|
-
// await renderErrorPage({ is404: true })
|
|
1222
|
-
// */
|
|
1223
|
-
// redirectHard(urlOriginal);
|
|
1224
|
-
// return;
|
|
1225
|
-
// }
|
|
1226
|
-
// assert(hasProp(pageContextFromRoute, "pageId", "string")); // Help TS
|
|
1227
|
-
|
|
1228
|
-
// const isClientRoutable = await isClientSideRoutable(
|
|
1229
|
-
// pageContextFromRoute.pageId,
|
|
1230
|
-
// pageContext,
|
|
1231
|
-
// );
|
|
1232
|
-
// if (isRenderOutdated()) return;
|
|
1233
|
-
// if (!isClientRoutable) {
|
|
1234
|
-
// redirectHard(urlOriginal);
|
|
1235
|
-
// return;
|
|
1236
|
-
// }
|
|
1237
|
-
|
|
1238
|
-
// const isSamePage =
|
|
1239
|
-
// pageContextFromRoute.pageId &&
|
|
1240
|
-
// previousPageContext?.pageId &&
|
|
1241
|
-
// pageContextFromRoute.pageId === previousPageContext.pageId;
|
|
1242
|
-
// if (isUserLandPushStateNavigation && isSamePage) {
|
|
1243
|
-
// // Skip's Reveal's rendering; let the user handle the navigation
|
|
1244
|
-
// return;
|
|
1245
|
-
// }
|
|
1246
|
-
|
|
1247
|
-
// // TODO/eventually: create helper assertPageContextFromHook()
|
|
1248
|
-
// assert(!("urlOriginal" in pageContextFromRoute));
|
|
1249
|
-
// objectAssign(pageContext, pageContextFromRoute);
|
|
1250
|
-
// }
|
|
1251
|
-
|
|
1252
|
-
// try {
|
|
1253
|
-
// objectAssign(
|
|
1254
|
-
// pageContext,
|
|
1255
|
-
// await loadUserFilesClientSide(
|
|
1256
|
-
// pageContext.pageId,
|
|
1257
|
-
// pageContext._pageFilesAll,
|
|
1258
|
-
// pageContext._pageConfigs,
|
|
1259
|
-
// ),
|
|
1260
|
-
// );
|
|
1261
|
-
// } catch (err) {
|
|
1262
|
-
// if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
|
|
1263
|
-
// return;
|
|
1264
|
-
// } else {
|
|
1265
|
-
// // A user file has a syntax error
|
|
1266
|
-
// await onError(err);
|
|
1267
|
-
// return;
|
|
1268
|
-
// }
|
|
1269
|
-
// }
|
|
1270
|
-
// if (isRenderOutdated()) return;
|
|
1271
|
-
// setPageContextCurrent(pageContext);
|
|
1272
|
-
|
|
1273
|
-
// // Set global hydrationCanBeAborted
|
|
1274
|
-
// if (pageContext.hydrationCanBeAborted) {
|
|
1275
|
-
// setHydrationCanBeAborted();
|
|
1276
|
-
// } else {
|
|
1277
|
-
// assertWarning(
|
|
1278
|
-
// !isReact(),
|
|
1279
|
-
// "You seem to be using React; we recommend setting hydrationCanBeAborted to true, see https://reveal.dev/hydrationCanBeAborted",
|
|
1280
|
-
// { onlyOnce: true },
|
|
1281
|
-
// );
|
|
1282
|
-
// }
|
|
1283
|
-
// // There wasn't any `await` but the isRenderOutdated() return value may have changed because we called setHydrationCanBeAborted()
|
|
1284
|
-
// if (isRenderOutdated()) return;
|
|
1285
|
-
|
|
1286
|
-
// // Get pageContext from hooks (fetched from server, and/or directly called on the client-side)
|
|
1287
|
-
// if (isFirstRender) {
|
|
1288
|
-
// assert(hasProp(pageContext, "_hasPageContextFromServer", "true"));
|
|
1289
|
-
// let pageContextAugmented: Awaited<
|
|
1290
|
-
// ReturnType<typeof getPageContextFromHooks_isHydration>
|
|
1291
|
-
// >;
|
|
1292
|
-
// try {
|
|
1293
|
-
// pageContextAugmented =
|
|
1294
|
-
// await getPageContextFromHooks_isHydration({
|
|
1295
|
-
// ...pageContext,
|
|
1296
|
-
// config: {
|
|
1297
|
-
// pageId: pageContext.pageId,
|
|
1298
|
-
// configValues: pageContext.configValues as ConfigValues,
|
|
1299
|
-
// loadConfigValuesAll: async () => {
|
|
1300
|
-
// return {
|
|
1301
|
-
// configValuesSerialized: {} // Replace with actual logic to load config values
|
|
1302
|
-
// };
|
|
1303
|
-
// },
|
|
1304
|
-
// Page: {} // Add the missing Page property
|
|
1305
|
-
// }
|
|
1306
|
-
// });
|
|
1307
|
-
// } catch (err) {
|
|
1308
|
-
// await onError(err);
|
|
1309
|
-
// return;
|
|
1310
|
-
// }
|
|
1311
|
-
// if (isRenderOutdated()) return;
|
|
1312
|
-
// augmentType(pageContext, pageContextAugmented);
|
|
1313
|
-
|
|
1314
|
-
// // Render page view
|
|
1315
|
-
// await renderPageView({
|
|
1316
|
-
// ...pageContext,
|
|
1317
|
-
// config: {
|
|
1318
|
-
// pageId: pageContext.pageId,
|
|
1319
|
-
// configValues: pageContext.configValues as ConfigValues,
|
|
1320
|
-
// loadConfigValuesAll: async () => {
|
|
1321
|
-
// return {
|
|
1322
|
-
// configValuesSerialized: {} // Replace with actual logic to load config values
|
|
1323
|
-
// };
|
|
1324
|
-
// },
|
|
1325
|
-
// Page: {} // Add the missing Page property
|
|
1326
|
-
// },
|
|
1327
|
-
// });
|
|
1328
|
-
// } else {
|
|
1329
|
-
// // Fetch pageContext from server-side hooks
|
|
1330
|
-
// let pageContextFromServerHooks: PageContextFromServerHooks;
|
|
1331
|
-
// const pageContextPrefetched = getPageContextPrefetched(pageContext);
|
|
1332
|
-
// if (pageContextPrefetched) {
|
|
1333
|
-
// pageContextFromServerHooks = pageContextPrefetched;
|
|
1334
|
-
// } else {
|
|
1335
|
-
// try {
|
|
1336
|
-
// const result = await getPageContextFromServerHooks(
|
|
1337
|
-
// pageContext,
|
|
1338
|
-
// false,
|
|
1339
|
-
// );
|
|
1340
|
-
// if (result.is404ServerSideRouted) return;
|
|
1341
|
-
// pageContextFromServerHooks = result.pageContextFromServerHooks;
|
|
1342
|
-
// // TODO/pageContext-prefetch: remove or change, because this only makes sense for a pre-rendered page
|
|
1343
|
-
// populatePageContextPrefetchCache(pageContext, result);
|
|
1344
|
-
// } catch (err) {
|
|
1345
|
-
// await onError(err);
|
|
1346
|
-
// return;
|
|
1347
|
-
// }
|
|
1348
|
-
// }
|
|
1349
|
-
// if (isRenderOutdated()) return;
|
|
1350
|
-
// // TODO/eventually: create helper assertPageContextFromHook()
|
|
1351
|
-
// assert(!("urlOriginal" in pageContextFromServerHooks));
|
|
1352
|
-
// objectAssign(pageContext, pageContextFromServerHooks);
|
|
1353
|
-
|
|
1354
|
-
// // Get pageContext from client-side hooks
|
|
1355
|
-
// let pageContextFromClientHooks: PageContextFromClientHooks;
|
|
1356
|
-
// try {
|
|
1357
|
-
// pageContextFromClientHooks = await getPageContextFromClientHooks(
|
|
1358
|
-
// pageContext,
|
|
1359
|
-
// false,
|
|
1360
|
-
// );
|
|
1361
|
-
// } catch (err) {
|
|
1362
|
-
// await onError(err);
|
|
1363
|
-
// return;
|
|
1364
|
-
// }
|
|
1365
|
-
// if (isRenderOutdated()) return;
|
|
1366
|
-
// augmentType(pageContext, pageContextFromClientHooks);
|
|
1367
|
-
|
|
1368
|
-
// await renderPageView({
|
|
1369
|
-
// ...pageContext,
|
|
1370
|
-
// config: {
|
|
1371
|
-
// pageId: pageContext.pageId,
|
|
1372
|
-
// configValues: pageContext.configValues as ConfigValues,
|
|
1373
|
-
// loadConfigValuesAll: async () => {
|
|
1374
|
-
// return {
|
|
1375
|
-
// configValuesSerialized: {} // Replace with actual logic to load config values
|
|
1376
|
-
// };
|
|
1377
|
-
// },
|
|
1378
|
-
// Page: {} // Add the missing Page property
|
|
1379
|
-
// },
|
|
1380
|
-
// });
|
|
1381
|
-
// }
|
|
1382
|
-
// }
|
|
1383
|
-
|
|
1384
|
-
// async function getPageContextBegin(isForErrorPage: boolean) {
|
|
1385
|
-
// const pageContext = await createPageContext(urlOriginal);
|
|
1386
|
-
// objectAssign(pageContext, {
|
|
1387
|
-
// isBackwardNavigation,
|
|
1388
|
-
// isClientSideNavigation,
|
|
1389
|
-
// isHydration: isFirstRender && !isForErrorPage,
|
|
1390
|
-
// _previousPageContext: previousPageContext,
|
|
1391
|
-
// });
|
|
1392
|
-
// {
|
|
1393
|
-
// const pageContextFromAllRewrites = getPageContextFromAllRewrites(
|
|
1394
|
-
// pageContextsFromRewrite,
|
|
1395
|
-
// );
|
|
1396
|
-
// assert(!("urlOriginal" in pageContextFromAllRewrites));
|
|
1397
|
-
// objectAssign(pageContext, pageContextFromAllRewrites);
|
|
1398
|
-
// }
|
|
1399
|
-
// return pageContext;
|
|
1400
|
-
// }
|
|
1401
|
-
|
|
1402
|
-
// async function renderErrorPage(args: {
|
|
1403
|
-
// err?: unknown;
|
|
1404
|
-
// pageContextError?: Record<string, unknown>;
|
|
1405
|
-
// is404?: boolean;
|
|
1406
|
-
// }) {
|
|
1407
|
-
// const onError = (err: unknown) => {
|
|
1408
|
-
// if (!isSameErrorMessage(err, args.err)) {
|
|
1409
|
-
// /* When we can't render the error page, we prefer showing a blank page over letting the server-side try because otherwise:
|
|
1410
|
-
// - We risk running into an infinite loop of reloads which would overload the server.
|
|
1411
|
-
// - An infinite reloading page is a even worse UX than a blank page.
|
|
1412
|
-
// redirectHard(urlOriginal)
|
|
1413
|
-
// */
|
|
1414
|
-
// console.error(err);
|
|
1415
|
-
// }
|
|
1416
|
-
// };
|
|
1417
|
-
|
|
1418
|
-
// if ("err" in args) {
|
|
1419
|
-
// const { err } = args;
|
|
1420
|
-
// assert(err);
|
|
1421
|
-
|
|
1422
|
-
// if (!isAbortError(err)) {
|
|
1423
|
-
// // We don't swallow 404 errors:
|
|
1424
|
-
// // - On the server-side, Reveal swallows / doesn't show any 404 error log because it's expected that a user may go to some random non-existent URL. (We don't want to flood the app's error tracking with 404 logs.)
|
|
1425
|
-
// // - On the client-side, if the user navigates to a 404 then it means that the UI has a broken link. (It isn't expected that users can go to some random URL using the client-side router, as it would require, for example, the user to manually change the URL of a link by manually manipulating the DOM which highly unlikely.)
|
|
1426
|
-
// console.error(err);
|
|
1427
|
-
// } else {
|
|
1428
|
-
// // We swallow throw redirect()/render() called by client-side hooks onBeforeRender()/data()/guard()
|
|
1429
|
-
// // We handle the abort error down below.
|
|
1430
|
-
// }
|
|
1431
|
-
// }
|
|
1432
|
-
|
|
1433
|
-
// const pageContext = await getPageContextBegin(true);
|
|
1434
|
-
// if (isRenderOutdated()) return;
|
|
1435
|
-
|
|
1436
|
-
// if (args.is404) objectAssign(pageContext, { is404: true });
|
|
1437
|
-
// if (args.pageContextError) objectAssign(pageContext, args.pageContextError);
|
|
1438
|
-
|
|
1439
|
-
// if ("err" in args) {
|
|
1440
|
-
// const { err } = args;
|
|
1441
|
-
// assert(!("errorWhileRendering" in pageContext));
|
|
1442
|
-
// pageContext.errorWhileRendering = err;
|
|
1443
|
-
|
|
1444
|
-
// if (isAbortError(err)) {
|
|
1445
|
-
// const errAbort = err;
|
|
1446
|
-
// logAbortErrorHandled(err, !import.meta.env.DEV, pageContext);
|
|
1447
|
-
// const pageContextAbort = errAbort._pageContextAbort;
|
|
1448
|
-
|
|
1449
|
-
// // throw render('/some-url')
|
|
1450
|
-
// if (pageContextAbort._urlRewrite) {
|
|
1451
|
-
// await renderPageClientSide({
|
|
1452
|
-
// ...renderArgs,
|
|
1453
|
-
// scrollTarget: undefined,
|
|
1454
|
-
// pageContextsFromRewrite: [
|
|
1455
|
-
// ...pageContextsFromRewrite,
|
|
1456
|
-
// pageContextAbort,
|
|
1457
|
-
// ],
|
|
1458
|
-
// });
|
|
1459
|
-
// return;
|
|
1460
|
-
// }
|
|
1461
|
-
|
|
1462
|
-
// // throw redirect('/some-url')
|
|
1463
|
-
// if (pageContextAbort._urlRedirect) {
|
|
1464
|
-
// const urlRedirect = pageContextAbort._urlRedirect.url;
|
|
1465
|
-
// if (!urlRedirect.startsWith("/")) {
|
|
1466
|
-
// // External redirection
|
|
1467
|
-
// redirectHard(urlRedirect);
|
|
1468
|
-
// return;
|
|
1469
|
-
// } else {
|
|
1470
|
-
// await renderPageClientSide({
|
|
1471
|
-
// ...renderArgs,
|
|
1472
|
-
// scrollTarget: undefined,
|
|
1473
|
-
// urlOriginal: urlRedirect,
|
|
1474
|
-
// overwriteLastHistoryEntry: false,
|
|
1475
|
-
// isBackwardNavigation: false,
|
|
1476
|
-
// redirectCount: redirectCount + 1,
|
|
1477
|
-
// });
|
|
1478
|
-
// }
|
|
1479
|
-
// return;
|
|
1480
|
-
// }
|
|
1481
|
-
|
|
1482
|
-
// // throw render(statusCode)
|
|
1483
|
-
// assert(pageContextAbort.abortStatusCode);
|
|
1484
|
-
// assert(!("urlOriginal" in pageContextAbort));
|
|
1485
|
-
// objectAssign(pageContext, pageContextAbort);
|
|
1486
|
-
// if (pageContextAbort.abortStatusCode === 404) {
|
|
1487
|
-
// objectAssign(pageContext, { is404: true });
|
|
1488
|
-
// }
|
|
1489
|
-
// } else {
|
|
1490
|
-
// objectAssign(pageContext, { is404: false });
|
|
1491
|
-
// }
|
|
1492
|
-
// }
|
|
1493
|
-
|
|
1494
|
-
// const errorPageId = getErrorPageId(
|
|
1495
|
-
// pageContext._pageFilesAll,
|
|
1496
|
-
// pageContext._pageConfigs,
|
|
1497
|
-
// );
|
|
1498
|
-
// if (!errorPageId) throw new Error("No error page defined.");
|
|
1499
|
-
// objectAssign(pageContext, {
|
|
1500
|
-
// pageId: errorPageId,
|
|
1501
|
-
// });
|
|
1502
|
-
|
|
1503
|
-
// const isClientRoutable = await isClientSideRoutable(
|
|
1504
|
-
// pageContext.pageId,
|
|
1505
|
-
// pageContext,
|
|
1506
|
-
// );
|
|
1507
|
-
// if (isRenderOutdated()) return;
|
|
1508
|
-
// if (!isClientRoutable) {
|
|
1509
|
-
// redirectHard(urlOriginal);
|
|
1510
|
-
// return;
|
|
1511
|
-
// }
|
|
1512
|
-
|
|
1513
|
-
// try {
|
|
1514
|
-
// objectAssign(
|
|
1515
|
-
// pageContext,
|
|
1516
|
-
// await loadUserFilesClientSide(
|
|
1517
|
-
// pageContext.pageId,
|
|
1518
|
-
// pageContext._pageFilesAll,
|
|
1519
|
-
// pageContext._pageConfigs,
|
|
1520
|
-
// ),
|
|
1521
|
-
// );
|
|
1522
|
-
// } catch (err) {
|
|
1523
|
-
// if (handleErrorFetchingStaticAssets(err, pageContext, isFirstRender)) {
|
|
1524
|
-
// return;
|
|
1525
|
-
// } else {
|
|
1526
|
-
// // A user file has a syntax error
|
|
1527
|
-
// onError(err);
|
|
1528
|
-
// return;
|
|
1529
|
-
// }
|
|
1530
|
-
// }
|
|
1531
|
-
// if (isRenderOutdated()) return;
|
|
1532
|
-
// setPageContextCurrent(pageContext);
|
|
1533
|
-
|
|
1534
|
-
// let pageContextFromServerHooks: PageContextFromServerHooks;
|
|
1535
|
-
// try {
|
|
1536
|
-
// const result = await getPageContextFromServerHooks(pageContext, true);
|
|
1537
|
-
// if (result.is404ServerSideRouted) return;
|
|
1538
|
-
// pageContextFromServerHooks = result.pageContextFromServerHooks;
|
|
1539
|
-
// } catch (err: unknown) {
|
|
1540
|
-
// onError(err);
|
|
1541
|
-
// return;
|
|
1542
|
-
// }
|
|
1543
|
-
// if (isRenderOutdated()) return;
|
|
1544
|
-
// // TODO/eventually: create helper assertPageContextFromHook()
|
|
1545
|
-
// assert(!("urlOriginal" in pageContextFromServerHooks));
|
|
1546
|
-
// objectAssign(pageContext, pageContextFromServerHooks);
|
|
1547
|
-
|
|
1548
|
-
// let pageContextFromClientHooks: PageContextFromClientHooks;
|
|
1549
|
-
// try {
|
|
1550
|
-
// pageContextFromClientHooks = await getPageContextFromClientHooks(
|
|
1551
|
-
// pageContext,
|
|
1552
|
-
// true,
|
|
1553
|
-
// );
|
|
1554
|
-
// } catch (err: unknown) {
|
|
1555
|
-
// onError(err);
|
|
1556
|
-
// return;
|
|
1557
|
-
// }
|
|
1558
|
-
// if (isRenderOutdated()) return;
|
|
1559
|
-
// augmentType(pageContext, pageContextFromClientHooks);
|
|
1560
|
-
|
|
1561
|
-
// objectAssign(pageContext, { routeParams: {} });
|
|
1562
|
-
|
|
1563
|
-
// await renderPageView({
|
|
1564
|
-
// ...pageContext,
|
|
1565
|
-
// config: {
|
|
1566
|
-
// pageId: pageContext.pageId,
|
|
1567
|
-
// // route: pageContext.route,
|
|
1568
|
-
// configValues: pageContext.configValues as ConfigValues,
|
|
1569
|
-
// loadConfigValuesAll: async () => {
|
|
1570
|
-
// return {
|
|
1571
|
-
// configValuesSerialized: {} // Replace with actual logic to load config values
|
|
1572
|
-
// };
|
|
1573
|
-
// // Implement the logic to load all config values
|
|
1574
|
-
// },
|
|
1575
|
-
// Page: {} // Add the missing Page property
|
|
1576
|
-
// },
|
|
1577
|
-
// }, args);
|
|
1578
|
-
// }
|
|
1579
|
-
|
|
1580
|
-
// async function renderPageView(
|
|
1581
|
-
// pageContext: PageContextBeforeRenderClient & {
|
|
1582
|
-
// urlPathname: string;
|
|
1583
|
-
// } & PageContextRouted,
|
|
1584
|
-
// isErrorPage?: { err?: unknown },
|
|
1585
|
-
// ) {
|
|
1586
|
-
// const onError = async (err: unknown) => {
|
|
1587
|
-
// if (!isErrorPage) {
|
|
1588
|
-
// await renderErrorPage({ err });
|
|
1589
|
-
// } else {
|
|
1590
|
-
// if (!isSameErrorMessage(err, isErrorPage.err)) {
|
|
1591
|
-
// console.error(err);
|
|
1592
|
-
// }
|
|
1593
|
-
// }
|
|
1594
|
-
// };
|
|
1595
|
-
|
|
1596
|
-
// // We use globalObject.onRenderClientPromise in order to ensure that there is never two concurrent onRenderClient() calls
|
|
1597
|
-
// if (globalObject.onRenderClientPromise) {
|
|
1598
|
-
// // Make sure that the previous render has finished
|
|
1599
|
-
// await globalObject.onRenderClientPromise;
|
|
1600
|
-
// assert(globalObject.onRenderClientPromise === undefined);
|
|
1601
|
-
// if (isRenderOutdated()) return;
|
|
1602
|
-
// }
|
|
1603
|
-
// changeUrl(urlOriginal, overwriteLastHistoryEntry);
|
|
1604
|
-
// globalObject.previousPageContext = pageContext;
|
|
1605
|
-
// assert(globalObject.onRenderClientPromise === undefined);
|
|
1606
|
-
// globalObject.onRenderClientPromise = (async () => {
|
|
1607
|
-
// let onRenderClientError: unknown;
|
|
1608
|
-
// try {
|
|
1609
|
-
// await executeOnRenderClientHook(pageContext, true);
|
|
1610
|
-
// } catch (err) {
|
|
1611
|
-
// onRenderClientError = err;
|
|
1612
|
-
// }
|
|
1613
|
-
// globalObject.onRenderClientPromise = undefined;
|
|
1614
|
-
// globalObject.isFirstRenderDone = true;
|
|
1615
|
-
// return onRenderClientError;
|
|
1616
|
-
// })();
|
|
1617
|
-
// const onRenderClientError = await globalObject.onRenderClientPromise;
|
|
1618
|
-
// assert(globalObject.onRenderClientPromise === undefined);
|
|
1619
|
-
// if (onRenderClientError) {
|
|
1620
|
-
// await onError(onRenderClientError);
|
|
1621
|
-
// if (!isErrorPage) return;
|
|
1622
|
-
// }
|
|
1623
|
-
// /* We don't abort in order to ensure that onHydrationEnd() is called: we abort only after onHydrationEnd() is called.
|
|
1624
|
-
// if (isRenderOutdated(true)) return
|
|
1625
|
-
// */
|
|
1626
|
-
|
|
1627
|
-
// // onHydrationEnd()
|
|
1628
|
-
// if (isFirstRender && !onRenderClientError) {
|
|
1629
|
-
// assertHook(pageContext, "onHydrationEnd");
|
|
1630
|
-
// const hook = getHook(pageContext, "onHydrationEnd");
|
|
1631
|
-
// if (hook) {
|
|
1632
|
-
// const { hookFn } = hook;
|
|
1633
|
-
// try {
|
|
1634
|
-
// await executeHook(() => hookFn(pageContext), hook, pageContext);
|
|
1635
|
-
// } catch (err) {
|
|
1636
|
-
// await onError(err);
|
|
1637
|
-
// if (!isErrorPage) return;
|
|
1638
|
-
// }
|
|
1639
|
-
// if (isRenderOutdated(true)) return;
|
|
1640
|
-
// }
|
|
1641
|
-
// }
|
|
1642
|
-
|
|
1643
|
-
// // We purposely abort *after* onHydrationEnd() is called (see comment above).
|
|
1644
|
-
// if (isRenderOutdated(true)) return;
|
|
1645
|
-
|
|
1646
|
-
// // onPageTransitionEnd()
|
|
1647
|
-
// if (globalObject.isTransitioning) {
|
|
1648
|
-
// globalObject.isTransitioning = undefined;
|
|
1649
|
-
// assert(previousPageContext);
|
|
1650
|
-
// assertHook(previousPageContext, "onPageTransitionEnd");
|
|
1651
|
-
// const hook = getHook(previousPageContext, "onPageTransitionEnd");
|
|
1652
|
-
// if (hook) {
|
|
1653
|
-
// const { hookFn } = hook;
|
|
1654
|
-
// try {
|
|
1655
|
-
// await executeHook(() => hookFn(pageContext), hook, pageContext);
|
|
1656
|
-
// } catch (err) {
|
|
1657
|
-
// await onError(err);
|
|
1658
|
-
// if (!isErrorPage) return;
|
|
1659
|
-
// }
|
|
1660
|
-
// if (isRenderOutdated(true)) return;
|
|
1661
|
-
// }
|
|
1662
|
-
// }
|
|
1663
|
-
|
|
1664
|
-
// if (!scrollTarget && previousPageContext) {
|
|
1665
|
-
// const keepScrollPositionPrev =
|
|
1666
|
-
// getKeepScrollPositionSetting(previousPageContext);
|
|
1667
|
-
// const keepScrollPositionNext = getKeepScrollPositionSetting(pageContext);
|
|
1668
|
-
// if (
|
|
1669
|
-
// keepScrollPositionNext !== false &&
|
|
1670
|
-
// keepScrollPositionPrev !== false &&
|
|
1671
|
-
// areKeysEqual(keepScrollPositionNext, keepScrollPositionPrev)
|
|
1672
|
-
// ) {
|
|
1673
|
-
// scrollTarget = { preserveScroll: true };
|
|
1674
|
-
// }
|
|
1675
|
-
// }
|
|
1676
|
-
|
|
1677
|
-
// // Page scrolling
|
|
1678
|
-
// setScrollPosition(scrollTarget);
|
|
1679
|
-
// browserNativeScrollRestoration_disable();
|
|
1680
|
-
// setInitialRenderIsDone();
|
|
1681
|
-
// if (pageContext._hasPageContextFromServer)
|
|
1682
|
-
// setPageContextInitIsPassedToClient(pageContext);
|
|
1683
|
-
|
|
1684
|
-
// // Add link prefetch handlers
|
|
1685
|
-
// addLinkPrefetchHandlers_watch();
|
|
1686
|
-
// addLinkPrefetchHandlers();
|
|
1687
|
-
// }
|
|
1688
|
-
// }
|
|
1689
|
-
|
|
1690
|
-
// function changeUrl(url: string, overwriteLastHistoryEntry: boolean) {
|
|
1691
|
-
// if (getCurrentUrl() === url) return;
|
|
1692
|
-
// browserNativeScrollRestoration_disable();
|
|
1693
|
-
// pushHistory(url, overwriteLastHistoryEntry);
|
|
1694
|
-
// updateState();
|
|
1695
|
-
// }
|
|
1696
|
-
|
|
1697
|
-
// function handleErrorFetchingStaticAssets(
|
|
1698
|
-
// err: unknown,
|
|
1699
|
-
// pageContext: { urlOriginal: string },
|
|
1700
|
-
// isFirstRender: boolean,
|
|
1701
|
-
// ): boolean {
|
|
1702
|
-
// if (!isErrorFetchingStaticAssets(err)) {
|
|
1703
|
-
// return false;
|
|
1704
|
-
// }
|
|
1705
|
-
|
|
1706
|
-
// if (isFirstRender) {
|
|
1707
|
-
// disableClientRouting(err, false);
|
|
1708
|
-
// // This may happen if the frontend was newly deployed during hydration.
|
|
1709
|
-
// // Ideally: re-try a couple of times by reloading the page (not entirely trivial to implement since `localStorage` is needed.)
|
|
1710
|
-
// throw err;
|
|
1711
|
-
// } else {
|
|
1712
|
-
// disableClientRouting(err, true);
|
|
1713
|
-
// }
|
|
1714
|
-
|
|
1715
|
-
// redirectHard(pageContext.urlOriginal);
|
|
1716
|
-
|
|
1717
|
-
// return true;
|
|
1718
|
-
// }
|
|
1719
|
-
|
|
1720
|
-
// function disableClientRouting(err: unknown, log: boolean) {
|
|
1721
|
-
// assert(isErrorFetchingStaticAssets(err));
|
|
1722
|
-
|
|
1723
|
-
// globalObject.clientRoutingIsDisabled = true;
|
|
1724
|
-
|
|
1725
|
-
// if (log) {
|
|
1726
|
-
// // We don't use console.error() to avoid flooding error trackers such as Sentry
|
|
1727
|
-
// console.log(err);
|
|
1728
|
-
// }
|
|
1729
|
-
// // @ts-ignore Since dist/cjs/client/ is never used, we can ignore this error.
|
|
1730
|
-
// const isProd: boolean = import.meta.env.PROD;
|
|
1731
|
-
// assertInfo(
|
|
1732
|
-
// false,
|
|
1733
|
-
// [
|
|
1734
|
-
// "Failed to fetch static asset.",
|
|
1735
|
-
// isProd ? "This usually happens when a new frontend is deployed." : null,
|
|
1736
|
-
// "Falling back to Server Routing.",
|
|
1737
|
-
// "(The next page navigation will use Server Routing instead of Client Routing.)",
|
|
1738
|
-
// ]
|
|
1739
|
-
// .filter(Boolean)
|
|
1740
|
-
// .join(" "),
|
|
1741
|
-
// { onlyOnce: true },
|
|
1742
|
-
// );
|
|
1743
|
-
// }
|
|
1744
|
-
|
|
1745
|
-
// function getIsRenderOutdated() {
|
|
1746
|
-
// const renderNumber = ++globalObject.renderCounter;
|
|
1747
|
-
// assert(renderNumber >= 1);
|
|
1748
|
-
|
|
1749
|
-
// let hydrationCanBeAborted = false;
|
|
1750
|
-
// const setHydrationCanBeAborted = () => {
|
|
1751
|
-
// hydrationCanBeAborted = true;
|
|
1752
|
-
// };
|
|
1753
|
-
|
|
1754
|
-
// /** Whether the rendering should be aborted because a new rendering has started. We should call this after each `await`. */
|
|
1755
|
-
// const isRenderOutdated = (isRenderCleanup?: true) => {
|
|
1756
|
-
// // Never abort first render if `hydrationCanBeAborted` isn't `true`
|
|
1757
|
-
// {
|
|
1758
|
-
// const isFirstRender = renderNumber === 1;
|
|
1759
|
-
// if (isFirstRender && !hydrationCanBeAborted && !isRenderCleanup) {
|
|
1760
|
-
// return false;
|
|
1761
|
-
// }
|
|
1762
|
-
// }
|
|
1763
|
-
|
|
1764
|
-
// // If there is a newer rendering, we should abort all previous renderings
|
|
1765
|
-
// return renderNumber !== globalObject.renderCounter;
|
|
1766
|
-
// };
|
|
1767
|
-
|
|
1768
|
-
// return {
|
|
1769
|
-
// isRenderOutdated,
|
|
1770
|
-
// setHydrationCanBeAborted,
|
|
1771
|
-
// isFirstRender: renderNumber === 1,
|
|
1772
|
-
// };
|
|
1773
|
-
// }
|
|
1774
|
-
// function getRenderCount(): number {
|
|
1775
|
-
// return globalObject.renderCounter;
|
|
1776
|
-
// }
|
|
1777
|
-
|
|
1778
|
-
// function getKeepScrollPositionSetting(
|
|
1779
|
-
// pageContext: PageContextExports & PageContextRouted & Record<string, unknown>,
|
|
1780
|
-
// ): false | string | string[] {
|
|
1781
|
-
// const c = pageContext.from.configsStandard.keepScrollPosition;
|
|
1782
|
-
// if (!c) return false;
|
|
1783
|
-
// let val = c.value;
|
|
1784
|
-
// const configDefinedAt = c.definedAt;
|
|
1785
|
-
// assert(configDefinedAt);
|
|
1786
|
-
// const routeParameterList = getRouteStringParameterList(configDefinedAt);
|
|
1787
|
-
// if (isCallable(val))
|
|
1788
|
-
// val = val(pageContext, {
|
|
1789
|
-
// configDefinedAt: c.definedAt,
|
|
1790
|
-
// /* We don't pass routeParameterList because it's useless: the user knows the parameter list.
|
|
1791
|
-
// routeParameterList
|
|
1792
|
-
// */
|
|
1793
|
-
// });
|
|
1794
|
-
// if (val === true) {
|
|
1795
|
-
// return [
|
|
1796
|
-
// configDefinedAt,
|
|
1797
|
-
// ...routeParameterList.map((param) => {
|
|
1798
|
-
// const val = pageContext.routeParams[param];
|
|
1799
|
-
// assert(val);
|
|
1800
|
-
// return val;
|
|
1801
|
-
// }),
|
|
1802
|
-
// ];
|
|
1803
|
-
// }
|
|
1804
|
-
// // We skip validation and type-cast instead of assertUsage() in order to save client-side KBs
|
|
1805
|
-
// return val as any;
|
|
1806
|
-
// }
|
|
1807
|
-
|
|
1808
|
-
// function areKeysEqual(
|
|
1809
|
-
// key1: string | string[],
|
|
1810
|
-
// key2: string | string[],
|
|
1811
|
-
// ): boolean {
|
|
1812
|
-
// if (key1 === key2) return true;
|
|
1813
|
-
// if (!Array.isArray(key1) || !Array.isArray(key2)) return false;
|
|
1814
|
-
// return (
|
|
1815
|
-
// key1.length === key2.length && key1.every((_, i) => key1[i] === key2[i])
|
|
1816
|
-
// );
|
|
1817
|
-
// }
|