fromsrc 0.0.0 → 0.0.1

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 (683) hide show
  1. package/dist/access.d.ts +23 -0
  2. package/dist/access.js +54 -0
  3. package/dist/adapter.d.ts +31 -0
  4. package/dist/adapter.js +59 -0
  5. package/dist/adapterastro.d.ts +6 -0
  6. package/dist/adapterastro.js +6 -0
  7. package/dist/adapterbrowser.d.ts +6 -0
  8. package/dist/adapterbrowser.js +38 -0
  9. package/dist/adapternext.d.ts +6 -0
  10. package/dist/adapternext.js +49 -0
  11. package/dist/adapterreactrouter.d.ts +6 -0
  12. package/dist/adapterreactrouter.js +37 -0
  13. package/dist/adapterremix.d.ts +6 -0
  14. package/dist/adapterremix.js +41 -0
  15. package/dist/adaptertanstack.d.ts +6 -0
  16. package/dist/adaptertanstack.js +38 -0
  17. package/dist/adaptervite.d.ts +6 -0
  18. package/dist/adaptervite.js +6 -0
  19. package/dist/algolia.d.ts +16 -0
  20. package/dist/algolia.js +83 -0
  21. package/dist/analytics.d.ts +31 -0
  22. package/dist/analytics.js +61 -0
  23. package/dist/ansi.d.ts +5 -0
  24. package/dist/ansi.js +192 -0
  25. package/dist/api.d.ts +30 -0
  26. package/dist/api.js +75 -0
  27. package/dist/astro.d.ts +3 -0
  28. package/dist/astro.js +3 -0
  29. package/dist/audit.d.ts +19 -0
  30. package/dist/audit.js +78 -0
  31. package/dist/autotype.d.ts +17 -0
  32. package/dist/autotype.js +73 -0
  33. package/dist/batch.d.ts +22 -0
  34. package/dist/batch.js +68 -0
  35. package/dist/browser.d.ts +5 -0
  36. package/dist/browser.js +53 -0
  37. package/dist/changelog.d.ts +27 -0
  38. package/dist/changelog.js +87 -0
  39. package/dist/changelogutil.d.ts +20 -0
  40. package/dist/changelogutil.js +84 -0
  41. package/dist/cli.d.ts +24 -0
  42. package/dist/cli.js +76 -0
  43. package/dist/client.d.ts +212 -0
  44. package/dist/client.js +202 -0
  45. package/dist/codesample.d.ts +20 -0
  46. package/dist/codesample.js +115 -0
  47. package/dist/collapse.d.ts +5 -0
  48. package/dist/collapse.js +101 -0
  49. package/dist/collections.d.ts +32 -0
  50. package/dist/collections.js +82 -0
  51. package/dist/components/accordion.d.ts +22 -0
  52. package/dist/components/accordion.js +54 -0
  53. package/dist/components/alert.d.ts +18 -0
  54. package/dist/components/alert.js +30 -0
  55. package/dist/components/announce.d.ts +11 -0
  56. package/dist/components/announce.js +38 -0
  57. package/dist/components/autofill.d.ts +27 -0
  58. package/dist/components/autofill.js +152 -0
  59. package/dist/components/avatar.d.ts +42 -0
  60. package/dist/components/avatar.js +67 -0
  61. package/dist/components/avatarstack.d.ts +23 -0
  62. package/dist/components/avatarstack.js +54 -0
  63. package/dist/components/backtotop.d.ts +20 -0
  64. package/dist/components/backtotop.js +42 -0
  65. package/dist/components/badge.d.ts +17 -0
  66. package/dist/components/badge.js +25 -0
  67. package/dist/components/banner.d.ts +21 -0
  68. package/dist/components/banner.js +63 -0
  69. package/dist/components/breadcrumb.d.ts +25 -0
  70. package/dist/components/breadcrumb.js +35 -0
  71. package/dist/components/breadcrumbnav.d.ts +15 -0
  72. package/dist/components/breadcrumbnav.js +60 -0
  73. package/dist/components/button.d.ts +22 -0
  74. package/dist/components/button.js +47 -0
  75. package/dist/components/callout.d.ts +26 -0
  76. package/dist/components/callout.js +91 -0
  77. package/dist/components/cards.d.ts +34 -0
  78. package/dist/components/cards.js +24 -0
  79. package/dist/components/changelog.d.ts +34 -0
  80. package/dist/components/changelog.js +50 -0
  81. package/dist/components/checkbox.d.ts +26 -0
  82. package/dist/components/checkbox.js +80 -0
  83. package/dist/components/code.d.ts +27 -0
  84. package/dist/components/code.js +36 -0
  85. package/dist/components/codeblock.d.ts +12 -0
  86. package/dist/components/codeblock.js +102 -0
  87. package/dist/components/codecopy.d.ts +12 -0
  88. package/dist/components/codecopy.js +56 -0
  89. package/dist/components/codegroup.d.ts +22 -0
  90. package/dist/components/codegroup.js +134 -0
  91. package/dist/components/collapsible.d.ts +29 -0
  92. package/dist/components/collapsible.js +64 -0
  93. package/dist/components/command.d.ts +22 -0
  94. package/dist/components/command.js +138 -0
  95. package/dist/components/compare.d.ts +54 -0
  96. package/dist/components/compare.js +88 -0
  97. package/dist/components/content.d.ts +12 -0
  98. package/dist/components/content.js +232 -0
  99. package/dist/components/copyable.d.ts +25 -0
  100. package/dist/components/copyable.js +51 -0
  101. package/dist/components/copybutton.d.ts +11 -0
  102. package/dist/components/copybutton.js +50 -0
  103. package/dist/components/countdown.d.ts +18 -0
  104. package/dist/components/countdown.js +112 -0
  105. package/dist/components/create.d.ts +10 -0
  106. package/dist/components/create.js +149 -0
  107. package/dist/components/definition.d.ts +43 -0
  108. package/dist/components/definition.js +46 -0
  109. package/dist/components/diffview.d.ts +12 -0
  110. package/dist/components/diffview.js +129 -0
  111. package/dist/components/divider.d.ts +19 -0
  112. package/dist/components/divider.js +24 -0
  113. package/dist/components/docheader.d.ts +17 -0
  114. package/dist/components/docheader.js +24 -0
  115. package/dist/components/doclinkcard.d.ts +19 -0
  116. package/dist/components/doclinkcard.js +37 -0
  117. package/dist/components/docslayout.d.ts +14 -0
  118. package/dist/components/docslayout.js +24 -0
  119. package/dist/components/dropdown.d.ts +23 -0
  120. package/dist/components/dropdown.js +134 -0
  121. package/dist/components/dynamiccode.d.ts +12 -0
  122. package/dist/components/dynamiccode.js +40 -0
  123. package/dist/components/editlink.d.ts +15 -0
  124. package/dist/components/editlink.js +45 -0
  125. package/dist/components/embed.d.ts +45 -0
  126. package/dist/components/embed.js +85 -0
  127. package/dist/components/endpoint.d.ts +58 -0
  128. package/dist/components/endpoint.js +100 -0
  129. package/dist/components/errormessage.d.ts +11 -0
  130. package/dist/components/errormessage.js +10 -0
  131. package/dist/components/expandcode.d.ts +13 -0
  132. package/dist/components/expandcode.js +58 -0
  133. package/dist/components/feature.d.ts +31 -0
  134. package/dist/components/feature.js +58 -0
  135. package/dist/components/featuregrid.d.ts +17 -0
  136. package/dist/components/featuregrid.js +36 -0
  137. package/dist/components/feedback.d.ts +14 -0
  138. package/dist/components/feedback.js +62 -0
  139. package/dist/components/feedbackwidget.d.ts +14 -0
  140. package/dist/components/feedbackwidget.js +106 -0
  141. package/dist/components/files.d.ts +21 -0
  142. package/dist/components/files.js +133 -0
  143. package/dist/components/folder.d.ts +15 -0
  144. package/dist/components/folder.js +102 -0
  145. package/dist/components/footer.d.ts +16 -0
  146. package/dist/components/footer.js +28 -0
  147. package/dist/components/formlabel.d.ts +24 -0
  148. package/dist/components/formlabel.js +27 -0
  149. package/dist/components/github.d.ts +14 -0
  150. package/dist/components/github.js +99 -0
  151. package/dist/components/graph.d.ts +36 -0
  152. package/dist/components/graph.js +210 -0
  153. package/dist/components/heading.d.ts +25 -0
  154. package/dist/components/heading.js +82 -0
  155. package/dist/components/headingcopy.d.ts +3 -0
  156. package/dist/components/headingcopy.js +31 -0
  157. package/dist/components/hero.d.ts +16 -0
  158. package/dist/components/hero.js +28 -0
  159. package/dist/components/highlight.d.ts +41 -0
  160. package/dist/components/highlight.js +42 -0
  161. package/dist/components/hover.d.ts +23 -0
  162. package/dist/components/hover.js +79 -0
  163. package/dist/components/icons.d.ts +30 -0
  164. package/dist/components/icons.js +419 -0
  165. package/dist/components/inlinetoc.d.ts +19 -0
  166. package/dist/components/inlinetoc.js +28 -0
  167. package/dist/components/input.d.ts +25 -0
  168. package/dist/components/input.js +42 -0
  169. package/dist/components/install.d.ts +10 -0
  170. package/dist/components/install.js +149 -0
  171. package/dist/components/kbd.d.ts +22 -0
  172. package/dist/components/kbd.js +30 -0
  173. package/dist/components/langicon.d.ts +8 -0
  174. package/dist/components/langicon.js +48 -0
  175. package/dist/components/language.d.ts +17 -0
  176. package/dist/components/language.js +123 -0
  177. package/dist/components/lastupdated.d.ts +12 -0
  178. package/dist/components/lastupdated.js +44 -0
  179. package/dist/components/link.d.ts +14 -0
  180. package/dist/components/link.js +53 -0
  181. package/dist/components/linkcard.d.ts +33 -0
  182. package/dist/components/linkcard.js +50 -0
  183. package/dist/components/list.d.ts +50 -0
  184. package/dist/components/list.js +55 -0
  185. package/dist/components/math.d.ts +34 -0
  186. package/dist/components/math.js +63 -0
  187. package/dist/components/mermaid.d.ts +19 -0
  188. package/dist/components/mermaid.js +79 -0
  189. package/dist/components/mobilenav.d.ts +17 -0
  190. package/dist/components/mobilenav.js +263 -0
  191. package/dist/components/modal.d.ts +18 -0
  192. package/dist/components/modal.js +69 -0
  193. package/dist/components/navbar.d.ts +19 -0
  194. package/dist/components/navbar.js +45 -0
  195. package/dist/components/navlink.d.ts +14 -0
  196. package/dist/components/navlink.js +77 -0
  197. package/dist/components/note.d.ts +28 -0
  198. package/dist/components/note.js +60 -0
  199. package/dist/components/openapi.d.ts +14 -0
  200. package/dist/components/openapi.js +145 -0
  201. package/dist/components/openapischema.d.ts +13 -0
  202. package/dist/components/openapischema.js +51 -0
  203. package/dist/components/openapitags.d.ts +13 -0
  204. package/dist/components/openapitags.js +20 -0
  205. package/dist/components/pagetransition.d.ts +13 -0
  206. package/dist/components/pagetransition.js +37 -0
  207. package/dist/components/pagination.d.ts +26 -0
  208. package/dist/components/pagination.js +68 -0
  209. package/dist/components/panel.d.ts +25 -0
  210. package/dist/components/panel.js +75 -0
  211. package/dist/components/playground.d.ts +14 -0
  212. package/dist/components/playground.js +89 -0
  213. package/dist/components/popover.d.ts +18 -0
  214. package/dist/components/popover.js +109 -0
  215. package/dist/components/prelink.d.ts +10 -0
  216. package/dist/components/prelink.js +46 -0
  217. package/dist/components/prevnext.d.ts +17 -0
  218. package/dist/components/prevnext.js +43 -0
  219. package/dist/components/progress.d.ts +30 -0
  220. package/dist/components/progress.js +74 -0
  221. package/dist/components/property.d.ts +24 -0
  222. package/dist/components/property.js +44 -0
  223. package/dist/components/quote.d.ts +44 -0
  224. package/dist/components/quote.js +41 -0
  225. package/dist/components/radio.d.ts +48 -0
  226. package/dist/components/radio.js +140 -0
  227. package/dist/components/rating.d.ts +22 -0
  228. package/dist/components/rating.js +100 -0
  229. package/dist/components/readtime.d.ts +17 -0
  230. package/dist/components/readtime.js +26 -0
  231. package/dist/components/recent.d.ts +12 -0
  232. package/dist/components/recent.js +23 -0
  233. package/dist/components/responsive.d.ts +35 -0
  234. package/dist/components/responsive.js +73 -0
  235. package/dist/components/results.d.ts +20 -0
  236. package/dist/components/results.js +72 -0
  237. package/dist/components/screenshot.d.ts +33 -0
  238. package/dist/components/screenshot.js +52 -0
  239. package/dist/components/scrollprogress.d.ts +12 -0
  240. package/dist/components/scrollprogress.js +56 -0
  241. package/dist/components/scrollspy.d.ts +18 -0
  242. package/dist/components/scrollspy.js +51 -0
  243. package/dist/components/search.d.ts +19 -0
  244. package/dist/components/search.js +228 -0
  245. package/dist/components/searchbutton.d.ts +10 -0
  246. package/dist/components/searchbutton.js +51 -0
  247. package/dist/components/searchdialog.d.ts +19 -0
  248. package/dist/components/searchdialog.js +108 -0
  249. package/dist/components/searcher.d.ts +12 -0
  250. package/dist/components/searcher.js +121 -0
  251. package/dist/components/select.d.ts +39 -0
  252. package/dist/components/select.js +162 -0
  253. package/dist/components/shortcuts.d.ts +17 -0
  254. package/dist/components/shortcuts.js +62 -0
  255. package/dist/components/sidebar.d.ts +35 -0
  256. package/dist/components/sidebar.js +215 -0
  257. package/dist/components/sidebarfilter.d.ts +13 -0
  258. package/dist/components/sidebarfilter.js +50 -0
  259. package/dist/components/skeleton.d.ts +40 -0
  260. package/dist/components/skeleton.js +59 -0
  261. package/dist/components/skiplink.d.ts +12 -0
  262. package/dist/components/skiplink.js +21 -0
  263. package/dist/components/spinner.d.ts +34 -0
  264. package/dist/components/spinner.js +56 -0
  265. package/dist/components/status.d.ts +27 -0
  266. package/dist/components/status.js +63 -0
  267. package/dist/components/steps.d.ts +30 -0
  268. package/dist/components/steps.js +15 -0
  269. package/dist/components/switch.d.ts +26 -0
  270. package/dist/components/switch.js +79 -0
  271. package/dist/components/table.d.ts +36 -0
  272. package/dist/components/table.js +138 -0
  273. package/dist/components/tabnav.d.ts +30 -0
  274. package/dist/components/tabnav.js +199 -0
  275. package/dist/components/tabs.d.ts +15 -0
  276. package/dist/components/tabs.js +96 -0
  277. package/dist/components/tag.d.ts +32 -0
  278. package/dist/components/tag.js +38 -0
  279. package/dist/components/terminal.d.ts +48 -0
  280. package/dist/components/terminal.js +62 -0
  281. package/dist/components/textarea.d.ts +30 -0
  282. package/dist/components/textarea.js +100 -0
  283. package/dist/components/theme.d.ts +11 -0
  284. package/dist/components/theme.js +66 -0
  285. package/dist/components/themeprovider.d.ts +19 -0
  286. package/dist/components/themeprovider.js +58 -0
  287. package/dist/components/toast.d.ts +31 -0
  288. package/dist/components/toast.js +107 -0
  289. package/dist/components/toc/default.d.ts +21 -0
  290. package/dist/components/toc/default.js +100 -0
  291. package/dist/components/toc/hook.d.ts +13 -0
  292. package/dist/components/toc/hook.js +125 -0
  293. package/dist/components/toc/index.d.ts +15 -0
  294. package/dist/components/toc/index.js +44 -0
  295. package/dist/components/toc/inline.d.ts +20 -0
  296. package/dist/components/toc/inline.js +75 -0
  297. package/dist/components/toc/minimal.d.ts +22 -0
  298. package/dist/components/toc/minimal.js +136 -0
  299. package/dist/components/toc/zigzag.d.ts +18 -0
  300. package/dist/components/toc/zigzag.js +57 -0
  301. package/dist/components/tocprogress.d.ts +17 -0
  302. package/dist/components/tocprogress.js +67 -0
  303. package/dist/components/tooltip.d.ts +19 -0
  304. package/dist/components/tooltip.js +76 -0
  305. package/dist/components/trigger.d.ts +8 -0
  306. package/dist/components/trigger.js +13 -0
  307. package/dist/components/twoslash.d.ts +9 -0
  308. package/dist/components/twoslash.js +52 -0
  309. package/dist/components/typetable.d.ts +21 -0
  310. package/dist/components/typetable.js +68 -0
  311. package/dist/components/typewriter.d.ts +20 -0
  312. package/dist/components/typewriter.js +50 -0
  313. package/dist/components/version.d.ts +29 -0
  314. package/dist/components/version.js +181 -0
  315. package/dist/components/video.d.ts +33 -0
  316. package/dist/components/video.js +147 -0
  317. package/dist/components/zoom.d.ts +9 -0
  318. package/dist/components/zoom.js +110 -0
  319. package/dist/config.d.ts +54 -0
  320. package/dist/config.js +102 -0
  321. package/dist/content.d.ts +83 -0
  322. package/dist/content.js +464 -0
  323. package/dist/contentcache.d.ts +28 -0
  324. package/dist/contentcache.js +76 -0
  325. package/dist/contentdiff.d.ts +19 -0
  326. package/dist/contentdiff.js +48 -0
  327. package/dist/contributors.d.ts +22 -0
  328. package/dist/contributors.js +64 -0
  329. package/dist/diff.d.ts +25 -0
  330. package/dist/diff.js +117 -0
  331. package/dist/draft.d.ts +33 -0
  332. package/dist/draft.js +62 -0
  333. package/dist/env.d.ts +12 -0
  334. package/dist/env.js +50 -0
  335. package/dist/export.d.ts +9 -0
  336. package/dist/export.js +32 -0
  337. package/dist/frontmatter.d.ts +19 -0
  338. package/dist/frontmatter.js +65 -0
  339. package/dist/github.d.ts +15 -0
  340. package/dist/github.js +254 -0
  341. package/dist/gitsource.d.ts +23 -0
  342. package/dist/gitsource.js +50 -0
  343. package/dist/hash.d.ts +21 -0
  344. package/dist/hash.js +65 -0
  345. package/dist/highlight.d.ts +18 -0
  346. package/dist/highlight.js +90 -0
  347. package/dist/hooks/anchor.d.ts +7 -0
  348. package/dist/hooks/anchor.js +44 -0
  349. package/dist/hooks/arrownav.d.ts +11 -0
  350. package/dist/hooks/arrownav.js +49 -0
  351. package/dist/hooks/async.d.ts +9 -0
  352. package/dist/hooks/async.js +28 -0
  353. package/dist/hooks/battery.d.ts +8 -0
  354. package/dist/hooks/battery.js +34 -0
  355. package/dist/hooks/breakpoint.d.ts +6 -0
  356. package/dist/hooks/breakpoint.js +34 -0
  357. package/dist/hooks/clickoutside.d.ts +11 -0
  358. package/dist/hooks/clickoutside.js +19 -0
  359. package/dist/hooks/clipboard-paste.d.ts +8 -0
  360. package/dist/hooks/clipboard-paste.js +18 -0
  361. package/dist/hooks/clipboard.d.ts +9 -0
  362. package/dist/hooks/clipboard.js +24 -0
  363. package/dist/hooks/colorscheme.d.ts +4 -0
  364. package/dist/hooks/colorscheme.js +18 -0
  365. package/dist/hooks/copy.d.ts +12 -0
  366. package/dist/hooks/copy.js +28 -0
  367. package/dist/hooks/countdown.d.ts +10 -0
  368. package/dist/hooks/countdown.js +41 -0
  369. package/dist/hooks/counter.d.ts +10 -0
  370. package/dist/hooks/counter.js +12 -0
  371. package/dist/hooks/debounce.d.ts +9 -0
  372. package/dist/hooks/debounce.js +16 -0
  373. package/dist/hooks/documenttitle.d.ts +3 -0
  374. package/dist/hooks/documenttitle.js +20 -0
  375. package/dist/hooks/documentvisibility.d.ts +4 -0
  376. package/dist/hooks/documentvisibility.js +19 -0
  377. package/dist/hooks/escapekey.d.ts +8 -0
  378. package/dist/hooks/escapekey.js +18 -0
  379. package/dist/hooks/eventlistener.d.ts +13 -0
  380. package/dist/hooks/eventlistener.js +15 -0
  381. package/dist/hooks/eventsource.d.ts +10 -0
  382. package/dist/hooks/eventsource.js +31 -0
  383. package/dist/hooks/eyedropper.d.ts +8 -0
  384. package/dist/hooks/eyedropper.js +23 -0
  385. package/dist/hooks/favicon.d.ts +3 -0
  386. package/dist/hooks/favicon.js +14 -0
  387. package/dist/hooks/fetch.d.ts +8 -0
  388. package/dist/hooks/fetch.js +29 -0
  389. package/dist/hooks/focustrap.d.ts +12 -0
  390. package/dist/hooks/focustrap.js +62 -0
  391. package/dist/hooks/focuswithin.d.ts +6 -0
  392. package/dist/hooks/focuswithin.js +24 -0
  393. package/dist/hooks/form.d.ts +20 -0
  394. package/dist/hooks/form.js +42 -0
  395. package/dist/hooks/fullscreen.d.ts +10 -0
  396. package/dist/hooks/fullscreen.js +34 -0
  397. package/dist/hooks/geolocation.d.ts +10 -0
  398. package/dist/hooks/geolocation.js +38 -0
  399. package/dist/hooks/hash.d.ts +3 -0
  400. package/dist/hooks/hash.js +21 -0
  401. package/dist/hooks/hotkeys.d.ts +11 -0
  402. package/dist/hooks/hotkeys.js +35 -0
  403. package/dist/hooks/hover.d.ts +3 -0
  404. package/dist/hooks/hover.js +22 -0
  405. package/dist/hooks/idle.d.ts +3 -0
  406. package/dist/hooks/idle.js +28 -0
  407. package/dist/hooks/infinitescroll.d.ts +9 -0
  408. package/dist/hooks/infinitescroll.js +31 -0
  409. package/dist/hooks/interval.d.ts +3 -0
  410. package/dist/hooks/interval.js +16 -0
  411. package/dist/hooks/inview.d.ts +10 -0
  412. package/dist/hooks/inview.js +28 -0
  413. package/dist/hooks/keyboard.d.ts +14 -0
  414. package/dist/hooks/keyboard.js +82 -0
  415. package/dist/hooks/keypress.d.ts +3 -0
  416. package/dist/hooks/keypress.js +23 -0
  417. package/dist/hooks/list.d.ts +14 -0
  418. package/dist/hooks/list.js +28 -0
  419. package/dist/hooks/longpress.d.ts +10 -0
  420. package/dist/hooks/longpress.js +24 -0
  421. package/dist/hooks/map.d.ts +12 -0
  422. package/dist/hooks/map.js +23 -0
  423. package/dist/hooks/measure.d.ts +16 -0
  424. package/dist/hooks/measure.js +34 -0
  425. package/dist/hooks/media.d.ts +33 -0
  426. package/dist/hooks/media.js +35 -0
  427. package/dist/hooks/mediarecorder.d.ts +11 -0
  428. package/dist/hooks/mediarecorder.js +37 -0
  429. package/dist/hooks/mounted.d.ts +3 -0
  430. package/dist/hooks/mounted.js +12 -0
  431. package/dist/hooks/mouseposition.d.ts +7 -0
  432. package/dist/hooks/mouseposition.js +16 -0
  433. package/dist/hooks/networkstate.d.ts +10 -0
  434. package/dist/hooks/networkstate.js +34 -0
  435. package/dist/hooks/online.d.ts +3 -0
  436. package/dist/hooks/online.js +20 -0
  437. package/dist/hooks/orientation.d.ts +8 -0
  438. package/dist/hooks/orientation.js +20 -0
  439. package/dist/hooks/os.d.ts +4 -0
  440. package/dist/hooks/os.js +15 -0
  441. package/dist/hooks/pageleave.d.ts +3 -0
  442. package/dist/hooks/pageleave.js +18 -0
  443. package/dist/hooks/pagination.d.ts +26 -0
  444. package/dist/hooks/pagination.js +49 -0
  445. package/dist/hooks/permission.d.ts +5 -0
  446. package/dist/hooks/permission.js +29 -0
  447. package/dist/hooks/preferredlanguage.d.ts +3 -0
  448. package/dist/hooks/preferredlanguage.js +17 -0
  449. package/dist/hooks/previous.d.ts +3 -0
  450. package/dist/hooks/previous.js +12 -0
  451. package/dist/hooks/queue.d.ts +11 -0
  452. package/dist/hooks/queue.js +23 -0
  453. package/dist/hooks/readprogress.d.ts +6 -0
  454. package/dist/hooks/readprogress.js +32 -0
  455. package/dist/hooks/resizeobserver.d.ts +10 -0
  456. package/dist/hooks/resizeobserver.js +25 -0
  457. package/dist/hooks/script.d.ts +4 -0
  458. package/dist/hooks/script.js +30 -0
  459. package/dist/hooks/scrolldirection.d.ts +4 -0
  460. package/dist/hooks/scrolldirection.js +33 -0
  461. package/dist/hooks/scrolllock.d.ts +3 -0
  462. package/dist/hooks/scrolllock.js +38 -0
  463. package/dist/hooks/scrollspy.d.ts +7 -0
  464. package/dist/hooks/scrollspy.js +28 -0
  465. package/dist/hooks/scrolltop.d.ts +7 -0
  466. package/dist/hooks/scrolltop.js +19 -0
  467. package/dist/hooks/selection.d.ts +12 -0
  468. package/dist/hooks/selection.js +32 -0
  469. package/dist/hooks/share.d.ts +13 -0
  470. package/dist/hooks/share.js +37 -0
  471. package/dist/hooks/speechrecognition.d.ts +10 -0
  472. package/dist/hooks/speechrecognition.js +34 -0
  473. package/dist/hooks/stepper.d.ts +13 -0
  474. package/dist/hooks/stepper.js +31 -0
  475. package/dist/hooks/storage.d.ts +5 -0
  476. package/dist/hooks/storage.js +57 -0
  477. package/dist/hooks/stylesheet.d.ts +4 -0
  478. package/dist/hooks/stylesheet.js +30 -0
  479. package/dist/hooks/textselection.d.ts +7 -0
  480. package/dist/hooks/textselection.js +24 -0
  481. package/dist/hooks/throttle.d.ts +3 -0
  482. package/dist/hooks/throttle.js +28 -0
  483. package/dist/hooks/toggle.d.ts +13 -0
  484. package/dist/hooks/toggle.js +10 -0
  485. package/dist/hooks/undoredo.d.ts +12 -0
  486. package/dist/hooks/undoredo.js +50 -0
  487. package/dist/hooks/vibrate.d.ts +7 -0
  488. package/dist/hooks/vibrate.js +15 -0
  489. package/dist/hooks/viewtransition.d.ts +9 -0
  490. package/dist/hooks/viewtransition.js +38 -0
  491. package/dist/hooks/wakelock.d.ts +9 -0
  492. package/dist/hooks/wakelock.js +32 -0
  493. package/dist/hooks/websocket.d.ts +10 -0
  494. package/dist/hooks/websocket.js +30 -0
  495. package/dist/hooks/windowsize.d.ts +7 -0
  496. package/dist/hooks/windowsize.js +17 -0
  497. package/dist/i18n.d.ts +30 -0
  498. package/dist/i18n.js +73 -0
  499. package/dist/index.d.ts +115 -0
  500. package/dist/index.js +107 -0
  501. package/dist/lastmodified.d.ts +4 -0
  502. package/dist/lastmodified.js +24 -0
  503. package/dist/linkcheck.d.ts +26 -0
  504. package/dist/linkcheck.js +113 -0
  505. package/dist/llms.d.ts +14 -0
  506. package/dist/llms.js +39 -0
  507. package/dist/manifest.d.ts +24 -0
  508. package/dist/manifest.js +31 -0
  509. package/dist/mcp.d.ts +56 -0
  510. package/dist/mcp.js +74 -0
  511. package/dist/mdtoc.d.ts +16 -0
  512. package/dist/mdtoc.js +59 -0
  513. package/dist/mdxscope.d.ts +17 -0
  514. package/dist/mdxscope.js +58 -0
  515. package/dist/meta.d.ts +19 -0
  516. package/dist/meta.js +71 -0
  517. package/dist/migrate.d.ts +17 -0
  518. package/dist/migrate.js +108 -0
  519. package/dist/navgen.d.ts +31 -0
  520. package/dist/navgen.js +147 -0
  521. package/dist/navtree.d.ts +28 -0
  522. package/dist/navtree.js +93 -0
  523. package/dist/next.d.ts +3 -0
  524. package/dist/next.js +3 -0
  525. package/dist/oembed.d.ts +20 -0
  526. package/dist/oembed.js +62 -0
  527. package/dist/ogimage.d.ts +45 -0
  528. package/dist/ogimage.js +62 -0
  529. package/dist/openapi.d.ts +6 -0
  530. package/dist/openapi.js +141 -0
  531. package/dist/openapiguard.d.ts +22 -0
  532. package/dist/openapiguard.js +87 -0
  533. package/dist/openapiutil.d.ts +72 -0
  534. package/dist/openapiutil.js +61 -0
  535. package/dist/orama.d.ts +16 -0
  536. package/dist/orama.js +100 -0
  537. package/dist/pipeline.d.ts +19 -0
  538. package/dist/pipeline.js +40 -0
  539. package/dist/preload.d.ts +15 -0
  540. package/dist/preload.js +19 -0
  541. package/dist/ranking.d.ts +28 -0
  542. package/dist/ranking.js +95 -0
  543. package/dist/reactrouter.d.ts +3 -0
  544. package/dist/reactrouter.js +3 -0
  545. package/dist/readtime.d.ts +3 -0
  546. package/dist/readtime.js +8 -0
  547. package/dist/redirects.d.ts +27 -0
  548. package/dist/redirects.js +74 -0
  549. package/dist/rehype.d.ts +5 -0
  550. package/dist/rehype.js +30 -0
  551. package/dist/rehypeautolink.d.ts +11 -0
  552. package/dist/rehypeautolink.js +43 -0
  553. package/dist/rehypecode.d.ts +6 -0
  554. package/dist/rehypecode.js +68 -0
  555. package/dist/rehypecopy.d.ts +6 -0
  556. package/dist/rehypecopy.js +29 -0
  557. package/dist/rehypeinline.d.ts +6 -0
  558. package/dist/rehypeinline.js +32 -0
  559. package/dist/rehypelinks.d.ts +10 -0
  560. package/dist/rehypelinks.js +49 -0
  561. package/dist/rehyperaw.d.ts +6 -0
  562. package/dist/rehyperaw.js +27 -0
  563. package/dist/rehypeslug.d.ts +7 -0
  564. package/dist/rehypeslug.js +39 -0
  565. package/dist/rehypetablewrap.d.ts +9 -0
  566. package/dist/rehypetablewrap.js +24 -0
  567. package/dist/rehypetoc.d.ts +16 -0
  568. package/dist/rehypetoc.js +61 -0
  569. package/dist/remark.d.ts +6 -0
  570. package/dist/remark.js +48 -0
  571. package/dist/remarkadmonition.d.ts +6 -0
  572. package/dist/remarkadmonition.js +78 -0
  573. package/dist/remarkannotation.d.ts +10 -0
  574. package/dist/remarkannotation.js +65 -0
  575. package/dist/remarkbadge.d.ts +6 -0
  576. package/dist/remarkbadge.js +40 -0
  577. package/dist/remarkblockmath.d.ts +6 -0
  578. package/dist/remarkblockmath.js +57 -0
  579. package/dist/remarkcallout.d.ts +6 -0
  580. package/dist/remarkcallout.js +65 -0
  581. package/dist/remarkcaption.d.ts +6 -0
  582. package/dist/remarkcaption.js +48 -0
  583. package/dist/remarkcodetitle.d.ts +6 -0
  584. package/dist/remarkcodetitle.js +39 -0
  585. package/dist/remarkcolumns.d.ts +6 -0
  586. package/dist/remarkcolumns.js +67 -0
  587. package/dist/remarkdetails.d.ts +6 -0
  588. package/dist/remarkdetails.js +61 -0
  589. package/dist/remarkdirective.d.ts +7 -0
  590. package/dist/remarkdirective.js +98 -0
  591. package/dist/remarkembed.d.ts +6 -0
  592. package/dist/remarkembed.js +72 -0
  593. package/dist/remarkfiletree.d.ts +6 -0
  594. package/dist/remarkfiletree.js +67 -0
  595. package/dist/remarkfootnote.d.ts +6 -0
  596. package/dist/remarkfootnote.js +63 -0
  597. package/dist/remarkgfm.d.ts +6 -0
  598. package/dist/remarkgfm.js +60 -0
  599. package/dist/remarkheadingid.d.ts +6 -0
  600. package/dist/remarkheadingid.js +40 -0
  601. package/dist/remarkimage.d.ts +11 -0
  602. package/dist/remarkimage.js +91 -0
  603. package/dist/remarkinclude.d.ts +10 -0
  604. package/dist/remarkinclude.js +49 -0
  605. package/dist/remarkinstall.d.ts +6 -0
  606. package/dist/remarkinstall.js +52 -0
  607. package/dist/remarklinkcard.d.ts +6 -0
  608. package/dist/remarklinkcard.js +38 -0
  609. package/dist/remarkmath.d.ts +6 -0
  610. package/dist/remarkmath.js +69 -0
  611. package/dist/remarkmermaid.d.ts +6 -0
  612. package/dist/remarkmermaid.js +21 -0
  613. package/dist/remarkmeta.d.ts +15 -0
  614. package/dist/remarkmeta.js +63 -0
  615. package/dist/remarkreadingtime.d.ts +11 -0
  616. package/dist/remarkreadingtime.js +44 -0
  617. package/dist/remarksteps.d.ts +6 -0
  618. package/dist/remarksteps.js +56 -0
  619. package/dist/remarkstructure.d.ts +18 -0
  620. package/dist/remarkstructure.js +53 -0
  621. package/dist/remarktabs.d.ts +6 -0
  622. package/dist/remarktabs.js +42 -0
  623. package/dist/remarktoc.d.ts +6 -0
  624. package/dist/remarktoc.js +47 -0
  625. package/dist/remarkts2js.d.ts +6 -0
  626. package/dist/remarkts2js.js +88 -0
  627. package/dist/remarktwoslash.d.ts +20 -0
  628. package/dist/remarktwoslash.js +86 -0
  629. package/dist/remarkvideo.d.ts +16 -0
  630. package/dist/remarkvideo.js +59 -0
  631. package/dist/remix.d.ts +3 -0
  632. package/dist/remix.js +3 -0
  633. package/dist/schema.d.ts +54 -0
  634. package/dist/schema.js +17 -0
  635. package/dist/search.d.ts +24 -0
  636. package/dist/search.js +155 -0
  637. package/dist/searchindex.d.ts +28 -0
  638. package/dist/searchindex.js +184 -0
  639. package/dist/searchpolicy.d.ts +5 -0
  640. package/dist/searchpolicy.js +9 -0
  641. package/dist/searchscore.d.ts +30 -0
  642. package/dist/searchscore.js +54 -0
  643. package/dist/searchtypo.d.ts +3 -0
  644. package/dist/searchtypo.js +47 -0
  645. package/dist/seo.d.ts +26 -0
  646. package/dist/seo.js +69 -0
  647. package/dist/shortcodes.d.ts +13 -0
  648. package/dist/shortcodes.js +61 -0
  649. package/dist/sitemap.d.ts +25 -0
  650. package/dist/sitemap.js +69 -0
  651. package/dist/snippets.d.ts +18 -0
  652. package/dist/snippets.js +89 -0
  653. package/dist/source.d.ts +23 -0
  654. package/dist/source.js +188 -0
  655. package/dist/stats.d.ts +25 -0
  656. package/dist/stats.js +81 -0
  657. package/dist/tanstack.d.ts +3 -0
  658. package/dist/tanstack.js +3 -0
  659. package/dist/testing.d.ts +35 -0
  660. package/dist/testing.js +134 -0
  661. package/dist/themeutil.d.ts +31 -0
  662. package/dist/themeutil.js +92 -0
  663. package/dist/typegen.d.ts +10 -0
  664. package/dist/typegen.js +74 -0
  665. package/dist/types.d.ts +267 -0
  666. package/dist/types.js +1 -0
  667. package/dist/validate.d.ts +13 -0
  668. package/dist/validate.js +78 -0
  669. package/dist/validator.d.ts +35 -0
  670. package/dist/validator.js +53 -0
  671. package/dist/versioning.d.ts +32 -0
  672. package/dist/versioning.js +62 -0
  673. package/dist/vite.d.ts +3 -0
  674. package/dist/vite.js +3 -0
  675. package/dist/watcher.d.ts +19 -0
  676. package/dist/watcher.js +82 -0
  677. package/dist/webhook.d.ts +25 -0
  678. package/dist/webhook.js +67 -0
  679. package/dist/workspace.d.ts +26 -0
  680. package/dist/workspace.js +81 -0
  681. package/package.json +138 -11
  682. package/styles/reset.css +3 -0
  683. package/index.js +0 -3
@@ -0,0 +1,54 @@
1
+ type FromsrcConfig = {
2
+ title: string;
3
+ description?: string;
4
+ baseUrl?: string;
5
+ docsDir?: string;
6
+ outDir?: string;
7
+ theme?: string;
8
+ search?: {
9
+ provider?: string;
10
+ options?: Record<string, unknown>;
11
+ };
12
+ sidebar?: {
13
+ defaultOpen?: boolean;
14
+ collapsible?: boolean;
15
+ };
16
+ toc?: {
17
+ minDepth?: number;
18
+ maxDepth?: number;
19
+ };
20
+ i18n?: {
21
+ defaultLocale?: string;
22
+ locales?: string[];
23
+ };
24
+ editUrl?: string;
25
+ lastUpdated?: boolean;
26
+ draft?: boolean;
27
+ };
28
+ type ResolvedConfig = Required<Pick<FromsrcConfig, "title" | "docsDir" | "outDir" | "theme" | "lastUpdated" | "draft">> & {
29
+ description: string;
30
+ baseUrl: string;
31
+ search: {
32
+ provider: string;
33
+ options: Record<string, unknown>;
34
+ };
35
+ sidebar: {
36
+ defaultOpen: boolean;
37
+ collapsible: boolean;
38
+ };
39
+ toc: {
40
+ minDepth: number;
41
+ maxDepth: number;
42
+ };
43
+ i18n: {
44
+ defaultLocale: string;
45
+ locales: string[];
46
+ };
47
+ editUrl: string;
48
+ };
49
+ declare function defineConfig(config: FromsrcConfig): FromsrcConfig;
50
+ declare function resolveConfig(config: FromsrcConfig): ResolvedConfig;
51
+ declare function loadConfig(dir: string): Promise<FromsrcConfig>;
52
+ declare function mergeConfig(base: Record<string, unknown>, overrides: Record<string, unknown>): Record<string, unknown>;
53
+
54
+ export { type FromsrcConfig, type ResolvedConfig, defineConfig, loadConfig, mergeConfig, resolveConfig };
package/dist/config.js ADDED
@@ -0,0 +1,102 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+
4
+ const defaults = {
5
+ description: "",
6
+ baseUrl: "/",
7
+ docsDir: "docs",
8
+ outDir: ".fromsrc",
9
+ theme: "default",
10
+ search: { provider: "local", options: {} },
11
+ sidebar: { defaultOpen: true, collapsible: true },
12
+ toc: { minDepth: 2, maxDepth: 3 },
13
+ i18n: { defaultLocale: "en", locales: ["en"] },
14
+ editUrl: "",
15
+ lastUpdated: false,
16
+ draft: false
17
+ };
18
+ function isrecord(value) {
19
+ return typeof value === "object" && value !== null && !Array.isArray(value);
20
+ }
21
+ function isstring(value) {
22
+ return typeof value === "string";
23
+ }
24
+ function isboolean(value) {
25
+ return typeof value === "boolean";
26
+ }
27
+ function parseconfig(value) {
28
+ if (!isrecord(value)) return null;
29
+ const title = value.title;
30
+ if (!isstring(title)) return null;
31
+ const config = { title };
32
+ if (isstring(value.description)) config.description = value.description;
33
+ if (isstring(value.baseUrl)) config.baseUrl = value.baseUrl;
34
+ if (isstring(value.docsDir)) config.docsDir = value.docsDir;
35
+ if (isstring(value.outDir)) config.outDir = value.outDir;
36
+ if (isstring(value.theme)) config.theme = value.theme;
37
+ if (isstring(value.editUrl)) config.editUrl = value.editUrl;
38
+ if (isboolean(value.lastUpdated)) config.lastUpdated = value.lastUpdated;
39
+ if (isboolean(value.draft)) config.draft = value.draft;
40
+ if (isrecord(value.search)) {
41
+ const provider = isstring(value.search.provider) ? value.search.provider : void 0;
42
+ const options = isrecord(value.search.options) ? value.search.options : void 0;
43
+ config.search = { provider, options };
44
+ }
45
+ if (isrecord(value.sidebar)) {
46
+ const defaultOpen = isboolean(value.sidebar.defaultOpen) ? value.sidebar.defaultOpen : void 0;
47
+ const collapsible = isboolean(value.sidebar.collapsible) ? value.sidebar.collapsible : void 0;
48
+ config.sidebar = { defaultOpen, collapsible };
49
+ }
50
+ if (isrecord(value.toc)) {
51
+ const minDepth = typeof value.toc.minDepth === "number" ? value.toc.minDepth : void 0;
52
+ const maxDepth = typeof value.toc.maxDepth === "number" ? value.toc.maxDepth : void 0;
53
+ config.toc = { minDepth, maxDepth };
54
+ }
55
+ if (isrecord(value.i18n)) {
56
+ const defaultLocale = isstring(value.i18n.defaultLocale) ? value.i18n.defaultLocale : void 0;
57
+ const locales = Array.isArray(value.i18n.locales) && value.i18n.locales.every((entry) => isstring(entry)) ? value.i18n.locales : void 0;
58
+ config.i18n = { defaultLocale, locales };
59
+ }
60
+ return config;
61
+ }
62
+ function defineConfig(config) {
63
+ return config;
64
+ }
65
+ function resolveConfig(config) {
66
+ return mergeConfig(
67
+ defaults,
68
+ config
69
+ );
70
+ }
71
+ async function loadConfig(dir) {
72
+ for (const name of ["fromsrc.config.ts", "fromsrc.config.js"]) {
73
+ try {
74
+ const mod = await import(/* webpackIgnore: true */ join(dir, name));
75
+ const parsed = parseconfig(mod.default ?? mod);
76
+ if (parsed) return parsed;
77
+ } catch {
78
+ }
79
+ }
80
+ try {
81
+ const raw = await readFile(join(dir, "fromsrc.config.json"), "utf-8");
82
+ const parsed = parseconfig(JSON.parse(raw));
83
+ if (parsed) return parsed;
84
+ } catch {
85
+ }
86
+ throw new Error("no config found");
87
+ }
88
+ function mergeConfig(base, overrides) {
89
+ const result = { ...base };
90
+ for (const key of Object.keys(overrides)) {
91
+ const b = base[key];
92
+ const o = overrides[key];
93
+ if (b && o && typeof b === "object" && typeof o === "object" && !Array.isArray(o)) {
94
+ result[key] = mergeConfig(b, o);
95
+ } else if (o !== void 0) {
96
+ result[key] = o;
97
+ }
98
+ }
99
+ return result;
100
+ }
101
+
102
+ export { defineConfig, loadConfig, mergeConfig, resolveConfig };
@@ -0,0 +1,83 @@
1
+ import { z } from 'zod';
2
+ import { baseSchema } from './schema.js';
3
+
4
+ interface DocMeta {
5
+ slug: string;
6
+ title: string;
7
+ description?: string;
8
+ order?: number;
9
+ }
10
+ interface Heading {
11
+ id: string;
12
+ text: string;
13
+ level: number;
14
+ }
15
+ interface SearchDoc extends DocMeta {
16
+ content: string;
17
+ headings?: Heading[];
18
+ }
19
+ interface Doc<T extends Record<string, unknown> = Record<string, unknown>> extends DocMeta {
20
+ content: string;
21
+ data: T;
22
+ }
23
+ type SchemaType = z.ZodObject<z.ZodRawShape>;
24
+ interface ContentConfig<T extends SchemaType = typeof baseSchema> {
25
+ dir: string;
26
+ schema?: T;
27
+ }
28
+ declare function defineContent<T extends SchemaType>(config: ContentConfig<T>): {
29
+ getDoc: (slug: string[]) => Promise<(z.TypeOf<T> & {
30
+ slug: string;
31
+ } & {
32
+ content: string;
33
+ data: z.infer<T>;
34
+ }) | null>;
35
+ getDocs: () => Promise<(z.TypeOf<T> & {
36
+ slug: string;
37
+ } & {
38
+ content: string;
39
+ data: z.infer<T>;
40
+ })[]>;
41
+ getAllDocs: () => Promise<(z.TypeOf<T> & {
42
+ slug: string;
43
+ })[]>;
44
+ getNavigation: () => Promise<{
45
+ title: string;
46
+ items: (z.TypeOf<T> & {
47
+ slug: string;
48
+ })[];
49
+ }[]>;
50
+ getSearchDocs: () => Promise<((z.TypeOf<T> & {
51
+ slug: string;
52
+ }) & {
53
+ content: string;
54
+ headings?: Heading[];
55
+ })[]>;
56
+ schema: z.ZodObject<{
57
+ title: z.ZodString;
58
+ description: z.ZodOptional<z.ZodString>;
59
+ order: z.ZodOptional<z.ZodNumber>;
60
+ draft: z.ZodOptional<z.ZodBoolean>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ title: string;
63
+ order?: number | undefined;
64
+ description?: string | undefined;
65
+ draft?: boolean | undefined;
66
+ }, {
67
+ title: string;
68
+ order?: number | undefined;
69
+ description?: string | undefined;
70
+ draft?: boolean | undefined;
71
+ }> | T;
72
+ };
73
+ declare function extractHeadings(content: string): Heading[];
74
+ declare function getDoc(docsDir: string, slug: string[]): Promise<Doc | null>;
75
+ declare function getAllDocs(docsDir: string): Promise<DocMeta[]>;
76
+ declare function getNavigation(docsDir: string): Promise<{
77
+ title: string;
78
+ items: DocMeta[];
79
+ }[]>;
80
+ declare function getSearchDocs(docsDir: string): Promise<SearchDoc[]>;
81
+ declare function clearContentCache(): void;
82
+
83
+ export { type ContentConfig, type Doc, type DocMeta, type Heading, type SearchDoc, clearContentCache, defineContent, extractHeadings, getAllDocs, getDoc, getNavigation, getSearchDocs };
@@ -0,0 +1,464 @@
1
+ import { readdir, readFile } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ import matter from 'gray-matter';
4
+ import { z } from 'zod';
5
+ import { sortByMeta, loadMeta } from './meta';
6
+ import { baseSchema } from './schema';
7
+
8
+ const fileCache = /* @__PURE__ */ new Map();
9
+ const metaCache = /* @__PURE__ */ new Map();
10
+ const isProduction = () => process.env.NODE_ENV === "production";
11
+ const isDraft = (data) => data.draft === true;
12
+ function isnotfound(error) {
13
+ return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
14
+ }
15
+ async function readCached(filepath) {
16
+ if (!isProduction()) {
17
+ return readFile(filepath, "utf-8");
18
+ }
19
+ const cached = fileCache.get(filepath);
20
+ if (cached) return cached;
21
+ const content = await readFile(filepath, "utf-8");
22
+ fileCache.set(filepath, content);
23
+ return content;
24
+ }
25
+ async function resolveSource(docsDir, slug) {
26
+ const path = slug.length === 0 ? "index" : slug.join("/");
27
+ const filepath = join(docsDir, `${path}.mdx`);
28
+ const indexPath = join(docsDir, `${path}/index.mdx`);
29
+ try {
30
+ const source = await readCached(filepath);
31
+ return { source, actualPath: path, filepath };
32
+ } catch (error) {
33
+ if (!isnotfound(error)) throw error;
34
+ }
35
+ try {
36
+ const source = await readCached(indexPath);
37
+ return { source, actualPath: `${path}/index`, filepath: indexPath };
38
+ } catch (error) {
39
+ if (!isnotfound(error)) throw error;
40
+ }
41
+ return null;
42
+ }
43
+ function defineContent(config) {
44
+ const schema = config.schema ?? baseSchema;
45
+ let docsCache = null;
46
+ let fullDocsCache = null;
47
+ let navCache = null;
48
+ function asMeta(doc) {
49
+ const { content: _content, data: _data, ...meta } = doc;
50
+ return meta;
51
+ }
52
+ async function getDoc2(slug) {
53
+ const resolved = await resolveSource(config.dir, slug);
54
+ if (!resolved) return null;
55
+ try {
56
+ const { data, content } = matter(resolved.source);
57
+ const parsed = schema.parse(data);
58
+ if (isProduction() && isDraft(data)) return null;
59
+ return {
60
+ slug: resolved.actualPath,
61
+ ...parsed,
62
+ content,
63
+ data: parsed
64
+ };
65
+ } catch (error) {
66
+ if (error instanceof z.ZodError) {
67
+ console.error(`Schema validation failed for ${resolved.filepath}:`);
68
+ console.error(error.errors);
69
+ throw error;
70
+ }
71
+ console.error(`Failed to parse ${resolved.filepath}:`, error);
72
+ return null;
73
+ }
74
+ }
75
+ async function getAllDocs2() {
76
+ if (isProduction() && docsCache) return docsCache;
77
+ if (isProduction() && fullDocsCache) {
78
+ const sorted2 = fullDocsCache.map(asMeta);
79
+ docsCache = sorted2;
80
+ return sorted2;
81
+ }
82
+ const docs = [];
83
+ async function scan(dir, prefix = "") {
84
+ const entries = await readdir(dir, { withFileTypes: true });
85
+ for (const entry of entries) {
86
+ if (entry.isDirectory()) {
87
+ await scan(join(dir, entry.name), `${prefix}${entry.name}/`);
88
+ } else if (entry.name.endsWith(".mdx")) {
89
+ const filepath = join(dir, entry.name);
90
+ const source = await readCached(filepath);
91
+ const { data } = matter(source);
92
+ const parsed = schema.parse(data);
93
+ if (isProduction() && isDraft(data)) continue;
94
+ const slug = `${prefix}${entry.name.replace(".mdx", "")}`;
95
+ docs.push({
96
+ slug: slug === "index" ? "" : slug,
97
+ ...parsed
98
+ });
99
+ }
100
+ }
101
+ }
102
+ try {
103
+ await scan(config.dir);
104
+ } catch (error) {
105
+ if (error instanceof z.ZodError) {
106
+ throw error;
107
+ }
108
+ console.error(`Failed to scan docs in ${config.dir}:`, error);
109
+ return [];
110
+ }
111
+ const sorted = docs.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
112
+ if (isProduction()) {
113
+ docsCache = sorted;
114
+ }
115
+ return sorted;
116
+ }
117
+ async function getDocs() {
118
+ if (isProduction() && fullDocsCache) return fullDocsCache;
119
+ const docs = [];
120
+ async function scan(dir, prefix = "") {
121
+ const entries = await readdir(dir, { withFileTypes: true });
122
+ for (const entry of entries) {
123
+ if (entry.isDirectory()) {
124
+ await scan(join(dir, entry.name), `${prefix}${entry.name}/`);
125
+ } else if (entry.name.endsWith(".mdx")) {
126
+ const filepath = join(dir, entry.name);
127
+ const source = await readCached(filepath);
128
+ const { data, content } = matter(source);
129
+ const parsed = schema.parse(data);
130
+ if (isProduction() && isDraft(data)) continue;
131
+ const slug = `${prefix}${entry.name.replace(".mdx", "")}`;
132
+ docs.push({
133
+ slug: slug === "index" ? "" : slug,
134
+ ...parsed,
135
+ content,
136
+ data: parsed
137
+ });
138
+ }
139
+ }
140
+ }
141
+ try {
142
+ await scan(config.dir);
143
+ } catch (error) {
144
+ if (error instanceof z.ZodError) {
145
+ throw error;
146
+ }
147
+ console.error(`Failed to load docs in ${config.dir}:`, error);
148
+ return [];
149
+ }
150
+ const sorted = docs.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
151
+ if (isProduction()) {
152
+ fullDocsCache = sorted;
153
+ }
154
+ return sorted;
155
+ }
156
+ async function getNavigation2() {
157
+ if (isProduction() && navCache) return navCache;
158
+ try {
159
+ const docs = await getAllDocs2();
160
+ const filtered = await buildNavigation(docs, config.dir);
161
+ if (isProduction()) {
162
+ navCache = filtered;
163
+ }
164
+ return filtered;
165
+ } catch (error) {
166
+ console.error(`Failed to build navigation for ${config.dir}:`, error);
167
+ return [];
168
+ }
169
+ }
170
+ let searchCache2 = null;
171
+ async function getSearchDocs2() {
172
+ if (isProduction() && searchCache2) return searchCache2;
173
+ if (isProduction() && fullDocsCache) {
174
+ const sorted2 = fullDocsCache.map((doc) => {
175
+ const headings = extractHeadings(doc.content);
176
+ return {
177
+ ...asMeta(doc),
178
+ content: stripMdx(doc.content),
179
+ headings: headings.length > 0 ? headings : void 0
180
+ };
181
+ }).sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
182
+ searchCache2 = sorted2;
183
+ return sorted2;
184
+ }
185
+ const docs = [];
186
+ async function scan(dir, prefix = "") {
187
+ const entries = await readdir(dir, { withFileTypes: true });
188
+ for (const entry of entries) {
189
+ if (entry.isDirectory()) {
190
+ await scan(join(dir, entry.name), `${prefix}${entry.name}/`);
191
+ } else if (entry.name.endsWith(".mdx")) {
192
+ const filepath = join(dir, entry.name);
193
+ const source = await readCached(filepath);
194
+ const { data, content } = matter(source);
195
+ const parsed = schema.parse(data);
196
+ if (isProduction() && isDraft(data)) continue;
197
+ const slug = `${prefix}${entry.name.replace(".mdx", "")}`;
198
+ const headings = extractHeadings(content);
199
+ docs.push({
200
+ slug: slug === "index" ? "" : slug,
201
+ ...parsed,
202
+ content: stripMdx(content),
203
+ headings: headings.length > 0 ? headings : void 0
204
+ });
205
+ }
206
+ }
207
+ }
208
+ try {
209
+ await scan(config.dir);
210
+ } catch (error) {
211
+ if (error instanceof z.ZodError) {
212
+ throw error;
213
+ }
214
+ console.error(`Failed to build search docs in ${config.dir}:`, error);
215
+ return [];
216
+ }
217
+ const sorted = docs.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
218
+ if (isProduction()) {
219
+ searchCache2 = sorted;
220
+ }
221
+ return sorted;
222
+ }
223
+ return {
224
+ getDoc: getDoc2,
225
+ getDocs,
226
+ getAllDocs: getAllDocs2,
227
+ getNavigation: getNavigation2,
228
+ getSearchDocs: getSearchDocs2,
229
+ schema
230
+ };
231
+ }
232
+ function stripHeadingFormatting(text) {
233
+ return text.replace(/\*\*([^*]+)\*\*/g, "$1").replace(/\*([^*]+)\*/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").trim();
234
+ }
235
+ function headingId(text) {
236
+ return text.toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9_-]/g, "").replace(/-+/g, "-").replace(/^-|-$/g, "");
237
+ }
238
+ function extractHeadings(content) {
239
+ const headings = [];
240
+ const seen = /* @__PURE__ */ new Map();
241
+ const lines = content.split("\n");
242
+ for (const line of lines) {
243
+ const match = line.match(/^(#{2,4})\s+(.+)$/);
244
+ if (!match) continue;
245
+ const hashes = match[1];
246
+ const heading = match[2];
247
+ if (!hashes || !heading) continue;
248
+ const level = hashes.length;
249
+ const raw = stripHeadingFormatting(heading);
250
+ const base = headingId(raw);
251
+ if (!base) continue;
252
+ const count = seen.get(base) ?? 0;
253
+ seen.set(base, count + 1);
254
+ const id = count === 0 ? base : `${base}-${count}`;
255
+ headings.push({ id, text: raw, level });
256
+ }
257
+ return headings;
258
+ }
259
+ function stripMdx(content) {
260
+ return content.replace(/```[\s\S]*?```/g, "").replace(/`[^`]+`/g, "").replace(/import\s+.*?from\s+['"][^'"]+['"];?/g, "").replace(/export\s+.*?;/g, "").replace(/<[^>]+>/g, " ").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/#{1,6}\s+/g, "").replace(/\*\*([^*]+)\*\*/g, "$1").replace(/\*([^*]+)\*/g, "$1").replace(/\n+/g, " ").replace(/\s+/g, " ").trim();
261
+ }
262
+ async function getDoc(docsDir, slug) {
263
+ const resolved = await resolveSource(docsDir, slug);
264
+ if (!resolved) return null;
265
+ try {
266
+ const { data, content } = matter(resolved.source);
267
+ const parsed = baseSchema.parse(data);
268
+ if (isProduction() && isDraft(data)) return null;
269
+ return {
270
+ slug: resolved.actualPath,
271
+ title: parsed.title,
272
+ description: parsed.description,
273
+ order: parsed.order,
274
+ content,
275
+ data: parsed
276
+ };
277
+ } catch (error) {
278
+ if (error instanceof z.ZodError) {
279
+ console.error(`Schema validation failed for ${resolved.filepath}:`);
280
+ console.error(error.errors);
281
+ throw error;
282
+ }
283
+ console.error(`Failed to parse ${resolved.filepath}:`, error);
284
+ return null;
285
+ }
286
+ }
287
+ async function getAllDocs(docsDir) {
288
+ const cacheKey = docsDir;
289
+ if (isProduction()) {
290
+ const cached = metaCache.get(cacheKey);
291
+ if (cached) return cached;
292
+ }
293
+ const docs = [];
294
+ const folderMetas = /* @__PURE__ */ new Map();
295
+ async function scan(dir, prefix = "") {
296
+ const entries = await readdir(dir, { withFileTypes: true });
297
+ const meta = await loadMeta(dir);
298
+ folderMetas.set(prefix, meta);
299
+ for (const entry of entries) {
300
+ if (entry.isDirectory()) {
301
+ await scan(join(dir, entry.name), `${prefix}${entry.name}/`);
302
+ } else if (entry.name.endsWith(".mdx")) {
303
+ const filepath = join(dir, entry.name);
304
+ const source = await readCached(filepath);
305
+ const { data } = matter(source);
306
+ const parsed = baseSchema.parse(data);
307
+ if (isProduction() && isDraft(data)) continue;
308
+ const slug = `${prefix}${entry.name.replace(".mdx", "")}`;
309
+ docs.push({
310
+ slug: slug === "index" ? "" : slug,
311
+ title: parsed.title,
312
+ description: parsed.description,
313
+ order: parsed.order
314
+ });
315
+ }
316
+ }
317
+ }
318
+ try {
319
+ await scan(docsDir);
320
+ } catch (error) {
321
+ if (error instanceof z.ZodError) {
322
+ throw error;
323
+ }
324
+ console.error(`Failed to scan docs in ${docsDir}:`, error);
325
+ return [];
326
+ }
327
+ const rootMeta = folderMetas.get("");
328
+ let sorted;
329
+ if (rootMeta?.pages) {
330
+ sorted = sortByMeta(docs, rootMeta.pages, "");
331
+ } else {
332
+ sorted = docs.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
333
+ }
334
+ if (isProduction()) {
335
+ metaCache.set(cacheKey, sorted);
336
+ }
337
+ return sorted;
338
+ }
339
+ async function getNavigation(docsDir) {
340
+ try {
341
+ const docs = await getAllDocs(docsDir);
342
+ return buildNavigation(docs, docsDir);
343
+ } catch (error) {
344
+ console.error(`Failed to build navigation for ${docsDir}:`, error);
345
+ return [];
346
+ }
347
+ }
348
+ const searchCache = /* @__PURE__ */ new Map();
349
+ async function getSearchDocs(docsDir) {
350
+ const cacheKey = docsDir;
351
+ if (isProduction()) {
352
+ const cached = searchCache.get(cacheKey);
353
+ if (cached) return cached;
354
+ }
355
+ const docs = [];
356
+ async function scan(dir, prefix = "") {
357
+ const entries = await readdir(dir, { withFileTypes: true });
358
+ for (const entry of entries) {
359
+ if (entry.isDirectory()) {
360
+ await scan(join(dir, entry.name), `${prefix}${entry.name}/`);
361
+ } else if (entry.name.endsWith(".mdx")) {
362
+ const filepath = join(dir, entry.name);
363
+ const source = await readCached(filepath);
364
+ const { data, content } = matter(source);
365
+ const parsed = baseSchema.parse(data);
366
+ if (isProduction() && isDraft(data)) continue;
367
+ const slug = `${prefix}${entry.name.replace(".mdx", "")}`;
368
+ const headings = extractHeadings(content);
369
+ docs.push({
370
+ slug: slug === "index" ? "" : slug,
371
+ title: parsed.title,
372
+ description: parsed.description,
373
+ order: parsed.order,
374
+ content: stripMdx(content),
375
+ headings: headings.length > 0 ? headings : void 0
376
+ });
377
+ }
378
+ }
379
+ }
380
+ try {
381
+ await scan(docsDir);
382
+ } catch (error) {
383
+ if (error instanceof z.ZodError) {
384
+ throw error;
385
+ }
386
+ console.error(`Failed to build search docs in ${docsDir}:`, error);
387
+ return [];
388
+ }
389
+ const sorted = docs.sort((a, b) => (a.order ?? 99) - (b.order ?? 99));
390
+ if (isProduction()) {
391
+ searchCache.set(cacheKey, sorted);
392
+ }
393
+ return sorted;
394
+ }
395
+ function fallbacktitle(key) {
396
+ if (key === "") return "docs";
397
+ return key.replace(/-/g, " ");
398
+ }
399
+ async function buildNavigation(docs, docsDir) {
400
+ const grouped = /* @__PURE__ */ new Map();
401
+ for (const doc of docs) {
402
+ const key = groupkey(doc.slug);
403
+ const section = grouped.get(key) ?? {
404
+ key,
405
+ title: fallbacktitle(key),
406
+ items: []
407
+ };
408
+ section.items.push(doc);
409
+ grouped.set(key, section);
410
+ }
411
+ const rootMeta = await loadMeta(docsDir);
412
+ const order = sectionOrder(rootMeta?.pages);
413
+ const sections = [...grouped.values()];
414
+ sections.sort((left, right) => {
415
+ const leftOrder = order.get(left.key);
416
+ const rightOrder = order.get(right.key);
417
+ if (leftOrder !== void 0 && rightOrder !== void 0) return leftOrder - rightOrder;
418
+ if (leftOrder !== void 0) return -1;
419
+ if (rightOrder !== void 0) return 1;
420
+ if (left.key === "") return -1;
421
+ if (right.key === "") return 1;
422
+ return left.key.localeCompare(right.key);
423
+ });
424
+ const metas = await Promise.all(
425
+ sections.map((section) => {
426
+ if (section.key === "") return Promise.resolve(rootMeta);
427
+ return loadMeta(join(docsDir, section.key));
428
+ })
429
+ );
430
+ return sections.map((section, index) => {
431
+ const prefix = section.key ? `${section.key}/` : "";
432
+ const sorted = sortByMeta(section.items, metas[index]?.pages, prefix);
433
+ const label = metas[index]?.title ?? section.title;
434
+ return {
435
+ title: label,
436
+ items: sorted
437
+ };
438
+ }).filter((section) => section.items.length > 0);
439
+ }
440
+ function sectionOrder(pages) {
441
+ const order = /* @__PURE__ */ new Map();
442
+ if (!pages) return order;
443
+ for (const page of pages) {
444
+ const key = groupkey(page);
445
+ if (!order.has(key)) {
446
+ order.set(key, order.size);
447
+ }
448
+ }
449
+ return order;
450
+ }
451
+ function groupkey(slug) {
452
+ if (!slug || slug === "index") return "";
453
+ if (!slug.includes("/")) return slug;
454
+ const [head] = slug.split("/");
455
+ if (!head || head === "index") return "";
456
+ return head;
457
+ }
458
+ function clearContentCache() {
459
+ fileCache.clear();
460
+ metaCache.clear();
461
+ searchCache.clear();
462
+ }
463
+
464
+ export { clearContentCache, defineContent, extractHeadings, getAllDocs, getDoc, getNavigation, getSearchDocs };