fromsrc 0.0.2 → 0.0.22

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 +18 -8
  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 +18 -5
  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 +35 -31
  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 +11 -7
  85. package/dist/components/feedbackwidget.js +18 -12
  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 +32 -24
  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 +5 -4
  131. package/dist/components/panel.js +92 -16
  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 +4 -2
  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 +36 -23
  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 +209 -64
  162. package/dist/components/sidebarfilter.d.ts +1 -1
  163. package/dist/components/sidebarfilter.js +33 -9
  164. package/dist/components/sidebarscript.d.ts +5 -0
  165. package/dist/components/sidebarscript.js +5 -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 +26 -4
  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/ansi.js CHANGED
@@ -1,4 +1,12 @@
1
1
  const ansiColors = {
2
+ 100: "#484f58",
3
+ 101: "#ff7b72",
4
+ 102: "#56d364",
5
+ 103: "#e3b341",
6
+ 104: "#79c0ff",
7
+ 105: "#d2a8ff",
8
+ 106: "#56d4dd",
9
+ 107: "#f0f6fc",
2
10
  30: "#000000",
3
11
  31: "#f85149",
4
12
  32: "#3fb950",
@@ -22,32 +30,24 @@ const ansiColors = {
22
30
  94: "#79c0ff",
23
31
  95: "#d2a8ff",
24
32
  96: "#56d4dd",
25
- 97: "#f0f6fc",
26
- 100: "#484f58",
27
- 101: "#ff7b72",
28
- 102: "#56d364",
29
- 103: "#e3b341",
30
- 104: "#79c0ff",
31
- 105: "#d2a8ff",
32
- 106: "#56d4dd",
33
- 107: "#f0f6fc"
33
+ 97: "#f0f6fc"
34
34
  };
35
35
  function parseAnsi(text) {
36
36
  const segments = [];
37
37
  const state = {
38
+ bg: null,
38
39
  bold: false,
39
40
  dim: false,
40
- italic: false,
41
- underline: false,
42
41
  fg: null,
43
- bg: null
42
+ italic: false,
43
+ underline: false
44
44
  };
45
45
  let current = "";
46
46
  let i = 0;
47
47
  while (i < text.length) {
48
48
  if (text[i] === "\x1B" && text[i + 1] === "[") {
49
49
  if (current) {
50
- segments.push({ text: current, style: { ...state } });
50
+ segments.push({ style: { ...state }, text: current });
51
51
  current = "";
52
52
  }
53
53
  let j = i + 2;
@@ -114,13 +114,30 @@ function parseAnsi(text) {
114
114
  }
115
115
  }
116
116
  if (current) {
117
- segments.push({ text: current, style: { ...state } });
117
+ segments.push({ style: { ...state }, text: current });
118
118
  }
119
119
  return segments;
120
120
  }
121
121
  function ansi256ToHex(n) {
122
122
  if (n < 16) {
123
- const basic = [0, 128, 0, 128, 0, 128, 0, 192, 128, 255, 0, 255, 0, 255, 0, 255];
123
+ const basic = [
124
+ 0,
125
+ 128,
126
+ 0,
127
+ 128,
128
+ 0,
129
+ 128,
130
+ 0,
131
+ 192,
132
+ 128,
133
+ 255,
134
+ 0,
135
+ 255,
136
+ 0,
137
+ 255,
138
+ 0,
139
+ 255
140
+ ];
124
141
  const r = basic[n * 3] || 0;
125
142
  const g = basic[n * 3 + 1] || 0;
126
143
  const b = basic[n * 3 + 2] || 0;
@@ -139,33 +156,49 @@ function ansi256ToHex(n) {
139
156
  }
140
157
  function transformerAnsi() {
141
158
  return {
142
- name: "ansi",
143
- preprocess(code, options) {
144
- if (options.lang === "ansi" || options.lang === "terminal") {
145
- return code;
146
- }
147
- },
148
159
  code(node) {
149
- const lang = this.options.lang;
150
- if (lang !== "ansi" && lang !== "terminal") return;
160
+ const { lang } = this.options;
161
+ if (lang !== "ansi" && lang !== "terminal") {
162
+ return;
163
+ }
151
164
  const lines = node.children;
152
- if (!Array.isArray(lines)) return;
165
+ if (!Array.isArray(lines)) {
166
+ return;
167
+ }
153
168
  for (let i = 0; i < lines.length; i++) {
154
169
  const line = lines[i];
155
- if (!line || line.type !== "element") continue;
170
+ if (!line || line.type !== "element") {
171
+ continue;
172
+ }
156
173
  const textNode = line.children[0];
157
- if (!textNode || textNode.type !== "text") continue;
174
+ if (!textNode || textNode.type !== "text") {
175
+ continue;
176
+ }
158
177
  const text = textNode.value;
159
178
  const segments = parseAnsi(text);
160
- if (segments.length === 0) continue;
179
+ if (segments.length === 0) {
180
+ continue;
181
+ }
161
182
  line.children = segments.map((seg) => {
162
183
  const styles = [];
163
- if (seg.style.fg) styles.push(`color: ${seg.style.fg}`);
164
- if (seg.style.bg) styles.push(`background-color: ${seg.style.bg}`);
165
- if (seg.style.bold) styles.push("font-weight: bold");
166
- if (seg.style.dim) styles.push("opacity: 0.5");
167
- if (seg.style.italic) styles.push("font-style: italic");
168
- if (seg.style.underline) styles.push("text-decoration: underline");
184
+ if (seg.style.fg) {
185
+ styles.push(`color: ${seg.style.fg}`);
186
+ }
187
+ if (seg.style.bg) {
188
+ styles.push(`background-color: ${seg.style.bg}`);
189
+ }
190
+ if (seg.style.bold) {
191
+ styles.push("font-weight: bold");
192
+ }
193
+ if (seg.style.dim) {
194
+ styles.push("opacity: 0.5");
195
+ }
196
+ if (seg.style.italic) {
197
+ styles.push("font-style: italic");
198
+ }
199
+ if (seg.style.underline) {
200
+ styles.push("text-decoration: underline");
201
+ }
169
202
  if (styles.length === 0) {
170
203
  return {
171
204
  type: "text",
@@ -173,18 +206,24 @@ function transformerAnsi() {
173
206
  };
174
207
  }
175
208
  return {
176
- type: "element",
177
- tagName: "span",
178
- properties: { style: styles.join("; ") },
179
209
  children: [
180
210
  {
181
211
  type: "text",
182
212
  value: seg.text
183
213
  }
184
- ]
214
+ ],
215
+ properties: { style: styles.join("; ") },
216
+ tagName: "span",
217
+ type: "element"
185
218
  };
186
219
  });
187
220
  }
221
+ },
222
+ name: "ansi",
223
+ preprocess(code, options) {
224
+ if (options.lang === "ansi" || options.lang === "terminal") {
225
+ return code;
226
+ }
188
227
  }
189
228
  };
190
229
  }
package/dist/api.d.ts CHANGED
@@ -1,25 +1,25 @@
1
- type ApiResponse<T> = {
1
+ interface ApiResponse<T> {
2
2
  data: T;
3
3
  status: number;
4
- };
5
- type ApiError = {
4
+ }
5
+ interface ApiError {
6
6
  error: string;
7
7
  status: number;
8
- };
9
- type CorsConfig = {
8
+ }
9
+ interface CorsConfig {
10
10
  origins?: string[];
11
11
  methods?: string[];
12
12
  headers?: string[];
13
- };
14
- type RateLimitConfig = {
13
+ }
14
+ interface RateLimitConfig {
15
15
  windowMs: number;
16
16
  maxRequests: number;
17
- };
18
- type RateLimitResult = {
17
+ }
18
+ interface RateLimitResult {
19
19
  allowed: boolean;
20
20
  remaining: number;
21
21
  resetAt: number;
22
- };
22
+ }
23
23
  declare function json<T>(data: T, status?: number, headers?: HeadersInit): Response;
24
24
  declare function error(message: string, status?: number): Response;
25
25
  declare function cors(config?: CorsConfig): Record<string, string>;
package/dist/api.js CHANGED
@@ -7,14 +7,14 @@ function json(data, status = 200, headers) {
7
7
  next.set("Content-Type", "application/json");
8
8
  }
9
9
  return new Response(JSON.stringify(data), {
10
- status,
11
- headers: next
10
+ headers: next,
11
+ status
12
12
  });
13
13
  }
14
14
  function error(message, status = 500) {
15
15
  return new Response(JSON.stringify({ error: message }), {
16
- status,
17
- headers: { "Content-Type": "application/json" }
16
+ headers: { "Content-Type": "application/json" },
17
+ status
18
18
  });
19
19
  }
20
20
  function cors(config) {
@@ -24,9 +24,9 @@ function cors(config) {
24
24
  }
25
25
  const origin = config?.origins && config.origins.length > 0 ? config.origins.join(", ") : "*";
26
26
  return {
27
- "Access-Control-Allow-Origin": origin,
27
+ "Access-Control-Allow-Headers": config?.headers?.join(", ") ?? DEFAULT_HEADERS,
28
28
  "Access-Control-Allow-Methods": config?.methods?.join(", ") ?? DEFAULT_METHODS,
29
- "Access-Control-Allow-Headers": config?.headers?.join(", ") ?? DEFAULT_HEADERS
29
+ "Access-Control-Allow-Origin": origin
30
30
  };
31
31
  }
32
32
  function withCors(response, config) {
@@ -35,19 +35,22 @@ function withCors(response, config) {
35
35
  headers.set(key, value);
36
36
  }
37
37
  return new Response(response.body, {
38
+ headers,
38
39
  status: response.status,
39
- statusText: response.statusText,
40
- headers
40
+ statusText: response.statusText
41
41
  });
42
42
  }
43
43
  function cache(response, maxAge, stale) {
44
44
  const headers = new Headers(response.headers);
45
45
  const staleAge = stale ?? maxAge;
46
- headers.set("Cache-Control", `public, max-age=${maxAge}, stale-while-revalidate=${staleAge}`);
46
+ headers.set(
47
+ "Cache-Control",
48
+ `public, max-age=${maxAge}, stale-while-revalidate=${staleAge}`
49
+ );
47
50
  return new Response(response.body, {
51
+ headers,
48
52
  status: response.status,
49
- statusText: response.statusText,
50
- headers
53
+ statusText: response.statusText
51
54
  });
52
55
  }
53
56
  function rateLimiter(config) {
package/dist/audit.d.ts CHANGED
@@ -1,18 +1,18 @@
1
- type AuditConfig = {
1
+ interface AuditConfig {
2
2
  docsDir: string;
3
3
  maxAge?: number;
4
4
  requiredFields?: string[];
5
- };
6
- type AuditIssue = {
5
+ }
6
+ interface AuditIssue {
7
7
  file: string;
8
8
  type: "stale" | "missing-field" | "empty" | "short" | "no-headings" | "orphan";
9
9
  message: string;
10
- };
11
- type AuditResult = {
10
+ }
11
+ interface AuditResult {
12
12
  total: number;
13
13
  issues: AuditIssue[];
14
14
  score: number;
15
- };
15
+ }
16
16
  declare function audit(config: AuditConfig): Promise<AuditResult>;
17
17
  declare function formatAudit(result: AuditResult): string;
18
18
 
package/dist/audit.js CHANGED
@@ -3,10 +3,14 @@ import { relative, join } from 'node:path';
3
3
 
4
4
  function parsefrontmatter(raw) {
5
5
  const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---/);
6
- if (!match) return { fields: {}, body: raw };
6
+ if (!match) {
7
+ return { body: raw, fields: {} };
8
+ }
7
9
  const full = match[0];
8
10
  const section = match[1];
9
- if (!full || section === void 0) return { fields: {}, body: raw };
11
+ if (!full || section === void 0) {
12
+ return { body: raw, fields: {} };
13
+ }
10
14
  const body = raw.slice(full.length).trim();
11
15
  const fields = {};
12
16
  for (const line of section.split("\n")) {
@@ -15,7 +19,7 @@ function parsefrontmatter(raw) {
15
19
  fields[line.slice(0, idx).trim()] = line.slice(idx + 1).trim();
16
20
  }
17
21
  }
18
- return { fields, body };
22
+ return { body, fields };
19
23
  }
20
24
  async function gather(dir) {
21
25
  const results = [];
@@ -39,30 +43,45 @@ async function audit(config) {
39
43
  const threshold = maxAge * 864e5;
40
44
  for (const filepath of files) {
41
45
  const rel = relative(config.docsDir, filepath);
42
- const [raw, info] = await Promise.all([readFile(filepath, "utf-8"), stat(filepath)]);
46
+ const [raw, info] = await Promise.all([
47
+ readFile(filepath, "utf8"),
48
+ stat(filepath)
49
+ ]);
43
50
  if (now - info.mtimeMs > threshold) {
44
- issues.push({ file: rel, type: "stale", message: `modified over ${maxAge} days ago` });
51
+ issues.push({
52
+ file: rel,
53
+ message: `modified over ${maxAge} days ago`,
54
+ type: "stale"
55
+ });
45
56
  }
46
57
  const { fields, body } = parsefrontmatter(raw);
47
58
  for (const field of required) {
48
59
  if (!fields[field]) {
49
- issues.push({ file: rel, type: "missing-field", message: `missing ${field}` });
60
+ issues.push({
61
+ file: rel,
62
+ message: `missing ${field}`,
63
+ type: "missing-field"
64
+ });
50
65
  }
51
66
  }
52
67
  if (body.length < 10) {
53
- issues.push({ file: rel, type: "empty", message: "content is empty" });
68
+ issues.push({ file: rel, message: "content is empty", type: "empty" });
54
69
  }
55
70
  const words = body.split(/\s+/).filter(Boolean).length;
56
71
  if (words < 100) {
57
- issues.push({ file: rel, type: "short", message: `only ${words} words` });
72
+ issues.push({ file: rel, message: `only ${words} words`, type: "short" });
58
73
  }
59
74
  if (!/^##\s/m.test(body)) {
60
- issues.push({ file: rel, type: "no-headings", message: "no headings found" });
75
+ issues.push({
76
+ file: rel,
77
+ message: "no headings found",
78
+ type: "no-headings"
79
+ });
61
80
  }
62
81
  }
63
82
  const total = files.length;
64
83
  const score = total === 0 ? 100 : Math.max(0, Math.min(100, 100 - issues.length / total * 100));
65
- return { total, issues, score: Math.round(score) };
84
+ return { issues, score: Math.round(score), total };
66
85
  }
67
86
  function formatAudit(result) {
68
87
  const lines = [
package/dist/autotype.js CHANGED
@@ -3,14 +3,14 @@ import { readFile } from 'node:fs/promises';
3
3
  const BLOCK_PATTERN = /(?:\/\*\*\s*([\s\S]*?)\s*\*\/\s*)?(?:export\s+)?(?:interface|type)\s+(\w+)(?:<[^>]*>)?(?:\s*=\s*\{|\s*(?:extends\s+([\w\s,<>]+))?\s*\{)([\s\S]*?)\n\}/g;
4
4
  const PROP_PATTERN = /(?:\/\*\*\s*([\s\S]*?)\s*\*\/\s*)?(?:readonly\s+)?(\w+)(\??)\s*:\s*([^;\n]+)/g;
5
5
  function clean(raw) {
6
- return raw.replace(/^\s*\*\s?/gm, "").replace(/@default\s+.*/g, "").trim();
6
+ return raw.replaceAll(/^\s*\*\s?/gm, "").replaceAll(/@default\s+.*/g, "").trim();
7
7
  }
8
8
  function extractDefault(raw) {
9
9
  const match = raw.match(/@default\s+(.+)/);
10
10
  return match?.[1]?.trim();
11
11
  }
12
12
  function normalizeType(raw) {
13
- return raw.replace(/\s+/g, " ").trim();
13
+ return raw.replaceAll(/\s+/g, " ").trim();
14
14
  }
15
15
  function parseExtends(raw) {
16
16
  return raw.split(",").map((s) => s.replace(/<.*>/, "").trim());
@@ -24,17 +24,23 @@ function parseProperties(body) {
24
24
  const name = match[2];
25
25
  const optional = match[3];
26
26
  const rawType = match[4];
27
- if (!name || optional === void 0 || !rawType) continue;
27
+ if (!name || optional === void 0 || !rawType) {
28
+ continue;
29
+ }
28
30
  const property = {
29
31
  name,
30
- type: normalizeType(rawType),
31
- required: optional !== "?"
32
+ required: optional !== "?",
33
+ type: normalizeType(rawType)
32
34
  };
33
35
  if (jsdoc) {
34
36
  const description = clean(jsdoc);
35
- if (description) property.description = description;
37
+ if (description) {
38
+ property.description = description;
39
+ }
36
40
  const def = extractDefault(jsdoc);
37
- if (def) property.default = def;
41
+ if (def) {
42
+ property.default = def;
43
+ }
38
44
  }
39
45
  properties.push(property);
40
46
  }
@@ -49,14 +55,18 @@ function parseTypes(source) {
49
55
  const name = match[2];
50
56
  const extendsClause = match[3];
51
57
  const body = match[4];
52
- if (!name || !body) continue;
58
+ if (!name || !body) {
59
+ continue;
60
+ }
53
61
  const definition = {
54
62
  name,
55
63
  properties: parseProperties(body)
56
64
  };
57
65
  if (jsdoc) {
58
66
  const description = clean(jsdoc);
59
- if (description) definition.description = description;
67
+ if (description) {
68
+ definition.description = description;
69
+ }
60
70
  }
61
71
  if (extendsClause) {
62
72
  definition.extends = parseExtends(extendsClause);
@@ -66,7 +76,7 @@ function parseTypes(source) {
66
76
  return definitions;
67
77
  }
68
78
  async function parseTypeFile(filePath) {
69
- const source = await readFile(filePath, "utf-8");
79
+ const source = await readFile(filePath, "utf8");
70
80
  return parseTypes(source);
71
81
  }
72
82
 
package/dist/batch.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- type BatchConfig = {
1
+ interface BatchConfig {
2
2
  concurrency?: number;
3
3
  onProgress?: (done: number, total: number) => void;
4
- };
5
- type BatchResult<T> = {
4
+ }
5
+ interface BatchResult<T> {
6
6
  results: T[];
7
7
  errors: BatchError[];
8
8
  duration: number;
9
- };
10
- type BatchError = {
9
+ }
10
+ interface BatchError {
11
11
  index: number;
12
12
  error: string;
13
- };
13
+ }
14
14
  declare function batch<TItem, TResult>(items: TItem[], fn: (item: TItem, index: number) => Promise<TResult>, config?: BatchConfig): Promise<BatchResult<TResult>>;
15
15
  declare function batchFiles<T>(dir: string, fn: (path: string, content: string) => Promise<T>, config?: BatchConfig): Promise<BatchResult<T>>;
16
16
  declare function mapFiles(dir: string, transform: (content: string, path: string) => string, config?: BatchConfig): Promise<{
package/dist/batch.js CHANGED
@@ -16,25 +16,32 @@ async function batch(items, fn, config) {
16
16
  while (cursor < items.length) {
17
17
  const i = cursor++;
18
18
  const item = items[i];
19
- if (item === void 0) continue;
19
+ if (item === void 0) {
20
+ continue;
21
+ }
20
22
  try {
21
23
  results[i] = await fn(item, i);
22
- } catch (e) {
23
- errors.push({ index: i, error: e instanceof Error ? e.message : String(e) });
24
+ } catch (error) {
25
+ errors.push({
26
+ error: error instanceof Error ? error.message : String(error),
27
+ index: i
28
+ });
24
29
  }
25
30
  done++;
26
31
  config?.onProgress?.(done, items.length);
27
32
  }
28
33
  }
29
- await Promise.all(Array.from({ length: Math.min(limit, items.length) }, () => next()));
30
- return { results, errors, duration: performance.now() - start };
34
+ await Promise.all(
35
+ Array.from({ length: Math.min(limit, items.length) }, () => next())
36
+ );
37
+ return { duration: performance.now() - start, errors, results };
31
38
  }
32
39
  async function batchFiles(dir, fn, config) {
33
40
  const paths = await collect(dir);
34
41
  return batch(
35
42
  paths,
36
43
  async (p) => {
37
- const content = await readFile(p, "utf-8");
44
+ const content = await readFile(p, "utf8");
38
45
  return fn(p, content);
39
46
  },
40
47
  config
@@ -46,10 +53,10 @@ async function mapFiles(dir, transform, config) {
46
53
  await batch(
47
54
  paths,
48
55
  async (p) => {
49
- const original = await readFile(p, "utf-8");
56
+ const original = await readFile(p, "utf8");
50
57
  const result = transform(original, p);
51
58
  if (result !== original) {
52
- await writeFile(p, result, "utf-8");
59
+ await writeFile(p, result, "utf8");
53
60
  modified++;
54
61
  }
55
62
  },
@@ -60,7 +67,7 @@ async function mapFiles(dir, transform, config) {
60
67
  async function forEachDoc(dir, fn) {
61
68
  const paths = await collect(dir);
62
69
  for (const p of paths) {
63
- const content = await readFile(p, "utf-8");
70
+ const content = await readFile(p, "utf8");
64
71
  await fn(p, content);
65
72
  }
66
73
  }
package/dist/changelog.js CHANGED
@@ -1,18 +1,26 @@
1
1
  const sectionMap = {
2
2
  added: "added",
3
3
  changed: "changed",
4
+ deprecated: "deprecated",
4
5
  fixed: "fixed",
5
6
  removed: "removed",
6
- deprecated: "deprecated",
7
7
  security: "security"
8
8
  };
9
9
  function detectType(version, previous) {
10
- if (version.includes("-")) return "prerelease";
11
- if (!previous) return "major";
10
+ if (version.includes("-")) {
11
+ return "prerelease";
12
+ }
13
+ if (!previous) {
14
+ return "major";
15
+ }
12
16
  const [ma, mi, pa] = version.split(".").map(Number);
13
17
  const [pma, pmi] = previous.split(".").map(Number);
14
- if (ma !== pma) return "major";
15
- if (mi !== pmi) return "minor";
18
+ if (ma !== pma) {
19
+ return "major";
20
+ }
21
+ if (mi !== pmi) {
22
+ return "minor";
23
+ }
16
24
  return "patch";
17
25
  }
18
26
  function detectBreaking(items) {
@@ -23,10 +31,14 @@ function parseChangelog(content) {
23
31
  const blocks = content.split(/^## /m).slice(1);
24
32
  for (const block of blocks) {
25
33
  const header = block.match(/^\[([^\]]+)\]\s*-\s*(\S+)(.*)/);
26
- if (!header) continue;
34
+ if (!header) {
35
+ continue;
36
+ }
27
37
  const version = header[1];
28
38
  const date = header[2];
29
- if (!version || !date) continue;
39
+ if (!version || !date) {
40
+ continue;
41
+ }
30
42
  const rest = header[3] ?? "";
31
43
  const title = rest.trim() || void 0;
32
44
  const items = [];
@@ -42,31 +54,33 @@ function parseChangelog(content) {
42
54
  if (item && currentType) {
43
55
  const description = item[1];
44
56
  if (description) {
45
- items.push({ type: currentType, description: description.trim() });
57
+ items.push({ description: description.trim(), type: currentType });
46
58
  }
47
59
  }
48
60
  }
49
61
  entries.push({
50
- version,
62
+ breaking: detectBreaking(items),
51
63
  date,
52
- title,
53
64
  description: items.map((i) => i.description).join(", "),
65
+ items,
66
+ title,
54
67
  type: "patch",
55
- breaking: detectBreaking(items),
56
- items
68
+ version
57
69
  });
58
70
  }
59
71
  entries.sort((a, b) => b.date.localeCompare(a.date));
60
72
  for (let i = 0; i < entries.length; i++) {
61
73
  const entry = entries[i];
62
- if (!entry) continue;
74
+ if (!entry) {
75
+ continue;
76
+ }
63
77
  const prev = entries[i + 1];
64
78
  entry.type = detectType(entry.version, prev?.version);
65
79
  }
66
80
  return entries;
67
81
  }
68
82
  function escape(s) {
69
- return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
83
+ return s.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
70
84
  }
71
85
  function generateChangelogRss(config, entries) {
72
86
  const items = entries.map(
@@ -1,16 +1,16 @@
1
- type ChangelogEntry = {
1
+ interface ChangelogEntry {
2
2
  version: string;
3
3
  date: string;
4
4
  changes: {
5
5
  type: string;
6
6
  items: string[];
7
7
  }[];
8
- };
9
- type ChangelogData = {
8
+ }
9
+ interface ChangelogData {
10
10
  title?: string;
11
11
  description?: string;
12
12
  entries: ChangelogEntry[];
13
- };
13
+ }
14
14
  declare function parseChangelog(content: string): ChangelogData;
15
15
  declare function formatChangelog(data: ChangelogData): string;
16
16
  declare function getLatestVersion(data: ChangelogData): ChangelogEntry | undefined;