@mintlify/scraping 3.0.187 → 3.0.188

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 (344) hide show
  1. package/bin/assert.d.ts +5 -0
  2. package/bin/assert.js +13 -0
  3. package/bin/assert.js.map +1 -0
  4. package/bin/cli.js +43 -72
  5. package/bin/cli.js.map +1 -1
  6. package/bin/components/Accordion.d.ts +5 -0
  7. package/bin/components/Accordion.js +54 -0
  8. package/bin/components/Accordion.js.map +1 -0
  9. package/bin/components/AccordionGroup.d.ts +5 -0
  10. package/bin/components/AccordionGroup.js +52 -0
  11. package/bin/components/AccordionGroup.js.map +1 -0
  12. package/bin/components/Callout.d.ts +5 -0
  13. package/bin/components/Callout.js +114 -0
  14. package/bin/components/Callout.js.map +1 -0
  15. package/bin/components/Card.d.ts +5 -0
  16. package/bin/components/Card.js +135 -0
  17. package/bin/components/Card.js.map +1 -0
  18. package/bin/components/CardGroup.d.ts +5 -0
  19. package/bin/components/CardGroup.js +52 -0
  20. package/bin/components/CardGroup.js.map +1 -0
  21. package/bin/components/CodeGroup.d.ts +5 -0
  22. package/bin/components/CodeGroup.js +166 -0
  23. package/bin/components/CodeGroup.js.map +1 -0
  24. package/bin/components/Frame.d.ts +5 -0
  25. package/bin/components/Frame.js +51 -0
  26. package/bin/components/Frame.js.map +1 -0
  27. package/bin/components/Tabs.d.ts +5 -0
  28. package/bin/components/Tabs.js +122 -0
  29. package/bin/components/Tabs.js.map +1 -0
  30. package/bin/components/link.d.ts +2 -0
  31. package/bin/components/link.js +16 -0
  32. package/bin/components/link.js.map +1 -0
  33. package/bin/constants.d.ts +6 -7
  34. package/bin/constants.js +31 -12
  35. package/bin/constants.js.map +1 -1
  36. package/bin/customComponents/create.d.ts +10 -0
  37. package/bin/customComponents/create.js +69 -0
  38. package/bin/customComponents/create.js.map +1 -0
  39. package/bin/customComponents/plugin.d.ts +2 -0
  40. package/bin/customComponents/plugin.js +26 -0
  41. package/bin/customComponents/plugin.js.map +1 -0
  42. package/bin/customComponents/selective.d.ts +6 -0
  43. package/bin/customComponents/selective.js +29 -0
  44. package/bin/customComponents/selective.js.map +1 -0
  45. package/bin/nav/iterate.d.ts +2 -0
  46. package/bin/nav/iterate.js +15 -0
  47. package/bin/nav/iterate.js.map +1 -0
  48. package/bin/nav/listItems.d.ts +8 -0
  49. package/bin/nav/listItems.js +62 -0
  50. package/bin/nav/listItems.js.map +1 -0
  51. package/bin/nav/retrieve.d.ts +3 -0
  52. package/bin/nav/retrieve.js +75 -0
  53. package/bin/nav/retrieve.js.map +1 -0
  54. package/bin/nav/root.d.ts +2 -0
  55. package/bin/nav/root.js +40 -0
  56. package/bin/nav/root.js.map +1 -0
  57. package/bin/openapi/generateOpenApiPages.js +2 -2
  58. package/bin/openapi/generateOpenApiPages.js.map +1 -1
  59. package/bin/root/retrieve.d.ts +2 -0
  60. package/bin/root/retrieve.js +46 -0
  61. package/bin/root/retrieve.js.map +1 -0
  62. package/bin/scrapingPipeline/group.d.ts +5 -0
  63. package/bin/scrapingPipeline/group.js +46 -0
  64. package/bin/scrapingPipeline/group.js.map +1 -0
  65. package/bin/scrapingPipeline/icon.d.ts +2 -0
  66. package/bin/scrapingPipeline/icon.js +22 -0
  67. package/bin/scrapingPipeline/icon.js.map +1 -0
  68. package/bin/scrapingPipeline/images.d.ts +3 -0
  69. package/bin/scrapingPipeline/images.js +50 -0
  70. package/bin/scrapingPipeline/images.js.map +1 -0
  71. package/bin/scrapingPipeline/logo.d.ts +5 -0
  72. package/bin/scrapingPipeline/logo.js +92 -0
  73. package/bin/scrapingPipeline/logo.js.map +1 -0
  74. package/bin/scrapingPipeline/page.d.ts +6 -0
  75. package/bin/scrapingPipeline/page.js +102 -0
  76. package/bin/scrapingPipeline/page.js.map +1 -0
  77. package/bin/scrapingPipeline/root.d.ts +2 -0
  78. package/bin/scrapingPipeline/root.js +8 -0
  79. package/bin/scrapingPipeline/root.js.map +1 -0
  80. package/bin/scrapingPipeline/site.d.ts +7 -0
  81. package/bin/scrapingPipeline/site.js +129 -0
  82. package/bin/scrapingPipeline/site.js.map +1 -0
  83. package/bin/scrapingPipeline/tabs.d.ts +3 -0
  84. package/bin/scrapingPipeline/tabs.js +67 -0
  85. package/bin/scrapingPipeline/tabs.js.map +1 -0
  86. package/bin/tabs/retrieveReadme.d.ts +3 -0
  87. package/bin/tabs/retrieveReadme.js +78 -0
  88. package/bin/tabs/retrieveReadme.js.map +1 -0
  89. package/bin/tsconfig.build.tsbuildinfo +1 -1
  90. package/bin/types/components.d.ts +2 -0
  91. package/bin/types/components.js +2 -0
  92. package/bin/types/components.js.map +1 -0
  93. package/bin/types/framework.d.ts +8 -0
  94. package/bin/types/framework.js +3 -0
  95. package/bin/types/framework.js.map +1 -0
  96. package/bin/types/hast.d.ts +6 -0
  97. package/bin/types/hast.js +2 -0
  98. package/bin/types/hast.js.map +1 -0
  99. package/bin/types/result.d.ts +7 -0
  100. package/bin/types/result.js +2 -0
  101. package/bin/types/result.js.map +1 -0
  102. package/bin/types/scrapeFunc.d.ts +3 -0
  103. package/bin/types/scrapeFunc.js +2 -0
  104. package/bin/types/scrapeFunc.js.map +1 -0
  105. package/bin/utils/append.d.ts +1 -0
  106. package/bin/utils/append.js +12 -0
  107. package/bin/utils/append.js.map +1 -0
  108. package/bin/utils/children.d.ts +5 -0
  109. package/bin/utils/children.js +35 -0
  110. package/bin/utils/children.js.map +1 -0
  111. package/bin/utils/className.d.ts +3 -0
  112. package/bin/utils/className.js +13 -0
  113. package/bin/utils/className.js.map +1 -0
  114. package/bin/utils/detectFramework.d.ts +4 -0
  115. package/bin/utils/detectFramework.js +60 -0
  116. package/bin/utils/detectFramework.js.map +1 -0
  117. package/bin/utils/emptyParagraphs.d.ts +3 -0
  118. package/bin/utils/emptyParagraphs.js +19 -0
  119. package/bin/utils/emptyParagraphs.js.map +1 -0
  120. package/bin/utils/errors.d.ts +3 -0
  121. package/bin/utils/errors.js +16 -0
  122. package/bin/utils/errors.js.map +1 -0
  123. package/bin/utils/escape.d.ts +2 -0
  124. package/bin/utils/escape.js +25 -0
  125. package/bin/utils/escape.js.map +1 -0
  126. package/bin/utils/extension.d.ts +3 -0
  127. package/bin/utils/extension.js +18 -0
  128. package/bin/utils/extension.js.map +1 -0
  129. package/bin/utils/file.d.ts +4 -0
  130. package/bin/utils/file.js +43 -0
  131. package/bin/utils/file.js.map +1 -0
  132. package/bin/utils/firstChild.d.ts +2 -0
  133. package/bin/utils/firstChild.js +12 -0
  134. package/bin/utils/firstChild.js.map +1 -0
  135. package/bin/utils/images.d.ts +5 -0
  136. package/bin/utils/images.js +86 -0
  137. package/bin/utils/images.js.map +1 -0
  138. package/bin/utils/img.d.ts +2 -0
  139. package/bin/utils/img.js +15 -0
  140. package/bin/utils/img.js.map +1 -0
  141. package/bin/utils/log.d.ts +18 -0
  142. package/bin/utils/log.js +68 -0
  143. package/bin/utils/log.js.map +1 -0
  144. package/bin/utils/nestedRoots.d.ts +7 -0
  145. package/bin/utils/nestedRoots.js +19 -0
  146. package/bin/utils/nestedRoots.js.map +1 -0
  147. package/bin/utils/network.d.ts +5 -0
  148. package/bin/utils/network.js +82 -0
  149. package/bin/utils/network.js.map +1 -0
  150. package/bin/utils/path.d.ts +1 -0
  151. package/bin/utils/path.js +22 -0
  152. package/bin/utils/path.js.map +1 -0
  153. package/bin/utils/position.d.ts +3 -0
  154. package/bin/utils/position.js +12 -0
  155. package/bin/utils/position.js.map +1 -0
  156. package/bin/utils/reservedNames.d.ts +4 -0
  157. package/bin/utils/reservedNames.js +27 -0
  158. package/bin/utils/reservedNames.js.map +1 -0
  159. package/bin/utils/strings.d.ts +2 -0
  160. package/bin/utils/strings.js +7 -0
  161. package/bin/utils/strings.js.map +1 -0
  162. package/bin/utils/text.d.ts +2 -0
  163. package/bin/utils/text.js +11 -0
  164. package/bin/utils/text.js.map +1 -0
  165. package/bin/utils/title.d.ts +10 -0
  166. package/bin/utils/title.js +58 -0
  167. package/bin/utils/title.js.map +1 -0
  168. package/bin/utils/url.d.ts +3 -0
  169. package/bin/utils/url.js +10 -0
  170. package/bin/utils/url.js.map +1 -0
  171. package/package.json +17 -8
  172. package/src/assert.ts +15 -0
  173. package/src/cli.ts +53 -90
  174. package/src/components/Accordion.ts +84 -0
  175. package/src/components/AccordionGroup.ts +69 -0
  176. package/src/components/Callout.ts +159 -0
  177. package/src/components/Card.ts +168 -0
  178. package/src/components/CardGroup.ts +69 -0
  179. package/src/components/CodeGroup.ts +209 -0
  180. package/src/components/Frame.ts +86 -0
  181. package/src/components/Tabs.ts +154 -0
  182. package/src/components/link.ts +17 -0
  183. package/src/constants.ts +37 -19
  184. package/src/customComponents/create.ts +106 -0
  185. package/src/customComponents/plugin.ts +31 -0
  186. package/src/customComponents/selective.ts +37 -0
  187. package/src/nav/iterate.ts +18 -0
  188. package/src/nav/listItems.ts +82 -0
  189. package/src/nav/retrieve.ts +88 -0
  190. package/src/nav/root.ts +47 -0
  191. package/src/openapi/generateOpenApiPages.ts +2 -2
  192. package/src/root/retrieve.ts +52 -0
  193. package/src/scrapingPipeline/group.ts +62 -0
  194. package/src/scrapingPipeline/icon.ts +26 -0
  195. package/src/scrapingPipeline/images.ts +67 -0
  196. package/src/scrapingPipeline/logo.ts +127 -0
  197. package/src/scrapingPipeline/page.ts +130 -0
  198. package/src/scrapingPipeline/root.ts +10 -0
  199. package/src/scrapingPipeline/site.ts +161 -0
  200. package/src/scrapingPipeline/tabs.ts +87 -0
  201. package/src/tabs/retrieveReadme.ts +99 -0
  202. package/src/types/components.ts +3 -0
  203. package/src/types/framework.ts +10 -0
  204. package/src/types/hast.ts +12 -0
  205. package/src/types/result.ts +1 -0
  206. package/src/types/scrapeFunc.ts +9 -0
  207. package/src/utils/append.ts +9 -0
  208. package/src/utils/children.ts +51 -0
  209. package/src/utils/className.ts +14 -0
  210. package/src/utils/detectFramework.ts +72 -0
  211. package/src/utils/emptyParagraphs.ts +21 -0
  212. package/src/utils/errors.ts +24 -0
  213. package/src/utils/escape.ts +30 -0
  214. package/src/utils/extension.ts +19 -0
  215. package/src/utils/file.ts +58 -0
  216. package/src/utils/firstChild.ts +13 -0
  217. package/src/utils/images.ts +101 -0
  218. package/src/utils/img.ts +17 -0
  219. package/src/utils/log.ts +82 -0
  220. package/src/utils/nestedRoots.ts +20 -0
  221. package/src/utils/network.ts +95 -0
  222. package/src/utils/path.ts +27 -0
  223. package/src/utils/position.ts +14 -0
  224. package/src/utils/reservedNames.ts +31 -0
  225. package/src/utils/strings.ts +7 -0
  226. package/src/utils/text.ts +11 -0
  227. package/src/utils/title.ts +68 -0
  228. package/src/utils/url.ts +8 -0
  229. package/bin/browser.d.ts +0 -2
  230. package/bin/browser.js +0 -24
  231. package/bin/browser.js.map +0 -1
  232. package/bin/checks.d.ts +0 -8
  233. package/bin/checks.js +0 -24
  234. package/bin/checks.js.map +0 -1
  235. package/bin/downloadImage.d.ts +0 -5
  236. package/bin/downloadImage.js +0 -88
  237. package/bin/downloadImage.js.map +0 -1
  238. package/bin/scraping/combineNavWithEmptyGroupTitles.d.ts +0 -2
  239. package/bin/scraping/combineNavWithEmptyGroupTitles.js +0 -20
  240. package/bin/scraping/combineNavWithEmptyGroupTitles.js.map +0 -1
  241. package/bin/scraping/detectFramework.d.ts +0 -9
  242. package/bin/scraping/detectFramework.js +0 -36
  243. package/bin/scraping/detectFramework.js.map +0 -1
  244. package/bin/scraping/downloadAllImages.d.ts +0 -4
  245. package/bin/scraping/downloadAllImages.js +0 -36
  246. package/bin/scraping/downloadAllImages.js.map +0 -1
  247. package/bin/scraping/downloadLogoImage.d.ts +0 -1
  248. package/bin/scraping/downloadLogoImage.js +0 -12
  249. package/bin/scraping/downloadLogoImage.js.map +0 -1
  250. package/bin/scraping/replaceImagePaths.d.ts +0 -1
  251. package/bin/scraping/replaceImagePaths.js +0 -14
  252. package/bin/scraping/replaceImagePaths.js.map +0 -1
  253. package/bin/scraping/scrapeFileGettingFileNameFromUrl.d.ts +0 -6
  254. package/bin/scraping/scrapeFileGettingFileNameFromUrl.js +0 -46
  255. package/bin/scraping/scrapeFileGettingFileNameFromUrl.js.map +0 -1
  256. package/bin/scraping/scrapeGettingFileNameFromUrl.d.ts +0 -6
  257. package/bin/scraping/scrapeGettingFileNameFromUrl.js +0 -13
  258. package/bin/scraping/scrapeGettingFileNameFromUrl.js.map +0 -1
  259. package/bin/scraping/scrapePage.d.ts +0 -8
  260. package/bin/scraping/scrapePage.js +0 -10
  261. package/bin/scraping/scrapePage.js.map +0 -1
  262. package/bin/scraping/scrapePageCommands.d.ts +0 -7
  263. package/bin/scraping/scrapePageCommands.js +0 -50
  264. package/bin/scraping/scrapePageCommands.js.map +0 -1
  265. package/bin/scraping/scrapeSection.d.ts +0 -3
  266. package/bin/scraping/scrapeSection.js +0 -12
  267. package/bin/scraping/scrapeSection.js.map +0 -1
  268. package/bin/scraping/scrapeSectionCommands.d.ts +0 -6
  269. package/bin/scraping/scrapeSectionCommands.js +0 -63
  270. package/bin/scraping/scrapeSectionCommands.js.map +0 -1
  271. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomPage.d.ts +0 -5
  272. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomPage.js +0 -29
  273. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomPage.js.map +0 -1
  274. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomSection.d.ts +0 -2
  275. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomSection.js +0 -31
  276. package/bin/scraping/site-scrapers/Intercom/scrapeIntercomSection.js.map +0 -1
  277. package/bin/scraping/site-scrapers/alternateGroupTitle.d.ts +0 -3
  278. package/bin/scraping/site-scrapers/alternateGroupTitle.js +0 -9
  279. package/bin/scraping/site-scrapers/alternateGroupTitle.js.map +0 -1
  280. package/bin/scraping/site-scrapers/links-per-group/getDocusaurusLinksPerGroup.d.ts +0 -5
  281. package/bin/scraping/site-scrapers/links-per-group/getDocusaurusLinksPerGroup.js +0 -33
  282. package/bin/scraping/site-scrapers/links-per-group/getDocusaurusLinksPerGroup.js.map +0 -1
  283. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursively.d.ts +0 -3
  284. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursively.js +0 -35
  285. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursively.js.map +0 -1
  286. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursivelyGitBook.d.ts +0 -3
  287. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursivelyGitBook.js +0 -33
  288. package/bin/scraping/site-scrapers/links-per-group/getLinksRecursivelyGitBook.js.map +0 -1
  289. package/bin/scraping/site-scrapers/openNestedDocusaurusMenus.d.ts +0 -2
  290. package/bin/scraping/site-scrapers/openNestedDocusaurusMenus.js +0 -30
  291. package/bin/scraping/site-scrapers/openNestedDocusaurusMenus.js.map +0 -1
  292. package/bin/scraping/site-scrapers/openNestedGitbookMenus.d.ts +0 -2
  293. package/bin/scraping/site-scrapers/openNestedGitbookMenus.js +0 -21
  294. package/bin/scraping/site-scrapers/openNestedGitbookMenus.js.map +0 -1
  295. package/bin/scraping/site-scrapers/scrapeDocusaurusPage.d.ts +0 -5
  296. package/bin/scraping/site-scrapers/scrapeDocusaurusPage.js +0 -53
  297. package/bin/scraping/site-scrapers/scrapeDocusaurusPage.js.map +0 -1
  298. package/bin/scraping/site-scrapers/scrapeDocusaurusSection.d.ts +0 -2
  299. package/bin/scraping/site-scrapers/scrapeDocusaurusSection.js +0 -32
  300. package/bin/scraping/site-scrapers/scrapeDocusaurusSection.js.map +0 -1
  301. package/bin/scraping/site-scrapers/scrapeGitBookPage.d.ts +0 -5
  302. package/bin/scraping/site-scrapers/scrapeGitBookPage.js +0 -56
  303. package/bin/scraping/site-scrapers/scrapeGitBookPage.js.map +0 -1
  304. package/bin/scraping/site-scrapers/scrapeGitBookSection.d.ts +0 -2
  305. package/bin/scraping/site-scrapers/scrapeGitBookSection.js +0 -42
  306. package/bin/scraping/site-scrapers/scrapeGitBookSection.js.map +0 -1
  307. package/bin/scraping/site-scrapers/scrapeReadMePage.d.ts +0 -5
  308. package/bin/scraping/site-scrapers/scrapeReadMePage.js +0 -38
  309. package/bin/scraping/site-scrapers/scrapeReadMePage.js.map +0 -1
  310. package/bin/scraping/site-scrapers/scrapeReadMeSection.d.ts +0 -2
  311. package/bin/scraping/site-scrapers/scrapeReadMeSection.js +0 -39
  312. package/bin/scraping/site-scrapers/scrapeReadMeSection.js.map +0 -1
  313. package/bin/util.d.ts +0 -29
  314. package/bin/util.js +0 -97
  315. package/bin/util.js.map +0 -1
  316. package/src/browser.ts +0 -24
  317. package/src/checks.ts +0 -32
  318. package/src/downloadImage.ts +0 -102
  319. package/src/scraping/combineNavWithEmptyGroupTitles.ts +0 -21
  320. package/src/scraping/detectFramework.ts +0 -55
  321. package/src/scraping/downloadAllImages.ts +0 -61
  322. package/src/scraping/downloadLogoImage.ts +0 -24
  323. package/src/scraping/replaceImagePaths.ts +0 -17
  324. package/src/scraping/scrapeFileGettingFileNameFromUrl.ts +0 -84
  325. package/src/scraping/scrapeGettingFileNameFromUrl.ts +0 -56
  326. package/src/scraping/scrapePage.ts +0 -40
  327. package/src/scraping/scrapePageCommands.ts +0 -68
  328. package/src/scraping/scrapeSection.ts +0 -30
  329. package/src/scraping/scrapeSectionCommands.ts +0 -98
  330. package/src/scraping/site-scrapers/Intercom/scrapeIntercomPage.ts +0 -52
  331. package/src/scraping/site-scrapers/Intercom/scrapeIntercomSection.ts +0 -54
  332. package/src/scraping/site-scrapers/alternateGroupTitle.ts +0 -11
  333. package/src/scraping/site-scrapers/links-per-group/getDocusaurusLinksPerGroup.ts +0 -45
  334. package/src/scraping/site-scrapers/links-per-group/getLinksRecursively.ts +0 -47
  335. package/src/scraping/site-scrapers/links-per-group/getLinksRecursivelyGitBook.ts +0 -44
  336. package/src/scraping/site-scrapers/openNestedDocusaurusMenus.ts +0 -42
  337. package/src/scraping/site-scrapers/openNestedGitbookMenus.ts +0 -27
  338. package/src/scraping/site-scrapers/scrapeDocusaurusPage.ts +0 -85
  339. package/src/scraping/site-scrapers/scrapeDocusaurusSection.ts +0 -63
  340. package/src/scraping/site-scrapers/scrapeGitBookPage.ts +0 -82
  341. package/src/scraping/site-scrapers/scrapeGitBookSection.ts +0 -69
  342. package/src/scraping/site-scrapers/scrapeReadMePage.ts +0 -56
  343. package/src/scraping/site-scrapers/scrapeReadMeSection.ts +0 -66
  344. package/src/util.ts +0 -122
@@ -0,0 +1,68 @@
1
+ export const colors = {
2
+ red: '\x1b[31m',
3
+ green: '\x1b[32m',
4
+ yellow: '\x1b[33m',
5
+ blue: '\x1b[34m',
6
+ magenta: '\x1b[35m',
7
+ cyan: '\x1b[36m',
8
+ default: '\x1b[0m',
9
+ };
10
+ const statuses = ['success', 'failure', 'error', 'warn', 'warning', 'info'];
11
+ export const checkIcon = '✔ ';
12
+ export const xIcon = '✘ ';
13
+ export const infoIcon = 'ⓘ ';
14
+ export const warningIcon = '⚠ ';
15
+ export function log(message, statusOrColor) {
16
+ let color = colors.blue;
17
+ let statusMsg = 'INFO ';
18
+ let icon = infoIcon;
19
+ const msg = typeof message === 'string' ? message.toLowerCase() : '';
20
+ if (!statusOrColor) {
21
+ statusOrColor =
22
+ msg.includes('fail') ||
23
+ msg.includes('error') ||
24
+ msg.includes('could not') ||
25
+ msg.includes("couldn't") ||
26
+ msg.includes('did not') ||
27
+ msg.includes('invalid') ||
28
+ msg.includes("didn't")
29
+ ? 'error'
30
+ : msg.includes('success') ||
31
+ msg.includes('downloaded') ||
32
+ msg.includes('written') ||
33
+ msg.includes('added')
34
+ ? 'success'
35
+ : msg.includes('warn')
36
+ ? 'warn'
37
+ : undefined;
38
+ }
39
+ switch (statusOrColor) {
40
+ case undefined:
41
+ case 'info':
42
+ break;
43
+ case 'success':
44
+ color = colors.green;
45
+ statusMsg = 'SUCCESS';
46
+ icon = checkIcon;
47
+ break;
48
+ case 'warn':
49
+ case 'warning':
50
+ color = colors.yellow;
51
+ statusMsg = 'WARNING';
52
+ icon = warningIcon;
53
+ break;
54
+ case 'failure':
55
+ case 'error':
56
+ color = colors.red;
57
+ statusMsg = 'ERROR ';
58
+ icon = xIcon;
59
+ break;
60
+ }
61
+ console.log(`${color}${icon} ${statusMsg}${colors.default} - ${typeof message === 'string' ||
62
+ typeof message === 'bigint' ||
63
+ typeof message === 'number' ||
64
+ typeof message === 'boolean'
65
+ ? message
66
+ : JSON.stringify(message, undefined, 2)}`);
67
+ }
68
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Root as MdastRoot } from 'mdast';
2
+ /** There should only be one root; this replaces any inner roots
3
+ * that we might get because of us converting the content manually
4
+ * to `contentAsRoot` from `content`
5
+ */
6
+ export declare function unifiedRemoveNestedRoots(): (node: MdastRoot) => void;
7
+ export declare function removeNestedRoots(root: MdastRoot): void;
@@ -0,0 +1,19 @@
1
+ import { CONTINUE, visit } from 'unist-util-visit';
2
+ /** There should only be one root; this replaces any inner roots
3
+ * that we might get because of us converting the content manually
4
+ * to `contentAsRoot` from `content`
5
+ */
6
+ export function unifiedRemoveNestedRoots() {
7
+ return function (node) {
8
+ return removeNestedRoots(node);
9
+ };
10
+ }
11
+ export function removeNestedRoots(root) {
12
+ visit(root, 'root', function (node, _, parent) {
13
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
14
+ if (!parent)
15
+ return CONTINUE;
16
+ parent.children = node.children;
17
+ });
18
+ }
19
+ //# sourceMappingURL=nestedRoots.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestedRoots.js","sourceRoot":"","sources":["../../src/utils/nestedRoots.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,UAAU,IAAe;QAC9B,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,MAAM;QAC3C,uEAAuE;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC;QAC5B,MAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Browser } from 'puppeteer';
2
+ export declare function startPuppeteer(): Promise<Browser | undefined>;
3
+ export declare function getHtmlWithPuppeteer(browser: Browser, url: string | URL): Promise<string | undefined>;
4
+ export declare function fetchPageHtml(url: string | URL, browser?: Browser | undefined): Promise<string>;
5
+ export declare function fetchImage(url: string): Promise<NodeJS.TypedArray>;
@@ -0,0 +1,82 @@
1
+ import { launch } from 'puppeteer';
2
+ import { getErrorMessage } from './errors.js';
3
+ import { log } from './log.js';
4
+ async function exponentialBackoff(operation, retries = 3, delay = 1000, factor = 2) {
5
+ try {
6
+ return await operation();
7
+ }
8
+ catch (error) {
9
+ if (retries > 0) {
10
+ await new Promise((resolve) => setTimeout(resolve, delay));
11
+ return exponentialBackoff(operation, retries - 1, delay * factor, factor);
12
+ }
13
+ else {
14
+ throw error;
15
+ }
16
+ }
17
+ }
18
+ export async function startPuppeteer() {
19
+ try {
20
+ return await launch({
21
+ headless: true,
22
+ ignoreHTTPSErrors: true,
23
+ });
24
+ }
25
+ catch (error) {
26
+ if (error instanceof Error) {
27
+ log(`Could not create a browser instance: ${error.message}`);
28
+ }
29
+ }
30
+ }
31
+ export async function getHtmlWithPuppeteer(browser, url) {
32
+ const page = await browser.newPage();
33
+ await page.goto(url.toString(), {
34
+ waitUntil: 'networkidle2',
35
+ });
36
+ const html = await exponentialBackoff(() => page.content());
37
+ return html;
38
+ }
39
+ async function fetchPageResponse(url) {
40
+ try {
41
+ const res = await fetch(url);
42
+ if (!res.ok) {
43
+ throw new Error(`${res.status} ${res.statusText}`);
44
+ }
45
+ return await res.text();
46
+ }
47
+ catch (error) {
48
+ const errorMessage = getErrorMessage(error);
49
+ throw new Error(`${url}\n\t- failed to fetch page from source${errorMessage}`);
50
+ }
51
+ }
52
+ export async function fetchPageHtml(url, browser = undefined) {
53
+ if (browser) {
54
+ try {
55
+ const res = await getHtmlWithPuppeteer(browser, url);
56
+ if (res)
57
+ return res;
58
+ throw new Error('an unknown error occured');
59
+ }
60
+ catch (error) {
61
+ const errorMessage = getErrorMessage(error);
62
+ throw new Error(`${url}\n\t- Puppeteer failed to retrieve page from source${errorMessage}`);
63
+ }
64
+ }
65
+ return await exponentialBackoff(() => fetchPageResponse(url));
66
+ }
67
+ export async function fetchImage(url) {
68
+ try {
69
+ const res = await exponentialBackoff(() => fetch(url));
70
+ if (!res.ok) {
71
+ throw new Error(`${res.status} ${res.statusText}`);
72
+ }
73
+ const imageBuffer = await res.arrayBuffer();
74
+ const imageData = new Uint8Array(imageBuffer);
75
+ return imageData;
76
+ }
77
+ catch (error) {
78
+ const errorMessage = getErrorMessage(error);
79
+ throw new Error(`${url}\n\t- failed to retrieve image from source${errorMessage}`);
80
+ }
81
+ }
82
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,KAAK,UAAU,kBAAkB,CAC/B,SAA2B,EAC3B,UAAkB,CAAC,EACnB,QAAgB,IAAI,EACpB,SAAiB,CAAC;IAElB,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3D,OAAO,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC;YAClB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,wCAAwC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAgB,EAChB,GAAiB;IAEjB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC9B,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAiB;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,yCAAyC,YAAY,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAiB,EACjB,UAA+B,SAAS;IAExC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,sDAAsD,YAAY,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;QAE9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,6CAA6C,YAAY,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function createFilename(rootPath: string | undefined, filename: string | URL, title?: string): string | undefined;
@@ -0,0 +1,22 @@
1
+ import { join } from 'path';
2
+ import { addMdx } from './extension.js';
3
+ import { toFilename } from './file.js';
4
+ import { log } from './log.js';
5
+ export function createFilename(rootPath = process.cwd(), filename, title) {
6
+ if (typeof filename === 'string' && filename.startsWith('http')) {
7
+ const url = new URL(filename);
8
+ filename = url.pathname;
9
+ }
10
+ else if (typeof filename === 'object') {
11
+ filename = filename.pathname;
12
+ }
13
+ else {
14
+ filename = filename;
15
+ }
16
+ if (filename === '') {
17
+ log(`Invalid file name provided: ${filename}`, 'error');
18
+ return undefined;
19
+ }
20
+ return join(rootPath, addMdx(filename || toFilename(title ?? '')));
21
+ }
22
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,UAAU,cAAc,CAC5B,WAAmB,OAAO,CAAC,GAAG,EAAE,EAChC,QAAsB,EACtB,KAAc;IAEd,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC1B,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxC,QAAQ,GAAI,QAAgB,CAAC,QAAQ,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,QAAkB,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,GAAG,CAAC,+BAA+B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Element } from 'hast';
2
+ export declare function unifiedRemovePositions(): (node: Element) => undefined;
3
+ export declare function removePositions(node: Element): undefined;
@@ -0,0 +1,12 @@
1
+ import { visit } from 'unist-util-visit';
2
+ export function unifiedRemovePositions() {
3
+ return function (node) {
4
+ return removePositions(node);
5
+ };
6
+ }
7
+ export function removePositions(node) {
8
+ return visit(node, function (subNode) {
9
+ delete subNode.position;
10
+ });
11
+ }
12
+ //# sourceMappingURL=position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/utils/position.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,sBAAsB;IACpC,OAAO,UAAU,IAAa;QAC5B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,KAAK,CAAC,IAAI,EAAE,UAAU,OAAO;QAClC,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const blacklistedNames: Map<string, string>;
2
+ export declare const INDEX_NAMES: string[];
3
+ export declare const GROUP_NAMES: string[];
4
+ export declare function iterateThroughReservedNames(namesToUse: Array<string>, namesInUse: Array<string>): string;
@@ -0,0 +1,27 @@
1
+ export const blacklistedNames = new Map([['api', 'api-reference']]);
2
+ export const INDEX_NAMES = [
3
+ 'home',
4
+ 'introduction',
5
+ 'getting-started',
6
+ 'get-started',
7
+ 'welcome',
8
+ 'start',
9
+ ];
10
+ export const GROUP_NAMES = [
11
+ 'Home',
12
+ 'Introduction',
13
+ 'Getting Started',
14
+ 'Get Started',
15
+ 'Welcome',
16
+ 'Start',
17
+ 'Docs',
18
+ ];
19
+ export function iterateThroughReservedNames(namesToUse, namesInUse) {
20
+ for (const name of namesToUse) {
21
+ if (namesInUse.includes(name))
22
+ continue;
23
+ return name;
24
+ }
25
+ return '';
26
+ }
27
+ //# sourceMappingURL=reservedNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservedNames.js","sourceRoot":"","sources":["../../src/utils/reservedNames.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAiB,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,OAAO;CACR,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,OAAO;IACP,MAAM;CACP,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACzC,UAAyB,EACzB,UAAyB;IAEzB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function removeTrailingSlash(str: string): string;
2
+ export declare function removeLeadingSlash(str: string): string;
@@ -0,0 +1,7 @@
1
+ export function removeTrailingSlash(str) {
2
+ return str.endsWith('/') ? str.substring(0, str.length - 1) : str;
3
+ }
4
+ export function removeLeadingSlash(str) {
5
+ return str.startsWith('/') ? str.substring(1) : str;
6
+ }
7
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/utils/strings.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Element } from 'hast';
2
+ export declare function getText(element: Element | undefined): string;
@@ -0,0 +1,11 @@
1
+ import { visit } from 'unist-util-visit';
2
+ export function getText(element) {
3
+ if (!element)
4
+ return '';
5
+ let text = '';
6
+ visit(element, 'text', function (node) {
7
+ text += node.value;
8
+ });
9
+ return text;
10
+ }
11
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,OAAO,CAAC,OAA4B;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI;QACnC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Element, ElementContent, Root as HastRoot } from 'hast';
2
+ import type { Root as MdastRoot, BlockContent } from 'mdast';
3
+ export declare function findTitle(node: Element | ElementContent | BlockContent | MdastRoot | HastRoot | undefined, opts?: {
4
+ delete: boolean;
5
+ nodeType?: string;
6
+ tagName?: string;
7
+ }): string;
8
+ export declare function getTitleFromHeading(root: MdastRoot): string;
9
+ export declare function getDescriptionFromRoot(root: MdastRoot): string;
10
+ export declare function getTitleFromLink(url: string): string;
@@ -0,0 +1,58 @@
1
+ import { visit, CONTINUE, EXIT } from 'unist-util-visit';
2
+ export function findTitle(node, opts = {
3
+ delete: true,
4
+ nodeType: undefined,
5
+ tagName: undefined,
6
+ }) {
7
+ let title = '';
8
+ if (!node)
9
+ return title;
10
+ visit(node, opts.nodeType ? opts.nodeType : node, function (subNode) {
11
+ if (opts.tagName && subNode.type === 'element' && subNode.tagName !== opts.tagName) {
12
+ return CONTINUE;
13
+ }
14
+ visit(subNode, 'text', function (textNode, index, parent) {
15
+ title += textNode.value;
16
+ if (opts.delete && parent && typeof index === 'number') {
17
+ parent.children.splice(index, 1);
18
+ }
19
+ });
20
+ });
21
+ return title.trim();
22
+ }
23
+ export function getTitleFromHeading(root) {
24
+ let headingElement = undefined;
25
+ visit(root, 'heading', function (subNode, index, parent) {
26
+ headingElement = subNode;
27
+ if (parent && typeof index === 'number') {
28
+ parent.children.splice(index, 1);
29
+ }
30
+ return EXIT;
31
+ });
32
+ return findTitle(headingElement);
33
+ }
34
+ export function getDescriptionFromRoot(root) {
35
+ let descriptionElement = undefined;
36
+ visit(root, 'paragraph', function (subNode, index, parent) {
37
+ if (typeof index !== 'number' || index !== 0 || !parent || parent.type !== 'root')
38
+ return EXIT;
39
+ descriptionElement = subNode;
40
+ if (typeof index === 'number') {
41
+ parent.children.splice(index, 1);
42
+ }
43
+ return EXIT;
44
+ });
45
+ return findTitle(descriptionElement);
46
+ }
47
+ export function getTitleFromLink(url) {
48
+ if (url.startsWith('http')) {
49
+ url = new URL(url).pathname;
50
+ }
51
+ const lastPathname = url.split('/').at(-1) ?? '';
52
+ const dashSplitPathname = lastPathname.split('-').flatMap((i) => i.split('_'));
53
+ dashSplitPathname.forEach((str, index) => {
54
+ dashSplitPathname[index] = str[0] ? `${str[0].toUpperCase()}${str.substring(1)}` : str;
55
+ });
56
+ return dashSplitPathname.join(' ');
57
+ }
58
+ //# sourceMappingURL=title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.js","sourceRoot":"","sources":["../../src/utils/title.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function checkUrl({ url }: {
2
+ url: string;
3
+ }): boolean;
@@ -0,0 +1,10 @@
1
+ export function checkUrl({ url }) {
2
+ try {
3
+ new URL(url);
4
+ }
5
+ catch {
6
+ throw Error(`Invalid link: ${url}\nMake sure the link starts with http:// or https://`);
7
+ }
8
+ return true;
9
+ }
10
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,EAAE,GAAG,EAAmB;IAC/C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,CAAC,iBAAiB,GAAG,sDAAsD,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mintlify/scraping",
3
- "version": "3.0.187",
3
+ "version": "3.0.188",
4
4
  "description": "Scrape documentation frameworks to Mintlify docs",
5
5
  "engines": {
6
6
  "node": ">=18.0.0"
@@ -40,14 +40,23 @@
40
40
  "dependencies": {
41
41
  "@mintlify/common": "1.0.164",
42
42
  "@mintlify/openapi-parser": "^0.0.0",
43
- "axios": "^1.2.2",
44
- "cheerio": "^1.0.0-rc.12",
45
43
  "fs-extra": "^11.1.1",
44
+ "hast": "^1.0.0",
45
+ "hast-util-to-mdast": "^10.1.0",
46
46
  "js-yaml": "^4.1.0",
47
- "node-html-markdown": "^1.3.0",
48
- "ora": "^6.1.2",
47
+ "mdast": "^3.0.0",
48
+ "mdast-util-mdx-jsx": "^3.1.3",
49
49
  "puppeteer": "^22.14.0",
50
- "yargs": "^17.6.0"
50
+ "rehype-parse": "^9.0.0",
51
+ "remark-gfm": "^4.0.0",
52
+ "remark-mdx": "^3.0.1",
53
+ "remark-parse": "^11.0.0",
54
+ "remark-stringify": "^11.0.0",
55
+ "traverse": "^0.6.10",
56
+ "unified": "^11.0.5",
57
+ "unist-util-visit": "^5.0.0",
58
+ "yargs": "^17.6.0",
59
+ "zod": "^3.20.6"
51
60
  },
52
61
  "devDependencies": {
53
62
  "@mintlify/eslint-config": "1.0.5",
@@ -58,8 +67,8 @@
58
67
  "@mintlify/validation": "0.1.205",
59
68
  "@trivago/prettier-plugin-sort-imports": "^4.2.1",
60
69
  "@tsconfig/recommended": "1.x",
61
- "@types/cheerio": "^0.22.31",
62
70
  "@types/node": "^18.7.13",
71
+ "@types/traverse": "^0.6.37",
63
72
  "@types/yargs": "^17.0.13",
64
73
  "@typescript-eslint/eslint-plugin": "6.x",
65
74
  "@typescript-eslint/parser": "6.x",
@@ -72,5 +81,5 @@
72
81
  "typescript": "^5.5.3",
73
82
  "vitest": "^2.0.4"
74
83
  },
75
- "gitHead": "0ed4e6fadb34fc030dabe5bcb74f99e3d66f2332"
84
+ "gitHead": "4f208a2d819ac09fcb091dd75e4c8ea3e4d910e4"
76
85
  }
package/src/assert.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+
3
+ export const StringArraySchema = z.array(z.string());
4
+
5
+ export function assertIsNumber(val: unknown): asserts val is number {
6
+ z.number().parse(val);
7
+ }
8
+
9
+ export function assertIsDefined<T>(val: T): asserts val is NonNullable<T> {
10
+ if (val === undefined || val === null) throw new Error('Value is nullable.');
11
+ }
12
+
13
+ export function assertIsStringArray(val: unknown): asserts val is Array<string> {
14
+ StringArraySchema.parse(val);
15
+ }