@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,97 @@
1
+ import { PageContextForRoute, PageContextFromRoute } from "../router";
2
+ import { resolveRouteString, resolveRouteFunction } from "./resolveRouteUtils";
3
+ import { assert } from "../utils";
4
+ import type { PageRoutes, RouteType } from "./loadPageRoutes";
5
+ import type { Hook } from "../processing/getters/getHook";
6
+ import { executeOnBeforeRouteHook } from "./executeOnBeforeRouteHook";
7
+ import { objectAssign } from "./utils";
8
+ import { PageContextUrlInternal } from "../processing/getters/getPageContextUrlComputed";
9
+
10
+ // Core routing logic
11
+ async function routeInternal(
12
+ pageContext: PageContextForRoute,
13
+ ): Promise<PageContextFromRoute> {
14
+ const pageRoutes: PageRoutes = pageContext._pageRoutes;
15
+ const urlPathname: string = pageContext.urlPathname;
16
+ const routeMatches = [];
17
+
18
+ // Execute onBeforeRoute hook if defined
19
+ const pageContextFromHook = await executeOnBeforeRouteHook(pageContext);
20
+ if (
21
+ pageContextFromHook &&
22
+ pageContextFromHook._routingProvidedByOnBeforeRouteHook &&
23
+ pageContextFromHook.pageId
24
+ ) {
25
+ return pageContextFromHook;
26
+ }
27
+
28
+ // Iterate through available routes to find a match
29
+ for (const pageRoute of pageRoutes) {
30
+ const { routeType, pageId } = pageRoute;
31
+
32
+ if (routeType === "STRING" && pageRoute.routeString) {
33
+ const match = resolveRouteString(pageRoute.routeString, urlPathname);
34
+ if (match) {
35
+ routeMatches.push({
36
+ pageId,
37
+ routeParams: match.routeParams,
38
+ routeType,
39
+ });
40
+ continue;
41
+ }
42
+ }
43
+
44
+ if (
45
+ routeType === "FUNCTION" &&
46
+ typeof pageRoute.routeFunction === "function"
47
+ ) {
48
+ const match = await resolveRouteFunction(
49
+ pageRoute.routeFunction as (
50
+ pageContext: PageContextUrlInternal,
51
+ ) => unknown,
52
+ pageContext,
53
+ );
54
+ if (match) {
55
+ routeMatches.push({
56
+ pageId,
57
+ routeParams: match.routeParams,
58
+ routeType,
59
+ });
60
+ continue;
61
+ }
62
+ }
63
+
64
+ if (routeType === "FILESYSTEM" && pageRoute.routeFilesystemDefinedBy) {
65
+ const match = resolveRouteString(pageRoute.routeString, urlPathname);
66
+ if (match) {
67
+ routeMatches.push({
68
+ pageId,
69
+ routeParams: match.routeParams,
70
+ routeType,
71
+ });
72
+ continue;
73
+ }
74
+ }
75
+ }
76
+
77
+ // Sort routes by precedence if multiple matches
78
+ routeMatches.sort((a, b) => {
79
+ if ("precedence" in a && "precedence" in b) {
80
+ return (a.precedence as number) - (b.precedence as number);
81
+ }
82
+ return 0;
83
+ });
84
+
85
+ const bestMatch = routeMatches[0] ?? null;
86
+
87
+ // Assign matched route context to pageContextFromRoute
88
+ const pageContextFromRoute: PageContextFromRoute = {
89
+ pageId: bestMatch ? bestMatch.pageId : null,
90
+ routeParams: bestMatch ? bestMatch.routeParams : {},
91
+ _debugRouteMatches: routeMatches,
92
+ };
93
+
94
+ return pageContextFromRoute;
95
+ }
96
+
97
+ export { routeInternal };
@@ -0,0 +1,30 @@
1
+ // Utils needed by:
2
+ // - runtime of server
3
+ // - runtime of client (Client Routing)
4
+
5
+ // Ensure we don't bloat runtime of Server Routing with the utils down below
6
+ import { assertClientRouting } from "../gaurds/assertions/assertRoutingType/index.js";
7
+ import { isBrowser } from "../gaurds/validators/isBrowser.js";
8
+
9
+ if (isBrowser()) {
10
+ assertClientRouting();
11
+ }
12
+
13
+ export * from "../targets/url/parseUrl.js";
14
+ export * from "../gaurds/assertions/checkType.js";
15
+ export * from "../gaurds/validators/hasProp.js";
16
+ export * from "../gaurds/validators/isBrowser.js";
17
+ export * from "../gaurds/validators/isObjectWithKeys.js";
18
+ export * from "../gaurds/validators/isPlainObject.js";
19
+ export * from "../gaurds/validators/isPromise.js";
20
+ export * from "../utils/array/slice.js";
21
+ export * from "../utils/array/sorter.js";
22
+ export * from "../utils/array/unique.js";
23
+ export * from "../gaurds/assertions/assertUsage/index.js";
24
+ export * from "../gaurds/assertions/assertInfo/index.js";
25
+ export * from "../gaurds/assertions/assertWarning/index.js";
26
+ export * from "../gaurds/assertions/assert/index.js";
27
+ export * from "../gaurds/validators/isCallable.js";
28
+ export * from "../utils/object/objectAssign.js";
29
+ export * from "../utils/string/joinEnglish.js";
30
+ export * from "../utils/string/truncateString.js";
@@ -0,0 +1,403 @@
1
+ /**
2
+ * Unified Base Service
3
+ *
4
+ * Consolidates all base service functionality into a single hierarchy.
5
+ * Replaces 5 duplicate base service implementations.
6
+ */
7
+
8
+ import { type UnifiedLoggerV2, createLogger } from '../logging';
9
+ import type { Result } from '../result';
10
+ import { toServiceResult } from '../result/adapters';
11
+ import type { ServiceResult } from '../types/contracts';
12
+
13
+ // ======
14
+ // CORE INTERFACES
15
+ // ======
16
+
17
+ export interface ServiceMetrics {
18
+ count: number;
19
+ totalTime: number;
20
+ errors: number;
21
+ }
22
+
23
+ export interface HealthStatus {
24
+ status: 'healthy' | 'degraded' | 'unhealthy';
25
+ uptime: number;
26
+ // Using Record<string, unknown> because service metrics structure varies by service type and cannot be strictly typed
27
+ metrics: /* Using Record<string, unknown> because service metrics structure varies by service type and cannot be strictly typed */ Record<
28
+ string,
29
+ { count: number; averageTime: number; errorRate: number }
30
+ >;
31
+ }
32
+
33
+ export interface ServiceMetadata {
34
+ name: string;
35
+ type: 'application' | 'domain' | 'infrastructure';
36
+ startTime: Date;
37
+ payloadAvailable?: boolean;
38
+ }
39
+
40
+ // ======
41
+ // BASE SERVICE CLASS
42
+ // ======
43
+
44
+ export abstract class BaseService {
45
+ protected readonly logger: UnifiedLoggerV2;
46
+ protected readonly serviceName: string;
47
+ protected readonly startTime: Date = new Date();
48
+ protected readonly metrics: Map<string, ServiceMetrics> = new Map();
49
+ protected readonly serviceType: 'application' | 'domain' | 'infrastructure';
50
+
51
+ constructor(
52
+ protected readonly payload: unknown | null,
53
+ serviceName: string,
54
+ serviceType: 'application' | 'domain' | 'infrastructure' = 'application'
55
+ ) {
56
+ this.serviceName = serviceName;
57
+ this.serviceType = serviceType;
58
+ this.logger = createLogger(serviceName);
59
+
60
+ // Validate PayloadCMS instance for infrastructure and application services (optional)
61
+ if (serviceType !== 'domain' && !payload) {
62
+ this.logger.warn(`PayloadCMS instance not provided for ${serviceType} service: ${serviceName}`);
63
+ }
64
+
65
+ this.logger.info(`${serviceName} initialized`);
66
+ }
67
+
68
+ // ======
69
+ // LIFECYCLE METHODS
70
+ // ======
71
+
72
+ /**
73
+ * Public initialize method - calls protected onInitialize()
74
+ * Can be overridden in subclasses via onInitialize()
75
+ */
76
+ public async initialize(): Promise<void> {
77
+ await this.onInitialize();
78
+ }
79
+
80
+ /**
81
+ * Public cleanup method - calls protected onCleanup()
82
+ * Can be overridden in subclasses via onCleanup()
83
+ */
84
+ public async cleanup(): Promise<void> {
85
+ await this.onCleanup();
86
+ }
87
+
88
+ /**
89
+ * Public healthCheck method - calls protected onHealthCheck()
90
+ * Can be overridden in subclasses via onHealthCheck()
91
+ */
92
+ public async healthCheck(): Promise<void> {
93
+ await this.onHealthCheck();
94
+ }
95
+
96
+ /**
97
+ * Protected hook for initialization - override in subclasses
98
+ */
99
+ protected async onInitialize(): Promise<void> {
100
+ this.logger.info(`${this.serviceName} initializing`);
101
+ // Override in subclasses for specific initialization
102
+ }
103
+
104
+ /**
105
+ * Protected hook for cleanup - override in subclasses
106
+ */
107
+ protected async onCleanup(): Promise<void> {
108
+ this.logger.info(`${this.serviceName} cleaning up`);
109
+ // Override in subclasses for specific cleanup
110
+ }
111
+
112
+ /**
113
+ * Protected hook for health checks - override in subclasses
114
+ */
115
+ protected async onHealthCheck(): Promise<void> {
116
+ // Override in subclasses for specific health checks
117
+ this.logger.debug(`${this.serviceName} health check passed`);
118
+ }
119
+
120
+ // ======
121
+ // OPERATION EXECUTION
122
+ // ======
123
+
124
+ protected async executeOperation<T>(
125
+ operation: () => Promise<T>,
126
+ operationName: string,
127
+ // Using Record<string, unknown> because operation context structure varies by operation type and cannot be strictly typed
128
+ context?: /* Using Record<string, unknown> because operation context structure varies by operation type and cannot be strictly typed */ Record<
129
+ string,
130
+ unknown
131
+ >
132
+ ): Promise<Result<T, Error> | ServiceResult<T>> {
133
+ const startTime = Date.now();
134
+
135
+ try {
136
+ this.logger.info(`Starting operation: ${operationName}`, {
137
+ service: this.serviceName,
138
+ context,
139
+ });
140
+
141
+ const result = await operation();
142
+ const duration = Date.now() - startTime;
143
+
144
+ this.recordSuccess(operationName, duration);
145
+
146
+ this.logger.info(`Completed operation: ${operationName}`, {
147
+ service: this.serviceName,
148
+ duration,
149
+ context,
150
+ });
151
+
152
+ // Return UnifiedResult
153
+ return { _tag: 'Success', value: result, success: true };
154
+ } catch (error) {
155
+ const duration = Date.now() - startTime;
156
+ this.recordError(operationName, duration);
157
+
158
+ const errorResult = this.handleError<T>(error, operationName, context);
159
+
160
+ // Convert ServiceResult to UnifiedResult
161
+ const errorObj = error instanceof Error ? error : new Error(String(error));
162
+ return { _tag: 'Failure', error: errorObj, success: false };
163
+ }
164
+ }
165
+
166
+ // ======
167
+ // ERROR HANDLING
168
+ // ======
169
+
170
+ protected handleError<T>(
171
+ error: unknown,
172
+ operationName: string,
173
+ // Using Record<string, unknown> because error context structure varies by error type and cannot be strictly typed
174
+ context?: /* Using Record<string, unknown> because error context structure varies by error type and cannot be strictly typed */ Record<
175
+ string,
176
+ unknown
177
+ >
178
+ ): ServiceResult<T> {
179
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
180
+
181
+ this.logger.error(`Operation failed: ${operationName}`, {
182
+ error: errorMessage,
183
+ service: this.serviceName,
184
+ operation: operationName,
185
+ context,
186
+ });
187
+
188
+ return {
189
+ success: false,
190
+ error: error instanceof Error ? error.message : errorMessage,
191
+ };
192
+ }
193
+
194
+ // ======
195
+ // METRICS TRACKING
196
+ // ======
197
+
198
+ protected recordSuccess(operationName: string, duration: number): void {
199
+ const existing = this.metrics.get(operationName) ?? { count: 0, totalTime: 0, errors: 0 };
200
+ this.metrics.set(operationName, {
201
+ count: existing.count + 1,
202
+ totalTime: existing.totalTime + duration,
203
+ errors: existing.errors,
204
+ });
205
+ }
206
+
207
+ protected recordError(operationName: string, duration: number): void {
208
+ const existing = this.metrics.get(operationName) ?? { count: 0, totalTime: 0, errors: 0 };
209
+ this.metrics.set(operationName, {
210
+ count: existing.count + 1,
211
+ totalTime: existing.totalTime + duration,
212
+ errors: existing.errors + 1,
213
+ });
214
+ }
215
+
216
+ // ======
217
+ // HEALTH MONITORING
218
+ // ======
219
+
220
+ async getHealthStatus(): Promise<ServiceResult<HealthStatus>> {
221
+ try {
222
+ await this.onHealthCheck();
223
+
224
+ const uptime = Date.now() - this.startTime.getTime();
225
+ const metrics: Record<string, { count: number; averageTime: number; errorRate: number }> = {};
226
+
227
+ for (const [operation, data] of this.metrics.entries()) {
228
+ metrics[operation] = {
229
+ count: data.count,
230
+ averageTime: data.count > 0 ? data.totalTime / data.count : 0,
231
+ errorRate: data.count > 0 ? data.errors / data.count : 0,
232
+ };
233
+ }
234
+
235
+ // Determine health status based on error rates
236
+ const totalErrors = Array.from(this.metrics.values()).reduce(
237
+ (sum, data) => sum + data.errors,
238
+ 0
239
+ );
240
+ const totalOperations = Array.from(this.metrics.values()).reduce(
241
+ (sum, data) => sum + data.count,
242
+ 0
243
+ );
244
+ const errorRate = totalOperations > 0 ? totalErrors / totalOperations : 0;
245
+
246
+ let status: 'healthy' | 'degraded' | 'unhealthy';
247
+ if (errorRate > 0.5) status = 'unhealthy';
248
+ else if (errorRate > 0.1) status = 'degraded';
249
+ else status = 'healthy';
250
+
251
+ return {
252
+ success: true,
253
+ data: { status, uptime, metrics },
254
+ };
255
+ } catch (error) {
256
+ return this.handleError(error, 'getHealthStatus');
257
+ }
258
+ }
259
+
260
+ // ======
261
+ // METADATA
262
+ // ======
263
+
264
+ getMetadata(): ServiceMetadata {
265
+ return {
266
+ name: this.serviceName,
267
+ type: this.serviceType,
268
+ startTime: this.startTime,
269
+ payloadAvailable: !!this.payload,
270
+ };
271
+ }
272
+
273
+ // ======
274
+ // UTILITY METHODS
275
+ // ======
276
+
277
+ protected validateBusinessRule(condition: boolean, errorMessage: string): void {
278
+ if (!condition) {
279
+ throw new Error(`Business rule violation: ${errorMessage}`);
280
+ }
281
+ }
282
+
283
+ protected async executeInTransaction<T>(
284
+ operation: () => Promise<T>,
285
+ operationName: string
286
+ ): Promise<ServiceResult<T>> {
287
+ const result = await this.executeOperation(async () => {
288
+ // In a real implementation, this would start a database transaction
289
+ // For now, we'll just execute the operation
290
+ return await operation();
291
+ }, `${operationName}_transaction`);
292
+ // Convert Result to ServiceResult if needed
293
+ if ('isSuccess' in result || 'isFailure' in result) {
294
+ return toServiceResult(result as Result<T, Error>);
295
+ }
296
+ return result as ServiceResult<T>;
297
+ }
298
+
299
+ protected async coordinateServices<T>(
300
+ services: Array<() => Promise<unknown>>,
301
+ operationName: string
302
+ ): Promise<ServiceResult<T>> {
303
+ const result = await this.executeOperation(async () => {
304
+ const results = await Promise.all(services.map(service => service()));
305
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
306
+ return results as any as T;
307
+ }, `${operationName}_coordination`);
308
+ // Convert Result to ServiceResult if needed
309
+ if ('isSuccess' in result || 'isFailure' in result) {
310
+ return toServiceResult(result as Result<T, Error>);
311
+ }
312
+ return result as ServiceResult<T>;
313
+ }
314
+ }
315
+
316
+ // ======
317
+ // LAYER-SPECIFIC EXTENSIONS
318
+ // ======
319
+
320
+ export abstract class ApplicationService extends BaseService {
321
+ constructor(payload: unknown, serviceName: string) {
322
+ super(payload, serviceName, 'application');
323
+ }
324
+
325
+ protected async executeApplicationOperation<T>(
326
+ operation: () => Promise<T>,
327
+ operationName: string,
328
+ // Using Record<string, unknown> because operation context structure varies by operation type and cannot be strictly typed
329
+ context?: /* Using Record<string, unknown> because operation context structure varies by operation type and cannot be strictly typed */ Record<
330
+ string,
331
+ unknown
332
+ >
333
+ ): Promise<ServiceResult<T>> {
334
+ const result = await this.executeOperation(operation, operationName, context);
335
+ // Convert Result to ServiceResult if needed
336
+ if ('isSuccess' in result || 'isFailure' in result) {
337
+ return toServiceResult(result as Result<T, Error>);
338
+ }
339
+ return result as ServiceResult<T>;
340
+ }
341
+
342
+ protected handleApplicationError<T>(
343
+ error: unknown,
344
+ operationName: string,
345
+ // Using Record<string, unknown> because error context structure varies by error type and cannot be strictly typed
346
+ context?: /* Using Record<string, unknown> because error context structure varies by error type and cannot be strictly typed */ Record<
347
+ string,
348
+ unknown
349
+ >
350
+ ): ServiceResult<T> {
351
+ return this.handleError(error, operationName, context);
352
+ }
353
+ }
354
+
355
+ export abstract class DomainService extends BaseService {
356
+ constructor(serviceName: string) {
357
+ super(null, serviceName, 'domain');
358
+ }
359
+
360
+ protected async executeDomainOperation<T>(
361
+ operation: () => Promise<T>,
362
+ operationName: string
363
+ ): Promise<ServiceResult<T>> {
364
+ const result = await this.executeOperation(operation, operationName);
365
+ // Convert Result to ServiceResult if needed
366
+ if ('isSuccess' in result || 'isFailure' in result) {
367
+ return toServiceResult(result as Result<T, Error>);
368
+ }
369
+ return result as ServiceResult<T>;
370
+ }
371
+
372
+ protected handleDomainError<T>(error: unknown, _operationName: string): ServiceResult<T> {
373
+ // Domain services should not log - that's infrastructure concern
374
+ const errorMessage = error instanceof Error ? error.message : 'Unknown domain error';
375
+ return {
376
+ success: false,
377
+ error: error instanceof Error ? error.message : errorMessage,
378
+ };
379
+ }
380
+ }
381
+
382
+ export abstract class InfrastructureService extends BaseService {
383
+ constructor(payload: unknown, serviceName: string) {
384
+ super(payload, serviceName, 'infrastructure');
385
+ }
386
+
387
+ protected async executeInfrastructureOperation<T>(
388
+ operation: () => Promise<T>,
389
+ operationName: string
390
+ ): Promise<ServiceResult<T>> {
391
+ const result = await this.executeOperation(operation, operationName);
392
+ // Convert Result to ServiceResult if needed
393
+ if ('isSuccess' in result || 'isFailure' in result) {
394
+ return toServiceResult(result as Result<T, Error>);
395
+ }
396
+ return result as ServiceResult<T>;
397
+ }
398
+
399
+ protected handleInfrastructureError<T>(error: unknown, operationName: string): ServiceResult<T> {
400
+ return this.handleError(error, operationName);
401
+ }
402
+ }
403
+
@@ -0,0 +1,11 @@
1
+ // TODO/v1-release: Move all universal imports (when using Client Routing) to:
2
+ // import {
3
+ // redirect,
4
+ // render,
5
+ // resolveRoute,
6
+ // navigate,
7
+ // prefetch,
8
+ // } from 'reveal'
9
+ // Use package.json#exports to make the imports isomorphic.
10
+ // The client-side has no utility when using Server Routing.
11
+ export { redirect, render } from "../../router/abort.js";
@@ -0,0 +1,48 @@
1
+ export { createPageContext };
2
+
3
+ import { assert } from "../../gaurds/assertions/assert/index.js";
4
+ import { loadPageRoutes } from "../../router/loadPageRoutes.js";
5
+
6
+ import { getBaseServer } from "../../processing/getters/getBaseServer.js";
7
+ import getGlobalObject from "../../processing/getters/getGlobalObject.js";
8
+ import { getPageContextUrlComputed } from "../../processing/getters/getPageContextUrlComputed.js";
9
+ import { getPageFilesAll } from "../../processing/getters/getPageFiles/index.js";
10
+ import { isBaseServer } from "../../targets/url/parseUrl.js";
11
+ import { objectAssign } from "../../utils/object/objectAssign.js";
12
+ import { PromiseType } from "../../../types/interfaces/logic.js";
13
+
14
+ const globalObject = getGlobalObject<{
15
+ pageFilesData?: PromiseType<ReturnType<typeof getPageFilesAll>>;
16
+ }>("createPageContext.ts", {});
17
+
18
+ async function createPageContext(urlOriginal: string) {
19
+ if (!globalObject.pageFilesData) {
20
+ globalObject.pageFilesData = await getPageFilesAll(true);
21
+ }
22
+ const { pageFilesAll, allPageIds, pageConfigs, pageConfigGlobal } =
23
+ globalObject.pageFilesData;
24
+ const { pageRoutes, onBeforeRouteHook } = await loadPageRoutes(
25
+ pageConfigs,
26
+ pageConfigGlobal,
27
+ allPageIds,
28
+ );
29
+ const baseServer = getBaseServer();
30
+ assert(isBaseServer(baseServer));
31
+ const pageContext = {
32
+ urlOriginal,
33
+ _objectCreatedByReveal: true,
34
+ _urlHandler: null,
35
+ _urlRewrite: null,
36
+ _baseServer: baseServer,
37
+ _pageFilesAll: pageFilesAll,
38
+ _pageConfigs: pageConfigs,
39
+ _pageConfigGlobal: pageConfigGlobal,
40
+ _allPageIds: allPageIds,
41
+ _pageRoutes: pageRoutes,
42
+ _onBeforeRouteHook: onBeforeRouteHook,
43
+ _isPageContextObject: true,
44
+ };
45
+ const pageContextUrlComputed = getPageContextUrlComputed(pageContext);
46
+ objectAssign(pageContext, pageContextUrlComputed);
47
+ return pageContext;
48
+ }
@@ -0,0 +1,15 @@
1
+ import { assertClientRouting } from "../../gaurds/assertions/assertRoutingType/base.js";
2
+ import { onClientEntryClientRouting } from "../../gaurds/assertions/assertSingleInstance/index.js";
3
+
4
+ assertClientRouting();
5
+
6
+ import { initClientRouter } from "./initClientRouter.js";
7
+ import "./pageFiles.js";
8
+ import { removeFoucBuster } from "./removeFoucBuster.js";
9
+
10
+ const isProd: boolean = import.meta.env.PROD;
11
+ onClientEntryClientRouting(isProd);
12
+
13
+ if (import.meta.env.DEV) removeFoucBuster();
14
+
15
+ initClientRouter();
@@ -0,0 +1,94 @@
1
+ export { executeOnRenderClientHook };
2
+ export type { PageContextBeforeRenderClient };
3
+
4
+ import { getHook, type Hook } from "../../processing/getters/getHook.js";
5
+ import { assert, executeHook } from "../server/utils.js";
6
+
7
+ import { PageConfigRuntime } from "../../../types/interfaces/page.js";
8
+ import { PageContextExports } from "../../processing/getters/getPageFiles/index.js";
9
+
10
+ import {
11
+ type PageContextForUserConsumptionClientSide,
12
+ preparePageContextForUserConsumptionClientSide,
13
+ } from "./preparePageContextForUserConsumptionClientSide.js";
14
+ import { assertUsage } from "../../gaurds/assertions/assertUsage/index.js";
15
+ import {PageFile} from "../../__internal/index.js";
16
+
17
+ type PageContextBeforeRenderClient = {
18
+ _pageFilesLoaded: PageFile[];
19
+ urlOriginal?: string;
20
+ urlPathname?: string;
21
+ pageId: string;
22
+ _pageConfigs: PageConfigRuntime[];
23
+ } & PageContextExports &
24
+ PageContextForUserConsumptionClientSide;
25
+
26
+ async function executeOnRenderClientHook<
27
+ PC extends PageContextBeforeRenderClient,
28
+ >(pageContext: PC, isClientRouting: boolean): Promise<void> {
29
+ const pageContextForUserConsumption =
30
+ preparePageContextForUserConsumptionClientSide(
31
+ pageContext,
32
+ isClientRouting,
33
+ );
34
+
35
+ let hook: null | Hook = null;
36
+ let hookName: "onRenderClient";
37
+
38
+ {
39
+ const renderHook = getHook(pageContext, "onRenderClient");
40
+ hook = renderHook;
41
+ hookName = "onRenderClient";
42
+ }
43
+ {
44
+ const renderHook = getHook(pageContext, "onRenderClient");
45
+ if (renderHook) {
46
+ hook = renderHook;
47
+ hookName = "onRenderClient";
48
+ }
49
+ }
50
+
51
+ if (!hook) {
52
+ const urlToShowToUser = getUrlToShowToUser(pageContext);
53
+ assert(urlToShowToUser);
54
+ if (pageContext._pageConfigs.length > 0) {
55
+ // V1 design
56
+ assertUsage(
57
+ false,
58
+ `No onRenderClient() hook defined for URL '${urlToShowToUser}', but it's needed.`,
59
+ );
60
+ }
61
+ }
62
+
63
+ assert(hook);
64
+ const renderHook = hook.hookFn;
65
+ assert(hookName);
66
+
67
+ // We don't use a try-catch wrapper because rendering errors are usually handled by the UI framework. (E.g. React's Error Boundaries.)
68
+ const hookResult = await executeHook(
69
+ () => renderHook(pageContextForUserConsumption),
70
+ hook,
71
+ pageContext,
72
+ );
73
+ assertUsage(
74
+ hookResult === undefined,
75
+ `The ${hookName}() hook defined by ${hook.hookFilePath} isn't allowed to return a value`,
76
+ );
77
+ }
78
+
79
+ function getUrlToShowToUser(pageContext: {
80
+ urlOriginal?: string;
81
+ urlPathname?: string;
82
+ }): string {
83
+ let url: string | undefined;
84
+ // try/catch to avoid passToClient assertUsage() (although: this may not be needed anymore, since we're now accessing pageContext and not pageContextForUserConsumption)
85
+ try {
86
+ url =
87
+ // Client Routing
88
+ pageContext.urlPathname ??
89
+ // Server Routing
90
+ pageContext.urlOriginal;
91
+ } catch {}
92
+ url = url ?? window.location.href;
93
+ return url;
94
+ }