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
@@ -4,53 +4,79 @@ const extensions = /\.(mp4|webm|mov|ogg)(\?.*)?$/;
4
4
  const defaults = [
5
5
  {
6
6
  pattern: /loom\.com\/share\/([\w-]+)/,
7
- transform: (m) => ({ src: `https://www.loom.com/embed/${m[1]}`, type: "loom" })
7
+ transform: (m) => ({
8
+ src: `https://www.loom.com/embed/${m[1]}`,
9
+ type: "loom"
10
+ })
8
11
  },
9
12
  {
10
13
  pattern: /vimeo\.com\/(\d+)/,
11
- transform: (m) => ({ src: `https://player.vimeo.com/video/${m[1]}`, type: "vimeo" })
14
+ transform: (m) => ({
15
+ src: `https://player.vimeo.com/video/${m[1]}`,
16
+ type: "vimeo"
17
+ })
12
18
  }
13
19
  ];
14
20
  function makeNode(src, type) {
15
21
  const attributes = [
16
- { type: "mdxJsxAttribute", name: "src", value: src }
22
+ { name: "src", type: "mdxJsxAttribute", value: src }
17
23
  ];
18
- if (type) attributes.push({ type: "mdxJsxAttribute", name: "type", value: type });
24
+ if (type) {
25
+ attributes.push({ name: "type", type: "mdxJsxAttribute", value: type });
26
+ }
19
27
  return {
20
- type: "mdxJsxFlowElement",
21
- name: "Video",
22
28
  attributes,
23
29
  children: [],
24
- data: { _mdxExplicitJsx: true }
30
+ data: { _mdxExplicitJsx: true },
31
+ name: "Video",
32
+ type: "mdxJsxFlowElement"
25
33
  };
26
34
  }
27
35
  function resolve(url, providers) {
28
- if (extensions.test(url)) return makeNode(url);
36
+ if (extensions.test(url)) {
37
+ return makeNode(url);
38
+ }
29
39
  for (const p of providers) {
30
40
  const match = url.match(p.pattern);
31
- if (!match) continue;
41
+ if (!match) {
42
+ continue;
43
+ }
32
44
  const { src, type } = p.transform(match);
33
45
  return makeNode(src, type);
34
46
  }
35
47
  return null;
36
48
  }
37
49
  function extractUrl(node) {
38
- if (node.children.length !== 1) return null;
50
+ if (node.children.length !== 1) {
51
+ return null;
52
+ }
39
53
  const child = node.children[0];
40
- if (!child) return null;
41
- if (child.type === "text") return child.value.trim();
42
- if (child.type === "link") return child.url;
54
+ if (!child) {
55
+ return null;
56
+ }
57
+ if (child.type === "text") {
58
+ return child.value.trim();
59
+ }
60
+ if (child.type === "link") {
61
+ return child.url;
62
+ }
43
63
  return null;
44
64
  }
45
65
  const remarkVideo = (options = {}) => {
46
66
  const all = [...defaults, ...options.providers ?? []];
47
67
  return (tree) => {
48
68
  visit(tree, "paragraph", (node, index, parent) => {
49
- if (!parent || index === void 0) return;
69
+ if (!parent || index === void 0) {
70
+ return;
71
+ }
50
72
  const url = extractUrl(node);
51
- if (!url) return;
73
+ if (!url) {
74
+ return;
75
+ }
52
76
  const video = resolve(url, all);
53
- if (!video) return;
77
+ if (!video) {
78
+ return;
79
+ }
54
80
  parent.children[index] = video;
55
81
  });
56
82
  };
package/dist/schema.d.ts CHANGED
@@ -2,10 +2,10 @@ import { z } from 'zod';
2
2
  export { z } from 'zod';
3
3
 
4
4
  declare const baseSchema: z.ZodObject<{
5
- title: z.ZodString;
6
5
  description: z.ZodOptional<z.ZodString>;
7
- order: z.ZodOptional<z.ZodNumber>;
8
6
  draft: z.ZodOptional<z.ZodBoolean>;
7
+ order: z.ZodOptional<z.ZodNumber>;
8
+ title: z.ZodString;
9
9
  }, "strip", z.ZodTypeAny, {
10
10
  title: string;
11
11
  order?: number | undefined;
@@ -19,36 +19,36 @@ declare const baseSchema: z.ZodObject<{
19
19
  }>;
20
20
  type InferSchema<T extends z.ZodType> = z.infer<T>;
21
21
  declare function defineSchema<T extends z.ZodRawShape>(schema: z.ZodObject<T>): z.ZodObject<z.objectUtil.extendShape<{
22
- title: z.ZodString;
23
22
  description: z.ZodOptional<z.ZodString>;
24
- order: z.ZodOptional<z.ZodNumber>;
25
23
  draft: z.ZodOptional<z.ZodBoolean>;
26
- }, T>, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
24
+ order: z.ZodOptional<z.ZodNumber>;
27
25
  title: z.ZodString;
26
+ }, T>, z.UnknownKeysParam, z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
28
27
  description: z.ZodOptional<z.ZodString>;
29
- order: z.ZodOptional<z.ZodNumber>;
30
28
  draft: z.ZodOptional<z.ZodBoolean>;
31
- }, T>>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<{
29
+ order: z.ZodOptional<z.ZodNumber>;
32
30
  title: z.ZodString;
31
+ }, T>>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<{
33
32
  description: z.ZodOptional<z.ZodString>;
34
- order: z.ZodOptional<z.ZodNumber>;
35
33
  draft: z.ZodOptional<z.ZodBoolean>;
34
+ order: z.ZodOptional<z.ZodNumber>;
35
+ title: z.ZodString;
36
36
  }, T>> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
37
37
  declare function extendSchema<T extends z.ZodRawShape>(fields: T): z.ZodObject<z.objectUtil.extendShape<{
38
- title: z.ZodString;
39
38
  description: z.ZodOptional<z.ZodString>;
40
- order: z.ZodOptional<z.ZodNumber>;
41
39
  draft: z.ZodOptional<z.ZodBoolean>;
42
- }, T>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
40
+ order: z.ZodOptional<z.ZodNumber>;
43
41
  title: z.ZodString;
42
+ }, T>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<z.objectUtil.extendShape<{
44
43
  description: z.ZodOptional<z.ZodString>;
45
- order: z.ZodOptional<z.ZodNumber>;
46
44
  draft: z.ZodOptional<z.ZodBoolean>;
47
- }, T>>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<{
45
+ order: z.ZodOptional<z.ZodNumber>;
48
46
  title: z.ZodString;
47
+ }, T>>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<z.objectUtil.extendShape<{
49
48
  description: z.ZodOptional<z.ZodString>;
50
- order: z.ZodOptional<z.ZodNumber>;
51
49
  draft: z.ZodOptional<z.ZodBoolean>;
50
+ order: z.ZodOptional<z.ZodNumber>;
51
+ title: z.ZodString;
52
52
  }, T>> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>;
53
53
 
54
54
  export { type InferSchema, baseSchema, defineSchema, extendSchema };
package/dist/schema.js CHANGED
@@ -2,10 +2,10 @@ import { z } from 'zod';
2
2
  export { z } from 'zod';
3
3
 
4
4
  const baseSchema = z.object({
5
- title: z.string(),
6
5
  description: z.string().optional(),
6
+ draft: z.boolean().optional(),
7
7
  order: z.number().optional(),
8
- draft: z.boolean().optional()
8
+ title: z.string()
9
9
  });
10
10
  function defineSchema(schema) {
11
11
  return baseSchema.merge(schema);
package/dist/search.js CHANGED
@@ -2,12 +2,20 @@ import { defaultweights, scoreterms, termindex } from './searchscore';
2
2
 
3
3
  const indexCache = /* @__PURE__ */ new WeakMap();
4
4
  function fuzzy(text, query) {
5
- if (!query || !text) return 0;
6
- if (query.length > text.length) return 0;
5
+ if (!query || !text) {
6
+ return 0;
7
+ }
8
+ if (query.length > text.length) {
9
+ return 0;
10
+ }
7
11
  const lower = text.toLowerCase();
8
12
  const q = query.toLowerCase();
9
- if (lower === q) return q.length * 2 + 30;
10
- if (lower.startsWith(q)) return q.length * 2 + 10;
13
+ if (lower === q) {
14
+ return q.length * 2 + 30;
15
+ }
16
+ if (lower.startsWith(q)) {
17
+ return q.length * 2 + 10;
18
+ }
11
19
  let score = 0;
12
20
  let qi = 0;
13
21
  let consecutive = 0;
@@ -23,7 +31,7 @@ function fuzzy(text, query) {
23
31
  return qi < q.length ? 0 : score;
24
32
  }
25
33
  function normalize(text) {
26
- return text?.toLowerCase().replace(/\s+/g, " ").trim() ?? "";
34
+ return text?.toLowerCase().replaceAll(/\s+/g, " ").trim() ?? "";
27
35
  }
28
36
  function split(query) {
29
37
  return normalize(query).split(" ").filter(Boolean);
@@ -33,51 +41,80 @@ function words(text) {
33
41
  }
34
42
  function getIndex(docs) {
35
43
  const cached = indexCache.get(docs);
36
- if (cached) return cached;
44
+ if (cached) {
45
+ return cached;
46
+ }
37
47
  const indexed = docs.map((doc) => ({
38
- doc,
39
- title: normalize(doc.title),
40
- description: normalize(doc.description),
41
48
  content: doc.content.toLowerCase(),
49
+ contentindex: termindex(words(doc.content.toLowerCase())),
42
50
  contentraw: doc.content,
43
- slug: normalize(doc.slug),
51
+ description: normalize(doc.description),
52
+ descriptionindex: termindex(words(normalize(doc.description))),
53
+ doc,
54
+ headingindex: termindex(
55
+ words(
56
+ (doc.headings ?? []).map((heading) => normalize(heading.text)).join(" ")
57
+ )
58
+ ),
44
59
  headings: (doc.headings ?? []).map((heading) => ({
45
60
  id: heading.id,
46
- text: heading.text,
47
61
  level: heading.level,
48
- normalized: normalize(heading.text)
62
+ normalized: normalize(heading.text),
63
+ text: heading.text
49
64
  })),
50
- titleindex: termindex(words(normalize(doc.title))),
51
- descriptionindex: termindex(words(normalize(doc.description))),
65
+ slug: normalize(doc.slug),
52
66
  slugindex: termindex(words(normalize(doc.slug))),
53
- headingindex: termindex(words((doc.headings ?? []).map((heading) => normalize(heading.text)).join(" "))),
54
- contentindex: termindex(words(doc.content.toLowerCase()))
67
+ title: normalize(doc.title),
68
+ titleindex: termindex(words(normalize(doc.title)))
55
69
  }));
56
70
  indexCache.set(docs, indexed);
57
71
  return indexed;
58
72
  }
59
73
  function searchContent(content, contentraw, query, terms) {
60
- if (!content || !query) return null;
61
- const positions = [content.indexOf(query), ...terms.map((term) => content.indexOf(term))];
74
+ if (!content || !query) {
75
+ return null;
76
+ }
77
+ const positions = [
78
+ content.indexOf(query),
79
+ ...terms.map((term) => content.indexOf(term))
80
+ ];
62
81
  const idx = positions.filter((value) => value >= 0).sort((a, b) => a - b)[0] ?? -1;
63
- if (idx === -1) return null;
64
- const termScore = terms.reduce((score, term) => score + (content.includes(term) ? 1 : 0), 0);
82
+ if (idx === -1) {
83
+ return null;
84
+ }
85
+ const termScore = terms.reduce(
86
+ (score, term) => score + (content.includes(term) ? 1 : 0),
87
+ 0
88
+ );
65
89
  const start = Math.max(0, idx - 40);
66
90
  const source = contentraw ?? content;
67
91
  const end = Math.min(source.length, idx + query.length + 60);
68
92
  const prefix = start > 0 ? "..." : "";
69
93
  const suffix = end < source.length ? "..." : "";
70
- return { score: 5 + termScore, snippet: prefix + source.slice(start, end).trim() + suffix };
94
+ return {
95
+ score: 5 + termScore,
96
+ snippet: prefix + source.slice(start, end).trim() + suffix
97
+ };
71
98
  }
72
99
  function searchHeadings(headings, query, terms) {
73
- if (headings.length === 0 || !query) return null;
100
+ if (headings.length === 0 || !query) {
101
+ return null;
102
+ }
74
103
  let best = null;
75
104
  for (const heading of headings) {
76
- const termScore = terms.reduce((score2, term) => score2 + (heading.normalized.includes(term) ? 3 : 0), 0);
105
+ const termScore = terms.reduce(
106
+ (score2, term) => score2 + (heading.normalized.includes(term) ? 3 : 0),
107
+ 0
108
+ );
77
109
  const levelBoost = heading.level === 2 ? 8 : heading.level === 3 ? 5 : 3;
78
110
  const score = fuzzy(heading.normalized, query) * 2 + termScore + levelBoost;
79
111
  if (score > 0 && (!best || score > best.score)) {
80
- best = { score, anchor: heading.id, heading: heading.text, snippet: heading.text };
112
+ best = {
113
+ anchor: heading.id,
114
+ heading: heading.text,
115
+ score,
116
+ snippet: heading.text
117
+ };
81
118
  }
82
119
  }
83
120
  return best;
@@ -91,21 +128,29 @@ function push(results, result, limit) {
91
128
  for (let i = 1; i < results.length; i++) {
92
129
  const candidate = results[i];
93
130
  const current = results[min];
94
- if (!candidate || !current) continue;
95
- if (candidate.score < current.score) min = i;
131
+ if (!candidate || !current) {
132
+ continue;
133
+ }
134
+ if (candidate.score < current.score) {
135
+ min = i;
136
+ }
96
137
  }
97
138
  const minEntry = results[min];
98
- if (minEntry && result.score <= minEntry.score) return;
139
+ if (minEntry && result.score <= minEntry.score) {
140
+ return;
141
+ }
99
142
  results[min] = result;
100
143
  }
101
144
  function createLocalSearch(options = {}) {
102
145
  const weights = {
103
146
  ...defaultweights,
104
- ...options.weights ?? {}
147
+ ...options.weights
105
148
  };
106
149
  return {
107
150
  search(query, docs, limit = Number.POSITIVE_INFINITY) {
108
- if (!docs || docs.length === 0) return [];
151
+ if (!docs || docs.length === 0) {
152
+ return [];
153
+ }
109
154
  const q = query?.trim() ?? "";
110
155
  if (!q) {
111
156
  return docs.slice(0, limit).map((doc) => ({ doc, score: 0 }));
@@ -118,28 +163,41 @@ function createLocalSearch(options = {}) {
118
163
  const titleScore = fuzzy(item.title, normalized) * 3;
119
164
  const descScore = fuzzy(item.description, normalized);
120
165
  const headingResult = searchHeadings(item.headings, normalized, terms);
121
- const contentResult = searchContent(item.content, item.contentraw, normalized, terms);
122
- const termScore = scoreterms(terms, {
123
- title: item.title,
124
- slug: item.slug,
125
- description: item.description,
126
- content: item.content,
127
- titleindex: item.titleindex,
128
- slugindex: item.slugindex,
129
- descriptionindex: item.descriptionindex,
130
- headingindex: item.headingindex,
131
- contentindex: item.contentindex
132
- }, weights);
166
+ const contentResult = searchContent(
167
+ item.content,
168
+ item.contentraw,
169
+ normalized,
170
+ terms
171
+ );
172
+ const termScore = scoreterms(
173
+ terms,
174
+ {
175
+ content: item.content,
176
+ contentindex: item.contentindex,
177
+ description: item.description,
178
+ descriptionindex: item.descriptionindex,
179
+ headingindex: item.headingindex,
180
+ slug: item.slug,
181
+ slugindex: item.slugindex,
182
+ title: item.title,
183
+ titleindex: item.titleindex
184
+ },
185
+ weights
186
+ );
133
187
  const exactScore = item.title === normalized || item.slug === normalized ? 30 : 0;
134
188
  const score = titleScore + descScore + termScore + exactScore + (headingResult?.score ?? 0) + (contentResult?.score ?? 0);
135
189
  if (score > 0) {
136
- push(results, {
137
- doc: item.doc,
138
- score,
139
- snippet: headingResult?.snippet ?? contentResult?.snippet,
140
- anchor: headingResult?.anchor,
141
- heading: headingResult?.heading
142
- }, limit);
190
+ push(
191
+ results,
192
+ {
193
+ anchor: headingResult?.anchor,
194
+ doc: item.doc,
195
+ heading: headingResult?.heading,
196
+ score,
197
+ snippet: headingResult?.snippet ?? contentResult?.snippet
198
+ },
199
+ limit
200
+ );
143
201
  }
144
202
  }
145
203
  results.sort((a, b) => b.score - a.score);
@@ -26,21 +26,25 @@ function tokenize(text, config) {
26
26
  return text.toLowerCase().split(/[^a-z0-9]+/).filter((w) => w.length >= min && !stops.has(w)).map((word) => config?.stemming ? stem(word) : word).filter((word) => word.length >= min);
27
27
  }
28
28
  function doctext(doc) {
29
- return [doc.title, doc.description ?? "", ...doc.headings, doc.content].join(" ");
29
+ return [doc.title, doc.description ?? "", ...doc.headings, doc.content].join(
30
+ " "
31
+ );
30
32
  }
31
33
  function indexDocument(index, idx, doc) {
32
34
  const tokens = tokenize(doctext(doc), index.config);
33
35
  for (const token of tokens) {
34
36
  const existing = index.terms.get(token);
35
37
  if (existing) {
36
- if (!existing.includes(idx)) existing.push(idx);
38
+ if (!existing.includes(idx)) {
39
+ existing.push(idx);
40
+ }
37
41
  } else {
38
42
  index.terms.set(token, [idx]);
39
43
  }
40
44
  }
41
45
  }
42
46
  function createIndex(config) {
43
- return { documents: [], terms: /* @__PURE__ */ new Map(), version: 1, config };
47
+ return { config, documents: [], terms: /* @__PURE__ */ new Map(), version: 1 };
44
48
  }
45
49
  function addDocument(index, doc) {
46
50
  const idx = index.documents.length;
@@ -49,13 +53,19 @@ function addDocument(index, doc) {
49
53
  }
50
54
  function removeDocument(index, path) {
51
55
  const idx = index.documents.findIndex((d) => d.path === path);
52
- if (idx === -1) return;
56
+ if (idx === -1) {
57
+ return;
58
+ }
53
59
  const doc = index.documents[idx];
54
- if (!doc) return;
60
+ if (!doc) {
61
+ return;
62
+ }
55
63
  const lastidx = index.documents.length - 1;
56
64
  const remove = (token, target) => {
57
65
  const entries = index.terms.get(token);
58
- if (!entries) return;
66
+ if (!entries) {
67
+ return;
68
+ }
59
69
  const next = entries.filter((value) => value !== target);
60
70
  if (next.length === 0) {
61
71
  index.terms.delete(token);
@@ -65,9 +75,13 @@ function removeDocument(index, path) {
65
75
  };
66
76
  const replace = (token, from, to) => {
67
77
  const entries = index.terms.get(token);
68
- if (!entries) return;
78
+ if (!entries) {
79
+ return;
80
+ }
69
81
  for (let i = 0; i < entries.length; i++) {
70
- if (entries[i] === from) entries[i] = to;
82
+ if (entries[i] === from) {
83
+ entries[i] = to;
84
+ }
71
85
  }
72
86
  };
73
87
  for (const token of new Set(tokenize(doctext(doc), index.config))) {
@@ -90,11 +104,15 @@ function removeDocument(index, path) {
90
104
  }
91
105
  function search(index, query, limit = 10) {
92
106
  const tokens = tokenize(query, index.config);
93
- if (tokens.length === 0) return [];
107
+ if (tokens.length === 0) {
108
+ return [];
109
+ }
94
110
  const scores = /* @__PURE__ */ new Map();
95
111
  for (const token of tokens) {
96
112
  const indices = index.terms.get(token);
97
- if (!indices) continue;
113
+ if (!indices) {
114
+ continue;
115
+ }
98
116
  for (const idx of indices) {
99
117
  scores.set(idx, (scores.get(idx) ?? 0) + 1);
100
118
  }
@@ -103,44 +121,68 @@ function search(index, query, limit = 10) {
103
121
  }
104
122
  function serializeIndex(index) {
105
123
  return JSON.stringify({
124
+ config: index.config,
106
125
  documents: index.documents,
107
126
  terms: [...index.terms.entries()],
108
- version: index.version,
109
- config: index.config
127
+ version: index.version
110
128
  });
111
129
  }
112
130
  function isrecord(value) {
113
131
  return typeof value === "object" && value !== null;
114
132
  }
115
133
  function issearchdocument(value) {
116
- if (!isrecord(value)) return false;
117
- if (typeof value.path !== "string") return false;
118
- if (typeof value.title !== "string") return false;
119
- if (typeof value.content !== "string") return false;
120
- if (!Array.isArray(value.headings) || value.headings.some((item) => typeof item !== "string")) return false;
121
- if (value.description !== void 0 && typeof value.description !== "string") return false;
134
+ if (!isrecord(value)) {
135
+ return false;
136
+ }
137
+ if (typeof value.path !== "string") {
138
+ return false;
139
+ }
140
+ if (typeof value.title !== "string") {
141
+ return false;
142
+ }
143
+ if (typeof value.content !== "string") {
144
+ return false;
145
+ }
146
+ if (!Array.isArray(value.headings) || value.headings.some((item) => typeof item !== "string")) {
147
+ return false;
148
+ }
149
+ if (value.description !== void 0 && typeof value.description !== "string") {
150
+ return false;
151
+ }
122
152
  if (value.tags !== void 0 && (!Array.isArray(value.tags) || value.tags.some((item) => typeof item !== "string"))) {
123
153
  return false;
124
154
  }
125
155
  return true;
126
156
  }
127
157
  function istermentry(value) {
128
- if (!Array.isArray(value) || value.length !== 2) return false;
129
- if (typeof value[0] !== "string") return false;
158
+ if (!Array.isArray(value) || value.length !== 2) {
159
+ return false;
160
+ }
161
+ if (typeof value[0] !== "string") {
162
+ return false;
163
+ }
130
164
  if (!Array.isArray(value[1]) || value[1].some((item) => typeof item !== "number" || !Number.isInteger(item))) {
131
165
  return false;
132
166
  }
133
167
  return true;
134
168
  }
135
169
  function isindexconfig(value) {
136
- if (!isrecord(value)) return false;
137
- if (value.stemming !== void 0 && typeof value.stemming !== "boolean") return false;
170
+ if (!isrecord(value)) {
171
+ return false;
172
+ }
173
+ if (value.stemming !== void 0 && typeof value.stemming !== "boolean") {
174
+ return false;
175
+ }
138
176
  if (value.minLength !== void 0 && (typeof value.minLength !== "number" || !Number.isInteger(value.minLength))) {
139
177
  return false;
140
178
  }
141
179
  if (value.stopWords !== void 0) {
142
- if (!Array.isArray(value.stopWords)) return false;
143
- if (value.stopWords.some((item) => typeof item !== "string")) return false;
180
+ if (!Array.isArray(value.stopWords)) {
181
+ return false;
182
+ }
183
+ if (value.stopWords.some((item) => typeof item !== "string")) {
184
+ return false;
185
+ }
144
186
  }
145
187
  return true;
146
188
  }
@@ -157,27 +199,37 @@ function deserializeIndex(data) {
157
199
  if (!termsraw || termsraw.some((item) => !istermentry(item))) {
158
200
  throw new Error("invalid search index terms");
159
201
  }
160
- const version = parsed.version;
202
+ const { version } = parsed;
161
203
  if (typeof version !== "number" || !Number.isInteger(version)) {
162
- throw new Error("invalid search index version");
204
+ throw new TypeError("invalid search index version");
163
205
  }
164
- const config = parsed.config;
206
+ const { config } = parsed;
165
207
  if (config !== void 0 && !isindexconfig(config)) {
166
208
  throw new Error("invalid search index config");
167
209
  }
168
210
  return {
211
+ config,
169
212
  documents,
170
213
  terms: new Map(termsraw),
171
- version,
172
- config
214
+ version
173
215
  };
174
216
  }
175
217
  function stem(word) {
176
- if (word.length <= 3) return word;
177
- if (word.endsWith("ies") && word.length > 4) return `${word.slice(0, -3)}y`;
178
- if (word.endsWith("ing") && word.length > 5) return word.slice(0, -3);
179
- if (word.endsWith("ed") && word.length > 4) return word.slice(0, -2);
180
- if (word.endsWith("s") && !word.endsWith("ss") && word.length > 3) return word.slice(0, -1);
218
+ if (word.length <= 3) {
219
+ return word;
220
+ }
221
+ if (word.endsWith("ies") && word.length > 4) {
222
+ return `${word.slice(0, -3)}y`;
223
+ }
224
+ if (word.endsWith("ing") && word.length > 5) {
225
+ return word.slice(0, -3);
226
+ }
227
+ if (word.endsWith("ed") && word.length > 4) {
228
+ return word.slice(0, -2);
229
+ }
230
+ if (word.endsWith("s") && !word.endsWith("ss") && word.length > 3) {
231
+ return word.slice(0, -1);
232
+ }
181
233
  return word;
182
234
  }
183
235
 
@@ -1,6 +1,6 @@
1
1
  const searchmaxquery = 200;
2
2
  function normalizequery(query) {
3
- return query.toLowerCase().replace(/\s+/g, " ").trim().slice(0, searchmaxquery);
3
+ return query.toLowerCase().replaceAll(/\s+/g, " ").trim().slice(0, searchmaxquery);
4
4
  }
5
5
  function trimquery(query) {
6
6
  return query.slice(0, searchmaxquery);
@@ -1,14 +1,14 @@
1
1
  import { typomatch } from './searchtypo';
2
2
 
3
3
  const defaultweights = {
4
- titleExact: 9,
5
- titleTypo: 5,
6
- slugExact: 7,
7
- slugTypo: 4,
4
+ contentExact: 2,
8
5
  descriptionExact: 4,
9
6
  descriptionTypo: 2,
10
7
  headingTypo: 2,
11
- contentExact: 2
8
+ slugExact: 7,
9
+ slugTypo: 4,
10
+ titleExact: 9,
11
+ titleTypo: 5
12
12
  };
13
13
  function termindex(words) {
14
14
  return { list: words, set: new Set(words) };