@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,490 @@
1
+ export {
2
+ getConfigBuildErrorFormatted,
3
+ getConfigExecutionErrorIntroMsg,
4
+ isTemporaryBuildFile,
5
+ transpileAndExecuteFile,
6
+ }
7
+
8
+ import { import_ } from "@brillout/import"
9
+ import pc from "@brillout/picocolors"
10
+ import {
11
+ build,
12
+ type BuildOptions,
13
+ type BuildResult,
14
+ formatMessages,
15
+ type Message,
16
+ } from "esbuild"
17
+ import fs from "fs"
18
+ import path from "path"
19
+ import "source-map-support/register.js"
20
+ import {
21
+ assert,
22
+ assertFilePathAbsoluteFilesystem,
23
+ assertIsNotProductionRuntime,
24
+ assertIsNpmPackageImport,
25
+ assertPosixPath,
26
+ assertUsage,
27
+ assertWarning,
28
+ createDebugger,
29
+ getRandomId,
30
+ isObject,
31
+ isPlainJavaScriptFile,
32
+ toPosixPath,
33
+ } from "../../../../plugins/utils.js"
34
+ import { FilePathResolved } from "../../../../types/interfaces/file.js"
35
+ import { getFilePathAbsoluteUserRootDir } from "../getFilePath.js"
36
+ import { revealConfigDependencies } from "./index.js"
37
+ import { transformPointerImports } from "./transformPointerImports.js"
38
+
39
+ assertIsNotProductionRuntime()
40
+ const debug = createDebugger("reveal:pointer-imports")
41
+
42
+ async function transpileAndExecuteFile(
43
+ filePath: FilePathResolved,
44
+ userRootDir: string,
45
+ isConfigFile: boolean | "is-extension-config"
46
+ ): Promise<{ fileExports: Record<string, unknown> }> {
47
+ const { filePathAbsoluteFilesystem, filePathToShowToUserResolved } = filePath
48
+ const fileExtension = getFileExtension(filePathAbsoluteFilesystem)
49
+
50
+ assertUsage(
51
+ isPlainJavaScriptFile(filePathAbsoluteFilesystem),
52
+ `${filePathToShowToUserResolved} has file extension .${fileExtension} but a config file can only be a JavaScript/TypeScript file`
53
+ )
54
+ const isHeader = isHeaderFile(filePathAbsoluteFilesystem)
55
+ if (isHeader) {
56
+ assertWarning(
57
+ false,
58
+ `${pc.cyan(
59
+ ".h.js"
60
+ )} files are deprecated: simply renaming ${filePathToShowToUserResolved} to ${removeHeaderFileExtension(
61
+ filePathToShowToUserResolved
62
+ )} is usually enough, although you may occasionally need to use ${pc.cyan(
63
+ "with { type: 'pointer' }"
64
+ )} as explained at https://reveal.dev/config#pointer-imports`,
65
+ { onlyOnce: true }
66
+ )
67
+ }
68
+
69
+ if (
70
+ isConfigFile === "is-extension-config" &&
71
+ !isHeader &&
72
+ fileExtension.endsWith("js")
73
+ ) {
74
+ // This doesn't track dependencies => we should never use this for user land configs
75
+ const fileExports = await executeFile(filePathAbsoluteFilesystem, filePath)
76
+ return { fileExports }
77
+ } else {
78
+ const transformImports = isConfigFile && (isHeader ? "all" : true)
79
+ const code = await transpileFile(filePath, transformImports, userRootDir)
80
+ const fileExports = await executeTranspiledFile(filePath, code)
81
+ return { fileExports }
82
+ }
83
+ }
84
+
85
+ async function transpileFile(
86
+ filePath: FilePathResolved,
87
+ transformImports: boolean | "all",
88
+ userRootDir: string
89
+ ) {
90
+ const { filePathAbsoluteFilesystem, filePathToShowToUserResolved } = filePath
91
+
92
+ assertPosixPath(filePathAbsoluteFilesystem)
93
+ revealConfigDependencies.add(filePathAbsoluteFilesystem)
94
+
95
+ if (debug.isActivated) debug("transpile", filePathToShowToUserResolved)
96
+ let { code, pointerImports } = await transpileWithEsbuild(
97
+ filePath,
98
+ userRootDir,
99
+ transformImports
100
+ )
101
+ if (debug.isActivated)
102
+ debug(`code, post esbuild (${filePathToShowToUserResolved})`, code)
103
+
104
+ let isImportTransformed = false
105
+ if (transformImports) {
106
+ const codeMod = transformPointerImports(
107
+ code,
108
+ filePathToShowToUserResolved,
109
+ pointerImports
110
+ )
111
+ if (codeMod) {
112
+ code = codeMod
113
+ isImportTransformed = true
114
+ if (debug.isActivated)
115
+ debug(
116
+ `code, post pointer imports transform (${filePathToShowToUserResolved})`,
117
+ code
118
+ )
119
+ }
120
+ }
121
+ if (!isImportTransformed) {
122
+ if (debug.isActivated)
123
+ debug(`code, no pointer imports (${filePathToShowToUserResolved})`)
124
+ }
125
+ return code
126
+ }
127
+
128
+ async function transpileWithEsbuild(
129
+ filePath: FilePathResolved,
130
+ userRootDir: string,
131
+ transformImports: boolean | "all"
132
+ ) {
133
+ const entryFilePath = filePath.filePathAbsoluteFilesystem
134
+ const entryFileDir = path.posix.dirname(entryFilePath)
135
+ const options: BuildOptions = {
136
+ platform: "node",
137
+ entryPoints: [entryFilePath],
138
+ sourcemap: "inline",
139
+ write: false,
140
+ target: ["node14.18", "node16"],
141
+ outfile: path.posix.join(
142
+ // Needed for correct inline source map
143
+ entryFileDir,
144
+ // `write: false` => no file is actually emitted
145
+ "NEVER_EMITTED.js"
146
+ ),
147
+ logLevel: "silent",
148
+ format: "esm",
149
+ absWorkingDir: userRootDir,
150
+ // Disable tree-shaking to avoid dead-code elimination, so that unused imports aren't removed.
151
+ // Esbuild still sometimes removes unused imports because of TypeScript: https://github.com/evanw/esbuild/issues/3034
152
+ treeShaking: false,
153
+ minify: false,
154
+ metafile: true,
155
+ bundle: true,
156
+ }
157
+
158
+ let pointerImports: Record<string, boolean> = {}
159
+ options.plugins = [
160
+ // Determine whether an import should be:
161
+ // - A pointer import
162
+ // - Externalized
163
+ {
164
+ name: "reveal-esbuild",
165
+ setup(build) {
166
+ // https://github.com/brillout/esbuild-playground
167
+ build.onResolve({ filter: /.*/ }, async (args) => {
168
+ if (args.kind !== "import-statement") return
169
+
170
+ // Avoid infinite loop: https://github.com/evanw/esbuild/issues/3095#issuecomment-1546916366
171
+ const useEsbuildResolver = "useEsbuildResolver"
172
+ if (args.pluginData?.[useEsbuildResolver]) return
173
+ const { path, ...opts } = args
174
+ opts.pluginData = { [useEsbuildResolver]: true }
175
+
176
+ const resolved = await build.resolve(path, opts)
177
+
178
+ if (resolved.errors.length > 0) {
179
+ /* We could do the following to let Node.js throw the error, but we don't because the error shown by esbuild is prettier: the Node.js error refers to the transpiled [build-f7i251e0iwnw]+config.ts.mjs whereas esbuild refers to the source +config.ts file.
180
+ pointerImports[args.path] = false
181
+ return { external: true }
182
+ */
183
+ cleanEsbuildErrors(resolved.errors)
184
+ // Let esbuild throw the error
185
+ return resolved
186
+ }
187
+
188
+ assert(resolved.path)
189
+ const importPathResolved = toPosixPath(resolved.path)
190
+ const importPathOriginal = args.path
191
+
192
+ // Esbuild resolves path aliases.
193
+ // - Enabling us to use:
194
+ // - assertIsNpmPackageImport()
195
+ // - isNpmPackageImport(str, { cannotBePathAlias: true })
196
+ assertFilePathAbsoluteFilesystem(importPathResolved)
197
+
198
+ // reveal-{react,vue,solid} follow the convention that their config export resolves to a file named +config.js
199
+ // - This is temporary, see comment below.
200
+ const isRevealExtensionImport =
201
+ importPathResolved.endsWith("+config.js")
202
+
203
+ const isPointerImport =
204
+ transformImports === "all" ||
205
+ // .jsx, .vue, .svg, ... => obviously not config code => pointer import
206
+ !isPlainJavaScriptFile(importPathResolved) ||
207
+ // Import of a reveal extension config => make it a pointer import because we want to show nice error messages (that can display whether a config has been set by the user or by a reveal extension).
208
+ // - TODO/eventually: stop doing this and, instead, let Node.js directly load reveal-{react,vue,solid} while enforcing reveal extensions to set 'name' in their +config.js file.
209
+ // - reveal@0.4.162 already started soft-requiring reveal extensions to set the name config
210
+ isRevealExtensionImport
211
+
212
+ assertPosixPath(importPathResolved)
213
+ const isNodeModules = importPathResolved.includes("/node_modules/")
214
+
215
+ const isExternal =
216
+ isPointerImport ||
217
+ // Performance: npm package imports can be externalized. (We could as well let esbuild transpile /node_modules/ code but it's useless as /node_modules/ code is already built. It would unnecessarily slow down transpilation.)
218
+ isNodeModules
219
+
220
+ if (!isExternal) {
221
+ // User-land config code (i.e. not runtime code) => let esbuild transpile it
222
+ assert(!isPointerImport && !isNodeModules)
223
+ if (debug.isActivated)
224
+ debug("onResolved()", {
225
+ args,
226
+ resolved,
227
+ isPointerImport,
228
+ isExternal,
229
+ })
230
+ return resolved
231
+ }
232
+
233
+ let importPathTranspiled: string
234
+ assertPosixPath(importPathOriginal)
235
+ if (
236
+ importPathOriginal.startsWith("./") ||
237
+ importPathOriginal.startsWith("../")
238
+ ) {
239
+ importPathTranspiled = importPathResolved
240
+ } else {
241
+ // `importPathOriginal` is either:
242
+ // - Npm package import
243
+ // - Path alias
244
+ const filePathAbsoluteUserRootDir = getFilePathAbsoluteUserRootDir({
245
+ filePathAbsoluteFilesystem: importPathResolved,
246
+ userRootDir,
247
+ })
248
+ // We assuming that path aliases always resolve inside `userRootDir`.
249
+ if (filePathAbsoluteUserRootDir && !isNodeModules) {
250
+ // `importPathOriginal` is a path alias.
251
+ // - We have to use esbuild's path alias resolution, because:
252
+ // - reveal doesn't resolve path aliases at all.
253
+ // - Node.js doesn't support `tsconfig.js#compilerOptions.paths`.
254
+ // - Esbuild path alias resolution seems to be reliable, e.g. it supports `tsconfig.js#compilerOptions.paths`.
255
+ importPathTranspiled = importPathResolved
256
+ } else {
257
+ // `importPathOriginal` is an npm package import.
258
+ assertIsNpmPackageImport(importPathOriginal)
259
+ // For less confusing error messages, let the resolution be handled by reveal or Node.js.
260
+ importPathTranspiled = importPathOriginal
261
+ }
262
+ }
263
+
264
+ if (debug.isActivated)
265
+ debug("onResolved()", {
266
+ args,
267
+ resolved,
268
+ importPathTranspiled,
269
+ isPointerImport,
270
+ isExternal,
271
+ })
272
+ assert(isExternal)
273
+ assert(
274
+ // Import of runtime code => handled by reveal
275
+ isPointerImport ||
276
+ // Import of config code => loaded by Node.js at build-time
277
+ isNodeModules
278
+ )
279
+ pointerImports[importPathTranspiled] = isPointerImport
280
+ return { external: true, path: importPathTranspiled }
281
+ })
282
+ },
283
+ },
284
+ // Track dependencies
285
+ {
286
+ name: "reveal:dependency-tracker",
287
+ setup(b) {
288
+ b.onLoad({ filter: /./ }, (args) => {
289
+ // We collect the dependency `args.path` in case the bulid fails (upon build error => error is thrown => no metafile)
290
+ let { path } = args
291
+ path = toPosixPath(path)
292
+ revealConfigDependencies.add(path)
293
+ return undefined
294
+ })
295
+ /* To exhaustively collect all dependencies upon build failure, we would also need to use onResolve().
296
+ * - Because onLoad() isn't call if the config dependency can't be resolved.
297
+ * - For example, the following breaks auto-reload (the config is stuck in its error state and the user needs to touch the importer for the config to reload):
298
+ * ```bash
299
+ * mv ./some-config-dependency.js /tmp/ && mv /tmp/some-config-dependency.js .
300
+ * ```
301
+ * - But implementing a fix is complex and isn't worth it.
302
+ b.onResolve(...)
303
+ */
304
+ },
305
+ },
306
+ ]
307
+
308
+ let result: BuildResult
309
+ try {
310
+ result = await build(options)
311
+ } catch (err) {
312
+ await formatBuildErr(err, filePath)
313
+ throw err
314
+ }
315
+
316
+ // Track dependencies
317
+ assert(result.metafile)
318
+ Object.keys(result.metafile.inputs).forEach((filePathRelative) => {
319
+ filePathRelative = toPosixPath(filePathRelative)
320
+ assertPosixPath(userRootDir)
321
+ const filePathAbsoluteFilesystem = path.posix.join(
322
+ userRootDir,
323
+ filePathRelative
324
+ )
325
+ revealConfigDependencies.add(filePathAbsoluteFilesystem)
326
+ })
327
+
328
+ const code = result.outputFiles![0]!.text
329
+ assert(typeof code === "string")
330
+ return { code, pointerImports }
331
+ }
332
+
333
+ async function executeTranspiledFile(filePath: FilePathResolved, code: string) {
334
+ const { filePathAbsoluteFilesystem } = filePath
335
+ // Alternative to using a temporary file: https://github.com/vitejs/vite/pull/13269
336
+ // - But seems to break source maps, so I don't think it's worth it
337
+ const filePathTmp = getTemporaryBuildFilePath(filePathAbsoluteFilesystem)
338
+ fs.writeFileSync(filePathTmp, code)
339
+ const clean = () => fs.unlinkSync(filePathTmp)
340
+ let fileExports: Record<string, unknown> = {}
341
+ try {
342
+ fileExports = await executeFile(filePathTmp, filePath)
343
+ } finally {
344
+ clean()
345
+ }
346
+ return fileExports
347
+ }
348
+
349
+ async function executeFile(
350
+ filePathToExecuteAbsoluteFilesystem: string,
351
+ filePathSourceFile: FilePathResolved
352
+ ) {
353
+ let fileExports: Record<string, unknown> = {}
354
+ try {
355
+ fileExports = await import_(filePathToExecuteAbsoluteFilesystem)
356
+ } catch (err) {
357
+ triggerPrepareStackTrace(err)
358
+ const errIntroMsg = getErrIntroMsg("execute", filePathSourceFile)
359
+ assert(isObject(err))
360
+ execErrIntroMsg.set(err, errIntroMsg)
361
+ throw err
362
+ }
363
+ // Return a plain JavaScript object:
364
+ // - import() returns `[Module: null prototype] { default: { onRenderClient: '...' }}`
365
+ // - We don't need this special object.
366
+ fileExports = { ...fileExports }
367
+ return fileExports
368
+ }
369
+
370
+ const formatted = "_formatted"
371
+ function getConfigBuildErrorFormatted(err: unknown): null | string {
372
+ if (!isObject(err)) return null
373
+ if (!(formatted in err)) return null
374
+ assert(typeof err[formatted] === "string")
375
+ return err[formatted]
376
+ }
377
+ async function formatBuildErr(
378
+ err: unknown,
379
+ filePath: FilePathResolved
380
+ ): Promise<void> {
381
+ assert(isObject(err) && err.errors)
382
+ const msgEsbuild = (
383
+ await formatMessages(err.errors as any, {
384
+ kind: "error",
385
+ color: true,
386
+ })
387
+ )
388
+ .map((m) => m.trim())
389
+ .join("\n")
390
+ const msgIntro = getErrIntroMsg("transpile", filePath)
391
+ err[formatted] = `${msgIntro}\n${msgEsbuild}`
392
+ }
393
+
394
+ const execErrIntroMsg = new WeakMap<object, string>()
395
+ function getConfigExecutionErrorIntroMsg(err: unknown): string | null {
396
+ if (!isObject(err)) return null
397
+ const errIntroMsg = execErrIntroMsg.get(err)
398
+ return errIntroMsg ?? null
399
+ }
400
+
401
+ function getTemporaryBuildFilePath(filePathAbsoluteFilesystem: string): string {
402
+ assertPosixPath(filePathAbsoluteFilesystem)
403
+ const dirname = path.posix.dirname(filePathAbsoluteFilesystem)
404
+ const filename = path.posix.basename(filePathAbsoluteFilesystem)
405
+ // Syntax with semicolon `build:${/*...*/}` doesn't work on Windows: https://github.com/revealjs/reveal/issues/800#issuecomment-1517329455
406
+ const filePathTmp = path.posix.join(
407
+ dirname,
408
+ `${filename}.build-${getRandomId(12)}.mjs`
409
+ )
410
+ assert(isTemporaryBuildFile(filePathTmp))
411
+ return filePathTmp
412
+ }
413
+ function isTemporaryBuildFile(filePath: string): boolean {
414
+ assertPosixPath(filePath)
415
+ const fileName = path.posix.basename(filePath)
416
+ return /\.build-[a-z0-9]{12}\.mjs$/.test(fileName)
417
+ }
418
+
419
+ function isHeaderFile(filePath: string) {
420
+ assertPosixPath(filePath)
421
+ const fileExtensions = getFileExtensions(filePath)
422
+ return fileExtensions.includes("h")
423
+ }
424
+ function getFileExtensions(filePath: string) {
425
+ const fileExtensions = path.posix.basename(filePath).split(".").slice(1)
426
+ return fileExtensions
427
+ }
428
+ function getFileExtension(filePath: string): string {
429
+ const fileExtensions = path.posix.basename(filePath).split(".").slice(1)
430
+ return fileExtensions.pop()!
431
+ }
432
+ function removeHeaderFileExtension(filePath: string) {
433
+ assertPosixPath(filePath)
434
+ const fileName = path.posix.basename(filePath)
435
+ const fileNameParts = fileName.split(".")
436
+ const fileNamePartsMod = fileNameParts.filter((p) => p !== "h")
437
+ assert(fileNamePartsMod.length < fileNameParts.length)
438
+ const fileNameMod = fileNamePartsMod.join(".")
439
+ return path.posix.join(path.posix.dirname(filePath), fileNameMod)
440
+ }
441
+
442
+ // Needed for the npm package 'source-map-support'. The Error.prepareStackTrace() hook of 'source-map-support' needs to be called before the file containing the source map is removed. The clean() call above removes the transpiled file from disk but it contains the inline source map.
443
+ function triggerPrepareStackTrace(err: unknown) {
444
+ if (isObject(err)) {
445
+ // Accessing err.stack triggers prepareStackTrace()
446
+ const { stack } = err
447
+ // Ensure no compiler removes the line above
448
+ if (1 + 1 === 3) console.log("I_AM_NEVER_SHOWN" + stack)
449
+ }
450
+ }
451
+
452
+ function getErrIntroMsg(
453
+ operation: "transpile" | "execute",
454
+ filePath: FilePathResolved
455
+ ) {
456
+ const { filePathToShowToUserResolved } = filePath
457
+ const msg = [
458
+ // prettier ignore
459
+ pc.red(`Failed to ${operation}`),
460
+ pc.bold(pc.red(filePathToShowToUserResolved)),
461
+ pc.red(`because:`),
462
+ ].join(" ")
463
+ return msg
464
+ }
465
+
466
+ function cleanEsbuildErrors(errors: Message[]) {
467
+ errors.forEach(
468
+ (e) =>
469
+ (e.notes = e.notes.filter(
470
+ (note) =>
471
+ // Remove note:
472
+ // ```shell
473
+ // You can mark the path "#root/renderer/onRenderHtml_typo" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle.
474
+ // ```
475
+ //
476
+ // From error:
477
+ // ```shell
478
+ // ✘ [ERROR] Could not resolve "#root/renderer/onRenderHtml_typo" [plugin reveal-esbuild]
479
+ //
480
+ // renderer/+config.h.js:1:29:
481
+ // 1 │ import { onRenderHtml } from "#root/renderer/onRenderHtml_typo"
482
+ // ╵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
483
+ //
484
+ // You can mark the path "#root/renderer/onRenderHtml_typo" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle.
485
+ //
486
+ // ```
487
+ !note.text.includes("as external to exclude it from the bundle")
488
+ ))
489
+ )
490
+ }
@@ -0,0 +1,27 @@
1
+ export default getTagAttributesString;
2
+ export type { TagAttributes };
3
+
4
+ type TagAttributes = Record<
5
+ string,
6
+ string | number | boolean | undefined | null
7
+ >;
8
+
9
+ function getTagAttributesString(tagAttributes: TagAttributes): string {
10
+ const tagAttributesString = Object.entries(tagAttributes)
11
+ .filter(
12
+ ([_key, value]) =>
13
+ value !== false && value !== null && value !== undefined,
14
+ )
15
+ .map(
16
+ ([key, value]) =>
17
+ `${ensureIsValidAttributeName(key)}=${JSON.stringify(String(value))}`,
18
+ )
19
+ .join(" ");
20
+ if (tagAttributesString.length === 0) return "";
21
+ return ` ${tagAttributesString}`;
22
+ }
23
+
24
+ function ensureIsValidAttributeName(str: string): string {
25
+ if (/^[a-z][a-z0-9\-]*$/i.test(str) && !str.endsWith("-")) return str;
26
+ throw new Error(`Invalid HTML tag attribute name ${JSON.stringify(str)}`);
27
+ }
@@ -0,0 +1,9 @@
1
+ export function getTerminalWidth(): number | undefined {
2
+ // https://stackoverflow.com/questions/30335637/get-width-of-terminal-in-node-js/30335724#30335724
3
+ return (
4
+ (typeof process !== "undefined" &&
5
+ typeof process.stdout !== "undefined" &&
6
+ process.stdout.columns) ||
7
+ undefined
8
+ );
9
+ }
@@ -0,0 +1,6 @@
1
+ export function getValuePrintable(value: unknown): null | string {
2
+ if (([null, undefined] as unknown[]).includes(value)) return String(value);
3
+ if (["boolean", "number", "string"].includes(typeof value))
4
+ return JSON.stringify(value);
5
+ return null;
6
+ }
@@ -0,0 +1,47 @@
1
+ export { getViteDevScript }
2
+
3
+ import pc from "@brillout/picocolors"
4
+ import { assert } from "../../gaurds/assertions/assert"
5
+ import { assertUsage } from "../../gaurds/assertions/assertUsage"
6
+ import { assertWarning } from "../../gaurds/assertions/assertWarning"
7
+ import { getGlobalContext } from "../../globals/contexts"
8
+
9
+ async function getViteDevScript(): Promise<string> {
10
+ const globalContext = getGlobalContext()
11
+ if (globalContext.isProduction) {
12
+ return ""
13
+ }
14
+ const { viteDevServer } = globalContext
15
+
16
+ const fakeHtmlBegin = "<html> <head>" // White space to test whether user is using a minifier
17
+ const fakeHtmlEnd = "</head><body></body></html>"
18
+ let fakeHtml = fakeHtmlBegin + fakeHtmlEnd
19
+ fakeHtml = await viteDevServer.transformIndexHtml("/", fakeHtml)
20
+ assertUsage(
21
+ !fakeHtml.includes("vite-plugin-pwa"),
22
+ `The HTML transformer of ${pc.cyan(
23
+ "vite-plugin-pwa"
24
+ )} cannot be applied, see workaround at https://github.com/revealjs/reveal/issues/388#issuecomment-1199280084`
25
+ )
26
+ assertUsage(
27
+ !fakeHtml.startsWith(fakeHtmlBegin.replace(" ", "")),
28
+ "Vite plugins that minify the HTML are not supported by reveal, see https://github.com/revealjs/reveal/issues/224"
29
+ )
30
+ assertUsage(
31
+ fakeHtml.startsWith(fakeHtmlBegin) && fakeHtml.endsWith(fakeHtmlEnd),
32
+ "You are using a Vite Plugin that transforms the HTML in a way that conflicts with reveal. Create a new GitHub ticket to discuss a solution."
33
+ )
34
+ const viteInjection = fakeHtml.slice(
35
+ fakeHtmlBegin.length,
36
+ -1 * fakeHtmlEnd.length
37
+ )
38
+ assert(viteInjection.includes("script"))
39
+ assertWarning(
40
+ !viteInjection.includes("import("),
41
+ "Unexpected Vite HMR code. Reach out to a reveal maintainer on GitHub.",
42
+ { onlyOnce: true }
43
+ )
44
+
45
+ const viteDevScript = viteInjection
46
+ return viteDevScript
47
+ }
@@ -0,0 +1,65 @@
1
+ export { analyzePage }
2
+
3
+ import { ClientDependency } from "../../../types/interfaces/client.js"
4
+ import { PageConfigRuntime } from "../../../types/interfaces/page.js"
5
+ import {PageFile} from "../../__internal/index.js"
6
+ import { getVirtualFileIdPageConfigValuesAll } from "../../files/virtual-files/virtualFilePageConfigValuesAll.js"
7
+ import { getGlobalContext } from "../../globals/contexts/globalContext/index.js"
8
+ import { getConfigValueRuntime } from "../getters/getConfigValue.js"
9
+ import type { AnalysisResult } from "../getters/getPageFiles/analyzeClientSide.js"
10
+ import { analyzeClientSide } from "../getters/getPageFiles/analyzeClientSide.js"
11
+ import { getRevealClientEntry } from "../getters/getRevealClientEntry.js"
12
+
13
+ function analyzePage(
14
+ pageFilesAll: PageFile[],
15
+ pageConfig: null | PageConfigRuntime,
16
+ pageId: string
17
+ ): AnalysisResult {
18
+ if (pageConfig) {
19
+ const { isClientRuntimeLoaded, isClientRouting } = analyzeClientSide(
20
+ pageConfig,
21
+ pageFilesAll,
22
+ pageId
23
+ )
24
+ const clientEntries: string[] = []
25
+ const clientFilePath =
26
+ getConfigValueRuntime(pageConfig, "client", "string")?.value ?? null
27
+ if (clientFilePath) clientEntries.push(clientFilePath)
28
+ if (isClientRuntimeLoaded)
29
+ clientEntries.push(getRevealClientEntry(isClientRouting))
30
+ const clientDependencies: ClientDependency[] = []
31
+ clientDependencies.push({
32
+ id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, true),
33
+ onlyAssets: isClientRuntimeLoaded ? false : true,
34
+ eagerlyImported: false,
35
+ })
36
+ // In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
37
+ if (!getGlobalContext().isProduction) {
38
+ clientDependencies.push({
39
+ id: getVirtualFileIdPageConfigValuesAll(pageConfig.pageId, false),
40
+ onlyAssets: true,
41
+ eagerlyImported: false,
42
+ })
43
+ }
44
+
45
+ clientEntries.forEach((clientEntry) => {
46
+ clientDependencies.push({
47
+ id: clientEntry,
48
+ onlyAssets: false,
49
+ eagerlyImported: false,
50
+ })
51
+ })
52
+ return {
53
+ isClientRuntimeLoaded,
54
+ isHtmlOnly: !isClientRuntimeLoaded,
55
+ isClientRouting,
56
+ clientEntries,
57
+ clientDependencies,
58
+ // pageFilesClientSide and pageFilesServerSide are only used for debugging
59
+ pageFilesClientSide: [],
60
+ pageFilesServerSide: [],
61
+ }
62
+ } else {
63
+ return analyzeClientSide(null, pageFilesAll, pageId)
64
+ }
65
+ }
@@ -0,0 +1,10 @@
1
+ // https://stackoverflow.com/questions/56565528/typescript-const-assertions-how-to-use-array-prototype-includes/74213179#74213179
2
+ /** Same as Array.prototype.includes() but with type inference */
3
+ export function includes<T>(values: readonly T[], x: unknown): x is T {
4
+ return values.includes(x as any);
5
+ }
6
+ /*
7
+ export function includes<Arr extends any[] | readonly any[]>(arr: Arr, el: unknown): el is Arr[number] {
8
+ return arr.includes(el as any)
9
+ }
10
+ */
@@ -0,0 +1,2 @@
1
+ export * from "./objectKeys.js";
2
+ export * from "./includes.js";
@@ -0,0 +1,6 @@
1
+ // https://stackoverflow.com/questions/52856496/typescript-object-keys-return-string
2
+ // https://github.com/sindresorhus/ts-extras/blob/main/source/object-keys.ts
3
+ /** Same as Object.keys() but with type inference */
4
+ export function objectKeys<T extends object>(obj: T): (keyof T)[] {
5
+ return Object.keys(obj) as any;
6
+ }