@buenojs/bueno 0.8.5 → 0.8.7

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 (421) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/README.md +259 -15
  3. package/dist/cache/index.d.ts +187 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cli/bin.d.ts +8 -0
  6. package/dist/cli/bin.d.ts.map +1 -0
  7. package/dist/cli/bin.js +484 -156
  8. package/dist/cli/commands/add-frontend.d.ts +7 -0
  9. package/dist/cli/commands/add-frontend.d.ts.map +1 -0
  10. package/dist/cli/commands/build.d.ts +7 -0
  11. package/dist/cli/commands/build.d.ts.map +1 -0
  12. package/dist/cli/commands/dev.d.ts +7 -0
  13. package/dist/cli/commands/dev.d.ts.map +1 -0
  14. package/dist/cli/commands/generate.d.ts +7 -0
  15. package/dist/cli/commands/generate.d.ts.map +1 -0
  16. package/dist/cli/commands/help.d.ts +7 -0
  17. package/dist/cli/commands/help.d.ts.map +1 -0
  18. package/dist/cli/commands/index.d.ts +59 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/migration.d.ts +7 -0
  21. package/dist/cli/commands/migration.d.ts.map +1 -0
  22. package/dist/cli/commands/new.d.ts +7 -0
  23. package/dist/cli/commands/new.d.ts.map +1 -0
  24. package/dist/cli/commands/start.d.ts +7 -0
  25. package/dist/cli/commands/start.d.ts.map +1 -0
  26. package/dist/cli/core/args.d.ts +61 -0
  27. package/dist/cli/core/args.d.ts.map +1 -0
  28. package/dist/cli/core/console.d.ts +135 -0
  29. package/dist/cli/core/console.d.ts.map +1 -0
  30. package/dist/cli/core/index.d.ts +10 -0
  31. package/dist/cli/core/index.d.ts.map +1 -0
  32. package/dist/cli/core/prompt.d.ts +63 -0
  33. package/dist/cli/core/prompt.d.ts.map +1 -0
  34. package/dist/cli/core/spinner.d.ts +111 -0
  35. package/dist/cli/core/spinner.d.ts.map +1 -0
  36. package/dist/cli/index.d.ts +47 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/templates/database/index.d.ts +24 -0
  39. package/dist/cli/templates/database/index.d.ts.map +1 -0
  40. package/dist/cli/templates/database/mysql.d.ts +6 -0
  41. package/dist/cli/templates/database/mysql.d.ts.map +1 -0
  42. package/dist/cli/templates/database/none.d.ts +8 -0
  43. package/dist/cli/templates/database/none.d.ts.map +1 -0
  44. package/dist/cli/templates/database/postgresql.d.ts +6 -0
  45. package/dist/cli/templates/database/postgresql.d.ts.map +1 -0
  46. package/dist/cli/templates/database/sqlite.d.ts +6 -0
  47. package/dist/cli/templates/database/sqlite.d.ts.map +1 -0
  48. package/dist/cli/templates/deploy.d.ts +41 -0
  49. package/dist/cli/templates/deploy.d.ts.map +1 -0
  50. package/dist/cli/templates/docker.d.ts +30 -0
  51. package/dist/cli/templates/docker.d.ts.map +1 -0
  52. package/dist/cli/templates/frontend/index.d.ts +25 -0
  53. package/dist/cli/templates/frontend/index.d.ts.map +1 -0
  54. package/dist/cli/templates/frontend/none.d.ts +8 -0
  55. package/dist/cli/templates/frontend/none.d.ts.map +1 -0
  56. package/dist/cli/templates/frontend/react.d.ts +6 -0
  57. package/dist/cli/templates/frontend/react.d.ts.map +1 -0
  58. package/dist/cli/templates/frontend/solid.d.ts +6 -0
  59. package/dist/cli/templates/frontend/solid.d.ts.map +1 -0
  60. package/dist/cli/templates/frontend/svelte.d.ts +6 -0
  61. package/dist/cli/templates/frontend/svelte.d.ts.map +1 -0
  62. package/dist/cli/templates/frontend/vue.d.ts +6 -0
  63. package/dist/cli/templates/frontend/vue.d.ts.map +1 -0
  64. package/dist/cli/templates/generators/index.d.ts +29 -0
  65. package/dist/cli/templates/generators/index.d.ts.map +1 -0
  66. package/dist/cli/templates/generators/types.d.ts +32 -0
  67. package/dist/cli/templates/generators/types.d.ts.map +1 -0
  68. package/dist/cli/templates/index.d.ts +12 -0
  69. package/dist/cli/templates/index.d.ts.map +1 -0
  70. package/dist/cli/templates/project/api.d.ts +6 -0
  71. package/dist/cli/templates/project/api.d.ts.map +1 -0
  72. package/dist/cli/templates/project/default.d.ts +6 -0
  73. package/dist/cli/templates/project/default.d.ts.map +1 -0
  74. package/dist/cli/templates/project/fullstack.d.ts +14 -0
  75. package/dist/cli/templates/project/fullstack.d.ts.map +1 -0
  76. package/dist/cli/templates/project/index.d.ts +26 -0
  77. package/dist/cli/templates/project/index.d.ts.map +1 -0
  78. package/dist/cli/templates/project/minimal.d.ts +6 -0
  79. package/dist/cli/templates/project/minimal.d.ts.map +1 -0
  80. package/dist/cli/templates/project/types.d.ts +80 -0
  81. package/dist/cli/templates/project/types.d.ts.map +1 -0
  82. package/dist/cli/templates/project/website.d.ts +8 -0
  83. package/dist/cli/templates/project/website.d.ts.map +1 -0
  84. package/dist/cli/utils/fs.d.ts +137 -0
  85. package/dist/cli/utils/fs.d.ts.map +1 -0
  86. package/dist/cli/utils/index.d.ts +9 -0
  87. package/dist/cli/utils/index.d.ts.map +1 -0
  88. package/dist/cli/utils/strings.d.ts +86 -0
  89. package/dist/cli/utils/strings.d.ts.map +1 -0
  90. package/dist/cli/utils/version.d.ts +15 -0
  91. package/dist/cli/utils/version.d.ts.map +1 -0
  92. package/dist/config/env-validation.d.ts +49 -0
  93. package/dist/config/env-validation.d.ts.map +1 -0
  94. package/dist/config/env.d.ts +167 -0
  95. package/dist/config/env.d.ts.map +1 -0
  96. package/dist/config/index.d.ts +168 -0
  97. package/dist/config/index.d.ts.map +1 -0
  98. package/dist/config/loader.d.ts +81 -0
  99. package/dist/config/loader.d.ts.map +1 -0
  100. package/dist/config/merge.d.ts +66 -0
  101. package/dist/config/merge.d.ts.map +1 -0
  102. package/dist/config/types.d.ts +322 -0
  103. package/dist/config/types.d.ts.map +1 -0
  104. package/dist/config/validation.d.ts +100 -0
  105. package/dist/config/validation.d.ts.map +1 -0
  106. package/dist/container/forward-ref.d.ts +116 -0
  107. package/dist/container/forward-ref.d.ts.map +1 -0
  108. package/dist/container/index.d.ts +95 -0
  109. package/dist/container/index.d.ts.map +1 -0
  110. package/dist/container/index.js +26 -3
  111. package/dist/context/index.d.ts +143 -0
  112. package/dist/context/index.d.ts.map +1 -0
  113. package/dist/database/index.d.ts +219 -0
  114. package/dist/database/index.d.ts.map +1 -0
  115. package/dist/database/migrations/index.d.ts +146 -0
  116. package/dist/database/migrations/index.d.ts.map +1 -0
  117. package/dist/database/orm/builder.d.ts +122 -0
  118. package/dist/database/orm/builder.d.ts.map +1 -0
  119. package/dist/database/orm/casts/index.d.ts +16 -0
  120. package/dist/database/orm/casts/index.d.ts.map +1 -0
  121. package/dist/database/orm/casts/types.d.ts +16 -0
  122. package/dist/database/orm/casts/types.d.ts.map +1 -0
  123. package/dist/database/orm/compiler.d.ts +90 -0
  124. package/dist/database/orm/compiler.d.ts.map +1 -0
  125. package/dist/database/orm/hooks/index.d.ts +53 -0
  126. package/dist/database/orm/hooks/index.d.ts.map +1 -0
  127. package/dist/database/orm/index.d.ts +21 -0
  128. package/dist/database/orm/index.d.ts.map +1 -0
  129. package/dist/database/orm/model-registry.d.ts +33 -0
  130. package/dist/database/orm/model-registry.d.ts.map +1 -0
  131. package/dist/database/orm/model.d.ts +245 -0
  132. package/dist/database/orm/model.d.ts.map +1 -0
  133. package/dist/database/orm/relationships/base.d.ts +69 -0
  134. package/dist/database/orm/relationships/base.d.ts.map +1 -0
  135. package/dist/database/orm/relationships/belongs-to-many.d.ts +47 -0
  136. package/dist/database/orm/relationships/belongs-to-many.d.ts.map +1 -0
  137. package/dist/database/orm/relationships/belongs-to.d.ts +17 -0
  138. package/dist/database/orm/relationships/belongs-to.d.ts.map +1 -0
  139. package/dist/database/orm/relationships/has-many.d.ts +14 -0
  140. package/dist/database/orm/relationships/has-many.d.ts.map +1 -0
  141. package/dist/database/orm/relationships/has-one.d.ts +14 -0
  142. package/dist/database/orm/relationships/has-one.d.ts.map +1 -0
  143. package/dist/database/orm/relationships/index.d.ts +10 -0
  144. package/dist/database/orm/relationships/index.d.ts.map +1 -0
  145. package/dist/database/orm/scopes/index.d.ts +36 -0
  146. package/dist/database/orm/scopes/index.d.ts.map +1 -0
  147. package/dist/database/schema/index.d.ts +155 -0
  148. package/dist/database/schema/index.d.ts.map +1 -0
  149. package/dist/events/__tests__/event-system.test.d.ts +2 -0
  150. package/dist/events/__tests__/event-system.test.d.ts.map +1 -0
  151. package/dist/events/config.d.ts +16 -0
  152. package/dist/events/config.d.ts.map +1 -0
  153. package/dist/events/example-usage.d.ts +12 -0
  154. package/dist/events/example-usage.d.ts.map +1 -0
  155. package/dist/events/index.d.ts +27 -0
  156. package/dist/events/index.d.ts.map +1 -0
  157. package/dist/events/manager.d.ts +33 -0
  158. package/dist/events/manager.d.ts.map +1 -0
  159. package/dist/events/registry.d.ts +31 -0
  160. package/dist/events/registry.d.ts.map +1 -0
  161. package/dist/events/types.d.ts +105 -0
  162. package/dist/events/types.d.ts.map +1 -0
  163. package/dist/frontend/api-routes.d.ts +189 -0
  164. package/dist/frontend/api-routes.d.ts.map +1 -0
  165. package/dist/frontend/bundler.d.ts +99 -0
  166. package/dist/frontend/bundler.d.ts.map +1 -0
  167. package/dist/frontend/console-client.d.ts +11 -0
  168. package/dist/frontend/console-client.d.ts.map +1 -0
  169. package/dist/frontend/console-stream.d.ts +138 -0
  170. package/dist/frontend/console-stream.d.ts.map +1 -0
  171. package/dist/frontend/dev-server.d.ts +174 -0
  172. package/dist/frontend/dev-server.d.ts.map +1 -0
  173. package/dist/frontend/file-router.d.ts +170 -0
  174. package/dist/frontend/file-router.d.ts.map +1 -0
  175. package/dist/frontend/frameworks/index.d.ts +41 -0
  176. package/dist/frontend/frameworks/index.d.ts.map +1 -0
  177. package/dist/frontend/frameworks/react.d.ts +32 -0
  178. package/dist/frontend/frameworks/react.d.ts.map +1 -0
  179. package/dist/frontend/frameworks/solid.d.ts +42 -0
  180. package/dist/frontend/frameworks/solid.d.ts.map +1 -0
  181. package/dist/frontend/frameworks/svelte.d.ts +57 -0
  182. package/dist/frontend/frameworks/svelte.d.ts.map +1 -0
  183. package/dist/frontend/frameworks/vue.d.ts +36 -0
  184. package/dist/frontend/frameworks/vue.d.ts.map +1 -0
  185. package/dist/frontend/hmr-client.d.ts +22 -0
  186. package/dist/frontend/hmr-client.d.ts.map +1 -0
  187. package/dist/frontend/hmr.d.ts +185 -0
  188. package/dist/frontend/hmr.d.ts.map +1 -0
  189. package/dist/frontend/index.d.ts +34 -0
  190. package/dist/frontend/index.d.ts.map +1 -0
  191. package/dist/frontend/islands.d.ts +135 -0
  192. package/dist/frontend/islands.d.ts.map +1 -0
  193. package/dist/frontend/isr.d.ts +143 -0
  194. package/dist/frontend/isr.d.ts.map +1 -0
  195. package/dist/frontend/layout.d.ts +140 -0
  196. package/dist/frontend/layout.d.ts.map +1 -0
  197. package/dist/frontend/ssr/react.d.ts +118 -0
  198. package/dist/frontend/ssr/react.d.ts.map +1 -0
  199. package/dist/frontend/ssr/solid.d.ts +141 -0
  200. package/dist/frontend/ssr/solid.d.ts.map +1 -0
  201. package/dist/frontend/ssr/svelte.d.ts +158 -0
  202. package/dist/frontend/ssr/svelte.d.ts.map +1 -0
  203. package/dist/frontend/ssr/vue.d.ts +161 -0
  204. package/dist/frontend/ssr/vue.d.ts.map +1 -0
  205. package/dist/frontend/ssr.d.ts +147 -0
  206. package/dist/frontend/ssr.d.ts.map +1 -0
  207. package/dist/frontend/types.d.ts +1902 -0
  208. package/dist/frontend/types.d.ts.map +1 -0
  209. package/dist/graphql/built-in-engine.d.ts +36 -0
  210. package/dist/graphql/built-in-engine.d.ts.map +1 -0
  211. package/dist/graphql/context-builder.d.ts +44 -0
  212. package/dist/graphql/context-builder.d.ts.map +1 -0
  213. package/dist/graphql/decorators.d.ts +162 -0
  214. package/dist/graphql/decorators.d.ts.map +1 -0
  215. package/dist/graphql/execution-pipeline.d.ts +67 -0
  216. package/dist/graphql/execution-pipeline.d.ts.map +1 -0
  217. package/dist/graphql/graphql-module.d.ts +70 -0
  218. package/dist/graphql/graphql-module.d.ts.map +1 -0
  219. package/dist/graphql/index.d.ts +48 -0
  220. package/dist/graphql/index.d.ts.map +1 -0
  221. package/dist/graphql/index.js +2156 -0
  222. package/dist/graphql/metadata.d.ts +37 -0
  223. package/dist/graphql/metadata.d.ts.map +1 -0
  224. package/dist/graphql/schema-builder.d.ts +34 -0
  225. package/dist/graphql/schema-builder.d.ts.map +1 -0
  226. package/dist/graphql/subscription-handler.d.ts +47 -0
  227. package/dist/graphql/subscription-handler.d.ts.map +1 -0
  228. package/dist/graphql/types.d.ts +252 -0
  229. package/dist/graphql/types.d.ts.map +1 -0
  230. package/dist/health/index.d.ts +176 -0
  231. package/dist/health/index.d.ts.map +1 -0
  232. package/dist/i18n/engine.d.ts +105 -0
  233. package/dist/i18n/engine.d.ts.map +1 -0
  234. package/dist/i18n/index.d.ts +13 -0
  235. package/dist/i18n/index.d.ts.map +1 -0
  236. package/dist/i18n/loader.d.ts +79 -0
  237. package/dist/i18n/loader.d.ts.map +1 -0
  238. package/dist/i18n/middleware.d.ts +96 -0
  239. package/dist/i18n/middleware.d.ts.map +1 -0
  240. package/dist/i18n/negotiator.d.ts +84 -0
  241. package/dist/i18n/negotiator.d.ts.map +1 -0
  242. package/dist/i18n/types.d.ts +129 -0
  243. package/dist/i18n/types.d.ts.map +1 -0
  244. package/dist/index.d.ts +48 -0
  245. package/dist/index.d.ts.map +1 -0
  246. package/dist/index.js +520 -434
  247. package/dist/jobs/drivers/memory.d.ts +38 -0
  248. package/dist/jobs/drivers/memory.d.ts.map +1 -0
  249. package/dist/jobs/drivers/redis.d.ts +34 -0
  250. package/dist/jobs/drivers/redis.d.ts.map +1 -0
  251. package/dist/jobs/index.d.ts +12 -0
  252. package/dist/jobs/index.d.ts.map +1 -0
  253. package/dist/jobs/queue.d.ts +93 -0
  254. package/dist/jobs/queue.d.ts.map +1 -0
  255. package/dist/jobs/types.d.ts +193 -0
  256. package/dist/jobs/types.d.ts.map +1 -0
  257. package/dist/jobs/worker.d.ts +91 -0
  258. package/dist/jobs/worker.d.ts.map +1 -0
  259. package/dist/lock/index.d.ts +141 -0
  260. package/dist/lock/index.d.ts.map +1 -0
  261. package/dist/logger/index.d.ts +156 -0
  262. package/dist/logger/index.d.ts.map +1 -0
  263. package/dist/logger/transports/index.d.ts +371 -0
  264. package/dist/logger/transports/index.d.ts.map +1 -0
  265. package/dist/metrics/index.d.ts +163 -0
  266. package/dist/metrics/index.d.ts.map +1 -0
  267. package/dist/middleware/built-in.d.ts +50 -0
  268. package/dist/middleware/built-in.d.ts.map +1 -0
  269. package/dist/middleware/index.d.ts +40 -0
  270. package/dist/middleware/index.d.ts.map +1 -0
  271. package/dist/migrations/index.d.ts +10 -0
  272. package/dist/migrations/index.d.ts.map +1 -0
  273. package/dist/modules/filters.d.ts +150 -0
  274. package/dist/modules/filters.d.ts.map +1 -0
  275. package/dist/modules/guards.d.ts +188 -0
  276. package/dist/modules/guards.d.ts.map +1 -0
  277. package/dist/modules/index.d.ts +266 -0
  278. package/dist/modules/index.d.ts.map +1 -0
  279. package/dist/modules/index.js +514 -449
  280. package/dist/modules/interceptors.d.ts +242 -0
  281. package/dist/modules/interceptors.d.ts.map +1 -0
  282. package/dist/modules/lazy.d.ts +187 -0
  283. package/dist/modules/lazy.d.ts.map +1 -0
  284. package/dist/modules/lifecycle.d.ts +221 -0
  285. package/dist/modules/lifecycle.d.ts.map +1 -0
  286. package/dist/modules/metadata.d.ts +32 -0
  287. package/dist/modules/metadata.d.ts.map +1 -0
  288. package/dist/modules/pipes.d.ts +287 -0
  289. package/dist/modules/pipes.d.ts.map +1 -0
  290. package/dist/notification/channels/base.d.ts +32 -0
  291. package/dist/notification/channels/base.d.ts.map +1 -0
  292. package/dist/notification/channels/email.d.ts +37 -0
  293. package/dist/notification/channels/email.d.ts.map +1 -0
  294. package/dist/notification/channels/push.d.ts +37 -0
  295. package/dist/notification/channels/push.d.ts.map +1 -0
  296. package/dist/notification/channels/sms.d.ts +37 -0
  297. package/dist/notification/channels/sms.d.ts.map +1 -0
  298. package/dist/notification/channels/whatsapp.d.ts +37 -0
  299. package/dist/notification/channels/whatsapp.d.ts.map +1 -0
  300. package/dist/notification/index.d.ts +15 -0
  301. package/dist/notification/index.d.ts.map +1 -0
  302. package/dist/notification/service.d.ts +100 -0
  303. package/dist/notification/service.d.ts.map +1 -0
  304. package/dist/notification/types.d.ts +253 -0
  305. package/dist/notification/types.d.ts.map +1 -0
  306. package/dist/observability/__tests__/observability.test.d.ts +2 -0
  307. package/dist/observability/__tests__/observability.test.d.ts.map +1 -0
  308. package/dist/observability/breadcrumbs.d.ts +48 -0
  309. package/dist/observability/breadcrumbs.d.ts.map +1 -0
  310. package/dist/observability/index.d.ts +95 -0
  311. package/dist/observability/index.d.ts.map +1 -0
  312. package/dist/observability/interceptor.d.ts +19 -0
  313. package/dist/observability/interceptor.d.ts.map +1 -0
  314. package/dist/observability/service.d.ts +101 -0
  315. package/dist/observability/service.d.ts.map +1 -0
  316. package/dist/observability/trace.d.ts +21 -0
  317. package/dist/observability/trace.d.ts.map +1 -0
  318. package/dist/observability/types.d.ts +172 -0
  319. package/dist/observability/types.d.ts.map +1 -0
  320. package/dist/openapi/__tests__/decorators.test.d.ts +2 -0
  321. package/dist/openapi/__tests__/decorators.test.d.ts.map +1 -0
  322. package/dist/openapi/__tests__/document-builder.test.d.ts +2 -0
  323. package/dist/openapi/__tests__/document-builder.test.d.ts.map +1 -0
  324. package/dist/openapi/__tests__/route-scanner.test.d.ts +2 -0
  325. package/dist/openapi/__tests__/route-scanner.test.d.ts.map +1 -0
  326. package/dist/openapi/__tests__/schema-generator.test.d.ts +2 -0
  327. package/dist/openapi/__tests__/schema-generator.test.d.ts.map +1 -0
  328. package/dist/openapi/decorators.d.ts +173 -0
  329. package/dist/openapi/decorators.d.ts.map +1 -0
  330. package/dist/openapi/document-builder.d.ts +82 -0
  331. package/dist/openapi/document-builder.d.ts.map +1 -0
  332. package/dist/openapi/index.d.ts +48 -0
  333. package/dist/openapi/index.d.ts.map +1 -0
  334. package/dist/openapi/index.js +59 -40
  335. package/dist/openapi/metadata.d.ts +36 -0
  336. package/dist/openapi/metadata.d.ts.map +1 -0
  337. package/dist/openapi/route-scanner.d.ts +34 -0
  338. package/dist/openapi/route-scanner.d.ts.map +1 -0
  339. package/dist/openapi/schema-generator.d.ts +53 -0
  340. package/dist/openapi/schema-generator.d.ts.map +1 -0
  341. package/dist/openapi/swagger-module.d.ts +57 -0
  342. package/dist/openapi/swagger-module.d.ts.map +1 -0
  343. package/dist/openapi/types.d.ts +344 -0
  344. package/dist/openapi/types.d.ts.map +1 -0
  345. package/dist/orm/index.d.ts +10 -0
  346. package/dist/orm/index.d.ts.map +1 -0
  347. package/dist/router/index.d.ts +73 -0
  348. package/dist/router/index.d.ts.map +1 -0
  349. package/dist/router/linear.d.ts +54 -0
  350. package/dist/router/linear.d.ts.map +1 -0
  351. package/dist/router/regex.d.ts +49 -0
  352. package/dist/router/regex.d.ts.map +1 -0
  353. package/dist/router/tree.d.ts +112 -0
  354. package/dist/router/tree.d.ts.map +1 -0
  355. package/dist/rpc/index.d.ts +321 -0
  356. package/dist/rpc/index.d.ts.map +1 -0
  357. package/dist/schema/index.d.ts +10 -0
  358. package/dist/schema/index.d.ts.map +1 -0
  359. package/dist/security/index.d.ts +126 -0
  360. package/dist/security/index.d.ts.map +1 -0
  361. package/dist/ssg/index.d.ts +73 -0
  362. package/dist/ssg/index.d.ts.map +1 -0
  363. package/dist/storage/index.d.ts +99 -0
  364. package/dist/storage/index.d.ts.map +1 -0
  365. package/dist/telemetry/index.d.ts +376 -0
  366. package/dist/telemetry/index.d.ts.map +1 -0
  367. package/dist/template/index.d.ts +7 -0
  368. package/dist/template/index.d.ts.map +1 -0
  369. package/dist/templates/engine.d.ts +60 -0
  370. package/dist/templates/engine.d.ts.map +1 -0
  371. package/dist/templates/index.d.ts +9 -0
  372. package/dist/templates/index.d.ts.map +1 -0
  373. package/dist/templates/loader.d.ts +45 -0
  374. package/dist/templates/loader.d.ts.map +1 -0
  375. package/dist/templates/renderers/markdown.d.ts +46 -0
  376. package/dist/templates/renderers/markdown.d.ts.map +1 -0
  377. package/dist/templates/renderers/simple.d.ts +35 -0
  378. package/dist/templates/renderers/simple.d.ts.map +1 -0
  379. package/dist/templates/types.d.ts +138 -0
  380. package/dist/templates/types.d.ts.map +1 -0
  381. package/dist/testing/index.d.ts +539 -0
  382. package/dist/testing/index.d.ts.map +1 -0
  383. package/dist/types/index.d.ts +116 -0
  384. package/dist/types/index.d.ts.map +1 -0
  385. package/dist/validation/index.d.ts +89 -0
  386. package/dist/validation/index.d.ts.map +1 -0
  387. package/dist/validation/schemas.d.ts +243 -0
  388. package/dist/validation/schemas.d.ts.map +1 -0
  389. package/dist/websocket/index.d.ts +252 -0
  390. package/dist/websocket/index.d.ts.map +1 -0
  391. package/llms.txt +231 -0
  392. package/package.json +6 -2
  393. package/src/cli/ARCHITECTURE.md +3 -3
  394. package/src/cli/commands/add-frontend.ts +444 -0
  395. package/src/cli/commands/new.ts +23 -0
  396. package/src/cli/index.ts +1 -0
  397. package/src/cli/templates/frontend/react.ts +2 -1
  398. package/src/cli/templates/frontend/solid.ts +2 -1
  399. package/src/cli/templates/frontend/svelte.ts +2 -1
  400. package/src/cli/templates/frontend/vue.ts +2 -1
  401. package/src/cli/templates/project/api.ts +1 -1
  402. package/src/cli/templates/project/default.ts +1 -1
  403. package/src/cli/templates/project/fullstack.ts +14 -104
  404. package/src/cli/templates/project/website.ts +63 -12
  405. package/src/config/types.ts +21 -0
  406. package/src/graphql/built-in-engine.ts +598 -0
  407. package/src/graphql/context-builder.ts +110 -0
  408. package/src/graphql/decorators.ts +358 -0
  409. package/src/graphql/execution-pipeline.ts +227 -0
  410. package/src/graphql/graphql-module.ts +563 -0
  411. package/src/graphql/index.ts +101 -0
  412. package/src/graphql/metadata.ts +237 -0
  413. package/src/graphql/schema-builder.ts +319 -0
  414. package/src/graphql/subscription-handler.ts +283 -0
  415. package/src/graphql/types.ts +324 -0
  416. package/src/index.ts +3 -0
  417. package/src/modules/index.ts +48 -1
  418. package/tests/integration/cli.test.ts +19 -19
  419. package/tests/unit/cli.test.ts +1 -1
  420. package/tests/unit/graphql.test.ts +991 -0
  421. package/tsconfig.declaration.json +14 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * OpenAPI Metadata Storage
3
+ *
4
+ * Isolated metadata storage using WeakMap, following the same pattern as src/modules/metadata.ts
5
+ * This avoids circular dependencies and keeps metadata separate from the core module system.
6
+ */
7
+ import type { Constructor } from './types';
8
+ /**
9
+ * Set metadata on a class constructor
10
+ */
11
+ export declare function setApiMetadata(target: Constructor, key: string, value: unknown): void;
12
+ /**
13
+ * Get metadata from a class constructor
14
+ */
15
+ export declare function getApiMetadata<T>(target: Constructor, key: string): T | undefined;
16
+ /**
17
+ * Set metadata on a method prototype
18
+ */
19
+ export declare function setApiMethodMetadata(target: object, key: string, value: unknown): void;
20
+ /**
21
+ * Get metadata from a method prototype
22
+ */
23
+ export declare function getApiMethodMetadata<T>(target: object, key: string): T | undefined;
24
+ /**
25
+ * Set metadata on a property of a class prototype
26
+ */
27
+ export declare function setApiPropertyMetadata(target: object, propertyKey: string | symbol, value: unknown): void;
28
+ /**
29
+ * Get metadata from a property of a class prototype
30
+ */
31
+ export declare function getApiPropertyMetadata<T>(target: object, propertyKey: string | symbol): T | undefined;
32
+ /**
33
+ * Get all property metadata keys from a class prototype
34
+ */
35
+ export declare function getApiPropertyKeys(target: object): (string | symbol)[];
36
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/openapi/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C;;GAEG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AASD;;GAEG;AACH,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACZ,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACT,CAAC,GAAG,SAAS,CAEf;AASD;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,OAAO,GACZ,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACvC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC1B,CAAC,GAAG,SAAS,CAGf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAItE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Route Scanner
3
+ *
4
+ * Scans controllers and extracts OpenAPI operation metadata from decorators.
5
+ * Combines HTTP method decorators, parameter documentation, and responses
6
+ * into OpenAPI operation objects.
7
+ */
8
+ import type { Constructor, OpenAPIPaths } from './types';
9
+ import { SchemaGenerator } from './schema-generator';
10
+ /**
11
+ * RouteScanner - Scans controllers and extracts OpenAPI operations
12
+ */
13
+ export declare class RouteScanner {
14
+ private schemaGenerator;
15
+ constructor(schemaGenerator: SchemaGenerator);
16
+ /**
17
+ * Scan all controllers and generate OpenAPI paths
18
+ */
19
+ scanControllers(controllers: Constructor[]): OpenAPIPaths;
20
+ /**
21
+ * Generate an OpenAPI operation for a single route
22
+ */
23
+ private generateOperation;
24
+ /**
25
+ * Convert a route pattern from :param format to {param} format (OpenAPI style)
26
+ * Handles optional params (:param?) and regex params (:param<regex>)
27
+ */
28
+ private convertPathToOpenAPI;
29
+ /**
30
+ * Get the schema generator instance
31
+ */
32
+ getSchemaGenerator(): SchemaGenerator;
33
+ }
34
+ //# sourceMappingURL=route-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-scanner.d.ts","sourceRoot":"","sources":["../../src/openapi/route-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,WAAW,EAGX,YAAY,EAGZ,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD;;GAEG;AACH,qBAAa,YAAY;IACZ,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEpD;;OAEG;IACH,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,YAAY;IAyDzD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkLzB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,kBAAkB,IAAI,eAAe;CAGrC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Schema Generator
3
+ *
4
+ * Converts TypeScript class types and @ApiProperty decorators into OpenAPI schemas.
5
+ */
6
+ import type { Constructor, OpenAPISchema } from './types';
7
+ /**
8
+ * SchemaGenerator - Converts TypeScript types to OpenAPI schemas
9
+ */
10
+ export declare class SchemaGenerator {
11
+ private schemas;
12
+ private typeNames;
13
+ private typeCounter;
14
+ /**
15
+ * Generate an OpenAPI schema from a TypeScript type
16
+ * Supports classes, interfaces (via decorators), primitives, arrays
17
+ */
18
+ generateSchema(type: Constructor | string | Function): OpenAPISchema;
19
+ /**
20
+ * Generate schema for an object/class type
21
+ * Reads @ApiProperty metadata from class properties
22
+ */
23
+ private generateObjectSchema;
24
+ /**
25
+ * Generate schema from an @ApiProperty options object
26
+ */
27
+ private generatePropertySchema;
28
+ /**
29
+ * Generate schema for a primitive TypeScript type
30
+ */
31
+ private generatePrimitiveSchema;
32
+ /**
33
+ * Map string type names to OpenAPI schema
34
+ */
35
+ private mapStringType;
36
+ /**
37
+ * Check if type is a built-in TypeScript type
38
+ */
39
+ private isBuiltInType;
40
+ /**
41
+ * Get the name for a type (for referencing in components.schemas)
42
+ */
43
+ private getTypeName;
44
+ /**
45
+ * Get all generated schemas (for components.schemas)
46
+ */
47
+ getSchemas(): Record<string, OpenAPISchema>;
48
+ /**
49
+ * Clear cached schemas
50
+ */
51
+ clear(): void;
52
+ }
53
+ //# sourceMappingURL=schema-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../src/openapi/schema-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAsB,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG9E;;GAEG;AACH,qBAAa,eAAe;IAC3B,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,WAAW,CAAK;IAExB;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa;IAiCpE;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkD9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAe/B;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAkBnB;;OAEG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;IAQ3C;;OAEG;IACH,KAAK,IAAI,IAAI;CAKb"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Swagger Module
3
+ *
4
+ * Provides utilities to set up Swagger UI and integrate OpenAPI document generation
5
+ * with a Bueno Application.
6
+ */
7
+ import type { Application } from '../modules';
8
+ import type { Constructor, OpenAPIDocument, SwaggerOptions } from './types';
9
+ /**
10
+ * SwaggerModule - Static utilities for OpenAPI integration
11
+ */
12
+ export declare class SwaggerModule {
13
+ /**
14
+ * Create an OpenAPI document from a Bueno Application and controllers
15
+ *
16
+ * @param app - The Application instance
17
+ * @param config - Base OpenAPI document configuration
18
+ * @param controllers - Array of controller classes to scan
19
+ * @returns Complete OpenAPI document with paths and schemas
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const document = SwaggerModule.createDocument(app, {
24
+ * openapi: '3.1.0',
25
+ * info: { title: 'My API', version: '1.0.0' },
26
+ * paths: {},
27
+ * }, [UserController, PostController]);
28
+ * ```
29
+ */
30
+ static createDocument(app: Application, config: OpenAPIDocument, controllers: Constructor[]): OpenAPIDocument;
31
+ /**
32
+ * Setup Swagger UI and JSON endpoint
33
+ *
34
+ * Registers two routes:
35
+ * - GET {path} - Swagger UI HTML page
36
+ * - GET {path}-json - OpenAPI JSON document
37
+ *
38
+ * @param path - Base path for Swagger UI (e.g., '/api-docs')
39
+ * @param app - The Application instance
40
+ * @param document - OpenAPI document to serve
41
+ * @param options - Swagger UI configuration options
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const document = SwaggerModule.createDocument(app, config, controllers);
46
+ * SwaggerModule.setup('/api-docs', app, document, {
47
+ * title: 'My API Documentation',
48
+ * });
49
+ * ```
50
+ */
51
+ static setup(path: string, app: Application, document: OpenAPIDocument, options?: SwaggerOptions): void;
52
+ /**
53
+ * Generate Swagger UI HTML
54
+ */
55
+ private static generateSwaggerUI;
56
+ }
57
+ //# sourceMappingURL=swagger-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger-module.d.ts","sourceRoot":"","sources":["../../src/openapi/swagger-module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAK5E;;GAEG;AACH,qBAAa,aAAa;IACzB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,cAAc,CACpB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW,EAAE,GACxB,eAAe;IAyBlB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,KAAK,CACX,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,cAAc,GACtB,IAAI;IAaP;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA6DhC"}
@@ -0,0 +1,344 @@
1
+ /**
2
+ * OpenAPI 3.1 Type Definitions
3
+ *
4
+ * Comprehensive type definitions for generating OpenAPI 3.1 specifications.
5
+ */
6
+ export type Constructor = new (...args: unknown[]) => unknown;
7
+ /**
8
+ * OpenAPI Document - Root object containing the entire API specification
9
+ */
10
+ export interface OpenAPIDocument {
11
+ openapi: '3.1.0';
12
+ info: OpenAPIInfo;
13
+ servers?: OpenAPIServer[];
14
+ paths: OpenAPIPaths;
15
+ components?: OpenAPIComponents;
16
+ security?: OpenAPISecurity[];
17
+ tags?: OpenAPITag[];
18
+ }
19
+ /**
20
+ * OpenAPI Info - Metadata about the API
21
+ */
22
+ export interface OpenAPIInfo {
23
+ title: string;
24
+ version: string;
25
+ description?: string;
26
+ contact?: OpenAPIContact;
27
+ license?: OpenAPILicense;
28
+ termsOfService?: string;
29
+ }
30
+ export interface OpenAPIContact {
31
+ name?: string;
32
+ url?: string;
33
+ email?: string;
34
+ }
35
+ export interface OpenAPILicense {
36
+ name: string;
37
+ url?: string;
38
+ }
39
+ /**
40
+ * OpenAPI Server - Server information
41
+ */
42
+ export interface OpenAPIServer {
43
+ url: string;
44
+ description?: string;
45
+ }
46
+ /**
47
+ * OpenAPI Paths - Map of path patterns to path items
48
+ */
49
+ export type OpenAPIPaths = Record<string, OpenAPIPath>;
50
+ /**
51
+ * OpenAPI Path Item - HTTP operations for a path
52
+ */
53
+ export interface OpenAPIPath {
54
+ summary?: string;
55
+ description?: string;
56
+ get?: OpenAPIOperation;
57
+ post?: OpenAPIOperation;
58
+ put?: OpenAPIOperation;
59
+ patch?: OpenAPIOperation;
60
+ delete?: OpenAPIOperation;
61
+ head?: OpenAPIOperation;
62
+ options?: OpenAPIOperation;
63
+ parameters?: OpenAPIParameter[];
64
+ }
65
+ /**
66
+ * OpenAPI Operation - Single HTTP operation
67
+ */
68
+ export interface OpenAPIOperation {
69
+ operationId?: string;
70
+ summary?: string;
71
+ description?: string;
72
+ tags?: string[];
73
+ externalDocs?: OpenAPIExternalDocs;
74
+ parameters?: OpenAPIParameter[];
75
+ requestBody?: OpenAPIRequestBody;
76
+ responses: OpenAPIResponses;
77
+ callbacks?: Record<string, unknown>;
78
+ deprecated?: boolean;
79
+ security?: OpenAPISecurity[];
80
+ servers?: OpenAPIServer[];
81
+ }
82
+ export interface OpenAPIExternalDocs {
83
+ url: string;
84
+ description?: string;
85
+ }
86
+ /**
87
+ * OpenAPI Parameter - Request parameter (path, query, header, cookie)
88
+ */
89
+ export interface OpenAPIParameter {
90
+ name: string;
91
+ in: 'path' | 'query' | 'header' | 'cookie';
92
+ description?: string;
93
+ required?: boolean;
94
+ deprecated?: boolean;
95
+ allowEmptyValue?: boolean;
96
+ style?: string;
97
+ explode?: boolean;
98
+ allowReserved?: boolean;
99
+ schema?: OpenAPISchema;
100
+ example?: unknown;
101
+ examples?: Record<string, OpenAPIExample>;
102
+ content?: Record<string, OpenAPIMediaType>;
103
+ }
104
+ /**
105
+ * OpenAPI Request Body
106
+ */
107
+ export interface OpenAPIRequestBody {
108
+ description?: string;
109
+ content: Record<string, OpenAPIMediaType>;
110
+ required?: boolean;
111
+ }
112
+ /**
113
+ * OpenAPI Media Type
114
+ */
115
+ export interface OpenAPIMediaType {
116
+ schema?: OpenAPISchema;
117
+ example?: unknown;
118
+ examples?: Record<string, OpenAPIExample>;
119
+ encoding?: Record<string, unknown>;
120
+ }
121
+ /**
122
+ * OpenAPI Example
123
+ */
124
+ export interface OpenAPIExample {
125
+ summary?: string;
126
+ description?: string;
127
+ value?: unknown;
128
+ externalValue?: string;
129
+ }
130
+ /**
131
+ * OpenAPI Response
132
+ */
133
+ export interface OpenAPIResponse {
134
+ description: string;
135
+ headers?: Record<string, OpenAPIHeader>;
136
+ content?: Record<string, OpenAPIMediaType>;
137
+ links?: Record<string, unknown>;
138
+ }
139
+ /**
140
+ * OpenAPI Header
141
+ */
142
+ export interface OpenAPIHeader {
143
+ description?: string;
144
+ required?: boolean;
145
+ deprecated?: boolean;
146
+ schema?: OpenAPISchema;
147
+ example?: unknown;
148
+ examples?: Record<string, OpenAPIExample>;
149
+ content?: Record<string, OpenAPIMediaType>;
150
+ }
151
+ /**
152
+ * OpenAPI Responses - Map of status codes to responses
153
+ */
154
+ export type OpenAPIResponses = Record<string | 'default', OpenAPIResponse>;
155
+ /**
156
+ * OpenAPI Schema - JSON Schema with OpenAPI extensions
157
+ */
158
+ export interface OpenAPISchema {
159
+ type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'null';
160
+ format?: string;
161
+ title?: string;
162
+ description?: string;
163
+ default?: unknown;
164
+ example?: unknown;
165
+ examples?: unknown[];
166
+ properties?: Record<string, OpenAPISchema>;
167
+ required?: string[];
168
+ additionalProperties?: boolean | OpenAPISchema;
169
+ maxProperties?: number;
170
+ minProperties?: number;
171
+ items?: OpenAPISchema;
172
+ maxItems?: number;
173
+ minItems?: number;
174
+ uniqueItems?: boolean;
175
+ maxLength?: number;
176
+ minLength?: number;
177
+ pattern?: string;
178
+ maximum?: number;
179
+ minimum?: number;
180
+ exclusiveMaximum?: boolean;
181
+ exclusiveMinimum?: boolean;
182
+ multipleOf?: number;
183
+ enum?: unknown[];
184
+ allOf?: OpenAPISchema[];
185
+ oneOf?: OpenAPISchema[];
186
+ anyOf?: OpenAPISchema[];
187
+ not?: OpenAPISchema;
188
+ $ref?: string;
189
+ nullable?: boolean;
190
+ discriminator?: OpenAPIDiscriminator;
191
+ readOnly?: boolean;
192
+ writeOnly?: boolean;
193
+ xml?: OpenAPIXML;
194
+ externalDocs?: OpenAPIExternalDocs;
195
+ deprecated?: boolean;
196
+ }
197
+ export interface OpenAPIDiscriminator {
198
+ propertyName: string;
199
+ mapping?: Record<string, string>;
200
+ }
201
+ export interface OpenAPIXML {
202
+ name?: string;
203
+ namespace?: string;
204
+ prefix?: string;
205
+ attribute?: boolean;
206
+ wrapped?: boolean;
207
+ }
208
+ /**
209
+ * OpenAPI Components - Reusable schema definitions
210
+ */
211
+ export interface OpenAPIComponents {
212
+ schemas?: Record<string, OpenAPISchema>;
213
+ responses?: Record<string, OpenAPIResponse>;
214
+ parameters?: Record<string, OpenAPIParameter>;
215
+ examples?: Record<string, OpenAPIExample>;
216
+ requestBodies?: Record<string, OpenAPIRequestBody>;
217
+ headers?: Record<string, OpenAPIHeader>;
218
+ securitySchemes?: Record<string, OpenAPISecurityScheme>;
219
+ links?: Record<string, unknown>;
220
+ callbacks?: Record<string, unknown>;
221
+ pathItems?: Record<string, OpenAPIPath>;
222
+ }
223
+ /**
224
+ * OpenAPI Security Scheme
225
+ */
226
+ export interface OpenAPISecurityScheme {
227
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
228
+ description?: string;
229
+ name?: string;
230
+ in?: 'query' | 'header' | 'cookie';
231
+ scheme?: string;
232
+ bearerFormat?: string;
233
+ flows?: OpenAPIOAuthFlows;
234
+ openIdConnectUrl?: string;
235
+ }
236
+ export interface OpenAPIOAuthFlows {
237
+ implicit?: OpenAPIOAuthFlow;
238
+ password?: OpenAPIOAuthFlow;
239
+ clientCredentials?: OpenAPIOAuthFlow;
240
+ authorizationCode?: OpenAPIOAuthFlow;
241
+ }
242
+ export interface OpenAPIOAuthFlow {
243
+ authorizationUrl: string;
244
+ tokenUrl?: string;
245
+ refreshUrl?: string;
246
+ scopes: Record<string, string>;
247
+ }
248
+ /**
249
+ * OpenAPI Security - Security requirement object
250
+ */
251
+ export type OpenAPISecurity = Record<string, string[]>;
252
+ /**
253
+ * OpenAPI Tag - Tag information
254
+ */
255
+ export interface OpenAPITag {
256
+ name: string;
257
+ description?: string;
258
+ externalDocs?: OpenAPIExternalDocs;
259
+ }
260
+ /**
261
+ * Options for Swagger UI
262
+ */
263
+ export interface SwaggerOptions {
264
+ title?: string;
265
+ customCss?: string;
266
+ customSiteTitle?: string;
267
+ customfavIcon?: string;
268
+ swaggerUrl?: string;
269
+ swaggerVersion?: string;
270
+ }
271
+ /**
272
+ * Decorator Options - Used when decorating controllers/methods
273
+ */
274
+ export interface ApiOperationOptions {
275
+ summary?: string;
276
+ description?: string;
277
+ operationId?: string;
278
+ deprecated?: boolean;
279
+ }
280
+ export interface ApiResponseOptions {
281
+ status: number | 'default';
282
+ description: string;
283
+ type?: Constructor | Constructor[];
284
+ schema?: OpenAPISchema;
285
+ headers?: Record<string, OpenAPIHeader>;
286
+ }
287
+ export interface ApiParamOptions {
288
+ name: string;
289
+ type?: 'string' | 'number' | 'boolean' | 'integer';
290
+ description?: string;
291
+ required?: boolean;
292
+ example?: unknown;
293
+ schema?: OpenAPISchema;
294
+ }
295
+ export interface ApiQueryOptions {
296
+ name: string;
297
+ type?: 'string' | 'number' | 'boolean' | 'integer' | 'array';
298
+ description?: string;
299
+ required?: boolean;
300
+ example?: unknown;
301
+ schema?: OpenAPISchema;
302
+ }
303
+ export interface ApiHeaderOptions {
304
+ name: string;
305
+ description?: string;
306
+ required?: boolean;
307
+ schema?: OpenAPISchema;
308
+ }
309
+ export interface ApiBodyOptions {
310
+ type?: Constructor;
311
+ description?: string;
312
+ required?: boolean;
313
+ schema?: OpenAPISchema;
314
+ }
315
+ export interface ApiPropertyOptions {
316
+ description?: string;
317
+ example?: unknown;
318
+ type?: Constructor | string;
319
+ format?: string;
320
+ required?: boolean;
321
+ nullable?: boolean;
322
+ enum?: unknown[];
323
+ minimum?: number;
324
+ maximum?: number;
325
+ minLength?: number;
326
+ maxLength?: number;
327
+ pattern?: string;
328
+ default?: unknown;
329
+ readOnly?: boolean;
330
+ writeOnly?: boolean;
331
+ items?: OpenAPISchema;
332
+ maxItems?: number;
333
+ minItems?: number;
334
+ }
335
+ export interface SecuritySchemeOptions {
336
+ description?: string;
337
+ bearerFormat?: string;
338
+ }
339
+ export interface ApiKeySecurityOptions {
340
+ in: 'header' | 'query' | 'cookie';
341
+ name: string;
342
+ description?: string;
343
+ }
344
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/openapi/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Bueno ORM Entry Point
3
+ *
4
+ * Subpath export: '@buenojs/bueno/orm'
5
+ *
6
+ * @example
7
+ * import { Model, setDefaultDatabase } from '@buenojs/bueno/orm';
8
+ */
9
+ export * from "../database/orm";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Router System with Auto-Selection
3
+ *
4
+ * Automatically selects the optimal router implementation based on route count:
5
+ * - LinearRouter: ≤10 routes (O(1) static, O(n) dynamic)
6
+ * - RegexRouter: 11-50 routes (compiled regex patterns)
7
+ * - TreeRouter: >50 routes (O(log n) radix tree)
8
+ *
9
+ * You can also explicitly choose a router type for specific use cases.
10
+ */
11
+ import type { HTTPMethod, MiddlewareHandler, PathParams, RouteHandler } from "../types";
12
+ import { LinearRouter } from "./linear";
13
+ import { RegexRouter } from "./regex";
14
+ import { TreeRouter } from "./tree";
15
+ export interface RouteMatch {
16
+ handler: RouteHandler;
17
+ params: PathParams;
18
+ middleware?: MiddlewareHandler[];
19
+ name?: string;
20
+ }
21
+ export interface RouteOptions {
22
+ name?: string;
23
+ middleware?: MiddlewareHandler | MiddlewareHandler[];
24
+ }
25
+ export type RouterType = "auto" | "linear" | "regex" | "tree";
26
+ export interface RouterConfig {
27
+ type?: RouterType;
28
+ linearThreshold?: number;
29
+ regexThreshold?: number;
30
+ }
31
+ export declare class Router {
32
+ private router;
33
+ private config;
34
+ private pendingRoutes;
35
+ private isBuilt;
36
+ private groupPrefix;
37
+ private groupMiddleware;
38
+ constructor(config?: RouterConfig);
39
+ private createRouter;
40
+ private getOptimalRouterType;
41
+ private migrateRouter;
42
+ private addToRouter;
43
+ private addRoute;
44
+ match(method: HTTPMethod | "ALL", pathname: string): RouteMatch | undefined;
45
+ group(prefix: string, options?: {
46
+ middleware?: MiddlewareHandler | MiddlewareHandler[];
47
+ }): Router;
48
+ getRoutes(): Array<{
49
+ method: HTTPMethod | "ALL";
50
+ pattern: string;
51
+ name?: string;
52
+ }>;
53
+ getRouterType(): string;
54
+ getRouteCount(): number;
55
+ getConfig(): Required<RouterConfig>;
56
+ get(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
57
+ post(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
58
+ put(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
59
+ patch(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
60
+ delete(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
61
+ head(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
62
+ options(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
63
+ all(pattern: string, handler: RouteHandler, options?: RouteOptions): void;
64
+ }
65
+ export { LinearRouter } from "./linear";
66
+ export { RegexRouter } from "./regex";
67
+ export { TreeRouter } from "./tree";
68
+ export declare function generateUrl(pattern: string, params?: PathParams): string;
69
+ export declare function createRouter(config?: RouterConfig): Router;
70
+ export declare function createLinearRouter(): LinearRouter;
71
+ export declare function createRegexRouter(): RegexRouter;
72
+ export declare function createTreeRouter(): TreeRouter;
73
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}