@brainfish-ai/devdoc 0.1.21

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 (268) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +415 -0
  3. package/bin/devdoc.js +13 -0
  4. package/dist/cli/commands/build.d.ts +5 -0
  5. package/dist/cli/commands/build.js +87 -0
  6. package/dist/cli/commands/check.d.ts +1 -0
  7. package/dist/cli/commands/check.js +143 -0
  8. package/dist/cli/commands/create.d.ts +24 -0
  9. package/dist/cli/commands/create.js +387 -0
  10. package/dist/cli/commands/deploy.d.ts +9 -0
  11. package/dist/cli/commands/deploy.js +433 -0
  12. package/dist/cli/commands/dev.d.ts +6 -0
  13. package/dist/cli/commands/dev.js +139 -0
  14. package/dist/cli/commands/init.d.ts +11 -0
  15. package/dist/cli/commands/init.js +238 -0
  16. package/dist/cli/commands/keys.d.ts +12 -0
  17. package/dist/cli/commands/keys.js +165 -0
  18. package/dist/cli/commands/start.d.ts +5 -0
  19. package/dist/cli/commands/start.js +56 -0
  20. package/dist/cli/commands/upload.d.ts +13 -0
  21. package/dist/cli/commands/upload.js +238 -0
  22. package/dist/cli/commands/whoami.d.ts +8 -0
  23. package/dist/cli/commands/whoami.js +91 -0
  24. package/dist/cli/index.d.ts +1 -0
  25. package/dist/cli/index.js +106 -0
  26. package/dist/config/index.d.ts +80 -0
  27. package/dist/config/index.js +133 -0
  28. package/dist/constants.d.ts +9 -0
  29. package/dist/constants.js +13 -0
  30. package/dist/index.d.ts +7 -0
  31. package/dist/index.js +12 -0
  32. package/dist/utils/logger.d.ts +16 -0
  33. package/dist/utils/logger.js +61 -0
  34. package/dist/utils/paths.d.ts +16 -0
  35. package/dist/utils/paths.js +50 -0
  36. package/package.json +51 -0
  37. package/renderer/app/api/assets/[...path]/route.ts +123 -0
  38. package/renderer/app/api/assets/route.ts +124 -0
  39. package/renderer/app/api/assets/upload/route.ts +177 -0
  40. package/renderer/app/api/auth-schemes/route.ts +77 -0
  41. package/renderer/app/api/chat/route.ts +858 -0
  42. package/renderer/app/api/codegen/route.ts +72 -0
  43. package/renderer/app/api/collections/route.ts +1016 -0
  44. package/renderer/app/api/debug/route.ts +53 -0
  45. package/renderer/app/api/deploy/route.ts +234 -0
  46. package/renderer/app/api/device/route.ts +42 -0
  47. package/renderer/app/api/docs/route.ts +187 -0
  48. package/renderer/app/api/keys/regenerate/route.ts +80 -0
  49. package/renderer/app/api/openapi-spec/route.ts +151 -0
  50. package/renderer/app/api/projects/[slug]/route.ts +153 -0
  51. package/renderer/app/api/projects/[slug]/stats/route.ts +96 -0
  52. package/renderer/app/api/projects/register/route.ts +152 -0
  53. package/renderer/app/api/proxy/route.ts +149 -0
  54. package/renderer/app/api/proxy-stream/route.ts +168 -0
  55. package/renderer/app/api/redirects/route.ts +47 -0
  56. package/renderer/app/api/schema/route.ts +65 -0
  57. package/renderer/app/api/subdomains/check/route.ts +172 -0
  58. package/renderer/app/api/suggestions/route.ts +144 -0
  59. package/renderer/app/favicon.ico +0 -0
  60. package/renderer/app/globals.css +1103 -0
  61. package/renderer/app/layout.tsx +47 -0
  62. package/renderer/app/llms-full.txt/route.ts +346 -0
  63. package/renderer/app/llms.txt/route.ts +279 -0
  64. package/renderer/app/page.tsx +14 -0
  65. package/renderer/app/robots.txt/route.ts +84 -0
  66. package/renderer/app/sitemap.xml/route.ts +199 -0
  67. package/renderer/components/docs/index.ts +12 -0
  68. package/renderer/components/docs/mdx/accordion.tsx +169 -0
  69. package/renderer/components/docs/mdx/badge.tsx +132 -0
  70. package/renderer/components/docs/mdx/callouts.tsx +154 -0
  71. package/renderer/components/docs/mdx/cards.tsx +213 -0
  72. package/renderer/components/docs/mdx/changelog.tsx +120 -0
  73. package/renderer/components/docs/mdx/code-block.tsx +186 -0
  74. package/renderer/components/docs/mdx/code-group.tsx +421 -0
  75. package/renderer/components/docs/mdx/file-embeds.tsx +105 -0
  76. package/renderer/components/docs/mdx/frame.tsx +112 -0
  77. package/renderer/components/docs/mdx/highlight.tsx +151 -0
  78. package/renderer/components/docs/mdx/iframe.tsx +134 -0
  79. package/renderer/components/docs/mdx/image.tsx +235 -0
  80. package/renderer/components/docs/mdx/index.ts +204 -0
  81. package/renderer/components/docs/mdx/mermaid.tsx +240 -0
  82. package/renderer/components/docs/mdx/param-field.tsx +200 -0
  83. package/renderer/components/docs/mdx/steps.tsx +113 -0
  84. package/renderer/components/docs/mdx/tabs.tsx +86 -0
  85. package/renderer/components/docs/mdx-renderer.tsx +100 -0
  86. package/renderer/components/docs/navigation/breadcrumbs.tsx +76 -0
  87. package/renderer/components/docs/navigation/index.ts +8 -0
  88. package/renderer/components/docs/navigation/page-nav.tsx +64 -0
  89. package/renderer/components/docs/navigation/sidebar.tsx +515 -0
  90. package/renderer/components/docs/navigation/toc.tsx +113 -0
  91. package/renderer/components/docs/notice.tsx +105 -0
  92. package/renderer/components/docs-header.tsx +274 -0
  93. package/renderer/components/docs-viewer/agent/agent-chat.tsx +2076 -0
  94. package/renderer/components/docs-viewer/agent/cards/debug-context-card.tsx +90 -0
  95. package/renderer/components/docs-viewer/agent/cards/endpoint-context-card.tsx +49 -0
  96. package/renderer/components/docs-viewer/agent/cards/index.tsx +50 -0
  97. package/renderer/components/docs-viewer/agent/cards/response-options-card.tsx +212 -0
  98. package/renderer/components/docs-viewer/agent/cards/types.ts +84 -0
  99. package/renderer/components/docs-viewer/agent/chat-message.tsx +17 -0
  100. package/renderer/components/docs-viewer/agent/index.tsx +6 -0
  101. package/renderer/components/docs-viewer/agent/messages/assistant-message.tsx +119 -0
  102. package/renderer/components/docs-viewer/agent/messages/chat-message.tsx +46 -0
  103. package/renderer/components/docs-viewer/agent/messages/index.ts +17 -0
  104. package/renderer/components/docs-viewer/agent/messages/tool-call-display.tsx +721 -0
  105. package/renderer/components/docs-viewer/agent/messages/types.ts +61 -0
  106. package/renderer/components/docs-viewer/agent/messages/typing-indicator.tsx +24 -0
  107. package/renderer/components/docs-viewer/agent/messages/user-message.tsx +51 -0
  108. package/renderer/components/docs-viewer/code-editor/index.tsx +2 -0
  109. package/renderer/components/docs-viewer/code-editor/notes-mode.tsx +1283 -0
  110. package/renderer/components/docs-viewer/content/changelog-page.tsx +331 -0
  111. package/renderer/components/docs-viewer/content/doc-page.tsx +285 -0
  112. package/renderer/components/docs-viewer/content/documentation-viewer.tsx +17 -0
  113. package/renderer/components/docs-viewer/content/index.tsx +29 -0
  114. package/renderer/components/docs-viewer/content/introduction.tsx +21 -0
  115. package/renderer/components/docs-viewer/content/request-details.tsx +330 -0
  116. package/renderer/components/docs-viewer/content/sections/auth.tsx +69 -0
  117. package/renderer/components/docs-viewer/content/sections/body.tsx +66 -0
  118. package/renderer/components/docs-viewer/content/sections/headers.tsx +43 -0
  119. package/renderer/components/docs-viewer/content/sections/overview.tsx +40 -0
  120. package/renderer/components/docs-viewer/content/sections/parameters.tsx +43 -0
  121. package/renderer/components/docs-viewer/content/sections/responses.tsx +87 -0
  122. package/renderer/components/docs-viewer/global-auth-modal.tsx +352 -0
  123. package/renderer/components/docs-viewer/index.tsx +1466 -0
  124. package/renderer/components/docs-viewer/playground/auth-editor.tsx +280 -0
  125. package/renderer/components/docs-viewer/playground/body-editor.tsx +221 -0
  126. package/renderer/components/docs-viewer/playground/code-editor.tsx +224 -0
  127. package/renderer/components/docs-viewer/playground/code-snippet.tsx +387 -0
  128. package/renderer/components/docs-viewer/playground/graphql-playground.tsx +745 -0
  129. package/renderer/components/docs-viewer/playground/index.tsx +671 -0
  130. package/renderer/components/docs-viewer/playground/key-value-editor.tsx +261 -0
  131. package/renderer/components/docs-viewer/playground/method-selector.tsx +60 -0
  132. package/renderer/components/docs-viewer/playground/request-builder.tsx +179 -0
  133. package/renderer/components/docs-viewer/playground/request-tabs.tsx +237 -0
  134. package/renderer/components/docs-viewer/playground/response-cards/idle-card.tsx +21 -0
  135. package/renderer/components/docs-viewer/playground/response-cards/index.tsx +93 -0
  136. package/renderer/components/docs-viewer/playground/response-cards/loading-card.tsx +16 -0
  137. package/renderer/components/docs-viewer/playground/response-cards/network-error-card.tsx +23 -0
  138. package/renderer/components/docs-viewer/playground/response-cards/response-body-card.tsx +268 -0
  139. package/renderer/components/docs-viewer/playground/response-cards/types.ts +82 -0
  140. package/renderer/components/docs-viewer/playground/response-viewer.tsx +43 -0
  141. package/renderer/components/docs-viewer/search/index.ts +2 -0
  142. package/renderer/components/docs-viewer/search/search-dialog.tsx +331 -0
  143. package/renderer/components/docs-viewer/search/use-search.ts +117 -0
  144. package/renderer/components/docs-viewer/shared/markdown-renderer.tsx +431 -0
  145. package/renderer/components/docs-viewer/shared/method-badge.tsx +41 -0
  146. package/renderer/components/docs-viewer/shared/schema-viewer.tsx +349 -0
  147. package/renderer/components/docs-viewer/sidebar/collection-tree.tsx +239 -0
  148. package/renderer/components/docs-viewer/sidebar/endpoint-options.tsx +316 -0
  149. package/renderer/components/docs-viewer/sidebar/index.tsx +343 -0
  150. package/renderer/components/docs-viewer/sidebar/right-sidebar.tsx +202 -0
  151. package/renderer/components/docs-viewer/sidebar/sidebar-group.tsx +118 -0
  152. package/renderer/components/docs-viewer/sidebar/sidebar-item.tsx +226 -0
  153. package/renderer/components/docs-viewer/sidebar/sidebar-section.tsx +52 -0
  154. package/renderer/components/theme-provider.tsx +11 -0
  155. package/renderer/components/theme-toggle.tsx +76 -0
  156. package/renderer/components/ui/badge.tsx +46 -0
  157. package/renderer/components/ui/button.tsx +59 -0
  158. package/renderer/components/ui/dialog.tsx +118 -0
  159. package/renderer/components/ui/dropdown-menu.tsx +257 -0
  160. package/renderer/components/ui/input.tsx +21 -0
  161. package/renderer/components/ui/label.tsx +24 -0
  162. package/renderer/components/ui/navigation-menu.tsx +168 -0
  163. package/renderer/components/ui/select.tsx +190 -0
  164. package/renderer/components/ui/spinner.tsx +114 -0
  165. package/renderer/components/ui/tabs.tsx +66 -0
  166. package/renderer/components/ui/tooltip.tsx +61 -0
  167. package/renderer/hooks/use-code-copy.ts +88 -0
  168. package/renderer/hooks/use-openapi-title.ts +44 -0
  169. package/renderer/lib/api-docs/agent/index.ts +6 -0
  170. package/renderer/lib/api-docs/agent/indexer.ts +323 -0
  171. package/renderer/lib/api-docs/agent/spec-summary.ts +335 -0
  172. package/renderer/lib/api-docs/agent/types.ts +116 -0
  173. package/renderer/lib/api-docs/auth/auth-context.tsx +225 -0
  174. package/renderer/lib/api-docs/auth/auth-storage.ts +87 -0
  175. package/renderer/lib/api-docs/auth/crypto.ts +89 -0
  176. package/renderer/lib/api-docs/auth/index.ts +4 -0
  177. package/renderer/lib/api-docs/code-editor/db.ts +164 -0
  178. package/renderer/lib/api-docs/code-editor/hooks.ts +266 -0
  179. package/renderer/lib/api-docs/code-editor/index.ts +6 -0
  180. package/renderer/lib/api-docs/code-editor/mode-context.tsx +207 -0
  181. package/renderer/lib/api-docs/code-editor/types.ts +105 -0
  182. package/renderer/lib/api-docs/codegen/definitions.ts +297 -0
  183. package/renderer/lib/api-docs/codegen/har.ts +251 -0
  184. package/renderer/lib/api-docs/codegen/index.ts +159 -0
  185. package/renderer/lib/api-docs/factories.ts +151 -0
  186. package/renderer/lib/api-docs/index.ts +17 -0
  187. package/renderer/lib/api-docs/mobile-context.tsx +112 -0
  188. package/renderer/lib/api-docs/navigation-context.tsx +88 -0
  189. package/renderer/lib/api-docs/parsers/graphql/README.md +129 -0
  190. package/renderer/lib/api-docs/parsers/graphql/index.ts +91 -0
  191. package/renderer/lib/api-docs/parsers/graphql/parser.ts +491 -0
  192. package/renderer/lib/api-docs/parsers/graphql/transformer.ts +246 -0
  193. package/renderer/lib/api-docs/parsers/graphql/types.ts +283 -0
  194. package/renderer/lib/api-docs/parsers/openapi/README.md +32 -0
  195. package/renderer/lib/api-docs/parsers/openapi/dereferencer.ts +60 -0
  196. package/renderer/lib/api-docs/parsers/openapi/extractors/auth.ts +574 -0
  197. package/renderer/lib/api-docs/parsers/openapi/extractors/body.ts +403 -0
  198. package/renderer/lib/api-docs/parsers/openapi/extractors/index.ts +232 -0
  199. package/renderer/lib/api-docs/parsers/openapi/index.ts +171 -0
  200. package/renderer/lib/api-docs/parsers/openapi/transformer.ts +277 -0
  201. package/renderer/lib/api-docs/parsers/openapi/validator.ts +31 -0
  202. package/renderer/lib/api-docs/playground/context.tsx +107 -0
  203. package/renderer/lib/api-docs/playground/navigation-context.tsx +124 -0
  204. package/renderer/lib/api-docs/playground/request-builder.ts +223 -0
  205. package/renderer/lib/api-docs/playground/request-runner.ts +282 -0
  206. package/renderer/lib/api-docs/playground/types.ts +35 -0
  207. package/renderer/lib/api-docs/types.ts +269 -0
  208. package/renderer/lib/api-docs/utils.ts +311 -0
  209. package/renderer/lib/cache.ts +193 -0
  210. package/renderer/lib/docs/config/index.ts +29 -0
  211. package/renderer/lib/docs/config/loader.ts +142 -0
  212. package/renderer/lib/docs/config/schema.ts +298 -0
  213. package/renderer/lib/docs/index.ts +12 -0
  214. package/renderer/lib/docs/mdx/compiler.ts +176 -0
  215. package/renderer/lib/docs/mdx/frontmatter.ts +80 -0
  216. package/renderer/lib/docs/mdx/index.ts +26 -0
  217. package/renderer/lib/docs/navigation/generator.ts +348 -0
  218. package/renderer/lib/docs/navigation/index.ts +12 -0
  219. package/renderer/lib/docs/navigation/types.ts +123 -0
  220. package/renderer/lib/docs-navigation-context.tsx +80 -0
  221. package/renderer/lib/multi-tenant/context.ts +105 -0
  222. package/renderer/lib/storage/blob.ts +845 -0
  223. package/renderer/lib/utils.ts +6 -0
  224. package/renderer/next.config.ts +76 -0
  225. package/renderer/package.json +66 -0
  226. package/renderer/postcss.config.mjs +5 -0
  227. package/renderer/public/assets/images/screenshot.png +0 -0
  228. package/renderer/public/assets/logo/dark.svg +9 -0
  229. package/renderer/public/assets/logo/light.svg +9 -0
  230. package/renderer/public/assets/logo.svg +9 -0
  231. package/renderer/public/file.svg +1 -0
  232. package/renderer/public/globe.svg +1 -0
  233. package/renderer/public/icon.png +0 -0
  234. package/renderer/public/logo.svg +9 -0
  235. package/renderer/public/window.svg +1 -0
  236. package/renderer/tsconfig.json +28 -0
  237. package/templates/basic/README.md +139 -0
  238. package/templates/basic/assets/favicon.svg +4 -0
  239. package/templates/basic/assets/logo.svg +9 -0
  240. package/templates/basic/docs.json +47 -0
  241. package/templates/basic/guides/configuration.mdx +149 -0
  242. package/templates/basic/guides/overview.mdx +96 -0
  243. package/templates/basic/index.mdx +39 -0
  244. package/templates/basic/package.json +14 -0
  245. package/templates/basic/quickstart.mdx +92 -0
  246. package/templates/basic/vercel.json +6 -0
  247. package/templates/graphql/README.md +139 -0
  248. package/templates/graphql/api-reference/schema.graphql +305 -0
  249. package/templates/graphql/assets/favicon.svg +4 -0
  250. package/templates/graphql/assets/logo.svg +9 -0
  251. package/templates/graphql/docs.json +54 -0
  252. package/templates/graphql/guides/configuration.mdx +149 -0
  253. package/templates/graphql/guides/overview.mdx +96 -0
  254. package/templates/graphql/index.mdx +39 -0
  255. package/templates/graphql/package.json +14 -0
  256. package/templates/graphql/quickstart.mdx +92 -0
  257. package/templates/graphql/vercel.json +6 -0
  258. package/templates/openapi/README.md +139 -0
  259. package/templates/openapi/api-reference/openapi.json +419 -0
  260. package/templates/openapi/assets/favicon.svg +4 -0
  261. package/templates/openapi/assets/logo.svg +9 -0
  262. package/templates/openapi/docs.json +61 -0
  263. package/templates/openapi/guides/configuration.mdx +149 -0
  264. package/templates/openapi/guides/overview.mdx +96 -0
  265. package/templates/openapi/index.mdx +39 -0
  266. package/templates/openapi/package.json +14 -0
  267. package/templates/openapi/quickstart.mdx +92 -0
  268. package/templates/openapi/vercel.json +6 -0
@@ -0,0 +1,419 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "My API",
5
+ "description": "A sample REST API for your documentation",
6
+ "version": "1.0.0",
7
+ "contact": {
8
+ "name": "API Support",
9
+ "email": "support@example.com"
10
+ }
11
+ },
12
+ "servers": [
13
+ {
14
+ "url": "https://api.example.com/v1",
15
+ "description": "Production server"
16
+ },
17
+ {
18
+ "url": "https://staging-api.example.com/v1",
19
+ "description": "Staging server"
20
+ }
21
+ ],
22
+ "tags": [
23
+ {
24
+ "name": "Users",
25
+ "description": "User management endpoints"
26
+ },
27
+ {
28
+ "name": "Projects",
29
+ "description": "Project management endpoints"
30
+ }
31
+ ],
32
+ "paths": {
33
+ "/users": {
34
+ "get": {
35
+ "summary": "List users",
36
+ "description": "Retrieve a list of all users",
37
+ "operationId": "listUsers",
38
+ "tags": ["Users"],
39
+ "parameters": [
40
+ {
41
+ "name": "limit",
42
+ "in": "query",
43
+ "description": "Maximum number of users to return",
44
+ "schema": {
45
+ "type": "integer",
46
+ "default": 20,
47
+ "maximum": 100
48
+ }
49
+ },
50
+ {
51
+ "name": "offset",
52
+ "in": "query",
53
+ "description": "Number of users to skip",
54
+ "schema": {
55
+ "type": "integer",
56
+ "default": 0
57
+ }
58
+ }
59
+ ],
60
+ "responses": {
61
+ "200": {
62
+ "description": "A list of users",
63
+ "content": {
64
+ "application/json": {
65
+ "schema": {
66
+ "type": "object",
67
+ "properties": {
68
+ "data": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "#/components/schemas/User"
72
+ }
73
+ },
74
+ "total": {
75
+ "type": "integer"
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "security": [
84
+ {
85
+ "bearerAuth": []
86
+ }
87
+ ]
88
+ },
89
+ "post": {
90
+ "summary": "Create user",
91
+ "description": "Create a new user account",
92
+ "operationId": "createUser",
93
+ "tags": ["Users"],
94
+ "requestBody": {
95
+ "required": true,
96
+ "content": {
97
+ "application/json": {
98
+ "schema": {
99
+ "$ref": "#/components/schemas/CreateUserRequest"
100
+ }
101
+ }
102
+ }
103
+ },
104
+ "responses": {
105
+ "201": {
106
+ "description": "User created successfully",
107
+ "content": {
108
+ "application/json": {
109
+ "schema": {
110
+ "$ref": "#/components/schemas/User"
111
+ }
112
+ }
113
+ }
114
+ },
115
+ "400": {
116
+ "description": "Invalid request",
117
+ "content": {
118
+ "application/json": {
119
+ "schema": {
120
+ "$ref": "#/components/schemas/Error"
121
+ }
122
+ }
123
+ }
124
+ }
125
+ },
126
+ "security": [
127
+ {
128
+ "bearerAuth": []
129
+ }
130
+ ]
131
+ }
132
+ },
133
+ "/users/{id}": {
134
+ "get": {
135
+ "summary": "Get user",
136
+ "description": "Retrieve a specific user by ID",
137
+ "operationId": "getUser",
138
+ "tags": ["Users"],
139
+ "parameters": [
140
+ {
141
+ "name": "id",
142
+ "in": "path",
143
+ "required": true,
144
+ "description": "User ID",
145
+ "schema": {
146
+ "type": "string"
147
+ }
148
+ }
149
+ ],
150
+ "responses": {
151
+ "200": {
152
+ "description": "User details",
153
+ "content": {
154
+ "application/json": {
155
+ "schema": {
156
+ "$ref": "#/components/schemas/User"
157
+ }
158
+ }
159
+ }
160
+ },
161
+ "404": {
162
+ "description": "User not found",
163
+ "content": {
164
+ "application/json": {
165
+ "schema": {
166
+ "$ref": "#/components/schemas/Error"
167
+ }
168
+ }
169
+ }
170
+ }
171
+ },
172
+ "security": [
173
+ {
174
+ "bearerAuth": []
175
+ }
176
+ ]
177
+ },
178
+ "put": {
179
+ "summary": "Update user",
180
+ "description": "Update an existing user",
181
+ "operationId": "updateUser",
182
+ "tags": ["Users"],
183
+ "parameters": [
184
+ {
185
+ "name": "id",
186
+ "in": "path",
187
+ "required": true,
188
+ "description": "User ID",
189
+ "schema": {
190
+ "type": "string"
191
+ }
192
+ }
193
+ ],
194
+ "requestBody": {
195
+ "required": true,
196
+ "content": {
197
+ "application/json": {
198
+ "schema": {
199
+ "$ref": "#/components/schemas/UpdateUserRequest"
200
+ }
201
+ }
202
+ }
203
+ },
204
+ "responses": {
205
+ "200": {
206
+ "description": "User updated successfully",
207
+ "content": {
208
+ "application/json": {
209
+ "schema": {
210
+ "$ref": "#/components/schemas/User"
211
+ }
212
+ }
213
+ }
214
+ }
215
+ },
216
+ "security": [
217
+ {
218
+ "bearerAuth": []
219
+ }
220
+ ]
221
+ },
222
+ "delete": {
223
+ "summary": "Delete user",
224
+ "description": "Delete a user account",
225
+ "operationId": "deleteUser",
226
+ "tags": ["Users"],
227
+ "parameters": [
228
+ {
229
+ "name": "id",
230
+ "in": "path",
231
+ "required": true,
232
+ "description": "User ID",
233
+ "schema": {
234
+ "type": "string"
235
+ }
236
+ }
237
+ ],
238
+ "responses": {
239
+ "204": {
240
+ "description": "User deleted successfully"
241
+ }
242
+ },
243
+ "security": [
244
+ {
245
+ "bearerAuth": []
246
+ }
247
+ ]
248
+ }
249
+ },
250
+ "/projects": {
251
+ "get": {
252
+ "summary": "List projects",
253
+ "description": "Retrieve a list of all projects",
254
+ "operationId": "listProjects",
255
+ "tags": ["Projects"],
256
+ "responses": {
257
+ "200": {
258
+ "description": "A list of projects",
259
+ "content": {
260
+ "application/json": {
261
+ "schema": {
262
+ "type": "array",
263
+ "items": {
264
+ "$ref": "#/components/schemas/Project"
265
+ }
266
+ }
267
+ }
268
+ }
269
+ }
270
+ },
271
+ "security": [
272
+ {
273
+ "bearerAuth": []
274
+ }
275
+ ]
276
+ },
277
+ "post": {
278
+ "summary": "Create project",
279
+ "description": "Create a new project",
280
+ "operationId": "createProject",
281
+ "tags": ["Projects"],
282
+ "requestBody": {
283
+ "required": true,
284
+ "content": {
285
+ "application/json": {
286
+ "schema": {
287
+ "$ref": "#/components/schemas/CreateProjectRequest"
288
+ }
289
+ }
290
+ }
291
+ },
292
+ "responses": {
293
+ "201": {
294
+ "description": "Project created successfully",
295
+ "content": {
296
+ "application/json": {
297
+ "schema": {
298
+ "$ref": "#/components/schemas/Project"
299
+ }
300
+ }
301
+ }
302
+ }
303
+ },
304
+ "security": [
305
+ {
306
+ "bearerAuth": []
307
+ }
308
+ ]
309
+ }
310
+ }
311
+ },
312
+ "components": {
313
+ "schemas": {
314
+ "User": {
315
+ "type": "object",
316
+ "properties": {
317
+ "id": {
318
+ "type": "string",
319
+ "description": "Unique identifier"
320
+ },
321
+ "email": {
322
+ "type": "string",
323
+ "format": "email",
324
+ "description": "User's email address"
325
+ },
326
+ "name": {
327
+ "type": "string",
328
+ "description": "User's full name"
329
+ },
330
+ "createdAt": {
331
+ "type": "string",
332
+ "format": "date-time",
333
+ "description": "When the user was created"
334
+ }
335
+ }
336
+ },
337
+ "CreateUserRequest": {
338
+ "type": "object",
339
+ "required": ["email", "name"],
340
+ "properties": {
341
+ "email": {
342
+ "type": "string",
343
+ "format": "email"
344
+ },
345
+ "name": {
346
+ "type": "string"
347
+ },
348
+ "password": {
349
+ "type": "string",
350
+ "minLength": 8
351
+ }
352
+ }
353
+ },
354
+ "UpdateUserRequest": {
355
+ "type": "object",
356
+ "properties": {
357
+ "email": {
358
+ "type": "string",
359
+ "format": "email"
360
+ },
361
+ "name": {
362
+ "type": "string"
363
+ }
364
+ }
365
+ },
366
+ "Project": {
367
+ "type": "object",
368
+ "properties": {
369
+ "id": {
370
+ "type": "string"
371
+ },
372
+ "name": {
373
+ "type": "string"
374
+ },
375
+ "description": {
376
+ "type": "string"
377
+ },
378
+ "ownerId": {
379
+ "type": "string"
380
+ },
381
+ "createdAt": {
382
+ "type": "string",
383
+ "format": "date-time"
384
+ }
385
+ }
386
+ },
387
+ "CreateProjectRequest": {
388
+ "type": "object",
389
+ "required": ["name"],
390
+ "properties": {
391
+ "name": {
392
+ "type": "string"
393
+ },
394
+ "description": {
395
+ "type": "string"
396
+ }
397
+ }
398
+ },
399
+ "Error": {
400
+ "type": "object",
401
+ "properties": {
402
+ "code": {
403
+ "type": "string"
404
+ },
405
+ "message": {
406
+ "type": "string"
407
+ }
408
+ }
409
+ }
410
+ },
411
+ "securitySchemes": {
412
+ "bearerAuth": {
413
+ "type": "http",
414
+ "scheme": "bearer",
415
+ "bearerFormat": "JWT"
416
+ }
417
+ }
418
+ }
419
+ }
@@ -0,0 +1,4 @@
1
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="8" fill="#10b981"/>
3
+ <path d="M8 16L14 22L24 10" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>