@brainfish-ai/devdoc 0.1.42 → 0.1.43

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 (388) hide show
  1. package/dist/cli/commands/dev.js +19 -10
  2. package/package.json +3 -2
  3. package/renderer/app/api/assets/[...path]/route.js +108 -0
  4. package/renderer/app/api/assets/route.js +114 -0
  5. package/renderer/app/api/assets/upload/route.js +163 -0
  6. package/renderer/app/api/auth-schemes/route.js +58 -0
  7. package/renderer/app/api/chat/route.js +759 -0
  8. package/renderer/app/api/codegen/route.js +52 -0
  9. package/renderer/app/api/collections/route.js +675 -0
  10. package/renderer/app/api/debug/route.js +47 -0
  11. package/renderer/app/api/deploy/route.js +199 -0
  12. package/renderer/app/api/device/route.js +36 -0
  13. package/renderer/app/api/docs/route.js +205 -0
  14. package/renderer/app/api/domains/add/route.js +121 -0
  15. package/renderer/app/api/domains/lookup/route.js +43 -0
  16. package/renderer/app/api/domains/remove/route.js +89 -0
  17. package/renderer/app/api/domains/status/route.js +140 -0
  18. package/renderer/app/api/domains/verify/route.js +168 -0
  19. package/renderer/app/api/keys/regenerate/route.js +71 -0
  20. package/renderer/app/api/local-assets/[...path]/route.js +108 -0
  21. package/renderer/app/api/openapi-spec/route.js +73 -0
  22. package/renderer/app/api/projects/[slug]/route.js +129 -0
  23. package/renderer/app/api/projects/[slug]/stats/route.js +80 -0
  24. package/renderer/app/api/projects/register/route.js +176 -0
  25. package/renderer/app/api/proxy/route.js +139 -0
  26. package/renderer/app/api/proxy-stream/route.js +156 -0
  27. package/renderer/app/api/redirects/route.js +35 -0
  28. package/renderer/app/api/schema/route.js +85 -0
  29. package/renderer/app/api/subdomains/check/route.js +158 -0
  30. package/renderer/app/api/suggestions/route.js +175 -0
  31. package/renderer/app/layout.js +47 -0
  32. package/renderer/app/llms-full.txt/route.js +257 -0
  33. package/renderer/app/llms.txt/route.js +219 -0
  34. package/renderer/app/page.js +12 -0
  35. package/renderer/app/robots.txt/route.js +66 -0
  36. package/renderer/app/sitemap.xml/route.js +145 -0
  37. package/renderer/components/docs/index.js +8 -0
  38. package/renderer/components/docs/mdx/accordion.js +113 -0
  39. package/renderer/components/docs/mdx/badge.js +72 -0
  40. package/renderer/components/docs/mdx/callouts.js +137 -0
  41. package/renderer/components/docs/mdx/cards.js +175 -0
  42. package/renderer/components/docs/mdx/changelog.js +100 -0
  43. package/renderer/components/docs/mdx/code-block.js +147 -0
  44. package/renderer/components/docs/mdx/code-group.js +287 -0
  45. package/renderer/components/docs/mdx/file-embeds.js +82 -0
  46. package/renderer/components/docs/mdx/frame.js +59 -0
  47. package/renderer/components/docs/mdx/highlight.js +90 -0
  48. package/renderer/components/docs/mdx/iframe.js +69 -0
  49. package/renderer/components/docs/mdx/image.js +135 -0
  50. package/renderer/components/docs/mdx/index.js +134 -0
  51. package/renderer/components/docs/mdx/landing.js +315 -0
  52. package/renderer/components/docs/mdx/mermaid.js +212 -0
  53. package/renderer/components/docs/mdx/param-field.js +112 -0
  54. package/renderer/components/docs/mdx/steps.js +74 -0
  55. package/renderer/components/docs/mdx/tabs.js +50 -0
  56. package/renderer/components/docs/mdx-renderer.js +77 -0
  57. package/renderer/components/docs/navigation/breadcrumbs.js +64 -0
  58. package/renderer/components/docs/navigation/index.js +6 -0
  59. package/renderer/components/docs/navigation/page-nav.js +57 -0
  60. package/renderer/components/docs/navigation/sidebar.js +375 -0
  61. package/renderer/components/docs/navigation/toc.js +89 -0
  62. package/renderer/components/docs/notice.js +77 -0
  63. package/renderer/components/docs-header.js +202 -0
  64. package/renderer/components/docs-viewer/agent/agent-chat.js +1930 -0
  65. package/renderer/components/docs-viewer/agent/cards/debug-context-card.js +107 -0
  66. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.js +57 -0
  67. package/renderer/components/docs-viewer/agent/cards/index.js +45 -0
  68. package/renderer/components/docs-viewer/agent/cards/response-options-card.js +154 -0
  69. package/renderer/components/docs-viewer/agent/cards/types.js +22 -0
  70. package/renderer/components/docs-viewer/agent/chat-message.js +2 -0
  71. package/renderer/components/docs-viewer/agent/index.js +4 -0
  72. package/renderer/components/docs-viewer/agent/messages/assistant-message.js +108 -0
  73. package/renderer/components/docs-viewer/agent/messages/chat-message.js +34 -0
  74. package/renderer/components/docs-viewer/agent/messages/index.js +6 -0
  75. package/renderer/components/docs-viewer/agent/messages/tool-call-display.js +1065 -0
  76. package/renderer/components/docs-viewer/agent/messages/types.js +2 -0
  77. package/renderer/components/docs-viewer/agent/messages/typing-indicator.js +26 -0
  78. package/renderer/components/docs-viewer/agent/messages/user-message.js +37 -0
  79. package/renderer/components/docs-viewer/code-editor/{index.tsx → index.js} +1 -1
  80. package/renderer/components/docs-viewer/code-editor/notes-mode.js +1338 -0
  81. package/renderer/components/docs-viewer/content/changelog-page.js +297 -0
  82. package/renderer/components/docs-viewer/content/doc-page.js +264 -0
  83. package/renderer/components/docs-viewer/content/documentation-viewer.js +14 -0
  84. package/renderer/components/docs-viewer/content/index.js +29 -0
  85. package/renderer/components/docs-viewer/content/not-found-page.js +300 -0
  86. package/renderer/components/docs-viewer/content/request-details.js +528 -0
  87. package/renderer/components/docs-viewer/content/sections/auth.js +108 -0
  88. package/renderer/components/docs-viewer/content/sections/body.js +80 -0
  89. package/renderer/components/docs-viewer/content/sections/headers.js +64 -0
  90. package/renderer/components/docs-viewer/content/sections/overview.js +56 -0
  91. package/renderer/components/docs-viewer/content/sections/parameters.js +64 -0
  92. package/renderer/components/docs-viewer/content/sections/responses.js +91 -0
  93. package/renderer/components/docs-viewer/global-auth-modal.js +427 -0
  94. package/renderer/components/docs-viewer/index.js +1552 -0
  95. package/renderer/components/docs-viewer/playground/auth-editor.js +418 -0
  96. package/renderer/components/docs-viewer/playground/body-editor.js +240 -0
  97. package/renderer/components/docs-viewer/playground/code-editor.js +135 -0
  98. package/renderer/components/docs-viewer/playground/code-snippet.js +393 -0
  99. package/renderer/components/docs-viewer/playground/graphql-playground.js +734 -0
  100. package/renderer/components/docs-viewer/playground/index.js +682 -0
  101. package/renderer/components/docs-viewer/playground/key-value-editor.js +317 -0
  102. package/renderer/components/docs-viewer/playground/method-selector.js +65 -0
  103. package/renderer/components/docs-viewer/playground/request-builder.js +181 -0
  104. package/renderer/components/docs-viewer/playground/request-tabs.js +240 -0
  105. package/renderer/components/docs-viewer/playground/response-cards/idle-card.js +42 -0
  106. package/renderer/components/docs-viewer/playground/response-cards/index.js +72 -0
  107. package/renderer/components/docs-viewer/playground/response-cards/loading-card.js +24 -0
  108. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.js +28 -0
  109. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.js +308 -0
  110. package/renderer/components/docs-viewer/playground/response-cards/types.js +9 -0
  111. package/renderer/components/docs-viewer/playground/response-viewer.js +18 -0
  112. package/renderer/components/docs-viewer/search/index.js +2 -0
  113. package/renderer/components/docs-viewer/search/search-dialog.js +367 -0
  114. package/renderer/components/docs-viewer/search/use-search.js +89 -0
  115. package/renderer/components/docs-viewer/shared/markdown-renderer.js +423 -0
  116. package/renderer/components/docs-viewer/shared/method-badge.js +23 -0
  117. package/renderer/components/docs-viewer/shared/schema-viewer.js +321 -0
  118. package/renderer/components/docs-viewer/sidebar/collection-tree.js +222 -0
  119. package/renderer/components/docs-viewer/sidebar/endpoint-options.js +512 -0
  120. package/renderer/components/docs-viewer/sidebar/index.js +196 -0
  121. package/renderer/components/docs-viewer/sidebar/right-sidebar.js +163 -0
  122. package/renderer/components/docs-viewer/sidebar/sidebar-group.js +87 -0
  123. package/renderer/components/docs-viewer/sidebar/sidebar-item.js +172 -0
  124. package/renderer/components/docs-viewer/sidebar/sidebar-section.js +31 -0
  125. package/renderer/components/theme-provider.js +10 -0
  126. package/renderer/components/theme-toggle.js +106 -0
  127. package/renderer/components/ui/badge.js +29 -0
  128. package/renderer/components/ui/button.js +40 -0
  129. package/renderer/components/ui/dialog.js +50 -0
  130. package/renderer/components/ui/dropdown-menu.js +143 -0
  131. package/renderer/components/ui/input.js +12 -0
  132. package/renderer/components/ui/label.js +13 -0
  133. package/renderer/components/ui/navigation-menu.js +83 -0
  134. package/renderer/components/ui/select.js +116 -0
  135. package/renderer/components/ui/spinner.js +92 -0
  136. package/renderer/components/ui/tabs.js +34 -0
  137. package/renderer/components/ui/tooltip.js +43 -0
  138. package/renderer/hooks/use-code-copy.js +76 -0
  139. package/renderer/hooks/use-openapi-title.js +33 -0
  140. package/renderer/lib/api-docs/agent/index.js +4 -0
  141. package/renderer/lib/api-docs/agent/indexer.js +254 -0
  142. package/renderer/lib/api-docs/agent/spec-summary.js +227 -0
  143. package/renderer/lib/api-docs/agent/types.js +5 -0
  144. package/renderer/lib/api-docs/auth/auth-context.js +157 -0
  145. package/renderer/lib/api-docs/auth/auth-storage.js +66 -0
  146. package/renderer/lib/api-docs/auth/crypto.js +64 -0
  147. package/renderer/lib/api-docs/auth/index.js +3 -0
  148. package/renderer/lib/api-docs/code-editor/db.js +145 -0
  149. package/renderer/lib/api-docs/code-editor/hooks.js +254 -0
  150. package/renderer/lib/api-docs/code-editor/{index.ts → index.js} +3 -4
  151. package/renderer/lib/api-docs/code-editor/mode-context.js +154 -0
  152. package/renderer/lib/api-docs/code-editor/types.js +53 -0
  153. package/renderer/lib/api-docs/codegen/definitions.js +258 -0
  154. package/renderer/lib/api-docs/codegen/har.js +171 -0
  155. package/renderer/lib/api-docs/codegen/index.js +118 -0
  156. package/renderer/lib/api-docs/factories.js +136 -0
  157. package/renderer/lib/api-docs/{index.ts → index.js} +5 -10
  158. package/renderer/lib/api-docs/mobile-context.js +79 -0
  159. package/renderer/lib/api-docs/navigation-context.js +62 -0
  160. package/renderer/lib/api-docs/parsers/graphql/index.js +50 -0
  161. package/renderer/lib/api-docs/parsers/graphql/parser.js +350 -0
  162. package/renderer/lib/api-docs/parsers/graphql/transformer.js +215 -0
  163. package/renderer/lib/api-docs/parsers/graphql/types.js +46 -0
  164. package/renderer/lib/api-docs/parsers/openapi/dereferencer.js +43 -0
  165. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.js +486 -0
  166. package/renderer/lib/api-docs/parsers/openapi/extractors/body.js +295 -0
  167. package/renderer/lib/api-docs/parsers/openapi/extractors/index.js +132 -0
  168. package/renderer/lib/api-docs/parsers/openapi/index.js +127 -0
  169. package/renderer/lib/api-docs/parsers/openapi/transformer.js +192 -0
  170. package/renderer/lib/api-docs/parsers/openapi/validator.js +24 -0
  171. package/renderer/lib/api-docs/playground/context.js +65 -0
  172. package/renderer/lib/api-docs/playground/navigation-context.js +74 -0
  173. package/renderer/lib/api-docs/playground/request-builder.js +163 -0
  174. package/renderer/lib/api-docs/playground/request-runner.js +224 -0
  175. package/renderer/lib/api-docs/playground/types.js +5 -0
  176. package/renderer/lib/api-docs/types.js +23 -0
  177. package/renderer/lib/api-docs/utils.js +212 -0
  178. package/renderer/lib/cache.js +157 -0
  179. package/renderer/lib/docs/config/domain-schema.js +161 -0
  180. package/renderer/lib/docs/config/index.js +5 -0
  181. package/renderer/lib/docs/config/loader.js +113 -0
  182. package/renderer/lib/docs/config/schema.js +269 -0
  183. package/renderer/lib/docs/index.js +8 -0
  184. package/renderer/lib/docs/mdx/compiler.js +128 -0
  185. package/renderer/lib/docs/mdx/frontmatter.js +73 -0
  186. package/renderer/lib/docs/mdx/index.js +8 -0
  187. package/renderer/lib/docs/navigation/generator.js +269 -0
  188. package/renderer/lib/docs/navigation/index.js +4 -0
  189. package/renderer/lib/docs/navigation/types.js +9 -0
  190. package/renderer/lib/docs-navigation-context.js +40 -0
  191. package/renderer/lib/multi-tenant/context.js +80 -0
  192. package/renderer/lib/storage/blob.js +767 -0
  193. package/renderer/lib/utils/icons.js +30 -0
  194. package/renderer/lib/utils.js +5 -0
  195. package/renderer/next.config.js +62 -0
  196. package/renderer/tsconfig.json +23 -5
  197. package/renderer/app/api/assets/[...path]/route.ts +0 -123
  198. package/renderer/app/api/assets/route.ts +0 -124
  199. package/renderer/app/api/assets/upload/route.ts +0 -177
  200. package/renderer/app/api/auth-schemes/route.ts +0 -77
  201. package/renderer/app/api/chat/route.ts +0 -858
  202. package/renderer/app/api/codegen/route.ts +0 -72
  203. package/renderer/app/api/collections/route.ts +0 -1002
  204. package/renderer/app/api/debug/route.ts +0 -53
  205. package/renderer/app/api/deploy/route.ts +0 -234
  206. package/renderer/app/api/device/route.ts +0 -42
  207. package/renderer/app/api/docs/route.ts +0 -201
  208. package/renderer/app/api/domains/add/route.ts +0 -132
  209. package/renderer/app/api/domains/lookup/route.ts +0 -43
  210. package/renderer/app/api/domains/remove/route.ts +0 -100
  211. package/renderer/app/api/domains/status/route.ts +0 -158
  212. package/renderer/app/api/domains/verify/route.ts +0 -181
  213. package/renderer/app/api/keys/regenerate/route.ts +0 -80
  214. package/renderer/app/api/local-assets/[...path]/route.ts +0 -122
  215. package/renderer/app/api/openapi-spec/route.ts +0 -151
  216. package/renderer/app/api/projects/[slug]/route.ts +0 -153
  217. package/renderer/app/api/projects/[slug]/stats/route.ts +0 -96
  218. package/renderer/app/api/projects/register/route.ts +0 -152
  219. package/renderer/app/api/proxy/route.ts +0 -149
  220. package/renderer/app/api/proxy-stream/route.ts +0 -168
  221. package/renderer/app/api/redirects/route.ts +0 -47
  222. package/renderer/app/api/schema/route.ts +0 -73
  223. package/renderer/app/api/subdomains/check/route.ts +0 -172
  224. package/renderer/app/api/suggestions/route.ts +0 -144
  225. package/renderer/app/layout.tsx +0 -54
  226. package/renderer/app/llms-full.txt/route.ts +0 -346
  227. package/renderer/app/llms.txt/route.ts +0 -279
  228. package/renderer/app/page.tsx +0 -14
  229. package/renderer/app/robots.txt/route.ts +0 -84
  230. package/renderer/app/sitemap.xml/route.ts +0 -199
  231. package/renderer/components/docs/index.ts +0 -12
  232. package/renderer/components/docs/mdx/accordion.tsx +0 -169
  233. package/renderer/components/docs/mdx/badge.tsx +0 -132
  234. package/renderer/components/docs/mdx/callouts.tsx +0 -154
  235. package/renderer/components/docs/mdx/cards.tsx +0 -241
  236. package/renderer/components/docs/mdx/changelog.tsx +0 -120
  237. package/renderer/components/docs/mdx/code-block.tsx +0 -186
  238. package/renderer/components/docs/mdx/code-group.tsx +0 -421
  239. package/renderer/components/docs/mdx/file-embeds.tsx +0 -105
  240. package/renderer/components/docs/mdx/frame.tsx +0 -112
  241. package/renderer/components/docs/mdx/highlight.tsx +0 -151
  242. package/renderer/components/docs/mdx/iframe.tsx +0 -134
  243. package/renderer/components/docs/mdx/image.tsx +0 -235
  244. package/renderer/components/docs/mdx/index.ts +0 -237
  245. package/renderer/components/docs/mdx/landing.tsx +0 -684
  246. package/renderer/components/docs/mdx/mermaid.tsx +0 -240
  247. package/renderer/components/docs/mdx/param-field.tsx +0 -200
  248. package/renderer/components/docs/mdx/steps.tsx +0 -113
  249. package/renderer/components/docs/mdx/tabs.tsx +0 -86
  250. package/renderer/components/docs/mdx-renderer.tsx +0 -100
  251. package/renderer/components/docs/navigation/breadcrumbs.tsx +0 -76
  252. package/renderer/components/docs/navigation/index.ts +0 -8
  253. package/renderer/components/docs/navigation/page-nav.tsx +0 -64
  254. package/renderer/components/docs/navigation/sidebar.tsx +0 -515
  255. package/renderer/components/docs/navigation/toc.tsx +0 -113
  256. package/renderer/components/docs/notice.tsx +0 -105
  257. package/renderer/components/docs-header.tsx +0 -278
  258. package/renderer/components/docs-viewer/agent/agent-chat.tsx +0 -2076
  259. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +0 -90
  260. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +0 -49
  261. package/renderer/components/docs-viewer/agent/cards/index.tsx +0 -50
  262. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +0 -212
  263. package/renderer/components/docs-viewer/agent/cards/types.ts +0 -84
  264. package/renderer/components/docs-viewer/agent/chat-message.tsx +0 -17
  265. package/renderer/components/docs-viewer/agent/index.tsx +0 -6
  266. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +0 -119
  267. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +0 -46
  268. package/renderer/components/docs-viewer/agent/messages/index.ts +0 -17
  269. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +0 -721
  270. package/renderer/components/docs-viewer/agent/messages/types.ts +0 -61
  271. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +0 -24
  272. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +0 -51
  273. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +0 -1283
  274. package/renderer/components/docs-viewer/content/changelog-page.tsx +0 -331
  275. package/renderer/components/docs-viewer/content/doc-page.tsx +0 -367
  276. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +0 -17
  277. package/renderer/components/docs-viewer/content/index.tsx +0 -29
  278. package/renderer/components/docs-viewer/content/not-found-page.tsx +0 -330
  279. package/renderer/components/docs-viewer/content/request-details.tsx +0 -330
  280. package/renderer/components/docs-viewer/content/sections/auth.tsx +0 -69
  281. package/renderer/components/docs-viewer/content/sections/body.tsx +0 -66
  282. package/renderer/components/docs-viewer/content/sections/headers.tsx +0 -43
  283. package/renderer/components/docs-viewer/content/sections/overview.tsx +0 -40
  284. package/renderer/components/docs-viewer/content/sections/parameters.tsx +0 -43
  285. package/renderer/components/docs-viewer/content/sections/responses.tsx +0 -87
  286. package/renderer/components/docs-viewer/global-auth-modal.tsx +0 -352
  287. package/renderer/components/docs-viewer/index.tsx +0 -1670
  288. package/renderer/components/docs-viewer/playground/auth-editor.tsx +0 -280
  289. package/renderer/components/docs-viewer/playground/body-editor.tsx +0 -221
  290. package/renderer/components/docs-viewer/playground/code-editor.tsx +0 -224
  291. package/renderer/components/docs-viewer/playground/code-snippet.tsx +0 -387
  292. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +0 -745
  293. package/renderer/components/docs-viewer/playground/index.tsx +0 -671
  294. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +0 -261
  295. package/renderer/components/docs-viewer/playground/method-selector.tsx +0 -60
  296. package/renderer/components/docs-viewer/playground/request-builder.tsx +0 -179
  297. package/renderer/components/docs-viewer/playground/request-tabs.tsx +0 -237
  298. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +0 -21
  299. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +0 -93
  300. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +0 -16
  301. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +0 -23
  302. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +0 -268
  303. package/renderer/components/docs-viewer/playground/response-cards/types.ts +0 -82
  304. package/renderer/components/docs-viewer/playground/response-viewer.tsx +0 -43
  305. package/renderer/components/docs-viewer/search/index.ts +0 -2
  306. package/renderer/components/docs-viewer/search/search-dialog.tsx +0 -331
  307. package/renderer/components/docs-viewer/search/use-search.ts +0 -117
  308. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +0 -431
  309. package/renderer/components/docs-viewer/shared/method-badge.tsx +0 -41
  310. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +0 -349
  311. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +0 -259
  312. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +0 -316
  313. package/renderer/components/docs-viewer/sidebar/index.tsx +0 -282
  314. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +0 -202
  315. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +0 -118
  316. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +0 -212
  317. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +0 -38
  318. package/renderer/components/theme-provider.tsx +0 -11
  319. package/renderer/components/theme-toggle.tsx +0 -76
  320. package/renderer/components/ui/badge.tsx +0 -46
  321. package/renderer/components/ui/button.tsx +0 -59
  322. package/renderer/components/ui/dialog.tsx +0 -118
  323. package/renderer/components/ui/dropdown-menu.tsx +0 -257
  324. package/renderer/components/ui/input.tsx +0 -21
  325. package/renderer/components/ui/label.tsx +0 -24
  326. package/renderer/components/ui/navigation-menu.tsx +0 -168
  327. package/renderer/components/ui/select.tsx +0 -190
  328. package/renderer/components/ui/spinner.tsx +0 -114
  329. package/renderer/components/ui/tabs.tsx +0 -66
  330. package/renderer/components/ui/tooltip.tsx +0 -61
  331. package/renderer/hooks/use-code-copy.ts +0 -88
  332. package/renderer/hooks/use-openapi-title.ts +0 -44
  333. package/renderer/lib/api-docs/agent/index.ts +0 -6
  334. package/renderer/lib/api-docs/agent/indexer.ts +0 -323
  335. package/renderer/lib/api-docs/agent/spec-summary.ts +0 -335
  336. package/renderer/lib/api-docs/agent/types.ts +0 -116
  337. package/renderer/lib/api-docs/auth/auth-context.tsx +0 -225
  338. package/renderer/lib/api-docs/auth/auth-storage.ts +0 -87
  339. package/renderer/lib/api-docs/auth/crypto.ts +0 -89
  340. package/renderer/lib/api-docs/auth/index.ts +0 -4
  341. package/renderer/lib/api-docs/code-editor/db.ts +0 -164
  342. package/renderer/lib/api-docs/code-editor/hooks.ts +0 -266
  343. package/renderer/lib/api-docs/code-editor/mode-context.tsx +0 -207
  344. package/renderer/lib/api-docs/code-editor/types.ts +0 -105
  345. package/renderer/lib/api-docs/codegen/definitions.ts +0 -297
  346. package/renderer/lib/api-docs/codegen/har.ts +0 -251
  347. package/renderer/lib/api-docs/codegen/index.ts +0 -159
  348. package/renderer/lib/api-docs/factories.ts +0 -170
  349. package/renderer/lib/api-docs/mobile-context.tsx +0 -112
  350. package/renderer/lib/api-docs/navigation-context.tsx +0 -88
  351. package/renderer/lib/api-docs/parsers/graphql/README.md +0 -129
  352. package/renderer/lib/api-docs/parsers/graphql/index.ts +0 -91
  353. package/renderer/lib/api-docs/parsers/graphql/parser.ts +0 -491
  354. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +0 -246
  355. package/renderer/lib/api-docs/parsers/graphql/types.ts +0 -283
  356. package/renderer/lib/api-docs/parsers/openapi/README.md +0 -32
  357. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +0 -60
  358. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +0 -574
  359. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +0 -403
  360. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +0 -232
  361. package/renderer/lib/api-docs/parsers/openapi/index.ts +0 -171
  362. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +0 -278
  363. package/renderer/lib/api-docs/parsers/openapi/validator.ts +0 -31
  364. package/renderer/lib/api-docs/playground/context.tsx +0 -107
  365. package/renderer/lib/api-docs/playground/navigation-context.tsx +0 -124
  366. package/renderer/lib/api-docs/playground/request-builder.ts +0 -223
  367. package/renderer/lib/api-docs/playground/request-runner.ts +0 -282
  368. package/renderer/lib/api-docs/playground/types.ts +0 -35
  369. package/renderer/lib/api-docs/types.ts +0 -269
  370. package/renderer/lib/api-docs/utils.ts +0 -311
  371. package/renderer/lib/cache.ts +0 -193
  372. package/renderer/lib/docs/config/domain-schema.ts +0 -260
  373. package/renderer/lib/docs/config/index.ts +0 -43
  374. package/renderer/lib/docs/config/loader.ts +0 -142
  375. package/renderer/lib/docs/config/schema.ts +0 -308
  376. package/renderer/lib/docs/index.ts +0 -12
  377. package/renderer/lib/docs/mdx/compiler.ts +0 -176
  378. package/renderer/lib/docs/mdx/frontmatter.ts +0 -91
  379. package/renderer/lib/docs/mdx/index.ts +0 -26
  380. package/renderer/lib/docs/navigation/generator.ts +0 -348
  381. package/renderer/lib/docs/navigation/index.ts +0 -12
  382. package/renderer/lib/docs/navigation/types.ts +0 -123
  383. package/renderer/lib/docs-navigation-context.tsx +0 -80
  384. package/renderer/lib/multi-tenant/context.ts +0 -105
  385. package/renderer/lib/storage/blob.ts +0 -1083
  386. package/renderer/lib/utils/icons.ts +0 -48
  387. package/renderer/lib/utils.ts +0 -6
  388. package/renderer/next.config.ts +0 -76
@@ -1,348 +0,0 @@
1
- import { relative, basename, extname } from 'path'
2
- import {
3
- type DocsConfig,
4
- type NavigationTab,
5
- type NavigationGroup,
6
- resolvePagePath,
7
- loadPageContent,
8
- } from '../config'
9
- import { extractFrontmatter, safeParseFrontmatter } from '../mdx'
10
- import type {
11
- Navigation,
12
- NavTab,
13
- NavGroup,
14
- NavItem,
15
- PageNavContext,
16
- BreadcrumbItem,
17
- PageMeta,
18
- } from './types'
19
-
20
- /**
21
- * Navigation Generator
22
- *
23
- * Builds navigation structure from docs.json configuration
24
- */
25
-
26
- /**
27
- * Generate navigation from configuration
28
- */
29
- export function generateNavigation(
30
- config: DocsConfig,
31
- docsDir: string
32
- ): Navigation {
33
- const nav = config.navigation
34
- const navigation: Navigation = {}
35
-
36
- // Handle tabbed navigation
37
- if (nav.tabs && nav.tabs.length > 0) {
38
- navigation.tabs = nav.tabs.map(tab => buildNavTab(tab, docsDir))
39
- }
40
-
41
- // Handle single-page navigation (no tabs)
42
- if (nav.groups && nav.groups.length > 0) {
43
- navigation.groups = nav.groups.map(group => buildNavGroup(group, docsDir))
44
- }
45
-
46
- // Add global anchors
47
- if (nav.global?.anchors) {
48
- navigation.anchors = nav.global.anchors.map(anchor => ({
49
- title: anchor.anchor,
50
- href: anchor.href,
51
- icon: anchor.icon,
52
- external: anchor.href.startsWith('http'),
53
- }))
54
- }
55
-
56
- return navigation
57
- }
58
-
59
- /**
60
- * Build a navigation tab
61
- */
62
- function buildNavTab(
63
- tab: NavigationTab,
64
- docsDir: string
65
- ): NavTab {
66
- const slug = tab.tab.toLowerCase().replace(/\s+/g, '-')
67
-
68
- // Only docs tabs have groups
69
- if ('groups' in tab && tab.groups) {
70
- const groups = tab.groups.map(group => buildNavGroup(group, docsDir))
71
- return {
72
- title: tab.tab,
73
- slug,
74
- groups,
75
- }
76
- }
77
-
78
- // For openapi/changelog tabs, return empty groups
79
- return {
80
- title: tab.tab,
81
- slug,
82
- groups: [],
83
- }
84
- }
85
-
86
- /**
87
- * Build a navigation group
88
- */
89
- function buildNavGroup(
90
- group: NavigationGroup,
91
- docsDir: string
92
- ): NavGroup {
93
- const items = group.pages
94
- .map(page => buildNavItemOrGroup(page, docsDir))
95
- .filter((item): item is NavItem | NavGroup => item !== null)
96
-
97
- return {
98
- title: group.group,
99
- icon: group.icon,
100
- items,
101
- collapsible: true,
102
- defaultCollapsed: false,
103
- }
104
- }
105
-
106
- /**
107
- * Build a navigation item or nested group from a page reference
108
- */
109
- function buildNavItemOrGroup(
110
- pageRef: string | { group: string; pages: (string | object)[] },
111
- docsDir: string
112
- ): NavItem | NavGroup | null {
113
- // Handle nested groups
114
- if (typeof pageRef === 'object' && 'group' in pageRef) {
115
- const nestedItems = pageRef.pages
116
- .map(p => buildNavItemOrGroup(p as string | { group: string; pages: (string | object)[] }, docsDir))
117
- .filter((item): item is NavItem | NavGroup => item !== null)
118
-
119
- return {
120
- title: pageRef.group,
121
- items: nestedItems,
122
- collapsible: true,
123
- defaultCollapsed: false,
124
- }
125
- }
126
-
127
- return buildNavItem(pageRef, docsDir)
128
- }
129
-
130
- /**
131
- * Build a navigation item from a page reference
132
- */
133
- function buildNavItem(
134
- pageRef: string,
135
- docsDir: string
136
- ): NavItem | null {
137
- // Check if it's an external link
138
- if (pageRef.startsWith('http://') || pageRef.startsWith('https://')) {
139
- return {
140
- title: pageRef,
141
- href: pageRef,
142
- external: true,
143
- }
144
- }
145
-
146
- // Resolve the page file
147
- const filePath = resolvePagePath(docsDir, pageRef)
148
-
149
- if (!filePath) {
150
- console.warn(`Page not found: ${pageRef}`)
151
- return {
152
- title: pageRef,
153
- href: `/${pageRef}`,
154
- }
155
- }
156
-
157
- // Load and parse frontmatter
158
- try {
159
- const content = loadPageContent(filePath)
160
- const { data } = extractFrontmatter(content)
161
- const frontmatter = safeParseFrontmatter(data)
162
-
163
- // Build URL path
164
- const urlPath = pageRef === 'index' ? '/' : `/${pageRef}`
165
-
166
- return {
167
- title: frontmatter?.sidebarTitle || frontmatter?.title || pageRef,
168
- href: urlPath,
169
- icon: frontmatter?.icon,
170
- deprecated: frontmatter?.deprecated,
171
- }
172
- } catch (error) {
173
- console.warn(`Failed to load page metadata: ${pageRef}`, error)
174
- return {
175
- title: pageRef,
176
- href: `/${pageRef}`,
177
- }
178
- }
179
- }
180
-
181
- /**
182
- * Helper to check if an item is a NavItem (has href)
183
- */
184
- function isNavItem(item: NavItem | NavGroup): item is NavItem {
185
- return 'href' in item && typeof item.href === 'string'
186
- }
187
-
188
- /**
189
- * Recursively collect all NavItems from items array (handles nested groups)
190
- */
191
- function collectNavItems(items: (NavItem | NavGroup)[]): NavItem[] {
192
- const result: NavItem[] = []
193
- for (const item of items) {
194
- if (isNavItem(item)) {
195
- result.push(item)
196
- } else if ('items' in item && Array.isArray(item.items)) {
197
- result.push(...collectNavItems(item.items))
198
- }
199
- }
200
- return result
201
- }
202
-
203
- /**
204
- * Find navigation context for a specific page
205
- */
206
- export function findPageNavContext(
207
- navigation: Navigation,
208
- currentPath: string
209
- ): PageNavContext {
210
- const breadcrumbs: BreadcrumbItem[] = []
211
- let prev: NavItem | undefined
212
- let next: NavItem | undefined
213
- let currentTab: NavTab | undefined
214
- let currentGroup: NavGroup | undefined
215
- let currentItem: NavItem | undefined
216
-
217
- // Normalize path
218
- const normalizedPath = currentPath.startsWith('/') ? currentPath : `/${currentPath}`
219
-
220
- // Flatten all items for prev/next calculation
221
- const allItems: NavItem[] = []
222
-
223
- // Search in tabs
224
- if (navigation.tabs) {
225
- for (const tab of navigation.tabs) {
226
- for (const group of tab.groups) {
227
- const groupItems = collectNavItems(group.items)
228
- allItems.push(...groupItems)
229
-
230
- for (const item of groupItems) {
231
- if (item.href === normalizedPath) {
232
- currentTab = tab
233
- currentGroup = group
234
- currentItem = item
235
-
236
- // Build breadcrumbs
237
- breadcrumbs.push({ title: tab.title, href: `/${tab.slug}` })
238
- breadcrumbs.push({ title: group.title, href: '#' })
239
- breadcrumbs.push({ title: item.title, href: item.href })
240
- }
241
- }
242
- }
243
- }
244
- }
245
-
246
- // Search in groups (non-tabbed)
247
- if (navigation.groups) {
248
- for (const group of navigation.groups) {
249
- const groupItems = collectNavItems(group.items)
250
- allItems.push(...groupItems)
251
-
252
- for (const item of groupItems) {
253
- if (item.href === normalizedPath) {
254
- currentGroup = group
255
- currentItem = item
256
-
257
- // Build breadcrumbs
258
- breadcrumbs.push({ title: group.title, href: '#' })
259
- breadcrumbs.push({ title: item.title, href: item.href })
260
- }
261
- }
262
- }
263
- }
264
-
265
- // Find prev/next
266
- const currentIndex = allItems.findIndex(item => item.href === normalizedPath)
267
- if (currentIndex > 0) {
268
- prev = allItems[currentIndex - 1]
269
- }
270
- if (currentIndex >= 0 && currentIndex < allItems.length - 1) {
271
- next = allItems[currentIndex + 1]
272
- }
273
-
274
- return {
275
- breadcrumbs,
276
- prev,
277
- next,
278
- currentTab,
279
- currentGroup,
280
- currentItem,
281
- }
282
- }
283
-
284
- /**
285
- * Get all page paths from navigation
286
- */
287
- export function getAllPagePaths(navigation: Navigation): string[] {
288
- const paths: string[] = []
289
-
290
- if (navigation.tabs) {
291
- for (const tab of navigation.tabs) {
292
- for (const group of tab.groups) {
293
- const items = collectNavItems(group.items)
294
- for (const item of items) {
295
- if (!item.external) {
296
- paths.push(item.href)
297
- }
298
- }
299
- }
300
- }
301
- }
302
-
303
- if (navigation.groups) {
304
- for (const group of navigation.groups) {
305
- const items = collectNavItems(group.items)
306
- for (const item of items) {
307
- if (!item.external) {
308
- paths.push(item.href)
309
- }
310
- }
311
- }
312
- }
313
-
314
- return paths
315
- }
316
-
317
- /**
318
- * Load page metadata from file
319
- */
320
- export function loadPageMeta(
321
- filePath: string,
322
- docsDir: string
323
- ): PageMeta | null {
324
- try {
325
- const content = loadPageContent(filePath)
326
- const { data } = extractFrontmatter(content)
327
- const frontmatter = safeParseFrontmatter(data)
328
-
329
- // Calculate URL path from file path
330
- const relativePath = relative(docsDir, filePath)
331
- const urlPath = '/' + relativePath
332
- .replace(/\.(mdx?|md)$/, '')
333
- .replace(/\/index$/, '')
334
- .replace(/^index$/, '')
335
-
336
- return {
337
- filePath: relativePath,
338
- urlPath: urlPath || '/',
339
- title: frontmatter?.title || basename(filePath, extname(filePath)),
340
- description: frontmatter?.description,
341
- sidebarTitle: frontmatter?.sidebarTitle,
342
- icon: frontmatter?.icon,
343
- hidden: frontmatter?.hidden,
344
- }
345
- } catch {
346
- return null
347
- }
348
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Navigation Module Exports
3
- */
4
-
5
- export * from './types'
6
-
7
- export {
8
- generateNavigation,
9
- findPageNavContext,
10
- getAllPagePaths,
11
- loadPageMeta,
12
- } from './generator'
@@ -1,123 +0,0 @@
1
- /**
2
- * Navigation Types
3
- *
4
- * Types for the documentation navigation system
5
- */
6
-
7
- /**
8
- * A navigation item representing a single page
9
- */
10
- export interface NavItem {
11
- /** Display title */
12
- title: string
13
- /** URL path to the page */
14
- href: string
15
- /** Icon name (Phosphor icons) */
16
- icon?: string
17
- /** Whether the page is marked as deprecated */
18
- deprecated?: boolean
19
- /** Whether this is an external link */
20
- external?: boolean
21
- /** Optional badge text */
22
- badge?: string
23
- }
24
-
25
- /**
26
- * A group of navigation items
27
- */
28
- export interface NavGroup {
29
- /** Group title */
30
- title: string
31
- /** Icon for the group */
32
- icon?: string
33
- /** Pages in this group (can include nested groups) */
34
- items: (NavItem | NavGroup)[]
35
- /** Whether the group is collapsible */
36
- collapsible?: boolean
37
- /** Default collapsed state */
38
- defaultCollapsed?: boolean
39
- }
40
-
41
- /**
42
- * A navigation tab (top-level section)
43
- */
44
- export interface NavTab {
45
- /** Tab title */
46
- title: string
47
- /** URL segment for this tab */
48
- slug: string
49
- /** Groups within this tab */
50
- groups: NavGroup[]
51
- /** Icon for the tab */
52
- icon?: string
53
- }
54
-
55
- /**
56
- * Complete navigation structure
57
- */
58
- export interface Navigation {
59
- /** Navigation tabs (if using tabbed navigation) */
60
- tabs?: NavTab[]
61
- /** Groups (if using single-page navigation) */
62
- groups?: NavGroup[]
63
- /** Global anchors (shown on all pages) */
64
- anchors?: NavItem[]
65
- }
66
-
67
- /**
68
- * Breadcrumb item
69
- */
70
- export interface BreadcrumbItem {
71
- title: string
72
- href: string
73
- }
74
-
75
- /**
76
- * Page navigation context
77
- */
78
- export interface PageNavContext {
79
- /** Current page's breadcrumbs */
80
- breadcrumbs: BreadcrumbItem[]
81
- /** Previous page in navigation */
82
- prev?: NavItem
83
- /** Next page in navigation */
84
- next?: NavItem
85
- /** Current tab (if using tabs) */
86
- currentTab?: NavTab
87
- /** Current group */
88
- currentGroup?: NavGroup
89
- /** Current item */
90
- currentItem?: NavItem
91
- }
92
-
93
- /**
94
- * Table of contents item (from page headings)
95
- */
96
- export interface TocItem {
97
- id: string
98
- title: string
99
- level: number
100
- children?: TocItem[]
101
- }
102
-
103
- /**
104
- * Page metadata for navigation
105
- */
106
- export interface PageMeta {
107
- /** File path relative to content directory */
108
- filePath: string
109
- /** URL path */
110
- urlPath: string
111
- /** Page title from frontmatter */
112
- title: string
113
- /** Page description */
114
- description?: string
115
- /** Sidebar title (shorter) */
116
- sidebarTitle?: string
117
- /** Icon name */
118
- icon?: string
119
- /** Whether the page is hidden from navigation */
120
- hidden?: boolean
121
- /** Page order within group */
122
- order?: number
123
- }
@@ -1,80 +0,0 @@
1
- 'use client'
2
-
3
- import React, { createContext, useContext, useCallback } from 'react'
4
-
5
- /**
6
- * Docs Navigation Context
7
- *
8
- * Provides navigation functions for doc components (like Card) to use
9
- * the correct navigation method based on the current view.
10
- *
11
- * In ApiDocs view: Uses hash-based navigation
12
- * In standalone /docs view: Uses Next.js router
13
- */
14
-
15
- interface DocsNavigationContextValue {
16
- // Navigate to a doc page by slug
17
- navigateToPage: (slug: string) => void
18
- // Navigate to an endpoint by ID
19
- navigateToEndpoint: (endpointId: string) => void
20
- // Switch to a different tab
21
- switchToTab: (tabId: string) => void
22
- // Check if we're in the integrated ApiDocs view
23
- isApiDocsView: boolean
24
- // Current active tab
25
- activeTab?: string
26
- }
27
-
28
- const DocsNavigationContext = createContext<DocsNavigationContextValue | null>(null)
29
-
30
- interface DocsNavigationProviderProps {
31
- children: React.ReactNode
32
- onNavigateToPage?: (slug: string) => void
33
- onNavigateToEndpoint?: (endpointId: string) => void
34
- onSwitchTab?: (tabId: string) => void
35
- activeTab?: string
36
- }
37
-
38
- export function DocsNavigationProvider({
39
- children,
40
- onNavigateToPage,
41
- onNavigateToEndpoint,
42
- onSwitchTab,
43
- activeTab,
44
- }: DocsNavigationProviderProps) {
45
- const navigateToPage = useCallback((slug: string) => {
46
- if (onNavigateToPage) {
47
- onNavigateToPage(slug)
48
- }
49
- }, [onNavigateToPage])
50
-
51
- const navigateToEndpoint = useCallback((endpointId: string) => {
52
- if (onNavigateToEndpoint) {
53
- onNavigateToEndpoint(endpointId)
54
- }
55
- }, [onNavigateToEndpoint])
56
-
57
- const switchToTab = useCallback((tabId: string) => {
58
- if (onSwitchTab) {
59
- onSwitchTab(tabId)
60
- }
61
- }, [onSwitchTab])
62
-
63
- return (
64
- <DocsNavigationContext.Provider
65
- value={{
66
- navigateToPage,
67
- navigateToEndpoint,
68
- switchToTab,
69
- isApiDocsView: !!onNavigateToPage,
70
- activeTab,
71
- }}
72
- >
73
- {children}
74
- </DocsNavigationContext.Provider>
75
- )
76
- }
77
-
78
- export function useDocsNavigation() {
79
- return useContext(DocsNavigationContext)
80
- }
@@ -1,105 +0,0 @@
1
- /**
2
- * Multi-tenant project context utilities
3
- * Handles extracting project slug from hostname and managing project context
4
- */
5
-
6
- export interface ProjectContext {
7
- slug: string
8
- isMultiTenant: boolean
9
- hostname: string
10
- }
11
-
12
- /**
13
- * Known hostnames that should use local file system (not multi-tenant)
14
- */
15
- const LOCAL_HOSTNAMES = [
16
- 'localhost',
17
- '127.0.0.1',
18
- '0.0.0.0',
19
- ]
20
-
21
- /**
22
- * The main platform domain
23
- */
24
- const PLATFORM_DOMAIN = process.env.DEVDOC_PLATFORM_DOMAIN || 'devdoc.sh'
25
-
26
- /**
27
- * Extract project context from hostname
28
- *
29
- * Examples:
30
- * - my-docs.devdoc.sh -> { slug: 'my-docs', isMultiTenant: true }
31
- * - localhost:3000 -> { slug: null, isMultiTenant: false }
32
- * - docs.company.com -> { slug: lookup from custom domains, isMultiTenant: true }
33
- */
34
- export function extractProjectContext(hostname: string): ProjectContext {
35
- // Remove port if present
36
- const host = hostname.split(':')[0]
37
-
38
- // Check if it's a local development hostname
39
- if (LOCAL_HOSTNAMES.includes(host)) {
40
- return {
41
- slug: '',
42
- isMultiTenant: false,
43
- hostname: host,
44
- }
45
- }
46
-
47
- // Check if it's a subdomain of the platform domain
48
- if (host.endsWith(`.${PLATFORM_DOMAIN}`)) {
49
- const slug = host.replace(`.${PLATFORM_DOMAIN}`, '')
50
- return {
51
- slug,
52
- isMultiTenant: true,
53
- hostname: host,
54
- }
55
- }
56
-
57
- // Check if it's the main platform domain
58
- if (host === PLATFORM_DOMAIN || host === `www.${PLATFORM_DOMAIN}`) {
59
- return {
60
- slug: '',
61
- isMultiTenant: false,
62
- hostname: host,
63
- }
64
- }
65
-
66
- // Custom domain - need to lookup in database
67
- // For now, return the full hostname as slug placeholder
68
- // This will be resolved via the domains API
69
- return {
70
- slug: host, // Will be resolved to actual slug via custom domains lookup
71
- isMultiTenant: true,
72
- hostname: host,
73
- }
74
- }
75
-
76
- /**
77
- * Check if running in multi-tenant mode
78
- */
79
- export function isMultiTenantMode(): boolean {
80
- return process.env.MULTI_TENANT_MODE === 'true'
81
- }
82
-
83
- /**
84
- * Get the current project slug from environment or context
85
- */
86
- export function getCurrentProjectSlug(): string | null {
87
- return process.env.DEVDOC_PROJECT_SLUG || null
88
- }
89
-
90
- /**
91
- * Build the URL for a project's docs
92
- */
93
- export function getProjectUrl(slug: string): string {
94
- const protocol = process.env.NODE_ENV === 'production' ? 'https' : 'http'
95
- return `${protocol}://${slug}.${PLATFORM_DOMAIN}`
96
- }
97
-
98
- /**
99
- * Validate a project slug format
100
- */
101
- export function isValidSlug(slug: string): boolean {
102
- // Must be lowercase alphanumeric with hyphens, 3-50 chars
103
- const slugRegex = /^[a-z0-9][a-z0-9-]{1,48}[a-z0-9]$/
104
- return slugRegex.test(slug)
105
- }