adorn-api 1.0.0 → 1.0.2

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 (529) hide show
  1. package/README.md +54 -249
  2. package/dist/adapters/express/createApp.d.ts +158 -0
  3. package/dist/adapters/express/createApp.d.ts.map +1 -0
  4. package/dist/adapters/express/createApp.js +141 -0
  5. package/dist/adapters/express/createApp.js.map +1 -0
  6. package/dist/adapters/express/index.d.ts +7 -0
  7. package/dist/adapters/express/index.d.ts.map +1 -0
  8. package/dist/adapters/express/index.js +7 -0
  9. package/dist/adapters/express/index.js.map +1 -0
  10. package/dist/adapters/express/middleware/errorHandler.d.ts +194 -0
  11. package/dist/adapters/express/middleware/errorHandler.d.ts.map +1 -0
  12. package/dist/adapters/express/middleware/errorHandler.js +167 -0
  13. package/dist/adapters/express/middleware/errorHandler.js.map +1 -0
  14. package/dist/adapters/express/middleware/requestContext.d.ts +2 -0
  15. package/dist/adapters/express/middleware/requestContext.d.ts.map +1 -0
  16. package/dist/adapters/express/middleware/requestContext.js +3 -0
  17. package/dist/adapters/express/middleware/requestContext.js.map +1 -0
  18. package/dist/adapters/express/router.d.ts +10 -0
  19. package/dist/adapters/express/router.d.ts.map +1 -0
  20. package/dist/adapters/express/router.js +105 -0
  21. package/dist/adapters/express/router.js.map +1 -0
  22. package/dist/adapters/express/swagger/index.d.ts +2 -0
  23. package/dist/adapters/express/swagger/index.d.ts.map +1 -0
  24. package/dist/adapters/express/swagger/index.js +2 -0
  25. package/dist/adapters/express/swagger/index.js.map +1 -0
  26. package/dist/adapters/express/swagger/serve.d.ts +12 -0
  27. package/dist/adapters/express/swagger/serve.d.ts.map +1 -0
  28. package/dist/adapters/express/swagger/serve.js +72 -0
  29. package/dist/adapters/express/swagger/serve.js.map +1 -0
  30. package/dist/adapters/express/transport/request.d.ts +4 -0
  31. package/dist/adapters/express/transport/request.d.ts.map +1 -0
  32. package/dist/adapters/express/transport/request.js +12 -0
  33. package/dist/adapters/express/transport/request.js.map +1 -0
  34. package/dist/adapters/express/transport/response.d.ts +5 -0
  35. package/dist/adapters/express/transport/response.d.ts.map +1 -0
  36. package/dist/adapters/express/transport/response.js +36 -0
  37. package/dist/adapters/express/transport/response.js.map +1 -0
  38. package/dist/cli/commands/dev.d.ts +2 -0
  39. package/dist/cli/commands/dev.d.ts.map +1 -0
  40. package/dist/cli/commands/dev.js +3 -0
  41. package/dist/cli/commands/dev.js.map +1 -0
  42. package/dist/cli/commands/gen.d.ts +2 -0
  43. package/dist/cli/commands/gen.d.ts.map +1 -0
  44. package/dist/cli/commands/gen.js +3 -0
  45. package/dist/cli/commands/gen.js.map +1 -0
  46. package/dist/cli/main.d.ts +2 -0
  47. package/dist/cli/main.d.ts.map +1 -0
  48. package/dist/cli/main.js +3 -0
  49. package/dist/cli/main.js.map +1 -0
  50. package/dist/cli.d.ts +2 -0
  51. package/dist/cli.d.ts.map +1 -0
  52. package/dist/cli.js +3 -0
  53. package/dist/cli.js.map +1 -0
  54. package/dist/compiler/config/defaults.d.ts +2 -0
  55. package/dist/compiler/config/defaults.d.ts.map +1 -0
  56. package/dist/compiler/config/defaults.js +3 -0
  57. package/dist/compiler/config/defaults.js.map +1 -0
  58. package/dist/compiler/config/loadConfig.d.ts +2 -0
  59. package/dist/compiler/config/loadConfig.d.ts.map +1 -0
  60. package/dist/compiler/config/loadConfig.js +3 -0
  61. package/dist/compiler/config/loadConfig.js.map +1 -0
  62. package/dist/compiler/diagnostics/errors.d.ts +2 -0
  63. package/dist/compiler/diagnostics/errors.d.ts.map +1 -0
  64. package/dist/compiler/diagnostics/errors.js +3 -0
  65. package/dist/compiler/diagnostics/errors.js.map +1 -0
  66. package/dist/compiler/emit/openapi.d.ts +2 -0
  67. package/dist/compiler/emit/openapi.d.ts.map +1 -0
  68. package/dist/compiler/emit/openapi.js +3 -0
  69. package/dist/compiler/emit/openapi.js.map +1 -0
  70. package/dist/compiler/emit/routes.d.ts +2 -0
  71. package/dist/compiler/emit/routes.d.ts.map +1 -0
  72. package/dist/compiler/emit/routes.js +3 -0
  73. package/dist/compiler/emit/routes.js.map +1 -0
  74. package/dist/compiler/program/loadTsProgram.d.ts +2 -0
  75. package/dist/compiler/program/loadTsProgram.d.ts.map +1 -0
  76. package/dist/compiler/program/loadTsProgram.js +3 -0
  77. package/dist/compiler/program/loadTsProgram.js.map +1 -0
  78. package/dist/compiler/scan/actions.d.ts +2 -0
  79. package/dist/compiler/scan/actions.d.ts.map +1 -0
  80. package/dist/compiler/scan/actions.js +3 -0
  81. package/dist/compiler/scan/actions.js.map +1 -0
  82. package/dist/compiler/scan/controllers.d.ts +2 -0
  83. package/dist/compiler/scan/controllers.d.ts.map +1 -0
  84. package/dist/compiler/scan/controllers.js +3 -0
  85. package/dist/compiler/scan/controllers.js.map +1 -0
  86. package/dist/compiler/scan/types.d.ts +2 -0
  87. package/dist/compiler/scan/types.d.ts.map +1 -0
  88. package/dist/compiler/scan/types.js +3 -0
  89. package/dist/compiler/scan/types.js.map +1 -0
  90. package/dist/contracts/context.d.ts +10 -0
  91. package/dist/contracts/context.d.ts.map +1 -0
  92. package/dist/contracts/context.js +2 -0
  93. package/dist/contracts/context.js.map +1 -0
  94. package/dist/contracts/errors.d.ts +22 -0
  95. package/dist/contracts/errors.d.ts.map +1 -0
  96. package/dist/contracts/errors.js +2 -0
  97. package/dist/contracts/errors.js.map +1 -0
  98. package/dist/contracts/http.d.ts +2 -0
  99. package/dist/contracts/http.d.ts.map +1 -0
  100. package/dist/contracts/http.js +3 -0
  101. package/dist/contracts/http.js.map +1 -0
  102. package/dist/contracts/middleware.d.ts +2 -0
  103. package/dist/contracts/middleware.d.ts.map +1 -0
  104. package/dist/contracts/middleware.js +3 -0
  105. package/dist/contracts/middleware.js.map +1 -0
  106. package/dist/contracts/openapi-v3.d.ts +538 -0
  107. package/dist/contracts/openapi-v3.d.ts.map +1 -0
  108. package/dist/contracts/openapi-v3.js +2 -0
  109. package/dist/contracts/openapi-v3.js.map +1 -0
  110. package/dist/contracts/openapi.d.ts +2 -0
  111. package/dist/contracts/openapi.d.ts.map +1 -0
  112. package/dist/contracts/openapi.js +2 -0
  113. package/dist/contracts/openapi.js.map +1 -0
  114. package/dist/contracts/reply.d.ts +119 -0
  115. package/dist/contracts/reply.d.ts.map +1 -0
  116. package/dist/contracts/reply.js +43 -0
  117. package/dist/contracts/reply.js.map +1 -0
  118. package/dist/contracts/response-types.d.ts +40 -0
  119. package/dist/contracts/response-types.d.ts.map +1 -0
  120. package/dist/contracts/response-types.js +2 -0
  121. package/dist/contracts/response-types.js.map +1 -0
  122. package/dist/contracts/responses.d.ts +98 -0
  123. package/dist/contracts/responses.d.ts.map +1 -0
  124. package/dist/contracts/responses.js +2 -0
  125. package/dist/contracts/responses.js.map +1 -0
  126. package/dist/contracts/route-options.d.ts +155 -0
  127. package/dist/contracts/route-options.d.ts.map +1 -0
  128. package/dist/contracts/route-options.js +2 -0
  129. package/dist/contracts/route-options.js.map +1 -0
  130. package/dist/contracts/route-typing.d.ts +25 -0
  131. package/dist/contracts/route-typing.d.ts.map +1 -0
  132. package/dist/contracts/route-typing.js +2 -0
  133. package/dist/contracts/route-typing.js.map +1 -0
  134. package/dist/contracts/validator.d.ts +146 -0
  135. package/dist/contracts/validator.d.ts.map +1 -0
  136. package/dist/contracts/validator.js +2 -0
  137. package/dist/contracts/validator.js.map +1 -0
  138. package/dist/core/binding/binder.d.ts +74 -0
  139. package/dist/core/binding/binder.d.ts.map +1 -0
  140. package/dist/core/binding/binder.js +161 -0
  141. package/dist/core/binding/binder.js.map +1 -0
  142. package/dist/core/binding/coerce/arrays.d.ts +7 -0
  143. package/dist/core/binding/coerce/arrays.d.ts.map +1 -0
  144. package/dist/core/binding/coerce/arrays.js +28 -0
  145. package/dist/core/binding/coerce/arrays.js.map +1 -0
  146. package/dist/core/binding/coerce/csv.d.ts +2 -0
  147. package/dist/core/binding/coerce/csv.d.ts.map +1 -0
  148. package/dist/core/binding/coerce/csv.js +7 -0
  149. package/dist/core/binding/coerce/csv.js.map +1 -0
  150. package/dist/core/binding/coerce/objects.d.ts +2 -0
  151. package/dist/core/binding/coerce/objects.d.ts.map +1 -0
  152. package/dist/core/binding/coerce/objects.js +3 -0
  153. package/dist/core/binding/coerce/objects.js.map +1 -0
  154. package/dist/core/binding/coerce/primitives.d.ts +70 -0
  155. package/dist/core/binding/coerce/primitives.d.ts.map +1 -0
  156. package/dist/core/binding/coerce/primitives.js +88 -0
  157. package/dist/core/binding/coerce/primitives.js.map +1 -0
  158. package/dist/core/binding/index.d.ts +2 -0
  159. package/dist/core/binding/index.d.ts.map +1 -0
  160. package/dist/core/binding/index.js +2 -0
  161. package/dist/core/binding/index.js.map +1 -0
  162. package/dist/core/binding/rules/inferFromHttpMethod.d.ts +6 -0
  163. package/dist/core/binding/rules/inferFromHttpMethod.d.ts.map +1 -0
  164. package/dist/core/binding/rules/inferFromHttpMethod.js +11 -0
  165. package/dist/core/binding/rules/inferFromHttpMethod.js.map +1 -0
  166. package/dist/core/binding/rules/inferFromPath.d.ts +2 -0
  167. package/dist/core/binding/rules/inferFromPath.d.ts.map +1 -0
  168. package/dist/core/binding/rules/inferFromPath.js +9 -0
  169. package/dist/core/binding/rules/inferFromPath.js.map +1 -0
  170. package/dist/core/binding/rules/wrappers.d.ts +2 -0
  171. package/dist/core/binding/rules/wrappers.d.ts.map +1 -0
  172. package/dist/core/binding/rules/wrappers.js +3 -0
  173. package/dist/core/binding/rules/wrappers.js.map +1 -0
  174. package/dist/core/errors/http-error.d.ts +63 -0
  175. package/dist/core/errors/http-error.d.ts.map +1 -0
  176. package/dist/core/errors/http-error.js +71 -0
  177. package/dist/core/errors/http-error.js.map +1 -0
  178. package/dist/core/errors/index.d.ts +4 -0
  179. package/dist/core/errors/index.d.ts.map +1 -0
  180. package/dist/core/errors/index.js +4 -0
  181. package/dist/core/errors/index.js.map +1 -0
  182. package/dist/core/errors/problem.d.ts +3 -0
  183. package/dist/core/errors/problem.d.ts.map +1 -0
  184. package/dist/core/errors/problem.js +33 -0
  185. package/dist/core/errors/problem.js.map +1 -0
  186. package/dist/core/errors/validation-error.d.ts +73 -0
  187. package/dist/core/errors/validation-error.d.ts.map +1 -0
  188. package/dist/core/errors/validation-error.js +82 -0
  189. package/dist/core/errors/validation-error.js.map +1 -0
  190. package/dist/core/openapi/buildOpenApi.d.ts +79 -0
  191. package/dist/core/openapi/buildOpenApi.d.ts.map +1 -0
  192. package/dist/core/openapi/buildOpenApi.js +196 -0
  193. package/dist/core/openapi/buildOpenApi.js.map +1 -0
  194. package/dist/core/openapi/index.d.ts +2 -0
  195. package/dist/core/openapi/index.d.ts.map +1 -0
  196. package/dist/core/openapi/index.js +2 -0
  197. package/dist/core/openapi/index.js.map +1 -0
  198. package/dist/core/openapi/schema/formats.d.ts +2 -0
  199. package/dist/core/openapi/schema/formats.d.ts.map +1 -0
  200. package/dist/core/openapi/schema/formats.js +3 -0
  201. package/dist/core/openapi/schema/formats.js.map +1 -0
  202. package/dist/core/openapi/schema/registry.d.ts +9 -0
  203. package/dist/core/openapi/schema/registry.d.ts.map +1 -0
  204. package/dist/core/openapi/schema/registry.js +21 -0
  205. package/dist/core/openapi/schema/registry.js.map +1 -0
  206. package/dist/core/openapi/schema/schemaModel.d.ts +2 -0
  207. package/dist/core/openapi/schema/schemaModel.d.ts.map +1 -0
  208. package/dist/core/openapi/schema/schemaModel.js +3 -0
  209. package/dist/core/openapi/schema/schemaModel.js.map +1 -0
  210. package/dist/core/openapi/schema/schemaRegistry.d.ts +2 -0
  211. package/dist/core/openapi/schema/schemaRegistry.d.ts.map +1 -0
  212. package/dist/core/openapi/schema/schemaRegistry.js +3 -0
  213. package/dist/core/openapi/schema/schemaRegistry.js.map +1 -0
  214. package/dist/core/openapi/schema/toOpenApi.d.ts +4 -0
  215. package/dist/core/openapi/schema/toOpenApi.d.ts.map +1 -0
  216. package/dist/core/openapi/schema/toOpenApi.js +82 -0
  217. package/dist/core/openapi/schema/toOpenApi.js.map +1 -0
  218. package/dist/core/pipeline/compose.d.ts +2 -0
  219. package/dist/core/pipeline/compose.d.ts.map +1 -0
  220. package/dist/core/pipeline/compose.js +3 -0
  221. package/dist/core/pipeline/compose.js.map +1 -0
  222. package/dist/core/pipeline/errorMap.d.ts +2 -0
  223. package/dist/core/pipeline/errorMap.d.ts.map +1 -0
  224. package/dist/core/pipeline/errorMap.js +3 -0
  225. package/dist/core/pipeline/errorMap.js.map +1 -0
  226. package/dist/core/pipeline/invoke.d.ts +2 -0
  227. package/dist/core/pipeline/invoke.d.ts.map +1 -0
  228. package/dist/core/pipeline/invoke.js +3 -0
  229. package/dist/core/pipeline/invoke.js.map +1 -0
  230. package/dist/core/pipeline/result.d.ts +2 -0
  231. package/dist/core/pipeline/result.d.ts.map +1 -0
  232. package/dist/core/pipeline/result.js +3 -0
  233. package/dist/core/pipeline/result.js.map +1 -0
  234. package/dist/core/registry/buildRegistry.d.ts +3 -0
  235. package/dist/core/registry/buildRegistry.d.ts.map +1 -0
  236. package/dist/core/registry/buildRegistry.js +105 -0
  237. package/dist/core/registry/buildRegistry.js.map +1 -0
  238. package/dist/core/registry/conflicts.d.ts +6 -0
  239. package/dist/core/registry/conflicts.d.ts.map +1 -0
  240. package/dist/core/registry/conflicts.js +21 -0
  241. package/dist/core/registry/conflicts.js.map +1 -0
  242. package/dist/core/registry/index.d.ts +5 -0
  243. package/dist/core/registry/index.d.ts.map +1 -0
  244. package/dist/core/registry/index.js +5 -0
  245. package/dist/core/registry/index.js.map +1 -0
  246. package/dist/core/registry/normalize.d.ts +3 -0
  247. package/dist/core/registry/normalize.d.ts.map +1 -0
  248. package/dist/core/registry/normalize.js +24 -0
  249. package/dist/core/registry/normalize.js.map +1 -0
  250. package/dist/core/registry/types.d.ts +225 -0
  251. package/dist/core/registry/types.d.ts.map +1 -0
  252. package/dist/core/registry/types.js +2 -0
  253. package/dist/core/registry/types.js.map +1 -0
  254. package/dist/core/reply/index.d.ts +3 -0
  255. package/dist/core/reply/index.d.ts.map +1 -0
  256. package/dist/core/reply/index.js +3 -0
  257. package/dist/core/reply/index.js.map +1 -0
  258. package/dist/core/reply/reply.d.ts +102 -0
  259. package/dist/core/reply/reply.d.ts.map +1 -0
  260. package/dist/core/reply/reply.js +105 -0
  261. package/dist/core/reply/reply.js.map +1 -0
  262. package/dist/core/reply/typed.d.ts +161 -0
  263. package/dist/core/reply/typed.d.ts.map +1 -0
  264. package/dist/core/reply/typed.js +154 -0
  265. package/dist/core/reply/typed.js.map +1 -0
  266. package/dist/core/responses/helpers.d.ts +10 -0
  267. package/dist/core/responses/helpers.d.ts.map +1 -0
  268. package/dist/core/responses/helpers.js +8 -0
  269. package/dist/core/responses/helpers.js.map +1 -0
  270. package/dist/core/responses/index.d.ts +4 -0
  271. package/dist/core/responses/index.d.ts.map +1 -0
  272. package/dist/core/responses/index.js +4 -0
  273. package/dist/core/responses/index.js.map +1 -0
  274. package/dist/core/responses/normalize.d.ts +3 -0
  275. package/dist/core/responses/normalize.d.ts.map +1 -0
  276. package/dist/core/responses/normalize.js +33 -0
  277. package/dist/core/responses/normalize.js.map +1 -0
  278. package/dist/core/responses/pickStatus.d.ts +3 -0
  279. package/dist/core/responses/pickStatus.d.ts.map +1 -0
  280. package/dist/core/responses/pickStatus.js +27 -0
  281. package/dist/core/responses/pickStatus.js.map +1 -0
  282. package/dist/core/route/defineRoute.d.ts +74 -0
  283. package/dist/core/route/defineRoute.d.ts.map +1 -0
  284. package/dist/core/route/defineRoute.js +59 -0
  285. package/dist/core/route/defineRoute.js.map +1 -0
  286. package/dist/core/route/index.d.ts +2 -0
  287. package/dist/core/route/index.d.ts.map +1 -0
  288. package/dist/core/route/index.js +2 -0
  289. package/dist/core/route/index.js.map +1 -0
  290. package/dist/core/serialization/json.d.ts +2 -0
  291. package/dist/core/serialization/json.d.ts.map +1 -0
  292. package/dist/core/serialization/json.js +3 -0
  293. package/dist/core/serialization/json.js.map +1 -0
  294. package/dist/core/typing/path-params.d.ts +2 -0
  295. package/dist/core/typing/path-params.d.ts.map +1 -0
  296. package/dist/core/typing/path-params.js +2 -0
  297. package/dist/core/typing/path-params.js.map +1 -0
  298. package/dist/decorators/binding.d.ts +9 -0
  299. package/dist/decorators/binding.d.ts.map +1 -0
  300. package/dist/decorators/binding.js +18 -0
  301. package/dist/decorators/binding.js.map +1 -0
  302. package/dist/decorators/controller.d.ts +6 -0
  303. package/dist/decorators/controller.d.ts.map +1 -0
  304. package/dist/decorators/controller.js +26 -0
  305. package/dist/decorators/controller.js.map +1 -0
  306. package/dist/decorators/db.d.ts +2 -0
  307. package/dist/decorators/db.d.ts.map +1 -0
  308. package/dist/decorators/db.js +3 -0
  309. package/dist/decorators/db.js.map +1 -0
  310. package/dist/decorators/docs.d.ts +8 -0
  311. package/dist/decorators/docs.d.ts.map +1 -0
  312. package/dist/decorators/docs.js +46 -0
  313. package/dist/decorators/docs.js.map +1 -0
  314. package/dist/decorators/index.d.ts +7 -0
  315. package/dist/decorators/index.d.ts.map +1 -0
  316. package/dist/decorators/index.js +7 -0
  317. package/dist/decorators/index.js.map +1 -0
  318. package/dist/decorators/methods.d.ts +146 -0
  319. package/dist/decorators/methods.d.ts.map +1 -0
  320. package/dist/decorators/methods.js +170 -0
  321. package/dist/decorators/methods.js.map +1 -0
  322. package/dist/decorators/middleware.d.ts +2 -0
  323. package/dist/decorators/middleware.d.ts.map +1 -0
  324. package/dist/decorators/middleware.js +3 -0
  325. package/dist/decorators/middleware.js.map +1 -0
  326. package/dist/decorators/responses.d.ts +7 -0
  327. package/dist/decorators/responses.d.ts.map +1 -0
  328. package/dist/decorators/responses.js +44 -0
  329. package/dist/decorators/responses.js.map +1 -0
  330. package/dist/decorators/security.d.ts +8 -0
  331. package/dist/decorators/security.d.ts.map +1 -0
  332. package/dist/decorators/security.js +39 -0
  333. package/dist/decorators/security.js.map +1 -0
  334. package/dist/express.d.ts +2 -0
  335. package/dist/express.d.ts.map +1 -0
  336. package/dist/express.js +2 -0
  337. package/dist/express.js.map +1 -0
  338. package/dist/index.d.ts +13 -0
  339. package/dist/index.d.ts.map +1 -0
  340. package/dist/index.js +13 -2
  341. package/dist/index.js.map +1 -0
  342. package/dist/integrations/metal-orm/index.d.ts +2 -0
  343. package/dist/integrations/metal-orm/index.d.ts.map +1 -0
  344. package/dist/integrations/metal-orm/index.js +2 -0
  345. package/dist/integrations/metal-orm/index.js.map +1 -0
  346. package/dist/integrations/metal-orm/pagination/executePaged.d.ts +2 -0
  347. package/dist/integrations/metal-orm/pagination/executePaged.d.ts.map +1 -0
  348. package/dist/integrations/metal-orm/pagination/executePaged.js +3 -0
  349. package/dist/integrations/metal-orm/pagination/executePaged.js.map +1 -0
  350. package/dist/integrations/metal-orm/pagination/page.d.ts +2 -0
  351. package/dist/integrations/metal-orm/pagination/page.d.ts.map +1 -0
  352. package/dist/integrations/metal-orm/pagination/page.js +3 -0
  353. package/dist/integrations/metal-orm/pagination/page.js.map +1 -0
  354. package/dist/integrations/metal-orm/query/filters.d.ts +2 -0
  355. package/dist/integrations/metal-orm/query/filters.d.ts.map +1 -0
  356. package/dist/integrations/metal-orm/query/filters.js +3 -0
  357. package/dist/integrations/metal-orm/query/filters.js.map +1 -0
  358. package/dist/integrations/metal-orm/query/search.d.ts +2 -0
  359. package/dist/integrations/metal-orm/query/search.d.ts.map +1 -0
  360. package/dist/integrations/metal-orm/query/search.js +3 -0
  361. package/dist/integrations/metal-orm/query/search.js.map +1 -0
  362. package/dist/integrations/metal-orm/query/sort.d.ts +2 -0
  363. package/dist/integrations/metal-orm/query/sort.d.ts.map +1 -0
  364. package/dist/integrations/metal-orm/query/sort.js +3 -0
  365. package/dist/integrations/metal-orm/query/sort.js.map +1 -0
  366. package/dist/integrations/metal-orm/save-graph/helpers.d.ts +2 -0
  367. package/dist/integrations/metal-orm/save-graph/helpers.d.ts.map +1 -0
  368. package/dist/integrations/metal-orm/save-graph/helpers.js +3 -0
  369. package/dist/integrations/metal-orm/save-graph/helpers.js.map +1 -0
  370. package/dist/integrations/metal-orm/save-graph/types.d.ts +2 -0
  371. package/dist/integrations/metal-orm/save-graph/types.d.ts.map +1 -0
  372. package/dist/integrations/metal-orm/save-graph/types.js +3 -0
  373. package/dist/integrations/metal-orm/save-graph/types.js.map +1 -0
  374. package/dist/integrations/metal-orm/schema/column-map.d.ts +96 -0
  375. package/dist/integrations/metal-orm/schema/column-map.d.ts.map +1 -0
  376. package/dist/integrations/metal-orm/schema/column-map.js +207 -0
  377. package/dist/integrations/metal-orm/schema/column-map.js.map +1 -0
  378. package/dist/integrations/metal-orm/schema/ddl.d.ts +2 -0
  379. package/dist/integrations/metal-orm/schema/ddl.d.ts.map +1 -0
  380. package/dist/integrations/metal-orm/schema/ddl.js +3 -0
  381. package/dist/integrations/metal-orm/schema/ddl.js.map +1 -0
  382. package/dist/integrations/metal-orm/schema/dto.d.ts +7 -0
  383. package/dist/integrations/metal-orm/schema/dto.d.ts.map +1 -0
  384. package/dist/integrations/metal-orm/schema/dto.js +34 -0
  385. package/dist/integrations/metal-orm/schema/dto.js.map +1 -0
  386. package/dist/integrations/metal-orm/schema/entity.d.ts +99 -0
  387. package/dist/integrations/metal-orm/schema/entity.d.ts.map +1 -0
  388. package/dist/integrations/metal-orm/schema/entity.js +99 -0
  389. package/dist/integrations/metal-orm/schema/entity.js.map +1 -0
  390. package/dist/integrations/metal-orm/schema/filters.d.ts +11 -0
  391. package/dist/integrations/metal-orm/schema/filters.d.ts.map +1 -0
  392. package/dist/integrations/metal-orm/schema/filters.js +21 -0
  393. package/dist/integrations/metal-orm/schema/filters.js.map +1 -0
  394. package/dist/integrations/metal-orm/schema/index.d.ts +5 -0
  395. package/dist/integrations/metal-orm/schema/index.d.ts.map +1 -0
  396. package/dist/integrations/metal-orm/schema/index.js +5 -0
  397. package/dist/integrations/metal-orm/schema/index.js.map +1 -0
  398. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts +2 -0
  399. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts.map +1 -0
  400. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js +3 -0
  401. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js.map +1 -0
  402. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts +2 -0
  403. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts.map +1 -0
  404. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js +3 -0
  405. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js.map +1 -0
  406. package/dist/integrations/metal-orm/schema/sqlite.d.ts +2 -0
  407. package/dist/integrations/metal-orm/schema/sqlite.d.ts.map +1 -0
  408. package/dist/integrations/metal-orm/schema/sqlite.js +3 -0
  409. package/dist/integrations/metal-orm/schema/sqlite.js.map +1 -0
  410. package/dist/integrations/metal-orm/schema/tabledef.d.ts +4 -0
  411. package/dist/integrations/metal-orm/schema/tabledef.d.ts.map +1 -0
  412. package/dist/integrations/metal-orm/schema/tabledef.js +10 -0
  413. package/dist/integrations/metal-orm/schema/tabledef.js.map +1 -0
  414. package/dist/integrations/metal-orm/schema/types.d.ts +7 -0
  415. package/dist/integrations/metal-orm/schema/types.d.ts.map +1 -0
  416. package/dist/integrations/metal-orm/schema/types.js +2 -0
  417. package/dist/integrations/metal-orm/schema/types.js.map +1 -0
  418. package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts +2 -0
  419. package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts.map +1 -0
  420. package/dist/integrations/metal-orm/serialization/entitySerializer.js +3 -0
  421. package/dist/integrations/metal-orm/serialization/entitySerializer.js.map +1 -0
  422. package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts +2 -0
  423. package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts.map +1 -0
  424. package/dist/integrations/metal-orm/serialization/relationPolicy.js +3 -0
  425. package/dist/integrations/metal-orm/serialization/relationPolicy.js.map +1 -0
  426. package/dist/integrations/metal-orm/session/context.d.ts +2 -0
  427. package/dist/integrations/metal-orm/session/context.d.ts.map +1 -0
  428. package/dist/integrations/metal-orm/session/context.js +3 -0
  429. package/dist/integrations/metal-orm/session/context.js.map +1 -0
  430. package/dist/integrations/metal-orm/session/middleware.d.ts +2 -0
  431. package/dist/integrations/metal-orm/session/middleware.d.ts.map +1 -0
  432. package/dist/integrations/metal-orm/session/middleware.js +3 -0
  433. package/dist/integrations/metal-orm/session/middleware.js.map +1 -0
  434. package/dist/integrations/metal-orm/session/transaction.d.ts +2 -0
  435. package/dist/integrations/metal-orm/session/transaction.d.ts.map +1 -0
  436. package/dist/integrations/metal-orm/session/transaction.js +3 -0
  437. package/dist/integrations/metal-orm/session/transaction.js.map +1 -0
  438. package/dist/integrations/metal-orm/testing/setupSchema.d.ts +2 -0
  439. package/dist/integrations/metal-orm/testing/setupSchema.d.ts.map +1 -0
  440. package/dist/integrations/metal-orm/testing/setupSchema.js +3 -0
  441. package/dist/integrations/metal-orm/testing/setupSchema.js.map +1 -0
  442. package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts +2 -0
  443. package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts.map +1 -0
  444. package/dist/integrations/metal-orm/testing/sqliteMemory.js +3 -0
  445. package/dist/integrations/metal-orm/testing/sqliteMemory.js.map +1 -0
  446. package/dist/metadata/bag.d.ts +18 -0
  447. package/dist/metadata/bag.d.ts.map +1 -0
  448. package/dist/metadata/bag.js +39 -0
  449. package/dist/metadata/bag.js.map +1 -0
  450. package/dist/metadata/index.d.ts +4 -0
  451. package/dist/metadata/index.d.ts.map +1 -0
  452. package/dist/metadata/index.js +4 -0
  453. package/dist/metadata/index.js.map +1 -0
  454. package/dist/metadata/keys.d.ts +254 -0
  455. package/dist/metadata/keys.d.ts.map +1 -0
  456. package/dist/metadata/keys.js +23 -0
  457. package/dist/metadata/keys.js.map +1 -0
  458. package/dist/metadata/merge.d.ts +9 -0
  459. package/dist/metadata/merge.d.ts.map +1 -0
  460. package/dist/metadata/merge.js +30 -0
  461. package/dist/metadata/merge.js.map +1 -0
  462. package/dist/metal-orm.d.ts +2 -0
  463. package/dist/metal-orm.d.ts.map +1 -0
  464. package/dist/metal-orm.js +2 -0
  465. package/dist/metal-orm.js.map +1 -0
  466. package/dist/validation/native/index.d.ts +3 -0
  467. package/dist/validation/native/index.d.ts.map +1 -0
  468. package/dist/validation/native/index.js +3 -0
  469. package/dist/validation/native/index.js.map +1 -0
  470. package/dist/validation/native/ir.d.ts +38 -0
  471. package/dist/validation/native/ir.d.ts.map +1 -0
  472. package/dist/validation/native/ir.js +2 -0
  473. package/dist/validation/native/ir.js.map +1 -0
  474. package/dist/validation/native/schema.d.ts +63 -0
  475. package/dist/validation/native/schema.d.ts.map +1 -0
  476. package/dist/validation/native/schema.js +271 -0
  477. package/dist/validation/native/schema.js.map +1 -0
  478. package/dist/validation/native/validator.d.ts +21 -0
  479. package/dist/validation/native/validator.d.ts.map +1 -0
  480. package/dist/validation/native/validator.js +48 -0
  481. package/dist/validation/native/validator.js.map +1 -0
  482. package/package.json +57 -34
  483. package/dist/cli/generate-routes.js +0 -101
  484. package/dist/cli/generate-swagger.js +0 -197
  485. package/dist/controllers/advanced.controller.js +0 -131
  486. package/dist/controllers/user.controller.js +0 -121
  487. package/dist/entities/user.entity.js +0 -1
  488. package/dist/lib/common.js +0 -62
  489. package/dist/lib/decorators.js +0 -116
  490. package/dist/middleware/auth.middleware.js +0 -13
  491. package/dist/routes.js +0 -80
  492. package/dist/server.js +0 -18
  493. package/dist/src/cli/generate-routes.js +0 -105
  494. package/dist/src/cli/generate-swagger.js +0 -197
  495. package/dist/src/index.js +0 -4
  496. package/dist/src/lib/common.js +0 -62
  497. package/dist/src/lib/decorators.js +0 -116
  498. package/dist/src/routes.js +0 -80
  499. package/dist/src/server.js +0 -18
  500. package/dist/tests/example-app/controllers/advanced.controller.js +0 -130
  501. package/dist/tests/example-app/controllers/controllers/advanced.controller.js +0 -131
  502. package/dist/tests/example-app/controllers/controllers/user.controller.js +0 -121
  503. package/dist/tests/example-app/controllers/user.controller.js +0 -121
  504. package/dist/tests/example-app/entities/entities/user.entity.js +0 -1
  505. package/dist/tests/example-app/entities/user.entity.js +0 -1
  506. package/dist/tests/example-app/middleware/auth.middleware.js +0 -13
  507. package/dist/tests/example-app/middleware/middleware/auth.middleware.js +0 -13
  508. package/dist/tests/example-app/routes.js +0 -80
  509. package/dist/tests/example-app/server.js +0 -23
  510. package/scripts/run-example.js +0 -32
  511. package/src/cli/generate-routes.ts +0 -123
  512. package/src/cli/generate-swagger.ts +0 -216
  513. package/src/index.js +0 -20
  514. package/src/index.ts +0 -4
  515. package/src/lib/common.js +0 -68
  516. package/src/lib/common.ts +0 -35
  517. package/src/lib/decorators.js +0 -128
  518. package/src/lib/decorators.ts +0 -136
  519. package/swagger.json +0 -238
  520. package/tests/e2e.test.ts +0 -72
  521. package/tests/example-app/controllers/advanced.controller.ts +0 -52
  522. package/tests/example-app/controllers/user.controller.ts +0 -35
  523. package/tests/example-app/entities/user.entity.ts +0 -8
  524. package/tests/example-app/middleware/auth.middleware.ts +0 -16
  525. package/tests/example-app/routes.ts +0 -102
  526. package/tests/example-app/server.ts +0 -30
  527. package/tests/generators.test.ts +0 -48
  528. package/tests/utils.ts +0 -46
  529. package/tsconfig.json +0 -20
@@ -0,0 +1,538 @@
1
+ /**
2
+ * Complete OpenAPI 3.0.3 document structure.
3
+ *
4
+ * This type represents the root OpenAPI document that contains
5
+ * all API metadata, paths, operations, and components.
6
+ *
7
+ * @see https://spec.openapis.org/oas/v3.0.3
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const openApiDoc: OpenApiDocument = {
12
+ * openapi: '3.0.3',
13
+ * info: {
14
+ * title: 'My API',
15
+ * version: '1.0.0',
16
+ * description: 'API for user management'
17
+ * },
18
+ * servers: [
19
+ * { url: 'https://api.example.com/v1', description: 'Production server' }
20
+ * ],
21
+ * paths: {
22
+ * '/users': {
23
+ * get: {
24
+ * summary: 'List users',
25
+ * responses: {
26
+ * '200': { description: 'List of users' }
27
+ * }
28
+ * }
29
+ * }
30
+ * },
31
+ * components: {
32
+ * schemas: {
33
+ * User: {
34
+ * type: 'object',
35
+ * properties: {
36
+ * id: { type: 'string', format: 'uuid' },
37
+ * name: { type: 'string' }
38
+ * }
39
+ * }
40
+ * }
41
+ * }
42
+ * };
43
+ * ```
44
+ */
45
+ export type OpenApiDocument = {
46
+ /** OpenAPI specification version */
47
+ openapi: '3.0.3' | (string & {});
48
+ /** API metadata including title, version, and description */
49
+ info: {
50
+ title: string;
51
+ version: string;
52
+ description?: string;
53
+ };
54
+ /** Array of server objects */
55
+ servers?: Array<{
56
+ url: string;
57
+ description?: string;
58
+ }>;
59
+ /** Paths and operations */
60
+ paths: Record<string, PathItemObject>;
61
+ /** Reusable components */
62
+ components?: ComponentsObject;
63
+ };
64
+ /**
65
+ * Reusable components for OpenAPI specification.
66
+ *
67
+ * Contains schemas, security schemes, and other reusable
68
+ * components that can be referenced throughout the document.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const components: ComponentsObject = {
73
+ * schemas: {
74
+ * User: {
75
+ * type: 'object',
76
+ * properties: {
77
+ * id: { type: 'string', format: 'uuid' },
78
+ * name: { type: 'string' }
79
+ * }
80
+ * }
81
+ * },
82
+ * securitySchemes: {
83
+ * bearerAuth: {
84
+ * type: 'http',
85
+ * scheme: 'bearer',
86
+ * bearerFormat: 'JWT'
87
+ * }
88
+ * }
89
+ * };
90
+ * ```
91
+ */
92
+ export type ComponentsObject = {
93
+ /** Reusable schema definitions */
94
+ schemas?: Record<string, SchemaObject>;
95
+ /** Security scheme definitions */
96
+ securitySchemes?: Record<string, SecuritySchemeObject>;
97
+ };
98
+ /**
99
+ * Path item containing HTTP method operations.
100
+ *
101
+ * Maps HTTP methods to their corresponding operation objects
102
+ * for a specific path.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const pathItem: PathItemObject = {
107
+ * get: {
108
+ * summary: 'Get user',
109
+ * responses: { '200': { description: 'User found' } }
110
+ * },
111
+ * post: {
112
+ * summary: 'Create user',
113
+ * responses: { '201': { description: 'User created' } }
114
+ * }
115
+ * };
116
+ * ```
117
+ */
118
+ export type PathItemObject = Partial<Record<HttpMethod, OperationObject>>;
119
+ /**
120
+ * HTTP methods supported by OpenAPI.
121
+ *
122
+ * Standard HTTP methods that can be used in path items.
123
+ */
124
+ export type HttpMethod = 'get' | 'put' | 'post' | 'delete' | 'patch' | 'options' | 'head';
125
+ /**
126
+ * Operation object describing an API endpoint.
127
+ *
128
+ * Contains all information about a single API operation
129
+ * including parameters, request body, responses, and security.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const operation: OperationObject = {
134
+ * operationId: 'getUserById',
135
+ * summary: 'Get user by ID',
136
+ * description: 'Retrieves a user by their unique identifier',
137
+ * tags: ['Users'],
138
+ * deprecated: false,
139
+ * security: [{ bearerAuth: [] }],
140
+ * parameters: [
141
+ * {
142
+ * name: 'id',
143
+ * in: 'path',
144
+ * required: true,
145
+ * schema: { type: 'string', format: 'uuid' }
146
+ * }
147
+ * ],
148
+ * responses: {
149
+ * '200': {
150
+ * description: 'User found',
151
+ * content: {
152
+ * 'application/json': {
153
+ * schema: { $ref: '#/components/schemas/User' }
154
+ * }
155
+ * }
156
+ * },
157
+ * '404': { description: 'User not found' }
158
+ * }
159
+ * };
160
+ * ```
161
+ */
162
+ export type OperationObject = {
163
+ /** Unique identifier for the operation */
164
+ operationId?: string;
165
+ /** Short summary of the operation */
166
+ summary?: string;
167
+ /** Detailed description of the operation */
168
+ description?: string;
169
+ /** Tags for grouping operations */
170
+ tags?: string[];
171
+ /** Whether the operation is deprecated */
172
+ deprecated?: boolean;
173
+ /** Security requirements */
174
+ security?: SecurityRequirementObject[];
175
+ /** Parameters for the operation */
176
+ parameters?: ParameterObject[];
177
+ /** Request body specification */
178
+ requestBody?: RequestBodyObject;
179
+ /** Responses by status code */
180
+ responses: Record<string, ResponseObject>;
181
+ };
182
+ /**
183
+ * Parameter object for operation parameters.
184
+ *
185
+ * Describes a single parameter that can be passed
186
+ * in path, query, header, or cookie.
187
+ *
188
+ * @example
189
+ * ```typescript
190
+ * // Path parameter
191
+ * const pathParam: ParameterObject = {
192
+ * name: 'id',
193
+ * in: 'path',
194
+ * required: true,
195
+ * schema: { type: 'string', format: 'uuid' }
196
+ * };
197
+ *
198
+ * // Query parameter
199
+ * const queryParam: ParameterObject = {
200
+ * name: 'limit',
201
+ * in: 'query',
202
+ * required: false,
203
+ * schema: { type: 'integer', minimum: 1, maximum: 100 }
204
+ * };
205
+ *
206
+ * // Header parameter
207
+ * const headerParam: ParameterObject = {
208
+ * name: 'X-Request-ID',
209
+ * in: 'header',
210
+ * required: false,
211
+ * schema: { type: 'string' }
212
+ * };
213
+ * ```
214
+ */
215
+ export type ParameterObject = {
216
+ /** Parameter name */
217
+ name: string;
218
+ /** Parameter location */
219
+ in: 'path' | 'query' | 'header' | 'cookie';
220
+ /** Whether parameter is required */
221
+ required?: boolean;
222
+ /** Parameter schema or reference */
223
+ schema?: SchemaObject | ReferenceObject;
224
+ };
225
+ /**
226
+ * Request body object for operation input.
227
+ *
228
+ * Describes the request body including content types
229
+ * and schemas for different media types.
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * const requestBody: RequestBodyObject = {
234
+ * required: true,
235
+ * content: {
236
+ * 'application/json': {
237
+ * schema: {
238
+ * type: 'object',
239
+ * properties: {
240
+ * name: { type: 'string' },
241
+ * email: { type: 'string', format: 'email' }
242
+ * },
243
+ * required: ['name', 'email']
244
+ * }
245
+ * },
246
+ * 'application/xml': {
247
+ * schema: { type: 'string' }
248
+ * }
249
+ * }
250
+ * };
251
+ * ```
252
+ */
253
+ export type RequestBodyObject = {
254
+ /** Whether request body is required */
255
+ required?: boolean;
256
+ /** Content by media type */
257
+ content: Record<string, MediaTypeObject>;
258
+ };
259
+ /**
260
+ * Response object for operation outputs.
261
+ *
262
+ * Describes a single response including status code,
263
+ * headers, and content for different media types.
264
+ *
265
+ * @example
266
+ * ```typescript
267
+ * const response: ResponseObject = {
268
+ * description: 'User created successfully',
269
+ * headers: {
270
+ * 'Location': {
271
+ * description: 'URL of the created user',
272
+ * schema: { type: 'string', format: 'uri' }
273
+ * }
274
+ * },
275
+ * content: {
276
+ * 'application/json': {
277
+ * schema: { $ref: '#/components/schemas/User' },
278
+ * example: {
279
+ * id: '550e8400-e29b-41d4-a716-446655440000',
280
+ * name: 'John Doe',
281
+ * email: 'john@example.com'
282
+ * }
283
+ * }
284
+ * }
285
+ * };
286
+ * ```
287
+ */
288
+ export type ResponseObject = {
289
+ /** Response description */
290
+ description: string;
291
+ /** Response headers */
292
+ headers?: Record<string, HeaderObject>;
293
+ /** Response content by media type */
294
+ content?: Record<string, MediaTypeObject>;
295
+ };
296
+ /**
297
+ * Header object for response headers.
298
+ *
299
+ * Describes a single response header including
300
+ * its schema and whether it's required.
301
+ *
302
+ * @example
303
+ * ```typescript
304
+ * const header: HeaderObject = {
305
+ * required: true,
306
+ * description: 'Unique request identifier',
307
+ * schema: { type: 'string', format: 'uuid' }
308
+ * };
309
+ * ```
310
+ */
311
+ export type HeaderObject = {
312
+ /** Whether header is required */
313
+ required?: boolean;
314
+ /** Header description */
315
+ description?: string;
316
+ /** Header schema or reference */
317
+ schema?: SchemaObject | ReferenceObject;
318
+ };
319
+ /**
320
+ * Media type object for request/response content.
321
+ *
322
+ * Describes the structure and examples for
323
+ * a specific media type.
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * const mediaType: MediaTypeObject = {
328
+ * schema: {
329
+ * type: 'object',
330
+ * properties: {
331
+ * id: { type: 'string', format: 'uuid' },
332
+ * name: { type: 'string' }
333
+ * }
334
+ * },
335
+ * example: {
336
+ * id: '550e8400-e29b-41d4-a716-446655440000',
337
+ * name: 'John Doe'
338
+ * }
339
+ * };
340
+ * ```
341
+ */
342
+ export type MediaTypeObject = {
343
+ /** Media type schema or reference */
344
+ schema?: SchemaObject | ReferenceObject;
345
+ /** Example value */
346
+ example?: unknown;
347
+ };
348
+ /**
349
+ * Reference object for reusable components.
350
+ *
351
+ * Allows referencing other parts of the OpenAPI
352
+ * document using JSON references.
353
+ *
354
+ * @example
355
+ * ```typescript
356
+ * // Reference to a schema component
357
+ * const schemaRef: ReferenceObject = {
358
+ * $ref: '#/components/schemas/User'
359
+ * };
360
+ *
361
+ * // Reference to a security scheme
362
+ * const securityRef: ReferenceObject = {
363
+ * $ref: '#/components/securitySchemes/bearerAuth'
364
+ * };
365
+ * ```
366
+ */
367
+ export type ReferenceObject = {
368
+ /** JSON reference to another component */
369
+ $ref: string;
370
+ };
371
+ /**
372
+ * Security requirement object.
373
+ *
374
+ * Specifies which security schemes are required
375
+ * for an operation.
376
+ *
377
+ * @example
378
+ * ```typescript
379
+ * // Bearer token security requirement
380
+ * const securityReq: SecurityRequirementObject = {
381
+ * bearerAuth: []
382
+ * };
383
+ *
384
+ * // Multiple security schemes (OR relationship)
385
+ * const multiSecurityReq: SecurityRequirementObject = {
386
+ * bearerAuth: [],
387
+ * apiKey: []
388
+ * };
389
+ *
390
+ * // Security scheme with scopes (OAuth2)
391
+ * const oauthSecurityReq: SecurityRequirementObject = {
392
+ * oauth2: ['read', 'write']
393
+ * };
394
+ * ```
395
+ */
396
+ export type SecurityRequirementObject = Record<string, string[]>;
397
+ /**
398
+ * Security scheme object.
399
+ *
400
+ * Defines authentication/authorization schemes
401
+ * that can be used by operations.
402
+ *
403
+ * @example
404
+ * ```typescript
405
+ * // Bearer token security scheme
406
+ * const bearerScheme: SecuritySchemeObject = {
407
+ * type: 'http',
408
+ * scheme: 'bearer',
409
+ * bearerFormat: 'JWT',
410
+ * description: 'Bearer token authentication'
411
+ * };
412
+ *
413
+ * // API key security scheme
414
+ * const apiKeyScheme: SecuritySchemeObject = {
415
+ * type: 'apiKey',
416
+ * name: 'X-API-Key',
417
+ * in: 'header',
418
+ * description: 'API key authentication'
419
+ * };
420
+ *
421
+ * // OAuth2 security scheme
422
+ * const oauthScheme: SecuritySchemeObject = {
423
+ * type: 'oauth2',
424
+ * flows: {
425
+ * authorizationCode: {
426
+ * authorizationUrl: 'https://auth.example.com/authorize',
427
+ * tokenUrl: 'https://auth.example.com/token',
428
+ * scopes: {
429
+ * read: 'Read access',
430
+ * write: 'Write access'
431
+ * }
432
+ * }
433
+ * }
434
+ * };
435
+ * ```
436
+ */
437
+ export type SecuritySchemeObject = {
438
+ /** Type of security scheme */
439
+ type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
440
+ /** Description of the security scheme */
441
+ description?: string;
442
+ /** Name of the header, query, or cookie parameter */
443
+ name?: string;
444
+ /** Location of the API key */
445
+ in?: 'query' | 'header' | 'cookie';
446
+ /** HTTP scheme (for type: http) */
447
+ scheme?: string;
448
+ /** Bearer format (for type: http with bearer scheme) */
449
+ bearerFormat?: string;
450
+ /** OAuth2 flows */
451
+ flows?: Record<string, unknown>;
452
+ /** OpenID Connect URL */
453
+ openIdConnectUrl?: string;
454
+ };
455
+ /**
456
+ * Schema object for data structure definition.
457
+ *
458
+ * Defines the structure, validation, and constraints
459
+ * for data used in parameters, request bodies, and responses.
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * // Simple object schema
464
+ * const userSchema: SchemaObject = {
465
+ * type: 'object',
466
+ * properties: {
467
+ * id: { type: 'string', format: 'uuid' },
468
+ * name: { type: 'string', minLength: 3 },
469
+ * email: { type: 'string', format: 'email' },
470
+ * age: { type: 'integer', minimum: 18 }
471
+ * },
472
+ * required: ['name', 'email']
473
+ * };
474
+ *
475
+ * // Array schema
476
+ * const usersArraySchema: SchemaObject = {
477
+ * type: 'array',
478
+ * items: { $ref: '#/components/schemas/User' },
479
+ * minItems: 1,
480
+ * maxItems: 100
481
+ * };
482
+ *
483
+ * // String with validation
484
+ * const usernameSchema: SchemaObject = {
485
+ * type: 'string',
486
+ * minLength: 3,
487
+ * maxLength: 32,
488
+ * pattern: '^[a-zA-Z0-9_]+$'
489
+ * };
490
+ *
491
+ * // Union schema
492
+ * const resultSchema: SchemaObject = {
493
+ * anyOf: [
494
+ * { $ref: '#/components/schemas/User' },
495
+ * { $ref: '#/components/schemas/Error' }
496
+ * ]
497
+ * };
498
+ * ```
499
+ */
500
+ export type SchemaObject = {
501
+ /** Data type */
502
+ type?: 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object';
503
+ /** Format for primitive types */
504
+ format?: string;
505
+ /** Whether value can be null */
506
+ nullable?: boolean;
507
+ /** Minimum length for strings */
508
+ minLength?: number;
509
+ /** Maximum length for strings */
510
+ maxLength?: number;
511
+ /** Regular expression pattern for strings */
512
+ pattern?: string;
513
+ /** Minimum value for numbers */
514
+ minimum?: number;
515
+ /** Maximum value for numbers */
516
+ maximum?: number;
517
+ /** Minimum number of items for arrays */
518
+ minItems?: number;
519
+ /** Maximum number of items for arrays */
520
+ maxItems?: number;
521
+ /** Object properties */
522
+ properties?: Record<string, SchemaObject | ReferenceObject>;
523
+ /** Required properties */
524
+ required?: string[];
525
+ /** Additional properties policy */
526
+ additionalProperties?: boolean | SchemaObject | ReferenceObject;
527
+ /** Array items schema */
528
+ items?: SchemaObject | ReferenceObject;
529
+ /** Enum values */
530
+ enum?: Array<string | number | boolean | null>;
531
+ /** Any of the schemas (logical OR) */
532
+ anyOf?: Array<SchemaObject | ReferenceObject>;
533
+ /** One of the schemas (exclusive OR) */
534
+ oneOf?: Array<SchemaObject | ReferenceObject>;
535
+ /** All of the schemas (logical AND) */
536
+ allOf?: Array<SchemaObject | ReferenceObject>;
537
+ };
538
+ //# sourceMappingURL=openapi-v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-v3.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi-v3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=openapi-v3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-v3.js","sourceRoot":"","sources":["../../src/contracts/openapi-v3.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './openapi-v3.js';
2
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/contracts/openapi.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './openapi-v3.js';
2
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/contracts/openapi.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Valid types for HTTP response headers.
3
+ */
4
+ export type ReplyHeaderValue = string | number | boolean;
5
+ /**
6
+ * Collection of HTTP response headers.
7
+ *
8
+ * Key-value pairs where keys are header names and values are
9
+ * header values of valid types.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const headers: ReplyHeaders = {
14
+ * 'Content-Type': 'application/json',
15
+ * 'Cache-Control': 'no-cache',
16
+ * 'X-Request-ID': 'abc-123-def'
17
+ * };
18
+ * ```
19
+ */
20
+ export type ReplyHeaders = Record<string, ReplyHeaderValue>;
21
+ /**
22
+ * Typed HTTP response object used by Adorn API.
23
+ *
24
+ * This type represents a complete HTTP response with status code,
25
+ * body, headers, and content type. It's used throughout the framework
26
+ * to return responses from controllers and handlers.
27
+ *
28
+ * @template TBody - Type of the response body
29
+ * @template TStatus - HTTP status code (must be a number literal)
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * // Simple JSON response
34
+ * const successResponse: Reply<User, 200> = {
35
+ * __adornReply: true,
36
+ * status: 200,
37
+ * body: { id: '123', name: 'John Doe' },
38
+ * headers: { 'Content-Type': 'application/json' }
39
+ * };
40
+ * ```
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * // Error response
45
+ * const errorResponse: Reply<ErrorDetails, 404> = {
46
+ * __adornReply: true,
47
+ * status: 404,
48
+ * body: { error: 'Not Found', code: 'USER_NOT_FOUND' },
49
+ * headers: { 'Content-Type': 'application/json' }
50
+ * };
51
+ * ```
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * // Response with custom headers
56
+ * const responseWithHeaders: Reply<string, 201> = {
57
+ * __adornReply: true,
58
+ * status: 201,
59
+ * body: 'Resource created',
60
+ * headers: {
61
+ * 'Location': '/resources/123',
62
+ * 'X-Resource-ID': '123'
63
+ * },
64
+ * contentType: 'text/plain'
65
+ * };
66
+ * ```
67
+ *
68
+ * @see isReply for type guard function
69
+ */
70
+ export type Reply<TBody = unknown, TStatus extends number = number> = {
71
+ /** Brand property to identify Adorn reply objects */
72
+ readonly __adornReply: true;
73
+ /** HTTP status code */
74
+ readonly status: TStatus;
75
+ /** Response body */
76
+ readonly body?: TBody;
77
+ /** Response headers */
78
+ readonly headers?: ReplyHeaders;
79
+ /** Content type header (convenience property) */
80
+ readonly contentType?: string;
81
+ };
82
+ /**
83
+ * Type guard function to check if an object is an Adorn Reply.
84
+ *
85
+ * This function is used to safely check if an object conforms to
86
+ * the Reply type structure.
87
+ *
88
+ * @param x - Object to check
89
+ * @returns true if the object is a Reply, false otherwise
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * function handleResponse(response: unknown) {
94
+ * if (isReply(response)) {
95
+ * // TypeScript now knows response is a Reply
96
+ * console.log('Status:', response.status);
97
+ * console.log('Body:', response.body);
98
+ * } else {
99
+ * console.log('Not a reply object');
100
+ * }
101
+ * }
102
+ * ```
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * // In middleware or error handling
107
+ * if (isReply(error)) {
108
+ * // It's a reply object, can be sent directly to client
109
+ * res.status(error.status).json(error.body);
110
+ * } else {
111
+ * // Handle non-reply errors
112
+ * res.status(500).json({ error: 'Internal Server Error' });
113
+ * }
114
+ * ```
115
+ *
116
+ * @see Reply for the reply object type
117
+ */
118
+ export declare function isReply(x: unknown): x is Reply<unknown, number>;
119
+ //# sourceMappingURL=reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../src/contracts/reply.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI;IACpE,qDAAqD;IACrD,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;IAC5B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAI/D"}