fromsrc 0.0.2 → 0.0.21

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 (408) hide show
  1. package/dist/access.d.ts +7 -7
  2. package/dist/access.js +12 -5
  3. package/dist/adapter.js +8 -16
  4. package/dist/adapterbrowser.js +6 -10
  5. package/dist/adapternext.js +7 -18
  6. package/dist/adapterreactrouter.js +5 -9
  7. package/dist/adapterremix.js +8 -17
  8. package/dist/adaptertanstack.js +6 -10
  9. package/dist/algolia.js +43 -21
  10. package/dist/analytics.d.ts +1 -1
  11. package/dist/analytics.js +16 -10
  12. package/dist/ansi.js +76 -37
  13. package/dist/api.d.ts +10 -10
  14. package/dist/api.js +14 -11
  15. package/dist/audit.d.ts +6 -6
  16. package/dist/audit.js +29 -10
  17. package/dist/autotype.js +20 -10
  18. package/dist/batch.d.ts +6 -6
  19. package/dist/batch.js +16 -9
  20. package/dist/changelog.js +28 -14
  21. package/dist/changelogutil.d.ts +4 -4
  22. package/dist/changelogutil.js +33 -13
  23. package/dist/cli.d.ts +6 -6
  24. package/dist/cli.js +7 -3
  25. package/dist/client.d.ts +1 -1
  26. package/dist/codesample.d.ts +4 -4
  27. package/dist/codesample.js +63 -24
  28. package/dist/collapse.js +31 -13
  29. package/dist/collections.js +36 -16
  30. package/dist/components/accordion.d.ts +1 -1
  31. package/dist/components/accordion.js +5 -1
  32. package/dist/components/alert.d.ts +1 -1
  33. package/dist/components/alert.js +24 -13
  34. package/dist/components/announce.js +40 -17
  35. package/dist/components/autofill.js +17 -7
  36. package/dist/components/avatar.js +4 -4
  37. package/dist/components/avatarstack.js +2 -2
  38. package/dist/components/backtotop.d.ts +1 -1
  39. package/dist/components/backtotop.js +17 -4
  40. package/dist/components/badge.js +9 -4
  41. package/dist/components/banner.js +22 -5
  42. package/dist/components/breadcrumb.js +11 -4
  43. package/dist/components/breadcrumbnav.js +37 -21
  44. package/dist/components/button.js +23 -8
  45. package/dist/components/callout.d.ts +1 -1
  46. package/dist/components/callout.js +33 -29
  47. package/dist/components/changelog.js +21 -8
  48. package/dist/components/checkbox.js +32 -19
  49. package/dist/components/code.d.ts +1 -1
  50. package/dist/components/code.js +6 -3
  51. package/dist/components/codeblock.js +157 -39
  52. package/dist/components/codecopy.d.ts +1 -1
  53. package/dist/components/codecopy.js +36 -13
  54. package/dist/components/codegroup.js +87 -25
  55. package/dist/components/collapsible.d.ts +1 -1
  56. package/dist/components/collapsible.js +5 -1
  57. package/dist/components/command.d.ts +1 -1
  58. package/dist/components/command.js +42 -15
  59. package/dist/components/compare.js +20 -8
  60. package/dist/components/content.js +121 -79
  61. package/dist/components/copybutton.d.ts +1 -1
  62. package/dist/components/copybutton.js +14 -7
  63. package/dist/components/countdown.js +9 -3
  64. package/dist/components/create.js +34 -24
  65. package/dist/components/definition.js +11 -4
  66. package/dist/components/diffview.js +63 -29
  67. package/dist/components/divider.js +5 -1
  68. package/dist/components/docheader.js +8 -1
  69. package/dist/components/doclinkcard.js +27 -3
  70. package/dist/components/dropdown.d.ts +1 -1
  71. package/dist/components/dropdown.js +32 -11
  72. package/dist/components/dynamiccode.js +5 -3
  73. package/dist/components/editlink.js +35 -23
  74. package/dist/components/embed.js +15 -7
  75. package/dist/components/endpoint.d.ts +3 -3
  76. package/dist/components/endpoint.js +24 -9
  77. package/dist/components/errormessage.d.ts +1 -1
  78. package/dist/components/errormessage.js +4 -1
  79. package/dist/components/expandcode.d.ts +1 -1
  80. package/dist/components/expandcode.js +6 -2
  81. package/dist/components/feature.js +8 -1
  82. package/dist/components/featuregrid.d.ts +4 -4
  83. package/dist/components/featuregrid.js +7 -1
  84. package/dist/components/feedback.js +6 -2
  85. package/dist/components/feedbackwidget.js +10 -4
  86. package/dist/components/files.d.ts +1 -1
  87. package/dist/components/files.js +52 -18
  88. package/dist/components/folder.d.ts +1 -1
  89. package/dist/components/folder.js +21 -4
  90. package/dist/components/footer.js +5 -1
  91. package/dist/components/formlabel.d.ts +1 -1
  92. package/dist/components/formlabel.js +31 -18
  93. package/dist/components/github.js +43 -14
  94. package/dist/components/graph.js +38 -14
  95. package/dist/components/heading.js +36 -29
  96. package/dist/components/headingcopy.js +13 -5
  97. package/dist/components/hero.js +20 -14
  98. package/dist/components/highlight.d.ts +2 -2
  99. package/dist/components/highlight.js +14 -8
  100. package/dist/components/hover.d.ts +2 -2
  101. package/dist/components/hover.js +11 -4
  102. package/dist/components/icons.js +4 -1
  103. package/dist/components/inlinetoc.js +3 -1
  104. package/dist/components/input.js +13 -3
  105. package/dist/components/install.js +34 -24
  106. package/dist/components/kbd.js +19 -11
  107. package/dist/components/langicon.d.ts +1 -1
  108. package/dist/components/langicon.js +22 -17
  109. package/dist/components/language.d.ts +1 -1
  110. package/dist/components/language.js +12 -4
  111. package/dist/components/lastupdated.d.ts +2 -2
  112. package/dist/components/lastupdated.js +36 -12
  113. package/dist/components/link.d.ts +1 -1
  114. package/dist/components/linkcard.js +3 -1
  115. package/dist/components/list.d.ts +1 -1
  116. package/dist/components/list.js +4 -1
  117. package/dist/components/math.js +33 -8
  118. package/dist/components/mermaid.js +3 -3
  119. package/dist/components/mobilenav.d.ts +2 -1
  120. package/dist/components/mobilenav.js +116 -47
  121. package/dist/components/modal.d.ts +1 -1
  122. package/dist/components/modal.js +9 -2
  123. package/dist/components/navlink.js +17 -3
  124. package/dist/components/openapi.d.ts +1 -1
  125. package/dist/components/openapi.js +102 -32
  126. package/dist/components/openapischema.d.ts +1 -1
  127. package/dist/components/openapischema.js +29 -9
  128. package/dist/components/openapitags.js +6 -2
  129. package/dist/components/pagetransition.js +5 -3
  130. package/dist/components/pagination.js +3 -2
  131. package/dist/components/panel.js +91 -15
  132. package/dist/components/playground.d.ts +1 -1
  133. package/dist/components/playground.js +153 -50
  134. package/dist/components/popover.js +9 -7
  135. package/dist/components/prelink.js +40 -9
  136. package/dist/components/prevnext.d.ts +1 -1
  137. package/dist/components/prevnext.js +36 -16
  138. package/dist/components/progress.js +2 -2
  139. package/dist/components/property.js +3 -1
  140. package/dist/components/quote.d.ts +2 -2
  141. package/dist/components/quote.js +32 -4
  142. package/dist/components/radio.js +36 -18
  143. package/dist/components/rating.js +14 -3
  144. package/dist/components/recent.d.ts +1 -1
  145. package/dist/components/recent.js +26 -10
  146. package/dist/components/responsive.js +21 -13
  147. package/dist/components/results.js +8 -4
  148. package/dist/components/screenshot.js +61 -21
  149. package/dist/components/scrollprogress.js +9 -5
  150. package/dist/components/scrollspy.d.ts +2 -2
  151. package/dist/components/scrollspy.js +9 -3
  152. package/dist/components/search.js +47 -18
  153. package/dist/components/searchbutton.js +3 -1
  154. package/dist/components/searchdialog.js +35 -22
  155. package/dist/components/searcher.d.ts +1 -1
  156. package/dist/components/searcher.js +51 -26
  157. package/dist/components/select.js +27 -13
  158. package/dist/components/shortcuts.d.ts +1 -1
  159. package/dist/components/shortcuts.js +57 -38
  160. package/dist/components/sidebar.d.ts +2 -1
  161. package/dist/components/sidebar.js +221 -56
  162. package/dist/components/sidebarfilter.d.ts +1 -1
  163. package/dist/components/sidebarfilter.js +30 -6
  164. package/dist/components/sidebarscript.d.ts +5 -0
  165. package/dist/components/sidebarscript.js +18 -0
  166. package/dist/components/skeleton.js +15 -3
  167. package/dist/components/spinner.js +13 -3
  168. package/dist/components/status.js +20 -8
  169. package/dist/components/steps.js +3 -1
  170. package/dist/components/switch.js +4 -4
  171. package/dist/components/table.js +37 -12
  172. package/dist/components/tabnav.d.ts +1 -1
  173. package/dist/components/tabnav.js +48 -36
  174. package/dist/components/tabs.d.ts +1 -1
  175. package/dist/components/tabs.js +56 -40
  176. package/dist/components/tag.js +8 -3
  177. package/dist/components/terminal.js +14 -4
  178. package/dist/components/textarea.js +96 -82
  179. package/dist/components/theme.d.ts +1 -1
  180. package/dist/components/theme.js +25 -3
  181. package/dist/components/themeprovider.d.ts +4 -4
  182. package/dist/components/themeprovider.js +16 -5
  183. package/dist/components/toast.d.ts +1 -1
  184. package/dist/components/toast.js +23 -14
  185. package/dist/components/toc/default.d.ts +1 -1
  186. package/dist/components/toc/default.js +28 -13
  187. package/dist/components/toc/hook.js +28 -14
  188. package/dist/components/toc/index.js +8 -4
  189. package/dist/components/toc/inline.js +12 -2
  190. package/dist/components/toc/minimal.js +11 -5
  191. package/dist/components/toc/zigzag.d.ts +1 -1
  192. package/dist/components/toc/zigzag.js +37 -17
  193. package/dist/components/tocprogress.d.ts +1 -1
  194. package/dist/components/tocprogress.js +66 -34
  195. package/dist/components/tooltip.d.ts +1 -1
  196. package/dist/components/tooltip.js +20 -8
  197. package/dist/components/trigger.js +13 -5
  198. package/dist/components/twoslash.js +49 -26
  199. package/dist/components/typetable.js +23 -4
  200. package/dist/components/typewriter.js +6 -2
  201. package/dist/components/version.js +40 -14
  202. package/dist/components/video.js +25 -15
  203. package/dist/components/zoom.js +6 -2
  204. package/dist/config.d.ts +2 -2
  205. package/dist/config.js +56 -30
  206. package/dist/content.d.ts +5 -5
  207. package/dist/content.js +121 -57
  208. package/dist/contentcache.d.ts +10 -10
  209. package/dist/contentcache.js +9 -5
  210. package/dist/contentdiff.d.ts +4 -4
  211. package/dist/contentdiff.js +16 -8
  212. package/dist/contributors.d.ts +4 -4
  213. package/dist/contributors.js +49 -19
  214. package/dist/diff.d.ts +6 -6
  215. package/dist/diff.js +37 -16
  216. package/dist/draft.d.ts +11 -11
  217. package/dist/draft.js +9 -5
  218. package/dist/env.js +21 -7
  219. package/dist/export.js +4 -4
  220. package/dist/frontmatter.js +11 -9
  221. package/dist/github.js +60 -30
  222. package/dist/gitsource.d.ts +1 -1
  223. package/dist/gitsource.js +16 -9
  224. package/dist/hash.d.ts +6 -6
  225. package/dist/hash.js +19 -7
  226. package/dist/highlight.d.ts +4 -4
  227. package/dist/highlight.js +34 -14
  228. package/dist/hooks/anchor.js +26 -14
  229. package/dist/hooks/arrownav.js +25 -7
  230. package/dist/hooks/async.js +3 -3
  231. package/dist/hooks/battery.js +11 -3
  232. package/dist/hooks/breakpoint.js +10 -2
  233. package/dist/hooks/clickoutside.js +10 -3
  234. package/dist/hooks/clipboard-paste.js +7 -3
  235. package/dist/hooks/clipboard.d.ts +2 -2
  236. package/dist/hooks/clipboard.js +21 -15
  237. package/dist/hooks/copy.js +11 -6
  238. package/dist/hooks/countdown.js +1 -1
  239. package/dist/hooks/counter.js +1 -1
  240. package/dist/hooks/escapekey.js +6 -1
  241. package/dist/hooks/eventlistener.js +3 -1
  242. package/dist/hooks/eventsource.js +4 -2
  243. package/dist/hooks/eyedropper.js +7 -3
  244. package/dist/hooks/favicon.js +1 -1
  245. package/dist/hooks/fetch.js +12 -4
  246. package/dist/hooks/focustrap.js +20 -8
  247. package/dist/hooks/focuswithin.js +6 -2
  248. package/dist/hooks/form.d.ts +2 -2
  249. package/dist/hooks/form.js +15 -2
  250. package/dist/hooks/fullscreen.js +1 -1
  251. package/dist/hooks/geolocation.js +8 -8
  252. package/dist/hooks/hotkeys.js +19 -7
  253. package/dist/hooks/hover.d.ts +4 -1
  254. package/dist/hooks/hover.js +3 -1
  255. package/dist/hooks/idle.js +13 -3
  256. package/dist/hooks/infinitescroll.js +4 -2
  257. package/dist/hooks/interval.js +3 -1
  258. package/dist/hooks/inview.js +7 -3
  259. package/dist/hooks/keyboard.js +36 -12
  260. package/dist/hooks/keypress.js +6 -2
  261. package/dist/hooks/list.js +11 -1
  262. package/dist/hooks/longpress.js +3 -3
  263. package/dist/hooks/map.js +1 -1
  264. package/dist/hooks/measure.js +16 -7
  265. package/dist/hooks/mediarecorder.js +7 -3
  266. package/dist/hooks/networkstate.js +4 -2
  267. package/dist/hooks/os.js +12 -4
  268. package/dist/hooks/pagination.js +6 -4
  269. package/dist/hooks/permission.js +6 -2
  270. package/dist/hooks/queue.js +4 -2
  271. package/dist/hooks/readprogress.js +6 -2
  272. package/dist/hooks/resizeobserver.js +6 -4
  273. package/dist/hooks/script.js +1 -1
  274. package/dist/hooks/scrolllock.js +6 -2
  275. package/dist/hooks/scrollspy.js +4 -2
  276. package/dist/hooks/selection.js +6 -3
  277. package/dist/hooks/share.js +18 -9
  278. package/dist/hooks/speechrecognition.js +7 -3
  279. package/dist/hooks/stepper.js +4 -4
  280. package/dist/hooks/storage.js +9 -3
  281. package/dist/hooks/stylesheet.js +4 -2
  282. package/dist/hooks/textselection.js +6 -3
  283. package/dist/hooks/throttle.js +6 -2
  284. package/dist/hooks/undoredo.js +19 -11
  285. package/dist/hooks/vibrate.js +3 -1
  286. package/dist/hooks/viewtransition.js +8 -4
  287. package/dist/hooks/wakelock.js +12 -7
  288. package/dist/hooks/websocket.js +4 -2
  289. package/dist/hooks/windowsize.js +2 -2
  290. package/dist/i18n.d.ts +2 -2
  291. package/dist/i18n.js +27 -14
  292. package/dist/index.d.ts +1 -0
  293. package/dist/index.js +1 -0
  294. package/dist/lastmodified.js +11 -5
  295. package/dist/linkcheck.d.ts +6 -6
  296. package/dist/linkcheck.js +55 -14
  297. package/dist/llms.js +20 -4
  298. package/dist/manifest.js +7 -7
  299. package/dist/mcp.js +28 -22
  300. package/dist/mdtoc.d.ts +4 -4
  301. package/dist/mdtoc.js +11 -5
  302. package/dist/mdxscope.d.ts +2 -2
  303. package/dist/mdxscope.js +3 -1
  304. package/dist/meta.js +19 -7
  305. package/dist/migrate.js +35 -25
  306. package/dist/navgen.d.ts +8 -8
  307. package/dist/navgen.js +73 -30
  308. package/dist/navtree.d.ts +1 -1
  309. package/dist/navtree.js +39 -19
  310. package/dist/oembed.d.ts +4 -4
  311. package/dist/oembed.js +24 -18
  312. package/dist/ogimage.d.ts +11 -11
  313. package/dist/ogimage.js +24 -24
  314. package/dist/openapi.js +60 -33
  315. package/dist/openapiguard.js +21 -11
  316. package/dist/openapiutil.js +66 -20
  317. package/dist/orama.js +52 -34
  318. package/dist/pipeline.d.ts +4 -4
  319. package/dist/pipeline.js +4 -4
  320. package/dist/preload.d.ts +2 -2
  321. package/dist/preload.js +4 -4
  322. package/dist/ranking.d.ts +6 -6
  323. package/dist/ranking.js +39 -13
  324. package/dist/readtime.js +3 -1
  325. package/dist/redirects.d.ts +2 -2
  326. package/dist/redirects.js +20 -12
  327. package/dist/rehype.js +16 -9
  328. package/dist/rehypeautolink.d.ts +2 -2
  329. package/dist/rehypeautolink.js +25 -23
  330. package/dist/rehypecode.js +38 -28
  331. package/dist/rehypecopy.js +17 -13
  332. package/dist/rehypeinline.js +33 -27
  333. package/dist/rehypelinks.js +28 -20
  334. package/dist/rehyperaw.js +9 -3
  335. package/dist/rehypeslug.d.ts +1 -1
  336. package/dist/rehypeslug.js +23 -19
  337. package/dist/rehypetablewrap.d.ts +2 -2
  338. package/dist/rehypetablewrap.js +9 -5
  339. package/dist/rehypetoc.d.ts +1 -1
  340. package/dist/rehypetoc.js +15 -7
  341. package/dist/remark.js +28 -13
  342. package/dist/remarkadmonition.js +40 -14
  343. package/dist/remarkannotation.d.ts +2 -2
  344. package/dist/remarkannotation.js +26 -10
  345. package/dist/remarkbadge.js +43 -31
  346. package/dist/remarkblockmath.js +29 -15
  347. package/dist/remarkcallout.js +32 -14
  348. package/dist/remarkcaption.js +28 -16
  349. package/dist/remarkcodetitle.js +29 -13
  350. package/dist/remarkcolumns.js +22 -10
  351. package/dist/remarkdetails.js +34 -14
  352. package/dist/remarkdirective.js +47 -20
  353. package/dist/remarkembed.js +38 -22
  354. package/dist/remarkfiletree.js +29 -19
  355. package/dist/remarkfootnote.js +46 -18
  356. package/dist/remarkgfm.js +13 -8
  357. package/dist/remarkheadingid.js +16 -6
  358. package/dist/remarkimage.js +54 -34
  359. package/dist/remarkinclude.js +20 -8
  360. package/dist/remarkinstall.js +20 -12
  361. package/dist/remarklinkcard.js +33 -14
  362. package/dist/remarkmath.js +34 -15
  363. package/dist/remarkmermaid.js +10 -6
  364. package/dist/remarkmeta.d.ts +2 -2
  365. package/dist/remarkmeta.js +15 -5
  366. package/dist/remarkreadingtime.d.ts +2 -2
  367. package/dist/remarkreadingtime.js +3 -1
  368. package/dist/remarksteps.js +26 -14
  369. package/dist/remarkstructure.js +16 -10
  370. package/dist/remarktabs.js +31 -14
  371. package/dist/remarktoc.js +40 -24
  372. package/dist/remarkts2js.js +51 -40
  373. package/dist/remarktwoslash.d.ts +4 -4
  374. package/dist/remarktwoslash.js +24 -14
  375. package/dist/remarkvideo.d.ts +4 -4
  376. package/dist/remarkvideo.js +42 -16
  377. package/dist/schema.d.ts +14 -14
  378. package/dist/schema.js +2 -2
  379. package/dist/search.js +106 -48
  380. package/dist/searchindex.js +86 -34
  381. package/dist/searchpolicy.js +1 -1
  382. package/dist/searchscore.js +5 -5
  383. package/dist/searchtypo.js +30 -10
  384. package/dist/seo.d.ts +2 -2
  385. package/dist/seo.js +14 -14
  386. package/dist/shortcodes.d.ts +4 -4
  387. package/dist/shortcodes.js +25 -20
  388. package/dist/sitemap.js +18 -8
  389. package/dist/snippets.js +26 -18
  390. package/dist/source.js +75 -41
  391. package/dist/stats.d.ts +4 -4
  392. package/dist/stats.js +18 -12
  393. package/dist/testing.d.ts +7 -7
  394. package/dist/testing.js +74 -29
  395. package/dist/themeutil.d.ts +6 -6
  396. package/dist/themeutil.js +145 -27
  397. package/dist/typegen.js +31 -12
  398. package/dist/validate.js +19 -7
  399. package/dist/validator.d.ts +11 -11
  400. package/dist/validator.js +68 -19
  401. package/dist/versioning.d.ts +7 -7
  402. package/dist/versioning.js +27 -11
  403. package/dist/watcher.js +39 -15
  404. package/dist/webhook.d.ts +6 -6
  405. package/dist/webhook.js +34 -12
  406. package/dist/workspace.js +26 -12
  407. package/package.json +137 -137
  408. package/styles/reset.css +1 -1
package/dist/migrate.js CHANGED
@@ -20,7 +20,9 @@ function convertAdmonitions(content) {
20
20
  result.push('<Callout type="danger">');
21
21
  } else if (/^:::\s*$/.test(line) && stack.length > 0) {
22
22
  const tag = stack.pop();
23
- if (!tag) continue;
23
+ if (!tag) {
24
+ continue;
25
+ }
24
26
  result.push(`</${tag}>`);
25
27
  } else {
26
28
  result.push(line);
@@ -30,45 +32,51 @@ function convertAdmonitions(content) {
30
32
  }
31
33
  const migrateDocusaurus = (content, _filepath) => {
32
34
  let out = content;
33
- out = out.replace(/^import\s+.*from\s+['"]@docusaurus\/.*['"];?\s*$/gm, "");
34
- out = out.replace(
35
+ out = out.replaceAll(
36
+ /^import\s+.*from\s+['"]@docusaurus\/.*['"];?\s*$/gm,
37
+ ""
38
+ );
39
+ out = out.replaceAll(
35
40
  /<TabItem\s+value="([^"]*)"(?:\s+label="([^"]*)")?>/g,
36
41
  '<Tab value="$1" label="$2">'
37
42
  );
38
- out = out.replace(/<\/TabItem>/g, "</Tab>");
39
- out = out.replace(/<CodeBlock(?:\s+language="([^"]*)")?\s*>/g, "```$1");
40
- out = out.replace(/<\/CodeBlock>/g, "```");
43
+ out = out.replaceAll("</TabItem>", "</Tab>");
44
+ out = out.replaceAll(/<CodeBlock(?:\s+language="([^"]*)")?\s*>/g, "```$1");
45
+ out = out.replaceAll("</CodeBlock>", "```");
41
46
  out = convertAdmonitions(out);
42
- out = out.replace(/^sidebar_position:\s*.*$/gm, "");
43
- out = out.replace(/^sidebar_label:\s*.*$/gm, "");
44
- out = out.replace(/\n{3,}/g, "\n\n");
47
+ out = out.replaceAll(/^sidebar_position:\s*.*$/gm, "");
48
+ out = out.replaceAll(/^sidebar_label:\s*.*$/gm, "");
49
+ out = out.replaceAll(/\n{3,}/g, "\n\n");
45
50
  return `${out.trim()}
46
51
  `;
47
52
  };
48
53
  const migrateNextra = (content, _filepath) => {
49
54
  let out = content;
50
- out = out.replace(/<Callout\s+type="([^"]*)"(?:\s+emoji="[^"]*")?>/g, '<Callout type="$1">');
51
- out = out.replace(/<Tabs\s+items=\{(\[.*?\])\}>/g, "<Tabs items={$1}>");
52
- out = out.replace(/<Tabs\.Tab>/g, "<Tab>");
53
- out = out.replace(/<\/Tabs\.Tab>/g, "</Tab>");
55
+ out = out.replaceAll(
56
+ /<Callout\s+type="([^"]*)"(?:\s+emoji="[^"]*")?>/g,
57
+ '<Callout type="$1">'
58
+ );
59
+ out = out.replaceAll(/<Tabs\s+items=\{(\[.*?\])\}>/g, "<Tabs items={$1}>");
60
+ out = out.replaceAll("<Tabs.Tab>", "<Tab>");
61
+ out = out.replaceAll("</Tabs.Tab>", "</Tab>");
54
62
  return `${out.trim()}
55
63
  `;
56
64
  };
57
65
  const migrateMintlify = (content, _filepath) => {
58
66
  let out = content;
59
- out = out.replace(/<CardGroup(?:\s+cols=\{(\d+)\})?>/g, "<Cards>");
60
- out = out.replace(/<\/CardGroup>/g, "</Cards>");
61
- out = out.replace(/^api:\s*.*$/gm, "");
62
- out = out.replace(/^openapi:\s*.*$/gm, "");
63
- out = out.replace(/^auth:\s*.*$/gm, "");
64
- out = out.replace(/\n{3,}/g, "\n\n");
67
+ out = out.replaceAll(/<CardGroup(?:\s+cols=\{(\d+)\})?>/g, "<Cards>");
68
+ out = out.replaceAll("</CardGroup>", "</Cards>");
69
+ out = out.replaceAll(/^api:\s*.*$/gm, "");
70
+ out = out.replaceAll(/^openapi:\s*.*$/gm, "");
71
+ out = out.replaceAll(/^auth:\s*.*$/gm, "");
72
+ out = out.replaceAll(/\n{3,}/g, "\n\n");
65
73
  return `${out.trim()}
66
74
  `;
67
75
  };
68
76
  const transforms = {
69
77
  docusaurus: migrateDocusaurus,
70
- nextra: migrateNextra,
71
- mintlify: migrateMintlify
78
+ mintlify: migrateMintlify,
79
+ nextra: migrateNextra
72
80
  };
73
81
  async function collectFiles(dir) {
74
82
  const results = [];
@@ -93,13 +101,15 @@ async function migrate(config) {
93
101
  const rel = relative(inputDir, filepath);
94
102
  const dest = join(outputDir, rel);
95
103
  try {
96
- const content = await readFile(filepath, "utf-8");
104
+ const content = await readFile(filepath, "utf8");
97
105
  const result = transform(content, filepath);
98
106
  await mkdir(dirname(dest), { recursive: true });
99
- await writeFile(dest, result, "utf-8");
107
+ await writeFile(dest, result, "utf8");
100
108
  count++;
101
- } catch (err) {
102
- warnings.push(`${rel}: ${err instanceof Error ? err.message : String(err)}`);
109
+ } catch (error) {
110
+ warnings.push(
111
+ `${rel}: ${error instanceof Error ? error.message : String(error)}`
112
+ );
103
113
  }
104
114
  }
105
115
  return { files: count, warnings };
package/dist/navgen.d.ts CHANGED
@@ -1,26 +1,26 @@
1
- type NavItem = {
1
+ interface NavItem {
2
2
  title: string;
3
3
  path: string;
4
4
  children?: NavItem[];
5
5
  order?: number;
6
6
  icon?: string;
7
- };
8
- type NavConfig = {
7
+ }
8
+ interface NavConfig {
9
9
  dir: string;
10
10
  extensions?: string[];
11
11
  orderFile?: string;
12
12
  titleFromFile?: boolean;
13
- };
14
- type NavTree = {
13
+ }
14
+ interface NavTree {
15
15
  items: NavItem[];
16
16
  flat: NavItem[];
17
- };
18
- type SidebarItem = {
17
+ }
18
+ interface SidebarItem {
19
19
  title: string;
20
20
  href: string;
21
21
  icon?: string;
22
22
  items?: SidebarItem[];
23
- };
23
+ }
24
24
  declare function generateNav(config: NavConfig): Promise<NavTree>;
25
25
  declare function sortNav(items: NavItem[]): NavItem[];
26
26
  declare function flattenNav(items: NavItem[]): NavItem[];
package/dist/navgen.js CHANGED
@@ -2,19 +2,27 @@ import { readdir, readFile } from 'node:fs/promises';
2
2
  import { join, relative, basename, extname } from 'node:path';
3
3
 
4
4
  function titleize(s) {
5
- return s.replace(/[-_]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
5
+ return s.replaceAll(/[-_]/g, " ").replaceAll(/\b\w/g, (c) => c.toUpperCase());
6
6
  }
7
7
  function isrecord(value) {
8
8
  return typeof value === "object" && value !== null;
9
9
  }
10
10
  function ismetaentry(value) {
11
- if (!isrecord(value)) return false;
12
- const title = value.title;
13
- const order = value.order;
14
- const icon = value.icon;
15
- if (title !== void 0 && typeof title !== "string") return false;
16
- if (order !== void 0 && typeof order !== "number") return false;
17
- if (icon !== void 0 && typeof icon !== "string") return false;
11
+ if (!isrecord(value)) {
12
+ return false;
13
+ }
14
+ const { title } = value;
15
+ const { order } = value;
16
+ const { icon } = value;
17
+ if (title !== void 0 && typeof title !== "string") {
18
+ return false;
19
+ }
20
+ if (order !== void 0 && typeof order !== "number") {
21
+ return false;
22
+ }
23
+ if (icon !== void 0 && typeof icon !== "string") {
24
+ return false;
25
+ }
18
26
  return true;
19
27
  }
20
28
  function parsejson(raw) {
@@ -26,16 +34,20 @@ function parsejson(raw) {
26
34
  }
27
35
  function parsemetats(raw) {
28
36
  const match = raw.match(/export\s+default\s+({[\s\S]*})/);
29
- if (!match) return null;
37
+ if (!match) {
38
+ return null;
39
+ }
30
40
  const body = match[1];
31
41
  return body ? parsejson(body) : null;
32
42
  }
33
43
  async function readMeta(dir) {
34
44
  for (const name of ["_meta.json", "_meta.ts"]) {
35
45
  try {
36
- const raw = await readFile(join(dir, name), "utf-8");
46
+ const raw = await readFile(join(dir, name), "utf8");
37
47
  const parsed = name.endsWith(".json") ? parsejson(raw) : parsemetats(raw);
38
- if (!isrecord(parsed)) return {};
48
+ if (!isrecord(parsed)) {
49
+ return {};
50
+ }
39
51
  const result = {};
40
52
  for (const [key, value] of Object.entries(parsed)) {
41
53
  if (typeof value === "string" || ismetaentry(value)) {
@@ -50,7 +62,7 @@ async function readMeta(dir) {
50
62
  }
51
63
  async function extractTitle(file) {
52
64
  try {
53
- const m = (await readFile(file, "utf-8")).match(/^#\s+(.+)$/m);
65
+ const m = (await readFile(file, "utf8")).match(/^#\s+(.+)$/m);
54
66
  const title = m?.[1];
55
67
  return title ? title.trim() : null;
56
68
  } catch {
@@ -62,34 +74,48 @@ function resolveMeta(meta, key, fallback) {
62
74
  const title = typeof e === "string" ? e : e?.title ?? fallback;
63
75
  const order = typeof e === "string" ? void 0 : e?.order;
64
76
  const icon = typeof e === "string" ? void 0 : e?.icon;
65
- return { title, order, icon };
77
+ return { icon, order, title };
66
78
  }
67
79
  async function scanDir(dir, root, exts, h1) {
68
80
  const entries = await readdir(dir, { withFileTypes: true });
69
81
  const meta = await readMeta(dir);
70
82
  const items = [];
71
83
  for (const entry of entries) {
72
- if (entry.name.startsWith("_") || entry.name.startsWith(".")) continue;
84
+ if (entry.name.startsWith("_") || entry.name.startsWith(".")) {
85
+ continue;
86
+ }
73
87
  const full = join(dir, entry.name);
74
- const rel = relative(root, full).replace(/\\/g, "/");
88
+ const rel = relative(root, full).replaceAll("\\", "/");
75
89
  if (entry.isDirectory()) {
76
90
  const children = await scanDir(full, root, exts, h1);
77
91
  const idx = children.find((c) => basename(c.path).startsWith("index"));
78
- const r2 = resolveMeta(meta, entry.name, idx?.title ?? titleize(entry.name));
92
+ const r2 = resolveMeta(
93
+ meta,
94
+ entry.name,
95
+ idx?.title ?? titleize(entry.name)
96
+ );
79
97
  items.push({
80
98
  ...r2,
81
- path: "/" + rel,
82
- children: children.filter((c) => !basename(c.path).startsWith("index"))
99
+ children: children.filter((c) => !basename(c.path).startsWith("index")),
100
+ path: "/" + rel
83
101
  });
84
102
  continue;
85
103
  }
86
104
  const ext = extname(entry.name);
87
- if (!exts.includes(ext)) continue;
105
+ if (!exts.includes(ext)) {
106
+ continue;
107
+ }
88
108
  const slug = rel.replace(new RegExp(`${ext}$`), "");
89
- const r = resolveMeta(meta, basename(entry.name, ext), titleize(basename(entry.name, ext)));
109
+ const r = resolveMeta(
110
+ meta,
111
+ basename(entry.name, ext),
112
+ titleize(basename(entry.name, ext))
113
+ );
90
114
  if (h1) {
91
115
  const t = await extractTitle(full);
92
- if (t) r.title = t;
116
+ if (t) {
117
+ r.title = t;
118
+ }
93
119
  }
94
120
  items.push({ ...r, path: "/" + slug });
95
121
  }
@@ -97,35 +123,48 @@ async function scanDir(dir, root, exts, h1) {
97
123
  }
98
124
  async function generateNav(config) {
99
125
  const exts = config.extensions ?? [".mdx", ".md"];
100
- const items = await scanDir(config.dir, config.dir, exts, config.titleFromFile ?? false);
101
- return { items, flat: flattenNav(items) };
126
+ const items = await scanDir(
127
+ config.dir,
128
+ config.dir,
129
+ exts,
130
+ config.titleFromFile ?? false
131
+ );
132
+ return { flat: flattenNav(items), items };
102
133
  }
103
134
  function sortNav(items) {
104
- return [...items].sort((a, b) => (a.order ?? 999) - (b.order ?? 999) || a.title.localeCompare(b.title)).map((i) => i.children ? { ...i, children: sortNav(i.children) } : i);
135
+ return [...items].sort(
136
+ (a, b) => (a.order ?? 999) - (b.order ?? 999) || a.title.localeCompare(b.title)
137
+ ).map((i) => i.children ? { ...i, children: sortNav(i.children) } : i);
105
138
  }
106
139
  function flattenNav(items) {
107
140
  const r = [];
108
141
  for (const i of items) {
109
142
  r.push(i);
110
- if (i.children) r.push(...flattenNav(i.children));
143
+ if (i.children) {
144
+ r.push(...flattenNav(i.children));
145
+ }
111
146
  }
112
147
  return r;
113
148
  }
114
149
  function findNavItem(items, path) {
115
150
  for (const i of items) {
116
- if (i.path === path) return i;
151
+ if (i.path === path) {
152
+ return i;
153
+ }
117
154
  if (i.children) {
118
155
  const f = findNavItem(i.children, path);
119
- if (f) return f;
156
+ if (f) {
157
+ return f;
158
+ }
120
159
  }
121
160
  }
122
161
  return void 0;
123
162
  }
124
163
  function navToSidebar(items) {
125
164
  return items.map((i) => ({
126
- title: i.title,
127
165
  href: i.path,
128
166
  icon: i.icon,
167
+ title: i.title,
129
168
  ...i.children?.length ? { items: navToSidebar(i.children) } : {}
130
169
  }));
131
170
  }
@@ -133,10 +172,14 @@ function breadcrumbFromPath(items, path) {
133
172
  function walk(cur, trail) {
134
173
  for (const i of cur) {
135
174
  const next = [...trail, i];
136
- if (i.path === path) return next;
175
+ if (i.path === path) {
176
+ return next;
177
+ }
137
178
  if (i.children) {
138
179
  const f = walk(i.children, next);
139
- if (f) return f;
180
+ if (f) {
181
+ return f;
182
+ }
140
183
  }
141
184
  }
142
185
  return null;
package/dist/navtree.d.ts CHANGED
@@ -21,8 +21,8 @@ declare function flattenNavTree(nodes: NavNode[]): NavNode[];
21
21
  declare function findNavNode(nodes: NavNode[], slug: string): NavNode | null;
22
22
  declare function getNavBreadcrumbs(nodes: NavNode[], slug: string): NavNode[];
23
23
  declare function getPrevNext(nodes: NavNode[], slug: string): {
24
- prev: NavNode | null;
25
24
  next: NavNode | null;
25
+ prev: NavNode | null;
26
26
  };
27
27
 
28
28
  export { type NavNode, type NavTreeConfig, buildNavTree, findNavNode, flattenNavTree, getNavBreadcrumbs, getPrevNext };
package/dist/navtree.js CHANGED
@@ -1,20 +1,22 @@
1
1
  function titleize(s) {
2
- return s.charAt(0).toUpperCase() + s.slice(1).replace(/-/g, " ");
2
+ return s.charAt(0).toUpperCase() + s.slice(1).replaceAll("-", " ");
3
3
  }
4
4
  function buildNavTree(config) {
5
5
  const { docs, basePath = "/docs" } = config;
6
6
  const root = [];
7
7
  const map = /* @__PURE__ */ new Map();
8
- const sorted = [...docs].sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
8
+ const sorted = [...docs].sort(
9
+ (a, b) => (a.order ?? 99) - (b.order ?? 99)
10
+ );
9
11
  for (const doc of sorted) {
10
12
  const segments = doc.slug.split("/").filter(Boolean);
11
13
  if (segments.length === 0) {
12
14
  const node = {
13
- title: doc.title,
14
- slug: doc.slug,
15
- href: basePath,
16
15
  children: [],
17
- order: doc.order
16
+ href: basePath,
17
+ order: doc.order,
18
+ slug: doc.slug,
19
+ title: doc.title
18
20
  };
19
21
  map.set("", node);
20
22
  root.push(node);
@@ -24,17 +26,19 @@ function buildNavTree(config) {
24
26
  let path = "";
25
27
  for (let i = 0; i < segments.length; i++) {
26
28
  const segment = segments[i];
27
- if (!segment) continue;
29
+ if (!segment) {
30
+ continue;
31
+ }
28
32
  path = path ? `${path}/${segment}` : segment;
29
33
  const isLast = i === segments.length - 1;
30
34
  let existing = map.get(path);
31
35
  if (!existing) {
32
36
  existing = {
33
- title: isLast ? doc.title : titleize(segment),
34
- slug: path,
35
- href: isLast ? `${basePath}/${path}` : void 0,
36
37
  children: [],
37
- order: isLast ? doc.order : void 0
38
+ href: isLast ? `${basePath}/${path}` : void 0,
39
+ order: isLast ? doc.order : void 0,
40
+ slug: path,
41
+ title: isLast ? doc.title : titleize(segment)
38
42
  };
39
43
  map.set(path, existing);
40
44
  parentChildren.push(existing);
@@ -48,7 +52,11 @@ function buildNavTree(config) {
48
52
  }
49
53
  function sortNodes(nodes) {
50
54
  nodes.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
51
- for (const node of nodes) if (node.children.length > 0) sortNodes(node.children);
55
+ for (const node of nodes) {
56
+ if (node.children.length > 0) {
57
+ sortNodes(node.children);
58
+ }
59
+ }
52
60
  }
53
61
  sortNodes(root);
54
62
  return root;
@@ -57,15 +65,21 @@ function flattenNavTree(nodes) {
57
65
  const result = [];
58
66
  for (const node of nodes) {
59
67
  result.push(node);
60
- if (node.children.length > 0) result.push(...flattenNavTree(node.children));
68
+ if (node.children.length > 0) {
69
+ result.push(...flattenNavTree(node.children));
70
+ }
61
71
  }
62
72
  return result;
63
73
  }
64
74
  function findNavNode(nodes, slug) {
65
75
  for (const node of nodes) {
66
- if (node.slug === slug) return node;
76
+ if (node.slug === slug) {
77
+ return node;
78
+ }
67
79
  const found = findNavNode(node.children, slug);
68
- if (found) return found;
80
+ if (found) {
81
+ return found;
82
+ }
69
83
  }
70
84
  return null;
71
85
  }
@@ -73,9 +87,13 @@ function getNavBreadcrumbs(nodes, slug) {
73
87
  function walk(current, path) {
74
88
  for (const node of current) {
75
89
  const next = [...path, node];
76
- if (node.slug === slug) return next;
90
+ if (node.slug === slug) {
91
+ return next;
92
+ }
77
93
  const found = walk(node.children, next);
78
- if (found) return found;
94
+ if (found) {
95
+ return found;
96
+ }
79
97
  }
80
98
  return null;
81
99
  }
@@ -84,10 +102,12 @@ function getNavBreadcrumbs(nodes, slug) {
84
102
  function getPrevNext(nodes, slug) {
85
103
  const flat = flattenNavTree(nodes).filter((n) => n.href);
86
104
  const i = flat.findIndex((n) => n.slug === slug);
87
- if (i === -1) return { prev: null, next: null };
105
+ if (i === -1) {
106
+ return { next: null, prev: null };
107
+ }
88
108
  const prev = i > 0 ? flat[i - 1] ?? null : null;
89
109
  const next = i < flat.length - 1 ? flat[i + 1] ?? null : null;
90
- return { prev, next };
110
+ return { next, prev };
91
111
  }
92
112
 
93
113
  export { buildNavTree, findNavNode, flattenNavTree, getNavBreadcrumbs, getPrevNext };
package/dist/oembed.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- type OembedData = {
1
+ interface OembedData {
2
2
  type: "video" | "rich" | "photo" | "link";
3
3
  title?: string;
4
4
  html?: string;
@@ -6,12 +6,12 @@ type OembedData = {
6
6
  height?: number;
7
7
  thumbnail?: string;
8
8
  provider?: string;
9
- };
10
- type OembedProvider = {
9
+ }
10
+ interface OembedProvider {
11
11
  name: string;
12
12
  pattern: RegExp;
13
13
  endpoint: string;
14
- };
14
+ }
15
15
  declare const providers: OembedProvider[];
16
16
  declare function resolve(url: string): Promise<OembedData | null>;
17
17
  declare function resolveMany(urls: string[]): Promise<Map<string, OembedData | null>>;
package/dist/oembed.js CHANGED
@@ -1,28 +1,28 @@
1
1
  const providers = [
2
2
  {
3
+ endpoint: "https://www.youtube.com/oembed",
3
4
  name: "YouTube",
4
- pattern: /(?:youtube\.com\/watch|youtu\.be\/)/,
5
- endpoint: "https://www.youtube.com/oembed"
5
+ pattern: /(?:youtube\.com\/watch|youtu\.be\/)/
6
6
  },
7
7
  {
8
+ endpoint: "https://vimeo.com/api/oembed.json",
8
9
  name: "Vimeo",
9
- pattern: /vimeo\.com\//,
10
- endpoint: "https://vimeo.com/api/oembed.json"
10
+ pattern: /vimeo\.com\//
11
11
  },
12
12
  {
13
+ endpoint: "https://publish.twitter.com/oembed",
13
14
  name: "Twitter",
14
- pattern: /(?:twitter\.com|x\.com)\//,
15
- endpoint: "https://publish.twitter.com/oembed"
15
+ pattern: /(?:twitter\.com|x\.com)\//
16
16
  },
17
17
  {
18
+ endpoint: "https://codepen.io/api/oembed",
18
19
  name: "CodePen",
19
- pattern: /codepen\.io\//,
20
- endpoint: "https://codepen.io/api/oembed"
20
+ pattern: /codepen\.io\//
21
21
  },
22
22
  {
23
+ endpoint: "https://codesandbox.io/oembed",
23
24
  name: "CodeSandbox",
24
- pattern: /codesandbox\.io\//,
25
- endpoint: "https://codesandbox.io/oembed"
25
+ pattern: /codesandbox\.io\//
26
26
  }
27
27
  ];
28
28
  function find(url) {
@@ -30,27 +30,33 @@ function find(url) {
30
30
  }
31
31
  async function resolve(url) {
32
32
  const provider = find(url);
33
- if (!provider) return null;
33
+ if (!provider) {
34
+ return null;
35
+ }
34
36
  try {
35
37
  const endpoint = `${provider.endpoint}?url=${encodeURIComponent(url)}&format=json`;
36
38
  const response = await fetch(endpoint);
37
- if (!response.ok) return null;
39
+ if (!response.ok) {
40
+ return null;
41
+ }
38
42
  const data = await response.json();
39
43
  return {
40
- type: data.type ?? "link",
41
- title: data.title,
42
- html: data.html,
43
- width: data.width,
44
44
  height: data.height,
45
+ html: data.html,
46
+ provider: provider.name,
45
47
  thumbnail: data.thumbnail_url,
46
- provider: provider.name
48
+ title: data.title,
49
+ type: data.type ?? "link",
50
+ width: data.width
47
51
  };
48
52
  } catch {
49
53
  return null;
50
54
  }
51
55
  }
52
56
  async function resolveMany(urls) {
53
- const entries = await Promise.all(urls.map(async (url) => [url, await resolve(url)]));
57
+ const entries = await Promise.all(
58
+ urls.map(async (url) => [url, await resolve(url)])
59
+ );
54
60
  return new Map(entries);
55
61
  }
56
62
  const urlPattern = /https?:\/\/[^\s)>\]]+/g;
package/dist/ogimage.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- type OgImageConfig = {
1
+ interface OgImageConfig {
2
2
  title: string;
3
3
  description?: string;
4
4
  siteName?: string;
@@ -7,29 +7,29 @@ type OgImageConfig = {
7
7
  accentColor?: string;
8
8
  width?: number;
9
9
  height?: number;
10
- };
11
- type OgImageMeta = {
10
+ }
11
+ interface OgImageMeta {
12
12
  url: string;
13
13
  width: number;
14
14
  height: number;
15
15
  alt: string;
16
16
  type: string;
17
- };
17
+ }
18
18
  declare function ogImageUrl(base: string, params: Record<string, string | undefined>): string;
19
19
  declare function generateOgMeta(base: string, config: OgImageConfig): OgImageMeta;
20
20
  declare function defaultTemplate(config: OgImageConfig): {
21
- title: string;
22
- description: string;
23
- siteName: string;
24
- logo: string;
25
- width: number;
26
- height: number;
27
21
  colors: {
22
+ accent: string;
28
23
  background: string;
29
24
  foreground: string;
30
25
  muted: string;
31
- accent: string;
32
26
  };
27
+ description: string;
28
+ height: number;
29
+ logo: string;
30
+ siteName: string;
31
+ title: string;
32
+ width: number;
33
33
  };
34
34
  type MetaTag = {
35
35
  property: string;