@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,170 +0,0 @@
1
- /**
2
- * Factory Functions for Brainfish API Documentation
3
- *
4
- * Creates instances of BrainfishCollection and BrainfishRESTRequest
5
- * with proper defaults and unique IDs.
6
- */
7
-
8
- import type {
9
- BrainfishCollection,
10
- BrainfishRESTRequest,
11
- } from './types'
12
-
13
- /**
14
- * Generates a URL-friendly slug from a string
15
- * Converts to lowercase, replaces spaces and special chars with hyphens
16
- */
17
- function slugify(str: string): string {
18
- return str
19
- .toLowerCase()
20
- .replace(/[{}]/g, '') // Remove braces from path params
21
- .replace(/[^a-z0-9]+/g, '-') // Replace non-alphanumeric with hyphens
22
- .replace(/^-+|-+$/g, '') // Remove leading/trailing hyphens
23
- .replace(/-+/g, '-') // Collapse multiple hyphens
24
- }
25
-
26
- /**
27
- * Generates a human-readable, deterministic ID for requests
28
- * Uses operationId if available, otherwise method + path
29
- */
30
- function generateRequestId(method: string, path: string, operationId?: string): string {
31
- if (operationId) {
32
- // Use operationId directly (it's already unique per spec)
33
- return slugify(operationId)
34
- }
35
-
36
- // Generate from method + path: "get-users-id" for "GET /users/{id}"
37
- const pathSlug = slugify(path)
38
- return `${method.toLowerCase()}-${pathSlug}`
39
- }
40
-
41
- /**
42
- * Generates a unique ID for collections
43
- * If a seed is provided, generates a deterministic slug-based ID
44
- */
45
- function generateCollectionId(name?: string): string {
46
- if (name) {
47
- return `coll-${slugify(name)}`
48
- }
49
- return `coll_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`
50
- }
51
-
52
- /**
53
- * Creates a BrainfishRESTRequest with defaults
54
- * Generates human-readable, deterministic IDs based on operationId or method+path
55
- */
56
- export function makeBrainfishRESTRequest(
57
- request: Omit<BrainfishRESTRequest, 'id'> & { operationId?: string }
58
- ): BrainfishRESTRequest {
59
- // Extract path from endpoint (remove base URL)
60
- const path = request.endpoint
61
- ? request.endpoint.replace(/^https?:\/\/[^/]+/, '') || '/'
62
- : '/'
63
-
64
- // Generate human-readable ID
65
- const id = generateRequestId(request.method || 'GET', path, request.operationId)
66
-
67
- return {
68
- id,
69
- name: request.name || 'Untitled Request',
70
- description: request.description ?? null,
71
- method: request.method || 'GET',
72
- endpoint: request.endpoint || '',
73
- params: request.params || [],
74
- headers: request.headers || [],
75
- auth: request.auth || { authType: 'none', authActive: true },
76
- body: request.body || { contentType: null, body: null },
77
- requestVariables: request.requestVariables || [],
78
- responses: request.responses || {},
79
- tags: request.tags || [],
80
- }
81
- }
82
-
83
- /**
84
- * Creates a BrainfishCollection with defaults
85
- * If name is provided, generates a deterministic ID
86
- */
87
- export function makeBrainfishCollection(
88
- collection: Omit<BrainfishCollection, 'id'>
89
- ): BrainfishCollection {
90
- return {
91
- id: generateCollectionId(collection.name),
92
- name: collection.name || 'Untitled Collection',
93
- description: collection.description ?? null,
94
- folders: collection.folders || [],
95
- requests: collection.requests || [],
96
- variables: collection.variables || [],
97
- auth: collection.auth || { authType: 'inherit', authActive: true },
98
- headers: collection.headers || [],
99
- }
100
- }
101
-
102
- /**
103
- * Creates a default BrainfishRESTRequest
104
- */
105
- export function getDefaultBrainfishRESTRequest(): BrainfishRESTRequest {
106
- return makeBrainfishRESTRequest({
107
- name: 'Untitled Request',
108
- description: null,
109
- method: 'GET',
110
- endpoint: '',
111
- params: [],
112
- headers: [],
113
- auth: {
114
- authType: 'none',
115
- authActive: true,
116
- },
117
- body: {
118
- contentType: null,
119
- body: null,
120
- },
121
- requestVariables: [],
122
- responses: {},
123
- tags: [],
124
- })
125
- }
126
-
127
- /**
128
- * Creates a default BrainfishCollection
129
- */
130
- export function getDefaultBrainfishCollection(): BrainfishCollection {
131
- return makeBrainfishCollection({
132
- name: 'Untitled Collection',
133
- description: null,
134
- folders: [],
135
- requests: [],
136
- variables: [],
137
- auth: {
138
- authType: 'inherit',
139
- authActive: true,
140
- },
141
- headers: [],
142
- })
143
- }
144
-
145
- /**
146
- * Creates a BrainfishRESTResponseOriginalRequest
147
- */
148
- export function makeBrainfishRESTResponseOriginalRequest(
149
- request: {
150
- name: string
151
- method: BrainfishRESTRequest['method']
152
- endpoint: string
153
- params: BrainfishRESTRequest['params']
154
- headers: BrainfishRESTRequest['headers']
155
- body: BrainfishRESTRequest['body']
156
- auth: BrainfishRESTRequest['auth']
157
- requestVariables: BrainfishRESTRequest['requestVariables']
158
- }
159
- ) {
160
- return {
161
- name: request.name,
162
- method: request.method,
163
- endpoint: request.endpoint,
164
- params: request.params,
165
- headers: request.headers,
166
- body: request.body,
167
- auth: request.auth,
168
- requestVariables: request.requestVariables,
169
- }
170
- }
@@ -1,112 +0,0 @@
1
- 'use client'
2
-
3
- import { createContext, useContext, useState, useCallback, useEffect, type ReactNode } from 'react'
4
-
5
- interface MobileContextValue {
6
- // Sidebar visibility
7
- isLeftSidebarOpen: boolean
8
- isRightSidebarOpen: boolean
9
- // Toggle functions
10
- toggleLeftSidebar: () => void
11
- toggleRightSidebar: () => void
12
- openLeftSidebar: () => void
13
- closeLeftSidebar: () => void
14
- openRightSidebar: () => void
15
- closeRightSidebar: () => void
16
- // Close all sidebars (useful when navigating)
17
- closeAllSidebars: () => void
18
- // Mobile detection
19
- isMobile: boolean
20
- }
21
-
22
- const MobileContext = createContext<MobileContextValue | null>(null)
23
-
24
- export function MobileProvider({ children }: { children: ReactNode }) {
25
- const [isLeftSidebarOpen, setIsLeftSidebarOpen] = useState(false)
26
- const [isRightSidebarOpen, setIsRightSidebarOpen] = useState(false)
27
- const [isMobile, setIsMobile] = useState(false)
28
-
29
- // Detect mobile on mount and window resize
30
- useEffect(() => {
31
- const checkMobile = () => {
32
- setIsMobile(window.innerWidth < 1024) // lg breakpoint
33
- }
34
-
35
- // Initial check
36
- checkMobile()
37
-
38
- // Listen for resize
39
- window.addEventListener('resize', checkMobile)
40
- return () => window.removeEventListener('resize', checkMobile)
41
- }, [])
42
-
43
- // Close sidebars when switching to desktop
44
- useEffect(() => {
45
- if (!isMobile) {
46
- setIsLeftSidebarOpen(false)
47
- setIsRightSidebarOpen(false)
48
- }
49
- }, [isMobile])
50
-
51
- const toggleLeftSidebar = useCallback(() => {
52
- setIsLeftSidebarOpen(prev => !prev)
53
- // Close right sidebar when opening left
54
- setIsRightSidebarOpen(false)
55
- }, [])
56
-
57
- const toggleRightSidebar = useCallback(() => {
58
- setIsRightSidebarOpen(prev => !prev)
59
- // Close left sidebar when opening right
60
- setIsLeftSidebarOpen(false)
61
- }, [])
62
-
63
- const openLeftSidebar = useCallback(() => {
64
- setIsLeftSidebarOpen(true)
65
- setIsRightSidebarOpen(false)
66
- }, [])
67
-
68
- const closeLeftSidebar = useCallback(() => {
69
- setIsLeftSidebarOpen(false)
70
- }, [])
71
-
72
- const openRightSidebar = useCallback(() => {
73
- setIsRightSidebarOpen(true)
74
- setIsLeftSidebarOpen(false)
75
- }, [])
76
-
77
- const closeRightSidebar = useCallback(() => {
78
- setIsRightSidebarOpen(false)
79
- }, [])
80
-
81
- const closeAllSidebars = useCallback(() => {
82
- setIsLeftSidebarOpen(false)
83
- setIsRightSidebarOpen(false)
84
- }, [])
85
-
86
- return (
87
- <MobileContext.Provider
88
- value={{
89
- isLeftSidebarOpen,
90
- isRightSidebarOpen,
91
- toggleLeftSidebar,
92
- toggleRightSidebar,
93
- openLeftSidebar,
94
- closeLeftSidebar,
95
- openRightSidebar,
96
- closeRightSidebar,
97
- closeAllSidebars,
98
- isMobile,
99
- }}
100
- >
101
- {children}
102
- </MobileContext.Provider>
103
- )
104
- }
105
-
106
- export function useMobile() {
107
- const context = useContext(MobileContext)
108
- if (!context) {
109
- throw new Error('useMobile must be used within a MobileProvider')
110
- }
111
- return context
112
- }
@@ -1,88 +0,0 @@
1
- 'use client'
2
-
3
- import { createContext, useContext, useCallback, type ReactNode } from 'react'
4
- import type { BrainfishCollection, BrainfishRESTRequest } from './types'
5
-
6
- interface NavigationContextValue {
7
- /** Navigate to an endpoint by operationId or ID */
8
- navigateToEndpoint: (operationIdOrId: string) => void
9
- /** Current collection */
10
- collection: BrainfishCollection | null
11
- }
12
-
13
- const NavigationContext = createContext<NavigationContextValue | null>(null)
14
-
15
- interface NavigationProviderProps {
16
- children: ReactNode
17
- collection: BrainfishCollection | null
18
- onSelectRequest: (request: BrainfishRESTRequest) => void
19
- }
20
-
21
- /**
22
- * Helper to find request by operationId (name) or ID in collection
23
- */
24
- function findRequestByOperationIdOrId(
25
- collection: BrainfishCollection,
26
- operationIdOrId: string
27
- ): BrainfishRESTRequest | null {
28
- // Normalize the search term (handle both snake_case and the formatted name)
29
- const normalizedSearch = operationIdOrId.toLowerCase().replace(/[\s-]/g, '_')
30
-
31
- // Check direct requests
32
- for (const request of collection.requests) {
33
- // Check by ID
34
- if (request.id === operationIdOrId) return request
35
- // Check by name (operationId) - exact match
36
- if (request.name.toLowerCase().replace(/[\s-]/g, '_') === normalizedSearch) return request
37
- // Check by name - partial match (for formatted names like "Post Carts" -> "post_carts")
38
- const requestNameNormalized = request.name.toLowerCase().replace(/[\s-]/g, '_')
39
- if (requestNameNormalized === normalizedSearch) return request
40
- }
41
-
42
- // Check folders recursively
43
- for (const folder of collection.folders) {
44
- const request = findRequestByOperationIdOrId(folder, operationIdOrId)
45
- if (request) return request
46
- }
47
-
48
- return null
49
- }
50
-
51
- export function NavigationProvider({
52
- children,
53
- collection,
54
- onSelectRequest
55
- }: NavigationProviderProps) {
56
- const navigateToEndpoint = useCallback((operationIdOrId: string) => {
57
- if (!collection) {
58
- console.warn('[Navigation] No collection available')
59
- return
60
- }
61
-
62
- const request = findRequestByOperationIdOrId(collection, operationIdOrId)
63
- if (request) {
64
- console.log('[Navigation] Navigating to endpoint:', request.name)
65
- onSelectRequest(request)
66
- } else {
67
- console.warn('[Navigation] Endpoint not found:', operationIdOrId)
68
- }
69
- }, [collection, onSelectRequest])
70
-
71
- return (
72
- <NavigationContext.Provider value={{ navigateToEndpoint, collection }}>
73
- {children}
74
- </NavigationContext.Provider>
75
- )
76
- }
77
-
78
- export function useNavigation() {
79
- const context = useContext(NavigationContext)
80
- if (!context) {
81
- // Return a no-op function if not in provider (for backwards compatibility)
82
- return {
83
- navigateToEndpoint: () => {},
84
- collection: null
85
- }
86
- }
87
- return context
88
- }
@@ -1,129 +0,0 @@
1
- # GraphQL Parser
2
-
3
- This directory contains the GraphQL schema parsing logic for Brainfish API Docs.
4
-
5
- ## Structure
6
-
7
- - `types.ts` - TypeScript types for GraphQL schema representation
8
- - `parser.ts` - GraphQL SDL parsing using graphql-js
9
- - `transformer.ts` - Convert GraphQL schema to BrainfishCollection
10
- - `index.ts` - Main entry point and exports
11
-
12
- ## Dependencies Required
13
-
14
- ```bash
15
- npm install graphql
16
- ```
17
-
18
- ## Usage
19
-
20
- ### Parse GraphQL Schema
21
-
22
- ```typescript
23
- import { importGraphQLSchema } from '@/lib/api-docs/parsers/graphql'
24
-
25
- // Parse SDL string
26
- const collection = await importGraphQLSchema(sdlString, {
27
- name: 'My GraphQL API',
28
- endpoint: 'https://api.example.com/graphql',
29
- })
30
- ```
31
-
32
- ### Get Full Schema Information
33
-
34
- ```typescript
35
- import { importGraphQLSchemaFull } from '@/lib/api-docs/parsers/graphql'
36
-
37
- const graphqlCollection = await importGraphQLSchemaFull(sdlString, {
38
- name: 'My GraphQL API',
39
- endpoint: 'https://api.example.com/graphql',
40
- })
41
-
42
- // Access queries, mutations, subscriptions, and types
43
- console.log(graphqlCollection.queries)
44
- console.log(graphqlCollection.mutations)
45
- console.log(graphqlCollection.types)
46
- ```
47
-
48
- ### Parse Schema Only
49
-
50
- ```typescript
51
- import { parseGraphQL } from '@/lib/api-docs/parsers/graphql'
52
-
53
- const schema = await parseGraphQL(sdlString)
54
-
55
- // Access schema information
56
- console.log(schema.info)
57
- console.log(schema.types)
58
- console.log(schema.queries)
59
- ```
60
-
61
- ## Configuration in docs.json
62
-
63
- Add a GraphQL tab to your navigation:
64
-
65
- ```json
66
- {
67
- "navigation": {
68
- "tabs": [
69
- {
70
- "tab": "GraphQL API",
71
- "type": "graphql",
72
- "path": "/graphql",
73
- "schema": "api-reference/schema.graphql",
74
- "endpoint": "https://api.example.com/graphql"
75
- }
76
- ]
77
- }
78
- }
79
- ```
80
-
81
- ### Multiple Schemas
82
-
83
- ```json
84
- {
85
- "navigation": {
86
- "tabs": [
87
- {
88
- "tab": "GraphQL API",
89
- "type": "graphql",
90
- "path": "/graphql",
91
- "schemas": [
92
- {
93
- "name": "Public API",
94
- "schema": "api-reference/public.graphql",
95
- "endpoint": "https://api.example.com/graphql",
96
- "default": true
97
- },
98
- {
99
- "name": "Admin API",
100
- "schema": "api-reference/admin.graphql",
101
- "endpoint": "https://admin.example.com/graphql"
102
- }
103
- ]
104
- }
105
- ]
106
- }
107
- }
108
- ```
109
-
110
- ## Features
111
-
112
- - **SDL Parsing**: Parse GraphQL Schema Definition Language files
113
- - **Introspection**: Support for introspection query results (planned)
114
- - **Type Explorer**: View all types, inputs, enums, interfaces, unions
115
- - **Operation Playground**: Test queries, mutations, and subscriptions
116
- - **Variable Support**: Auto-generate example variables from schema
117
- - **Documentation**: Extract descriptions from schema for docs
118
-
119
- ## Architecture
120
-
121
- The GraphQL parser follows the same pattern as the OpenAPI parser:
122
-
123
- 1. **Parse**: Read SDL or introspection result
124
- 2. **Validate**: Ensure schema is valid GraphQL
125
- 3. **Transform**: Convert to internal types
126
- 4. **Export**: Generate BrainfishCollection for UI
127
-
128
- This allows GraphQL APIs to use the same documentation UI as REST APIs,
129
- with GraphQL-specific enhancements for the schema explorer and playground.
@@ -1,91 +0,0 @@
1
- /**
2
- * GraphQL Parser Module
3
- *
4
- * Main entry point for GraphQL schema parsing and transformation.
5
- */
6
-
7
- export * from './types'
8
- export * from './parser'
9
- export * from './transformer'
10
-
11
- import { parseGraphQLSchema, validateGraphQLSchema } from './parser'
12
- import { convertGraphQLToBrainfishCollection, convertGraphQLToCollection } from './transformer'
13
- import type { BrainfishCollection } from '../../types'
14
- import type { BrainfishGraphQLCollection, GraphQLSchema } from './types'
15
-
16
- export const GRAPHQL_INVALID_SCHEMA = 'graphql/invalid_schema' as const
17
-
18
- /**
19
- * Import a GraphQL schema from SDL string or file content
20
- * Returns a BrainfishCollection for integration with existing UI
21
- */
22
- export async function importGraphQLSchema(
23
- input: string,
24
- options: {
25
- name?: string
26
- endpoint?: string
27
- description?: string
28
- } = {}
29
- ): Promise<BrainfishCollection> {
30
- const {
31
- name = 'GraphQL API',
32
- endpoint = '/graphql',
33
- description,
34
- } = options
35
-
36
- // Validate the schema
37
- const validation = validateGraphQLSchema(input)
38
- if (!validation.valid) {
39
- throw new Error(`${GRAPHQL_INVALID_SCHEMA}: ${validation.error}`)
40
- }
41
-
42
- // Parse the schema
43
- const schema = parseGraphQLSchema(input)
44
-
45
- // Convert to BrainfishCollection
46
- return convertGraphQLToBrainfishCollection(schema, name, endpoint, description)
47
- }
48
-
49
- /**
50
- * Import a GraphQL schema and return the full GraphQL collection
51
- * with schema information preserved
52
- */
53
- export async function importGraphQLSchemaFull(
54
- input: string,
55
- options: {
56
- name?: string
57
- endpoint?: string
58
- description?: string
59
- } = {}
60
- ): Promise<BrainfishGraphQLCollection> {
61
- const {
62
- name = 'GraphQL API',
63
- endpoint = '/graphql',
64
- description,
65
- } = options
66
-
67
- // Validate the schema
68
- const validation = validateGraphQLSchema(input)
69
- if (!validation.valid) {
70
- throw new Error(`${GRAPHQL_INVALID_SCHEMA}: ${validation.error}`)
71
- }
72
-
73
- // Parse the schema
74
- const schema = parseGraphQLSchema(input)
75
-
76
- // Convert to full GraphQL collection
77
- return convertGraphQLToCollection(schema, name, endpoint, description)
78
- }
79
-
80
- /**
81
- * Parse GraphQL schema without converting to collection
82
- * Useful for schema exploration and type information
83
- */
84
- export async function parseGraphQL(input: string): Promise<GraphQLSchema> {
85
- const validation = validateGraphQLSchema(input)
86
- if (!validation.valid) {
87
- throw new Error(`${GRAPHQL_INVALID_SCHEMA}: ${validation.error}`)
88
- }
89
-
90
- return parseGraphQLSchema(input)
91
- }