@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,1057 @@
1
+ import { describe, expect, it } from "vitest"
2
+ import { getErrorHint } from "../logErrorHint"
3
+ import { errror_cannot_use_import_outside_of_module } from "./errors"
4
+
5
+ describe("getErrorHint()", () => {
6
+ ERR_MODULE_NOT_FOUND()
7
+ ERR_UNKNOWN_FILE_EXTENSION()
8
+ ERR_UNSUPPORTED_DIR_IMPORT()
9
+ cannot_read_property_of_undefined()
10
+ default_is_not()
11
+ ERR_REQUIRE_ESM()
12
+ cjs_named_export()
13
+ cannot_use_import_outside_of_module()
14
+ is_not_defined()
15
+ is_not_exported()
16
+ unexpected_token_export()
17
+ react_invalid_component()
18
+ react_invalid_hook_usage()
19
+ misc()
20
+ })
21
+
22
+ function createErr(errStr: string) {
23
+ return { stack: errStr }
24
+ }
25
+
26
+ // Classic: file extension missing in import path.
27
+ function ERR_MODULE_NOT_FOUND() {
28
+ it("ERR_MODULE_NOT_FOUND / ERR_LOAD_URL", () => {
29
+ expect(
30
+ getErrorHint(
31
+ // https://github.com/aws-amplify/amplify-ui/issues/3155#issue-1488517976
32
+ createErr(`
33
+ Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'node_modules/lodash/debounce' imported from node_modules/@aws-amplify/ui-react/dist/primitives/Collection/Collection.js
34
+ Did you mean to import lodash@4.17.21/node_modules/lodash/debounce.js?
35
+ at new NodeError (node:internal/errors:372:5)
36
+ code: 'ERR_MODULE_NOT_FOUND'
37
+ }
38
+ `)
39
+ )
40
+ ).toMatchInlineSnapshot(
41
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
42
+ )
43
+
44
+ expect(
45
+ getErrorHint(
46
+ // https://github.com/revealjs/reveal/discussions/1084#discussion-5536319
47
+ createErr(`
48
+ Error: Cannot find package '/test/node_modules/@mdxeditor/editor/dist/node_modules/react-diff-view/' imported from /test/node_modules/@mdxeditor/editor/dist/plugins/diff-source/DiffViewer.js
49
+ at legacyMainResolve (/test/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:286:9)
50
+ at packageResolve (/test/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:750:14)
51
+ at moduleResolve (/test/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:798:18)
52
+ at Object.defaultResolve (/test/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:912:11)
53
+ at /test/node_modules/ts-node/src/esm.ts:218:35
54
+ at entrypointFallback (/test/node_modules/ts-node/src/esm.ts:168:34)
55
+ at /test/node_modules/ts-node/src/esm.ts:217:14
56
+ at addShortCircuitFlag (/test/node_modules/ts-node/src/esm.ts:409:21)
57
+ at resolve (/test/node_modules/ts-node/src/esm.ts:197:12)
58
+ at resolve (/test/node_modules/ts-node/src/child/child-loader.ts:15:39)
59
+ at nextResolve (node:internal/modules/loader:163:28)
60
+ at ESMLoader.resolve (node:internal/modules/loader:838:30)
61
+ at ESMLoader.getModuleJob (node:internal/modules/loader:424:18)
62
+ at ModuleWrap.<anonymous> (node:internal/modules/module_job:77:40)
63
+ at link (node:internal/modules/module_job:76:36)
64
+ `)
65
+ )
66
+ ).toMatchInlineSnapshot(
67
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
68
+ )
69
+
70
+ expect(
71
+ getErrorHint(
72
+ /* node_modules/ land, wrong import path: missing file extension.
73
+ * - Error artificially created:
74
+ * ```diff
75
+ * // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
76
+ * - import { getPageElement } from './getPageElement.js';
77
+ * + import { getPageElement } from './getPageElement';
78
+ * ```
79
+ */
80
+ {
81
+ message:
82
+ "Cannot find module '/home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement' imported from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js",
83
+ code: "ERR_MODULE_NOT_FOUND",
84
+ stack: `
85
+ Error: Cannot find module '/home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement' imported from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js
86
+ at new NodeError (node:internal/errors:399:5)
87
+ at finalizeResolution (node:internal/modules/resolve:326:11)
88
+ at moduleResolve (node:internal/modules/resolve:945:10)
89
+ at defaultResolve (node:internal/modules/resolve:1153:11)
90
+ at nextResolve (node:internal/modules/loader:163:28)
91
+ at ESMLoader.resolve (node:internal/modules/loader:838:30)
92
+ at ESMLoader.getModuleJob (node:internal/modules/loader:424:18)
93
+ at ModuleWrap.<anonymous> (node:internal/modules/module_job:77:40)
94
+ at link (node:internal/modules/module_job:76:36)
95
+ `,
96
+ }
97
+ )
98
+ ).toMatchInlineSnapshot(
99
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
100
+ )
101
+
102
+ expect(
103
+ getErrorHint(
104
+ // - User land, transpiled by Vite
105
+ // - Wrong import path (it should be `components/does-not-exist/Counter` instead of `components/does-not-exist/Counter`)
106
+ {
107
+ message:
108
+ "Failed to load url ../../components/does-not-exist/Counter (resolved id: ../../components/does-not-exist/Counter) in /home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx. Does the file exist?",
109
+ code: "ERR_LOAD_URL",
110
+ stack: `
111
+ Error: Failed to load url ../../components/does-not-exist/Counter (resolved id: ../../components/does-not-exist/Counter) in /home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx. Does the file exist?
112
+ at loadAndTransform (file:///home/romu/code/reveal/node_modules/.pnpm/vite@5.0.10_@types+node@20.10.5/node_modules/vite/dist/node/chunks/dep-R0I0XnyH.js:49376:21)
113
+ at instantiateModule (file:///home/romu/code/reveal/node_modules/.pnpm/vite@5.0.10_@types+node@20.10.5/node_modules/vite/dist/node/chunks/dep-R0I0XnyH.js:50404:10)
114
+ `,
115
+ }
116
+ )
117
+ ).toMatchInlineSnapshot(`null`)
118
+
119
+ expect(
120
+ getErrorHint(
121
+ // User land, executed directly by Node.js
122
+ {
123
+ message:
124
+ "Cannot find package 'some-not-installed-package' imported from /home/romu/code/reveal/boilerplates/boilerplate-react/server/index.js",
125
+ code: "ERR_MODULE_NOT_FOUND",
126
+ stack: `
127
+ Cannot find package 'some-not-installed-package' imported from /home/romu/code/reveal/boilerplates/boilerplate-react/server/index.js
128
+ at new NodeError (node:internal/errors:399:5)
129
+ at packageResolve (node:internal/modules/resolve:889:9)
130
+ at moduleResolve (node:internal/modules/resolve:938:20)
131
+ at defaultResolve (node:internal/modules/resolve:1153:11)
132
+ at nextResolve (node:internal/modules/loader:163:28)
133
+ at ESMLoader.resolve (node:internal/modules/loader:838:30)
134
+ at ESMLoader.getModuleJob (node:internal/modules/loader:424:18)
135
+ at ModuleWrap.<anonymous> (node:internal/modules/module_job:77:40)
136
+ at link (node:internal/modules/module_job:76:36)
137
+ `,
138
+ }
139
+ )
140
+ ).toMatchInlineSnapshot(`null`)
141
+
142
+ expect(
143
+ getErrorHint(
144
+ // User land, transpiled by Vite
145
+ {
146
+ message:
147
+ "Cannot find module 'some-not-installed-package' imported from '/home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx'",
148
+ code: "ERR_MODULE_NOT_FOUND",
149
+ stack: `
150
+ Error: Cannot find module 'some-not-installed-package' imported from '/home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx'
151
+ at nodeImport (file:///home/romu/code/reveal/node_modules/.pnpm/vite@4.5.1_@types+node@20.10.4/node_modules/vite/dist/node/chunks/dep-68d1a114.js:56088:25)
152
+ at ssrImport (file:///home/romu/code/reveal/node_modules/.pnpm/vite@4.5.1_@types+node@20.10.4/node_modules/vite/dist/node/chunks/dep-68d1a114.js:55990:30)
153
+ at eval (/home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx:7:37)
154
+ at instantiateModule (file:///home/romu/code/reveal/node_modules/.pnpm/vite@4.5.1_@types+node@20.10.4/node_modules/vite/dist/node/chunks/dep-68d1a114.js:56052:9)
155
+ `,
156
+ }
157
+ )
158
+ )
159
+ // False positive, but it's okay.
160
+ .toMatchInlineSnapshot(
161
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
162
+ )
163
+
164
+ expect(
165
+ getErrorHint({
166
+ // I guess it's an error generated by Vite, which seems redundant with the ERR_MODULE_NOT_FOUND error above. Let's ignore it since we already handle ERR_MODULE_NOT_FOUND errors.
167
+ message:
168
+ "Failed to load url some-not-installed-package (resolved id: some-not-installed-package) in /home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx. Does the file exist?",
169
+ // See comment down below about ERR_LOAD_URL errors
170
+ code: "ERR_LOAD_URL",
171
+ stack: `
172
+ Error: Failed to load url some-not-installed-package (resolved id: some-not-installed-package) in /home/romu/code/reveal/examples/react-full/pages/index/+Page.tsx. Does the file exist?
173
+ at loadAndTransform (file:///home/romu/code/reveal/node_modules/.pnpm/vite@4.5.1_@types+node@20.10.4/node_modules/vite/dist/node/chunks/dep-68d1a114.js:55015:21)
174
+ `,
175
+ })
176
+ ).toMatchInlineSnapshot(`null`)
177
+
178
+ /* I don't remember when I stumbled upon this error, but it seems like it most likely won't occur again.
179
+ expect(
180
+ getErrorHint(
181
+ // Don't match if importer is @brillout/import
182
+ createErr(`
183
+ Error: Cannot find module '/home/romu/code/reveal/node_modules/.pnpm/@brillout+import@0.2.3/node_modules/@brillout/import/dist/autoImporter' imported from /home/romu/code/reveal/node_modules/.pnpm/@brillout+import@0.2.3/node_modules/@brillout/import/dist/index.js
184
+ at new NodeError (node:internal/errors:399:5)
185
+ at finalizeResolution (node:internal/modules/resolve:326:11)
186
+ at moduleResolve (node:internal/modules/resolve:945:10)
187
+ at defaultResolve (node:internal/modules/resolve:1153:11)
188
+ at nextResolve (node:internal/modules/loader:163:28)
189
+ at ESMLoader.resolve (node:internal/modules/loader:838:30)
190
+ at ESMLoader.getModuleJob (node:internal/modules/loader:424:18)
191
+ at ESMLoader.import (node:internal/modules/loader:525:22)
192
+ at importModuleDynamically (node:internal/modules/cjs/loader:1186:29)
193
+ at importModuleDynamicallyWrapper (node:internal/vm/module:429:21) {
194
+ code: 'ERR_MODULE_NOT_FOUND'
195
+ }
196
+ `)
197
+ )
198
+ ).toMatchInlineSnapshot(`null`)
199
+ */
200
+ })
201
+ }
202
+
203
+ // Classic: server-side code importing CSS.
204
+ function ERR_UNKNOWN_FILE_EXTENSION() {
205
+ it("ERR_UNKNOWN_FILE_EXTENSION", () => {
206
+ expect(
207
+ getErrorHint(
208
+ /* node_modules/ land
209
+ * - Error artificially created:
210
+ * ```diff
211
+ * // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
212
+ * + import './foo.css'
213
+ * // node_modules/reveal-react/dist/renderer/foo.css
214
+ * + body {
215
+ * + background-color: blue;
216
+ * + }
217
+ * ```
218
+ */
219
+ {
220
+ message:
221
+ 'Unknown file extension ".css" for /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/foo.css',
222
+ code: "ERR_UNKNOWN_FILE_EXTENSION",
223
+ stack: `
224
+ TypeError: Unknown file extension ".css" for /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/foo.css
225
+ at new NodeError (node:internal/errors:399:5)
226
+ at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/get_format:79:11)
227
+ at defaultGetFormat (node:internal/modules/get_format:121:38)
228
+ at defaultLoad (node:internal/modules/load:81:20)
229
+ at nextLoad (node:internal/modules/loader:163:28)
230
+ at ESMLoader.load (node:internal/modules/loader:605:26)
231
+ at ESMLoader.moduleProvider (node:internal/modules/loader:457:22)
232
+ at new ModuleJob (node:internal/modules/module_job:64:26)
233
+ at ESMLoader.#createModuleJob (node:internal/modules/loader:480:17)
234
+ at ESMLoader.getModuleJob (node:internal/modules/loader:434:34)
235
+ `,
236
+ }
237
+ )
238
+ ).toMatchInlineSnapshot(
239
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
240
+ )
241
+
242
+ expect(
243
+ getErrorHint(
244
+ // https://github.com/revealjs/reveal/discussions/682#discussion-4927859
245
+ createErr(`
246
+ TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".css" for /Users/xxx/Projects/xxx/xxx/node_modules/vuetify/lib/components/VGrid/VGrid.css
247
+ at new NodeError (node:internal/errors:387:5)
248
+ at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/get_format:76:11)
249
+ at defaultGetFormat (node:internal/modules/get_format:118:38)
250
+ at defaultLoad (node:internal/modules/load:81:20)
251
+ at nextLoad (node:internal/modules/loader:165:28)
252
+ at ESMLoader.load (node:internal/modules/loader:608:26)
253
+ at ESMLoader.moduleProvider (node:internal/modules/loader:464:22)
254
+ at new ModuleJob (node:internal/modules/module_job:63:26)
255
+ at ESMLoader.#createModuleJob (node:internal/modules/loader:483:17)
256
+ at ESMLoader.getModuleJob (node:internal/modules/loader:441:34)
257
+ `)
258
+ )
259
+ ).toMatchInlineSnapshot(
260
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
261
+ )
262
+
263
+ expect(
264
+ getErrorHint(
265
+ // https://github.com/revealjs/reveal/discussions/791#discussion-5101014
266
+ createErr(`
267
+ Error: ERR_UNKNOWN_FILE_EXTENSION .css /home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/@react-spectrum+actiongroup@3.8.2_@react-spectrum+provider@3.7.1_react-dom@18.2.0_react@18.2.0/node_modules/@react-spectrum/actiongroup/dist/main.css
268
+ at defaultGetFormat (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/dist-raw/node-internal-modules-esm-get_format.js:93:15)
269
+ at defer (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:296:7)
270
+ at entrypointFallback (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:304:22)
271
+ at getFormat (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:338:26)
272
+ at /home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:245:17
273
+ at addShortCircuitFlag (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:409:21)
274
+ at load (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/esm.ts:239:12)
275
+ at load (/home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/ts-node@10.9.1_@types+node@18.15.11_typescript@4.9.5/node_modules/ts-node/src/child/child-loader.ts:18:36)
276
+ at nextLoad (node:internal/modules/loader:163:28)
277
+ at ESMLoader.load (node:internal/modules/loader:605:26)
278
+ `)
279
+ )
280
+ ).toMatchInlineSnapshot(
281
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
282
+ )
283
+
284
+ expect(
285
+ getErrorHint(
286
+ // User land ESM error
287
+ createErr(`
288
+ TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".123" for /home/xxx/projects/reveal/xxx/server/root.123
289
+ at new NodeError (node:internal/errors:399:5)
290
+ at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/get_format:79:11)
291
+ at defaultGetFormat (node:internal/modules/get_format:121:38)
292
+ at defaultLoad (node:internal/modules/load:81:20)
293
+ at nextLoad (node:internal/modules/loader:163:28)
294
+ at ESMLoader.load (node:internal/modules/loader:605:26)
295
+ at ESMLoader.moduleProvider (node:internal/modules/loader:457:22)
296
+ at new ModuleJob (node:internal/modules/module_job:64:26)
297
+ at #createModuleJob (node:internal/modules/loader:480:17)
298
+ at ESMLoader.getModuleJob (node:internal/modules/loader:434:34) {
299
+ code: 'ERR_UNKNOWN_FILE_EXTENSION'
300
+ }
301
+ `)
302
+ )
303
+ ).toMatchInlineSnapshot(`null`)
304
+
305
+ expect(
306
+ getErrorHint(
307
+ // https://github.com/revealjs/reveal/discussions/901#discussioncomment-6733600
308
+ // https://github.com/revealjs/reveal/discussions/1067
309
+ // https://github.com/revealjs/reveal/issues/877
310
+ createErr(
311
+ `TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /media/oem/MyFiles/8_DEVELOPMENT/vite-ssr-ts-project/server/index.ts`
312
+ )
313
+ )
314
+ ).toMatchInlineSnapshot(`null`)
315
+ })
316
+ }
317
+
318
+ // Classic: server-side code importing CSS.
319
+ function ERR_UNSUPPORTED_DIR_IMPORT() {
320
+ it("ERR_UNSUPPORTED_DIR_IMPORT", () => {
321
+ expect(
322
+ getErrorHint(
323
+ // https://github.com/revealjs/reveal/discussions/934
324
+ createErr(`
325
+ Error: ERR_UNSUPPORTED_DIR_IMPORT /Users/xxx/Documents/Github/xxx/node_modules/@aws-amplify/datastore/ssr /Users/xxx/Documents/Github/xxx/dist/server/renderer/default-page-server.js
326
+ at finalizeResolution (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:362:17)
327
+ at moduleResolve (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:801:10)
328
+ at Object.defaultResolve (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:912:11)
329
+ at /Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/esm.ts:218:35
330
+ at entrypointFallback (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/esm.ts:168:34)
331
+ at /Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/esm.ts:217:14
332
+ at addShortCircuitFlag (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/esm.ts:409:21)
333
+ at resolve (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/esm.ts:197:12)
334
+ at resolve (/Users/xxx/Documents/Github/xxx/node_modules/ts-node/src/child/child-loader.ts:15:39)
335
+ at nextResolve (node:internal/modules/loader:165:28)
336
+ `)
337
+ )
338
+ ).toMatchInlineSnapshot(
339
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
340
+ )
341
+
342
+ expect(
343
+ getErrorHint(
344
+ // https://github.com/revealjs/reveal/discussions/700#discussioncomment-5283034
345
+ createErr(`
346
+ Error: ERR_UNSUPPORTED_DIR_IMPORT ...\\vite-ssr-app\\node_modules\\@mui\\material\\styles from ...\\vite-ssr-app\\dist\\server\\renderer\\default-page-server.js
347
+ `)
348
+ )
349
+ ).toMatchInlineSnapshot(
350
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
351
+ )
352
+
353
+ expect(
354
+ getErrorHint(
355
+ // User land ESM error
356
+ createErr(`
357
+ Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/xxx/xxx/src/models' is not supported resolving ES modules imported from /Users/xxx/xxx/src/index.js
358
+ at finalizeResolution (internal/modules/resolve.js:272:17)
359
+ at moduleResolve (internal/modules/resolve.js:699:10)
360
+ at Loader.defaultResolve [as _resolve] (internal/modules/resolve.js:810:11)
361
+ at Loader.resolve (internal/modules/loader.js:85:40)
362
+ at Loader.getModuleJob (internal/modules/loader.js:229:28)
363
+ at ModuleWrap.<anonymous> (internal/modules/module_job.js:51:40)
364
+ at link (internal/modules/module_job.js:50:36) {
365
+ code: 'ERR_UNSUPPORTED_DIR_IMPORT',
366
+ url: 'file:///Users/xxx/xxx/src/models'
367
+ }
368
+ `)
369
+ )
370
+ ).toMatchInlineSnapshot(`null`)
371
+
372
+ // More similar errors:
373
+ // - https://github.com/revealjs/reveal/discussions/571#discussioncomment-6145155
374
+ })
375
+ }
376
+
377
+ // Classic: reading the property of an import value that is undefined because of a CJS/ESM issue
378
+ function cannot_read_property_of_undefined() {
379
+ it("TypeError: Cannot read properties of undefined", () => {
380
+ expect(
381
+ getErrorHint(
382
+ // true instead of 'reveal-react' because the problem is the importee and not the importer
383
+ /* node_modules/ land
384
+ * - Error artificially created:
385
+ * ```diff
386
+ * // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
387
+ * - import { PageContextProvider } from './PageContextProvider.js';
388
+ * + const PageContextProvider = undefined
389
+ * // ...
390
+ * - React.createElement(PageContextProvider, { pageContext: pageContext },
391
+ * + React.createElement(PageContextProvider.foo, { pageContext: pageContext },
392
+ * ```
393
+ */
394
+ {
395
+ message: "Cannot read properties of undefined (reading 'foo')",
396
+ code: undefined,
397
+ stack: `
398
+ TypeError: Cannot read properties of undefined (reading 'foo')
399
+ at onRenderHtml (file:///home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js:21:49)
400
+ at file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage/executeOnRenderHtmlHook.js:15:53
401
+ at file:///home/romu/code/reveal/reveal/dist/shared/hooks/executeHook.js:46:31
402
+ at executeHook (file:///home/romu/code/reveal/reveal/dist/shared/hooks/executeHook.js:55:7)
403
+ at executeOnRenderHtmlHook (file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage/executeOnRenderHtmlHook.js:15:35)
404
+ at renderPageAlreadyRouted (file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage/renderPageAlreadyRouted.js:57:36)
405
+ at renderPageNominal (file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage.js:266:36)
406
+ at renderPageAlreadyPrepared (file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage.js:121:45)
407
+ at renderPageAndPrepare (file:///home/romu/code/reveal/reveal/dist/node/runtime/renderPage.js:101:12)
408
+ at file:///home/romu/code/reveal/reveal/dist/node/plugin/shared/getHttpRequestAsyncStore.js:68:35
409
+ `,
410
+ }
411
+ )
412
+ ).toMatchInlineSnapshot(
413
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
414
+ )
415
+
416
+ expect(
417
+ getErrorHint(
418
+ // https://github.com/revealjs/reveal/discussions/1235#discussion-5806578
419
+ createErr(`
420
+ TypeError: Cannot read properties of undefined (reading '__H')
421
+ at getHookState (/Users/xxx/Code/Repos/xxx/node_modules/preact/hooks/src/index.js:137:19)
422
+ at Object.h (/Users/xxx/Code/Repos/xxx/node_modules/preact/hooks/src/index.js:320:16)
423
+ at Object.call (/Users/xxx/Code/Repos/xxx/node_modules/react-redux/lib/components/Provider.js:26:30)
424
+ at renderFunctionComponent (file:///Users/xxx/Code/Repos/xxx/node_modules/preact-render-to-string/src/index.js:119:25)
425
+ at _renderToString (file:///Users/xxx/Code/Repos/xxx/node_modules/preact-render-to-string/src/index.js:282:16)
426
+ at _renderToString (file:///Users/xxx/Code/Repos/xxx/node_modules/preact-render-to-string/src/index.js:298:15)
427
+ at Proxy.S (file:///Users/xxx/Code/Repos/xxx/node_modules/preact-render-to-string/src/index.js:80:9)
428
+ at onRenderHtml (/Users/xxx/Code/Repos/xxx/renderer/+onRenderHtml.jsx:12:29)
429
+ at file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage/executeOnRenderHtmlHook.js:16:53
430
+ at file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/shared/hooks/executeHook.js:42:31
431
+ at executeHook (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/shared/hooks/executeHook.js:51:7)
432
+ at executeOnRenderHtmlHook (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage/executeOnRenderHtmlHook.js:16:35)
433
+ at renderPageAlreadyRouted (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage/renderPageAlreadyRouted.js:56:36)
434
+ at processTicksAndRejections (node:internal/process/task_queues:95:5)
435
+ at renderPageNominal (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage.js:257:36)
436
+ at renderPageAlreadyPrepared (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage.js:113:45)
437
+ at renderPageAndPrepare (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage.js:93:12)
438
+ at file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/plugin/shared/getHttpRequestAsyncStore.js:68:35
439
+ at renderPage (file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/runtime/renderPage.js:46:50)
440
+ at file:///Users/xxx/Code/Repos/xxx/node_modules/reveal/dist/node/plugin/shared/addSsrMiddleware.js:18:27
441
+ `)
442
+ )
443
+ ).toMatchInlineSnapshot(
444
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
445
+ )
446
+
447
+ expect(
448
+ getErrorHint(
449
+ // User land JavaScript error
450
+ createErr(`
451
+ file:///home/xxx/projects/reveal/xxx/server/index.js:20
452
+ console.log(a.b);
453
+ ^
454
+
455
+ TypeError: Cannot read properties of undefined (reading 'b')
456
+ at startServer (file:///home/xxx/projects/reveal/xxx/server/index.js:20:17)
457
+ at file:///home/xxx/projects/reveal/xxx/server/index.js:13:1
458
+ at ModuleJob.run (node:internal/modules/module_job:194:25)
459
+ `)
460
+ )
461
+ ).toMatchInlineSnapshot(`null`)
462
+
463
+ expect(
464
+ getErrorHint(
465
+ // https://github.com/vitejs/vite/issues/11299#issue-1487867332
466
+ // Not much information => is this user land or node_modules/ land?
467
+ // But it mentions node_modules => I guess it's a library issue.
468
+ createErr(`
469
+ TypeError: Cannot read properties of undefined (reading 'extendTheme')
470
+ at eval (/home/projects/llqijrlvr.github/src/entry.js:5:35)
471
+ at async instantiateModule (file://file:///home/projects/llqijrlvr.github/node_modules/.pnpm/vite@4.0.0/node_modules/vite/dist/node/chunks/dep-ed9cb113.js:53295:9)
472
+ `)
473
+ )
474
+ ).toMatchInlineSnapshot(
475
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
476
+ )
477
+ })
478
+ }
479
+
480
+ function default_is_not() {
481
+ it("TypeError: __vite_ssr_import_0__.default is not a function", () => {
482
+ expect(
483
+ getErrorHint({
484
+ // https://github.com/revealjs/reveal/discussions/1637#discussion-6646661
485
+ message: "__vite_ssr_import_0__.default is not a function",
486
+ code: undefined,
487
+ stack: `
488
+ TypeError: __vite_ssr_import_0__.default is not a function
489
+ at /home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-native-web@0.19.11_react-dom@18.3.1_react@18.3.1/node_modules/react-native-web/dist/modules/prefixStyles/index.js:3:31
490
+ at instantiateModule (file:///home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/vite@5.2.11/node_modules/vite/dist/node/chunks/dep-cNe07EU9.js:55058:9)
491
+ `,
492
+ })
493
+ ).toMatchInlineSnapshot(
494
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
495
+ )
496
+ })
497
+ }
498
+
499
+ // Classic: using require() to load ESM modules
500
+ function ERR_REQUIRE_ESM() {
501
+ it("ERR_REQUIRE_ESM", () => {
502
+ expect(
503
+ getErrorHint(
504
+ /* node_modules/ land
505
+ * - Error artificially created:
506
+ * ```diff
507
+ * // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
508
+ * + require('./getPageElement.js');
509
+ * ```
510
+ */
511
+ {
512
+ message:
513
+ "require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement.js from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js not supported.\nInstead change the require of getPageElement.js in /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js to a dynamic import() which is available in all CommonJS modules.",
514
+ code: "ERR_REQUIRE_ESM",
515
+ stack: `
516
+ Error [ERR_REQUIRE_ESM]: require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement.js from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js not supported.
517
+ Instead change the require of getPageElement.js in /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js to a dynamic import() which is available in all CommonJS modules.
518
+ at file:///home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js:10:1
519
+ `,
520
+ }
521
+ )
522
+ ).toMatchInlineSnapshot(
523
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
524
+ )
525
+
526
+ // Make sure the right package is picked: the issue is the importer, not the importee
527
+ expect(
528
+ getErrorHint(
529
+ // artificially created: copy of above error with modified stack trace s/reveal-react/reveal-react-foo/g (while preserving error message)
530
+ {
531
+ message:
532
+ "require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement.js from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js not supported.\nInstead change the require of getPageElement.js in /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js to a dynamic import() which is available in all CommonJS modules.",
533
+ code: "ERR_REQUIRE_ESM",
534
+ stack: `
535
+ Error [ERR_REQUIRE_ESM]: require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/getPageElement.js from /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js not supported.
536
+ Instead change the require of getPageElement.js in /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js to a dynamic import() which is available in all CommonJS modules.
537
+ at file:///home/romu/code/reveal/node_modules/.pnpm/reveal-react-foo@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react-foo/dist/renderer/onRenderHtml.js:10:1
538
+ `,
539
+ }
540
+ )
541
+ ).toMatchInlineSnapshot(
542
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
543
+ )
544
+
545
+ expect(
546
+ getErrorHint(
547
+ // https://github.com/revealjs/reveal/issues/621#issuecomment-1466175125
548
+ createErr(`
549
+ Error [ERR_REQUIRE_ESM]: require() of ES Module
550
+ /home/rom/code/vite-plugin-ssr/node_modules/.pnpm/node-fetch@3.3.1/node_modules/node-fetch/src/index.js
551
+ from
552
+ /home/rom/code/vite-plugin-ssr/examples/graphql-apollo-react/server/index.js
553
+ not supported.
554
+ `)
555
+ )
556
+ ).toMatchInlineSnapshot(
557
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
558
+ )
559
+
560
+ expect(
561
+ getErrorHint(
562
+ // The correct answer is `false`, but returning `true` is okay.
563
+ // Cannot reproduce this error, I guess it comes from an older Node.js version?
564
+ createErr(`
565
+ Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: E:\\Javascript\\xxx\\node_modules\\@preact\\preset-vite\\dist\\index.js
566
+ require() of ES modules is not supported.
567
+ require() of E:\\Javascript\\xxx\\node_modules\\@preact\\preset-vite\\dist\\index.js from E:\\Javascript\\xxx\\vite.config.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
568
+ Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from E:\\xxx\\Javascript\\xxx\\node_modules\\@preact\\preset-vite\\package.json.
569
+
570
+ at Module._extensions..js (internal/modules/cjs/loader.js:1080:13)
571
+ at Object.require.extensions.<computed> [as .js] (E:\\Javascript\\xxx\\node_modules\\vite\\dist\\node\\chunks\\dep-36bf480c.js:77286:13)
572
+ at Module.load (internal/modules/cjs/loader.js:928:32)
573
+ at Function.Module._load (internal/modules/cjs/loader.js:769:14)
574
+ at Module.require (internal/modules/cjs/loader.js:952:19)
575
+ at require (internal/modules/cjs/helpers.js:88:18)
576
+ at Object.<anonymous> (E:\\xxx\\Javascript\\xxx\\vite.config.js:30:37)
577
+ at Module._compile (internal/modules/cjs/loader.js:1063:30)
578
+ at Object.require.extensions.<computed> [as .js] (E:\\Javascript\\xxx\\node_modules\\vite\\dist\\node\\chunks\\dep-36bf480c.js:77283:20)
579
+ at Module.load (internal/modules/cjs/loader.js:928:32)
580
+ `)
581
+ )
582
+ ).toMatchInlineSnapshot(
583
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
584
+ )
585
+
586
+ expect(
587
+ getErrorHint(
588
+ /* Error artificially created:
589
+ ```diff
590
+ // node_modules/react-dom/server.node.js
591
+ + require('reveal-react')
592
+ ``` */
593
+ {
594
+ message:
595
+ "require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.4_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/+config.js from /home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.node.js not supported.\nInstead change the require of +config.js in /home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.node.js to a dynamic import() which is available in all CommonJS modules.",
596
+ code: "ERR_REQUIRE_ESM",
597
+ stack: `
598
+ Error [ERR_REQUIRE_ESM]: require() of ES Module /home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.4_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/+config.js from /home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.node.js not supported.
599
+ Instead change the require of +config.js in /home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.node.js to a dynamic import() which is available in all CommonJS modules.
600
+ at Object.<anonymous> (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/server.node.js:13:1)
601
+ at async nodeImport (file:///home/romu/code/reveal/node_modules/.pnpm/vite@5.0.10_@types+node@17.0.45/node_modules/vite/dist/node/chunks/dep-R0I0XnyH.js:50544:17)
602
+ at async ssrImport (file:///home/romu/code/reveal/node_modules/.pnpm/vite@5.0.10_@types+node@17.0.45/node_modules/vite/dist/node/chunks/dep-R0I0XnyH.js:50444:24)
603
+ at async eval (virtual:reveal:pageConfigValuesAll:server:/pages/index:3:44)
604
+ at async instantiateModule (file:///home/romu/code/reveal/node_modules/.pnpm/vite@5.0.10_@types+node@17.0.45/node_modules/vite/dist/node/chunks/dep-R0I0XnyH.js:50506:9)
605
+ `,
606
+ }
607
+ )
608
+ ).toMatchInlineSnapshot(
609
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
610
+ )
611
+ })
612
+ }
613
+
614
+ // Classic: Importing CJS named export from ESM
615
+ function cjs_named_export() {
616
+ it("cjs_named_export", () => {
617
+ expect(
618
+ getErrorHint(
619
+ // https://github.com/brillout/cjs-esm-bug_apollo
620
+ // https://github.com/revealjs/reveal/discussions/872#discussion-5177942
621
+ {
622
+ message:
623
+ "Named export 'ApolloClient' not found. The requested module '@apollo/client' is a CommonJS module, which may not support all module.exports as named exports.\nCommonJS modules can always be imported via the default export, for example using:\n\nimport pkg from '@apollo/client';\nconst { ApolloClient } = pkg;\n",
624
+ code: undefined,
625
+ stack: `
626
+ file:///home/romu/tmp/vite-ssr-test/dist/server/entries/pages_about_index-page.mjs:2
627
+ import { ApolloClient } from "@apollo/client";
628
+ ^^^^^^^^^^^^
629
+ SyntaxError: Named export 'ApolloClient' not found. The requested module '@apollo/client' is a CommonJS module, which may not support all module.exports as named exports.
630
+ CommonJS modules can always be imported via the default export, for example using:
631
+
632
+ import pkg from '@apollo/client';
633
+ const { ApolloClient } = pkg;
634
+
635
+ at ModuleJob._instantiate (node:internal/modules/module_job:131:21)
636
+ at async ModuleJob.run (node:internal/modules/module_job:213:5)
637
+ at async ModuleLoader.import (node:internal/modules/loader:316:24)
638
+ at async pageFile.loadFile (file:///home/romu/tmp/vite-ssr-test/node_modules/.pnpm/vite-plugin-ssr@0.4.142_vite@4.0.3/node_modules/vite-plugin-ssr/dist/shared/getPageFiles/parseGlobResults.js:31:40)
639
+ at async Promise.allSettled (index 0)
640
+ at async loadPageFiles (file:///home/romu/tmp/vite-ssr-test/node_modules/.pnpm/vite-plugin-ssr@0.4.142_vite@4.0.3/node_modules/vite-plugin-ssr/dist/node/runtime/renderPage/loadPageFilesServerSide.js:86:5)
641
+ at async Promise.allSettled (index 0)
642
+ at async loadPageFilesServerSide (file:///home/romu/tmp/vite-ssr-test/node_modules/.pnpm/vite-plugin-ssr@0.4.142_vite@4.0.3/node_modules/vite-plugin-ssr/dist/node/runtime/renderPage/loadPageFilesServerSide.js:13:110)
643
+ at async renderPageAlreadyRouted (file:///home/romu/tmp/vite-ssr-test/node_modules/.pnpm/vite-plugin-ssr@0.4.142_vite@4.0.3/node_modules/vite-plugin-ssr/dist/node/runtime/renderPage/renderPageAlreadyRouted.js:30:31)
644
+ at async renderPageNominal (file:///home/romu/tmp/vite-ssr-test/node_modules/.pnpm/vite-plugin-ssr@0.4.142_vite@4.0.3/node_modules/vite-plugin-ssr/dist/node/runtime/renderPage.js:267:36)
645
+ `,
646
+ }
647
+ )
648
+ ).toMatchInlineSnapshot(
649
+ `"To fix this error, see https://reveal.dev/broken-npm-package#named-export-not-found"`
650
+ )
651
+
652
+ expect(
653
+ getErrorHint(
654
+ // https://github.com/brillout/vite-ssr-redux-react-live-runner-example
655
+ // https://github.com/revealjs/reveal/discussions/571#discussioncomment-6144329
656
+ {
657
+ message:
658
+ "Named export 'LiveEditor' not found. The requested module 'react-live-runner' is a CommonJS module, which may not support all module.exports as named exports.\nCommonJS modules can always be imported via the default export, for example using:\n\nimport pkg from 'react-live-runner';\nconst { LiveProvider, LiveEditor } = pkg;\n",
659
+ code: undefined,
660
+ stack: `
661
+ file:///home/romu/tmp/vite-ssr-redux-react-live-runner-example/dist/server/entries/pages_index-page.mjs:4
662
+ import { LiveProvider, LiveEditor } from "react-live-runner";
663
+ ^^^^^^^^^^
664
+ SyntaxError: Named export 'LiveEditor' not found. The requested module 'react-live-runner' is a CommonJS module, which may not support all module.exports as named exports.
665
+ CommonJS modules can always be imported via the default export, for example using:
666
+
667
+ import pkg from 'react-live-runner';
668
+ const { LiveProvider, LiveEditor } = pkg;
669
+
670
+ at ModuleJob._instantiate (node:internal/modules/module_job:131:21)
671
+ at async ModuleJob.run (node:internal/modules/module_job:213:5)
672
+ at async ModuleLoader.import (node:internal/modules/loader:316:24)
673
+ at async pageFile.loadFile (/home/romu/tmp/vite-ssr-redux-react-live-runner-example/node_modules/.pnpm/vite-plugin-ssr@0.4.131_vite@4.3.9/node_modules/vite-plugin-ssr/dist/cjs/shared/getPageFiles/parseGlobResults.js:35:40)
674
+ at async Promise.allSettled (index 0)
675
+ at async loadPageFilesServerSide (/home/romu/tmp/vite-ssr-redux-react-live-runner-example/node_modules/.pnpm/vite-plugin-ssr@0.4.131_vite@4.3.9/node_modules/vite-plugin-ssr/dist/cjs/shared/getPageFiles/analyzePageServerSide/loadPageFilesServerSide.js:10:5)
676
+ at async Promise.allSettled (index 0)
677
+ at async loadPageFilesServer (/home/romu/tmp/vite-ssr-redux-react-live-runner-example/node_modules/.pnpm/vite-plugin-ssr@0.4.131_vite@4.3.9/node_modules/vite-plugin-ssr/dist/cjs/node/runtime/renderPage/loadPageFilesServer.js:15:110)
678
+ at async /home/romu/tmp/vite-ssr-redux-react-live-runner-example/node_modules/.pnpm/vite-plugin-ssr@0.4.131_vite@4.3.9/node_modules/vite-plugin-ssr/dist/cjs/node/prerender/runPrerender.js:247:48
679
+ `,
680
+ }
681
+ )
682
+ ).toMatchInlineSnapshot(
683
+ `"To fix this error, see https://reveal.dev/broken-npm-package#named-export-not-found"`
684
+ )
685
+
686
+ expect(
687
+ getErrorHint(
688
+ // https://github.com/revealjs/reveal/discussions/635#discussion-4828827
689
+ // https://github.com/revealjs/reveal/discussions/635#discussioncomment-5029275
690
+ createErr(`
691
+ import { useI18n, createI18n } from "vue-i18n/dist/vue-i18n.runtime.esm-bundler.js";
692
+ ^^^^^^^^^^
693
+ SyntaxError: Named export 'createI18n' not found. The requested module 'vue-i18n/dist/vue-i18n.runtime.esm-bundler.js' is a CommonJS module, which may not support all module.exports as named exports.
694
+ CommonJS modules can always be imported via the default export, for example using:
695
+
696
+ import pkg from 'vue-i18n/dist/vue-i18n.runtime.esm-bundler.js';
697
+ const { useI18n, createI18n } = pkg;
698
+ `)
699
+ )
700
+ ).toMatchInlineSnapshot(
701
+ `"To fix this error, see https://reveal.dev/broken-npm-package#named-export-not-found"`
702
+ )
703
+
704
+ // More similar errors:
705
+ // - https://github.com/revealjs/reveal/discussions/934#discussioncomment-6085697
706
+ // - https://github.com/revealjs/reveal/discussions/934#discussioncomment-6091261
707
+ // - https://github.com/revealjs/reveal/discussions/934#discussioncomment-6091849
708
+ // - https://github.com/revealjs/reveal/discussions/1021#discussion-5416877
709
+ // - https://github.com/revealjs/reveal/discussions/1023#discussion-5421060
710
+ // - https://github.com/revealjs/reveal/discussions/1084#discussion-5536319
711
+ // - https://github.com/revealjs/reveal/discussions/1149#discussion-5676567
712
+ })
713
+ }
714
+
715
+ function cannot_use_import_outside_of_module() {
716
+ it("Cannot use import statement outside a module", () => {
717
+ expect(
718
+ getErrorHint(
719
+ // Same as errror_cannot_use_import_outside_of_module but slimmed down
720
+ // https://github.com/revealjs/reveal/discussions/571#discussioncomment-6137618
721
+ createErr(`
722
+ import{useRunner as e}from"react-runner";export*from"react-runner";import t,{useState as r,useEffect as n,Fragment as a,useCallback as l,useRef as o,useMemo as c,createContext as s,useContext as i}from"react";import p from"react-simple-code-editor";
723
+ ^^^^^^
724
+
725
+ SyntaxError: Cannot use import statement outside a module
726
+ at Object.compileFunction (node:vm:360:18)
727
+ at wrapSafe (node:internal/modules/cjs/loader:1084:15)
728
+ at Module._compile (node:internal/modules/cjs/loader:1119:27)
729
+ at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
730
+ at Module.load (node:internal/modules/cjs/loader:1033:32)
731
+ at Function.Module._load (node:internal/modules/cjs/loader:868:12)
732
+ at ModuleWrap.<anonymous> (node:internal/modules/translators:169:29)
733
+ at ModuleJob.run (node:internal/modules/module_job:193:25)
734
+ at processTicksAndRejections (node:internal/process/task_queues:96:5)
735
+ at async Promise.allSettled (index 0)
736
+ `)
737
+ )
738
+ ).toMatchInlineSnapshot(
739
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
740
+ )
741
+
742
+ // https://github.com/revealjs/reveal/discussions/571#discussioncomment-6137618
743
+ expect(
744
+ getErrorHint(createErr(errror_cannot_use_import_outside_of_module))
745
+ ).toMatchInlineSnapshot(
746
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
747
+ )
748
+
749
+ // More similar errors:
750
+ // - https://github.com/revealjs/reveal/discussions/1153#discussion-5682749
751
+ })
752
+ }
753
+
754
+ function is_not_defined() {
755
+ it("exports is not defined", () => {
756
+ expect(
757
+ getErrorHint(
758
+ // https://github.com/revealjs/reveal/discussions/571#discussioncomment-6137618
759
+ createErr(`
760
+ ReferenceError: exports is not defined
761
+ at eval (/Users/xxx/git/xxx/xxx/node_modules/react-simple-code-editor/lib/index.js:64:23)
762
+ at instantiateModule (file:///Users/xxx/git/xxx/xxx/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:54405:15)
763
+ `)
764
+ )
765
+ ).toMatchInlineSnapshot(
766
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
767
+ )
768
+
769
+ expect(
770
+ getErrorHint(
771
+ // https://github.com/revealjs/reveal/discussions/791#discussioncomment-5647399
772
+ createErr(`
773
+ ReferenceError: exports is not defined
774
+ at /node_modules/.pnpm/@adobe+react-spectrum-ui@1.2.0_react-dom@18.2.0_react@18.2.0/node_modules/@adobe/react-spectrum-ui/dist/CornerTriangle.js:12:23
775
+ at instantiateModule (file:///home/stuart/tmp/vite-ssr-example/node_modules/.pnpm/vite@4.2.1_@types+node@18.15.11/node_modules/vite/dist/node/chunks/dep-79892de8.js:53996:15)
776
+ `)
777
+ )
778
+ ).toMatchInlineSnapshot(
779
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
780
+ )
781
+
782
+ expect(
783
+ getErrorHint(
784
+ // User land ESM error
785
+ createErr(`
786
+ ReferenceError: exports is not defined in ES module scope
787
+ This file is being treated as an ES module because it has a '.js' file extension and '/home/xxx/projects/reveal/xxx/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
788
+ at file:///home/xxx/projects/reveal/xxx/server/index.js:14:1
789
+ at ModuleJob.run (node:internal/modules/module_job:194:25)
790
+ `)
791
+ )
792
+ ).toMatchInlineSnapshot(`null`)
793
+
794
+ // More similar errors:
795
+ // - https://github.com/revealjs/reveal/discussions/571#discussioncomment-6145155
796
+ // - https://github.com/revealjs/reveal/discussions/1071#discussioncomment-6728731
797
+ })
798
+
799
+ it("require is not a function", () => {
800
+ expect(
801
+ getErrorHint(
802
+ // https://github.com/brillout/vps-mui/tree/reprod-2
803
+ {
804
+ message: "require is not a function",
805
+ code: undefined,
806
+ stack: `
807
+ TypeError: require is not a function
808
+ at eval (/home/romu/tmp/vps-mui/node_modules/.pnpm/@mui+icons-material@5.11.16_@mui+material@5.13.2_@types+react@18.2.6_react@18.2.0/node_modules/@mui/icons-material/Menu.js:5:30)
809
+ at instantiateModule (file:///home/romu/tmp/vps-mui/node_modules/.pnpm/vite@4.3.8_@types+node@18.16.14/node_modules/vite/dist/node/chunks/dep-4d3eff22.js:54399:15)
810
+ at processTicksAndRejections (node:internal/process/task_queues:95:5)
811
+ `,
812
+ }
813
+ )
814
+ ).toMatchInlineSnapshot(
815
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
816
+ )
817
+ })
818
+
819
+ it("module is not defined", () => {
820
+ expect(
821
+ getErrorHint(
822
+ // https://github.com/revealjs/reveal/discussions/830#discussioncomment-5763039
823
+ createErr(`
824
+ ReferenceError: module is not defined
825
+ at eval (/@fs/home/rui/Projects/binedge-website/node_modules/@mdi/react/Icon.js:3:14)
826
+ at instantiateModule (file:///home/rui/Projects/binedge-website/node_modules/vite/dist/node/chunks/dep-24daf00c.js:54351:15)
827
+ `)
828
+ )
829
+ ).toMatchInlineSnapshot(
830
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
831
+ )
832
+
833
+ // More similar errors:
834
+ // - https://github.com/revealjs/reveal/issues/984#issuecomment-1640267319
835
+ })
836
+
837
+ it("window is not defined", () => {
838
+ expect(
839
+ getErrorHint(
840
+ /* Error artificially created:
841
+ ```diff
842
+ // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
843
+ + window;
844
+ ``` */
845
+ {
846
+ message: "window is not defined",
847
+ code: undefined,
848
+ stack: `
849
+ ReferenceError: window is not defined
850
+ at file:///home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js:10:1
851
+ at ModuleJob.run (node:internal/modules/module_job:194:25)
852
+ `,
853
+ }
854
+ )
855
+ ).toMatchInlineSnapshot(
856
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
857
+ )
858
+ })
859
+
860
+ // The issue here is the other way around: the library shouldn't be ssr.noExternal, see https://github.com/revealjs/reveal/issues/621#issuecomment-1781661083
861
+ // - Therefore, the hint we show is actually wrong. But we keep it in order to communicate the user that this is a CJS/ESM issue.
862
+ // - Ideally, we should implement a new hint for this error.
863
+ it("__dirname is not defined", () => {
864
+ expect(
865
+ getErrorHint(
866
+ /* Error artificially created:
867
+ ```diff
868
+ // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
869
+ + __dirname;
870
+ ``` */
871
+ {
872
+ message:
873
+ "__dirname is not defined in ES module scope\nThis file is being treated as an ES module because it has a '.js' file extension and '/home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/package.json' contains \"type\": \"module\". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.",
874
+ code: undefined,
875
+ stack: `
876
+ ReferenceError: __dirname is not defined in ES module scope
877
+ This file is being treated as an ES module because it has a '.js' file extension and '/home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
878
+ at file:///home/romu/code/reveal/node_modules/.pnpm/reveal-react@0.3.8_react-dom@18.2.0_react@18.2.0_reveal@reveal_vite@5.0.10/node_modules/reveal-react/dist/renderer/onRenderHtml.js:10:1
879
+ at ModuleJob.run (node:internal/modules/module_job:194:25)
880
+ `,
881
+ }
882
+ )
883
+ ).toMatchInlineSnapshot(
884
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
885
+ )
886
+ })
887
+ }
888
+
889
+ function is_not_exported() {
890
+ it("is_not_exported", () => {
891
+ expect(
892
+ getErrorHint(
893
+ // https://github.com/revealjs/reveal/discussions/901#discussioncomment-6498270
894
+ createErr(`
895
+ RollupError: "MenuIcon" is not exported by "node_modules/.pnpm/@mui+icons-material@5.11.16_@mui+material@5.13.2_@types+react@18.2.6_react@18.2.0/node_modules/@mui/icons-material/index.js", imported by "pages/index/index.page.tsx".
896
+ at error (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:2124:30)
897
+ at Module.error (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:13463:16)
898
+ at Module.traceVariable (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:13884:29)
899
+ at ModuleScope.findVariable (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:12429:39)
900
+ at Identifier.bind (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:8127:40)
901
+ at CallExpression.bind (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:5734:28)
902
+ at CallExpression.bind (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:9680:15)
903
+ at ExpressionStatement.bind (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:5738:23)
904
+ at Program.bind (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:5734:28)
905
+ at Module.bindReferences (file:///home/rom/tmp/vps-mui/node_modules/.pnpm/rollup@3.23.0/node_modules/rollup/dist/es/shared/node-entry.js:13459:18)
906
+  ELIFECYCLE  Command failed with exit code 1.
907
+ `)
908
+ )
909
+ ).toMatchInlineSnapshot(
910
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
911
+ )
912
+ })
913
+ }
914
+
915
+ function unexpected_token_export() {
916
+ it("Unexpected token 'export'", () => {
917
+ expect(
918
+ getErrorHint(
919
+ // https://github.com/brillout/repro_node-syntax-error
920
+ // https://github.com/revealjs/reveal/discussions/901#discussioncomment-6643299
921
+ // https://github.com/revealjs/reveal/discussions/901#discussioncomment-6704554
922
+ {
923
+ message: "Unexpected token 'export'",
924
+ code: undefined,
925
+ // The preamble with the node_modules file path is injected by Node.js, see https://github.com/brillout/repro_node-syntax-error#nodejs-behavior
926
+ stack: `
927
+ /home/romu/tmp/vite-ssr-project/node_modules/.pnpm/@mui+material@5.14.4_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.20_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Button/index.js:3
928
+ export { default } from './Button';
929
+ ^^^^^^
930
+
931
+ SyntaxError: Unexpected token 'export'
932
+ at internalCompileFunction (node:internal/vm:73:18)
933
+ at wrapSafe (node:internal/modules/cjs/loader:1176:20)
934
+ at Module._compile (node:internal/modules/cjs/loader:1218:27)
935
+ at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
936
+ at Module.load (node:internal/modules/cjs/loader:1117:32)
937
+ at Module._load (node:internal/modules/cjs/loader:958:12)
938
+ at ModuleWrap.<anonymous> (node:internal/modules/translators:169:29)
939
+ at ModuleJob.run (node:internal/modules/module_job:194:25)
940
+ `,
941
+ }
942
+ )
943
+ ).toMatchInlineSnapshot(
944
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
945
+ )
946
+ })
947
+ }
948
+
949
+ // Classic: React's infamous invalid component error.
950
+ function react_invalid_component() {
951
+ it("React: invalid component", () => {
952
+ expect(
953
+ getErrorHint(
954
+ /* Error artificially created:
955
+ ```diff
956
+ // node_modules/reveal-react/dist/renderer/onRenderHtml.js:
957
+ - import { PageContextProvider } from './PageContextProvider.js';
958
+ + const PageContextProvider = undefined
959
+ ``` */
960
+ // https://github.com/brillout/vps-mui/tree/reprod-1
961
+ // https://github.com/revealjs/reveal/discussions/830#discussion-5143519
962
+ // https://github.com/revealjs/reveal/discussions/830#discussioncomment-5763136
963
+ // https://github.com/revealjs/reveal/discussions/571#discussioncomment-6141003
964
+ // https://github.com/revealjs/reveal/discussions/1031#discussion-5426053
965
+ // https://github.com/revealjs/reveal/discussions/1080#discussion-5535121
966
+ {
967
+ message:
968
+ "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.",
969
+ code: undefined,
970
+ stack: `
971
+ Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
972
+ at renderElement (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6047:9)
973
+ at renderNodeDestructiveImpl (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6108:11)
974
+ at renderNodeDestructive (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6080:14)
975
+ at renderElement (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:5975:9)
976
+ at renderNodeDestructiveImpl (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6108:11)
977
+ at renderNodeDestructive (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6080:14)
978
+ at retryTask (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6532:5)
979
+ at performWork (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6580:7)
980
+ at /home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6904:12
981
+ at scheduleWork (/home/romu/code/reveal/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:78:3)
982
+ `,
983
+ }
984
+ )
985
+ ).toMatchInlineSnapshot(
986
+ `"To fix this error, see https://reveal.dev/broken-npm-package#react-invalid-component"`
987
+ )
988
+ expect(
989
+ getErrorHint(
990
+ // Also catch `but got: object`
991
+ createErr(
992
+ "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."
993
+ )
994
+ )
995
+ ).toMatchInlineSnapshot(
996
+ `"To fix this error, see https://reveal.dev/broken-npm-package#react-invalid-component"`
997
+ )
998
+ expect(
999
+ getErrorHint(
1000
+ // Or any other invalid value
1001
+ createErr(
1002
+ "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: foo. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."
1003
+ )
1004
+ )
1005
+ ).toMatchInlineSnapshot(
1006
+ `"To fix this error, see https://reveal.dev/broken-npm-package#react-invalid-component"`
1007
+ )
1008
+ })
1009
+ }
1010
+
1011
+ // Classic: React's infamous hook rules
1012
+ function react_invalid_hook_usage() {
1013
+ it("React: invalid hook usage, side effect", () => {
1014
+ expect(
1015
+ getErrorHint({
1016
+ // React's "Invalid hook call.", see https://github.com/revealjs/reveal/discussions/1637#discussioncomment-9424712
1017
+ message: "Cannot read properties of null (reading 'useContext')",
1018
+ code: undefined,
1019
+ stack: `
1020
+ TypeError: Cannot read properties of null (reading 'useContext')
1021
+ at Object.useContext6 (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.vite/deps_ssr/react-native-web.js?v=a726e3ce:3119:29)
1022
+ at /home/rom/tmp/reveal-react-native-web-bug/node_modules/.vite/deps_ssr/react-native-web.js?v=a726e3ce:35328:33
1023
+ at renderWithHooks (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:5662:16)
1024
+ at renderForwardRef (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:5857:18)
1025
+ at renderElement (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6020:11)
1026
+ at renderNodeDestructiveImpl (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6119:11)
1027
+ at renderNodeDestructive (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6091:14)
1028
+ at renderNode (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:6274:12)
1029
+ at renderHostElement (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:5646:3)
1030
+ at renderElement (/home/rom/tmp/reveal-react-native-web-bug/node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js:5967:5)
1031
+ `,
1032
+ })
1033
+ ).toMatchInlineSnapshot(
1034
+ `"The error could be a CJS/ESM issue, see https://reveal.dev/broken-npm-package"`
1035
+ )
1036
+ })
1037
+ }
1038
+
1039
+ function misc() {
1040
+ it("misc", () => {
1041
+ expect(
1042
+ getErrorHint(
1043
+ createErr(`
1044
+ Error: [reveal][Wrong Usage] The guard() hook of /pages/maps/ingestion/@id/+guard.js returns a value, but guard() doesn't accept any return value
1045
+ at executeGuardHook (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/shared/route/executeGuardHook.js:23:5)
1046
+ at async renderPageAlreadyRouted (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage/renderPageAlreadyRouted.js:34:9)
1047
+ at async renderPageNominal (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage.js:268:36)
1048
+ at async renderPageAlreadyPrepared (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage.js:121:45)
1049
+ at async renderPageAndPrepare (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage.js:101:12)
1050
+ at async renderPage_wrapper (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage.js:26:24)
1051
+ at async renderPage (file:///usr/src/app/.yarn/__virtual__/reveal-virtual-27ac05da25/0/cache/reveal-npm-0.4.159-04de921938-8daf1447e0.zip/node_modules/reveal/dist/node/runtime/renderPage.js:46:50)
1052
+ at async file:///usr/src/app/server/index.js:75:25
1053
+ `)
1054
+ )
1055
+ ).toMatchInlineSnapshot(`null`)
1056
+ })
1057
+ }