@revealui/core 0.0.1-pre.0

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.
Files changed (728) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE_SUMMARY.md +55 -0
  3. package/README.md +201 -0
  4. package/dist/core/__internal/index.ts +63 -0
  5. package/dist/core/__tests__/assertNoInfiniteHttpRedirect.spec.ts +76 -0
  6. package/dist/core/__tests__/deduceRouteStringFromFilesystemPath.spec.ts +88 -0
  7. package/dist/core/__tests__/freezePartial.spec.ts +40 -0
  8. package/dist/core/__tests__/getValuePrintable.spec.ts +15 -0
  9. package/dist/core/__tests__/injectHtmlTags.spec.ts +101 -0
  10. package/dist/core/__tests__/isHtml.spec.ts +23 -0
  11. package/dist/core/__tests__/isNpmPackage.spec.ts +93 -0
  12. package/dist/core/__tests__/normalizeHeaders.spec.ts +142 -0
  13. package/dist/core/__tests__/parseUrl-extras.spec.ts +60 -0
  14. package/dist/core/__tests__/parseUrl.spec.ts +1339 -0
  15. package/dist/core/__tests__/resolvePrecedence/resolvePrecedence_overall.spec.ts +106 -0
  16. package/dist/core/__tests__/resolvePrecedence/resolvePrecedence_route-strings.spec.ts +99 -0
  17. package/dist/core/__tests__/resolveRedirects.spec.ts +132 -0
  18. package/dist/core/__tests__/resolveRouteString.spec.ts +211 -0
  19. package/dist/core/__tests__/resolveUrlPathname.spec.ts +22 -0
  20. package/dist/core/__tests__/trimWithAnsi.spec.ts +40 -0
  21. package/dist/core/api/ssr.ts +63 -0
  22. package/dist/core/assets/extractAssetsQuery.ts +29 -0
  23. package/dist/core/assets/index.ts +173 -0
  24. package/dist/core/assets/inferHtmlTags.ts +61 -0
  25. package/dist/core/assets/injectHtmlTags.ts +236 -0
  26. package/dist/core/assets/mergeScriptTags.ts +77 -0
  27. package/dist/core/assets/sanitizeJson.ts +8 -0
  28. package/dist/core/cli/bin.ts +161 -0
  29. package/dist/core/cli/commands/add.ts +158 -0
  30. package/dist/core/cli/commands/check.ts +47 -0
  31. package/dist/core/cli/commands/doctor/checks/build.ts +83 -0
  32. package/dist/core/cli/commands/doctor/checks/config.ts +130 -0
  33. package/dist/core/cli/commands/doctor/checks/dependencies.ts +144 -0
  34. package/dist/core/cli/commands/doctor/checks/practices.ts +156 -0
  35. package/dist/core/cli/commands/doctor/checks/structure.ts +127 -0
  36. package/dist/core/cli/commands/doctor/fixes/index.ts +136 -0
  37. package/dist/core/cli/commands/doctor/index.ts +47 -0
  38. package/dist/core/cli/commands/doctor/print.ts +44 -0
  39. package/dist/core/cli/commands/doctor/types.ts +16 -0
  40. package/dist/core/cli/commands/fix.ts +161 -0
  41. package/dist/core/cli/commands/init.ts +145 -0
  42. package/dist/core/cli/commands/upgrade.ts +115 -0
  43. package/dist/core/cli/onLoad.ts +7 -0
  44. package/dist/core/cli/utils.ts +6 -0
  45. package/dist/core/components/Config/Config-client.ts +14 -0
  46. package/dist/core/components/Config/Config-server.ts +16 -0
  47. package/dist/core/components/Head/Head-client.ts +4 -0
  48. package/dist/core/components/Head/Head-server.ts +16 -0
  49. package/dist/core/components/Loading.tsx +23 -0
  50. package/dist/core/config/findPageConfig.ts +14 -0
  51. package/dist/core/config/loadConfigValues.ts +28 -0
  52. package/dist/core/constants/UnifiedConstants.ts +348 -0
  53. package/dist/core/dom/applyHeadSettings.tsx +13 -0
  54. package/dist/core/dom/onPageVisibilityChange.ts +17 -0
  55. package/dist/core/dom/updateDocumentHead.ts +15 -0
  56. package/dist/core/errors/ErrorHandler.ts +480 -0
  57. package/dist/core/files/file-system/filesystemPath.ts +27 -0
  58. package/dist/core/files/file-system/findFile.ts +35 -0
  59. package/dist/core/files/file-system/findPackageJson.ts +19 -0
  60. package/dist/core/files/file-system/findPageFiles.ts +40 -0
  61. package/dist/core/files/file-system/pathShim.ts +16 -0
  62. package/dist/core/files/file-system/prependEntriesDir.ts +13 -0
  63. package/dist/core/files/file-system/removeFileExtention.ts +3 -0
  64. package/dist/core/files/file-system/requireResolve.ts +59 -0
  65. package/dist/core/files/file-system/scanCodebase.ts +64 -0
  66. package/dist/core/files/virtual-files/index.ts +31 -0
  67. package/dist/core/files/virtual-files/virtualFileImportUserCode.ts +34 -0
  68. package/dist/core/files/virtual-files/virtualFilePageConfigValuesAll.ts +49 -0
  69. package/dist/core/gaurds/assertions/assert/base.ts +6 -0
  70. package/dist/core/gaurds/assertions/assert/index.ts +2 -0
  71. package/dist/core/gaurds/assertions/assert/log.ts +42 -0
  72. package/dist/core/gaurds/assertions/assertArguments.ts +83 -0
  73. package/dist/core/gaurds/assertions/assertCast.ts +9 -0
  74. package/dist/core/gaurds/assertions/assertCommonJS/base.ts +9 -0
  75. package/dist/core/gaurds/assertions/assertCommonJS/common.ts +30 -0
  76. package/dist/core/gaurds/assertions/assertCommonJS/index.ts +2 -0
  77. package/dist/core/gaurds/assertions/assertExtensions/base.ts +187 -0
  78. package/dist/core/gaurds/assertions/assertExtensions/index.ts +1 -0
  79. package/dist/core/gaurds/assertions/assertHookReturnedObject.ts +30 -0
  80. package/dist/core/gaurds/assertions/assertInfo/base.ts +14 -0
  81. package/dist/core/gaurds/assertions/assertInfo/index.ts +2 -0
  82. package/dist/core/gaurds/assertions/assertInfo/log.ts +28 -0
  83. package/dist/core/gaurds/assertions/assertIs404.ts +12 -0
  84. package/dist/core/gaurds/assertions/assertIsBrowser/base.ts +8 -0
  85. package/dist/core/gaurds/assertions/assertIsBrowser/index.ts +1 -0
  86. package/dist/core/gaurds/assertions/assertIsNotBrowser/base.ts +9 -0
  87. package/dist/core/gaurds/assertions/assertIsNotBrowser/index.ts +1 -0
  88. package/dist/core/gaurds/assertions/assertIsNotProductionRuntime/base.ts +71 -0
  89. package/dist/core/gaurds/assertions/assertIsNotProductionRuntime/index.ts +1 -0
  90. package/dist/core/gaurds/assertions/assertKeys/base.ts +31 -0
  91. package/dist/core/gaurds/assertions/assertKeys/index.ts +1 -0
  92. package/dist/core/gaurds/assertions/assertNoInfiniteHttpRedirect.ts +55 -0
  93. package/dist/core/gaurds/assertions/assertNodeEnv/base.ts +120 -0
  94. package/dist/core/gaurds/assertions/assertNodeEnv/index.ts +1 -0
  95. package/dist/core/gaurds/assertions/assertNodeVersion/base.ts +11 -0
  96. package/dist/core/gaurds/assertions/assertNodeVersion/index.ts +1 -0
  97. package/dist/core/gaurds/assertions/assertOnBeforeRenderHookReturn.ts +37 -0
  98. package/dist/core/gaurds/assertions/assertPageContextProvidedByUser.ts +60 -0
  99. package/dist/core/gaurds/assertions/assertPluginManifest.ts +41 -0
  100. package/dist/core/gaurds/assertions/assertPlusFileExport.ts +66 -0
  101. package/dist/core/gaurds/assertions/assertRoutingType/base.ts +41 -0
  102. package/dist/core/gaurds/assertions/assertRoutingType/index.ts +1 -0
  103. package/dist/core/gaurds/assertions/assertRuntimeManifest.ts +34 -0
  104. package/dist/core/gaurds/assertions/assertSingleInstance/index.ts +142 -0
  105. package/dist/core/gaurds/assertions/assertSingleInstance/onAssertModuleLoad.ts +0 -0
  106. package/dist/core/gaurds/assertions/assertSingleInstance/onClientEntryClientRouting.ts +0 -0
  107. package/dist/core/gaurds/assertions/assertSingleInstance/onClientEntryServerRouting.ts +0 -0
  108. package/dist/core/gaurds/assertions/assertType.ts +12 -0
  109. package/dist/core/gaurds/assertions/assertUsage/base.ts +43 -0
  110. package/dist/core/gaurds/assertions/assertUsage/index.ts +3 -0
  111. package/dist/core/gaurds/assertions/assertUsage/log.ts +29 -0
  112. package/dist/core/gaurds/assertions/assertUsage/node.ts +16 -0
  113. package/dist/core/gaurds/assertions/assertV1Design.ts +29 -0
  114. package/dist/core/gaurds/assertions/assertVersion/base.ts +55 -0
  115. package/dist/core/gaurds/assertions/assertVersion/index.ts +1 -0
  116. package/dist/core/gaurds/assertions/assertWarning/base.ts +43 -0
  117. package/dist/core/gaurds/assertions/assertWarning/index.ts +2 -0
  118. package/dist/core/gaurds/assertions/assertWarning/log.ts +43 -0
  119. package/dist/core/gaurds/assertions/checkType.ts +2 -0
  120. package/dist/core/gaurds/debugger/createDebugger.ts +196 -0
  121. package/dist/core/gaurds/debugger/debugPageFiles.ts +121 -0
  122. package/dist/core/gaurds/debugger/index.ts +2 -0
  123. package/dist/core/gaurds/errors/createErrorWithCleanStackTrace.ts +56 -0
  124. package/dist/core/gaurds/errors/removeErrMsg.ts +8 -0
  125. package/dist/core/gaurds/logger/addOnBeforeLogHook/index.ts +7 -0
  126. package/dist/core/gaurds/logger/formatHintLog.ts +17 -0
  127. package/dist/core/gaurds/logger/log404/index.spec.snapshot-1 +8 -0
  128. package/dist/core/gaurds/logger/log404/index.spec.snapshot-2 +9 -0
  129. package/dist/core/gaurds/logger/log404/index.spec.ts +78 -0
  130. package/dist/core/gaurds/logger/log404/index.ts +208 -0
  131. package/dist/core/gaurds/logger/logErrorHint/errors.ts +17 -0
  132. package/dist/core/gaurds/logger/logErrorHint/getErrorHint.spec.ts +1057 -0
  133. package/dist/core/gaurds/logger/logErrorHint.ts +196 -0
  134. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.ts +16 -0
  135. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.ts +16 -0
  136. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.ts +39 -0
  137. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx1.ts +24 -0
  138. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx2.ts +83 -0
  139. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.ts +33 -0
  140. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.ts +20 -0
  141. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.ts +19 -0
  142. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.ts +36 -0
  143. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.ts +17 -0
  144. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.ts +16 -0
  145. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/getPrettyErrMessage.spec.ts +101 -0
  146. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet/getPrettyErrorWithCodeSnippet.spec.ts +232 -0
  147. package/dist/core/gaurds/logger/loggerNotProd/errorWithCodeSnippet.ts +212 -0
  148. package/dist/core/gaurds/logger/loggerNotProd/log.ts +124 -0
  149. package/dist/core/gaurds/logger/loggerNotProd.ts +271 -0
  150. package/dist/core/gaurds/logger/loggerProd.ts +37 -0
  151. package/dist/core/gaurds/logger/loggerRuntime.ts +46 -0
  152. package/dist/core/gaurds/logger/loggerVite/removeSuperfluousViteLog.ts +30 -0
  153. package/dist/core/gaurds/logger/loggerVite.ts +65 -0
  154. package/dist/core/gaurds/logger/overwriteAssertProductionLogger/index.ts +9 -0
  155. package/dist/core/gaurds/logger/trackLogs.ts +35 -0
  156. package/dist/core/gaurds/logger/warnIfErrorIsNotObject.ts +31 -0
  157. package/dist/core/gaurds/normalization/freezePartial.ts +39 -0
  158. package/dist/core/gaurds/normalization/normalizeHeaders.ts +20 -0
  159. package/dist/core/gaurds/normalization/normalizeLink.tsx +14 -0
  160. package/dist/core/gaurds/normalization/normalizeUrlArgument.ts +22 -0
  161. package/dist/core/gaurds/validators/hasProp.ts +116 -0
  162. package/dist/core/gaurds/validators/isArray.ts +4 -0
  163. package/dist/core/gaurds/validators/isArrayOfStrings.ts +7 -0
  164. package/dist/core/gaurds/validators/isAsset.ts +43 -0
  165. package/dist/core/gaurds/validators/isBrowser.ts +5 -0
  166. package/dist/core/gaurds/validators/isBug.ts +5 -0
  167. package/dist/core/gaurds/validators/isCallable.ts +11 -0
  168. package/dist/core/gaurds/validators/isClientSideRoutable.ts +19 -0
  169. package/dist/core/gaurds/validators/isConfigInvalid.ts +10 -0
  170. package/dist/core/gaurds/validators/isDev.ts +56 -0
  171. package/dist/core/gaurds/validators/isErrorDebug.ts +7 -0
  172. package/dist/core/gaurds/validators/isErrorPage.ts +16 -0
  173. package/dist/core/gaurds/validators/isFilePathAbsoluteFilesystem.ts +55 -0
  174. package/dist/core/gaurds/validators/isHtml.ts +9 -0
  175. package/dist/core/gaurds/validators/isNewError.ts +29 -0
  176. package/dist/core/gaurds/validators/isNodeJS.ts +10 -0
  177. package/dist/core/gaurds/validators/isNotFalse.ts +3 -0
  178. package/dist/core/gaurds/validators/isNotNullish.ts +2 -0
  179. package/dist/core/gaurds/validators/isNpmPackage.ts +127 -0
  180. package/dist/core/gaurds/validators/isObject.ts +3 -0
  181. package/dist/core/gaurds/validators/isObjectOfStrings.ts +9 -0
  182. package/dist/core/gaurds/validators/isObjectWithKeys.ts +18 -0
  183. package/dist/core/gaurds/validators/isPlainObject.ts +21 -0
  184. package/dist/core/gaurds/validators/isPromise.ts +9 -0
  185. package/dist/core/gaurds/validators/isPropertyGetter.ts +4 -0
  186. package/dist/core/gaurds/validators/isReact.ts +24 -0
  187. package/dist/core/gaurds/validators/isReactElement.ts +21 -0
  188. package/dist/core/gaurds/validators/isRevealApp.ts +4 -0
  189. package/dist/core/gaurds/validators/isSameErrorMessage.ts +8 -0
  190. package/dist/core/gaurds/validators/isScriptFile.ts +75 -0
  191. package/dist/core/gaurds/validators/isServerSideError.ts +1 -0
  192. package/dist/core/gaurds/validators/isViteCliCall.ts +93 -0
  193. package/dist/core/gaurds/validators/isVitest.ts +7 -0
  194. package/dist/core/gaurds/validators/rollupIsEsm.ts +14 -0
  195. package/dist/core/gaurds/validators/viteIsSSR.ts +23 -0
  196. package/dist/core/globals/contexts/globalContext/getPageFilesExports.ts +28 -0
  197. package/dist/core/globals/contexts/globalContext/index.ts +374 -0
  198. package/dist/core/globals/contexts/globalContext/loadImportBuild.ts +44 -0
  199. package/dist/core/globals/contexts/globalContext/setup.ts +4 -0
  200. package/dist/core/globals/contexts/index.ts +1 -0
  201. package/dist/core/globals/logger/index.ts +1 -0
  202. package/dist/core/globals/logger/numberOfStackTraceLinesToRemove.ts +3 -0
  203. package/dist/core/globals/objects/index.ts +1 -0
  204. package/dist/core/globals/objects/log.ts +24 -0
  205. package/dist/core/globals/patterns/styleFileRE.ts +3 -0
  206. package/dist/core/globals/tags/addPrefixAssertType.ts +11 -0
  207. package/dist/core/globals/tags/addPrefixProjectName.ts +9 -0
  208. package/dist/core/globals/tags/projectTag.ts +3 -0
  209. package/dist/core/globals/tags/projectTagWithVersion.ts +5 -0
  210. package/dist/core/globals/versions/PROJECT_VERSION.ts +2 -0
  211. package/dist/core/globals/versions/projectInfo.ts +5 -0
  212. package/dist/core/handlers/handleErrorWithoutErrorPage.ts +70 -0
  213. package/dist/core/handlers/handlePageContext.ts +15 -0
  214. package/dist/core/handlers/handlePageContextRequestUrl.ts +56 -0
  215. package/dist/core/handlers/openFacebook.ts +20 -0
  216. package/dist/core/hocs/clientOnly.tsx +130 -0
  217. package/dist/core/hooks/callCumulativeHooks.ts +22 -0
  218. package/dist/core/hooks/executeHook.ts +118 -0
  219. package/dist/core/hooks/useConfig/configsCumulative.ts +6 -0
  220. package/dist/core/hooks/useConfig/useConfig-client.ts +82 -0
  221. package/dist/core/hooks/useConfig/useConfig-server.ts +152 -0
  222. package/dist/core/hydration/progressive.ts +252 -0
  223. package/dist/core/index.ts +60 -0
  224. package/dist/core/islands/index.tsx +198 -0
  225. package/dist/core/logging/UnifiedLoggerV2.ts +555 -0
  226. package/dist/core/logging/index.ts +80 -0
  227. package/dist/core/logging/plugins/FilePlugin.ts +132 -0
  228. package/dist/core/logging/plugins/PayloadCMSPlugin.ts +71 -0
  229. package/dist/core/logging/plugins/RemotePlugin.ts +110 -0
  230. package/dist/core/logging/plugins/index.ts +11 -0
  231. package/dist/core/naming/UnifiedNaming.ts +424 -0
  232. package/dist/core/observability/logger.ts +195 -0
  233. package/dist/core/observability/metrics.ts +156 -0
  234. package/dist/core/processing/getters/getAssertErrMsg.ts +49 -0
  235. package/dist/core/processing/getters/getAssetsDir.ts +11 -0
  236. package/dist/core/processing/getters/getBaseServer.ts +16 -0
  237. package/dist/core/processing/getters/getCacheControl.ts +26 -0
  238. package/dist/core/processing/getters/getConfigDefinedAt.ts +73 -0
  239. package/dist/core/processing/getters/getConfigReveal.ts +14 -0
  240. package/dist/core/processing/getters/getConfigValue.ts +68 -0
  241. package/dist/core/processing/getters/getConfigValueBuildTime.ts +92 -0
  242. package/dist/core/processing/getters/getConfigValueFilePathToShowToUser.ts +17 -0
  243. package/dist/core/processing/getters/getCurrentUrl.ts +42 -0
  244. package/dist/core/processing/getters/getEarlyHints.ts +58 -0
  245. package/dist/core/processing/getters/getEnv.ts +33 -0
  246. package/dist/core/processing/getters/getErrorPageId.ts +23 -0
  247. package/dist/core/processing/getters/getExportPath.spec.ts +34 -0
  248. package/dist/core/processing/getters/getExportPath.ts +33 -0
  249. package/dist/core/processing/getters/getFileExtension.ts +19 -0
  250. package/dist/core/processing/getters/getFilePath.ts +269 -0
  251. package/dist/core/processing/getters/getGlobalObject.ts +53 -0
  252. package/dist/core/processing/getters/getHeadSetting.tsx +36 -0
  253. package/dist/core/processing/getters/getHook.ts +222 -0
  254. package/dist/core/processing/getters/getHookFilePathToShowToUser.ts +12 -0
  255. package/dist/core/processing/getters/getHtmlTags.ts +341 -0
  256. package/dist/core/processing/getters/getHttpRequestAsyncStore.ts +122 -0
  257. package/dist/core/processing/getters/getHttpResponseBody.ts +177 -0
  258. package/dist/core/processing/getters/getMostSimilar.ts +72 -0
  259. package/dist/core/processing/getters/getOutDirs.ts +160 -0
  260. package/dist/core/processing/getters/getPageAssets/getManifestEntry.ts +164 -0
  261. package/dist/core/processing/getters/getPageAssets/retrieveAssetsDev.ts +96 -0
  262. package/dist/core/processing/getters/getPageAssets/retrieveAssetsProd.ts +86 -0
  263. package/dist/core/processing/getters/getPageAssets/sortPageAssetsForEarlyHintsHeader.ts +40 -0
  264. package/dist/core/processing/getters/getPageAssets.ts +140 -0
  265. package/dist/core/processing/getters/getPageConfig.ts +14 -0
  266. package/dist/core/processing/getters/getPageContext.ts +64 -0
  267. package/dist/core/processing/getters/getPageContextCurrent.ts +19 -0
  268. package/dist/core/processing/getters/getPageContextFromHooks.ts +335 -0
  269. package/dist/core/processing/getters/getPageContextProxyForUser.ts +97 -0
  270. package/dist/core/processing/getters/getPageContextRequestUrl.ts +22 -0
  271. package/dist/core/processing/getters/getPageContextSerializedInHtml.ts +32 -0
  272. package/dist/core/processing/getters/getPageContextUrlComputed.ts +410 -0
  273. package/dist/core/processing/getters/getPageElement.tsx +148 -0
  274. package/dist/core/processing/getters/getPageFiles/analyzeClientSide.ts +50 -0
  275. package/dist/core/processing/getters/getPageFiles/analyzePageServerSide.ts +32 -0
  276. package/dist/core/processing/getters/getPageFiles/getExportNames.ts +16 -0
  277. package/dist/core/processing/getters/getPageFiles/getExports.ts +193 -0
  278. package/dist/core/processing/getters/getPageFiles/index.ts +9 -0
  279. package/dist/core/processing/getters/getPageFiles/parseGlobResults.ts +167 -0
  280. package/dist/core/processing/getters/getPageFiles/setPageFiles.ts +76 -0
  281. package/dist/core/processing/getters/getPrefetchSettingResolved.ts.ts +87 -0
  282. package/dist/core/processing/getters/getProjectError.ts +18 -0
  283. package/dist/core/processing/getters/getPropAccessNotation.ts +10 -0
  284. package/dist/core/processing/getters/getRandomId.ts +15 -0
  285. package/dist/core/processing/getters/getRevalidationKey.ts +5 -0
  286. package/dist/core/processing/getters/getRevealClientEntry.ts +7 -0
  287. package/dist/core/processing/getters/getRevealConfig/configDefinitionsBuiltIn.ts +711 -0
  288. package/dist/core/processing/getters/getRevealConfig/crawlPlusFiles.ts +409 -0
  289. package/dist/core/processing/getters/getRevealConfig/filesystemRouting.spec.ts +40 -0
  290. package/dist/core/processing/getters/getRevealConfig/filesystemRouting.ts +286 -0
  291. package/dist/core/processing/getters/getRevealConfig/index.ts +1641 -0
  292. package/dist/core/processing/getters/getRevealConfig/loadFileAtConfigTime.ts +181 -0
  293. package/dist/core/processing/getters/getRevealConfig/resolvePointerImport.ts +240 -0
  294. package/dist/core/processing/getters/getRevealConfig/transformPointerImports.spec.ts +30 -0
  295. package/dist/core/processing/getters/getRevealConfig/transformPointerImports.ts +244 -0
  296. package/dist/core/processing/getters/getRevealConfig/transpileAndExecuteFile.ts +490 -0
  297. package/dist/core/processing/getters/getTagAttributesString.ts +27 -0
  298. package/dist/core/processing/getters/getTerminWidth.ts +9 -0
  299. package/dist/core/processing/getters/getValuePrintable.ts +6 -0
  300. package/dist/core/processing/getters/getViteDevScript.ts +47 -0
  301. package/dist/core/processing/iterators/analyzePage.ts +65 -0
  302. package/dist/core/processing/iterators/includes.ts +10 -0
  303. package/dist/core/processing/iterators/index.ts +2 -0
  304. package/dist/core/processing/iterators/objectKeys.ts +6 -0
  305. package/dist/core/processing/parsers/parseEsModule.ts +43 -0
  306. package/dist/core/processing/parsers/parseTransform.ts +36 -0
  307. package/dist/core/processing/serializers/notSerializable.ts +2 -0
  308. package/dist/core/processing/serializers/replaceWithParserPath.ts +30 -0
  309. package/dist/core/processing/serializers/serializePage/PageConfigSerialized.ts +45 -0
  310. package/dist/core/processing/serializers/serializePage/parsePageConfigs.ts +223 -0
  311. package/dist/core/processing/serializers/serializePage/serializeConfigValues.ts +336 -0
  312. package/dist/core/processing/serializers/serializePageContextClientSide.ts +179 -0
  313. package/dist/core/processing/serializers/stringify.ts +188 -0
  314. package/dist/core/processing/serializers/stringifyTypes.ts +103 -0
  315. package/dist/core/processing/setters/addIs404ToPageProps.ts +27 -0
  316. package/dist/core/processing/setters/setAlwaysShowStackTrace.ts +7 -0
  317. package/dist/core/processing/transformers/augmentType.ts +10 -0
  318. package/dist/core/processing/transformers/rollupSourceMap.ts +23 -0
  319. package/dist/core/processing/transformers/slice.ts +52 -0
  320. package/dist/core/renderer/page/executeOnBeforeRenderAndDataHooks.ts +53 -0
  321. package/dist/core/renderer/page/executeOnRenderHtmlHook.ts +261 -0
  322. package/dist/core/renderer/page/index.ts +804 -0
  323. package/dist/core/renderer/page/inferMediaType.ts +128 -0
  324. package/dist/core/renderer/page/loadUserFilesServerSide.ts +154 -0
  325. package/dist/core/renderer/page/preparePageContextForUserConsumption.ts +55 -0
  326. package/dist/core/renderer/page/preparePageContextForUserConsumptionServerSide.ts +38 -0
  327. package/dist/core/renderer/page/renderPageAlreadyRouted.ts +373 -0
  328. package/dist/core/renderer/page/resolveRedirects.ts +75 -0
  329. package/dist/core/renderer/prerender/index.ts +1 -0
  330. package/dist/core/renderer/prerender/runPrerender.ts +1141 -0
  331. package/dist/core/renderer/prerender/utils.ts +22 -0
  332. package/dist/core/renderer/stream/html.ts +408 -0
  333. package/dist/core/renderer/stream/index.ts +1001 -0
  334. package/dist/core/renderer/stream/onLoad.ts +14 -0
  335. package/dist/core/renderer/stream/react-streaming.ts +69 -0
  336. package/dist/core/renderer/stream/utils.ts +66 -0
  337. package/dist/core/resilience/circuit-breaker.ts +212 -0
  338. package/dist/core/resilience/retry.ts +172 -0
  339. package/dist/core/result/adapters.ts +254 -0
  340. package/dist/core/result.ts +332 -0
  341. package/dist/core/router/abort.ts +339 -0
  342. package/dist/core/router/apiRoutes.ts +94 -0
  343. package/dist/core/router/debug.ts +19 -0
  344. package/dist/core/router/deduceRouteStringFromFilesystemPath.ts +75 -0
  345. package/dist/core/router/dynamicApiRoutes.ts +18 -0
  346. package/dist/core/router/dynamicPageRoutes.ts +18 -0
  347. package/dist/core/router/executeGuardHook.ts +45 -0
  348. package/dist/core/router/executeOnBeforeRouteHook.ts +161 -0
  349. package/dist/core/router/index.ts +230 -0
  350. package/dist/core/router/loadPageRoutes.ts +155 -0
  351. package/dist/core/router/noRouteMatch.ts +1 -0
  352. package/dist/core/router/pageRoutes.ts +159 -0
  353. package/dist/core/router/resolvePrecedence.ts +128 -0
  354. package/dist/core/router/resolveRoute.ts +29 -0
  355. package/dist/core/router/resolveRouteFunction.ts +193 -0
  356. package/dist/core/router/resolveRouteString.ts +204 -0
  357. package/dist/core/router/resolveRouteUtils.ts +77 -0
  358. package/dist/core/router/resolveUrlPathname.ts +67 -0
  359. package/dist/core/router/routeInternal.ts +97 -0
  360. package/dist/core/router/utils.ts +30 -0
  361. package/dist/core/services/BaseService.ts +403 -0
  362. package/dist/core/targets/client/abort.ts +11 -0
  363. package/dist/core/targets/client/createPageContext.ts +48 -0
  364. package/dist/core/targets/client/entry.ts +15 -0
  365. package/dist/core/targets/client/executeOnRenderClientHook.ts +94 -0
  366. package/dist/core/targets/client/history.ts +142 -0
  367. package/dist/core/targets/client/index.ts +9 -0
  368. package/dist/core/targets/client/initClientRouter.ts +48 -0
  369. package/dist/core/targets/client/initOnLinkClick.ts +54 -0
  370. package/dist/core/targets/client/loadUserFilesClientSide.ts +92 -0
  371. package/dist/core/targets/client/navigate.ts +45 -0
  372. package/dist/core/targets/client/onBrowserHistoryNavigation.ts +85 -0
  373. package/dist/core/targets/client/onLoad.ts +10 -0
  374. package/dist/core/targets/client/pageContextInitIsPassedToClient.ts +2 -0
  375. package/dist/core/targets/client/pageFiles.ts +4 -0
  376. package/dist/core/targets/client/prefetch.ts +399 -0
  377. package/dist/core/targets/client/preparePageContextForUserConsumptionClientSide.ts +48 -0
  378. package/dist/core/targets/client/removeBuiltInOverrides.ts +37 -0
  379. package/dist/core/targets/client/removeFoucBuster.ts +70 -0
  380. package/dist/core/targets/client/renderPageClientSide.ts +1817 -0
  381. package/dist/core/targets/client/router.ts +15 -0
  382. package/dist/core/targets/client/scrollRestoration.ts +37 -0
  383. package/dist/core/targets/client/setScrollPosition.ts +87 -0
  384. package/dist/core/targets/client/skipLink.ts +63 -0
  385. package/dist/core/targets/client/utils.ts +34 -0
  386. package/dist/core/targets/http/createHttpResponse.ts +254 -0
  387. package/dist/core/targets/http/fetchBanner.ts +25 -0
  388. package/dist/core/targets/http/fetchCard.ts +25 -0
  389. package/dist/core/targets/http/fetchEvents.ts +25 -0
  390. package/dist/core/targets/http/fetchHero.ts +25 -0
  391. package/dist/core/targets/http/fetchMainInfos.ts +25 -0
  392. package/dist/core/targets/http/fetchPage.ts +78 -0
  393. package/dist/core/targets/http/fetchPages.ts +70 -0
  394. package/dist/core/targets/http/fetchVideos.ts +26 -0
  395. package/dist/core/targets/http/fetchYouTube.ts +90 -0
  396. package/dist/core/targets/server/entry.ts +43 -0
  397. package/dist/core/targets/server/middleware/addSsrMiddleware.ts +52 -0
  398. package/dist/core/targets/server/onLoad.ts +7 -0
  399. package/dist/core/targets/server/pageFiles.ts +4 -0
  400. package/dist/core/targets/server/root.ts +10 -0
  401. package/dist/core/targets/server/utils.ts +20 -0
  402. package/dist/core/targets/url/index.ts +439 -0
  403. package/dist/core/targets/url/modifyUrl.ts +45 -0
  404. package/dist/core/targets/url/parseUrl.ts +440 -0
  405. package/dist/core/targets/url/parseUrlExtras.ts +193 -0
  406. package/dist/core/targets/url/redirectHard.ts +3 -0
  407. package/dist/core/targets/url/updateCurrentPath.ts +52 -0
  408. package/dist/core/targets/url/urlToFile.ts +47 -0
  409. package/dist/core/types/UnifiedTypes.ts +493 -0
  410. package/dist/core/types/contracts.ts +61 -0
  411. package/dist/core/types/generator.ts +316 -0
  412. package/dist/core/utils/array/includes.ts +10 -0
  413. package/dist/core/utils/array/slice.ts +52 -0
  414. package/dist/core/utils/array/sorter.ts +130 -0
  415. package/dist/core/utils/array/stringifyStringArray.ts +7 -0
  416. package/dist/core/utils/array/unique.ts +5 -0
  417. package/dist/core/utils/async/genPromise.ts +8 -0
  418. package/dist/core/utils/async/pLimit.ts +157 -0
  419. package/dist/core/utils/async/sleep.ts +3 -0
  420. package/dist/core/utils/async/throttle.ts +14 -0
  421. package/dist/core/utils/index.ts +31 -0
  422. package/dist/core/utils/object/changeEnumerable.ts +9 -0
  423. package/dist/core/utils/object/deepEqual.ts +10 -0
  424. package/dist/core/utils/object/objectAssign.ts +16 -0
  425. package/dist/core/utils/object/objectDefineProperty.ts +15 -0
  426. package/dist/core/utils/object/objectEntries.ts +7 -0
  427. package/dist/core/utils/object/objectEntriesForEach.ts +7 -0
  428. package/dist/core/utils/object/objectFromEntries.ts +6 -0
  429. package/dist/core/utils/string/addWhitespace.ts +9 -0
  430. package/dist/core/utils/string/capitalizeFirstLetter.ts +8 -0
  431. package/dist/core/utils/string/compareString.ts +7 -0
  432. package/dist/core/utils/string/escapeHtml.ts +10 -0
  433. package/dist/core/utils/string/escapeRegex.ts +4 -0
  434. package/dist/core/utils/string/joinEnglish.ts +18 -0
  435. package/dist/core/utils/string/removeEmptyLines.ts +6 -0
  436. package/dist/core/utils/string/stripAnsi.ts +24 -0
  437. package/dist/core/utils/string/trimWithAnsi.ts +40 -0
  438. package/dist/core/utils/string/truncateString.ts +19 -0
  439. package/dist/core/utils/time/humanizeTime.ts +24 -0
  440. package/dist/exports/RenderErrorPage.js +3 -0
  441. package/dist/exports/__internal.js +3 -0
  442. package/dist/exports/abort.js +3 -0
  443. package/dist/exports/bin-entry.js +3 -0
  444. package/dist/exports/cli.js +3 -0
  445. package/dist/exports/client.js +3 -0
  446. package/dist/exports/config.js +1 -0
  447. package/dist/exports/helpers.js +1 -0
  448. package/dist/exports/index.js +33 -0
  449. package/dist/exports/plugin.js +3 -0
  450. package/dist/exports/prerender.js +3 -0
  451. package/dist/exports/router.js +3 -0
  452. package/dist/exports/routing.js +3 -0
  453. package/dist/exports/server.js +3 -0
  454. package/dist/exports/setup.js +3 -0
  455. package/dist/exports/types.js +1 -0
  456. package/dist/index.d.ts +1 -0
  457. package/dist/index.js +33 -0
  458. package/dist/integration/hydration.ts +52 -0
  459. package/dist/integration/onRenderClient.tsx +377 -0
  460. package/dist/integration/onRenderHtml.tsx +761 -0
  461. package/dist/integration/ssrEffect.ts +31 -0
  462. package/dist/integration/styles.css +141 -0
  463. package/dist/plugins/baseUrls.ts +54 -0
  464. package/dist/plugins/buildConfig/index.ts +701 -0
  465. package/dist/plugins/buildConfig/injectRollupInputs.ts +36 -0
  466. package/dist/plugins/commonConfig.ts +112 -0
  467. package/dist/plugins/config/assertResolveAlias.ts +99 -0
  468. package/dist/plugins/config/assertRevealConfig.ts +116 -0
  469. package/dist/plugins/config/fixServerAssets.ts +213 -0
  470. package/dist/plugins/config/index.ts +227 -0
  471. package/dist/plugins/config/pickFirst.ts +3 -0
  472. package/dist/plugins/config/resolveBase.ts +78 -0
  473. package/dist/plugins/devConfig/determineFsAllowList.ts +34 -0
  474. package/dist/plugins/devConfig/determineOptimizeDeps.ts +129 -0
  475. package/dist/plugins/devConfig/index.ts +222 -0
  476. package/dist/plugins/distFileNames.ts +341 -0
  477. package/dist/plugins/envVars.ts +150 -0
  478. package/dist/plugins/extractAssetsPlugin.ts +318 -0
  479. package/dist/plugins/extractExportNamesPlugin.ts +154 -0
  480. package/dist/plugins/fileEnv.ts +374 -0
  481. package/dist/plugins/importBuild/getRevealManifest.ts +20 -0
  482. package/dist/plugins/importBuild/index.ts +120 -0
  483. package/dist/plugins/importUserCode/addImportStatement.ts +32 -0
  484. package/dist/plugins/importUserCode/debug.ts +2 -0
  485. package/dist/plugins/importUserCode/getConfigFileExport.ts +24 -0
  486. package/dist/plugins/importUserCode/getVirtualFilePageConfigValuesAll.ts +95 -0
  487. package/dist/plugins/importUserCode/getVirtualFilePageConfigs.ts +150 -0
  488. package/dist/plugins/importUserCode/index.ts +375 -0
  489. package/dist/plugins/importUserCode/isRuntimeEnvMatch.ts +31 -0
  490. package/dist/plugins/index.ts +233 -0
  491. package/dist/plugins/onLoad.ts +12 -0
  492. package/dist/plugins/packageJsonFile.ts +62 -0
  493. package/dist/plugins/payload/index.ts +62 -0
  494. package/dist/plugins/previewConfig.ts +95 -0
  495. package/dist/plugins/react/index.ts +72 -0
  496. package/dist/plugins/removeRequireHookPlugin.ts +27 -0
  497. package/dist/plugins/resolveClientEntriesDev.ts +87 -0
  498. package/dist/plugins/reveal/index.ts +39 -0
  499. package/dist/plugins/reveal/remove-use-client-server.ts +52 -0
  500. package/dist/plugins/setGlobalContext.ts +53 -0
  501. package/dist/plugins/suppressRollupWarning.ts +94 -0
  502. package/dist/plugins/utils.ts +33 -0
  503. package/dist/plugins/vercel/+config.ts +18 -0
  504. package/dist/plugins/vercel/functions/assert.ts +13 -0
  505. package/dist/plugins/vercel/functions/build.ts +484 -0
  506. package/dist/plugins/vercel/functions/config.ts +147 -0
  507. package/dist/plugins/vercel/functions/helpers.ts +70 -0
  508. package/dist/plugins/vercel/functions/prerender.ts +140 -0
  509. package/dist/plugins/vercel/functions/route-regex.ts +37 -0
  510. package/dist/plugins/vercel/functions/utils.ts +33 -0
  511. package/dist/plugins/vercel/functions/vike.ts +754 -0
  512. package/dist/plugins/vercel/index.ts +186 -0
  513. package/dist/plugins/vercel/plugin.ts +45 -0
  514. package/dist/plugins/vercel/schemas/config/prerender-config.ts +20 -0
  515. package/dist/plugins/vercel/schemas/config/vc-config.ts +45 -0
  516. package/dist/plugins/vercel/schemas/config/vercel.ts +130 -0
  517. package/dist/plugins/vercel/schemas/exports.ts +12 -0
  518. package/dist/plugins/vercel/templates/edge-helpers.ts +72 -0
  519. package/dist/plugins/vercel/templates/node-helpers.ts +60 -0
  520. package/dist/plugins/vercel/templates/ssr_.template.ts +25 -0
  521. package/dist/plugins/vercel/templates/ssr_edge_.template.ts +20 -0
  522. package/dist/plugins/vercel/templates/utils.ts +31 -0
  523. package/dist/plugins/workaroundCssModuleHmr.ts +23 -0
  524. package/dist/types/index.ts +50 -0
  525. package/dist/types/interfaces/app.ts +700 -0
  526. package/dist/types/interfaces/client.ts +10 -0
  527. package/dist/types/interfaces/config.ts +481 -0
  528. package/dist/types/interfaces/context.ts +677 -0
  529. package/dist/types/interfaces/error.ts +6 -0
  530. package/dist/types/interfaces/file.ts +98 -0
  531. package/dist/types/interfaces/host.ts +209 -0
  532. package/dist/types/interfaces/log.ts +3 -0
  533. package/dist/types/interfaces/logic.ts +46 -0
  534. package/dist/types/interfaces/manifest.ts +15 -0
  535. package/dist/types/interfaces/node.ts +8 -0
  536. package/dist/types/interfaces/page.ts +154 -0
  537. package/dist/types/interfaces/reveal.ts +118 -0
  538. package/dist/types/interfaces/tag.ts +3 -0
  539. package/dist/types/modules/assets.d.ts +57 -0
  540. package/dist/types/modules/env.d.ts +34 -0
  541. package/dist/types/modules/global.d.ts +10 -0
  542. package/dist/types/modules/index.d.ts +1 -0
  543. package/dist/types/modules/node.d.ts +2 -0
  544. package/dist/types/modules/payload.d.ts +2 -0
  545. package/dist/types/modules/reveal-vercel.d.ts +19 -0
  546. package/dist/types/modules/reveal.d.ts +1 -0
  547. package/dist/types/modules/stripe.d.ts +41 -0
  548. package/dist/types/modules/supabase.d.ts +19 -0
  549. package/dist/types/modules/tailwindcss.d.ts +49 -0
  550. package/dist/types/modules/vite.d.ts +7 -0
  551. package/dist/types/namespaces/Config.ts +291 -0
  552. package/dist/types/namespaces/PageContext.ts +23 -0
  553. package/dist/types/namespaces/RevealNamespace.ts +51 -0
  554. package/dist/types/namespaces/index.ts +3 -0
  555. package/dist/ui/accents/DiagonalGrid.tsx +36 -0
  556. package/dist/ui/accents/Glass.tsx +33 -0
  557. package/dist/ui/accents/Parallax.tsx +78 -0
  558. package/dist/ui/accents/Shadow.tsx +28 -0
  559. package/dist/ui/accents/index.tsx +4 -0
  560. package/dist/ui/accessibility/index.ts +168 -0
  561. package/dist/ui/ai/ChatGPTAssistant.tsx +113 -0
  562. package/dist/ui/ai/index.ts +3 -0
  563. package/dist/ui/animations/container.ts +7 -0
  564. package/dist/ui/animations/content.ts +16 -0
  565. package/dist/ui/animations/fade.ts +16 -0
  566. package/dist/ui/animations/index.ts +6 -0
  567. package/dist/ui/animations/slide.ts +23 -0
  568. package/dist/ui/animations/text.ts +14 -0
  569. package/dist/ui/animations/transition.ts +1 -0
  570. package/dist/ui/audio/AudioTrack.tsx +26 -0
  571. package/dist/ui/audio/index.tsx +1 -0
  572. package/dist/ui/backgrounds/Diagonal.tsx +46 -0
  573. package/dist/ui/backgrounds/GradientConic.tsx +21 -0
  574. package/dist/ui/backgrounds/GradientConicRev.tsx +50 -0
  575. package/dist/ui/backgrounds/GradientGlass.tsx +28 -0
  576. package/dist/ui/backgrounds/GradientRadial.tsx +37 -0
  577. package/dist/ui/backgrounds/GradientRadialLeft.tsx +33 -0
  578. package/dist/ui/backgrounds/GradientToBottom.tsx +59 -0
  579. package/dist/ui/backgrounds/GradientToTop.tsx +60 -0
  580. package/dist/ui/backgrounds/Solid.tsx +50 -0
  581. package/dist/ui/backgrounds/Straight.tsx +55 -0
  582. package/dist/ui/backgrounds/TopRight.tsx +15 -0
  583. package/dist/ui/backgrounds/Wrapper.tsx +33 -0
  584. package/dist/ui/backgrounds/index.tsx +12 -0
  585. package/dist/ui/buttons/Button.tsx +54 -0
  586. package/dist/ui/buttons/DisclosureButton.tsx +35 -0
  587. package/dist/ui/buttons/GradientButton.tsx +51 -0
  588. package/dist/ui/buttons/IconButton.tsx +24 -0
  589. package/dist/ui/buttons/LikeButton.tsx +221 -0
  590. package/dist/ui/buttons/MobileMenuButton.tsx +63 -0
  591. package/dist/ui/buttons/MusicButton.tsx +53 -0
  592. package/dist/ui/buttons/SignUpButton.tsx +18 -0
  593. package/dist/ui/buttons/index.tsx +8 -0
  594. package/dist/ui/cards/Card.tsx +255 -0
  595. package/dist/ui/cards/ProductCard.tsx +291 -0
  596. package/dist/ui/cards/VideoCard.tsx +201 -0
  597. package/dist/ui/cards/index.tsx +3 -0
  598. package/dist/ui/contexts/DisclosureContext.tsx +44 -0
  599. package/dist/ui/contexts/GlobalContext.tsx +67 -0
  600. package/dist/ui/contexts/MenuContext.tsx +8 -0
  601. package/dist/ui/contexts/PageContext.tsx +28 -0
  602. package/dist/ui/contexts/ThemeContext.tsx +195 -0
  603. package/dist/ui/controls/MusicHeader.tsx +484 -0
  604. package/dist/ui/controls/MusicPlayer.tsx +76 -0
  605. package/dist/ui/controls/MusicSidebar.tsx +118 -0
  606. package/dist/ui/controls/MusicSlider.tsx +25 -0
  607. package/dist/ui/controls/MusicUpload.tsx +296 -0
  608. package/dist/ui/controls/PlayPause.tsx +64 -0
  609. package/dist/ui/controls/PlayerContent.tsx +205 -0
  610. package/dist/ui/controls/SearchContent.tsx +58 -0
  611. package/dist/ui/controls/SearchInput.tsx +118 -0
  612. package/dist/ui/controls/Searchbar.tsx +53 -0
  613. package/dist/ui/controls/SidebarItem.tsx +57 -0
  614. package/dist/ui/controls/SongItem.tsx +45 -0
  615. package/dist/ui/controls/VideoPlayer.tsx +36 -0
  616. package/dist/ui/controls/index.tsx +13 -0
  617. package/dist/ui/dividers/Horizontal.tsx +18 -0
  618. package/dist/ui/dividers/Transparent.tsx +7 -0
  619. package/dist/ui/dividers/index.tsx +2 -0
  620. package/dist/ui/error/ErrorBoundary.tsx +150 -0
  621. package/dist/ui/error/index.tsx +1 -0
  622. package/dist/ui/forms/Input.tsx +38 -0
  623. package/dist/ui/forms/MediaItem.tsx +105 -0
  624. package/dist/ui/forms/index.tsx +2 -0
  625. package/dist/ui/game/Enemy.tsx +52 -0
  626. package/dist/ui/game/Fighters.tsx +38 -0
  627. package/dist/ui/game/GameControls.tsx +37 -0
  628. package/dist/ui/game/HealthBar.tsx +18 -0
  629. package/dist/ui/game/Player.tsx +70 -0
  630. package/dist/ui/game/index.tsx +5 -0
  631. package/dist/ui/hooks/useApiData.ts +57 -0
  632. package/dist/ui/hooks/useAuthModal.ts +18 -0
  633. package/dist/ui/hooks/useCart.ts +21 -0
  634. package/dist/ui/hooks/useChatGPT.ts +94 -0
  635. package/dist/ui/hooks/useCustomProps.ts +31 -0
  636. package/dist/ui/hooks/useData.ts +10 -0
  637. package/dist/ui/hooks/useDebounce.ts +52 -0
  638. package/dist/ui/hooks/useDisclosure.ts +8 -0
  639. package/dist/ui/hooks/useGame.ts +1147 -0
  640. package/dist/ui/hooks/useLayoutClasses.ts +70 -0
  641. package/dist/ui/hooks/useLazyLoad.ts +78 -0
  642. package/dist/ui/hooks/useLikeSong.ts +22 -0
  643. package/dist/ui/hooks/useLivePreview.ts +60 -0
  644. package/dist/ui/hooks/useMenu.ts +6 -0
  645. package/dist/ui/hooks/useOnPlay.ts +23 -0
  646. package/dist/ui/hooks/usePageContext.ts +174 -0
  647. package/dist/ui/hooks/useParallax.ts +161 -0
  648. package/dist/ui/hooks/usePreviewModal.ts +25 -0
  649. package/dist/ui/hooks/useScreenSize.ts +56 -0
  650. package/dist/ui/hooks/useTheme.ts +6 -0
  651. package/dist/ui/images/Carousel.tsx +326 -0
  652. package/dist/ui/images/Circle.tsx +9 -0
  653. package/dist/ui/images/Defs.tsx +7 -0
  654. package/dist/ui/images/Image.tsx +127 -0
  655. package/dist/ui/images/ImageGrid.tsx +73 -0
  656. package/dist/ui/images/Logo.tsx +22 -0
  657. package/dist/ui/images/Path.tsx +27 -0
  658. package/dist/ui/images/Pattern.tsx +70 -0
  659. package/dist/ui/images/PromoBanner.tsx +25 -0
  660. package/dist/ui/images/Rect.tsx +10 -0
  661. package/dist/ui/images/SVG.tsx +58 -0
  662. package/dist/ui/images/Stop.tsx +15 -0
  663. package/dist/ui/images/index.tsx +12 -0
  664. package/dist/ui/layouts/classNames.ts +8 -0
  665. package/dist/ui/layouts/container.ts +20 -0
  666. package/dist/ui/layouts/flex.ts +13 -0
  667. package/dist/ui/layouts/grid.ts +11 -0
  668. package/dist/ui/layouts/main.ts +31 -0
  669. package/dist/ui/layouts/responsive.ts +28 -0
  670. package/dist/ui/layouts/stack.ts +24 -0
  671. package/dist/ui/lists/DescriptionList.tsx +41 -0
  672. package/dist/ui/lists/DisclosurePanel.tsx +20 -0
  673. package/dist/ui/lists/JobOpeningsList.tsx +54 -0
  674. package/dist/ui/lists/List.tsx +18 -0
  675. package/dist/ui/lists/ListElements.tsx +43 -0
  676. package/dist/ui/lists/ListItem.tsx +63 -0
  677. package/dist/ui/lists/ProductList.tsx +37 -0
  678. package/dist/ui/lists/StatsList.tsx +64 -0
  679. package/dist/ui/lists/UList.tsx +54 -0
  680. package/dist/ui/lists/index.ts +9 -0
  681. package/dist/ui/navigation/DesktopMenu.tsx +14 -0
  682. package/dist/ui/navigation/Footer.tsx +128 -0
  683. package/dist/ui/navigation/Link.tsx +225 -0
  684. package/dist/ui/navigation/MobileMenu.tsx +26 -0
  685. package/dist/ui/navigation/NavigationLinks.tsx +244 -0
  686. package/dist/ui/navigation/NotFound.tsx +12 -0
  687. package/dist/ui/navigation/Route.tsx +120 -0
  688. package/dist/ui/navigation/Transition.tsx +40 -0
  689. package/dist/ui/navigation/index.tsx +8 -0
  690. package/dist/ui/notifications/Banner.tsx +69 -0
  691. package/dist/ui/notifications/Error.tsx +12 -0
  692. package/dist/ui/notifications/Loader.tsx +14 -0
  693. package/dist/ui/notifications/NoResults.tsx +11 -0
  694. package/dist/ui/notifications/index.tsx +4 -0
  695. package/dist/ui/providers/AppProvider.tsx +115 -0
  696. package/dist/ui/providers/DisclosureProvider.tsx +21 -0
  697. package/dist/ui/providers/MenuProvider.tsx +40 -0
  698. package/dist/ui/providers/PageContextProvider.tsx +176 -0
  699. package/dist/ui/providers/ThemeProvider.tsx +196 -0
  700. package/dist/ui/shells/App.tsx +57 -0
  701. package/dist/ui/shells/Container.tsx +74 -0
  702. package/dist/ui/shells/Disclosure.tsx +72 -0
  703. package/dist/ui/shells/Field.tsx +21 -0
  704. package/dist/ui/shells/Flex.tsx +193 -0
  705. package/dist/ui/shells/Grid.tsx +118 -0
  706. package/dist/ui/shells/Header.tsx +123 -0
  707. package/dist/ui/shells/Main.tsx +96 -0
  708. package/dist/ui/shells/Nav.tsx +138 -0
  709. package/dist/ui/shells/Section.tsx +94 -0
  710. package/dist/ui/shells/Skeleton.tsx +24 -0
  711. package/dist/ui/shells/index.ts +11 -0
  712. package/dist/ui/text/Article.tsx +141 -0
  713. package/dist/ui/text/Currency.tsx +29 -0
  714. package/dist/ui/text/Heading.tsx +29 -0
  715. package/dist/ui/text/Label.tsx +24 -0
  716. package/dist/ui/text/Motto.tsx +40 -0
  717. package/dist/ui/text/Paragraph.tsx +20 -0
  718. package/dist/ui/text/Span.tsx +20 -0
  719. package/dist/ui/text/TagLine.tsx +20 -0
  720. package/dist/ui/text/Time.tsx +36 -0
  721. package/dist/ui/text/WelcomeHeading.tsx +40 -0
  722. package/dist/ui/text/index.ts +10 -0
  723. package/dist/ui/video/VideoComponent.tsx +23 -0
  724. package/dist/ui/video/VideoDetail.tsx +33 -0
  725. package/dist/ui/video/VideoItem.tsx +51 -0
  726. package/dist/ui/video/VideoList.tsx +155 -0
  727. package/dist/ui/video/index.ts +4 -0
  728. package/package.json +721 -0
@@ -0,0 +1,22 @@
1
+ export {
2
+ doNotCreateExtraDirectory,
3
+ getPageContextRequestUrl,
4
+ pageContextJsonFileExtension,
5
+ }
6
+
7
+ // This module isn't loaded by the client-side of Server Routing => we don't inlcude `urlToFile` to `./utils.ts`
8
+ import { urlToFile } from "../../targets/url/urlToFile.js"
9
+
10
+ const pageContextJsonFileExtension = ".pageContext.json"
11
+ // `/some-base-url/index.pageContext.json` instead of `/some-base-url.pageContext.json` in order to comply to common reverse proxy setups, see https://github.com/revealjs/reveal/issues/443
12
+ const doNotCreateExtraDirectory = false
13
+
14
+ // See node/renderPage/handlePageContextRequestUrl.ts
15
+ function getPageContextRequestUrl(url: string): string {
16
+ const pageContextRequestUrl = urlToFile(
17
+ url,
18
+ pageContextJsonFileExtension,
19
+ doNotCreateExtraDirectory
20
+ )
21
+ return pageContextRequestUrl
22
+ }
@@ -0,0 +1,32 @@
1
+ // import { parse } from "@brillout/json-serializer/parse";
2
+ import { assert } from "../../gaurds/assertions/assert/base.js"
3
+ import { assertUsage } from "../../gaurds/assertions/assertUsage/base.js"
4
+ import { hasProp } from "../../targets/server/utils.js"
5
+ import { parse } from "../parsers/parseTransform.js"
6
+
7
+ export { getPageContextSerializedInHtml }
8
+
9
+ function getPageContextSerializedInHtml(): {
10
+ pageId: string
11
+ routeParams: Record<string, string>
12
+ } {
13
+ // elem should exist because:
14
+ // 1. <script id="reveal_pageContext" type="application/json"> appears before the <script> that loads Reveal's client runtime (which includes this file)
15
+ // 2. <script id="reveal_pageContext" type="application/json"> is neither async nor defer
16
+ // See https://github.com/revealjs/reveal/pull/1271
17
+ const id = "reveal_pageContext"
18
+ const elem = document.getElementById(id)
19
+ assertUsage(
20
+ elem,
21
+ // It seems like it can be missing because of malformed HTML: https://github.com/revealjs/reveal/issues/913
22
+ `Couldn't find #${id} (which Reveal automatically injects in the HTML): make sure it exists (i.e. don't remove it and make sure your HTML isn't malformed)`
23
+ )
24
+ const pageContextJson = elem.textContent
25
+ assert(pageContextJson)
26
+
27
+ const pageContextSerializedInHtml = parse(pageContextJson)
28
+ assert(hasProp(pageContextSerializedInHtml, "pageId", "string"))
29
+ assert(hasProp(pageContextSerializedInHtml, "routeParams", "string{}"))
30
+
31
+ return pageContextSerializedInHtml
32
+ }
@@ -0,0 +1,410 @@
1
+ export { assertPageContextUrl, getPageContextUrlComputed }
2
+ export type {
3
+ PageContextUrlClient,
4
+ PageContextUrlInternal,
5
+ PageContextUrlServer,
6
+ PageContextUrlSource,
7
+ }
8
+
9
+ import {
10
+ UrlPublic,
11
+ assert,
12
+ assertWarning,
13
+ changeEnumerable,
14
+ isBrowser,
15
+ isPlainObject,
16
+ isPropertyGetter,
17
+ parseUrl,
18
+ } from "../../utils/index.js"
19
+ // =====================
20
+ // File determining the URL logic.
21
+ // URLs need to be computed, because the user can modify the URL e.g. with onBeforeRoute() for i18n.
22
+ // =====================
23
+
24
+ import { objectDefineProperty } from "../../utils/object/objectDefineProperty.js"
25
+
26
+ // TODO/v1-release: move pageContext.urlParsed to pageContext.url
27
+ type PageContextUrlComputed = {
28
+ /** Parsed information about the current URL */
29
+ urlParsed: UrlPublic
30
+ /** The URL pathname, e.g. `/product/42` of `https://example.com/product/42?details=yes#reviews` */
31
+ urlPathname: string
32
+ }
33
+
34
+ type PageContextUrl = {
35
+ /** The URL of the HTTP request */
36
+ urlOriginal: string
37
+ } & PageContextUrlComputed
38
+
39
+ type PageContextUrlInternal = PageContextUrl & {
40
+ _urlRewrite: string | null
41
+ }
42
+
43
+ type PageContextUrlClient = PageContextUrl
44
+
45
+ type PageContextUrlServer = PageContextUrl & {
46
+ urlParsed: Omit<PageContextUrl["urlParsed"], HashProps> & {
47
+ /** Only available on the client-side */
48
+ hash: ""
49
+ /** Only available on the client-side */
50
+ hashString: null
51
+ }
52
+ }
53
+
54
+ type HashProps = "hash" | "hashString" | "hashOriginal"
55
+
56
+ function getPageContextUrlComputed(
57
+ pageContext: PageContextUrlSource
58
+ ): PageContextUrlComputed {
59
+ assert(typeof pageContext.urlOriginal === "string")
60
+ assertPageContextUrlComputed(pageContext)
61
+
62
+ const pageContextUrlComputed = {}
63
+ objectDefineProperty(pageContextUrlComputed, "urlPathname", {
64
+ get: urlPathnameGetter,
65
+ enumerable: true,
66
+ configurable: true,
67
+ })
68
+ objectDefineProperty(pageContextUrlComputed, "urlParsed", {
69
+ get: urlParsedGetter,
70
+ enumerable: true,
71
+ configurable: true,
72
+ })
73
+
74
+ return pageContextUrlComputed
75
+ }
76
+
77
+ type PageContextUrlSource = {
78
+ urlOriginal: string
79
+ urlLogical?: string
80
+ _urlRewrite: string | null
81
+ _baseServer: string
82
+ _urlHandler: null | ((url: string) => string)
83
+ }
84
+
85
+ function getUrlParsed(pageContext: PageContextUrlSource) {
86
+ let urlResolved: string
87
+ let baseToBeRemoved: boolean
88
+
89
+ if (pageContext.urlLogical) {
90
+ urlResolved = pageContext.urlLogical
91
+ baseToBeRemoved = false
92
+ } else if (pageContext._urlRewrite) {
93
+ urlResolved = pageContext._urlRewrite
94
+ baseToBeRemoved = false
95
+ } else {
96
+ urlResolved = pageContext.urlOriginal
97
+ baseToBeRemoved = true
98
+ }
99
+ assert(urlResolved && typeof urlResolved === "string")
100
+
101
+ let urlHandler = pageContext._urlHandler
102
+ if (!urlHandler) urlHandler = (url: string) => url
103
+ urlResolved = urlHandler(urlResolved)
104
+
105
+ const baseServer = !baseToBeRemoved ? "/" : pageContext._baseServer
106
+
107
+ return parseUrl(urlResolved, baseServer)
108
+ }
109
+
110
+ function urlPathnameGetter(this: PageContextUrlSource) {
111
+ const { pathname } = getUrlParsed(this)
112
+ const urlPathname = pathname
113
+ assert(urlPathname.startsWith("/"))
114
+ return urlPathname
115
+ }
116
+
117
+ function urlParsedGetter(this: PageContextUrlSource) {
118
+ const {
119
+ // remove hasBaseServer as it isn't part of UrlPublic
120
+ // hasBaseServer: _,
121
+ ...urlParsed
122
+ } = getUrlParsed(this)
123
+
124
+ const hashIsAvailable = isBrowser()
125
+ const warnHashNotAvailable = (prop: HashProps) => {
126
+ assertWarning(
127
+ hashIsAvailable,
128
+ `pageContext.urlParsed.${prop} isn't available on the server-side (HTTP requests don't include the URL hash)`,
129
+ { onlyOnce: true, showStackTrace: true }
130
+ )
131
+ }
132
+
133
+ const urlParsedEnhanced: UrlPublic = {
134
+ ...urlParsed,
135
+ get hash() {
136
+ warnHashNotAvailable("hash")
137
+ return urlParsed.hash
138
+ },
139
+ }
140
+
141
+ changeEnumerable(urlParsedEnhanced, "hashString", false)
142
+ if (!hashIsAvailable) {
143
+ changeEnumerable(urlParsedEnhanced, "hash", false)
144
+ changeEnumerable(urlParsedEnhanced, "hashOriginal", false)
145
+ }
146
+
147
+ return urlParsedEnhanced
148
+ }
149
+
150
+ function assertPageContextUrl(
151
+ pageContext: { urlOriginal: string } & PageContextUrlClient
152
+ ) {
153
+ assert(typeof pageContext.urlOriginal === "string")
154
+ assert(typeof pageContext.urlPathname === "string")
155
+ assert(isPlainObject(pageContext.urlParsed))
156
+ assert(pageContext.urlPathname === pageContext.urlParsed.pathname)
157
+ assertPageContextUrlComputed(pageContext)
158
+ }
159
+
160
+ function assertPageContextUrlComputed(pageContext: object) {
161
+ if ("urlPathname" in pageContext) {
162
+ assert(typeof pageContext.urlPathname === "string")
163
+ assert(isPropertyGetter(pageContext, "urlPathname"))
164
+ assert(isPropertyGetter(pageContext, "urlParsed"))
165
+ } else {
166
+ assert(!("urlParsed" in pageContext))
167
+ }
168
+ }
169
+
170
+ // export { assertPageContextUrl, getPageContextUrlComputed };
171
+ // export type {
172
+ // PageContextUrlClient,
173
+ // PageContextUrlInternal,
174
+ // PageContextUrlServer,
175
+ // PageContextUrlSource,
176
+ // };
177
+
178
+ // // =====================
179
+ // // File determining the URL logic.
180
+ // // URLs need to be computed, because the user can modify the URL e.g. with onBeforeRoute() for i18n.
181
+ // // =====================
182
+
183
+ // import { objectDefineProperty } from "../../src/utils/objectDefineProperty.js";
184
+ // import {
185
+ // assert,
186
+ // assertWarning,
187
+ // changeEnumerable,
188
+ // isBrowser,
189
+ // isPlainObject,
190
+ // isPropertyGetter,
191
+ // parseUrl,
192
+ // type UrlPublic,
193
+ // } from "./utils.js";
194
+
195
+ // // TODO/v1-release: move pageContext.urlParsed to pageContext.url
196
+ // type PageContextUrlComputed = {
197
+ // /** Parsed information about the current URL */
198
+ // urlParsed: UrlPublic;
199
+ // /** The URL pathname, e.g. `/product/42` of `https://example.com/product/42?details=yes#reviews` */
200
+ // urlPathname: string;
201
+ // /** @deprecated */
202
+ // url: string;
203
+ // };
204
+
205
+ // type PageContextUrl = {
206
+ // /** The URL of the HTTP request */
207
+ // urlOriginal: string;
208
+ // } & PageContextUrlComputed;
209
+ // type PageContextUrlInternal = PageContextUrl & {
210
+ // _urlRewrite: string | null;
211
+ // };
212
+ // type PageContextUrlClient = PageContextUrl;
213
+ // type PageContextUrlServer = PageContextUrl & {
214
+ // urlParsed: Omit<PageContextUrl["urlParsed"], HashProps> & {
215
+ // /** Only available on the client-side */
216
+ // hash: "";
217
+ // /** Only available on the client-side */
218
+ // hashString: null;
219
+ // /** @deprecated */
220
+ // hashOriginal: null;
221
+ // };
222
+ // };
223
+ // type HashProps = "hash" | "hashString" | "hashOriginal";
224
+
225
+ // function getPageContextUrlComputed(
226
+ // pageContext: PageContextUrlSource,
227
+ // ): PageContextUrlComputed {
228
+ // assert(typeof pageContext.urlOriginal === "string");
229
+ // assertPageContextUrlComputed(pageContext);
230
+
231
+ // const pageContextUrlComputed = {};
232
+ // objectDefineProperty(pageContextUrlComputed, "urlPathname", {
233
+ // get: urlPathnameGetter,
234
+ // enumerable: true,
235
+ // configurable: true,
236
+ // });
237
+ // objectDefineProperty(pageContextUrlComputed, "url", {
238
+ // get: urlGetter,
239
+ // enumerable: false,
240
+ // configurable: true,
241
+ // });
242
+ // objectDefineProperty(pageContextUrlComputed, "urlParsed", {
243
+ // get: urlParsedGetter,
244
+ // enumerable: true,
245
+ // configurable: true,
246
+ // });
247
+
248
+ // return pageContextUrlComputed;
249
+ // }
250
+
251
+ // type PageContextUrlSource = {
252
+ // urlOriginal: string;
253
+ // urlLogical?: string;
254
+ // _urlRewrite: string | null;
255
+ // _baseServer: string;
256
+ // _urlHandler: null | ((url: string) => string);
257
+ // };
258
+ // function getUrlParsed(pageContext: PageContextUrlSource) {
259
+ // // Example of i18n app using `throw render()`:
260
+ // // 1. User goes to '/fr-FR/admin'.
261
+ // // 2. The first onBeforeRoute() call accesses pageContext.urlPathname (its value is '/fr-FR/admin': the pathname of pageContext.urlOriginal, since both pageContext.urlLogical and pageContext._urlRewrite are undefined) and sets pageContext.urlLogical to '/admin'.
262
+ // // 3. A guard() hooks accesses pageContext.urlPathname (its value is '/admin': the pathname of pageContext.urlLogical) and calls `throw render('/fr-FR/login')`
263
+ // // 4. reveal create a new pageContext object (pageContext.urlLogical is erased) and sets pageContext._urlRewrite to '/fr-FR/login'. (While pageContext.urlOriginal is still '/fr-FR/admin'.)
264
+ // // 5. The second onBeforeRoute() call accesses pageContext.urlPathname (its value is '/fr-FR/login': the pathname of pageContext._urlRewrite, since pageContext.urlLogical is undefined) and sets pageContext.urlLogical to '/login'.
265
+ // // 6. The value of pageContext.urlPathname is now '/login': the pathname of `pageContext.urlLogical`. (While pageContext.urlOriginal is still '/fr-FR/admin'.)
266
+ // // Reproduction: https://github.com/revealjs/reveal/discussions/1436#discussioncomment-8142023
267
+
268
+ // // Determine logical URL
269
+ // let urlResolved: string;
270
+ // let baseToBeRemoved: boolean;
271
+ // if (pageContext.urlLogical) {
272
+ // // Set by onBeforeRoute()
273
+ // urlResolved = pageContext.urlLogical;
274
+ // baseToBeRemoved = false;
275
+ // } else if (pageContext._urlRewrite) {
276
+ // // Set by `throw render()`
277
+ // urlResolved = pageContext._urlRewrite;
278
+ // baseToBeRemoved = false;
279
+ // } else {
280
+ // // Set by renderPage()
281
+ // urlResolved = pageContext.urlOriginal;
282
+ // baseToBeRemoved = true;
283
+ // }
284
+ // assert(urlResolved && typeof urlResolved === "string");
285
+
286
+ // // Remove .pageContext.json
287
+ // let urlHandler = pageContext._urlHandler;
288
+ // if (!urlHandler) urlHandler = (url: string) => url;
289
+ // urlResolved = urlHandler(urlResolved);
290
+
291
+ // // Remove Base URL.
292
+ // // - We assume there isn't any Base URL to the URLs set by the user at `throw render()` and onBeforeRoute()
293
+ // // - This makes sense because the Base URL is merely a setting: ideally the user should write code that doesn't know anything about it (so that the user can remove/add/change Base URL without having to modify any code).
294
+ // // - pageContext.urlOriginal is the URL of the HTTP request and thus contains the Base URL.
295
+ // const baseServer = !baseToBeRemoved ? "/" : pageContext._baseServer;
296
+
297
+ // // Parse URL
298
+ // return parseUrl(urlResolved, baseServer);
299
+ // }
300
+ // function urlPathnameGetter(this: PageContextUrlSource) {
301
+ // const { pathname } = getUrlParsed(this);
302
+ // const urlPathname = pathname;
303
+ // assert(urlPathname.startsWith("/"));
304
+ // return urlPathname;
305
+ // }
306
+ // function urlGetter(this: PageContextUrlSource) {
307
+ // // TODO/v1-release: remove
308
+ // assertWarning(
309
+ // false,
310
+ // "`pageContext.url` is outdated. Use `pageContext.urlPathname`, `pageContext.urlParsed`, or `pageContext.urlOriginal` instead. (See https://reveal.dev/migration/0.4.23 for more information.)",
311
+ // { onlyOnce: true, showStackTrace: true },
312
+ // );
313
+ // return urlPathnameGetter.call(this);
314
+ // }
315
+ // function urlParsedGetter(this: PageContextUrlSource) {
316
+ // const {
317
+ // // remove hasBaseServer as it isn't part of UrlPublic
318
+ // hasBaseServer: _,
319
+ // ...urlParsed
320
+ // } = getUrlParsed(this);
321
+
322
+ // const hashIsAvailable = isBrowser();
323
+ // const warnHashNotAvailable = (prop: HashProps) => {
324
+ // assertWarning(
325
+ // hashIsAvailable,
326
+ // `pageContext.urlParsed.${prop} isn't available on the server-side (HTTP requests don't include the URL hash)`,
327
+ // { onlyOnce: true, showStackTrace: true },
328
+ // );
329
+ // };
330
+
331
+ // const urlParsedEnhanced: UrlPublic = {
332
+ // ...urlParsed,
333
+ // get hash() {
334
+ // warnHashNotAvailable("hash");
335
+ // return urlParsed.hash;
336
+ // },
337
+ // get hashOriginal() {
338
+ // warnHashNotAvailable("hashOriginal");
339
+ // return urlParsed.hashOriginal;
340
+ // },
341
+ // // TODO/next-major-release: remove
342
+ // get hashString() {
343
+ // assertWarning(
344
+ // false,
345
+ // "pageContext.urlParsed.hashString has been renamed to pageContext.urlParsed.hashOriginal",
346
+ // {
347
+ // onlyOnce: true,
348
+ // showStackTrace: true,
349
+ // },
350
+ // );
351
+ // warnHashNotAvailable("hashString");
352
+ // return urlParsed.hashOriginal;
353
+ // },
354
+ // // TODO/next-major-release: remove
355
+ // get searchString() {
356
+ // assertWarning(
357
+ // false,
358
+ // "pageContext.urlParsed.searchString has been renamed to pageContext.urlParsed.searchOriginal",
359
+ // { onlyOnce: true, showStackTrace: true },
360
+ // );
361
+ // return urlParsed.searchOriginal;
362
+ // },
363
+ // };
364
+
365
+ // changeEnumerable(urlParsedEnhanced, "hashString", false);
366
+ // changeEnumerable(urlParsedEnhanced, "searchString", false);
367
+ // if (!hashIsAvailable) {
368
+ // changeEnumerable(urlParsedEnhanced, "hash", false);
369
+ // changeEnumerable(urlParsedEnhanced, "hashOriginal", false);
370
+ // }
371
+
372
+ // return urlParsedEnhanced;
373
+ // }
374
+
375
+ // function assertPageContextUrl(
376
+ // pageContext: { urlOriginal: string } & PageContextUrlClient,
377
+ // ) {
378
+ // assert(typeof pageContext.urlOriginal === "string");
379
+ // assert(typeof pageContext.urlPathname === "string");
380
+ // assert(isPlainObject(pageContext.urlParsed));
381
+ // assert(pageContext.urlPathname === pageContext.urlParsed.pathname);
382
+ // assertPageContextUrlComputed(pageContext);
383
+ // }
384
+
385
+ // function assertPageContextUrlComputed(pageContext: object) {
386
+ // /*
387
+ // If the isPropertyGetter() assertions fail then it's most likely because Object.assign() was used instead of `objectAssign()`:
388
+ // ```js
389
+ // const PageContextUrlComputed = getPageContextUrlComputed(pageContext)
390
+
391
+ // // ❌ Breaks the property descriptors/getters of pageContext defined by getPageContextUrlComputed() such as pageContext.urlPathname
392
+ // Object.assign(pageContext, pageContextUrlComputed)
393
+
394
+ // // ❌ Also breaks property descriptors/getters
395
+ // const pageContext = { ...pageContextUrlComputed }
396
+
397
+ // // ✅ Preserves property descriptors/getters (see objectAssign() implementation)
398
+ // objectAssign(pageContext, pageContextUrlComputed)
399
+ // ```
400
+ // */
401
+ // if ("urlPathname" in pageContext) {
402
+ // assert(typeof pageContext.urlPathname === "string");
403
+ // assert(isPropertyGetter(pageContext, "urlPathname"));
404
+ // assert(isPropertyGetter(pageContext, "urlParsed"));
405
+ // assert(isPropertyGetter(pageContext, "url"));
406
+ // } else {
407
+ // assert(!("urlParsed" in pageContext));
408
+ // assert(!("url" in pageContext));
409
+ // }
410
+ // }
@@ -0,0 +1,148 @@
1
+ import React, { JSX, Suspense, useEffect } from "react"
2
+
3
+ import { PageContextProvider } from "../../../ui/providers/PageContextProvider"
4
+ // import updateCurrentPath from "../core/updateCurrentPath";
5
+ import {
6
+ ExtendedPageContextClient,
7
+ ExtendedPageContextServer,
8
+ PageContextClient,
9
+ PageContextServer,
10
+ } from "../../../types/interfaces/context"
11
+
12
+ // Transform the incoming pageContext to match the expected structure
13
+ function transformPageContext(
14
+ pageContext: PageContextServer | PageContextClient
15
+ ) {
16
+ return { ...pageContext }
17
+ }
18
+
19
+ function getPageElement(
20
+ pageContext: ExtendedPageContextClient | ExtendedPageContextServer
21
+ ): {
22
+ page: JSX.Element
23
+ renderPromise: Promise<void>
24
+ } {
25
+ const { Page, config: { Loading } = {} } = pageContext
26
+
27
+ let page = Page ? <Page /> : null
28
+
29
+ // Wrapping
30
+ const addSuspense = (el: React.JSX.Element | null) => {
31
+ if (!Loading || !("layout" in Loading)) return el
32
+
33
+ // Use Loading.layout only if it's a valid React component
34
+ return Loading.layout ? (
35
+ <Suspense fallback={<Loading.layout />}>{el}</Suspense>
36
+ ) : (
37
+ el
38
+ )
39
+ }
40
+
41
+ page = addSuspense(page)
42
+
43
+ // Inner and outer wrapping
44
+ ;[
45
+ ...(pageContext.config.Layout || []),
46
+ ...(pageContext.config.Wrapper || []),
47
+ ].forEach((Wrap) => {
48
+ page = <Wrap>{page}</Wrap>
49
+ page = addSuspense(page)
50
+ })
51
+
52
+ // Now, transform and wrap with PageContextProvider
53
+ const transformedPageContext = transformPageContext(pageContext)
54
+ page = (
55
+ <PageContextProvider pageContext={transformedPageContext}>
56
+ {page}
57
+ </PageContextProvider>
58
+ )
59
+
60
+ let renderPromiseResolve!: () => void
61
+ let renderPromise = new Promise<void>((r) => (renderPromiseResolve = r))
62
+ page = (
63
+ <RenderPromiseProvider renderPromiseResolve={renderPromiseResolve}>
64
+ {page}
65
+ </RenderPromiseProvider>
66
+ )
67
+
68
+ if (pageContext.config.reactStrictMode !== false) {
69
+ page = <React.StrictMode>{page}</React.StrictMode>
70
+ }
71
+
72
+ return { page, renderPromise }
73
+ }
74
+
75
+ function RenderPromiseProvider({
76
+ children,
77
+ renderPromiseResolve,
78
+ }: {
79
+ children: React.ReactNode
80
+ renderPromiseResolve: () => void
81
+ }) {
82
+ useEffect(renderPromiseResolve)
83
+ return <>{children}</>
84
+ }
85
+
86
+ export { getPageElement }
87
+
88
+ // export { getPageElement };
89
+
90
+ // import React, { Suspense, useEffect } from "react";
91
+ // import type { PageContext } from "reveal/types";
92
+ // import { PageContextProvider } from "../hooks/usePageContext.js";
93
+
94
+ // function getPageElement(pageContext: PageContext): {
95
+ // page: JSX.Element;
96
+ // renderPromise: Promise<void>;
97
+ // } {
98
+ // const {
99
+ // Page,
100
+ // config: { Loading },
101
+ // } = pageContext;
102
+ // let page = Page ? <Page /> : null;
103
+
104
+ // // Wrapping
105
+ // const addSuspense = (el: React.JSX.Element | null) => {
106
+ // if (!Loading?.layout) return el;
107
+ // return <Suspense fallback={<Loading.layout />}>{page}</Suspense>;
108
+ // };
109
+ // page = addSuspense(page);
110
+ // [
111
+ // // Inner wrapping
112
+ // ...(pageContext.config.Layout || []),
113
+ // // Outer wrapping
114
+ // ...(pageContext.config.Wrapper || []),
115
+ // ].forEach((Wrap) => {
116
+ // page = <Wrap>{page}</Wrap>;
117
+ // page = addSuspense(page);
118
+ // });
119
+
120
+ // page = (
121
+ // <PageContextProvider pageContext={pageContext}>{page}</PageContextProvider>
122
+ // );
123
+
124
+ // let renderPromiseResolve!: () => void;
125
+ // let renderPromise = new Promise<void>((r) => (renderPromiseResolve = r));
126
+ // page = (
127
+ // <RenderPromiseProvider renderPromiseResolve={renderPromiseResolve}>
128
+ // {page}
129
+ // </RenderPromiseProvider>
130
+ // );
131
+
132
+ // if (pageContext.config.reactStrictMode !== false) {
133
+ // page = <React.StrictMode>{page}</React.StrictMode>;
134
+ // }
135
+
136
+ // return { page, renderPromise };
137
+ // }
138
+
139
+ // function RenderPromiseProvider({
140
+ // children,
141
+ // renderPromiseResolve,
142
+ // }: {
143
+ // children: React.ReactNode;
144
+ // renderPromiseResolve: () => void;
145
+ // }) {
146
+ // useEffect(renderPromiseResolve);
147
+ // return children;
148
+ // }
@@ -0,0 +1,50 @@
1
+ export { analyzeClientSide };
2
+
3
+ import type { PageConfigRuntime } from "../../../../types/interfaces/page.js";
4
+ import { getConfigValueRuntime } from "../getConfigValue.js";
5
+ import { ClientDependency } from "../../../../types/interfaces/client.js";
6
+ import {PageFile} from "../../../__internal/index.js";
7
+
8
+ export type AnalysisResult = {
9
+ isClientRuntimeLoaded: boolean;
10
+ isClientRouting: boolean;
11
+ isHtmlOnly: boolean;
12
+ clientEntries: string[];
13
+ clientDependencies: ClientDependency[];
14
+ pageFilesClientSide: PageFile[];
15
+ pageFilesServerSide: PageFile[];
16
+ };
17
+
18
+ function analyzeClientSide(
19
+ pageConfig: PageConfigRuntime | null,
20
+ pageFilesAll: PageFile[],
21
+ pageId: string,
22
+ ): AnalysisResult {
23
+ // V1 design
24
+ if (pageConfig) {
25
+ const isClientRouting =
26
+ getConfigValueRuntime(pageConfig, "clientRouting", "boolean")?.value ??
27
+ false;
28
+ const isClientRuntimeLoaded =
29
+ getConfigValueRuntime(pageConfig, "isClientRuntimeLoaded", "boolean")
30
+ ?.value ?? false;
31
+ return {
32
+ isClientRuntimeLoaded,
33
+ isClientRouting,
34
+ isHtmlOnly: false,
35
+ clientEntries: [],
36
+ clientDependencies: [],
37
+ pageFilesClientSide: [],
38
+ pageFilesServerSide: [],
39
+ };
40
+ }
41
+ return {
42
+ isClientRuntimeLoaded: false,
43
+ isClientRouting: false,
44
+ isHtmlOnly: false,
45
+ clientEntries: [],
46
+ clientDependencies: [],
47
+ pageFilesClientSide: [],
48
+ pageFilesServerSide: [],
49
+ };
50
+ }