adorn-api 1.0.4 → 1.0.5

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 (573) hide show
  1. package/README.md +766 -51
  2. package/dist/adapter/express/bootstrap.d.ts +24 -0
  3. package/dist/adapter/express/bootstrap.d.ts.map +1 -0
  4. package/dist/adapter/express/index.d.ts +41 -0
  5. package/dist/adapter/express/index.d.ts.map +1 -0
  6. package/dist/adapter/express/merge.d.ts +28 -0
  7. package/dist/adapter/express/merge.d.ts.map +1 -0
  8. package/dist/cli.cjs +1571 -0
  9. package/dist/cli.cjs.map +1 -0
  10. package/dist/cli.d.ts +1 -0
  11. package/dist/cli.js +1552 -2
  12. package/dist/cli.js.map +1 -1
  13. package/dist/compiler/analyze/scanControllers.d.ts +35 -0
  14. package/dist/compiler/analyze/scanControllers.d.ts.map +1 -0
  15. package/dist/compiler/cache/isStale.d.ts +20 -0
  16. package/dist/compiler/cache/isStale.d.ts.map +1 -0
  17. package/dist/compiler/cache/loadArtifacts.d.ts +113 -0
  18. package/dist/compiler/cache/loadArtifacts.d.ts.map +1 -0
  19. package/dist/compiler/cache/schema.d.ts +18 -0
  20. package/dist/compiler/cache/schema.d.ts.map +1 -0
  21. package/dist/compiler/cache/writeCache.d.ts +8 -0
  22. package/dist/compiler/cache/writeCache.d.ts.map +1 -0
  23. package/dist/compiler/manifest/emit.d.ts +7 -0
  24. package/dist/compiler/manifest/emit.d.ts.map +1 -0
  25. package/dist/compiler/manifest/format.d.ts +76 -0
  26. package/dist/compiler/manifest/format.d.ts.map +1 -0
  27. package/dist/compiler/runner/createProgram.d.ts +8 -0
  28. package/dist/compiler/runner/createProgram.d.ts.map +1 -0
  29. package/dist/compiler/schema/extractAnnotations.d.ts +10 -0
  30. package/dist/compiler/schema/extractAnnotations.d.ts.map +1 -0
  31. package/dist/compiler/schema/openapi.d.ts +19 -0
  32. package/dist/compiler/schema/openapi.d.ts.map +1 -0
  33. package/dist/compiler/schema/typeToJsonSchema.d.ts +49 -0
  34. package/dist/compiler/schema/typeToJsonSchema.d.ts.map +1 -0
  35. package/dist/compiler/validation/emitPrecompiledValidators.d.ts +46 -0
  36. package/dist/compiler/validation/emitPrecompiledValidators.d.ts.map +1 -0
  37. package/dist/decorators/Auth.d.ts +5 -0
  38. package/dist/decorators/Auth.d.ts.map +1 -0
  39. package/dist/decorators/Controller.d.ts +2 -0
  40. package/dist/decorators/Controller.d.ts.map +1 -0
  41. package/dist/decorators/Public.d.ts +2 -0
  42. package/dist/decorators/Public.d.ts.map +1 -0
  43. package/dist/decorators/Use.d.ts +5 -0
  44. package/dist/decorators/Use.d.ts.map +1 -0
  45. package/dist/decorators/index.d.ts +5 -6
  46. package/dist/decorators/index.d.ts.map +1 -1
  47. package/dist/decorators/methods.d.ts +5 -145
  48. package/dist/decorators/methods.d.ts.map +1 -1
  49. package/dist/express.cjs +775 -0
  50. package/dist/express.cjs.map +1 -0
  51. package/dist/express.d.ts +6 -1
  52. package/dist/express.d.ts.map +1 -1
  53. package/dist/express.js +738 -1
  54. package/dist/express.js.map +1 -1
  55. package/dist/http.d.ts +29 -0
  56. package/dist/http.d.ts.map +1 -0
  57. package/dist/index.cjs +573 -0
  58. package/dist/index.cjs.map +1 -0
  59. package/dist/index.d.ts +12 -14
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +490 -26
  62. package/dist/index.js.map +1 -1
  63. package/dist/metal/index.cjs +219 -0
  64. package/dist/metal/index.cjs.map +1 -0
  65. package/dist/metal/index.d.ts +6 -0
  66. package/dist/metal/index.d.ts.map +1 -0
  67. package/dist/metal/index.js +188 -0
  68. package/dist/metal/index.js.map +1 -0
  69. package/dist/metal/readMetalBag.d.ts +33 -0
  70. package/dist/metal/readMetalBag.d.ts.map +1 -0
  71. package/dist/metal/registerMetalEntities.d.ts +6 -0
  72. package/dist/metal/registerMetalEntities.d.ts.map +1 -0
  73. package/dist/metal/schemaFromEntity.d.ts +11 -0
  74. package/dist/metal/schemaFromEntity.d.ts.map +1 -0
  75. package/dist/metal/symbolMetadata.d.ts +2 -0
  76. package/dist/metal/symbolMetadata.d.ts.map +1 -0
  77. package/dist/runtime/auth/runtime.d.ts +34 -0
  78. package/dist/runtime/auth/runtime.d.ts.map +1 -0
  79. package/dist/runtime/metadata/bucket.d.ts +3 -0
  80. package/dist/runtime/metadata/bucket.d.ts.map +1 -0
  81. package/dist/runtime/metadata/key.d.ts +2 -0
  82. package/dist/runtime/metadata/key.d.ts.map +1 -0
  83. package/dist/runtime/metadata/read.d.ts +3 -0
  84. package/dist/runtime/metadata/read.d.ts.map +1 -0
  85. package/dist/runtime/metadata/types.d.ts +21 -0
  86. package/dist/runtime/metadata/types.d.ts.map +1 -0
  87. package/dist/runtime/polyfill.d.ts +2 -0
  88. package/dist/runtime/polyfill.d.ts.map +1 -0
  89. package/dist/runtime/upload.d.ts +7 -0
  90. package/dist/runtime/upload.d.ts.map +1 -0
  91. package/dist/runtime/validation/ajv.d.ts +20 -0
  92. package/dist/runtime/validation/ajv.d.ts.map +1 -0
  93. package/dist/runtime/validation/index.d.ts +2 -0
  94. package/dist/runtime/validation/index.d.ts.map +1 -0
  95. package/dist/schema/decorators.d.ts +37 -0
  96. package/dist/schema/decorators.d.ts.map +1 -0
  97. package/dist/schema/index.cjs +214 -0
  98. package/dist/schema/index.cjs.map +1 -0
  99. package/dist/schema/index.d.ts +2 -0
  100. package/dist/schema/index.d.ts.map +1 -0
  101. package/dist/schema/index.js +163 -0
  102. package/dist/schema/index.js.map +1 -0
  103. package/dist/scripts/adorn-example.cjs +148 -0
  104. package/dist/scripts/adorn-example.cjs.map +1 -0
  105. package/dist/utils/operationId.d.ts +2 -0
  106. package/dist/utils/operationId.d.ts.map +1 -0
  107. package/dist/utils/path.d.ts +2 -0
  108. package/dist/utils/path.d.ts.map +1 -0
  109. package/package.json +92 -57
  110. package/dist/adapters/express/createApp.d.ts +0 -158
  111. package/dist/adapters/express/createApp.d.ts.map +0 -1
  112. package/dist/adapters/express/createApp.js +0 -141
  113. package/dist/adapters/express/createApp.js.map +0 -1
  114. package/dist/adapters/express/index.d.ts +0 -7
  115. package/dist/adapters/express/index.d.ts.map +0 -1
  116. package/dist/adapters/express/index.js +0 -7
  117. package/dist/adapters/express/index.js.map +0 -1
  118. package/dist/adapters/express/middleware/errorHandler.d.ts +0 -194
  119. package/dist/adapters/express/middleware/errorHandler.d.ts.map +0 -1
  120. package/dist/adapters/express/middleware/errorHandler.js +0 -167
  121. package/dist/adapters/express/middleware/errorHandler.js.map +0 -1
  122. package/dist/adapters/express/middleware/requestContext.d.ts +0 -2
  123. package/dist/adapters/express/middleware/requestContext.d.ts.map +0 -1
  124. package/dist/adapters/express/middleware/requestContext.js +0 -3
  125. package/dist/adapters/express/middleware/requestContext.js.map +0 -1
  126. package/dist/adapters/express/router.d.ts +0 -10
  127. package/dist/adapters/express/router.d.ts.map +0 -1
  128. package/dist/adapters/express/router.js +0 -105
  129. package/dist/adapters/express/router.js.map +0 -1
  130. package/dist/adapters/express/swagger/index.d.ts +0 -2
  131. package/dist/adapters/express/swagger/index.d.ts.map +0 -1
  132. package/dist/adapters/express/swagger/index.js +0 -2
  133. package/dist/adapters/express/swagger/index.js.map +0 -1
  134. package/dist/adapters/express/swagger/serve.d.ts +0 -12
  135. package/dist/adapters/express/swagger/serve.d.ts.map +0 -1
  136. package/dist/adapters/express/swagger/serve.js +0 -72
  137. package/dist/adapters/express/swagger/serve.js.map +0 -1
  138. package/dist/adapters/express/transport/request.d.ts +0 -4
  139. package/dist/adapters/express/transport/request.d.ts.map +0 -1
  140. package/dist/adapters/express/transport/request.js +0 -12
  141. package/dist/adapters/express/transport/request.js.map +0 -1
  142. package/dist/adapters/express/transport/response.d.ts +0 -5
  143. package/dist/adapters/express/transport/response.d.ts.map +0 -1
  144. package/dist/adapters/express/transport/response.js +0 -36
  145. package/dist/adapters/express/transport/response.js.map +0 -1
  146. package/dist/cli/commands/dev.d.ts +0 -2
  147. package/dist/cli/commands/dev.d.ts.map +0 -1
  148. package/dist/cli/commands/dev.js +0 -3
  149. package/dist/cli/commands/dev.js.map +0 -1
  150. package/dist/cli/commands/gen.d.ts +0 -2
  151. package/dist/cli/commands/gen.d.ts.map +0 -1
  152. package/dist/cli/commands/gen.js +0 -3
  153. package/dist/cli/commands/gen.js.map +0 -1
  154. package/dist/cli/main.d.ts +0 -2
  155. package/dist/cli/main.d.ts.map +0 -1
  156. package/dist/cli/main.js +0 -3
  157. package/dist/cli/main.js.map +0 -1
  158. package/dist/compiler/config/defaults.d.ts +0 -2
  159. package/dist/compiler/config/defaults.d.ts.map +0 -1
  160. package/dist/compiler/config/defaults.js +0 -3
  161. package/dist/compiler/config/defaults.js.map +0 -1
  162. package/dist/compiler/config/loadConfig.d.ts +0 -2
  163. package/dist/compiler/config/loadConfig.d.ts.map +0 -1
  164. package/dist/compiler/config/loadConfig.js +0 -3
  165. package/dist/compiler/config/loadConfig.js.map +0 -1
  166. package/dist/compiler/diagnostics/errors.d.ts +0 -2
  167. package/dist/compiler/diagnostics/errors.d.ts.map +0 -1
  168. package/dist/compiler/diagnostics/errors.js +0 -3
  169. package/dist/compiler/diagnostics/errors.js.map +0 -1
  170. package/dist/compiler/emit/openapi.d.ts +0 -2
  171. package/dist/compiler/emit/openapi.d.ts.map +0 -1
  172. package/dist/compiler/emit/openapi.js +0 -3
  173. package/dist/compiler/emit/openapi.js.map +0 -1
  174. package/dist/compiler/emit/routes.d.ts +0 -2
  175. package/dist/compiler/emit/routes.d.ts.map +0 -1
  176. package/dist/compiler/emit/routes.js +0 -3
  177. package/dist/compiler/emit/routes.js.map +0 -1
  178. package/dist/compiler/program/loadTsProgram.d.ts +0 -2
  179. package/dist/compiler/program/loadTsProgram.d.ts.map +0 -1
  180. package/dist/compiler/program/loadTsProgram.js +0 -3
  181. package/dist/compiler/program/loadTsProgram.js.map +0 -1
  182. package/dist/compiler/scan/actions.d.ts +0 -2
  183. package/dist/compiler/scan/actions.d.ts.map +0 -1
  184. package/dist/compiler/scan/actions.js +0 -3
  185. package/dist/compiler/scan/actions.js.map +0 -1
  186. package/dist/compiler/scan/controllers.d.ts +0 -2
  187. package/dist/compiler/scan/controllers.d.ts.map +0 -1
  188. package/dist/compiler/scan/controllers.js +0 -3
  189. package/dist/compiler/scan/controllers.js.map +0 -1
  190. package/dist/compiler/scan/types.d.ts +0 -2
  191. package/dist/compiler/scan/types.d.ts.map +0 -1
  192. package/dist/compiler/scan/types.js +0 -3
  193. package/dist/compiler/scan/types.js.map +0 -1
  194. package/dist/contracts/context.d.ts +0 -10
  195. package/dist/contracts/context.d.ts.map +0 -1
  196. package/dist/contracts/context.js +0 -2
  197. package/dist/contracts/context.js.map +0 -1
  198. package/dist/contracts/errors.d.ts +0 -22
  199. package/dist/contracts/errors.d.ts.map +0 -1
  200. package/dist/contracts/errors.js +0 -2
  201. package/dist/contracts/errors.js.map +0 -1
  202. package/dist/contracts/http.d.ts +0 -2
  203. package/dist/contracts/http.d.ts.map +0 -1
  204. package/dist/contracts/http.js +0 -3
  205. package/dist/contracts/http.js.map +0 -1
  206. package/dist/contracts/middleware.d.ts +0 -2
  207. package/dist/contracts/middleware.d.ts.map +0 -1
  208. package/dist/contracts/middleware.js +0 -3
  209. package/dist/contracts/middleware.js.map +0 -1
  210. package/dist/contracts/openapi-v3.d.ts +0 -538
  211. package/dist/contracts/openapi-v3.d.ts.map +0 -1
  212. package/dist/contracts/openapi-v3.js +0 -2
  213. package/dist/contracts/openapi-v3.js.map +0 -1
  214. package/dist/contracts/openapi.d.ts +0 -2
  215. package/dist/contracts/openapi.d.ts.map +0 -1
  216. package/dist/contracts/openapi.js +0 -2
  217. package/dist/contracts/openapi.js.map +0 -1
  218. package/dist/contracts/reply.d.ts +0 -119
  219. package/dist/contracts/reply.d.ts.map +0 -1
  220. package/dist/contracts/reply.js +0 -43
  221. package/dist/contracts/reply.js.map +0 -1
  222. package/dist/contracts/response-types.d.ts +0 -40
  223. package/dist/contracts/response-types.d.ts.map +0 -1
  224. package/dist/contracts/response-types.js +0 -2
  225. package/dist/contracts/response-types.js.map +0 -1
  226. package/dist/contracts/responses.d.ts +0 -98
  227. package/dist/contracts/responses.d.ts.map +0 -1
  228. package/dist/contracts/responses.js +0 -2
  229. package/dist/contracts/responses.js.map +0 -1
  230. package/dist/contracts/route-options.d.ts +0 -155
  231. package/dist/contracts/route-options.d.ts.map +0 -1
  232. package/dist/contracts/route-options.js +0 -2
  233. package/dist/contracts/route-options.js.map +0 -1
  234. package/dist/contracts/route-typing.d.ts +0 -25
  235. package/dist/contracts/route-typing.d.ts.map +0 -1
  236. package/dist/contracts/route-typing.js +0 -2
  237. package/dist/contracts/route-typing.js.map +0 -1
  238. package/dist/contracts/validator.d.ts +0 -146
  239. package/dist/contracts/validator.d.ts.map +0 -1
  240. package/dist/contracts/validator.js +0 -2
  241. package/dist/contracts/validator.js.map +0 -1
  242. package/dist/core/binding/binder.d.ts +0 -74
  243. package/dist/core/binding/binder.d.ts.map +0 -1
  244. package/dist/core/binding/binder.js +0 -161
  245. package/dist/core/binding/binder.js.map +0 -1
  246. package/dist/core/binding/coerce/arrays.d.ts +0 -7
  247. package/dist/core/binding/coerce/arrays.d.ts.map +0 -1
  248. package/dist/core/binding/coerce/arrays.js +0 -28
  249. package/dist/core/binding/coerce/arrays.js.map +0 -1
  250. package/dist/core/binding/coerce/csv.d.ts +0 -2
  251. package/dist/core/binding/coerce/csv.d.ts.map +0 -1
  252. package/dist/core/binding/coerce/csv.js +0 -7
  253. package/dist/core/binding/coerce/csv.js.map +0 -1
  254. package/dist/core/binding/coerce/objects.d.ts +0 -2
  255. package/dist/core/binding/coerce/objects.d.ts.map +0 -1
  256. package/dist/core/binding/coerce/objects.js +0 -3
  257. package/dist/core/binding/coerce/objects.js.map +0 -1
  258. package/dist/core/binding/coerce/primitives.d.ts +0 -70
  259. package/dist/core/binding/coerce/primitives.d.ts.map +0 -1
  260. package/dist/core/binding/coerce/primitives.js +0 -88
  261. package/dist/core/binding/coerce/primitives.js.map +0 -1
  262. package/dist/core/binding/index.d.ts +0 -2
  263. package/dist/core/binding/index.d.ts.map +0 -1
  264. package/dist/core/binding/index.js +0 -2
  265. package/dist/core/binding/index.js.map +0 -1
  266. package/dist/core/binding/rules/inferFromHttpMethod.d.ts +0 -6
  267. package/dist/core/binding/rules/inferFromHttpMethod.d.ts.map +0 -1
  268. package/dist/core/binding/rules/inferFromHttpMethod.js +0 -11
  269. package/dist/core/binding/rules/inferFromHttpMethod.js.map +0 -1
  270. package/dist/core/binding/rules/inferFromPath.d.ts +0 -2
  271. package/dist/core/binding/rules/inferFromPath.d.ts.map +0 -1
  272. package/dist/core/binding/rules/inferFromPath.js +0 -9
  273. package/dist/core/binding/rules/inferFromPath.js.map +0 -1
  274. package/dist/core/binding/rules/wrappers.d.ts +0 -2
  275. package/dist/core/binding/rules/wrappers.d.ts.map +0 -1
  276. package/dist/core/binding/rules/wrappers.js +0 -3
  277. package/dist/core/binding/rules/wrappers.js.map +0 -1
  278. package/dist/core/errors/http-error.d.ts +0 -63
  279. package/dist/core/errors/http-error.d.ts.map +0 -1
  280. package/dist/core/errors/http-error.js +0 -71
  281. package/dist/core/errors/http-error.js.map +0 -1
  282. package/dist/core/errors/index.d.ts +0 -4
  283. package/dist/core/errors/index.d.ts.map +0 -1
  284. package/dist/core/errors/index.js +0 -4
  285. package/dist/core/errors/index.js.map +0 -1
  286. package/dist/core/errors/problem.d.ts +0 -3
  287. package/dist/core/errors/problem.d.ts.map +0 -1
  288. package/dist/core/errors/problem.js +0 -33
  289. package/dist/core/errors/problem.js.map +0 -1
  290. package/dist/core/errors/validation-error.d.ts +0 -73
  291. package/dist/core/errors/validation-error.d.ts.map +0 -1
  292. package/dist/core/errors/validation-error.js +0 -82
  293. package/dist/core/errors/validation-error.js.map +0 -1
  294. package/dist/core/openapi/buildOpenApi.d.ts +0 -79
  295. package/dist/core/openapi/buildOpenApi.d.ts.map +0 -1
  296. package/dist/core/openapi/buildOpenApi.js +0 -196
  297. package/dist/core/openapi/buildOpenApi.js.map +0 -1
  298. package/dist/core/openapi/index.d.ts +0 -2
  299. package/dist/core/openapi/index.d.ts.map +0 -1
  300. package/dist/core/openapi/index.js +0 -2
  301. package/dist/core/openapi/index.js.map +0 -1
  302. package/dist/core/openapi/schema/formats.d.ts +0 -2
  303. package/dist/core/openapi/schema/formats.d.ts.map +0 -1
  304. package/dist/core/openapi/schema/formats.js +0 -3
  305. package/dist/core/openapi/schema/formats.js.map +0 -1
  306. package/dist/core/openapi/schema/registry.d.ts +0 -9
  307. package/dist/core/openapi/schema/registry.d.ts.map +0 -1
  308. package/dist/core/openapi/schema/registry.js +0 -21
  309. package/dist/core/openapi/schema/registry.js.map +0 -1
  310. package/dist/core/openapi/schema/schemaModel.d.ts +0 -2
  311. package/dist/core/openapi/schema/schemaModel.d.ts.map +0 -1
  312. package/dist/core/openapi/schema/schemaModel.js +0 -3
  313. package/dist/core/openapi/schema/schemaModel.js.map +0 -1
  314. package/dist/core/openapi/schema/schemaRegistry.d.ts +0 -2
  315. package/dist/core/openapi/schema/schemaRegistry.d.ts.map +0 -1
  316. package/dist/core/openapi/schema/schemaRegistry.js +0 -3
  317. package/dist/core/openapi/schema/schemaRegistry.js.map +0 -1
  318. package/dist/core/openapi/schema/toOpenApi.d.ts +0 -4
  319. package/dist/core/openapi/schema/toOpenApi.d.ts.map +0 -1
  320. package/dist/core/openapi/schema/toOpenApi.js +0 -82
  321. package/dist/core/openapi/schema/toOpenApi.js.map +0 -1
  322. package/dist/core/pipeline/compose.d.ts +0 -2
  323. package/dist/core/pipeline/compose.d.ts.map +0 -1
  324. package/dist/core/pipeline/compose.js +0 -3
  325. package/dist/core/pipeline/compose.js.map +0 -1
  326. package/dist/core/pipeline/errorMap.d.ts +0 -2
  327. package/dist/core/pipeline/errorMap.d.ts.map +0 -1
  328. package/dist/core/pipeline/errorMap.js +0 -3
  329. package/dist/core/pipeline/errorMap.js.map +0 -1
  330. package/dist/core/pipeline/invoke.d.ts +0 -2
  331. package/dist/core/pipeline/invoke.d.ts.map +0 -1
  332. package/dist/core/pipeline/invoke.js +0 -3
  333. package/dist/core/pipeline/invoke.js.map +0 -1
  334. package/dist/core/pipeline/result.d.ts +0 -2
  335. package/dist/core/pipeline/result.d.ts.map +0 -1
  336. package/dist/core/pipeline/result.js +0 -3
  337. package/dist/core/pipeline/result.js.map +0 -1
  338. package/dist/core/registry/buildRegistry.d.ts +0 -3
  339. package/dist/core/registry/buildRegistry.d.ts.map +0 -1
  340. package/dist/core/registry/buildRegistry.js +0 -105
  341. package/dist/core/registry/buildRegistry.js.map +0 -1
  342. package/dist/core/registry/conflicts.d.ts +0 -6
  343. package/dist/core/registry/conflicts.d.ts.map +0 -1
  344. package/dist/core/registry/conflicts.js +0 -21
  345. package/dist/core/registry/conflicts.js.map +0 -1
  346. package/dist/core/registry/index.d.ts +0 -5
  347. package/dist/core/registry/index.d.ts.map +0 -1
  348. package/dist/core/registry/index.js +0 -5
  349. package/dist/core/registry/index.js.map +0 -1
  350. package/dist/core/registry/normalize.d.ts +0 -3
  351. package/dist/core/registry/normalize.d.ts.map +0 -1
  352. package/dist/core/registry/normalize.js +0 -24
  353. package/dist/core/registry/normalize.js.map +0 -1
  354. package/dist/core/registry/types.d.ts +0 -225
  355. package/dist/core/registry/types.d.ts.map +0 -1
  356. package/dist/core/registry/types.js +0 -2
  357. package/dist/core/registry/types.js.map +0 -1
  358. package/dist/core/reply/index.d.ts +0 -3
  359. package/dist/core/reply/index.d.ts.map +0 -1
  360. package/dist/core/reply/index.js +0 -3
  361. package/dist/core/reply/index.js.map +0 -1
  362. package/dist/core/reply/reply.d.ts +0 -102
  363. package/dist/core/reply/reply.d.ts.map +0 -1
  364. package/dist/core/reply/reply.js +0 -105
  365. package/dist/core/reply/reply.js.map +0 -1
  366. package/dist/core/reply/typed.d.ts +0 -161
  367. package/dist/core/reply/typed.d.ts.map +0 -1
  368. package/dist/core/reply/typed.js +0 -154
  369. package/dist/core/reply/typed.js.map +0 -1
  370. package/dist/core/responses/helpers.d.ts +0 -10
  371. package/dist/core/responses/helpers.d.ts.map +0 -1
  372. package/dist/core/responses/helpers.js +0 -8
  373. package/dist/core/responses/helpers.js.map +0 -1
  374. package/dist/core/responses/index.d.ts +0 -4
  375. package/dist/core/responses/index.d.ts.map +0 -1
  376. package/dist/core/responses/index.js +0 -4
  377. package/dist/core/responses/index.js.map +0 -1
  378. package/dist/core/responses/normalize.d.ts +0 -3
  379. package/dist/core/responses/normalize.d.ts.map +0 -1
  380. package/dist/core/responses/normalize.js +0 -33
  381. package/dist/core/responses/normalize.js.map +0 -1
  382. package/dist/core/responses/pickStatus.d.ts +0 -3
  383. package/dist/core/responses/pickStatus.d.ts.map +0 -1
  384. package/dist/core/responses/pickStatus.js +0 -27
  385. package/dist/core/responses/pickStatus.js.map +0 -1
  386. package/dist/core/route/defineRoute.d.ts +0 -74
  387. package/dist/core/route/defineRoute.d.ts.map +0 -1
  388. package/dist/core/route/defineRoute.js +0 -59
  389. package/dist/core/route/defineRoute.js.map +0 -1
  390. package/dist/core/route/index.d.ts +0 -2
  391. package/dist/core/route/index.d.ts.map +0 -1
  392. package/dist/core/route/index.js +0 -2
  393. package/dist/core/route/index.js.map +0 -1
  394. package/dist/core/serialization/json.d.ts +0 -2
  395. package/dist/core/serialization/json.d.ts.map +0 -1
  396. package/dist/core/serialization/json.js +0 -3
  397. package/dist/core/serialization/json.js.map +0 -1
  398. package/dist/core/typing/path-params.d.ts +0 -2
  399. package/dist/core/typing/path-params.d.ts.map +0 -1
  400. package/dist/core/typing/path-params.js +0 -2
  401. package/dist/core/typing/path-params.js.map +0 -1
  402. package/dist/decorators/binding.d.ts +0 -9
  403. package/dist/decorators/binding.d.ts.map +0 -1
  404. package/dist/decorators/binding.js +0 -18
  405. package/dist/decorators/binding.js.map +0 -1
  406. package/dist/decorators/controller.d.ts +0 -6
  407. package/dist/decorators/controller.d.ts.map +0 -1
  408. package/dist/decorators/controller.js +0 -26
  409. package/dist/decorators/controller.js.map +0 -1
  410. package/dist/decorators/db.d.ts +0 -2
  411. package/dist/decorators/db.d.ts.map +0 -1
  412. package/dist/decorators/db.js +0 -3
  413. package/dist/decorators/db.js.map +0 -1
  414. package/dist/decorators/docs.d.ts +0 -8
  415. package/dist/decorators/docs.d.ts.map +0 -1
  416. package/dist/decorators/docs.js +0 -46
  417. package/dist/decorators/docs.js.map +0 -1
  418. package/dist/decorators/index.js +0 -7
  419. package/dist/decorators/index.js.map +0 -1
  420. package/dist/decorators/methods.js +0 -170
  421. package/dist/decorators/methods.js.map +0 -1
  422. package/dist/decorators/middleware.d.ts +0 -2
  423. package/dist/decorators/middleware.d.ts.map +0 -1
  424. package/dist/decorators/middleware.js +0 -3
  425. package/dist/decorators/middleware.js.map +0 -1
  426. package/dist/decorators/responses.d.ts +0 -7
  427. package/dist/decorators/responses.d.ts.map +0 -1
  428. package/dist/decorators/responses.js +0 -44
  429. package/dist/decorators/responses.js.map +0 -1
  430. package/dist/decorators/security.d.ts +0 -8
  431. package/dist/decorators/security.d.ts.map +0 -1
  432. package/dist/decorators/security.js +0 -39
  433. package/dist/decorators/security.js.map +0 -1
  434. package/dist/integrations/metal-orm/index.d.ts +0 -2
  435. package/dist/integrations/metal-orm/index.d.ts.map +0 -1
  436. package/dist/integrations/metal-orm/index.js +0 -2
  437. package/dist/integrations/metal-orm/index.js.map +0 -1
  438. package/dist/integrations/metal-orm/pagination/executePaged.d.ts +0 -2
  439. package/dist/integrations/metal-orm/pagination/executePaged.d.ts.map +0 -1
  440. package/dist/integrations/metal-orm/pagination/executePaged.js +0 -3
  441. package/dist/integrations/metal-orm/pagination/executePaged.js.map +0 -1
  442. package/dist/integrations/metal-orm/pagination/page.d.ts +0 -2
  443. package/dist/integrations/metal-orm/pagination/page.d.ts.map +0 -1
  444. package/dist/integrations/metal-orm/pagination/page.js +0 -3
  445. package/dist/integrations/metal-orm/pagination/page.js.map +0 -1
  446. package/dist/integrations/metal-orm/query/filters.d.ts +0 -2
  447. package/dist/integrations/metal-orm/query/filters.d.ts.map +0 -1
  448. package/dist/integrations/metal-orm/query/filters.js +0 -3
  449. package/dist/integrations/metal-orm/query/filters.js.map +0 -1
  450. package/dist/integrations/metal-orm/query/search.d.ts +0 -2
  451. package/dist/integrations/metal-orm/query/search.d.ts.map +0 -1
  452. package/dist/integrations/metal-orm/query/search.js +0 -3
  453. package/dist/integrations/metal-orm/query/search.js.map +0 -1
  454. package/dist/integrations/metal-orm/query/sort.d.ts +0 -2
  455. package/dist/integrations/metal-orm/query/sort.d.ts.map +0 -1
  456. package/dist/integrations/metal-orm/query/sort.js +0 -3
  457. package/dist/integrations/metal-orm/query/sort.js.map +0 -1
  458. package/dist/integrations/metal-orm/save-graph/helpers.d.ts +0 -2
  459. package/dist/integrations/metal-orm/save-graph/helpers.d.ts.map +0 -1
  460. package/dist/integrations/metal-orm/save-graph/helpers.js +0 -3
  461. package/dist/integrations/metal-orm/save-graph/helpers.js.map +0 -1
  462. package/dist/integrations/metal-orm/save-graph/types.d.ts +0 -2
  463. package/dist/integrations/metal-orm/save-graph/types.d.ts.map +0 -1
  464. package/dist/integrations/metal-orm/save-graph/types.js +0 -3
  465. package/dist/integrations/metal-orm/save-graph/types.js.map +0 -1
  466. package/dist/integrations/metal-orm/schema/column-map.d.ts +0 -96
  467. package/dist/integrations/metal-orm/schema/column-map.d.ts.map +0 -1
  468. package/dist/integrations/metal-orm/schema/column-map.js +0 -207
  469. package/dist/integrations/metal-orm/schema/column-map.js.map +0 -1
  470. package/dist/integrations/metal-orm/schema/ddl.d.ts +0 -2
  471. package/dist/integrations/metal-orm/schema/ddl.d.ts.map +0 -1
  472. package/dist/integrations/metal-orm/schema/ddl.js +0 -3
  473. package/dist/integrations/metal-orm/schema/ddl.js.map +0 -1
  474. package/dist/integrations/metal-orm/schema/dto.d.ts +0 -7
  475. package/dist/integrations/metal-orm/schema/dto.d.ts.map +0 -1
  476. package/dist/integrations/metal-orm/schema/dto.js +0 -34
  477. package/dist/integrations/metal-orm/schema/dto.js.map +0 -1
  478. package/dist/integrations/metal-orm/schema/entity.d.ts +0 -99
  479. package/dist/integrations/metal-orm/schema/entity.d.ts.map +0 -1
  480. package/dist/integrations/metal-orm/schema/entity.js +0 -99
  481. package/dist/integrations/metal-orm/schema/entity.js.map +0 -1
  482. package/dist/integrations/metal-orm/schema/filters.d.ts +0 -11
  483. package/dist/integrations/metal-orm/schema/filters.d.ts.map +0 -1
  484. package/dist/integrations/metal-orm/schema/filters.js +0 -21
  485. package/dist/integrations/metal-orm/schema/filters.js.map +0 -1
  486. package/dist/integrations/metal-orm/schema/index.d.ts +0 -5
  487. package/dist/integrations/metal-orm/schema/index.d.ts.map +0 -1
  488. package/dist/integrations/metal-orm/schema/index.js +0 -5
  489. package/dist/integrations/metal-orm/schema/index.js.map +0 -1
  490. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts +0 -2
  491. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.d.ts.map +0 -1
  492. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js +0 -3
  493. package/dist/integrations/metal-orm/schema/openapi/entityToSchema.js.map +0 -1
  494. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts +0 -2
  495. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.d.ts.map +0 -1
  496. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js +0 -3
  497. package/dist/integrations/metal-orm/schema/openapi/tableDefToSchema.js.map +0 -1
  498. package/dist/integrations/metal-orm/schema/sqlite.d.ts +0 -2
  499. package/dist/integrations/metal-orm/schema/sqlite.d.ts.map +0 -1
  500. package/dist/integrations/metal-orm/schema/sqlite.js +0 -3
  501. package/dist/integrations/metal-orm/schema/sqlite.js.map +0 -1
  502. package/dist/integrations/metal-orm/schema/tabledef.d.ts +0 -4
  503. package/dist/integrations/metal-orm/schema/tabledef.d.ts.map +0 -1
  504. package/dist/integrations/metal-orm/schema/tabledef.js +0 -10
  505. package/dist/integrations/metal-orm/schema/tabledef.js.map +0 -1
  506. package/dist/integrations/metal-orm/schema/types.d.ts +0 -7
  507. package/dist/integrations/metal-orm/schema/types.d.ts.map +0 -1
  508. package/dist/integrations/metal-orm/schema/types.js +0 -2
  509. package/dist/integrations/metal-orm/schema/types.js.map +0 -1
  510. package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts +0 -2
  511. package/dist/integrations/metal-orm/serialization/entitySerializer.d.ts.map +0 -1
  512. package/dist/integrations/metal-orm/serialization/entitySerializer.js +0 -3
  513. package/dist/integrations/metal-orm/serialization/entitySerializer.js.map +0 -1
  514. package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts +0 -2
  515. package/dist/integrations/metal-orm/serialization/relationPolicy.d.ts.map +0 -1
  516. package/dist/integrations/metal-orm/serialization/relationPolicy.js +0 -3
  517. package/dist/integrations/metal-orm/serialization/relationPolicy.js.map +0 -1
  518. package/dist/integrations/metal-orm/session/context.d.ts +0 -2
  519. package/dist/integrations/metal-orm/session/context.d.ts.map +0 -1
  520. package/dist/integrations/metal-orm/session/context.js +0 -3
  521. package/dist/integrations/metal-orm/session/context.js.map +0 -1
  522. package/dist/integrations/metal-orm/session/middleware.d.ts +0 -2
  523. package/dist/integrations/metal-orm/session/middleware.d.ts.map +0 -1
  524. package/dist/integrations/metal-orm/session/middleware.js +0 -3
  525. package/dist/integrations/metal-orm/session/middleware.js.map +0 -1
  526. package/dist/integrations/metal-orm/session/transaction.d.ts +0 -2
  527. package/dist/integrations/metal-orm/session/transaction.d.ts.map +0 -1
  528. package/dist/integrations/metal-orm/session/transaction.js +0 -3
  529. package/dist/integrations/metal-orm/session/transaction.js.map +0 -1
  530. package/dist/integrations/metal-orm/testing/setupSchema.d.ts +0 -2
  531. package/dist/integrations/metal-orm/testing/setupSchema.d.ts.map +0 -1
  532. package/dist/integrations/metal-orm/testing/setupSchema.js +0 -3
  533. package/dist/integrations/metal-orm/testing/setupSchema.js.map +0 -1
  534. package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts +0 -2
  535. package/dist/integrations/metal-orm/testing/sqliteMemory.d.ts.map +0 -1
  536. package/dist/integrations/metal-orm/testing/sqliteMemory.js +0 -3
  537. package/dist/integrations/metal-orm/testing/sqliteMemory.js.map +0 -1
  538. package/dist/metadata/bag.d.ts +0 -18
  539. package/dist/metadata/bag.d.ts.map +0 -1
  540. package/dist/metadata/bag.js +0 -39
  541. package/dist/metadata/bag.js.map +0 -1
  542. package/dist/metadata/index.d.ts +0 -4
  543. package/dist/metadata/index.d.ts.map +0 -1
  544. package/dist/metadata/index.js +0 -4
  545. package/dist/metadata/index.js.map +0 -1
  546. package/dist/metadata/keys.d.ts +0 -254
  547. package/dist/metadata/keys.d.ts.map +0 -1
  548. package/dist/metadata/keys.js +0 -23
  549. package/dist/metadata/keys.js.map +0 -1
  550. package/dist/metadata/merge.d.ts +0 -9
  551. package/dist/metadata/merge.d.ts.map +0 -1
  552. package/dist/metadata/merge.js +0 -30
  553. package/dist/metadata/merge.js.map +0 -1
  554. package/dist/metal-orm.d.ts +0 -2
  555. package/dist/metal-orm.d.ts.map +0 -1
  556. package/dist/metal-orm.js +0 -2
  557. package/dist/metal-orm.js.map +0 -1
  558. package/dist/validation/native/index.d.ts +0 -3
  559. package/dist/validation/native/index.d.ts.map +0 -1
  560. package/dist/validation/native/index.js +0 -3
  561. package/dist/validation/native/index.js.map +0 -1
  562. package/dist/validation/native/ir.d.ts +0 -38
  563. package/dist/validation/native/ir.d.ts.map +0 -1
  564. package/dist/validation/native/ir.js +0 -2
  565. package/dist/validation/native/ir.js.map +0 -1
  566. package/dist/validation/native/schema.d.ts +0 -63
  567. package/dist/validation/native/schema.d.ts.map +0 -1
  568. package/dist/validation/native/schema.js +0 -271
  569. package/dist/validation/native/schema.js.map +0 -1
  570. package/dist/validation/native/validator.d.ts +0 -21
  571. package/dist/validation/native/validator.d.ts.map +0 -1
  572. package/dist/validation/native/validator.js +0 -48
  573. package/dist/validation/native/validator.js.map +0 -1
package/dist/index.cjs ADDED
@@ -0,0 +1,573 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ ADORN_META: () => ADORN_META2,
34
+ AdditionalProperties: () => AdditionalProperties,
35
+ Auth: () => Auth,
36
+ Closed: () => Closed,
37
+ ClosedUnevaluated: () => ClosedUnevaluated,
38
+ Const: () => Const,
39
+ Consumes: () => Consumes,
40
+ Controller: () => Controller,
41
+ Default: () => Default,
42
+ Delete: () => Delete,
43
+ Description: () => Description,
44
+ Enum: () => Enum,
45
+ Example: () => Example,
46
+ Examples: () => Examples,
47
+ ExclusiveMax: () => ExclusiveMax,
48
+ ExclusiveMin: () => ExclusiveMin,
49
+ File: () => File,
50
+ Format: () => Format,
51
+ Get: () => Get,
52
+ Max: () => Max,
53
+ MaxItems: () => MaxItems,
54
+ MaxLength: () => MaxLength,
55
+ MaxProperties: () => MaxProperties,
56
+ Min: () => Min,
57
+ MinItems: () => MinItems,
58
+ MinLength: () => MinLength,
59
+ MinProperties: () => MinProperties,
60
+ MultipleOf: () => MultipleOf,
61
+ PartType: () => PartType,
62
+ Patch: () => Patch,
63
+ Pattern: () => Pattern,
64
+ Post: () => Post,
65
+ Produces: () => Produces,
66
+ Public: () => Public,
67
+ Put: () => Put,
68
+ QueryStyle: () => QueryStyle,
69
+ Schema: () => Schema,
70
+ Union: () => Union,
71
+ Use: () => Use,
72
+ ValidationErrorResponse: () => ValidationErrorResponse,
73
+ clearArtifactCache: () => clearArtifactCache,
74
+ createValidator: () => createValidator,
75
+ formatValidationErrors: () => formatValidationErrors,
76
+ getArtifactCacheStats: () => getArtifactCacheStats,
77
+ loadArtifacts: () => loadArtifacts,
78
+ readAdornBucket: () => readAdornBucket
79
+ });
80
+ module.exports = __toCommonJS(index_exports);
81
+
82
+ // src/runtime/polyfill.ts
83
+ Symbol.metadata ??= /* @__PURE__ */ Symbol("Symbol.metadata");
84
+
85
+ // src/runtime/metadata/key.ts
86
+ var ADORN_META = /* @__PURE__ */ Symbol.for("adorn-api/meta");
87
+
88
+ // src/runtime/metadata/bucket.ts
89
+ function getBucket(metadata) {
90
+ if (!metadata) {
91
+ throw new Error("Decorator context.metadata is undefined. Ensure Symbol.metadata polyfill runs before decorators.");
92
+ }
93
+ let bucket = metadata[ADORN_META];
94
+ if (!bucket) {
95
+ bucket = { ops: [], controllerUse: [] };
96
+ metadata[ADORN_META] = bucket;
97
+ }
98
+ if (!bucket.controllerUse) {
99
+ bucket.controllerUse = [];
100
+ }
101
+ return bucket;
102
+ }
103
+
104
+ // src/decorators/Controller.ts
105
+ function Controller(basePath) {
106
+ return function(target, context) {
107
+ const bucket = getBucket(context.metadata);
108
+ bucket.basePath = basePath;
109
+ };
110
+ }
111
+
112
+ // src/decorators/methods.ts
113
+ function createMethodDecorator(httpMethod, path2) {
114
+ return function(target, context) {
115
+ if (context.private || context.static) {
116
+ return;
117
+ }
118
+ const methodName = String(context.name);
119
+ const bucket = getBucket(context.metadata);
120
+ let op = bucket.ops.find((op2) => op2.methodName === methodName);
121
+ if (!op) {
122
+ op = {
123
+ httpMethod,
124
+ path: path2,
125
+ methodName
126
+ };
127
+ bucket.ops.push(op);
128
+ } else {
129
+ op.httpMethod = httpMethod;
130
+ op.path = path2;
131
+ }
132
+ };
133
+ }
134
+ var Get = (path2) => createMethodDecorator("GET", path2);
135
+ var Post = (path2) => createMethodDecorator("POST", path2);
136
+ var Put = (path2) => createMethodDecorator("PUT", path2);
137
+ var Patch = (path2) => createMethodDecorator("PATCH", path2);
138
+ var Delete = (path2) => createMethodDecorator("DELETE", path2);
139
+
140
+ // src/decorators/Use.ts
141
+ function Use(...middleware) {
142
+ return function(target, context) {
143
+ if (context.kind === "class") {
144
+ const bucket = getBucket(context.metadata);
145
+ if (!bucket.controllerUse) {
146
+ bucket.controllerUse = [];
147
+ }
148
+ bucket.controllerUse.push(...middleware);
149
+ } else if (context.kind === "method") {
150
+ const methodName = String(context.name);
151
+ const bucket = getBucket(context.metadata);
152
+ let op = bucket.ops.find((op2) => op2.methodName === methodName);
153
+ if (!op) {
154
+ op = {
155
+ httpMethod: "GET",
156
+ path: "/",
157
+ methodName
158
+ };
159
+ bucket.ops.push(op);
160
+ }
161
+ if (!op.use) {
162
+ op.use = [];
163
+ }
164
+ op.use.push(...middleware);
165
+ } else {
166
+ throw new Error("@Use decorator can only be applied to classes or methods");
167
+ }
168
+ };
169
+ }
170
+
171
+ // src/decorators/Auth.ts
172
+ function Auth(scheme, options) {
173
+ return function(target, context) {
174
+ if (context.kind !== "method") {
175
+ throw new Error("@Auth decorator can only be applied to methods");
176
+ }
177
+ const methodName = String(context.name);
178
+ const bucket = getBucket(context.metadata);
179
+ let op = bucket.ops.find((op2) => op2.methodName === methodName);
180
+ if (!op) {
181
+ op = {
182
+ httpMethod: "GET",
183
+ path: "/",
184
+ methodName
185
+ };
186
+ bucket.ops.push(op);
187
+ }
188
+ op.auth = {
189
+ scheme,
190
+ scopes: options?.scopes,
191
+ optional: options?.optional ?? false
192
+ };
193
+ };
194
+ }
195
+
196
+ // src/decorators/Public.ts
197
+ function Public() {
198
+ return function(target, context) {
199
+ if (context.kind !== "method") {
200
+ throw new Error("@Public decorator can only be applied to methods");
201
+ }
202
+ const methodName = String(context.name);
203
+ const bucket = getBucket(context.metadata);
204
+ let op = bucket.ops.find((op2) => op2.methodName === methodName);
205
+ if (!op) {
206
+ op = {
207
+ httpMethod: "GET",
208
+ path: "/",
209
+ methodName
210
+ };
211
+ bucket.ops.push(op);
212
+ }
213
+ op.auth = "public";
214
+ };
215
+ }
216
+
217
+ // src/runtime/metadata/read.ts
218
+ function readAdornBucket(ctor) {
219
+ const metaSym = Symbol.metadata;
220
+ if (!metaSym) {
221
+ return null;
222
+ }
223
+ const classMetadata = ctor[metaSym];
224
+ if (!classMetadata) {
225
+ return null;
226
+ }
227
+ const bucket = classMetadata[ADORN_META];
228
+ return bucket ?? null;
229
+ }
230
+
231
+ // src/schema/decorators.ts
232
+ var ADORN_META2 = /* @__PURE__ */ Symbol.for("adorn-api.metadata");
233
+ function getOrCreateMetadata(metadata) {
234
+ const meta = metadata[ADORN_META2] ??= {};
235
+ meta.schema ??= { props: {} };
236
+ return meta;
237
+ }
238
+ function pushSchemaFrag(target, propertyKey, metadata, frag) {
239
+ const meta = getOrCreateMetadata(metadata);
240
+ const props = meta.schema.props;
241
+ (props[propertyKey] ??= []).push(frag);
242
+ }
243
+ function Schema(frag) {
244
+ return function(target, propertyKey) {
245
+ pushSchemaFrag(target, propertyKey, {}, frag);
246
+ };
247
+ }
248
+ function Min(n) {
249
+ return function(target, propertyKey) {
250
+ pushSchemaFrag(target, propertyKey, {}, { minimum: n });
251
+ };
252
+ }
253
+ function Max(n) {
254
+ return function(target, propertyKey) {
255
+ pushSchemaFrag(target, propertyKey, {}, { maximum: n });
256
+ };
257
+ }
258
+ function ExclusiveMin(n) {
259
+ return function(target, propertyKey) {
260
+ pushSchemaFrag(target, propertyKey, {}, { exclusiveMinimum: n });
261
+ };
262
+ }
263
+ function ExclusiveMax(n) {
264
+ return function(target, propertyKey) {
265
+ pushSchemaFrag(target, propertyKey, {}, { exclusiveMaximum: n });
266
+ };
267
+ }
268
+ function MinLength(n) {
269
+ return function(target, propertyKey) {
270
+ pushSchemaFrag(target, propertyKey, {}, { minLength: n });
271
+ };
272
+ }
273
+ function MaxLength(n) {
274
+ return function(target, propertyKey) {
275
+ pushSchemaFrag(target, propertyKey, {}, { maxLength: n });
276
+ };
277
+ }
278
+ function Pattern(re) {
279
+ return function(target, propertyKey) {
280
+ pushSchemaFrag(target, propertyKey, {}, { pattern: typeof re === "string" ? re : re.source });
281
+ };
282
+ }
283
+ function Format(fmt) {
284
+ return function(target, propertyKey) {
285
+ pushSchemaFrag(target, propertyKey, {}, { format: fmt });
286
+ };
287
+ }
288
+ function MinItems(n) {
289
+ return function(target, propertyKey) {
290
+ pushSchemaFrag(target, propertyKey, {}, { minItems: n });
291
+ };
292
+ }
293
+ function MaxItems(n) {
294
+ return function(target, propertyKey) {
295
+ pushSchemaFrag(target, propertyKey, {}, { maxItems: n });
296
+ };
297
+ }
298
+ function MinProperties(n) {
299
+ return function(target, propertyKey) {
300
+ pushSchemaFrag(target, propertyKey, {}, { minProperties: n });
301
+ };
302
+ }
303
+ function MaxProperties(n) {
304
+ return function(target, propertyKey) {
305
+ pushSchemaFrag(target, propertyKey, {}, { maxProperties: n });
306
+ };
307
+ }
308
+ function MultipleOf(n) {
309
+ return function(target, propertyKey) {
310
+ pushSchemaFrag(target, propertyKey, {}, { multipleOf: n });
311
+ };
312
+ }
313
+ function Example(value) {
314
+ return function(target, propertyKey) {
315
+ pushSchemaFrag(target, propertyKey, {}, { example: value });
316
+ };
317
+ }
318
+ function Examples(values) {
319
+ return function(target, propertyKey) {
320
+ pushSchemaFrag(target, propertyKey, {}, { examples: values });
321
+ };
322
+ }
323
+ function Description(desc) {
324
+ return function(target, propertyKey) {
325
+ pushSchemaFrag(target, propertyKey, {}, { description: desc });
326
+ };
327
+ }
328
+ function Enum(vals) {
329
+ return function(target, propertyKey) {
330
+ pushSchemaFrag(target, propertyKey, {}, { enum: vals });
331
+ };
332
+ }
333
+ function Const(val) {
334
+ return function(target, propertyKey) {
335
+ pushSchemaFrag(target, propertyKey, {}, { const: val });
336
+ };
337
+ }
338
+ function Default(val) {
339
+ return function(target, propertyKey) {
340
+ pushSchemaFrag(target, propertyKey, {}, { default: val });
341
+ };
342
+ }
343
+ function AdditionalProperties(value) {
344
+ return function(target, propertyKey) {
345
+ pushSchemaFrag(target, propertyKey, {}, { additionalProperties: value });
346
+ };
347
+ }
348
+ function Closed() {
349
+ return function(target, propertyKey) {
350
+ pushSchemaFrag(target, propertyKey, {}, { additionalProperties: false });
351
+ };
352
+ }
353
+ function ClosedUnevaluated() {
354
+ return function(target, propertyKey) {
355
+ pushSchemaFrag(target, propertyKey, {}, { unevaluatedProperties: false });
356
+ };
357
+ }
358
+ function Union(mode) {
359
+ return function(target) {
360
+ target[ADORN_META2] = target[ADORN_META2] ?? {};
361
+ const meta = target[ADORN_META2];
362
+ meta.schema = meta.schema ?? { props: {} };
363
+ meta.schema.unionMode = mode;
364
+ };
365
+ }
366
+
367
+ // src/runtime/validation/ajv.ts
368
+ var import_ajv = __toESM(require("ajv"), 1);
369
+ var import_ajv_formats = __toESM(require("ajv-formats"), 1);
370
+ var ValidationErrorResponse = class extends Error {
371
+ constructor(statusCode, errors) {
372
+ super("Validation failed");
373
+ this.statusCode = statusCode;
374
+ this.errors = errors;
375
+ this.name = "ValidationErrorResponse";
376
+ }
377
+ };
378
+ function createValidator() {
379
+ const ajv = new import_ajv.default.default({
380
+ allErrors: true,
381
+ coerceTypes: false,
382
+ strict: false,
383
+ validateFormats: true
384
+ });
385
+ import_ajv_formats.default.default(ajv);
386
+ ajv.addFormat("br-phone", /^\(\d{2}\)\s\d{5}-\d{4}$/);
387
+ return ajv;
388
+ }
389
+ function formatValidationErrors(errors) {
390
+ const formatted = {};
391
+ for (const error of errors) {
392
+ const path2 = error.path || "body";
393
+ if (!formatted[path2]) {
394
+ formatted[path2] = [];
395
+ }
396
+ formatted[path2].push(error.message);
397
+ }
398
+ return {
399
+ error: "Validation failed",
400
+ details: formatted
401
+ };
402
+ }
403
+
404
+ // src/http.ts
405
+ var ADORN_META3 = /* @__PURE__ */ Symbol.for("adorn-api.metadata");
406
+ function getMetadata(target) {
407
+ const metadata = target[ADORN_META3] ?? {};
408
+ target[ADORN_META3] = metadata;
409
+ return metadata;
410
+ }
411
+ function QueryStyle(options) {
412
+ return function(_target, _propertyKey, _parameterIndex) {
413
+ const metadata = getMetadata(_target);
414
+ metadata.queryStyles ??= {};
415
+ metadata.queryStyles[_propertyKey.toString()] = options;
416
+ };
417
+ }
418
+ function PartType(contentTypeOrOptions) {
419
+ return function(target, propertyKey) {
420
+ const metadata = getMetadata(target);
421
+ const options = typeof contentTypeOrOptions === "string" ? { contentType: contentTypeOrOptions } : contentTypeOrOptions;
422
+ metadata.fileParts ??= {};
423
+ metadata.fileParts[propertyKey.toString()] = options;
424
+ };
425
+ }
426
+ function File() {
427
+ return function(target, propertyKey) {
428
+ const metadata = getMetadata(target);
429
+ metadata.fileParts ??= {};
430
+ metadata.fileParts[propertyKey.toString()] = metadata.fileParts[propertyKey.toString()] ?? {};
431
+ };
432
+ }
433
+ function Consumes(...contentTypes) {
434
+ return function(target) {
435
+ const metadata = getMetadata(target.prototype);
436
+ metadata.consumes = contentTypes;
437
+ };
438
+ }
439
+ function Produces(...contentTypes) {
440
+ return function(target) {
441
+ const metadata = getMetadata(target.prototype);
442
+ metadata.produces = contentTypes;
443
+ };
444
+ }
445
+
446
+ // src/compiler/cache/loadArtifacts.ts
447
+ var import_node_fs = __toESM(require("fs"), 1);
448
+ var import_node_path = __toESM(require("path"), 1);
449
+ var import_promises = require("fs/promises");
450
+ var artifactCache = /* @__PURE__ */ new Map();
451
+ async function getMtime(filePath) {
452
+ try {
453
+ const stats = await (0, import_promises.stat)(filePath);
454
+ return stats.mtimeMs;
455
+ } catch {
456
+ return null;
457
+ }
458
+ }
459
+ async function loadArtifacts(options) {
460
+ const { outDir } = options;
461
+ const cacheKey = import_node_path.default.resolve(outDir);
462
+ let entry = artifactCache.get(cacheKey);
463
+ const openapiPath = import_node_path.default.join(outDir, "openapi.json");
464
+ const manifestPath = import_node_path.default.join(outDir, "manifest.json");
465
+ const validatorsPath = import_node_path.default.join(outDir, "validators.mjs");
466
+ const openapiMtime = await getMtime(openapiPath);
467
+ const manifestMtime = await getMtime(manifestPath);
468
+ const validatorsMtime = await getMtime(validatorsPath);
469
+ if (entry) {
470
+ const mtimesMatch = entry.mtimes.openapi === openapiMtime && entry.mtimes.manifest === manifestMtime && entry.mtimes.validators === validatorsMtime;
471
+ if (mtimesMatch) {
472
+ if (entry.openapi && entry.manifest) {
473
+ return {
474
+ openapi: entry.openapi,
475
+ manifest: entry.manifest,
476
+ validators: entry.validators
477
+ };
478
+ }
479
+ }
480
+ }
481
+ const openapiContent = import_node_fs.default.readFileSync(openapiPath, "utf-8");
482
+ const manifestContent = import_node_fs.default.readFileSync(manifestPath, "utf-8");
483
+ const openapi = JSON.parse(openapiContent);
484
+ const manifest = JSON.parse(manifestContent);
485
+ let validators = null;
486
+ if (manifest.validation.mode === "precompiled" && manifest.validation.precompiledModule) {
487
+ try {
488
+ const validatorsModule = await import(import_node_path.default.join(outDir, manifest.validation.precompiledModule));
489
+ validators = validatorsModule;
490
+ } catch (err) {
491
+ console.warn(`Failed to load precompiled validators: ${err}`);
492
+ }
493
+ }
494
+ artifactCache.set(cacheKey, {
495
+ openapi,
496
+ manifest,
497
+ validators,
498
+ mtimes: {
499
+ openapi: openapiMtime,
500
+ manifest: manifestMtime,
501
+ validators: validatorsMtime
502
+ }
503
+ });
504
+ return {
505
+ openapi,
506
+ manifest,
507
+ validators
508
+ };
509
+ }
510
+ function clearArtifactCache(outDir) {
511
+ if (outDir) {
512
+ const cacheKey = import_node_path.default.resolve(outDir);
513
+ artifactCache.delete(cacheKey);
514
+ } else {
515
+ artifactCache.clear();
516
+ }
517
+ }
518
+ function getArtifactCacheStats() {
519
+ return {
520
+ size: artifactCache.size,
521
+ keys: Array.from(artifactCache.keys())
522
+ };
523
+ }
524
+ // Annotate the CommonJS export names for ESM import in node:
525
+ 0 && (module.exports = {
526
+ ADORN_META,
527
+ AdditionalProperties,
528
+ Auth,
529
+ Closed,
530
+ ClosedUnevaluated,
531
+ Const,
532
+ Consumes,
533
+ Controller,
534
+ Default,
535
+ Delete,
536
+ Description,
537
+ Enum,
538
+ Example,
539
+ Examples,
540
+ ExclusiveMax,
541
+ ExclusiveMin,
542
+ File,
543
+ Format,
544
+ Get,
545
+ Max,
546
+ MaxItems,
547
+ MaxLength,
548
+ MaxProperties,
549
+ Min,
550
+ MinItems,
551
+ MinLength,
552
+ MinProperties,
553
+ MultipleOf,
554
+ PartType,
555
+ Patch,
556
+ Pattern,
557
+ Post,
558
+ Produces,
559
+ Public,
560
+ Put,
561
+ QueryStyle,
562
+ Schema,
563
+ Union,
564
+ Use,
565
+ ValidationErrorResponse,
566
+ clearArtifactCache,
567
+ createValidator,
568
+ formatValidationErrors,
569
+ getArtifactCacheStats,
570
+ loadArtifacts,
571
+ readAdornBucket
572
+ });
573
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/runtime/polyfill.ts","../src/runtime/metadata/key.ts","../src/runtime/metadata/bucket.ts","../src/decorators/Controller.ts","../src/decorators/methods.ts","../src/decorators/Use.ts","../src/decorators/Auth.ts","../src/decorators/Public.ts","../src/runtime/metadata/read.ts","../src/schema/decorators.ts","../src/runtime/validation/ajv.ts","../src/http.ts","../src/compiler/cache/loadArtifacts.ts"],"sourcesContent":["import \"./runtime/polyfill.js\";\n\nexport { Controller, Get, Post, Put, Patch, Delete, Use, Auth, Public } from \"./decorators/index.js\";\nexport { readAdornBucket } from \"./runtime/metadata/read.js\";\nexport type { HttpMethod, RouteOperation, AdornBucket, AuthMeta, ExpressMw } from \"./runtime/metadata/types.js\";\nexport type { AuthSchemeRuntime, AuthResult } from \"./runtime/auth/runtime.js\";\nexport * from \"./schema/index.js\";\nexport { createValidator, formatValidationErrors, ValidationErrorResponse } from \"./runtime/validation/index.js\";\nexport {\n QueryStyle,\n File,\n PartType,\n Consumes,\n Produces,\n} from \"./http.js\";\nexport type { Cookies } from \"./http.js\";\nexport type { QueryStyleOptions, FilePartOptions, HttpMetadata } from \"./http.js\";\nexport type { UploadFile } from \"./runtime/upload.js\";\nexport { loadArtifacts, clearArtifactCache, getArtifactCacheStats } from \"./compiler/cache/loadArtifacts.js\";\n","// Polyfill Symbol.metadata for environments that don't support it\n// Must run before any decorated classes are imported\n(Symbol as any).metadata ??= Symbol(\"Symbol.metadata\");\n\n// Export a symbol to prevent tree-shaking\nexport const ADORN_POLYFILL = Symbol(\"adorn-polyfill\");\n","export const ADORN_META = Symbol.for(\"adorn-api/meta\");\n","import { ADORN_META } from \"./key.js\";\nimport type { AdornBucket } from \"./types.js\";\n\nexport function getBucket(metadata: DecoratorMetadata): AdornBucket {\n if (!metadata) {\n throw new Error(\"Decorator context.metadata is undefined. Ensure Symbol.metadata polyfill runs before decorators.\");\n }\n let bucket = metadata[ADORN_META] as AdornBucket | undefined;\n if (!bucket) {\n bucket = { ops: [], controllerUse: [] };\n metadata[ADORN_META] = bucket;\n }\n if (!bucket.controllerUse) {\n bucket.controllerUse = [];\n }\n return bucket;\n}\n","import { getBucket } from \"../runtime/metadata/bucket.js\";\n\nexport function Controller(basePath: string) {\n return function <T extends new (...args: any[]) => any>(\n target: T,\n context: ClassDecoratorContext<T>\n ): T | void {\n const bucket = getBucket(context.metadata);\n bucket.basePath = basePath;\n };\n}\n","import { getBucket } from \"../runtime/metadata/bucket.js\";\nimport type { HttpMethod } from \"../runtime/metadata/types.js\";\n\nfunction createMethodDecorator(httpMethod: HttpMethod, path: string) {\n return function <T extends (...args: any[]) => any>(\n target: T,\n context: ClassMethodDecoratorContext<any, T>\n ): T | void {\n if (context.private || context.static) {\n return;\n }\n\n const methodName = String(context.name);\n const bucket = getBucket(context.metadata);\n\n let op = bucket.ops.find(op => op.methodName === methodName);\n if (!op) {\n op = {\n httpMethod,\n path,\n methodName,\n };\n bucket.ops.push(op);\n } else {\n op.httpMethod = httpMethod;\n op.path = path;\n }\n };\n}\n\nexport const Get = (path: string) => createMethodDecorator(\"GET\", path);\nexport const Post = (path: string) => createMethodDecorator(\"POST\", path);\nexport const Put = (path: string) => createMethodDecorator(\"PUT\", path);\nexport const Patch = (path: string) => createMethodDecorator(\"PATCH\", path);\nexport const Delete = (path: string) => createMethodDecorator(\"DELETE\", path);\n","import { getBucket } from \"../runtime/metadata/bucket.js\";\nimport type { ExpressMw, HttpMethod } from \"../runtime/metadata/types.js\";\n\ntype UseTarget = string | ExpressMw;\n\nexport function Use(...middleware: UseTarget[]) {\n return function (\n target: any,\n context: ClassDecoratorContext | ClassMethodDecoratorContext\n ) {\n if (context.kind === \"class\") {\n const bucket = getBucket(context.metadata);\n if (!bucket.controllerUse) {\n bucket.controllerUse = [];\n }\n bucket.controllerUse.push(...middleware);\n } else if (context.kind === \"method\") {\n const methodName = String(context.name);\n const bucket = getBucket(context.metadata);\n let op = bucket.ops.find(op => op.methodName === methodName);\n if (!op) {\n op = {\n httpMethod: \"GET\" as HttpMethod,\n path: \"/\",\n methodName,\n };\n bucket.ops.push(op);\n }\n if (!op.use) {\n op.use = [];\n }\n op.use.push(...middleware);\n } else {\n throw new Error(\"@Use decorator can only be applied to classes or methods\");\n }\n };\n}\n","import { getBucket } from \"../runtime/metadata/bucket.js\";\nimport type { AuthMeta, HttpMethod } from \"../runtime/metadata/types.js\";\n\nexport function Auth(scheme: string, options?: { scopes?: string[]; optional?: boolean }) {\n return function (\n target: any,\n context: ClassMethodDecoratorContext\n ) {\n if (context.kind !== \"method\") {\n throw new Error(\"@Auth decorator can only be applied to methods\");\n }\n\n const methodName = String(context.name);\n const bucket = getBucket(context.metadata);\n let op = bucket.ops.find(op => op.methodName === methodName);\n if (!op) {\n op = {\n httpMethod: \"GET\" as HttpMethod,\n path: \"/\",\n methodName,\n };\n bucket.ops.push(op);\n }\n\n op.auth = {\n scheme,\n scopes: options?.scopes,\n optional: options?.optional ?? false,\n };\n };\n}\n","import { getBucket } from \"../runtime/metadata/bucket.js\";\nimport type { HttpMethod } from \"../runtime/metadata/types.js\";\n\nexport function Public() {\n return function (\n target: any,\n context: ClassMethodDecoratorContext\n ) {\n if (context.kind !== \"method\") {\n throw new Error(\"@Public decorator can only be applied to methods\");\n }\n\n const methodName = String(context.name);\n const bucket = getBucket(context.metadata);\n let op = bucket.ops.find(op => op.methodName === methodName);\n if (!op) {\n op = {\n httpMethod: \"GET\" as HttpMethod,\n path: \"/\",\n methodName,\n };\n bucket.ops.push(op);\n }\n\n op.auth = \"public\";\n };\n}\n","import { ADORN_META } from \"./key.js\";\nimport type { AdornBucket } from \"./types.js\";\n\nexport function readAdornBucket(ctor: Function): AdornBucket | null {\n const metaSym = (Symbol as any).metadata as symbol | undefined;\n if (!metaSym) {\n return null;\n }\n\n const classMetadata = (ctor as any)[metaSym] as DecoratorMetadata | undefined;\n if (!classMetadata) {\n return null;\n }\n\n const bucket = classMetadata[ADORN_META] as AdornBucket | undefined;\n return bucket ?? null;\n}\n","const ADORN_META = Symbol.for(\"adorn-api.metadata\");\n\ninterface SchemaFrag {\n [key: string]: unknown;\n}\n\ninterface SchemaMetadata {\n schema: {\n props: Record<string, SchemaFrag[]>;\n };\n}\n\nfunction getOrCreateMetadata(metadata: Record<PropertyKey, unknown>): SchemaMetadata {\n const meta = (metadata[ADORN_META] ??= {}) as SchemaMetadata;\n meta.schema ??= { props: {} };\n return meta;\n}\n\nfunction pushSchemaFrag(\n target: Object,\n propertyKey: string | symbol,\n metadata: Record<PropertyKey, unknown>,\n frag: SchemaFrag\n): void {\n const meta = getOrCreateMetadata(metadata);\n const props = meta.schema.props;\n (props[propertyKey as string] ??= []).push(frag);\n}\n\ntype PropertyDecorator = (target: Object, propertyKey: string | symbol, descriptor?: PropertyDescriptor) => void;\n\nexport function Schema(frag: SchemaFrag): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, frag);\n };\n}\n\nexport function Min(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { minimum: n });\n };\n}\n\nexport function Max(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { maximum: n });\n };\n}\n\nexport function ExclusiveMin(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { exclusiveMinimum: n });\n };\n}\n\nexport function ExclusiveMax(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { exclusiveMaximum: n });\n };\n}\n\nexport function MinLength(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { minLength: n });\n };\n}\n\nexport function MaxLength(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { maxLength: n });\n };\n}\n\nexport function Pattern(re: RegExp | string): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { pattern: typeof re === \"string\" ? re : re.source });\n };\n}\n\nexport function Format(fmt: string): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { format: fmt });\n };\n}\n\nexport function MinItems(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { minItems: n });\n };\n}\n\nexport function MaxItems(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { maxItems: n });\n };\n}\n\nexport function MinProperties(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { minProperties: n });\n };\n}\n\nexport function MaxProperties(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { maxProperties: n });\n };\n}\n\nexport function MultipleOf(n: number): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { multipleOf: n });\n };\n}\n\nexport function Example(value: unknown): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { example: value });\n };\n}\n\nexport function Examples(values: unknown[]): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { examples: values });\n };\n}\n\nexport function Description(desc: string): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { description: desc });\n };\n}\n\nexport function Enum<T extends string | number>(vals: T[]): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { enum: vals });\n };\n}\n\nexport function Const<T>(val: T): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { const: val });\n };\n}\n\nexport function Default<T>(val: T): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { default: val });\n };\n}\n\nexport function AdditionalProperties(value: boolean | Record<string, unknown>): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { additionalProperties: value });\n };\n}\n\nexport function Closed(): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { additionalProperties: false });\n };\n}\n\nexport function ClosedUnevaluated(): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n pushSchemaFrag(target, propertyKey, {}, { unevaluatedProperties: false });\n };\n}\n\nexport function Union(mode: \"anyOf\" | \"oneOf\" | \"allOf\"): ClassDecorator {\n return function (target: Function): void {\n (target as any)[ADORN_META] = (target as any)[ADORN_META] ?? {};\n const meta = (target as any)[ADORN_META] as SchemaMetadata;\n meta.schema = meta.schema ?? { props: {} };\n (meta.schema as any).unionMode = mode;\n };\n}\n\nexport { ADORN_META };\nexport type { SchemaFrag, SchemaMetadata };\n","import Ajv from \"ajv\";\nimport addFormats from \"ajv-formats\";\nimport type { ErrorObject } from \"ajv\";\n\nexport interface ValidationError {\n path: string;\n message: string;\n keyword: string;\n params: Record<string, unknown>;\n}\n\nexport interface ValidationResult {\n valid: boolean;\n errors: ValidationError[] | null;\n}\n\nexport class ValidationErrorResponse extends Error {\n constructor(\n public statusCode: number,\n public errors: ValidationError[]\n ) {\n super(\"Validation failed\");\n this.name = \"ValidationErrorResponse\";\n }\n}\n\nexport function createValidator() {\n const ajv = new Ajv.default({\n allErrors: true,\n coerceTypes: false,\n strict: false,\n validateFormats: true,\n });\n\n addFormats.default(ajv);\n\n ajv.addFormat(\"br-phone\", /^\\(\\d{2}\\)\\s\\d{5}-\\d{4}$/);\n\n return ajv;\n}\n\nexport function validateData(\n ajv: ReturnType<typeof createValidator>,\n data: unknown,\n schema: Record<string, unknown>,\n dataPath: string = \"#\"\n): ValidationResult {\n const validate = ajv.compile(schema);\n const valid = validate(data);\n\n if (valid) {\n return { valid: true, errors: null };\n }\n\n const errors: ValidationError[] = (validate.errors || []).map((err: ErrorObject) => ({\n path: formatErrorPath(dataPath, err),\n message: err.message || \"Invalid value\",\n keyword: err.keyword,\n params: err.params as Record<string, unknown>,\n }));\n\n return { valid: false, errors };\n}\n\nfunction formatErrorPath(basePath: string, err: ErrorObject): string {\n const instancePath = err.instancePath;\n\n if (!instancePath || instancePath === \"\") {\n return basePath;\n }\n\n if (basePath === \"#\" || basePath.endsWith(\"/\")) {\n return `${basePath}${instancePath.slice(1)}`;\n }\n\n return `${basePath}${instancePath}`;\n}\n\nexport function formatValidationErrors(errors: ValidationError[]): Record<string, unknown> {\n const formatted: Record<string, string[]> = {};\n\n for (const error of errors) {\n const path = error.path || \"body\";\n if (!formatted[path]) {\n formatted[path] = [];\n }\n formatted[path].push(error.message);\n }\n\n return {\n error: \"Validation failed\",\n details: formatted,\n };\n}\n","import \"./runtime/polyfill.js\";\n\nconst ADORN_META = Symbol.for(\"adorn-api.metadata\");\n\ninterface HttpMetadata {\n consumes?: string[];\n produces?: string[];\n queryStyles?: Record<string, QueryStyleOptions>;\n fileParts?: Record<string, FilePartOptions>;\n cookies?: Record<string, boolean>;\n}\n\ninterface QueryStyleOptions {\n style?: \"form\" | \"spaceDelimited\" | \"pipeDelimited\" | \"deepObject\";\n explode?: boolean;\n allowReserved?: boolean;\n}\n\ninterface FilePartOptions {\n contentType?: string;\n headers?: Record<string, string>;\n}\n\ninterface DecoratorMetadata {\n [ADORN_META]?: HttpMetadata;\n}\n\nfunction getMetadata(target: Object): HttpMetadata {\n const metadata = (target as DecoratorMetadata)[ADORN_META] ?? {};\n (target as DecoratorMetadata)[ADORN_META] = metadata;\n return metadata;\n}\n\nexport type QueryStyle = QueryStyleOptions;\n\nexport function QueryStyle(options: QueryStyleOptions): ParameterDecorator {\n return function (_target: Object, _propertyKey: string | symbol, _parameterIndex: number): void {\n const metadata = getMetadata(_target);\n metadata.queryStyles ??= {};\n metadata.queryStyles[_propertyKey.toString()] = options;\n } as ParameterDecorator;\n}\n\nexport type PartType = FilePartOptions;\n\nexport function PartType(contentTypeOrOptions: string | FilePartOptions): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n const metadata = getMetadata(target);\n const options: FilePartOptions = typeof contentTypeOrOptions === \"string\"\n ? { contentType: contentTypeOrOptions }\n : contentTypeOrOptions;\n metadata.fileParts ??= {};\n metadata.fileParts[propertyKey.toString()] = options;\n };\n}\n\nexport function File(): PropertyDecorator {\n return function (target: Object, propertyKey: string | symbol): void {\n const metadata = getMetadata(target);\n metadata.fileParts ??= {};\n metadata.fileParts[propertyKey.toString()] = metadata.fileParts[propertyKey.toString()] ?? {};\n };\n}\n\nexport function Consumes(...contentTypes: string[]): ClassDecorator {\n return function (target: Function): void {\n const metadata = getMetadata(target.prototype);\n metadata.consumes = contentTypes;\n };\n}\n\nexport function Produces(...contentTypes: string[]): ClassDecorator {\n return function (target: Function): void {\n const metadata = getMetadata(target.prototype);\n metadata.produces = contentTypes;\n };\n}\n\nexport type Cookies<T = any> = T;\n\nexport { ADORN_META };\nexport type { HttpMetadata, QueryStyleOptions, FilePartOptions };\n","import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { stat } from \"node:fs/promises\";\n\ninterface OpenApi {\n openapi: string;\n components?: {\n schemas?: Record<string, unknown>;\n };\n paths?: Record<string, unknown>;\n info?: Record<string, unknown>;\n security?: Array<Record<string, string[]>>;\n}\n\ninterface Manifest {\n manifestVersion: number;\n generatedAt: string;\n generator: {\n name: string;\n version: string;\n typescript: string;\n };\n schemas: {\n kind: string;\n file: string;\n componentsSchemasPointer: string;\n };\n validation: {\n mode: \"none\" | \"ajv-runtime\" | \"precompiled\";\n precompiledModule: string | null;\n };\n controllers: Array<{\n controllerId: string;\n basePath: string;\n operations: Array<{\n operationId: string;\n http: {\n method: string;\n path: string;\n };\n handler: {\n methodName: string;\n };\n args: {\n body: {\n index: number;\n required: boolean;\n contentType: string;\n schemaRef: string;\n } | null;\n path: Array<{\n name: string;\n index: number;\n required: boolean;\n schemaRef: string;\n schemaType?: string | string[];\n }>;\n query: Array<{\n name: string;\n index: number;\n required: boolean;\n schemaRef: string;\n schemaType?: string | string[];\n }>;\n headers: Array<{\n name: string;\n index: number;\n required: boolean;\n schemaRef: string;\n schemaType?: string | string[];\n }>;\n cookies: Array<{\n name: string;\n index: number;\n required: boolean;\n schemaRef: string;\n schemaType?: string | string[];\n }>;\n };\n responses: Array<{\n status: number;\n contentType: string;\n schemaRef: string;\n isArray?: boolean;\n }>;\n }>;\n }>;\n}\n\ninterface ValidatorModule {\n validators: Record<string, {\n body?: (data: unknown) => boolean;\n response: Record<string, (data: unknown) => boolean>;\n }>;\n validateBody: (operationId: string, data: unknown) => { ok: boolean; errors: unknown[] | null };\n validateResponse: (operationId: string, status: number, contentType: string, data: unknown) => { ok: boolean; errors: unknown[] | null };\n}\n\ninterface ArtifactCacheEntry {\n openapi: OpenApi | null;\n manifest: Manifest | null;\n validators: ValidatorModule | null;\n mtimes: {\n openapi: number | null;\n manifest: number | null;\n validators: number | null;\n };\n}\n\nconst artifactCache = new Map<string, ArtifactCacheEntry>();\n\nasync function getMtime(filePath: string): Promise<number | null> {\n try {\n const stats = await stat(filePath);\n return stats.mtimeMs;\n } catch {\n return null;\n }\n}\n\nexport interface LoadArtifactsOptions {\n outDir: string;\n}\n\nexport interface LoadedArtifacts {\n openapi: OpenApi;\n manifest: Manifest;\n validators: ValidatorModule | null;\n}\n\nexport async function loadArtifacts(options: LoadArtifactsOptions): Promise<LoadedArtifacts> {\n const { outDir } = options;\n const cacheKey = path.resolve(outDir);\n\n let entry = artifactCache.get(cacheKey);\n\n const openapiPath = path.join(outDir, \"openapi.json\");\n const manifestPath = path.join(outDir, \"manifest.json\");\n const validatorsPath = path.join(outDir, \"validators.mjs\");\n\n const openapiMtime = await getMtime(openapiPath);\n const manifestMtime = await getMtime(manifestPath);\n const validatorsMtime = await getMtime(validatorsPath);\n\n if (entry) {\n const mtimesMatch = \n entry.mtimes.openapi === openapiMtime &&\n entry.mtimes.manifest === manifestMtime &&\n entry.mtimes.validators === validatorsMtime;\n\n if (mtimesMatch) {\n if (entry.openapi && entry.manifest) {\n return {\n openapi: entry.openapi,\n manifest: entry.manifest,\n validators: entry.validators,\n };\n }\n }\n }\n\n const openapiContent = fs.readFileSync(openapiPath, \"utf-8\");\n const manifestContent = fs.readFileSync(manifestPath, \"utf-8\");\n\n const openapi = JSON.parse(openapiContent) as OpenApi;\n const manifest = JSON.parse(manifestContent) as Manifest;\n\n let validators: ValidatorModule | null = null;\n\n if (manifest.validation.mode === \"precompiled\" && manifest.validation.precompiledModule) {\n try {\n const validatorsModule = await import(path.join(outDir, manifest.validation.precompiledModule));\n validators = validatorsModule as ValidatorModule;\n } catch (err) {\n console.warn(`Failed to load precompiled validators: ${err}`);\n }\n }\n\n artifactCache.set(cacheKey, {\n openapi,\n manifest,\n validators,\n mtimes: {\n openapi: openapiMtime,\n manifest: manifestMtime,\n validators: validatorsMtime,\n },\n });\n\n return {\n openapi,\n manifest,\n validators,\n };\n}\n\nexport function clearArtifactCache(outDir?: string): void {\n if (outDir) {\n const cacheKey = path.resolve(outDir);\n artifactCache.delete(cacheKey);\n } else {\n artifactCache.clear();\n }\n}\n\nexport function getArtifactCacheStats(): { size: number; keys: string[] } {\n return {\n size: artifactCache.size,\n keys: Array.from(artifactCache.keys()),\n };\n}\n"],"mappings":"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","names":["ADORN_META","path","op","op","op","op","ADORN_META","Ajv","addFormats","path","ADORN_META","path","fs"]}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,13 @@
1
- export * from './decorators/index.js';
2
- export { HttpError, ValidationError } from './core/errors/index.js';
3
- export { toProblemDetails } from './core/errors/index.js';
4
- export * from './validation/native/index.js';
5
- export * from './core/openapi/index.js';
6
- export * from './contracts/openapi.js';
7
- export * from './contracts/responses.js';
8
- export * from './contracts/reply.js';
9
- export * from './core/reply/index.js';
10
- export * from './core/route/index.js';
11
- export * from './core/registry/index.js';
12
- export * from './contracts/route-options.js';
13
- export * from './contracts/route-typing.js';
14
- export * from './contracts/validator.js';
1
+ import "./runtime/polyfill.js";
2
+ export { Controller, Get, Post, Put, Patch, Delete, Use, Auth, Public } from "./decorators/index.js";
3
+ export { readAdornBucket } from "./runtime/metadata/read.js";
4
+ export type { HttpMethod, RouteOperation, AdornBucket, AuthMeta, ExpressMw } from "./runtime/metadata/types.js";
5
+ export type { AuthSchemeRuntime, AuthResult } from "./runtime/auth/runtime.js";
6
+ export * from "./schema/index.js";
7
+ export { createValidator, formatValidationErrors, ValidationErrorResponse } from "./runtime/validation/index.js";
8
+ export { QueryStyle, File, PartType, Consumes, Produces, } from "./http.js";
9
+ export type { Cookies } from "./http.js";
10
+ export type { QueryStyleOptions, FilePartOptions, HttpMetadata } from "./http.js";
11
+ export type { UploadFile } from "./runtime/upload.js";
12
+ export { loadArtifacts, clearArtifactCache, getArtifactCacheStats } from "./compiler/cache/loadArtifacts.js";
15
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,cAAc,8BAA8B,CAAC;AAG7C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAChH,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACjH,OAAO,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAClF,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC"}