@brainfish-ai/devdoc 0.1.42 → 0.1.44

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 (398) hide show
  1. package/dist/cli/commands/create.js +2 -2
  2. package/dist/cli/commands/dev.js +19 -10
  3. package/package.json +3 -2
  4. package/renderer/app/api/assets/[...path]/route.js +108 -0
  5. package/renderer/app/api/assets/route.js +114 -0
  6. package/renderer/app/api/assets/upload/route.js +163 -0
  7. package/renderer/app/api/auth-schemes/route.js +58 -0
  8. package/renderer/app/api/chat/route.js +759 -0
  9. package/renderer/app/api/codegen/route.js +52 -0
  10. package/renderer/app/api/collections/route.js +706 -0
  11. package/renderer/app/api/debug/route.js +47 -0
  12. package/renderer/app/api/deploy/route.js +199 -0
  13. package/renderer/app/api/device/route.js +36 -0
  14. package/renderer/app/api/docs/route.js +205 -0
  15. package/renderer/app/api/domains/add/route.js +121 -0
  16. package/renderer/app/api/domains/lookup/route.js +43 -0
  17. package/renderer/app/api/domains/remove/route.js +89 -0
  18. package/renderer/app/api/domains/status/route.js +140 -0
  19. package/renderer/app/api/domains/verify/route.js +168 -0
  20. package/renderer/app/api/keys/regenerate/route.js +71 -0
  21. package/renderer/app/api/local-assets/[...path]/route.js +108 -0
  22. package/renderer/app/api/openapi-spec/route.js +73 -0
  23. package/renderer/app/api/projects/[slug]/route.js +129 -0
  24. package/renderer/app/api/projects/[slug]/stats/route.js +80 -0
  25. package/renderer/app/api/projects/register/route.js +176 -0
  26. package/renderer/app/api/proxy/route.js +139 -0
  27. package/renderer/app/api/proxy-stream/route.js +156 -0
  28. package/renderer/app/api/redirects/route.js +35 -0
  29. package/renderer/app/api/schema/route.js +85 -0
  30. package/renderer/app/api/subdomains/check/route.js +158 -0
  31. package/renderer/app/api/suggestions/route.js +195 -0
  32. package/renderer/app/globals.css +69 -0
  33. package/renderer/app/layout.js +47 -0
  34. package/renderer/app/llms-full.txt/route.js +266 -0
  35. package/renderer/app/llms.txt/route.js +228 -0
  36. package/renderer/app/page.js +12 -0
  37. package/renderer/app/robots.txt/route.js +66 -0
  38. package/renderer/app/sitemap.xml/route.js +155 -0
  39. package/renderer/components/docs/index.js +8 -0
  40. package/renderer/components/docs/mdx/accordion.js +113 -0
  41. package/renderer/components/docs/mdx/badge.js +72 -0
  42. package/renderer/components/docs/mdx/callouts.js +137 -0
  43. package/renderer/components/docs/mdx/cards.js +175 -0
  44. package/renderer/components/docs/mdx/changelog.js +100 -0
  45. package/renderer/components/docs/mdx/code-block.js +147 -0
  46. package/renderer/components/docs/mdx/code-group.js +287 -0
  47. package/renderer/components/docs/mdx/file-embeds.js +82 -0
  48. package/renderer/components/docs/mdx/frame.js +59 -0
  49. package/renderer/components/docs/mdx/highlight.js +90 -0
  50. package/renderer/components/docs/mdx/iframe.js +69 -0
  51. package/renderer/components/docs/mdx/image.js +135 -0
  52. package/renderer/components/docs/mdx/index.js +134 -0
  53. package/renderer/components/docs/mdx/landing.js +317 -0
  54. package/renderer/components/docs/mdx/mermaid.js +212 -0
  55. package/renderer/components/docs/mdx/param-field.js +112 -0
  56. package/renderer/components/docs/mdx/steps.js +74 -0
  57. package/renderer/components/docs/mdx/tabs.js +50 -0
  58. package/renderer/components/docs/mdx-renderer.js +77 -0
  59. package/renderer/components/docs/navigation/breadcrumbs.js +64 -0
  60. package/renderer/components/docs/navigation/index.js +6 -0
  61. package/renderer/components/docs/navigation/page-nav.js +57 -0
  62. package/renderer/components/docs/navigation/sidebar.js +375 -0
  63. package/renderer/components/docs/navigation/toc.js +89 -0
  64. package/renderer/components/docs/notice.js +77 -0
  65. package/renderer/components/docs-header.js +202 -0
  66. package/renderer/components/docs-viewer/agent/agent-chat.js +1831 -0
  67. package/renderer/components/docs-viewer/agent/agent-popup-button.js +99 -0
  68. package/renderer/components/docs-viewer/agent/cards/debug-context-card.js +107 -0
  69. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.js +57 -0
  70. package/renderer/components/docs-viewer/agent/cards/index.js +45 -0
  71. package/renderer/components/docs-viewer/agent/cards/response-options-card.js +154 -0
  72. package/renderer/components/docs-viewer/agent/cards/types.js +22 -0
  73. package/renderer/components/docs-viewer/agent/chat-message.js +2 -0
  74. package/renderer/components/docs-viewer/agent/index.js +7 -0
  75. package/renderer/components/docs-viewer/agent/messages/assistant-message.js +108 -0
  76. package/renderer/components/docs-viewer/agent/messages/chat-message.js +34 -0
  77. package/renderer/components/docs-viewer/agent/messages/index.js +6 -0
  78. package/renderer/components/docs-viewer/agent/messages/tool-call-display.js +1065 -0
  79. package/renderer/components/docs-viewer/agent/messages/types.js +2 -0
  80. package/renderer/components/docs-viewer/agent/messages/typing-indicator.js +26 -0
  81. package/renderer/components/docs-viewer/agent/messages/user-message.js +37 -0
  82. package/renderer/components/docs-viewer/code-editor/{index.tsx → index.js} +1 -1
  83. package/renderer/components/docs-viewer/code-editor/notes-mode.js +1338 -0
  84. package/renderer/components/docs-viewer/content/changelog-page.js +297 -0
  85. package/renderer/components/docs-viewer/content/content-router.js +182 -0
  86. package/renderer/components/docs-viewer/content/doc-page.js +290 -0
  87. package/renderer/components/docs-viewer/content/documentation-viewer.js +14 -0
  88. package/renderer/components/docs-viewer/content/index.js +31 -0
  89. package/renderer/components/docs-viewer/content/not-found-page.js +300 -0
  90. package/renderer/components/docs-viewer/content/request-details.js +528 -0
  91. package/renderer/components/docs-viewer/content/sections/auth.js +108 -0
  92. package/renderer/components/docs-viewer/content/sections/body.js +80 -0
  93. package/renderer/components/docs-viewer/content/sections/headers.js +64 -0
  94. package/renderer/components/docs-viewer/content/sections/overview.js +56 -0
  95. package/renderer/components/docs-viewer/content/sections/parameters.js +64 -0
  96. package/renderer/components/docs-viewer/content/sections/responses.js +91 -0
  97. package/renderer/components/docs-viewer/global-auth-modal.js +427 -0
  98. package/renderer/components/docs-viewer/index.js +1448 -0
  99. package/renderer/components/docs-viewer/playground/auth-editor.js +418 -0
  100. package/renderer/components/docs-viewer/playground/body-editor.js +240 -0
  101. package/renderer/components/docs-viewer/playground/code-editor.js +135 -0
  102. package/renderer/components/docs-viewer/playground/code-snippet.js +393 -0
  103. package/renderer/components/docs-viewer/playground/graphql-playground.js +936 -0
  104. package/renderer/components/docs-viewer/playground/index.js +682 -0
  105. package/renderer/components/docs-viewer/playground/key-value-editor.js +317 -0
  106. package/renderer/components/docs-viewer/playground/method-selector.js +65 -0
  107. package/renderer/components/docs-viewer/playground/request-builder.js +181 -0
  108. package/renderer/components/docs-viewer/playground/request-tabs.js +240 -0
  109. package/renderer/components/docs-viewer/playground/response-cards/idle-card.js +42 -0
  110. package/renderer/components/docs-viewer/playground/response-cards/index.js +72 -0
  111. package/renderer/components/docs-viewer/playground/response-cards/loading-card.js +24 -0
  112. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.js +28 -0
  113. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.js +308 -0
  114. package/renderer/components/docs-viewer/playground/response-cards/types.js +9 -0
  115. package/renderer/components/docs-viewer/playground/response-viewer.js +18 -0
  116. package/renderer/components/docs-viewer/search/index.js +2 -0
  117. package/renderer/components/docs-viewer/search/search-dialog.js +367 -0
  118. package/renderer/components/docs-viewer/search/use-search.js +89 -0
  119. package/renderer/components/docs-viewer/shared/markdown-renderer.js +423 -0
  120. package/renderer/components/docs-viewer/shared/method-badge.js +23 -0
  121. package/renderer/components/docs-viewer/shared/schema-viewer.js +321 -0
  122. package/renderer/components/docs-viewer/sidebar/collection-tree.js +222 -0
  123. package/renderer/components/docs-viewer/sidebar/endpoint-options.js +512 -0
  124. package/renderer/components/docs-viewer/sidebar/index.js +196 -0
  125. package/renderer/components/docs-viewer/sidebar/right-sidebar.js +159 -0
  126. package/renderer/components/docs-viewer/sidebar/sidebar-group.js +87 -0
  127. package/renderer/components/docs-viewer/sidebar/sidebar-item.js +172 -0
  128. package/renderer/components/docs-viewer/sidebar/sidebar-section.js +31 -0
  129. package/renderer/components/theme-provider.js +10 -0
  130. package/renderer/components/theme-toggle.js +86 -0
  131. package/renderer/components/ui/badge.js +29 -0
  132. package/renderer/components/ui/button.js +40 -0
  133. package/renderer/components/ui/dialog.js +50 -0
  134. package/renderer/components/ui/dropdown-menu.js +143 -0
  135. package/renderer/components/ui/input.js +12 -0
  136. package/renderer/components/ui/label.js +13 -0
  137. package/renderer/components/ui/navigation-menu.js +83 -0
  138. package/renderer/components/ui/select.js +116 -0
  139. package/renderer/components/ui/spinner.js +92 -0
  140. package/renderer/components/ui/tabs.js +34 -0
  141. package/renderer/components/ui/tooltip.js +43 -0
  142. package/renderer/hooks/use-code-copy.js +76 -0
  143. package/renderer/hooks/use-openapi-title.js +33 -0
  144. package/renderer/hooks/use-route-state.js +159 -0
  145. package/renderer/lib/api-docs/agent/index.js +4 -0
  146. package/renderer/lib/api-docs/agent/indexer.js +254 -0
  147. package/renderer/lib/api-docs/agent/spec-summary.js +227 -0
  148. package/renderer/lib/api-docs/agent/types.js +5 -0
  149. package/renderer/lib/api-docs/agent/use-suggestions.js +97 -0
  150. package/renderer/lib/api-docs/auth/auth-context.js +157 -0
  151. package/renderer/lib/api-docs/auth/auth-storage.js +66 -0
  152. package/renderer/lib/api-docs/auth/crypto.js +64 -0
  153. package/renderer/lib/api-docs/auth/index.js +3 -0
  154. package/renderer/lib/api-docs/code-editor/db.js +145 -0
  155. package/renderer/lib/api-docs/code-editor/hooks.js +254 -0
  156. package/renderer/lib/api-docs/code-editor/{index.ts → index.js} +3 -4
  157. package/renderer/lib/api-docs/code-editor/mode-context.js +126 -0
  158. package/renderer/lib/api-docs/code-editor/types.js +53 -0
  159. package/renderer/lib/api-docs/codegen/definitions.js +258 -0
  160. package/renderer/lib/api-docs/codegen/har.js +171 -0
  161. package/renderer/lib/api-docs/codegen/index.js +118 -0
  162. package/renderer/lib/api-docs/factories.js +136 -0
  163. package/renderer/lib/api-docs/{index.ts → index.js} +5 -10
  164. package/renderer/lib/api-docs/mobile-context.js +116 -0
  165. package/renderer/lib/api-docs/navigation-context.js +62 -0
  166. package/renderer/lib/api-docs/parsers/graphql/index.js +50 -0
  167. package/renderer/lib/api-docs/parsers/graphql/parser.js +350 -0
  168. package/renderer/lib/api-docs/parsers/graphql/transformer.js +215 -0
  169. package/renderer/lib/api-docs/parsers/graphql/types.js +46 -0
  170. package/renderer/lib/api-docs/parsers/openapi/dereferencer.js +43 -0
  171. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.js +486 -0
  172. package/renderer/lib/api-docs/parsers/openapi/extractors/body.js +295 -0
  173. package/renderer/lib/api-docs/parsers/openapi/extractors/index.js +132 -0
  174. package/renderer/lib/api-docs/parsers/openapi/index.js +127 -0
  175. package/renderer/lib/api-docs/parsers/openapi/transformer.js +192 -0
  176. package/renderer/lib/api-docs/parsers/openapi/validator.js +24 -0
  177. package/renderer/lib/api-docs/playground/context.js +65 -0
  178. package/renderer/lib/api-docs/playground/navigation-context.js +74 -0
  179. package/renderer/lib/api-docs/playground/request-builder.js +163 -0
  180. package/renderer/lib/api-docs/playground/request-runner.js +224 -0
  181. package/renderer/lib/api-docs/playground/types.js +5 -0
  182. package/renderer/lib/api-docs/types.js +23 -0
  183. package/renderer/lib/api-docs/utils.js +212 -0
  184. package/renderer/lib/cache.js +157 -0
  185. package/renderer/lib/docs/config/domain-schema.js +161 -0
  186. package/renderer/lib/docs/config/environment.js +38 -0
  187. package/renderer/lib/docs/config/index.js +6 -0
  188. package/renderer/lib/docs/config/loader.js +113 -0
  189. package/renderer/lib/docs/config/schema.js +281 -0
  190. package/renderer/lib/docs/index.js +8 -0
  191. package/renderer/lib/docs/mdx/compiler.js +131 -0
  192. package/renderer/lib/docs/mdx/frontmatter.js +73 -0
  193. package/renderer/lib/docs/mdx/index.js +10 -0
  194. package/renderer/lib/docs/mdx/remark-mermaid.js +63 -0
  195. package/renderer/lib/docs/navigation/generator.js +269 -0
  196. package/renderer/lib/docs/navigation/index.js +3 -0
  197. package/renderer/lib/docs/navigation/types.js +11 -0
  198. package/renderer/lib/docs-navigation-context.js +40 -0
  199. package/renderer/lib/docs-navigation.js +140 -0
  200. package/renderer/lib/multi-tenant/context.js +80 -0
  201. package/renderer/lib/storage/blob.js +767 -0
  202. package/renderer/lib/utils/icons.js +30 -0
  203. package/renderer/lib/utils.js +5 -0
  204. package/renderer/next.config.js +62 -0
  205. package/renderer/package.json +1 -0
  206. package/renderer/tsconfig.json +23 -5
  207. package/renderer/app/api/assets/[...path]/route.ts +0 -123
  208. package/renderer/app/api/assets/route.ts +0 -124
  209. package/renderer/app/api/assets/upload/route.ts +0 -177
  210. package/renderer/app/api/auth-schemes/route.ts +0 -77
  211. package/renderer/app/api/chat/route.ts +0 -858
  212. package/renderer/app/api/codegen/route.ts +0 -72
  213. package/renderer/app/api/collections/route.ts +0 -1002
  214. package/renderer/app/api/debug/route.ts +0 -53
  215. package/renderer/app/api/deploy/route.ts +0 -234
  216. package/renderer/app/api/device/route.ts +0 -42
  217. package/renderer/app/api/docs/route.ts +0 -201
  218. package/renderer/app/api/domains/add/route.ts +0 -132
  219. package/renderer/app/api/domains/lookup/route.ts +0 -43
  220. package/renderer/app/api/domains/remove/route.ts +0 -100
  221. package/renderer/app/api/domains/status/route.ts +0 -158
  222. package/renderer/app/api/domains/verify/route.ts +0 -181
  223. package/renderer/app/api/keys/regenerate/route.ts +0 -80
  224. package/renderer/app/api/local-assets/[...path]/route.ts +0 -122
  225. package/renderer/app/api/openapi-spec/route.ts +0 -151
  226. package/renderer/app/api/projects/[slug]/route.ts +0 -153
  227. package/renderer/app/api/projects/[slug]/stats/route.ts +0 -96
  228. package/renderer/app/api/projects/register/route.ts +0 -152
  229. package/renderer/app/api/proxy/route.ts +0 -149
  230. package/renderer/app/api/proxy-stream/route.ts +0 -168
  231. package/renderer/app/api/redirects/route.ts +0 -47
  232. package/renderer/app/api/schema/route.ts +0 -73
  233. package/renderer/app/api/subdomains/check/route.ts +0 -172
  234. package/renderer/app/api/suggestions/route.ts +0 -144
  235. package/renderer/app/layout.tsx +0 -54
  236. package/renderer/app/llms-full.txt/route.ts +0 -346
  237. package/renderer/app/llms.txt/route.ts +0 -279
  238. package/renderer/app/page.tsx +0 -14
  239. package/renderer/app/robots.txt/route.ts +0 -84
  240. package/renderer/app/sitemap.xml/route.ts +0 -199
  241. package/renderer/components/docs/index.ts +0 -12
  242. package/renderer/components/docs/mdx/accordion.tsx +0 -169
  243. package/renderer/components/docs/mdx/badge.tsx +0 -132
  244. package/renderer/components/docs/mdx/callouts.tsx +0 -154
  245. package/renderer/components/docs/mdx/cards.tsx +0 -241
  246. package/renderer/components/docs/mdx/changelog.tsx +0 -120
  247. package/renderer/components/docs/mdx/code-block.tsx +0 -186
  248. package/renderer/components/docs/mdx/code-group.tsx +0 -421
  249. package/renderer/components/docs/mdx/file-embeds.tsx +0 -105
  250. package/renderer/components/docs/mdx/frame.tsx +0 -112
  251. package/renderer/components/docs/mdx/highlight.tsx +0 -151
  252. package/renderer/components/docs/mdx/iframe.tsx +0 -134
  253. package/renderer/components/docs/mdx/image.tsx +0 -235
  254. package/renderer/components/docs/mdx/index.ts +0 -237
  255. package/renderer/components/docs/mdx/landing.tsx +0 -684
  256. package/renderer/components/docs/mdx/mermaid.tsx +0 -240
  257. package/renderer/components/docs/mdx/param-field.tsx +0 -200
  258. package/renderer/components/docs/mdx/steps.tsx +0 -113
  259. package/renderer/components/docs/mdx/tabs.tsx +0 -86
  260. package/renderer/components/docs/mdx-renderer.tsx +0 -100
  261. package/renderer/components/docs/navigation/breadcrumbs.tsx +0 -76
  262. package/renderer/components/docs/navigation/index.ts +0 -8
  263. package/renderer/components/docs/navigation/page-nav.tsx +0 -64
  264. package/renderer/components/docs/navigation/sidebar.tsx +0 -515
  265. package/renderer/components/docs/navigation/toc.tsx +0 -113
  266. package/renderer/components/docs/notice.tsx +0 -105
  267. package/renderer/components/docs-header.tsx +0 -278
  268. package/renderer/components/docs-viewer/agent/agent-chat.tsx +0 -2076
  269. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +0 -90
  270. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +0 -49
  271. package/renderer/components/docs-viewer/agent/cards/index.tsx +0 -50
  272. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +0 -212
  273. package/renderer/components/docs-viewer/agent/cards/types.ts +0 -84
  274. package/renderer/components/docs-viewer/agent/chat-message.tsx +0 -17
  275. package/renderer/components/docs-viewer/agent/index.tsx +0 -6
  276. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +0 -119
  277. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +0 -46
  278. package/renderer/components/docs-viewer/agent/messages/index.ts +0 -17
  279. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +0 -721
  280. package/renderer/components/docs-viewer/agent/messages/types.ts +0 -61
  281. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +0 -24
  282. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +0 -51
  283. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +0 -1283
  284. package/renderer/components/docs-viewer/content/changelog-page.tsx +0 -331
  285. package/renderer/components/docs-viewer/content/doc-page.tsx +0 -367
  286. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +0 -17
  287. package/renderer/components/docs-viewer/content/index.tsx +0 -29
  288. package/renderer/components/docs-viewer/content/not-found-page.tsx +0 -330
  289. package/renderer/components/docs-viewer/content/request-details.tsx +0 -330
  290. package/renderer/components/docs-viewer/content/sections/auth.tsx +0 -69
  291. package/renderer/components/docs-viewer/content/sections/body.tsx +0 -66
  292. package/renderer/components/docs-viewer/content/sections/headers.tsx +0 -43
  293. package/renderer/components/docs-viewer/content/sections/overview.tsx +0 -40
  294. package/renderer/components/docs-viewer/content/sections/parameters.tsx +0 -43
  295. package/renderer/components/docs-viewer/content/sections/responses.tsx +0 -87
  296. package/renderer/components/docs-viewer/global-auth-modal.tsx +0 -352
  297. package/renderer/components/docs-viewer/index.tsx +0 -1670
  298. package/renderer/components/docs-viewer/playground/auth-editor.tsx +0 -280
  299. package/renderer/components/docs-viewer/playground/body-editor.tsx +0 -221
  300. package/renderer/components/docs-viewer/playground/code-editor.tsx +0 -224
  301. package/renderer/components/docs-viewer/playground/code-snippet.tsx +0 -387
  302. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +0 -745
  303. package/renderer/components/docs-viewer/playground/index.tsx +0 -671
  304. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +0 -261
  305. package/renderer/components/docs-viewer/playground/method-selector.tsx +0 -60
  306. package/renderer/components/docs-viewer/playground/request-builder.tsx +0 -179
  307. package/renderer/components/docs-viewer/playground/request-tabs.tsx +0 -237
  308. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +0 -21
  309. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +0 -93
  310. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +0 -16
  311. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +0 -23
  312. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +0 -268
  313. package/renderer/components/docs-viewer/playground/response-cards/types.ts +0 -82
  314. package/renderer/components/docs-viewer/playground/response-viewer.tsx +0 -43
  315. package/renderer/components/docs-viewer/search/index.ts +0 -2
  316. package/renderer/components/docs-viewer/search/search-dialog.tsx +0 -331
  317. package/renderer/components/docs-viewer/search/use-search.ts +0 -117
  318. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +0 -431
  319. package/renderer/components/docs-viewer/shared/method-badge.tsx +0 -41
  320. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +0 -349
  321. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +0 -259
  322. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +0 -316
  323. package/renderer/components/docs-viewer/sidebar/index.tsx +0 -282
  324. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +0 -202
  325. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +0 -118
  326. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +0 -212
  327. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +0 -38
  328. package/renderer/components/theme-provider.tsx +0 -11
  329. package/renderer/components/theme-toggle.tsx +0 -76
  330. package/renderer/components/ui/badge.tsx +0 -46
  331. package/renderer/components/ui/button.tsx +0 -59
  332. package/renderer/components/ui/dialog.tsx +0 -118
  333. package/renderer/components/ui/dropdown-menu.tsx +0 -257
  334. package/renderer/components/ui/input.tsx +0 -21
  335. package/renderer/components/ui/label.tsx +0 -24
  336. package/renderer/components/ui/navigation-menu.tsx +0 -168
  337. package/renderer/components/ui/select.tsx +0 -190
  338. package/renderer/components/ui/spinner.tsx +0 -114
  339. package/renderer/components/ui/tabs.tsx +0 -66
  340. package/renderer/components/ui/tooltip.tsx +0 -61
  341. package/renderer/hooks/use-code-copy.ts +0 -88
  342. package/renderer/hooks/use-openapi-title.ts +0 -44
  343. package/renderer/lib/api-docs/agent/index.ts +0 -6
  344. package/renderer/lib/api-docs/agent/indexer.ts +0 -323
  345. package/renderer/lib/api-docs/agent/spec-summary.ts +0 -335
  346. package/renderer/lib/api-docs/agent/types.ts +0 -116
  347. package/renderer/lib/api-docs/auth/auth-context.tsx +0 -225
  348. package/renderer/lib/api-docs/auth/auth-storage.ts +0 -87
  349. package/renderer/lib/api-docs/auth/crypto.ts +0 -89
  350. package/renderer/lib/api-docs/auth/index.ts +0 -4
  351. package/renderer/lib/api-docs/code-editor/db.ts +0 -164
  352. package/renderer/lib/api-docs/code-editor/hooks.ts +0 -266
  353. package/renderer/lib/api-docs/code-editor/mode-context.tsx +0 -207
  354. package/renderer/lib/api-docs/code-editor/types.ts +0 -105
  355. package/renderer/lib/api-docs/codegen/definitions.ts +0 -297
  356. package/renderer/lib/api-docs/codegen/har.ts +0 -251
  357. package/renderer/lib/api-docs/codegen/index.ts +0 -159
  358. package/renderer/lib/api-docs/factories.ts +0 -170
  359. package/renderer/lib/api-docs/mobile-context.tsx +0 -112
  360. package/renderer/lib/api-docs/navigation-context.tsx +0 -88
  361. package/renderer/lib/api-docs/parsers/graphql/README.md +0 -129
  362. package/renderer/lib/api-docs/parsers/graphql/index.ts +0 -91
  363. package/renderer/lib/api-docs/parsers/graphql/parser.ts +0 -491
  364. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +0 -246
  365. package/renderer/lib/api-docs/parsers/graphql/types.ts +0 -283
  366. package/renderer/lib/api-docs/parsers/openapi/README.md +0 -32
  367. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +0 -60
  368. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +0 -574
  369. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +0 -403
  370. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +0 -232
  371. package/renderer/lib/api-docs/parsers/openapi/index.ts +0 -171
  372. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +0 -278
  373. package/renderer/lib/api-docs/parsers/openapi/validator.ts +0 -31
  374. package/renderer/lib/api-docs/playground/context.tsx +0 -107
  375. package/renderer/lib/api-docs/playground/navigation-context.tsx +0 -124
  376. package/renderer/lib/api-docs/playground/request-builder.ts +0 -223
  377. package/renderer/lib/api-docs/playground/request-runner.ts +0 -282
  378. package/renderer/lib/api-docs/playground/types.ts +0 -35
  379. package/renderer/lib/api-docs/types.ts +0 -269
  380. package/renderer/lib/api-docs/utils.ts +0 -311
  381. package/renderer/lib/cache.ts +0 -193
  382. package/renderer/lib/docs/config/domain-schema.ts +0 -260
  383. package/renderer/lib/docs/config/index.ts +0 -43
  384. package/renderer/lib/docs/config/loader.ts +0 -142
  385. package/renderer/lib/docs/config/schema.ts +0 -308
  386. package/renderer/lib/docs/index.ts +0 -12
  387. package/renderer/lib/docs/mdx/compiler.ts +0 -176
  388. package/renderer/lib/docs/mdx/frontmatter.ts +0 -91
  389. package/renderer/lib/docs/mdx/index.ts +0 -26
  390. package/renderer/lib/docs/navigation/generator.ts +0 -348
  391. package/renderer/lib/docs/navigation/index.ts +0 -12
  392. package/renderer/lib/docs/navigation/types.ts +0 -123
  393. package/renderer/lib/docs-navigation-context.tsx +0 -80
  394. package/renderer/lib/multi-tenant/context.ts +0 -105
  395. package/renderer/lib/storage/blob.ts +0 -1083
  396. package/renderer/lib/utils/icons.ts +0 -48
  397. package/renderer/lib/utils.ts +0 -6
  398. 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
- }