@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,44 @@
1
+ export { loadImportBuild, setImportBuildGetters };
2
+
3
+ // @ts-ignore - Type declarations may not be available for this package
4
+ import { importServerEntry } from "@brillout/vite-plugin-server-entry/runtime";
5
+ import { assert } from "../../../gaurds/assertions/assert";
6
+
7
+ const buildGetters = (globalThis.__reveal_buildGetters =
8
+ globalThis.__reveal_buildGetters || {
9
+ getters: null,
10
+ });
11
+
12
+ type BuildGetters = null | {
13
+ pageFiles: () => Promise<Record<string, unknown>>;
14
+ getAssetsManifest: () => Promise<Record<string, unknown>>;
15
+ pluginManifest: () => Promise<Record<string, unknown>>;
16
+ };
17
+
18
+ function setImportBuildGetters(getters: BuildGetters) {
19
+ buildGetters.getters = getters;
20
+ }
21
+
22
+ async function loadImportBuild(outDir?: string) {
23
+ if (!buildGetters.getters) {
24
+ await importServerEntry(outDir);
25
+ assert(buildGetters.getters);
26
+ }
27
+
28
+ const [pageFiles, assetsManifest, pluginManifest] = await Promise.allSettled([
29
+ buildGetters.getters.pageFiles(),
30
+ buildGetters.getters.getAssetsManifest(),
31
+ buildGetters.getters.pluginManifest(),
32
+ ]);
33
+
34
+ const buildEntries = { pageFiles, assetsManifest, pluginManifest };
35
+ return buildEntries;
36
+ }
37
+
38
+ declare global {
39
+ var __reveal_buildGetters:
40
+ | undefined
41
+ | {
42
+ getters: BuildGetters;
43
+ };
44
+ }
@@ -0,0 +1,4 @@
1
+ import { setPageFilesAsync } from "../../../processing/getters/getPageFiles/index.js";
2
+ import { getPageFilesExports } from "./getPageFilesExports.js";
3
+
4
+ setPageFilesAsync(getPageFilesExports);
@@ -0,0 +1 @@
1
+ export * from "./globalContext";
@@ -0,0 +1 @@
1
+ export * from "./numberOfStackTraceLinesToRemove.js";
@@ -0,0 +1,3 @@
1
+ export { numberOfStackTraceLinesToRemove };
2
+
3
+ const numberOfStackTraceLinesToRemove = 2;
@@ -0,0 +1 @@
1
+ export * from "./log";
@@ -0,0 +1,24 @@
1
+ import { Logger } from "../../../types/interfaces/log";
2
+ import getGlobalObject from "../../processing/getters/getGlobalObject";
3
+
4
+ export { globalObject };
5
+
6
+ const globalObject = getGlobalObject<{
7
+ alreadyLogged: Set<string>;
8
+ onBeforeLog?: () => void;
9
+ logger: Logger;
10
+ showStackTraceList: WeakSet<Error>;
11
+ alwaysShowStackTrace?: true;
12
+ disableAutomaticLinkInterception?: true;
13
+ }>("utils/assert.ts", {
14
+ alreadyLogged: new Set(),
15
+ // Production logger. Overwritten by loggerNotProd.ts in non-production environments.
16
+ logger(msg, logType) {
17
+ if (logType === "info") {
18
+ console.log(msg);
19
+ } else {
20
+ console.warn(msg);
21
+ }
22
+ },
23
+ showStackTraceList: new WeakSet(),
24
+ });
@@ -0,0 +1,3 @@
1
+ // Copied from https://github.com/vitejs/vite/blob/d649daba7682791178b711d9a3e44a6b5d00990c/packages/vite/src/node/plugins/css.ts#L90-L91
2
+ export const styleFileRE =
3
+ /\.(css|less|sass|scss|styl|stylus|pcss|postcss)($|\?)/;
@@ -0,0 +1,11 @@
1
+ import pc from "@brillout/picocolors";
2
+ import { Tag } from "../../../types/interfaces/tag";
3
+
4
+ export { addPrefixAssertType };
5
+
6
+ function addPrefixAssertType(msg: string, tag: Tag): string {
7
+ let prefix = `[${tag}]`;
8
+ const color = tag === "Warning" ? "yellow" : "red";
9
+ prefix = pc.bold(pc[color](prefix));
10
+ return `${prefix}${msg}`;
11
+ }
@@ -0,0 +1,9 @@
1
+ import { projectTag } from "./projectTag";
2
+ import { projectTagWithVersion } from "./projectTagWithVersion";
3
+
4
+ export { addPrefixProjectName };
5
+
6
+ function addPrefixProjectName(msg: string, showProjectVersion = false): string {
7
+ const prefix = showProjectVersion ? projectTagWithVersion : projectTag;
8
+ return `${prefix}${msg}`;
9
+ }
@@ -0,0 +1,3 @@
1
+ export { projectTag };
2
+
3
+ const projectTag = `[reveal]` as const;
@@ -0,0 +1,5 @@
1
+ import { projectInfo } from "../versions/projectInfo";
2
+
3
+ export { projectTagWithVersion };
4
+
5
+ const projectTagWithVersion = `[reveal@${projectInfo.projectVersion}]` as const;
@@ -0,0 +1,2 @@
1
+ // Automatically updated by @brillout/release-me
2
+ export const PROJECT_VERSION = "0.4.200" as const;
@@ -0,0 +1,5 @@
1
+ import { PROJECT_VERSION } from "./PROJECT_VERSION.js";
2
+ export const projectInfo = {
3
+ projectName: "Reveal" as const,
4
+ projectVersion: PROJECT_VERSION,
5
+ };
@@ -0,0 +1,70 @@
1
+ export { handleErrorWithoutErrorPage }
2
+
3
+ import pc from "@brillout/picocolors"
4
+
5
+ import type { PageContextAfterRender } from "../../core/renderer/page/renderPageAlreadyRouted.js"
6
+ import {
7
+ assert,
8
+ assertWarning,
9
+ objectAssign,
10
+ } from "../../core/renderer/stream/utils.js"
11
+
12
+ import type { PageConfigRuntime } from "../../types/interfaces/page.js"
13
+ import { getGlobalContext } from "../globals/contexts/globalContext/index.js"
14
+
15
+ import { GetPageAssets } from "../processing/getters/getPageAssets.js"
16
+ import { stringify } from "../processing/serializers/stringify.js"
17
+ import {
18
+ createHttpResponseError,
19
+ createHttpResponsePage,
20
+ } from "../targets/http/createHttpResponse.js"
21
+ import {PageFile} from "../__internal/index.js"
22
+
23
+ // When the user hasn't defined _error.page.js
24
+ async function handleErrorWithoutErrorPage<
25
+ PageContext extends {
26
+ isClientSideNavigation: boolean
27
+ errorWhileRendering: null | Error
28
+ is404: null | boolean
29
+ pageId: null
30
+ _pageFilesAll: PageFile[]
31
+ _pageConfigs: PageConfigRuntime[]
32
+ urlOriginal: string
33
+ },
34
+ >(pageContext: PageContext): Promise<PageContext & PageContextAfterRender> {
35
+ assert(pageContext.pageId === null)
36
+ assert(pageContext.errorWhileRendering || pageContext.is404)
37
+
38
+ {
39
+ const isV1 = pageContext._pageConfigs.length > 0
40
+ warnMissingErrorPage(isV1)
41
+ }
42
+
43
+ if (!pageContext.isClientSideNavigation) {
44
+ const httpResponse = await createHttpResponseError(pageContext)
45
+ objectAssign(pageContext, { httpResponse })
46
+ return pageContext
47
+ } else {
48
+ const __getPageAssets: GetPageAssets = async () => []
49
+ objectAssign(pageContext, { __getPageAssets })
50
+ const httpResponse = await createHttpResponsePage(
51
+ stringify({ serverSideError: true }),
52
+ null,
53
+ pageContext
54
+ )
55
+ objectAssign(pageContext, { httpResponse })
56
+ return pageContext
57
+ }
58
+ }
59
+
60
+ function warnMissingErrorPage(isV1: boolean): void {
61
+ const globalContext = getGlobalContext()
62
+ if (!globalContext.isProduction) {
63
+ const msg = [
64
+ `No ${isV1 ? "error page" : pc.cyan("_error.page.js")} found,`,
65
+ "we recommend defining one",
66
+ "https://reveal.dev/error-page",
67
+ ].join(" ")
68
+ assertWarning(false, msg, { onlyOnce: true })
69
+ }
70
+ }
@@ -0,0 +1,15 @@
1
+ import { PageContextServer } from "../../types/interfaces/context"
2
+
3
+ function handlePageContext(pageContext: PageContextServer) {
4
+ // Type guard
5
+ if ("routeParams" in pageContext && pageContext.routeParams === undefined) {
6
+ // Handle the undefined routeParams for PageContextClient
7
+ pageContext.routeParams = {}
8
+ }
9
+
10
+ const serverContext = pageContext
11
+
12
+ return serverContext
13
+ }
14
+
15
+ export default handlePageContext
@@ -0,0 +1,56 @@
1
+ export { handlePageContextRequestUrl };
2
+
3
+ import {
4
+ assert,
5
+ baseServer,
6
+ parseUrl,
7
+ slice,
8
+ } from "../../core/renderer/stream/utils.js";
9
+ import {
10
+ doNotCreateExtraDirectory,
11
+ pageContextJsonFileExtension,
12
+ } from "../processing/getters/getPageContextRequestUrl.js";
13
+
14
+ // See shared/getPageContextRequestUrl.ts
15
+ function handlePageContextRequestUrl(url: string): {
16
+ urlWithoutPageContextRequestSuffix: string;
17
+ isPageContextRequest: boolean;
18
+ } {
19
+ if (!hasSuffix(url)) {
20
+ return {
21
+ urlWithoutPageContextRequestSuffix: url,
22
+ isPageContextRequest: false,
23
+ };
24
+ }
25
+ return {
26
+ urlWithoutPageContextRequestSuffix: removePageContextUrlSuffix(url),
27
+ isPageContextRequest: true,
28
+ };
29
+ }
30
+
31
+ function hasSuffix(url: string): boolean {
32
+ const { pathnameOriginal, pathname } = parseUrl(url, baseServer);
33
+ assert(
34
+ pathnameOriginal.endsWith(pageContextJsonFileExtension) ===
35
+ pathname.endsWith(pageContextJsonFileExtension),
36
+ `URL: ${url}`,
37
+ );
38
+ return pathnameOriginal.endsWith(pageContextJsonFileExtension);
39
+ }
40
+
41
+ function removePageContextUrlSuffix(url: string): string {
42
+ const urlParsed = parseUrl(url, baseServer);
43
+ // We cannot use `urlParsed.pathname` because it would break the `urlParsed.pathnameOriginal` value of subsequent `parseUrl()` calls.
44
+ const { origin, pathnameOriginal, searchOriginal, hashOriginal } = urlParsed;
45
+ assert(doNotCreateExtraDirectory === false);
46
+ const urlSuffix = `/index${pageContextJsonFileExtension}`;
47
+ assert(pathnameOriginal.endsWith(urlSuffix), `URL: ${url}`);
48
+ let pathnameModified = slice(pathnameOriginal, 0, -1 * urlSuffix.length);
49
+ if (pathnameModified === "") pathnameModified = "/";
50
+ assert(
51
+ url ===
52
+ `${origin || ""}${pathnameOriginal}${searchOriginal || ""}${hashOriginal || ""}`,
53
+ `URL: ${url}`,
54
+ );
55
+ return `${origin || ""}${pathnameModified}${searchOriginal || ""}${hashOriginal || ""}`;
56
+ }
@@ -0,0 +1,20 @@
1
+ const openFacebook = (
2
+ event?: React.MouseEvent<HTMLButtonElement>,
3
+ // eslint-disable-next-line prettier/prettier
4
+ url = "https://www.facebook.com/groups/StreetbeefsScrapyard/",
5
+ ) => {
6
+ try {
7
+ if (event) {
8
+ event.preventDefault(); // Prevent default behavior if event is provided
9
+ }
10
+ const newWindow = window.open(url, "_blank", "noopener,noreferrer");
11
+ if (newWindow) newWindow.opener = null;
12
+ } catch (error) {
13
+ console.error("Failed to open Facebook URL:", error);
14
+ // User-friendly message
15
+ alert("Unable to open Facebook. Please check your popup blocker settings.");
16
+ // For a more advanced UI, replace the above line with a call to a custom notification component
17
+ }
18
+ };
19
+
20
+ export default openFacebook;
@@ -0,0 +1,130 @@
1
+ import React, {
2
+ Suspense,
3
+ forwardRef,
4
+ lazy,
5
+ useEffect,
6
+ useState,
7
+ ComponentProps,
8
+ ComponentType,
9
+ ReactNode,
10
+ ForwardedRef,
11
+ } from "react";
12
+
13
+ // The main clientOnly function
14
+ function clientOnly<T extends ComponentType<any>>(
15
+ load: () => Promise<{ default: T } | T>,
16
+ ): ComponentType<ComponentProps<T> & { fallback?: ReactNode }> {
17
+ // If SSR is enabled, return fallback directly
18
+ //@ts-expect-error
19
+ import.meta.env ??= { SSR: true };
20
+
21
+ if (import.meta.env.SSR) {
22
+ return (props) => <>{props.fallback}</>;
23
+ }
24
+
25
+ // Lazy load the component
26
+ const LazyComponent = lazy(
27
+ (async () => {
28
+ try {
29
+ const LoadedComponent = await load();
30
+ return "default" in LoadedComponent
31
+ ? LoadedComponent
32
+ : { default: LoadedComponent };
33
+ } catch (error) {
34
+ console.error("Component loading failed:", error);
35
+ // Return a minimal error component - use double assertion for generic constraint
36
+ const ErrorComponent = () => <p>Error loading component.</p>;
37
+ return { default: ErrorComponent as unknown as T };
38
+ }
39
+ }) as () => Promise<{ default: T }>
40
+ );
41
+
42
+ // Wrap LazyComponent to forward the ref
43
+ const WrappedComponent = forwardRef<
44
+ unknown,
45
+ ComponentProps<T> & { fallback?: ReactNode }
46
+ >((props, ref: ForwardedRef<unknown>) => {
47
+ const [mounted, setMounted] = useState(false);
48
+
49
+ useEffect(() => {
50
+ setMounted(true);
51
+ }, []);
52
+
53
+ // If not mounted, render fallback
54
+ if (!mounted) {
55
+ return <>{props.fallback}</>;
56
+ }
57
+
58
+ const { fallback, ...restProps } = props;
59
+
60
+ // Use Suspense to handle lazy loading
61
+ return (
62
+ <Suspense fallback={fallback || null}>
63
+ {/* Forward the ref to the lazy component */}
64
+ {/* @ts-expect-error - ref forwarding with generic component types requires type assertion */}
65
+ <LazyComponent {...(restProps as ComponentProps<T>)} ref={ref} />
66
+ </Suspense>
67
+ );
68
+ });
69
+
70
+ // Type assertion to ensure the correct type
71
+ return WrappedComponent as unknown as ComponentType<
72
+ ComponentProps<T> & { fallback?: ReactNode }
73
+ >;
74
+ }
75
+
76
+ export { clientOnly };
77
+
78
+ // export { clientOnly };
79
+
80
+ // import React, {
81
+ // Suspense,
82
+ // forwardRef,
83
+ // lazy,
84
+ // useEffect,
85
+ // useState,
86
+ // type ComponentProps,
87
+ // type ComponentType,
88
+ // type ReactNode,
89
+ // } from "react";
90
+
91
+ // function clientOnly<T extends ComponentType<any>>(
92
+ // load: () => Promise<{ default: T } | T>,
93
+ // ): ComponentType<ComponentProps<T> & { fallback?: ReactNode }> {
94
+ // // Client side: always bundled by Vite, import.meta.env.SSR === false
95
+ // // Server side: may or may not be bundled by Vite, import.meta.env.SSR === true || import.meta.env === undefined
96
+ // //@ts-expect-error
97
+ // import.meta.env ??= { SSR: true };
98
+ // if (import.meta.env.SSR) {
99
+ // return (props) => <>{props.fallback}</>;
100
+ // } else {
101
+ // const Component = lazy(() =>
102
+ // load()
103
+ // .then((LoadedComponent) =>
104
+ // "default" in LoadedComponent
105
+ // ? LoadedComponent
106
+ // : { default: LoadedComponent },
107
+ // )
108
+ // .catch((error) => {
109
+ // console.error("Component loading failed:", error);
110
+ // return { default: (() => <p>Error loading component.</p>) as any };
111
+ // }),
112
+ // );
113
+
114
+ // return forwardRef<any, any>((props, ref) => {
115
+ // const [mounted, setMounted] = useState(false);
116
+ // useEffect(() => {
117
+ // setMounted(true);
118
+ // }, []);
119
+ // if (!mounted) {
120
+ // return <>{props.fallback}</>;
121
+ // }
122
+ // const { fallback, ...rest } = props;
123
+ // return (
124
+ // <Suspense fallback={<>{props.fallback}</>}>
125
+ // <Component {...rest} ref={ref} />
126
+ // </Suspense>
127
+ // );
128
+ // }) as ComponentType<ComponentProps<T> & { fallback?: ReactNode }>;
129
+ // }
130
+ // }
@@ -0,0 +1,22 @@
1
+ import { providePageContext } from "./executeHook";
2
+
3
+ export { callCumulativeHooks };
4
+
5
+ async function callCumulativeHooks(
6
+ values: undefined | unknown[],
7
+ pageContext: Record<string, any>,
8
+ ): Promise<unknown[]> {
9
+ if (!values) return [];
10
+ const valuesPromises = values.map((val) => {
11
+ if (typeof val === "function") {
12
+ providePageContext(pageContext);
13
+ // Hook
14
+ return val(pageContext);
15
+ } else {
16
+ // Plain value
17
+ return val;
18
+ }
19
+ });
20
+ const valuesResolved = await Promise.allSettled(valuesPromises);
21
+ return valuesResolved;
22
+ }
@@ -0,0 +1,118 @@
1
+ export { executeHook, getPageContext, isUserHookError, providePageContext }
2
+
3
+ import {
4
+ PageContextClient,
5
+ PageContextServer,
6
+ } from "../../types/interfaces/context.js"
7
+
8
+ import { assertWarning } from "../gaurds/assertions/assertWarning/index.js"
9
+ import { isObject } from "../gaurds/validators/isObject.js"
10
+ import getGlobalObject from "../processing/getters/getGlobalObject.js"
11
+ import type { Hook, HookLoc } from "../processing/getters/getHook.js"
12
+ import { getProjectError } from "../processing/getters/getProjectError.js"
13
+ import { humanizeTime } from "../utils/time/humanizeTime.js"
14
+
15
+ const globalObject = getGlobalObject("utils/executeHook.ts", {
16
+ userHookErrors: new WeakMap<object, HookLoc>(),
17
+ pageContext: null as PageContextUnknown,
18
+ })
19
+
20
+ type PageContextUnknown = null | Record<string, any>
21
+
22
+ function isUserHookError(err: unknown): false | HookLoc {
23
+ if (!isObject(err)) return false
24
+ return globalObject.userHookErrors.get(err) ?? false
25
+ }
26
+
27
+ function executeHook<T = unknown>(
28
+ hookFnCaller: () => T,
29
+ hook: Omit<Hook, "hookFn">,
30
+ pageContext: PageContextUnknown
31
+ ): Promise<T> {
32
+ const {
33
+ hookName,
34
+ hookFilePath,
35
+ hookTimeout: { error: timeoutErr, warning: timeoutWarn },
36
+ } = hook
37
+
38
+ let resolve!: (ret: T) => void
39
+ let reject!: (err: unknown) => void
40
+ const promise = new Promise<T>((resolve_, reject_) => {
41
+ resolve = (ret) => {
42
+ clearTimeouts()
43
+ resolve_(ret)
44
+ }
45
+ reject = (err) => {
46
+ clearTimeouts()
47
+ reject_(err)
48
+ }
49
+ })
50
+
51
+ const clearTimeouts = () => {
52
+ if (currentTimeoutWarn) clearTimeout(currentTimeoutWarn)
53
+ if (currentTimeoutErr) clearTimeout(currentTimeoutErr)
54
+ }
55
+ const currentTimeoutWarn =
56
+ isNotDisabled(timeoutWarn) &&
57
+ setTimeout(() => {
58
+ assertWarning(
59
+ false,
60
+ `The ${hookName}() hook defined by ${hookFilePath} is slow: it's taking more than ${humanizeTime(
61
+ timeoutWarn
62
+ )} (https://reveal.dev/hooksTimeout)`,
63
+ { onlyOnce: false }
64
+ )
65
+ }, timeoutWarn)
66
+ const currentTimeoutErr =
67
+ isNotDisabled(timeoutErr) &&
68
+ setTimeout(() => {
69
+ const err = getProjectError(
70
+ `The ${hookName}() hook defined by ${hookFilePath} timed out: it didn't finish after ${humanizeTime(
71
+ timeoutErr
72
+ )} (https://reveal.dev/hooksTimeout)`
73
+ )
74
+ reject(err)
75
+ }, timeoutErr)
76
+ ;(async () => {
77
+ try {
78
+ providePageContext(pageContext)
79
+ const ret = await hookFnCaller()
80
+ resolve(ret)
81
+ } catch (err) {
82
+ if (isObject(err)) {
83
+ globalObject.userHookErrors.set(err, { hookName, hookFilePath })
84
+ }
85
+ reject(err)
86
+ }
87
+ })()
88
+
89
+ return promise
90
+ }
91
+
92
+ function isNotDisabled(timeout: false | number): timeout is number {
93
+ return !!timeout && timeout !== Infinity
94
+ }
95
+
96
+ /**
97
+ * Access `pageContext` object inside reveal hooks, in order to create universal hooks.
98
+ *
99
+ * https://reveal.dev/getPageContext
100
+ */
101
+ function getPageContext<
102
+ PageContext = PageContextClient | PageContextServer,
103
+ >(): null | PageContext {
104
+ return globalObject.pageContext as any
105
+ }
106
+ /**
107
+ * Provide `pageContext` for universal hooks.
108
+ *
109
+ * https://reveal.dev/getPageContext
110
+ */
111
+ function providePageContext(pageContext: PageContextUnknown) {
112
+ globalObject.pageContext = pageContext
113
+ // Promise.resolve() is quicker than process.nextTick() and setImmediate()
114
+ // https://stackoverflow.com/questions/67949576/process-nexttick-before-promise-resolve-then
115
+ Promise.resolve().then(() => {
116
+ globalObject.pageContext = null
117
+ })
118
+ }
@@ -0,0 +1,6 @@
1
+ export const configsCumulative = [
2
+ "Head",
3
+ "bodyAttributes",
4
+ "htmlAttributes",
5
+ ] as const;
6
+ export type ConfigsCumulative = (typeof configsCumulative)[number];
@@ -0,0 +1,82 @@
1
+ // Client-side useConfig.ts
2
+ /**
3
+ * Client-side useConfig hook
4
+ * @see {@link ./useConfig-server} - server counterpart
5
+ */
6
+ export { useConfig }
7
+
8
+ import { ExtendedPageContextClient } from "../../../types/interfaces/context.js"
9
+ import type { ConfigFromHook } from "../../../types/namespaces/Config.js"
10
+ import { usePageContext } from "../../../ui/hooks/usePageContext.js"
11
+ import { applyHeadSettings } from "../../dom/applyHeadSettings.js"
12
+ import { getPageContext } from "../executeHook.js"
13
+
14
+ function useConfig(): (config: ConfigFromHook) => void {
15
+ let pageContext = getPageContext() as ExtendedPageContextClient
16
+ if (pageContext)
17
+ return (config: ConfigFromHook) =>
18
+ setPageContextConfigFromHook(config, pageContext)
19
+
20
+ // Component
21
+ pageContext = usePageContext() as ExtendedPageContextClient
22
+ return (config: ConfigFromHook) => {
23
+ if (!("_headAlreadySet" in pageContext)) {
24
+ setPageContextConfigFromHook(config, pageContext)
25
+ } else {
26
+ applyHead(config)
27
+ }
28
+ }
29
+ }
30
+
31
+ function setPageContextConfigFromHook(
32
+ config: ConfigFromHook,
33
+ pageContext: ExtendedPageContextClient
34
+ ) {
35
+ pageContext._configFromHook ??= {}
36
+ Object.assign(pageContext._configFromHook, config)
37
+ }
38
+
39
+ function applyHead(config: ConfigFromHook) {
40
+ const { title, lang } = config
41
+ applyHeadSettings(title, lang)
42
+ }
43
+
44
+ // export { useConfig };
45
+
46
+ // import type { PageContext } from "reveal/types";
47
+ // import type { PageContextInternal } from "../../types/PageContext.js";
48
+ // import type { ConfigFromHook } from "../../types/Config.js";
49
+ // import { usePageContext } from "../usePageContext.js";
50
+ // import { getPageContext } from "reveal/getPageContext";
51
+ // import { applyHeadSettings } from "../../integration/applyHeadSettings.js";
52
+
53
+ // function useConfig(): (config: ConfigFromHook) => void {
54
+ // // reveal hook
55
+ // let pageContext = getPageContext() as PageContext & PageContextInternal;
56
+ // if (pageContext)
57
+ // return (config: ConfigFromHook) =>
58
+ // setPageContextConfigFromHook(config, pageContext);
59
+
60
+ // // Component
61
+ // pageContext = usePageContext();
62
+ // return (config: ConfigFromHook) => {
63
+ // if (!("_headAlreadySet" in pageContext)) {
64
+ // setPageContextConfigFromHook(config, pageContext);
65
+ // } else {
66
+ // applyHead(config);
67
+ // }
68
+ // };
69
+ // }
70
+
71
+ // function setPageContextConfigFromHook(
72
+ // config: ConfigFromHook,
73
+ // pageContext: PageContextInternal,
74
+ // ) {
75
+ // pageContext._configFromHook ??= {};
76
+ // Object.assign(pageContext._configFromHook, config);
77
+ // }
78
+
79
+ // function applyHead(config: ConfigFromHook) {
80
+ // const { title, lang } = config;
81
+ // applyHeadSettings(title, lang);
82
+ // }