@axerity/cli 0.1.4 → 0.2.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 (340) hide show
  1. package/bin/axerity.js +70 -218
  2. package/dist/client/_app/immutable/assets/0.jCJXzoiy.css +1 -0
  3. package/dist/client/_app/immutable/assets/2.DZRzHaE1.css +1 -0
  4. package/dist/client/_app/immutable/assets/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
  5. package/dist/client/_app/immutable/assets/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
  6. package/dist/client/_app/immutable/assets/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
  7. package/dist/client/_app/immutable/assets/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
  8. package/dist/client/_app/immutable/assets/geist-mono-cyrillic-ext-wght-normal.I4S5GZfc.woff2 +0 -0
  9. package/dist/client/_app/immutable/assets/geist-mono-cyrillic-wght-normal.BmXc_FBt.woff2 +0 -0
  10. package/dist/client/_app/immutable/assets/geist-mono-latin-ext-wght-normal.DrnZ1wKl.woff2 +0 -0
  11. package/dist/client/_app/immutable/assets/geist-mono-latin-wght-normal.B_7UjwxQ.woff2 +0 -0
  12. package/dist/client/_app/immutable/assets/geist-mono-symbols2-wght-normal.GZpp1pK2.woff2 +0 -0
  13. package/dist/client/_app/immutable/assets/geist-mono-vietnamese-wght-normal.D8KDMBhC.woff2 +0 -0
  14. package/dist/client/_app/immutable/assets/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
  15. package/dist/client/_app/immutable/chunks/0CIKaoUA.js +139 -0
  16. package/dist/client/_app/immutable/chunks/0tC8Ubqr.js +2 -0
  17. package/dist/client/_app/immutable/chunks/29nvmPLe2.js +1 -0
  18. package/dist/client/_app/immutable/chunks/9IV9o0dV2.js +4 -0
  19. package/dist/client/_app/immutable/chunks/B-elEOLV.js +24 -0
  20. package/dist/client/_app/immutable/chunks/B1R9-4vu.js +89 -0
  21. package/dist/client/_app/immutable/chunks/B1eXHGII2.js +10 -0
  22. package/dist/client/_app/immutable/chunks/B2NKIbe62.js +206 -0
  23. package/dist/client/_app/immutable/chunks/B5Brrqz92.js +1 -0
  24. package/dist/client/_app/immutable/chunks/B6nymVS3.js +1 -0
  25. package/dist/client/_app/immutable/chunks/B8E5l9fg2.js +1 -0
  26. package/dist/client/_app/immutable/chunks/B8gBHxth2.js +1 -0
  27. package/dist/client/_app/immutable/chunks/BC8A8xkk.js +2 -0
  28. package/dist/client/_app/immutable/chunks/BGU5ZGjx.js +1 -0
  29. package/dist/client/_app/immutable/chunks/BLhBgXDr2.js +1 -0
  30. package/dist/client/_app/immutable/chunks/BNdlLOgu2.js +2 -0
  31. package/dist/client/_app/immutable/chunks/BQyPqLag.js +84 -0
  32. package/dist/client/_app/immutable/chunks/BRQspS80.js +162 -0
  33. package/dist/client/_app/immutable/chunks/BVz-DmJs2.js +132 -0
  34. package/dist/client/_app/immutable/chunks/BWPyau1x.js +1 -0
  35. package/dist/client/_app/immutable/chunks/BXD4L9Ly.js +9 -0
  36. package/dist/client/_app/immutable/chunks/B_Yg36qy2.js +1 -0
  37. package/dist/client/_app/immutable/chunks/BcuUc08l.js +292 -0
  38. package/dist/client/_app/immutable/chunks/BdsP84LY.js +231 -0
  39. package/dist/client/_app/immutable/chunks/Bie0X5s02.js +62 -0
  40. package/dist/client/_app/immutable/chunks/BifhSqXX.js +1 -0
  41. package/dist/client/_app/immutable/chunks/BjVjgMFk2.js +15 -0
  42. package/dist/client/_app/immutable/chunks/BpwmCo88.js +1 -0
  43. package/dist/client/_app/immutable/chunks/BxQVBtgJ.js +1 -0
  44. package/dist/client/_app/immutable/chunks/C2oEw9bf.js +34 -0
  45. package/dist/client/_app/immutable/chunks/C6Oj8XFW.js +1 -0
  46. package/dist/client/_app/immutable/chunks/C6v0vZRT2.js +36 -0
  47. package/dist/client/_app/immutable/chunks/C7H7uo1r.js +70 -0
  48. package/dist/client/_app/immutable/chunks/C8Fc0cco.js +1 -0
  49. package/dist/client/_app/immutable/chunks/CDfHwfr9.js +1 -0
  50. package/dist/client/_app/immutable/chunks/CEW3xh3M.js +124 -0
  51. package/dist/client/_app/immutable/chunks/CFNmf5NX.js +1 -0
  52. package/dist/client/_app/immutable/chunks/CGhzzHe4.js +1 -0
  53. package/dist/client/_app/immutable/chunks/CJMWL00f.js +1 -0
  54. package/dist/client/_app/immutable/chunks/CLrCY0qQ2.js +1 -0
  55. package/dist/client/_app/immutable/chunks/COu5VFF2.js +78 -0
  56. package/dist/client/_app/immutable/chunks/CSKSodPl2.js +1 -0
  57. package/dist/client/_app/immutable/chunks/CVNFCEpi.js +1 -0
  58. package/dist/client/_app/immutable/chunks/CWUJwgR2.js +1 -0
  59. package/dist/client/_app/immutable/chunks/CXC42hVj.js +70 -0
  60. package/dist/client/_app/immutable/chunks/CZqBFf11.js +30 -0
  61. package/dist/client/_app/immutable/chunks/CaWcga612.js +1 -0
  62. package/dist/client/_app/immutable/chunks/CcX7Oofq.js +1 -0
  63. package/dist/client/_app/immutable/chunks/Chn8RaCU2.js +1 -0
  64. package/dist/client/_app/immutable/chunks/CtmfIXf-.js +161 -0
  65. package/dist/client/_app/immutable/chunks/D0Co2O6p.js +7 -0
  66. package/dist/client/_app/immutable/chunks/D1O9pT8r.js +1 -0
  67. package/dist/client/_app/immutable/chunks/D1z0eUZA.js +3 -0
  68. package/dist/client/_app/immutable/chunks/D5KVydqU.js +1 -0
  69. package/dist/client/_app/immutable/chunks/D6jRqBbL.js +1 -0
  70. package/dist/client/_app/immutable/chunks/DDXR3Aw12.js +1 -0
  71. package/dist/client/_app/immutable/chunks/DG5yTEkY.js +1 -0
  72. package/dist/client/_app/immutable/chunks/DGHybmkM2.js +1 -0
  73. package/dist/client/_app/immutable/chunks/DITdNjTm.js +7 -0
  74. package/dist/client/_app/immutable/chunks/D_nZbl6c.js +162 -0
  75. package/dist/client/_app/immutable/chunks/Dg6QheNk.js +85 -0
  76. package/dist/client/_app/immutable/chunks/Dn1BfjD4.js +1 -0
  77. package/dist/client/_app/immutable/chunks/DpEnPnBc.js +1 -0
  78. package/dist/client/_app/immutable/chunks/Drl36yuV.js +40 -0
  79. package/dist/client/_app/immutable/chunks/Dt_5ZQE2.js +1 -0
  80. package/dist/client/_app/immutable/chunks/ED9-GWAc2.js +10 -0
  81. package/dist/client/_app/immutable/chunks/FqbQrHcz2.js +321 -0
  82. package/dist/client/_app/immutable/chunks/O1MNaiG9.js +3 -0
  83. package/dist/client/_app/immutable/chunks/PLsDE8Xa.js +24 -0
  84. package/dist/client/_app/immutable/chunks/PwGqCEPd.js +106 -0
  85. package/dist/client/_app/immutable/chunks/QmWylQL4.js +96 -0
  86. package/dist/client/_app/immutable/chunks/SbORYBuH.js +1 -0
  87. package/dist/client/_app/immutable/chunks/Vhh-h91d.js +257 -0
  88. package/dist/client/_app/immutable/chunks/Y3d8lUBM.js +120 -0
  89. package/dist/client/_app/immutable/chunks/aheLp5ES.js +32 -0
  90. package/dist/client/_app/immutable/chunks/dcFrWhgf.js +1 -0
  91. package/dist/client/_app/immutable/chunks/dqbyyLvi2.js +10 -0
  92. package/dist/client/_app/immutable/chunks/hFfQmBrk2.js +1 -0
  93. package/dist/client/_app/immutable/chunks/mktnrgVa.js +1 -0
  94. package/dist/client/_app/immutable/chunks/qD2cSsUD2.js +1 -0
  95. package/dist/client/_app/immutable/chunks/v-V-aVm52.js +43 -0
  96. package/dist/client/_app/immutable/chunks/wCc4pE4l.js +3 -0
  97. package/dist/client/_app/immutable/chunks/xihTtKlq.js +1 -0
  98. package/dist/client/_app/immutable/entry/app.D6KBNU0y.js +2 -0
  99. package/dist/client/_app/immutable/entry/start.CQdeQUt-.js +1 -0
  100. package/dist/client/_app/immutable/nodes/0.DBZ13WOO.js +1 -0
  101. package/dist/client/_app/immutable/nodes/1.B_AZbN4M.js +1 -0
  102. package/dist/client/_app/immutable/nodes/2.OqcLisIf.js +28 -0
  103. package/dist/client/_app/version.json +1 -0
  104. package/dist/env.js +94 -0
  105. package/dist/handler.js +1494 -0
  106. package/dist/index.js +345 -0
  107. package/dist/server/chunks/0-oTZ8HCk-.js +40 -0
  108. package/dist/server/chunks/0-oTZ8HCk-.js.map +1 -0
  109. package/dist/server/chunks/1-nu6YvZRQ.js +9 -0
  110. package/dist/server/chunks/1-nu6YvZRQ.js.map +1 -0
  111. package/dist/server/chunks/2-YpqcBGyH.js +54 -0
  112. package/dist/server/chunks/2-YpqcBGyH.js.map +1 -0
  113. package/dist/server/chunks/Icon-D37LtZZG.js +186 -0
  114. package/dist/server/chunks/Icon-D37LtZZG.js.map +1 -0
  115. package/dist/server/chunks/_error.svelte-NKP81ks-.js +48 -0
  116. package/dist/server/chunks/_error.svelte-NKP81ks-.js.map +1 -0
  117. package/dist/server/chunks/_layout.svelte-2Eq-_AqW.js +31 -0
  118. package/dist/server/chunks/_layout.svelte-2Eq-_AqW.js.map +1 -0
  119. package/dist/server/chunks/_page.svelte-Chjw6C-d.js +2206 -0
  120. package/dist/server/chunks/_page.svelte-Chjw6C-d.js.map +1 -0
  121. package/dist/server/chunks/_server.ts-5K31OG2_.js +31 -0
  122. package/dist/server/chunks/_server.ts-5K31OG2_.js.map +1 -0
  123. package/dist/server/chunks/_server.ts-BRaXDyO1.js +29 -0
  124. package/dist/server/chunks/_server.ts-BRaXDyO1.js.map +1 -0
  125. package/dist/server/chunks/_server.ts-BuDGLKUC.js +213 -0
  126. package/dist/server/chunks/_server.ts-BuDGLKUC.js.map +1 -0
  127. package/dist/server/chunks/_server.ts-Bx1daJ1-.js +53 -0
  128. package/dist/server/chunks/_server.ts-Bx1daJ1-.js.map +1 -0
  129. package/dist/server/chunks/_server.ts-By7FRFNB.js +37 -0
  130. package/dist/server/chunks/_server.ts-By7FRFNB.js.map +1 -0
  131. package/dist/server/chunks/_server.ts-DIxsjlQ0.js +32 -0
  132. package/dist/server/chunks/_server.ts-DIxsjlQ0.js.map +1 -0
  133. package/dist/server/chunks/_server.ts-Dgpc__Yz.js +41 -0
  134. package/dist/server/chunks/_server.ts-Dgpc__Yz.js.map +1 -0
  135. package/dist/server/chunks/_server.ts-kWOJv5IZ.js +26 -0
  136. package/dist/server/chunks/_server.ts-kWOJv5IZ.js.map +1 -0
  137. package/dist/server/chunks/content-store-DV5Rlfo3.js +5252 -0
  138. package/dist/server/chunks/content-store-DV5Rlfo3.js.map +1 -0
  139. package/dist/server/chunks/docpage-BkHysAhp.js +5 -0
  140. package/dist/server/chunks/docpage-BkHysAhp.js.map +1 -0
  141. package/dist/server/chunks/exports-C0PApeP1.js +758 -0
  142. package/dist/server/chunks/exports-C0PApeP1.js.map +1 -0
  143. package/dist/server/chunks/hooks.server-BnfZljxX.js +42 -0
  144. package/dist/server/chunks/hooks.server-BnfZljxX.js.map +1 -0
  145. package/dist/server/chunks/internal-pc3wKdix.js +5374 -0
  146. package/dist/server/chunks/internal-pc3wKdix.js.map +1 -0
  147. package/dist/server/chunks/mdfile-DBiwGtNY.js +5 -0
  148. package/dist/server/chunks/mdfile-DBiwGtNY.js.map +1 -0
  149. package/dist/server/chunks/site-CmugjRXT.js +57 -0
  150. package/dist/server/chunks/site-CmugjRXT.js.map +1 -0
  151. package/dist/server/index.js +4356 -0
  152. package/dist/server/index.js.map +1 -0
  153. package/dist/server/manifest.js +103 -0
  154. package/dist/server/manifest.js.map +1 -0
  155. package/dist/shims.js +32 -0
  156. package/package.json +24 -16
  157. package/runtime/crawl.js +58 -0
  158. package/runtime/preview.js +42 -0
  159. package/runtime/serve.js +78 -0
  160. package/runtime/static.js +76 -0
  161. package/mdsvex.config.js +0 -261
  162. package/scripts/prepare-engine.mjs +0 -20
  163. package/src/app.d.ts +0 -17
  164. package/src/app.html +0 -39
  165. package/src/content/demo/api/meta.json +0 -5
  166. package/src/content/demo/api/pet/add-pet.md +0 -105
  167. package/src/content/demo/api/pet/delete-pet.md +0 -70
  168. package/src/content/demo/api/pet/find-by-status.md +0 -72
  169. package/src/content/demo/api/pet/find-by-tags.md +0 -64
  170. package/src/content/demo/api/pet/get-pet.md +0 -99
  171. package/src/content/demo/api/pet/meta.json +0 -15
  172. package/src/content/demo/api/pet/pet-object.md +0 -112
  173. package/src/content/demo/api/pet/update-pet-with-form.md +0 -69
  174. package/src/content/demo/api/pet/update-pet.md +0 -79
  175. package/src/content/demo/api/pet/upload-image.md +0 -79
  176. package/src/content/demo/api/store/delete-order.md +0 -62
  177. package/src/content/demo/api/store/get-order.md +0 -70
  178. package/src/content/demo/api/store/inventory.md +0 -54
  179. package/src/content/demo/api/store/meta.json +0 -5
  180. package/src/content/demo/api/store/order-object.md +0 -77
  181. package/src/content/demo/api/store/place-order.md +0 -83
  182. package/src/content/demo/api/user/create-user.md +0 -69
  183. package/src/content/demo/api/user/create-with-list.md +0 -57
  184. package/src/content/demo/api/user/delete-user.md +0 -61
  185. package/src/content/demo/api/user/get-user.md +0 -69
  186. package/src/content/demo/api/user/login.md +0 -80
  187. package/src/content/demo/api/user/logout.md +0 -45
  188. package/src/content/demo/api/user/meta.json +0 -14
  189. package/src/content/demo/api/user/update-user.md +0 -69
  190. package/src/content/demo/api/user/user-object.md +0 -85
  191. package/src/content/demo/changelog.md +0 -44
  192. package/src/content/demo/components/accordion.md +0 -70
  193. package/src/content/demo/components/api.md +0 -185
  194. package/src/content/demo/components/badge.md +0 -34
  195. package/src/content/demo/components/callout.md +0 -83
  196. package/src/content/demo/components/cards.md +0 -88
  197. package/src/content/demo/components/code-group.md +0 -55
  198. package/src/content/demo/components/columns.md +0 -42
  199. package/src/content/demo/components/frame.md +0 -51
  200. package/src/content/demo/components/icon.md +0 -54
  201. package/src/content/demo/components/kbd.md +0 -28
  202. package/src/content/demo/components/meta.json +0 -26
  203. package/src/content/demo/components/roadmap.md +0 -86
  204. package/src/content/demo/components/steps.md +0 -72
  205. package/src/content/demo/components/tabs.md +0 -146
  206. package/src/content/demo/components/tooltip.md +0 -44
  207. package/src/content/demo/components/tree.md +0 -83
  208. package/src/content/demo/components/type-table.md +0 -77
  209. package/src/content/demo/components/update.md +0 -48
  210. package/src/content/demo/components/video.md +0 -56
  211. package/src/content/demo/components/webhooks.md +0 -109
  212. package/src/content/demo/components/websockets.md +0 -101
  213. package/src/content/demo/configuration/ai.md +0 -40
  214. package/src/content/demo/configuration/cli.md +0 -48
  215. package/src/content/demo/configuration/deployment.md +0 -105
  216. package/src/content/demo/configuration/index.md +0 -92
  217. package/src/content/demo/configuration/layouts.md +0 -51
  218. package/src/content/demo/configuration/meta.json +0 -5
  219. package/src/content/demo/configuration/navigation.md +0 -167
  220. package/src/content/demo/configuration/openapi.md +0 -103
  221. package/src/content/demo/configuration/search.md +0 -36
  222. package/src/content/demo/index.md +0 -59
  223. package/src/content/demo/installation.md +0 -66
  224. package/src/content/demo/meta.json +0 -15
  225. package/src/content/demo/quick-start.md +0 -47
  226. package/src/content/demo/theming/advanced.md +0 -116
  227. package/src/content/demo/theming/code.md +0 -66
  228. package/src/content/demo/theming/colors.md +0 -103
  229. package/src/content/demo/theming/index.md +0 -88
  230. package/src/content/demo/theming/layout.md +0 -71
  231. package/src/content/demo/theming/meta.json +0 -5
  232. package/src/content/demo/theming/themes.md +0 -99
  233. package/src/content/demo/theming/typography.md +0 -83
  234. package/src/content/demo/writing/code-blocks.md +0 -154
  235. package/src/content/demo/writing/diagrams.md +0 -44
  236. package/src/content/demo/writing/frontmatter.md +0 -33
  237. package/src/content/demo/writing/markdown.md +0 -62
  238. package/src/content/demo/writing/meta.json +0 -5
  239. package/src/hooks.server.ts +0 -49
  240. package/src/lib/assets/favicon.svg +0 -1
  241. package/src/lib/base.ts +0 -12
  242. package/src/lib/components/DynamicIcon.svelte +0 -41
  243. package/src/lib/components/docs/Analytics.svelte +0 -38
  244. package/src/lib/components/docs/Banner.svelte +0 -44
  245. package/src/lib/components/docs/Breadcrumbs.svelte +0 -38
  246. package/src/lib/components/docs/CopyPageMenu.svelte +0 -119
  247. package/src/lib/components/docs/DocsLayout.svelte +0 -192
  248. package/src/lib/components/docs/Footer.svelte +0 -60
  249. package/src/lib/components/docs/Mermaid.svelte +0 -39
  250. package/src/lib/components/docs/Navbar.svelte +0 -144
  251. package/src/lib/components/docs/PageMeta.svelte +0 -35
  252. package/src/lib/components/docs/PageNav.svelte +0 -44
  253. package/src/lib/components/docs/SearchDialog.svelte +0 -182
  254. package/src/lib/components/docs/Sidebar.svelte +0 -85
  255. package/src/lib/components/docs/SidebarDropdown.svelte +0 -56
  256. package/src/lib/components/docs/SidebarFooterLinks.svelte +0 -19
  257. package/src/lib/components/docs/SidebarGroup.svelte +0 -54
  258. package/src/lib/components/docs/SidebarLink.svelte +0 -67
  259. package/src/lib/components/docs/TableOfContents.svelte +0 -77
  260. package/src/lib/components/docs/ThemeToggle.svelte +0 -19
  261. package/src/lib/components/docs/VersionSwitcher.svelte +0 -80
  262. package/src/lib/components/kit/Accordion.svelte +0 -60
  263. package/src/lib/components/kit/AccordionGroup.svelte +0 -13
  264. package/src/lib/components/kit/Badge.svelte +0 -32
  265. package/src/lib/components/kit/Callout.svelte +0 -51
  266. package/src/lib/components/kit/Card.svelte +0 -72
  267. package/src/lib/components/kit/CardGroup.svelte +0 -21
  268. package/src/lib/components/kit/CodeGroup.svelte +0 -65
  269. package/src/lib/components/kit/Columns.svelte +0 -26
  270. package/src/lib/components/kit/Event.svelte +0 -23
  271. package/src/lib/components/kit/EventList.svelte +0 -9
  272. package/src/lib/components/kit/File.svelte +0 -15
  273. package/src/lib/components/kit/Folder.svelte +0 -46
  274. package/src/lib/components/kit/Frame.svelte +0 -81
  275. package/src/lib/components/kit/Icon.svelte +0 -17
  276. package/src/lib/components/kit/Kbd.svelte +0 -11
  277. package/src/lib/components/kit/Roadmap.svelte +0 -15
  278. package/src/lib/components/kit/RoadmapItem.svelte +0 -109
  279. package/src/lib/components/kit/Step.svelte +0 -63
  280. package/src/lib/components/kit/Steps.svelte +0 -16
  281. package/src/lib/components/kit/Tab.svelte +0 -27
  282. package/src/lib/components/kit/Tabs.svelte +0 -75
  283. package/src/lib/components/kit/Tooltip.svelte +0 -33
  284. package/src/lib/components/kit/Tree.svelte +0 -11
  285. package/src/lib/components/kit/TypeTable.svelte +0 -187
  286. package/src/lib/components/kit/Update.svelte +0 -32
  287. package/src/lib/components/kit/Video.svelte +0 -64
  288. package/src/lib/components/kit/accordion-context.ts +0 -1
  289. package/src/lib/components/kit/api/Api.svelte +0 -80
  290. package/src/lib/components/kit/api/ApiExamplePanel.svelte +0 -100
  291. package/src/lib/components/kit/api/ApiField.svelte +0 -124
  292. package/src/lib/components/kit/api/Channel.svelte +0 -121
  293. package/src/lib/components/kit/api/Endpoint.svelte +0 -116
  294. package/src/lib/components/kit/api/Enum.svelte +0 -44
  295. package/src/lib/components/kit/api/EnumValues.svelte +0 -35
  296. package/src/lib/components/kit/api/Expandable.svelte +0 -70
  297. package/src/lib/components/kit/api/Message.svelte +0 -67
  298. package/src/lib/components/kit/api/ObjectExample.svelte +0 -11
  299. package/src/lib/components/kit/api/RequestExample.svelte +0 -11
  300. package/src/lib/components/kit/api/ResponseExample.svelte +0 -11
  301. package/src/lib/components/kit/api/Webhook.svelte +0 -115
  302. package/src/lib/components/kit/api/api-context.ts +0 -15
  303. package/src/lib/components/kit/tabs-context.ts +0 -8
  304. package/src/lib/components/kit/tabs-store.svelte.ts +0 -28
  305. package/src/lib/config/site.ts +0 -34
  306. package/src/lib/content/index.ts +0 -50
  307. package/src/lib/content/raw.ts +0 -21
  308. package/src/lib/content/tree.ts +0 -169
  309. package/src/lib/index.ts +0 -79
  310. package/src/lib/nav-match.ts +0 -23
  311. package/src/lib/openapi/generate.ts +0 -629
  312. package/src/lib/server/og.ts +0 -140
  313. package/src/lib/state/search.svelte.ts +0 -9
  314. package/src/lib/state/theme.svelte.ts +0 -58
  315. package/src/lib/types.ts +0 -216
  316. package/src/params/docpage.ts +0 -3
  317. package/src/params/mdfile.ts +0 -3
  318. package/src/routes/+error.svelte +0 -46
  319. package/src/routes/+layout.svelte +0 -25
  320. package/src/routes/[...path=mdfile]/+server.ts +0 -21
  321. package/src/routes/[...slug=docpage]/+page.svelte +0 -63
  322. package/src/routes/[...slug=docpage]/+page.ts +0 -44
  323. package/src/routes/layout.css +0 -897
  324. package/src/routes/llms-full.txt/+server.ts +0 -22
  325. package/src/routes/llms.txt/+server.ts +0 -20
  326. package/src/routes/og/[...slug]/+server.ts +0 -77
  327. package/src/routes/rss.xml/+server.ts +0 -65
  328. package/src/routes/search.json/+server.ts +0 -54
  329. package/src/routes/sitemap.xml/+server.ts +0 -21
  330. package/svelte.config.js +0 -35
  331. package/tsconfig.json +0 -20
  332. package/vite.config.ts +0 -67
  333. /package/{static → dist/client}/favicon-dark.svg +0 -0
  334. /package/{static → dist/client}/favicon-light.svg +0 -0
  335. /package/{static → dist/client}/favicon.svg +0 -0
  336. /package/{static → dist/client}/fonts/geist-400.ttf +0 -0
  337. /package/{static → dist/client}/fonts/geist-600.ttf +0 -0
  338. /package/{static → dist/client}/fonts/geist-700.ttf +0 -0
  339. /package/{static → dist/client}/og-image.png +0 -0
  340. /package/{static → dist/client}/robots.txt +0 -0
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- let { title = 'Possible enum values', children }: { title?: string; children: Snippet } =
5
- $props();
6
- </script>
7
-
8
- <div class="enum">
9
- <div class="enum-head">{title}</div>
10
- <div class="enum-body">
11
- {@render children()}
12
- </div>
13
- </div>
14
-
15
- <style>
16
- .enum {
17
- margin: 0.75rem 0;
18
- border: 1px solid var(--border);
19
- border-radius: 0.5rem;
20
- background-color: var(--bg-subtle);
21
- }
22
- .enum-head {
23
- padding: 0.55rem 0.85rem;
24
- border-bottom: 1px solid var(--border);
25
- font-size: 0.78rem;
26
- font-weight: 600;
27
- color: var(--fg-muted);
28
- }
29
- .enum-body {
30
- padding: 0.25rem 0.85rem;
31
- }
32
- .enum-body > :global(.enum-item:not(:first-child)) {
33
- border-top: 1px solid var(--border);
34
- }
35
- </style>
@@ -1,70 +0,0 @@
1
- <script lang="ts">
2
- import { untrack } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
- import { slide } from 'svelte/transition';
5
- import Plus from '@lucide/svelte/icons/plus';
6
- import Minus from '@lucide/svelte/icons/minus';
7
-
8
- let {
9
- title = 'child attributes',
10
- open = false,
11
- children
12
- }: { title?: string; open?: boolean; children: Snippet } = $props();
13
-
14
- let isOpen = $state(untrack(() => open));
15
- </script>
16
-
17
- <div class="expandable">
18
- <button
19
- type="button"
20
- class="expandable-toggle"
21
- onclick={() => (isOpen = !isOpen)}
22
- aria-expanded={isOpen}
23
- >
24
- {#if isOpen}
25
- <Minus size={14} />
26
- {:else}
27
- <Plus size={14} />
28
- {/if}
29
- <span>{isOpen ? 'Hide' : 'Show'} {title}</span>
30
- </button>
31
-
32
- {#if isOpen}
33
- <div class="expandable-body" transition:slide={{ duration: 150 }}>
34
- {@render children()}
35
- </div>
36
- {/if}
37
- </div>
38
-
39
- <style>
40
- .expandable {
41
- margin-top: 0.6rem;
42
- }
43
-
44
- .expandable-toggle {
45
- display: inline-flex;
46
- align-items: center;
47
- gap: 0.4rem;
48
- padding: 0.3rem 0.7rem;
49
- border: 1px solid var(--border);
50
- border-radius: 0.375rem;
51
- background-color: var(--surface);
52
- font-size: 0.8rem;
53
- font-weight: 500;
54
- color: var(--fg-muted);
55
- cursor: pointer;
56
- transition:
57
- color 0.12s,
58
- border-color 0.12s;
59
- }
60
- .expandable-toggle:hover {
61
- color: var(--fg);
62
- border-color: var(--border-strong);
63
- }
64
-
65
- .expandable-body {
66
- margin-top: 0.5rem;
67
- padding-left: 1rem;
68
- border-left: 1px solid var(--border);
69
- }
70
- </style>
@@ -1,67 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
- import ArrowUp from '@lucide/svelte/icons/arrow-up';
4
- import ArrowDown from '@lucide/svelte/icons/arrow-down';
5
-
6
- let {
7
- direction = 'receive',
8
- name,
9
- children
10
- }: {
11
- direction?: 'send' | 'receive' | 'publish' | 'subscribe';
12
- name?: string;
13
- children?: Snippet;
14
- } = $props();
15
-
16
- const isSend = $derived(direction === 'send' || direction === 'publish');
17
- </script>
18
-
19
- <div class="message">
20
- <div class="message-head" data-direction={isSend ? 'send' : 'receive'}>
21
- {#if isSend}
22
- <ArrowUp size={14} />
23
- {:else}
24
- <ArrowDown size={14} />
25
- {/if}
26
- <span class="message-label">{isSend ? 'Send' : 'Receive'}</span>
27
- {#if name}
28
- <code class="message-name">{name}</code>
29
- {/if}
30
- </div>
31
- {#if children}
32
- <div class="message-body">
33
- {@render children()}
34
- </div>
35
- {/if}
36
- </div>
37
-
38
- <style>
39
- .message {
40
- margin: 1.75rem 0 0;
41
- }
42
- .message-head {
43
- display: inline-flex;
44
- align-items: center;
45
- gap: 0.5rem;
46
- border-radius: var(--radius-md);
47
- padding: 0.25rem 0.6rem;
48
- font-size: 0.8rem;
49
- font-weight: 600;
50
- color: var(--d);
51
- background-color: color-mix(in oklab, var(--d) 12%, transparent);
52
- }
53
- .message-head[data-direction='send'] {
54
- --d: oklch(0.6 0.16 250);
55
- }
56
- .message-head[data-direction='receive'] {
57
- --d: oklch(0.6 0.15 155);
58
- }
59
- .message-name {
60
- font-family: var(--font-mono);
61
- font-weight: 600;
62
- color: inherit;
63
- }
64
- .message-body :global(> :first-child) {
65
- margin-top: 0.75rem;
66
- }
67
- </style>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { getContext, onDestroy, untrack } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
- import { API, type ApiContext } from './api-context';
5
-
6
- let { title = 'Object', children }: { title?: string; children: Snippet } = $props();
7
-
8
- const api = getContext<ApiContext>(API);
9
- const id = untrack(() => api.registerExample({ title, kind: 'object', snippet: children }));
10
- onDestroy(() => api.unregisterExample(id));
11
- </script>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { getContext, onDestroy, untrack } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
- import { API, type ApiContext } from './api-context';
5
-
6
- let { title = 'Request', children }: { title?: string; children: Snippet } = $props();
7
-
8
- const api = getContext<ApiContext>(API);
9
- const id = untrack(() => api.registerExample({ title, kind: 'request', snippet: children }));
10
- onDestroy(() => api.unregisterExample(id));
11
- </script>
@@ -1,11 +0,0 @@
1
- <script lang="ts">
2
- import { getContext, onDestroy, untrack } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
- import { API, type ApiContext } from './api-context';
5
-
6
- let { title = 'Response', children }: { title?: string; children: Snippet } = $props();
7
-
8
- const api = getContext<ApiContext>(API);
9
- const id = untrack(() => api.registerExample({ title, kind: 'response', snippet: children }));
10
- onDestroy(() => api.unregisterExample(id));
11
- </script>
@@ -1,115 +0,0 @@
1
- <script lang="ts">
2
- import { setContext } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
- import { API, type ApiContext, type ApiExampleEntry } from './api-context';
5
- import ApiExamplePanel from './ApiExamplePanel.svelte';
6
-
7
- let {
8
- event,
9
- method = 'POST',
10
- description,
11
- children
12
- }: { event: string; method?: string; description?: string; children: Snippet } = $props();
13
-
14
- const examples = $state<ApiExampleEntry[]>([]);
15
- let counter = 0;
16
-
17
- const objects = $derived(examples.filter((example) => example.kind === 'object'));
18
- const payloads = $derived(examples.filter((example) => example.kind !== 'object'));
19
-
20
- setContext<ApiContext>(API, {
21
- registerExample(entry) {
22
- const id = counter++;
23
- examples.push({ ...entry, id });
24
- return id;
25
- },
26
- unregisterExample(id) {
27
- const index = examples.findIndex((example) => example.id === id);
28
- if (index !== -1) examples.splice(index, 1);
29
- }
30
- });
31
- </script>
32
-
33
- <div class="api">
34
- <div class="api-main">
35
- <div class="webhook-head" data-method={method.toUpperCase()}>
36
- <span class="webhook-method">{method.toUpperCase()}</span>
37
- <code class="webhook-event">{event}</code>
38
- </div>
39
- <p class="webhook-sub">
40
- Delivered to your webhook endpoint as a {method.toUpperCase()} request when this event occurs.
41
- </p>
42
- {#if description}
43
- <p>{description}</p>
44
- {/if}
45
- {@render children()}
46
- </div>
47
-
48
- <div class="api-rail">
49
- <div class="api-rail-sticky">
50
- {#each objects as object (object.id)}
51
- <ApiExamplePanel label={object.title} entries={[object]} />
52
- {/each}
53
- <ApiExamplePanel label="Payload" entries={payloads} />
54
- </div>
55
- </div>
56
- </div>
57
-
58
- <style>
59
- .api {
60
- display: grid;
61
- grid-template-columns: minmax(0, 1fr);
62
- gap: 2rem;
63
- }
64
- @media (min-width: 1024px) {
65
- .api {
66
- grid-template-columns: minmax(0, 1fr) 28rem;
67
- gap: 2.5rem;
68
- align-items: start;
69
- }
70
- }
71
- .api-main :global(h2) {
72
- margin-top: 1.75rem;
73
- font-size: 1.2rem;
74
- }
75
-
76
- .webhook-head {
77
- display: flex;
78
- align-items: center;
79
- gap: 0.625rem;
80
- margin-bottom: 0.5rem;
81
- }
82
- .webhook-method {
83
- flex-shrink: 0;
84
- border-radius: var(--radius-md);
85
- background-color: color-mix(in oklab, var(--accent) 14%, transparent);
86
- padding: 0.15rem 0.5rem;
87
- font-family: var(--font-mono);
88
- font-size: 0.7rem;
89
- font-weight: 700;
90
- letter-spacing: 0.02em;
91
- color: var(--accent);
92
- }
93
- .webhook-event {
94
- font-family: var(--font-mono);
95
- font-size: 1.05rem;
96
- font-weight: 600;
97
- color: var(--fg);
98
- }
99
- .webhook-sub {
100
- margin-top: 0;
101
- color: var(--fg-muted);
102
- }
103
-
104
- .api-rail-sticky {
105
- display: flex;
106
- flex-direction: column;
107
- gap: 1rem;
108
- }
109
- @media (min-width: 1024px) {
110
- .api-rail-sticky {
111
- position: sticky;
112
- top: calc(var(--spacing-header) + 1.5rem);
113
- }
114
- }
115
- </style>
@@ -1,15 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
-
3
- export interface ApiExampleEntry {
4
- id: number;
5
- title: string;
6
- kind: 'request' | 'response' | 'object';
7
- snippet: Snippet;
8
- }
9
-
10
- export interface ApiContext {
11
- registerExample(entry: Omit<ApiExampleEntry, 'id'>): number;
12
- unregisterExample(id: number): void;
13
- }
14
-
15
- export const API = Symbol('api');
@@ -1,8 +0,0 @@
1
- /** Context shared between <Tabs> and its <Tab> children. */
2
- export interface TabsContext {
3
- register(title: string, icon?: string): number;
4
- unregister(id: number): void;
5
- isActive(id: number): boolean;
6
- }
7
-
8
- export const TABS = Symbol('tabs');
@@ -1,28 +0,0 @@
1
- /**
2
- * Shared selection state for grouped tabs.
3
- *
4
- */
5
- import { browser } from '$app/environment';
6
-
7
- const PREFIX = 'axerity-tabs:';
8
-
9
- class TabGroupStore {
10
- #values = $state<Record<string, string>>({});
11
-
12
- init(group: string) {
13
- if (!browser || this.#values[group] !== undefined) return;
14
- const stored = localStorage.getItem(PREFIX + group);
15
- if (stored !== null) this.#values[group] = stored;
16
- }
17
-
18
- get(group: string): string | undefined {
19
- return this.#values[group];
20
- }
21
-
22
- set(group: string, value: string) {
23
- this.#values[group] = value;
24
- if (browser) localStorage.setItem(PREFIX + group, value);
25
- }
26
- }
27
-
28
- export const tabGroups = new TabGroupStore();
@@ -1,34 +0,0 @@
1
- import { base } from '$app/paths';
2
- import type { SiteConfig, TopNavLink } from '$lib/types';
3
- import config from '../../../axerity.json';
4
-
5
- const raw = config as SiteConfig;
6
-
7
- // Prefix internal (leading-slash) links with the base path so the whole site
8
- // works under a sub-path. External links and matchers are handled in step.
9
- const p = (href?: string): string | undefined =>
10
- href && href.startsWith('/') ? base + href : href;
11
-
12
- const link = (l: TopNavLink): TopNavLink => ({ ...l, href: p(l.href)!, match: p(l.match) });
13
-
14
- export const site: SiteConfig = base
15
- ? {
16
- ...raw,
17
- logo: raw.logo && {
18
- ...raw.logo,
19
- light: p(raw.logo.light),
20
- dark: p(raw.logo.dark),
21
- href: p(raw.logo.href)
22
- },
23
- og: raw.og && { ...raw.og, logo: p(raw.og.logo) },
24
- topNav: raw.topNav?.map(link) ?? [],
25
- versions: raw.versions?.map((v) => ({ ...v, href: p(v.href)! })),
26
- sidebarLinks: raw.sidebarLinks?.map((s) => ({ ...s, href: p(s.href)! })),
27
- dropdowns: raw.dropdowns?.map((d) => ({
28
- ...d,
29
- href: p(d.href)!,
30
- match: p(d.match),
31
- tabs: d.tabs?.map(link)
32
- }))
33
- }
34
- : raw;
@@ -1,50 +0,0 @@
1
- import { base } from '$app/paths';
2
- import { site } from '$lib/config/site';
3
- import type { NavLink, NavSection } from '$lib/types';
4
- import { buildSidebar, flattenSections } from './tree';
5
-
6
- const ROOT = '/src/content/docs';
7
-
8
- const stripBase = (path: string): string =>
9
- base && path.startsWith(base) ? path.slice(base.length) : path;
10
-
11
- // A versioned site keeps each version's content in a top-level folder matching
12
- // the version's path, e.g. `docs/v2/...` for a version with href `/v2`.
13
- const versionPaths = (site.versions ?? [])
14
- .map((v) => stripBase(v.href))
15
- .filter((href) => href && href !== '/');
16
-
17
- export const versioned = versionPaths.length > 0;
18
- export const defaultVersionPath = versionPaths[0] ?? '';
19
-
20
- const sidebars = new Map<string, NavSection[]>();
21
- if (versioned) {
22
- for (const path of versionPaths) sidebars.set(path, buildSidebar(ROOT + path));
23
- }
24
-
25
- function activeVersionPath(pathname: string): string {
26
- const path = stripBase(pathname);
27
- return versionPaths.find((vp) => path === vp || path.startsWith(`${vp}/`)) ?? defaultVersionPath;
28
- }
29
-
30
- /** The sidebar and prev/next list for the version the pathname belongs to. */
31
- export function navFor(pathname: string): { sidebar: NavSection[]; flatPages: NavLink[] } {
32
- if (!versioned) return { sidebar, flatPages };
33
- const sb = sidebars.get(activeVersionPath(pathname)) ?? [];
34
- return { sidebar: sb, flatPages: flattenSections(sb) };
35
- }
36
-
37
- /** Rewrite a path to the same page in another version (falls back to its root). */
38
- export function pathInVersion(pathname: string, versionPath: string): string {
39
- const current = activeVersionPath(pathname);
40
- const rest = stripBase(pathname).slice(current.length);
41
- const candidate = `${versionPath}${rest}`;
42
- const target = sidebars.get(versionPath);
43
- const exists = target && flattenSections(target).some((p) => stripBase(p.href) === candidate);
44
- return base + (exists ? candidate : versionPath);
45
- }
46
-
47
- export const sidebar = versioned ? (sidebars.get(defaultVersionPath) ?? []) : buildSidebar();
48
- export const flatPages = flattenSections(sidebar);
49
-
50
- export { buildSidebar, flattenSections };
@@ -1,21 +0,0 @@
1
- const rawModules = import.meta.glob('/src/content/docs/**/*.md', {
2
- query: '?raw',
3
- import: 'default'
4
- }) as Record<string, () => Promise<string>>;
5
-
6
- const BASE = '/src/content/docs';
7
-
8
- function clean(markdown: string): string {
9
- return markdown
10
- .replace(/^---\r?\n[\s\S]*?\r?\n---\r?\n/, '')
11
- .replace(/<script[\s\S]*?<\/script>\s*/g, '')
12
- .trim();
13
- }
14
-
15
- export async function getRawMarkdown(slug: string): Promise<string | null> {
16
- const rel = slug.replace(/\/+$/, '');
17
- const candidates = rel ? [`${BASE}/${rel}.md`, `${BASE}/${rel}/index.md`] : [`${BASE}/index.md`];
18
- const path = candidates.find((candidate) => candidate in rawModules);
19
- if (!path) return null;
20
- return clean(await rawModules[path]());
21
- }
@@ -1,169 +0,0 @@
1
- /**
2
- * Content-tree generator.
3
- *
4
- */
5
- import { base } from '$app/paths';
6
- import type { FolderMeta, NavEntry, NavLink, NavSection, PageFrontmatter } from '$lib/types';
7
-
8
- const ROOT = '/src/content/docs';
9
-
10
- const metaModules = import.meta.glob<FolderMeta>('/src/content/docs/**/meta.json', {
11
- eager: true,
12
- import: 'default'
13
- });
14
- const pageModules = import.meta.glob<PageFrontmatter>('/src/content/docs/**/*.md', {
15
- eager: true,
16
- import: 'metadata'
17
- });
18
-
19
- interface PageEntry {
20
- slug: string;
21
- frontmatter: PageFrontmatter;
22
- }
23
-
24
- function dirOf(path: string): string {
25
- return path.slice(0, path.lastIndexOf('/'));
26
- }
27
-
28
- function slugOf(path: string): string {
29
- return path.slice(path.lastIndexOf('/') + 1).replace(/\.md$/, '');
30
- }
31
-
32
- function hrefFor(folder: string, slug: string): string {
33
- const rel = folder.slice(ROOT.length);
34
- if (slug === 'index') return base + (rel || '/');
35
- return base + rel + '/' + slug;
36
- }
37
-
38
- const metaFor = (folder: string): FolderMeta =>
39
- metaModules[`${folder}/meta.json`] ?? ({} as FolderMeta);
40
-
41
- /** Pages grouped by their containing folder. */
42
- function pagesByFolder(): Map<string, Map<string, PageEntry>> {
43
- const byFolder = new Map<string, Map<string, PageEntry>>();
44
- for (const [path, frontmatter] of Object.entries(pageModules)) {
45
- const folder = dirOf(path);
46
- if (!byFolder.has(folder)) byFolder.set(folder, new Map());
47
- byFolder.get(folder)!.set(slugOf(path), { slug: slugOf(path), frontmatter: frontmatter ?? {} });
48
- }
49
- return byFolder;
50
- }
51
-
52
- const byFolder = pagesByFolder();
53
- const allFolders = new Set<string>([...byFolder.keys(), ...Object.keys(metaModules).map(dirOf)]);
54
-
55
- /** Folders nested directly inside `folder`. */
56
- function subfoldersOf(folder: string): string[] {
57
- return [...allFolders].filter((f) => f !== folder && dirOf(f) === folder);
58
- }
59
-
60
- function linkFor(folder: string, slug: string): NavLink {
61
- const { frontmatter } = byFolder.get(folder)!.get(slug)!;
62
- return {
63
- title: frontmatter.title ?? slug,
64
- href: hrefFor(folder, slug),
65
- icon: frontmatter.icon,
66
- badge: frontmatter.badge,
67
- description: frontmatter.description,
68
- method: frontmatter.method
69
- };
70
- }
71
-
72
- /**
73
- * Build a folder's entries: its pages (as links) and its subfolders (as nested
74
- * groups), ordered by `meta.pages` with anything unlisted appended.
75
- */
76
- function entriesFor(folder: string, includeIndex = true): NavEntry[] {
77
- const meta = metaFor(folder);
78
- const pages = byFolder.get(folder) ?? new Map<string, PageEntry>();
79
- const subfolders = subfoldersOf(folder);
80
- const subByName = new Map(subfolders.map((f) => [f.slice(f.lastIndexOf('/') + 1), f]));
81
-
82
- const order = meta.pages ?? [];
83
- const handledPages = new Set<string>();
84
- const handledSubs = new Set<string>();
85
- const entries: NavEntry[] = [];
86
-
87
- const pushPage = (slug: string) => {
88
- if (!includeIndex && slug === 'index') return;
89
- entries.push(linkFor(folder, slug));
90
- handledPages.add(slug);
91
- };
92
-
93
- for (const name of order) {
94
- if (pages.has(name)) pushPage(name);
95
- else if (subByName.has(name)) {
96
- entries.push(groupFor(subByName.get(name)!));
97
- handledSubs.add(name);
98
- }
99
- }
100
-
101
- for (const slug of [...pages.keys()].filter((s) => !handledPages.has(s)).sort()) pushPage(slug);
102
- for (const [name, path] of subByName) if (!handledSubs.has(name)) entries.push(groupFor(path));
103
-
104
- return entries;
105
- }
106
-
107
- function groupFor(folder: string): NavGroupResult {
108
- const meta = metaFor(folder);
109
- return {
110
- title: meta.title ?? folder.slice(folder.lastIndexOf('/') + 1),
111
- icon: meta.icon,
112
- items: entriesFor(folder),
113
- defaultOpen: meta.defaultOpen
114
- };
115
- }
116
- // Local alias so groupFor reads cleanly above its NavGroup return.
117
- type NavGroupResult = Extract<NavEntry, { items: NavEntry[] }>;
118
-
119
- /**
120
- * Generate the sidebar rooted at a folder: its own pages as a lead section, then
121
- * each subfolder as a section. Pass a version folder (e.g. `/src/content/docs/v2`)
122
- * to build that version's sidebar.
123
- */
124
- export function buildSidebar(rootFolder: string = ROOT): NavSection[] {
125
- const rootMeta = metaFor(rootFolder);
126
- const topSubfolders = subfoldersOf(rootFolder);
127
- const subByName = new Map(topSubfolders.map((f) => [f.slice(f.lastIndexOf('/') + 1), f]));
128
-
129
- // Order top-level folders by the root meta.pages entries that name them.
130
- const named = (rootMeta.pages ?? [])
131
- .filter((name) => subByName.has(name))
132
- .map((name) => subByName.get(name)!);
133
- const rest = topSubfolders.filter((f) => !named.includes(f)).sort();
134
-
135
- const sections: NavSection[] = [];
136
-
137
- // Lead section: only the root folder's own pages (subfolders are promoted).
138
- if (byFolder.has(rootFolder)) {
139
- sections.push({
140
- title: rootMeta.title ?? 'Docs',
141
- icon: rootMeta.icon,
142
- items: entriesFor(rootFolder).filter((entry) => 'href' in entry)
143
- });
144
- }
145
-
146
- for (const folder of [...named, ...rest]) {
147
- const meta = metaFor(folder);
148
- sections.push({
149
- title: meta.title ?? folder.slice(folder.lastIndexOf('/') + 1),
150
- icon: meta.icon,
151
- items: entriesFor(folder)
152
- });
153
- }
154
-
155
- return sections;
156
- }
157
-
158
- /** Flatten the sidebar into an ordered list of page links (for prev/next nav). */
159
- export function flattenSections(sections: NavSection[]): NavLink[] {
160
- const out: NavLink[] = [];
161
- const walk = (entries: NavEntry[]) => {
162
- for (const entry of entries) {
163
- if ('href' in entry) out.push(entry);
164
- else walk(entry.items);
165
- }
166
- };
167
- for (const section of sections) walk(section.items);
168
- return out;
169
- }