@trapi/metadata 1.3.0 → 2.0.0-beta.1

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 (350) hide show
  1. package/README.md +63 -16
  2. package/dist/index.d.mts +1819 -0
  3. package/dist/index.d.mts.map +1 -0
  4. package/dist/index.mjs +3458 -0
  5. package/dist/index.mjs.map +1 -0
  6. package/package.json +25 -13
  7. package/dist/cache/client.d.ts +0 -15
  8. package/dist/cache/client.d.ts.map +0 -1
  9. package/dist/cache/client.js +0 -98
  10. package/dist/cache/client.js.map +0 -1
  11. package/dist/cache/index.d.ts +0 -4
  12. package/dist/cache/index.d.ts.map +0 -1
  13. package/dist/cache/index.js +0 -26
  14. package/dist/cache/index.js.map +0 -1
  15. package/dist/cache/type.d.ts +0 -33
  16. package/dist/cache/type.d.ts.map +0 -1
  17. package/dist/cache/type.js +0 -9
  18. package/dist/cache/type.js.map +0 -1
  19. package/dist/cache/utils.d.ts +0 -4
  20. package/dist/cache/utils.d.ts.map +0 -1
  21. package/dist/cache/utils.js +0 -52
  22. package/dist/cache/utils.js.map +0 -1
  23. package/dist/config/index.d.ts +0 -2
  24. package/dist/config/index.d.ts.map +0 -1
  25. package/dist/config/index.js +0 -24
  26. package/dist/config/index.js.map +0 -1
  27. package/dist/config/type.d.ts +0 -37
  28. package/dist/config/type.d.ts.map +0 -1
  29. package/dist/config/type.js +0 -9
  30. package/dist/config/type.js.map +0 -1
  31. package/dist/decorator/constants.d.ts +0 -41
  32. package/dist/decorator/constants.d.ts.map +0 -1
  33. package/dist/decorator/constants.js +0 -53
  34. package/dist/decorator/constants.js.map +0 -1
  35. package/dist/decorator/index.d.ts +0 -7
  36. package/dist/decorator/index.d.ts.map +0 -1
  37. package/dist/decorator/index.js +0 -29
  38. package/dist/decorator/index.js.map +0 -1
  39. package/dist/decorator/preset/index.d.ts +0 -3
  40. package/dist/decorator/preset/index.d.ts.map +0 -1
  41. package/dist/decorator/preset/index.js +0 -25
  42. package/dist/decorator/preset/index.js.map +0 -1
  43. package/dist/decorator/preset/type.d.ts +0 -6
  44. package/dist/decorator/preset/type.d.ts.map +0 -1
  45. package/dist/decorator/preset/type.js +0 -9
  46. package/dist/decorator/preset/type.js.map +0 -1
  47. package/dist/decorator/preset/utils/check.d.ts +0 -3
  48. package/dist/decorator/preset/utils/check.d.ts.map +0 -1
  49. package/dist/decorator/preset/utils/check.js +0 -17
  50. package/dist/decorator/preset/utils/check.js.map +0 -1
  51. package/dist/decorator/preset/utils/index.d.ts +0 -4
  52. package/dist/decorator/preset/utils/index.d.ts.map +0 -1
  53. package/dist/decorator/preset/utils/index.js +0 -26
  54. package/dist/decorator/preset/utils/index.js.map +0 -1
  55. package/dist/decorator/preset/utils/load.d.ts +0 -3
  56. package/dist/decorator/preset/utils/load.d.ts.map +0 -1
  57. package/dist/decorator/preset/utils/load.js +0 -50
  58. package/dist/decorator/preset/utils/load.js.map +0 -1
  59. package/dist/decorator/preset/utils/normalize.d.ts +0 -2
  60. package/dist/decorator/preset/utils/normalize.d.ts.map +0 -1
  61. package/dist/decorator/preset/utils/normalize.js +0 -26
  62. package/dist/decorator/preset/utils/normalize.js.map +0 -1
  63. package/dist/decorator/property-manager/index.d.ts +0 -3
  64. package/dist/decorator/property-manager/index.d.ts.map +0 -1
  65. package/dist/decorator/property-manager/index.js +0 -25
  66. package/dist/decorator/property-manager/index.js.map +0 -1
  67. package/dist/decorator/property-manager/module.d.ts +0 -17
  68. package/dist/decorator/property-manager/module.d.ts.map +0 -1
  69. package/dist/decorator/property-manager/module.js +0 -59
  70. package/dist/decorator/property-manager/module.js.map +0 -1
  71. package/dist/decorator/property-manager/utils.d.ts +0 -6
  72. package/dist/decorator/property-manager/utils.d.ts.map +0 -1
  73. package/dist/decorator/property-manager/utils.js +0 -91
  74. package/dist/decorator/property-manager/utils.js.map +0 -1
  75. package/dist/decorator/resolver/index.d.ts +0 -3
  76. package/dist/decorator/resolver/index.d.ts.map +0 -1
  77. package/dist/decorator/resolver/index.js +0 -25
  78. package/dist/decorator/resolver/index.js.map +0 -1
  79. package/dist/decorator/resolver/module.d.ts +0 -27
  80. package/dist/decorator/resolver/module.d.ts.map +0 -1
  81. package/dist/decorator/resolver/module.js +0 -72
  82. package/dist/decorator/resolver/module.js.map +0 -1
  83. package/dist/decorator/resolver/type.d.ts +0 -10
  84. package/dist/decorator/resolver/type.d.ts.map +0 -1
  85. package/dist/decorator/resolver/type.js +0 -3
  86. package/dist/decorator/resolver/type.js.map +0 -1
  87. package/dist/decorator/sets/class.d.ts +0 -7
  88. package/dist/decorator/sets/class.d.ts.map +0 -1
  89. package/dist/decorator/sets/class.js +0 -9
  90. package/dist/decorator/sets/class.js.map +0 -1
  91. package/dist/decorator/sets/index.d.ts +0 -8
  92. package/dist/decorator/sets/index.d.ts.map +0 -1
  93. package/dist/decorator/sets/index.js +0 -29
  94. package/dist/decorator/sets/index.js.map +0 -1
  95. package/dist/decorator/sets/method.d.ts +0 -14
  96. package/dist/decorator/sets/method.d.ts.map +0 -1
  97. package/dist/decorator/sets/method.js +0 -9
  98. package/dist/decorator/sets/method.js.map +0 -1
  99. package/dist/decorator/sets/mixed.d.ts +0 -12
  100. package/dist/decorator/sets/mixed.d.ts.map +0 -1
  101. package/dist/decorator/sets/mixed.js +0 -9
  102. package/dist/decorator/sets/mixed.js.map +0 -1
  103. package/dist/decorator/sets/parameter.d.ts +0 -21
  104. package/dist/decorator/sets/parameter.d.ts.map +0 -1
  105. package/dist/decorator/sets/parameter.js +0 -9
  106. package/dist/decorator/sets/parameter.js.map +0 -1
  107. package/dist/decorator/sets/request.d.ts +0 -6
  108. package/dist/decorator/sets/request.d.ts.map +0 -1
  109. package/dist/decorator/sets/request.js +0 -9
  110. package/dist/decorator/sets/request.js.map +0 -1
  111. package/dist/decorator/sets/response.d.ts +0 -17
  112. package/dist/decorator/sets/response.d.ts.map +0 -1
  113. package/dist/decorator/sets/response.js +0 -9
  114. package/dist/decorator/sets/response.js.map +0 -1
  115. package/dist/decorator/sets/type.d.ts +0 -4
  116. package/dist/decorator/sets/type.d.ts.map +0 -1
  117. package/dist/decorator/sets/type.js +0 -3
  118. package/dist/decorator/sets/type.js.map +0 -1
  119. package/dist/decorator/type.d.ts +0 -32
  120. package/dist/decorator/type.d.ts.map +0 -1
  121. package/dist/decorator/type.js +0 -9
  122. package/dist/decorator/type.js.map +0 -1
  123. package/dist/error/base.d.ts +0 -3
  124. package/dist/error/base.d.ts.map +0 -1
  125. package/dist/error/base.js +0 -13
  126. package/dist/error/base.js.map +0 -1
  127. package/dist/error/index.d.ts +0 -2
  128. package/dist/error/index.d.ts.map +0 -1
  129. package/dist/error/index.js +0 -24
  130. package/dist/error/index.js.map +0 -1
  131. package/dist/generator/abstract.d.ts +0 -19
  132. package/dist/generator/abstract.d.ts.map +0 -1
  133. package/dist/generator/abstract.js +0 -151
  134. package/dist/generator/abstract.js.map +0 -1
  135. package/dist/generator/controller/index.d.ts +0 -3
  136. package/dist/generator/controller/index.d.ts.map +0 -1
  137. package/dist/generator/controller/index.js +0 -25
  138. package/dist/generator/controller/index.js.map +0 -1
  139. package/dist/generator/controller/module.d.ts +0 -13
  140. package/dist/generator/controller/module.d.ts.map +0 -1
  141. package/dist/generator/controller/module.js +0 -68
  142. package/dist/generator/controller/module.js.map +0 -1
  143. package/dist/generator/controller/type.d.ts +0 -47
  144. package/dist/generator/controller/type.d.ts.map +0 -1
  145. package/dist/generator/controller/type.js +0 -3
  146. package/dist/generator/controller/type.js.map +0 -1
  147. package/dist/generator/index.d.ts +0 -7
  148. package/dist/generator/index.d.ts.map +0 -1
  149. package/dist/generator/index.js +0 -29
  150. package/dist/generator/index.js.map +0 -1
  151. package/dist/generator/metadata/index.d.ts +0 -4
  152. package/dist/generator/metadata/index.d.ts.map +0 -1
  153. package/dist/generator/metadata/index.js +0 -26
  154. package/dist/generator/metadata/index.js.map +0 -1
  155. package/dist/generator/metadata/module.d.ts +0 -39
  156. package/dist/generator/metadata/module.d.ts.map +0 -1
  157. package/dist/generator/metadata/module.js +0 -140
  158. package/dist/generator/metadata/module.js.map +0 -1
  159. package/dist/generator/metadata/type.d.ts +0 -25
  160. package/dist/generator/metadata/type.d.ts.map +0 -1
  161. package/dist/generator/metadata/type.js +0 -3
  162. package/dist/generator/metadata/type.js.map +0 -1
  163. package/dist/generator/metadata/utils.d.ts +0 -3
  164. package/dist/generator/metadata/utils.d.ts.map +0 -1
  165. package/dist/generator/metadata/utils.js +0 -18
  166. package/dist/generator/metadata/utils.js.map +0 -1
  167. package/dist/generator/method/constants.d.ts +0 -11
  168. package/dist/generator/method/constants.d.ts.map +0 -1
  169. package/dist/generator/method/constants.js +0 -21
  170. package/dist/generator/method/constants.js.map +0 -1
  171. package/dist/generator/method/index.d.ts +0 -4
  172. package/dist/generator/method/index.d.ts.map +0 -1
  173. package/dist/generator/method/index.js +0 -26
  174. package/dist/generator/method/index.js.map +0 -1
  175. package/dist/generator/method/module.d.ts +0 -19
  176. package/dist/generator/method/module.d.ts.map +0 -1
  177. package/dist/generator/method/module.js +0 -188
  178. package/dist/generator/method/module.js.map +0 -1
  179. package/dist/generator/method/type.d.ts +0 -23
  180. package/dist/generator/method/type.d.ts.map +0 -1
  181. package/dist/generator/method/type.js +0 -9
  182. package/dist/generator/method/type.js.map +0 -1
  183. package/dist/generator/parameter/constants.d.ts +0 -19
  184. package/dist/generator/parameter/constants.d.ts.map +0 -1
  185. package/dist/generator/parameter/constants.js +0 -30
  186. package/dist/generator/parameter/constants.js.map +0 -1
  187. package/dist/generator/parameter/error.d.ts +0 -35
  188. package/dist/generator/parameter/error.d.ts.map +0 -1
  189. package/dist/generator/parameter/error.js +0 -68
  190. package/dist/generator/parameter/error.js.map +0 -1
  191. package/dist/generator/parameter/index.d.ts +0 -5
  192. package/dist/generator/parameter/index.d.ts.map +0 -1
  193. package/dist/generator/parameter/index.js +0 -27
  194. package/dist/generator/parameter/index.js.map +0 -1
  195. package/dist/generator/parameter/module.d.ts +0 -29
  196. package/dist/generator/parameter/module.d.ts.map +0 -1
  197. package/dist/generator/parameter/module.js +0 -566
  198. package/dist/generator/parameter/module.js.map +0 -1
  199. package/dist/generator/parameter/type.d.ts +0 -25
  200. package/dist/generator/parameter/type.d.ts.map +0 -1
  201. package/dist/generator/parameter/type.js +0 -9
  202. package/dist/generator/parameter/type.js.map +0 -1
  203. package/dist/generator/type.d.ts +0 -20
  204. package/dist/generator/type.d.ts.map +0 -1
  205. package/dist/generator/type.js +0 -9
  206. package/dist/generator/type.js.map +0 -1
  207. package/dist/index.d.ts +0 -10
  208. package/dist/index.d.ts.map +0 -1
  209. package/dist/index.js +0 -32
  210. package/dist/index.js.map +0 -1
  211. package/dist/module.d.ts +0 -5
  212. package/dist/module.d.ts.map +0 -1
  213. package/dist/module.js +0 -40
  214. package/dist/module.js.map +0 -1
  215. package/dist/resolver/constants.d.ts +0 -37
  216. package/dist/resolver/constants.d.ts.map +0 -1
  217. package/dist/resolver/constants.js +0 -48
  218. package/dist/resolver/constants.js.map +0 -1
  219. package/dist/resolver/error.d.ts +0 -8
  220. package/dist/resolver/error.d.ts.map +0 -1
  221. package/dist/resolver/error.js +0 -41
  222. package/dist/resolver/error.js.map +0 -1
  223. package/dist/resolver/extension/index.d.ts +0 -3
  224. package/dist/resolver/extension/index.d.ts.map +0 -1
  225. package/dist/resolver/extension/index.js +0 -25
  226. package/dist/resolver/extension/index.js.map +0 -1
  227. package/dist/resolver/extension/module.d.ts +0 -5
  228. package/dist/resolver/extension/module.d.ts.map +0 -1
  229. package/dist/resolver/extension/module.js +0 -26
  230. package/dist/resolver/extension/module.js.map +0 -1
  231. package/dist/resolver/extension/type.d.ts +0 -8
  232. package/dist/resolver/extension/type.d.ts.map +0 -1
  233. package/dist/resolver/extension/type.js +0 -9
  234. package/dist/resolver/extension/type.js.map +0 -1
  235. package/dist/resolver/index.d.ts +0 -6
  236. package/dist/resolver/index.d.ts.map +0 -1
  237. package/dist/resolver/index.js +0 -28
  238. package/dist/resolver/index.js.map +0 -1
  239. package/dist/resolver/module.d.ts +0 -56
  240. package/dist/resolver/module.d.ts.map +0 -1
  241. package/dist/resolver/module.js +0 -1023
  242. package/dist/resolver/module.js.map +0 -1
  243. package/dist/resolver/sub/base.d.ts +0 -7
  244. package/dist/resolver/sub/base.d.ts.map +0 -1
  245. package/dist/resolver/sub/base.js +0 -50
  246. package/dist/resolver/sub/base.js.map +0 -1
  247. package/dist/resolver/sub/index.d.ts +0 -4
  248. package/dist/resolver/sub/index.d.ts.map +0 -1
  249. package/dist/resolver/sub/index.js +0 -26
  250. package/dist/resolver/sub/index.js.map +0 -1
  251. package/dist/resolver/sub/primitive.d.ts +0 -11
  252. package/dist/resolver/sub/primitive.d.ts.map +0 -1
  253. package/dist/resolver/sub/primitive.js +0 -124
  254. package/dist/resolver/sub/primitive.js.map +0 -1
  255. package/dist/resolver/sub/reference.d.ts +0 -15
  256. package/dist/resolver/sub/reference.d.ts.map +0 -1
  257. package/dist/resolver/sub/reference.js +0 -141
  258. package/dist/resolver/sub/reference.js.map +0 -1
  259. package/dist/resolver/type.d.ts +0 -143
  260. package/dist/resolver/type.d.ts.map +0 -1
  261. package/dist/resolver/type.js +0 -135
  262. package/dist/resolver/type.js.map +0 -1
  263. package/dist/resolver/utils.d.ts +0 -4
  264. package/dist/resolver/utils.d.ts.map +0 -1
  265. package/dist/resolver/utils.js +0 -37
  266. package/dist/resolver/utils.js.map +0 -1
  267. package/dist/type.d.ts +0 -2
  268. package/dist/type.d.ts.map +0 -1
  269. package/dist/type.js +0 -9
  270. package/dist/type.js.map +0 -1
  271. package/dist/utils/array.d.ts +0 -2
  272. package/dist/utils/array.d.ts.map +0 -1
  273. package/dist/utils/array.js +0 -21
  274. package/dist/utils/array.js.map +0 -1
  275. package/dist/utils/index.d.ts +0 -10
  276. package/dist/utils/index.d.ts.map +0 -1
  277. package/dist/utils/index.js +0 -32
  278. package/dist/utils/index.js.map +0 -1
  279. package/dist/utils/initializer.d.ts +0 -5
  280. package/dist/utils/initializer.d.ts.map +0 -1
  281. package/dist/utils/initializer.js +0 -141
  282. package/dist/utils/initializer.js.map +0 -1
  283. package/dist/utils/js-doc/constants.d.ts +0 -19
  284. package/dist/utils/js-doc/constants.d.ts.map +0 -1
  285. package/dist/utils/js-doc/constants.js +0 -30
  286. package/dist/utils/js-doc/constants.js.map +0 -1
  287. package/dist/utils/js-doc/index.d.ts +0 -4
  288. package/dist/utils/js-doc/index.d.ts.map +0 -1
  289. package/dist/utils/js-doc/index.js +0 -26
  290. package/dist/utils/js-doc/index.js.map +0 -1
  291. package/dist/utils/js-doc/module.d.ts +0 -9
  292. package/dist/utils/js-doc/module.d.ts.map +0 -1
  293. package/dist/utils/js-doc/module.js +0 -97
  294. package/dist/utils/js-doc/module.js.map +0 -1
  295. package/dist/utils/js-doc/utils.d.ts +0 -3
  296. package/dist/utils/js-doc/utils.d.ts.map +0 -1
  297. package/dist/utils/js-doc/utils.js +0 -28
  298. package/dist/utils/js-doc/utils.js.map +0 -1
  299. package/dist/utils/node/index.d.ts +0 -3
  300. package/dist/utils/node/index.d.ts.map +0 -1
  301. package/dist/utils/node/index.js +0 -25
  302. package/dist/utils/node/index.js.map +0 -1
  303. package/dist/utils/node/module.d.ts +0 -10
  304. package/dist/utils/node/module.d.ts.map +0 -1
  305. package/dist/utils/node/module.js +0 -51
  306. package/dist/utils/node/module.js.map +0 -1
  307. package/dist/utils/node/type.d.ts +0 -6
  308. package/dist/utils/node/type.d.ts.map +0 -1
  309. package/dist/utils/node/type.js +0 -9
  310. package/dist/utils/node/type.js.map +0 -1
  311. package/dist/utils/object.d.ts +0 -2
  312. package/dist/utils/object.d.ts.map +0 -1
  313. package/dist/utils/object.js +0 -14
  314. package/dist/utils/object.js.map +0 -1
  315. package/dist/utils/path-normalize.d.ts +0 -2
  316. package/dist/utils/path-normalize.d.ts.map +0 -1
  317. package/dist/utils/path-normalize.js +0 -16
  318. package/dist/utils/path-normalize.js.map +0 -1
  319. package/dist/utils/source-files.d.ts +0 -3
  320. package/dist/utils/source-files.d.ts.map +0 -1
  321. package/dist/utils/source-files.js +0 -31
  322. package/dist/utils/source-files.js.map +0 -1
  323. package/dist/utils/tsconfig/index.d.ts +0 -3
  324. package/dist/utils/tsconfig/index.d.ts.map +0 -1
  325. package/dist/utils/tsconfig/index.js +0 -25
  326. package/dist/utils/tsconfig/index.js.map +0 -1
  327. package/dist/utils/tsconfig/module.d.ts +0 -4
  328. package/dist/utils/tsconfig/module.d.ts.map +0 -1
  329. package/dist/utils/tsconfig/module.js +0 -53
  330. package/dist/utils/tsconfig/module.js.map +0 -1
  331. package/dist/utils/tsconfig/type.d.ts +0 -11
  332. package/dist/utils/tsconfig/type.d.ts.map +0 -1
  333. package/dist/utils/tsconfig/type.js +0 -9
  334. package/dist/utils/tsconfig/type.js.map +0 -1
  335. package/dist/utils/validator/constants.d.ts +0 -13
  336. package/dist/utils/validator/constants.d.ts.map +0 -1
  337. package/dist/utils/validator/constants.js +0 -23
  338. package/dist/utils/validator/constants.js.map +0 -1
  339. package/dist/utils/validator/index.d.ts +0 -4
  340. package/dist/utils/validator/index.d.ts.map +0 -1
  341. package/dist/utils/validator/index.js +0 -26
  342. package/dist/utils/validator/index.js.map +0 -1
  343. package/dist/utils/validator/module.d.ts +0 -4
  344. package/dist/utils/validator/module.d.ts.map +0 -1
  345. package/dist/utils/validator/module.js +0 -141
  346. package/dist/utils/validator/module.js.map +0 -1
  347. package/dist/utils/validator/type.d.ts +0 -6
  348. package/dist/utils/validator/type.d.ts.map +0 -1
  349. package/dist/utils/validator/type.js +0 -9
  350. package/dist/utils/validator/type.js.map +0 -1
@@ -0,0 +1,1819 @@
1
+ import { BaseError } from "@ebec/core";
2
+ import * as ts from "typescript";
3
+ import { ClassDeclaration, CompilerOptions, EnumDeclaration, EnumMember, Expression, JSDoc, JSDocComment, JSDocTag, MethodDeclaration, Node, NodeArray, ParameterDeclaration, PropertyDeclaration, PropertySignature, SyntaxKind, TypeAliasDeclaration, TypeChecker, TypeNode } from "typescript";
4
+ import { Container } from "validup";
5
+ import { z } from "zod";
6
+
7
+ //#region src/core/validator/types.d.ts
8
+ interface ValidatorMeta {}
9
+ type Validator = {
10
+ value?: unknown;
11
+ message?: string;
12
+ meta?: ValidatorMeta;
13
+ };
14
+ type Validators = Record<string, Validator>;
15
+ //#endregion
16
+ //#region src/core/resolver/constants.d.ts
17
+ declare enum TypeName {
18
+ STRING = "string",
19
+ BOOLEAN = "boolean",
20
+ BIGINT = "bigint",
21
+ DOUBLE = "double",
22
+ FLOAT = "float",
23
+ FILE = "file",
24
+ INTEGER = "integer",
25
+ LONG = "long",
26
+ ENUM = "enum",
27
+ ARRAY = "array",
28
+ DATETIME = "datetime",
29
+ DATE = "date",
30
+ BINARY = "binary",
31
+ BUFFER = "buffer",
32
+ BYTE = "byte",
33
+ VOID = "void",
34
+ OBJECT = "object",
35
+ ANY = "any",
36
+ UNDEFINED = "undefined",
37
+ NEVER = "never",
38
+ REF_ENUM = "refEnum",
39
+ REF_OBJECT = "refObject",
40
+ REF_ALIAS = "refAlias",
41
+ NESTED_OBJECT_LITERAL = "nestedObjectLiteral",
42
+ UNION = "union",
43
+ INTERSECTION = "intersection",
44
+ TUPLE = "tuple"
45
+ }
46
+ declare enum UtilityTypeName {
47
+ NON_NULLABLE = "NonNullable",
48
+ OMIT = "Omit",
49
+ PARTIAL = "Partial",
50
+ READONLY = "Readonly",
51
+ RECORD = "Record",
52
+ REQUIRED = "Required",
53
+ PICK = "Pick",
54
+ EXTRACT = "Extract",
55
+ EXCLUDE = "Exclude",
56
+ RETURN_TYPE = "ReturnType",
57
+ PARAMETERS = "Parameters",
58
+ AWAITED = "Awaited",
59
+ INSTANCE_TYPE = "InstanceType",
60
+ CONSTRUCTOR_PARAMETERS = "ConstructorParameters"
61
+ }
62
+ //#endregion
63
+ //#region src/core/resolver/extension.d.ts
64
+ type Extension = {
65
+ key: string;
66
+ value: ExtensionType | ExtensionType[];
67
+ };
68
+ type ExtensionType = string | number | boolean | null | ExtensionType[] | {
69
+ [name: string]: ExtensionType | ExtensionType[];
70
+ };
71
+ //#endregion
72
+ //#region src/core/resolver/types.d.ts
73
+ type Type = PrimitiveType | ObjectType | EnumType | ArrayType | FileType | DateTimeType | DateType | BinaryType | BufferType | ByteType | AnyType | UndefinedType | NeverType | RefEnumType | RefObjectType | RefAliasType | NestedObjectLiteralType | UnionType | IntersectionType | TupleType | VoidType;
74
+ type BaseType = {
75
+ typeName: `${TypeName}`;
76
+ };
77
+ type AnyType = BaseType & {
78
+ typeName: `${TypeName.ANY}`;
79
+ };
80
+ type UndefinedType = BaseType & {
81
+ typeName: `${TypeName.UNDEFINED}`;
82
+ };
83
+ type StringType = BaseType & {
84
+ typeName: `${TypeName.STRING}`;
85
+ };
86
+ type BooleanType = BaseType & {
87
+ typeName: `${TypeName.BOOLEAN}`;
88
+ };
89
+ type BigintType = BaseType & {
90
+ typeName: `${TypeName.BIGINT}`;
91
+ };
92
+ type DoubleType = BaseType & {
93
+ typeName: `${TypeName.DOUBLE}`;
94
+ };
95
+ type FloatType = BaseType & {
96
+ typeName: `${TypeName.FLOAT}`;
97
+ };
98
+ type IntegerType = BaseType & {
99
+ typeName: `${TypeName.INTEGER}`;
100
+ };
101
+ type LongType = BaseType & {
102
+ typeName: `${TypeName.LONG}`;
103
+ };
104
+ type VoidType = BaseType & {
105
+ typeName: `${TypeName.VOID}`;
106
+ };
107
+ type NeverType = BaseType & {
108
+ typeName: `${TypeName.NEVER}`;
109
+ };
110
+ type DateType = BaseType & {
111
+ typeName: `${TypeName.DATE}`;
112
+ };
113
+ type FileType = BaseType & {
114
+ typeName: `${TypeName.FILE}`;
115
+ };
116
+ type DateTimeType = BaseType & {
117
+ typeName: `${TypeName.DATETIME}`;
118
+ };
119
+ type BinaryType = BaseType & {
120
+ typeName: `${TypeName.BINARY}`;
121
+ };
122
+ type BufferType = BaseType & {
123
+ typeName: `${TypeName.BUFFER}`;
124
+ };
125
+ type ByteType = BaseType & {
126
+ typeName: `${TypeName.BYTE}`;
127
+ };
128
+ type ObjectType = BaseType & {
129
+ typeName: `${TypeName.OBJECT}`;
130
+ };
131
+ type EnumType = BaseType & {
132
+ members: Array<string | number | boolean | null>;
133
+ typeName: `${TypeName.ENUM}`;
134
+ };
135
+ type ArrayType = BaseType & {
136
+ elementType: Type;
137
+ typeName: `${TypeName.ARRAY}`;
138
+ };
139
+ type NestedObjectLiteralType = BaseType & {
140
+ typeName: `${TypeName.NESTED_OBJECT_LITERAL}`;
141
+ properties: ResolverProperty[];
142
+ additionalProperties?: Type;
143
+ };
144
+ type IntersectionType = BaseType & {
145
+ typeName: `${TypeName.INTERSECTION}`;
146
+ members: Type[];
147
+ };
148
+ type UnionType = BaseType & {
149
+ typeName: `${TypeName.UNION}`;
150
+ members: Type[];
151
+ };
152
+ type TupleElement = {
153
+ type: Type;
154
+ name?: string;
155
+ };
156
+ type TupleType = BaseType & {
157
+ typeName: `${TypeName.TUPLE}`;
158
+ elements: TupleElement[];
159
+ };
160
+ type ReferenceType = RefEnumType | RefObjectType | RefAliasType;
161
+ type ReferenceTypes = Record<string, ReferenceType>;
162
+ type DependencyResolver = (referenceTypes: ReferenceTypes) => void;
163
+ type ReferenceTypeBase = BaseType & {
164
+ description?: string;
165
+ typeName: `${TypeName.REF_ALIAS}` | `${TypeName.REF_ENUM}` | `${TypeName.REF_OBJECT}`;
166
+ refName: string;
167
+ example?: unknown;
168
+ deprecated: boolean;
169
+ };
170
+ type RefEnumType = ReferenceTypeBase & {
171
+ typeName: `${TypeName.REF_ENUM}`;
172
+ members: Array<string | number | boolean>;
173
+ memberNames?: string[];
174
+ };
175
+ type RefObjectType = ReferenceTypeBase & {
176
+ typeName: `${TypeName.REF_OBJECT}`;
177
+ properties: ResolverProperty[];
178
+ additionalProperties?: Type;
179
+ };
180
+ type RefAliasType = Omit<ResolverProperty, 'name' | 'required'> & ReferenceTypeBase & {
181
+ typeName: `${TypeName.REF_ALIAS}`;
182
+ };
183
+ type PrimitiveType = AnyType | BinaryType | BooleanType | BufferType | ByteType | DateType | DateTimeType | DoubleType | FloatType | FileType | BigintType | IntegerType | LongType | ObjectType | StringType | UndefinedType;
184
+ type ResolverProperty = {
185
+ default?: any;
186
+ format?: string;
187
+ example?: unknown;
188
+ validators?: Record<string, Validator>;
189
+ description?: string;
190
+ name: string;
191
+ type: Type;
192
+ required: boolean;
193
+ deprecated: boolean;
194
+ extensions?: Extension[];
195
+ };
196
+ /**
197
+ * Cache interface for the resolver's type cache.
198
+ */
199
+ interface IResolverCache {
200
+ getCachedType(name: string): ReferenceType | undefined;
201
+ setCachedType(name: string, type: ReferenceType): void;
202
+ isInProgress(name: string): boolean;
203
+ markInProgress(name: string): void;
204
+ clearInProgress(name: string): void;
205
+ clear(): void;
206
+ }
207
+ //#endregion
208
+ //#region src/core/resolver/type-guards.d.ts
209
+ declare function isAnyType(param: BaseType): param is AnyType;
210
+ declare function isUndefinedType(param: BaseType): param is UndefinedType;
211
+ declare function isStringType(param: BaseType): param is StringType;
212
+ declare function isBooleanType(param: BaseType): param is BooleanType;
213
+ declare function isBigintType(param: BaseType): param is BigintType;
214
+ declare function isDoubleType(param: BaseType): param is DoubleType;
215
+ declare function isFloatType(param: BaseType): param is FloatType;
216
+ declare function isIntegerType(param: BaseType): param is IntegerType;
217
+ declare function isLongType(param: BaseType): param is LongType;
218
+ declare function isVoidType(param: BaseType | undefined): param is VoidType;
219
+ declare function isNeverType(param: BaseType): param is NeverType;
220
+ declare function isDateType(param: BaseType): param is DateType;
221
+ declare function isFileType(param: BaseType): param is FileType;
222
+ declare function isDateTimeType(param: BaseType): param is DateTimeType;
223
+ declare function isBinaryType(param: BaseType): param is BinaryType;
224
+ declare function isBufferType(param: BaseType): param is BufferType;
225
+ declare function isByteType(param: BaseType): param is ByteType;
226
+ declare function isObjectType(param: BaseType): param is ObjectType;
227
+ declare function isEnumType(param: BaseType): param is EnumType;
228
+ declare function isArrayType(param: BaseType): param is ArrayType;
229
+ declare function isNestedObjectLiteralType(param: BaseType): param is NestedObjectLiteralType;
230
+ declare function isIntersectionType(param: BaseType): param is IntersectionType;
231
+ declare function isUnionType(param: BaseType): param is UnionType;
232
+ declare function isTupleType(param: BaseType): param is TupleType;
233
+ declare function isRefEnumType(param: BaseType): param is RefEnumType;
234
+ declare function isRefObjectType(param: BaseType): param is RefObjectType;
235
+ declare function isRefAliasType(param: BaseType): param is RefAliasType;
236
+ declare function isReferenceType(param: BaseType): param is ReferenceType;
237
+ declare function isPrimitiveType(type: BaseType): type is PrimitiveType;
238
+ //#endregion
239
+ //#region src/core/error/base.d.ts
240
+ declare class MetadataError extends BaseError {}
241
+ //#endregion
242
+ //#region src/core/resolver/error.d.ts
243
+ declare class ResolverError extends MetadataError {
244
+ readonly file?: string;
245
+ readonly line?: number;
246
+ constructor(message: string, node?: Node | TypeNode, options?: boolean | {
247
+ onlyCurrent?: boolean;
248
+ cause?: unknown;
249
+ });
250
+ }
251
+ declare function isResolverError(input: unknown): input is ResolverError;
252
+ declare function prettyLocationOfNode(node: Node | TypeNode): {
253
+ text: string;
254
+ file: string;
255
+ line?: number;
256
+ } | undefined;
257
+ declare function prettyTroubleCause(node: Node | TypeNode, onlyCurrent?: boolean): string;
258
+ //#endregion
259
+ //#region src/core/generator/types.d.ts
260
+ type Security = Record<string, string[]>;
261
+ type Example = {
262
+ value: unknown | unknown[];
263
+ summary?: string;
264
+ description?: string;
265
+ label?: string;
266
+ };
267
+ type Response = {
268
+ description: string;
269
+ examples?: Example[];
270
+ headers?: NestedObjectLiteralType | RefObjectType;
271
+ name: string;
272
+ produces?: string[];
273
+ status: string;
274
+ schema?: BaseType;
275
+ };
276
+ //#endregion
277
+ //#region src/core/parameter/constants.d.ts
278
+ declare const ParameterSource: {
279
+ readonly BODY: "body";
280
+ readonly BODY_PROP: "bodyProp";
281
+ readonly CONTEXT: "context";
282
+ readonly COOKIE: "cookie";
283
+ readonly HEADER: "header";
284
+ readonly FORM_DATA: "formData";
285
+ readonly QUERY: "query";
286
+ readonly QUERY_PROP: "queryProp";
287
+ readonly PATH: "path";
288
+ };
289
+ type ParameterSource = typeof ParameterSource[keyof typeof ParameterSource];
290
+ declare const CollectionFormat: {
291
+ readonly CSV: "csv";
292
+ readonly SSV: "ssv";
293
+ readonly TSV: "tsv";
294
+ readonly PIPES: "pipes";
295
+ readonly MULTI: "multi";
296
+ };
297
+ type CollectionFormat = typeof CollectionFormat[keyof typeof CollectionFormat];
298
+ declare const ParameterErrorCode: {
299
+ readonly TYPE_UNSUPPORTED: "PARAMETER_TYPE_UNSUPPORTED";
300
+ readonly METHOD_UNSUPPORTED: "PARAMETER_METHOD_UNSUPPORTED";
301
+ readonly PATH_MISMATCH: "PARAMETER_PATH_MISMATCH";
302
+ readonly SCOPE_REQUIRED: "PARAMETER_SCOPE_REQUIRED";
303
+ readonly INVALID_EXAMPLE: "PARAMETER_INVALID_EXAMPLE";
304
+ };
305
+ //#endregion
306
+ //#region src/core/parameter/types.d.ts
307
+ type Parameter = {
308
+ parameterName: string;
309
+ description: string;
310
+ in: `${ParameterSource}`;
311
+ name: string;
312
+ required: boolean;
313
+ type: Type;
314
+ collectionFormat?: `${CollectionFormat}`;
315
+ allowEmptyValue?: boolean;
316
+ default?: any;
317
+ maxItems?: number;
318
+ minItems?: number;
319
+ deprecated?: boolean;
320
+ examples?: Example[];
321
+ exampleLabels?: string[];
322
+ extensions: Extension[];
323
+ validators?: Record<string, Validator>;
324
+ };
325
+ type ArrayParameter = Parameter & {
326
+ type: ArrayType;
327
+ };
328
+ interface IParameterGenerator {
329
+ generate(): Parameter[];
330
+ }
331
+ //#endregion
332
+ //#region src/core/method/types.d.ts
333
+ type Method = {
334
+ operationId?: string;
335
+ deprecated?: boolean;
336
+ description: string;
337
+ method: MethodType;
338
+ extensions: Extension[];
339
+ name: string;
340
+ parameters: Parameter[];
341
+ path: string;
342
+ type: BaseType;
343
+ tags: string[];
344
+ responses: Response[];
345
+ security?: Security[];
346
+ summary?: string;
347
+ consumes: string[];
348
+ produces: string[];
349
+ hidden: boolean;
350
+ };
351
+ type MethodType = 'get' | 'post' | 'put' | 'delete' | 'options' | 'head' | 'patch';
352
+ //#endregion
353
+ //#region src/core/controller/types.d.ts
354
+ type Controller = {
355
+ /**
356
+ * Allowed Content-Types to pass
357
+ * data according the definition.
358
+ *
359
+ * i.e. ['application/json']
360
+ */
361
+ consumes: string[];
362
+ /**
363
+ * Whether every operation under this controller should be considered
364
+ * deprecated. OpenAPI has no controller-level `deprecated` field — emitters
365
+ * should cascade this flag to each emitted operation (combined with the
366
+ * method's own `deprecated`).
367
+ */
368
+ deprecated?: boolean;
369
+ /**
370
+ * Vendor extensions (x-* keys) declared on the controller class.
371
+ */
372
+ extensions: Extension[];
373
+ /**
374
+ * Is controller hidden, and should
375
+ * not be used/displayed in some scenarios.
376
+ */
377
+ hidden: boolean;
378
+ /**
379
+ * File Location of the Controller.
380
+ */
381
+ location: string;
382
+ /**
383
+ * Array of found method ( class functions )
384
+ * for a specific controller (class)
385
+ */
386
+ methods: Method[];
387
+ name: string;
388
+ /**
389
+ * Relative URL paths the controller mounts at, e.g. ['/users'] or
390
+ * ['/roles', '/realms/:id/roles'] for multi-mounting.
391
+ *
392
+ * Always non-empty; a controller declared with no path argument has
393
+ * `paths: ['']`.
394
+ */
395
+ paths: string[];
396
+ /**
397
+ * Possible Content-Types to receive
398
+ * data according the definition.
399
+ *
400
+ * i.e. ['application/json']
401
+ */
402
+ produces: string[];
403
+ responses: Response[];
404
+ /**
405
+ * Tags can be used to group controllers
406
+ * by a name together.
407
+ *
408
+ * i.e. ['auth']
409
+ */
410
+ tags: string[];
411
+ security?: Security[];
412
+ };
413
+ interface IControllerGenerator {
414
+ isValid(): boolean;
415
+ generate(): Controller | null;
416
+ }
417
+ //#endregion
418
+ //#region src/core/method/constants.d.ts
419
+ declare const MethodName: {
420
+ readonly ALL: "ALL";
421
+ readonly GET: "GET";
422
+ readonly POST: "POST";
423
+ readonly PUT: "PUT";
424
+ readonly DELETE: "DELETE";
425
+ readonly PATCH: "PATCH";
426
+ readonly OPTIONS: "OPTIONS";
427
+ readonly HEAD: "HEAD";
428
+ };
429
+ type MethodName = typeof MethodName[keyof typeof MethodName];
430
+ //#endregion
431
+ //#region src/core/parameter/error.d.ts
432
+ type UnsupportedTypeContext = {
433
+ decoratorName: string;
434
+ propertyName: string;
435
+ type: BaseType;
436
+ node?: Node;
437
+ };
438
+ type UnsupportedMethodContext = {
439
+ decoratorName: string;
440
+ propertyName: string;
441
+ method: string;
442
+ node?: Node;
443
+ };
444
+ type PathMatchInvalidContext = {
445
+ decoratorName: string;
446
+ propertyName: string;
447
+ path: string;
448
+ node?: Node;
449
+ };
450
+ type ScopeRequiredContext = {
451
+ decoratorName: string;
452
+ node?: Node;
453
+ };
454
+ declare class ParameterError extends MetadataError {
455
+ static typeUnsupported(context: UnsupportedTypeContext): ParameterError;
456
+ static methodUnsupported(context: UnsupportedMethodContext): ParameterError;
457
+ static invalidPathMatch(context: PathMatchInvalidContext): ParameterError;
458
+ static scopeRequired(context: ScopeRequiredContext): ParameterError;
459
+ static invalidExampleSchema(): ParameterError;
460
+ static getCurrentLocation(node: Node): string;
461
+ }
462
+ //#endregion
463
+ //#region src/core/generator/error.d.ts
464
+ declare class GeneratorError extends MetadataError {}
465
+ declare function isGeneratorError(input: unknown): input is GeneratorError & {
466
+ code: string;
467
+ };
468
+ //#endregion
469
+ //#region src/core/generator/constants.d.ts
470
+ declare const GeneratorErrorCode: {
471
+ readonly CONTROLLER_NO_SOURCE_FILE: "GENERATOR_CONTROLLER_NO_SOURCE_FILE";
472
+ readonly CONTROLLER_NO_NAME: "GENERATOR_CONTROLLER_NO_NAME";
473
+ readonly PARAMETER_GENERATION_FAILED: "GENERATOR_PARAMETER_GENERATION_FAILED";
474
+ readonly BODY_PARAMETER_DUPLICATE: "GENERATOR_BODY_PARAMETER_DUPLICATE";
475
+ readonly BODY_FORM_CONFLICT: "GENERATOR_BODY_FORM_CONFLICT";
476
+ };
477
+ //#endregion
478
+ //#region src/adapters/cache/types.d.ts
479
+ interface CacheOptions {
480
+ /**
481
+ * Specify if the cache driver should be enabled.
482
+ *
483
+ * Default: false
484
+ * */
485
+ enabled: boolean;
486
+ /**
487
+ * Directory relative or absolute path. Auto-created on first save.
488
+ *
489
+ * Default: tmpDir()
490
+ */
491
+ directoryPath: string;
492
+ /**
493
+ * Specify the cache file name. When set, the cache becomes a single-slot
494
+ * store at this exact name (instead of one file per cache key). The
495
+ * in-file `cacheKey` check still rejects mismatches; you just lose
496
+ * multi-key caching.
497
+ *
498
+ * Default: .trapi-metadata-{cacheKey}.json
499
+ */
500
+ fileName?: string;
501
+ /**
502
+ * Files older than this many milliseconds are pruned opportunistically
503
+ * after each successful save. Set to `0` to disable eviction.
504
+ *
505
+ * Default: 7 days
506
+ */
507
+ maxAgeMs: number;
508
+ }
509
+ type CacheOptionsInput = Partial<CacheOptions>;
510
+ type CacheData = {
511
+ /**
512
+ * Opaque composite key — sha256 over (schema version, source files content,
513
+ * compiler options, resolved registry shape, preset name). The reader
514
+ * cross-checks this against the expected key to defend against collisions
515
+ * or schema drift.
516
+ */
517
+ cacheKey: string; /** Stamped at write time; rejected on read if not equal to the current value. */
518
+ schemaVersion: string;
519
+ } & Metadata;
520
+ interface ICacheClient {
521
+ save(data: CacheData): Promise<string | undefined>;
522
+ get(cacheKey: string): Promise<CacheData | undefined>;
523
+ /** Prune cache files older than `maxAgeMs`. Safe to call concurrently. */
524
+ evict(): Promise<void>;
525
+ }
526
+ //#endregion
527
+ //#region src/adapters/cache/client.d.ts
528
+ declare class CacheClient implements ICacheClient {
529
+ private readonly options;
530
+ constructor(input?: string | boolean | CacheOptionsInput);
531
+ save(data: CacheData): Promise<string | undefined>;
532
+ get(cacheKey: string): Promise<CacheData | undefined>;
533
+ /**
534
+ * Prune cache files older than `maxAgeMs`. No-op when disabled or when
535
+ * `maxAgeMs <= 0`. Each unlink is best-effort — a concurrent generator
536
+ * may have already removed the file.
537
+ */
538
+ evict(): Promise<void>;
539
+ private resolveFilePath;
540
+ private ensureDirectory;
541
+ }
542
+ //#endregion
543
+ //#region src/adapters/cache/constants.d.ts
544
+ /**
545
+ * Bump whenever the on-disk cache shape changes incompatibly
546
+ * (Metadata, Controller, Method, Parameter, resolver type nodes,
547
+ * or the cache wrapper itself). Old cache files with a different
548
+ * version are rejected on read.
549
+ */
550
+ declare const CACHE_SCHEMA_VERSION = "3";
551
+ declare const CACHE_FILE_PREFIX = ".trapi-metadata-";
552
+ declare const CACHE_FILE_SUFFIX = ".json";
553
+ /** 7 days. */
554
+ declare const CACHE_DEFAULT_MAX_AGE_MS: number;
555
+ //#endregion
556
+ //#region src/adapters/decorator/constants.d.ts
557
+ declare const ParamKind: {
558
+ readonly Body: "body";
559
+ readonly BodyProp: "bodyProp";
560
+ readonly Context: "context";
561
+ readonly Cookie: "cookie";
562
+ readonly Header: "header";
563
+ readonly FormData: "formData";
564
+ readonly Query: "query";
565
+ readonly QueryProp: "queryProp";
566
+ readonly Path: "path";
567
+ };
568
+ type ParamKind = typeof ParamKind[keyof typeof ParamKind];
569
+ declare const CollectionKind: {
570
+ readonly Csv: "csv";
571
+ readonly Ssv: "ssv";
572
+ readonly Tsv: "tsv";
573
+ readonly Pipes: "pipes";
574
+ readonly Multi: "multi";
575
+ };
576
+ type CollectionKind = typeof CollectionKind[keyof typeof CollectionKind];
577
+ declare const DecoratorTargetKind: {
578
+ readonly Class: "class";
579
+ readonly Method: "method";
580
+ readonly Parameter: "parameter";
581
+ readonly Property: "property";
582
+ };
583
+ type DecoratorTargetKind = typeof DecoratorTargetKind[keyof typeof DecoratorTargetKind];
584
+ declare const DecoratorArgumentKindName: {
585
+ readonly Literal: "literal";
586
+ readonly Object: "object";
587
+ readonly Array: "array";
588
+ readonly Identifier: "identifier";
589
+ readonly Unresolvable: "unresolvable";
590
+ };
591
+ type DecoratorArgumentKindName = typeof DecoratorArgumentKindName[keyof typeof DecoratorArgumentKindName];
592
+ declare const MarkerName: {
593
+ readonly Hidden: "hidden";
594
+ readonly Deprecated: "deprecated";
595
+ readonly Extension: "extension";
596
+ };
597
+ type MarkerName = typeof MarkerName[keyof typeof MarkerName];
598
+ declare const NumericKind: {
599
+ readonly Int: "int";
600
+ readonly Long: "long";
601
+ readonly Float: "float";
602
+ readonly Double: "double";
603
+ };
604
+ type NumericKind = typeof NumericKind[keyof typeof NumericKind];
605
+ //#endregion
606
+ //#region src/adapters/decorator/types.d.ts
607
+ type DecoratorTarget = `${DecoratorTargetKind}`;
608
+ type DecoratorArgumentKind = `${DecoratorArgumentKindName}`;
609
+ type DecoratorArgument = {
610
+ raw: unknown;
611
+ kind: DecoratorArgumentKind;
612
+ };
613
+ type DecoratorTypeArgument = {
614
+ resolve: () => Type;
615
+ };
616
+ type DecoratorHost = {
617
+ name: string;
618
+ parentName?: string;
619
+ };
620
+ type DecoratorSource = {
621
+ name: string;
622
+ arguments: DecoratorArgument[];
623
+ typeArguments: DecoratorTypeArgument[];
624
+ target: DecoratorTarget;
625
+ host: DecoratorHost;
626
+ /**
627
+ * Source-file location of the decorator AST node itself (1-based line).
628
+ * Optional because decorator sources can be synthesised in tests without
629
+ * a real source file. Populated by {@link buildDecoratorSources} when the
630
+ * decorator's containing source file is available.
631
+ */
632
+ location?: {
633
+ file: string;
634
+ line: number;
635
+ };
636
+ };
637
+ type JsDocSource = {
638
+ tag: string;
639
+ text?: string;
640
+ typeExpression?: {
641
+ resolve: () => Type;
642
+ };
643
+ parameterName?: string;
644
+ target: DecoratorTarget;
645
+ host: DecoratorHost;
646
+ };
647
+ type ControllerDraft = {
648
+ name: string;
649
+ location: string;
650
+ paths?: string[];
651
+ hidden: boolean;
652
+ deprecated?: boolean;
653
+ consumes: string[];
654
+ produces: string[];
655
+ tags: string[];
656
+ responses: Response[];
657
+ security: Security[];
658
+ extensions: Extension[];
659
+ };
660
+ type MethodDraft = {
661
+ name: string;
662
+ verb?: MethodType;
663
+ path: string;
664
+ operationId?: string;
665
+ description: string;
666
+ summary?: string;
667
+ deprecated?: boolean;
668
+ hidden: boolean;
669
+ consumes: string[];
670
+ produces: string[];
671
+ tags: string[];
672
+ responses: Response[];
673
+ security: Security[];
674
+ extensions: Extension[];
675
+ parameters: ParameterDraft[];
676
+ type?: BaseType;
677
+ /**
678
+ * Examples that handlers (e.g. `@Example`) want attached to the implicitly
679
+ * generated default response. The orchestrator merges these into the
680
+ * default 200/204 response when finalising the method.
681
+ */
682
+ defaultResponseExamples: Example[];
683
+ };
684
+ type ParameterDraft = {
685
+ parameterName: string;
686
+ name: string;
687
+ in?: `${ParamKind}`;
688
+ description: string;
689
+ required: boolean;
690
+ type?: Type;
691
+ collectionFormat?: `${CollectionKind}`;
692
+ allowEmptyValue?: boolean;
693
+ default?: unknown;
694
+ maxItems?: number;
695
+ minItems?: number;
696
+ deprecated?: boolean;
697
+ examples: Example[];
698
+ exampleLabels: string[];
699
+ extensions: Extension[];
700
+ validators: Record<string, Validator>;
701
+ };
702
+ type HandlerContext = {
703
+ host: DecoratorHost;
704
+ argument: (index: number) => DecoratorArgument | undefined;
705
+ arguments: () => DecoratorArgument[];
706
+ typeArgument: (index: number) => DecoratorTypeArgument | undefined;
707
+ typeArguments: () => DecoratorTypeArgument[];
708
+ parameterType: () => Type | undefined;
709
+ };
710
+ type JsDocHandlerContext = {
711
+ host: DecoratorHost;
712
+ source: JsDocSource;
713
+ parameterType: () => Type | undefined;
714
+ };
715
+ type Match = {
716
+ name: string;
717
+ on?: DecoratorTarget;
718
+ };
719
+ type JsDocMatch = {
720
+ tag: string;
721
+ on?: DecoratorTarget;
722
+ };
723
+ type ReplacesPolicy = true | string;
724
+ /**
725
+ * Tags a handler with a semantic concept that the type resolver consults.
726
+ *
727
+ * Allows preset authors to rename a decorator (via `match.name`) without
728
+ * breaking type-resolver behaviour: the resolver looks up handlers by marker
729
+ * and reads the canonical decorator name from each handler's `match.name`.
730
+ */
731
+ type ResolverMarker = `${MarkerName}` | {
732
+ numeric: `${NumericKind}`;
733
+ };
734
+ type HandlerBase = {
735
+ match: Match;
736
+ replaces?: ReplacesPolicy;
737
+ marker?: ResolverMarker;
738
+ };
739
+ type ControllerHandler = HandlerBase & {
740
+ apply: (ctx: HandlerContext, draft: ControllerDraft) => void;
741
+ };
742
+ type MethodHandler = HandlerBase & {
743
+ apply: (ctx: HandlerContext, draft: MethodDraft) => void;
744
+ };
745
+ type ParameterHandler = HandlerBase & {
746
+ apply: (ctx: HandlerContext, draft: ParameterDraft) => void;
747
+ };
748
+ type JsDocHandlerBase = {
749
+ match: JsDocMatch;
750
+ replaces?: ReplacesPolicy;
751
+ marker?: ResolverMarker;
752
+ };
753
+ type ControllerJsDocHandler = JsDocHandlerBase & {
754
+ apply: (ctx: JsDocHandlerContext, draft: ControllerDraft) => void;
755
+ };
756
+ type MethodJsDocHandler = JsDocHandlerBase & {
757
+ apply: (ctx: JsDocHandlerContext, draft: MethodDraft) => void;
758
+ };
759
+ type ParameterJsDocHandler = JsDocHandlerBase & {
760
+ apply: (ctx: JsDocHandlerContext, draft: ParameterDraft) => void;
761
+ };
762
+ type AnyDecoratorHandler = ControllerHandler | MethodHandler | ParameterHandler;
763
+ type AnyJsDocHandler = ControllerJsDocHandler | MethodJsDocHandler | ParameterJsDocHandler;
764
+ type Preset = {
765
+ name: string;
766
+ extends?: string[];
767
+ controllers?: ControllerHandler[];
768
+ methods?: MethodHandler[];
769
+ parameters?: ParameterHandler[];
770
+ controllerJsDoc?: ControllerJsDocHandler[];
771
+ methodJsDoc?: MethodJsDocHandler[];
772
+ parameterJsDoc?: ParameterJsDocHandler[];
773
+ };
774
+ type Registry = {
775
+ controllers: ControllerHandler[];
776
+ methods: MethodHandler[];
777
+ parameters: ParameterHandler[];
778
+ controllerJsDoc: ControllerJsDocHandler[];
779
+ methodJsDoc: MethodJsDocHandler[];
780
+ parameterJsDoc: ParameterJsDocHandler[];
781
+ };
782
+ type PresetResolver = (name: string) => Promise<Preset> | Preset;
783
+ type LoadRegistryOptions = {
784
+ resolver: PresetResolver;
785
+ strict?: boolean;
786
+ };
787
+ //#endregion
788
+ //#region src/adapters/cache/utils.d.ts
789
+ declare function buildCacheOptions(input?: string | boolean | CacheOptionsInput): CacheOptions;
790
+ type CacheKeyParts = {
791
+ schemaVersion: string;
792
+ sourceFilesHash: string;
793
+ compilerOptionsHash: string;
794
+ registryHash: string;
795
+ presetName?: string;
796
+ };
797
+ /**
798
+ * Combines all key contributors into a single sha256 hex string. The order is
799
+ * stable; each part is null-separated to avoid concatenation ambiguity.
800
+ */
801
+ declare function composeCacheKey(parts: CacheKeyParts): string;
802
+ /**
803
+ * Hash a stable JSON projection of `compilerOptions`. Sorting keys keeps the
804
+ * output deterministic regardless of declaration order in tsconfig.json.
805
+ */
806
+ declare function hashCompilerOptions(options?: CompilerOptions): string;
807
+ /**
808
+ * Hash the resolved registry's structural shape. Catches structural changes
809
+ * (handler added/removed/renamed, marker changed, replaces policy changed)
810
+ * AND most logic changes via `apply.toString()`. Misses changes that are
811
+ * purely captured-variable shifts in factory-built handlers — acceptable
812
+ * trade-off for catching local preset edits.
813
+ */
814
+ declare function hashRegistry(registry: Registry): string;
815
+ //#endregion
816
+ //#region src/adapters/decorator/helpers.d.ts
817
+ /**
818
+ * Read a positional argument as a string. Accepts both literal string args
819
+ * (`@Foo('value')`) and identifier references that resolve to a string
820
+ * (`@Foo(SOME_CONSTANT)`). Returns `undefined` for any other argument shape.
821
+ */
822
+ declare function readString(arg: DecoratorArgument | undefined): string | undefined;
823
+ /**
824
+ * Read a positional argument as a number. Only matches numeric literals.
825
+ */
826
+ declare function readNumber(arg: DecoratorArgument | undefined): number | undefined;
827
+ /**
828
+ * Read a positional argument as a boolean. Only matches boolean literals.
829
+ */
830
+ declare function readBoolean(arg: DecoratorArgument | undefined): boolean | undefined;
831
+ /**
832
+ * Read a positional argument that may be either a single string or an array
833
+ * of strings. Returns `undefined` when the argument is missing, when any
834
+ * array element is non-string, or otherwise unresolvable. All-or-nothing:
835
+ * never returns a partial array with non-string items silently dropped.
836
+ */
837
+ declare function readStringOrStringArray(arg: DecoratorArgument | undefined): string[] | undefined;
838
+ /**
839
+ * Convenience for the common controller path assignment. Reads the first
840
+ * argument as a string-or-string-array and writes it to `draft.paths`,
841
+ * defaulting to `['']` when the argument is missing or unresolvable. Use this
842
+ * inside a `controller({ match, apply })` handler to declare a class as a
843
+ * controller.
844
+ */
845
+ declare function setControllerPaths(draft: ControllerDraft, arg: DecoratorArgument | undefined): void;
846
+ /**
847
+ * Convenience for the common method path assignment. Reads the first argument
848
+ * as a string and writes it to `draft.path` if present; leaves the field
849
+ * untouched otherwise (the orchestrator initialises it to `''`).
850
+ */
851
+ declare function setMethodPath(draft: MethodDraft, arg: DecoratorArgument | undefined): void;
852
+ //#endregion
853
+ //#region src/adapters/decorator/module.d.ts
854
+ declare function loadRegistry(preset: Preset, options: LoadRegistryOptions): Promise<Registry>;
855
+ /**
856
+ * Resolve a preset by string identifier (npm package, relative path, etc.) and
857
+ * return the v2 Preset object. Looks for a `preset` named export, then the
858
+ * default export, then the module itself.
859
+ */
860
+ declare function resolvePresetByName(input: string): Promise<Preset>;
861
+ /**
862
+ * Resolve a preset by name and immediately materialize its registry, recursively
863
+ * loading `extends` parents through the same resolver.
864
+ */
865
+ declare function loadRegistryByName(input: string): Promise<Registry>;
866
+ //#endregion
867
+ //#region src/adapters/decorator/test-helpers.d.ts
868
+ /**
869
+ * Build a literal-kind {@link DecoratorArgument} from a primitive value.
870
+ * Use this in unit tests to feed handlers a mock argument:
871
+ *
872
+ * ```ts
873
+ * const ctx = createHandlerContext({ args: [literalArg('users')] });
874
+ * controllerHandler.apply(ctx, draft);
875
+ * ```
876
+ */
877
+ declare function literalArg(raw: string | number | boolean | null): DecoratorArgument;
878
+ /**
879
+ * Build an identifier-kind {@link DecoratorArgument} (e.g. `@Foo(SOME_CONSTANT)`).
880
+ * `raw` is the resolved value the identifier points to — typically a string.
881
+ */
882
+ declare function identifierArg(raw: unknown): DecoratorArgument;
883
+ /**
884
+ * Build an array-kind {@link DecoratorArgument} (e.g. `@Foo(['a', 'b'])`).
885
+ */
886
+ declare function arrayArg(raw: unknown[]): DecoratorArgument;
887
+ /**
888
+ * Build an object-kind {@link DecoratorArgument} (e.g. `@Foo({ key: 'value' })`).
889
+ */
890
+ declare function objectArg(raw: Record<string, unknown>): DecoratorArgument;
891
+ /**
892
+ * Build an unresolvable-kind {@link DecoratorArgument} — represents arguments
893
+ * the source extractor couldn't statically evaluate (e.g. function calls,
894
+ * unknown identifiers).
895
+ */
896
+ declare function unresolvableArg(): DecoratorArgument;
897
+ /**
898
+ * Build a {@link DecoratorTypeArgument} stub that returns the supplied type
899
+ * when `resolve()` is called.
900
+ */
901
+ declare function typeArg(type: Type): DecoratorTypeArgument;
902
+ type CreateHandlerContextInput = {
903
+ args?: DecoratorArgument[];
904
+ typeArgs?: DecoratorTypeArgument[];
905
+ host?: DecoratorHost;
906
+ parameterType?: Type;
907
+ };
908
+ /**
909
+ * Construct a {@link HandlerContext} for unit-testing handlers in isolation
910
+ * without spinning up the full TypeScript compiler / `generateMetadata`
911
+ * pipeline. Combine with the `*Arg(...)` builders to feed a handler a
912
+ * controlled mock decorator source.
913
+ *
914
+ * ```ts
915
+ * const ctx = createHandlerContext({ args: [literalArg('users')] });
916
+ * const draft = newControllerDraft({ name: 'UserController', location: '/x.ts' });
917
+ * myHandler.apply(ctx, draft);
918
+ * expect(draft.paths).toEqual(['users']);
919
+ * ```
920
+ */
921
+ declare function createHandlerContext(input?: CreateHandlerContextInput): HandlerContext;
922
+ //#endregion
923
+ //#region src/adapters/decorator/orchestrator/types.d.ts
924
+ /**
925
+ * Reported when a decorator on a node has no matching handler in the
926
+ * supplied registry. The orchestrator computes file/line from the host node
927
+ * (1-based line number).
928
+ */
929
+ type UnmatchedDecoratorReport = {
930
+ name: string;
931
+ target: DecoratorTarget;
932
+ host: DecoratorHost;
933
+ file: string;
934
+ line: number;
935
+ };
936
+ type ApplyHandlersOptions = {
937
+ target: DecoratorTarget;
938
+ host: DecoratorHost;
939
+ resolveTypeNode: (node: TypeNode) => Type;
940
+ parameterType?: () => Type | undefined;
941
+ typeChecker?: TypeChecker;
942
+ /**
943
+ * Optional reporter for decorator sources that no handler matched.
944
+ * The orchestrator builds a {@link DecoratorSource} for every decorator
945
+ * on the node; if iteration finishes without any handler claiming a
946
+ * source, this callback fires once for that source.
947
+ */
948
+ onUnmatchedDecorator?: (report: UnmatchedDecoratorReport, source: DecoratorSource) => void;
949
+ };
950
+ //#endregion
951
+ //#region src/adapters/decorator/orchestrator/module.d.ts
952
+ type DecoratorHandlerLike<D> = {
953
+ match: Match;
954
+ apply: (ctx: HandlerContext, draft: D) => void;
955
+ };
956
+ type JsDocHandlerLike<D> = {
957
+ match: JsDocMatch;
958
+ apply: (ctx: JsDocHandlerContext, draft: D) => void;
959
+ };
960
+ declare function buildHandlerContext(source: DecoratorSource, options: ApplyHandlersOptions): HandlerContext;
961
+ declare function buildJsDocHandlerContext(source: JsDocSource, options: ApplyHandlersOptions): JsDocHandlerContext;
962
+ declare function applyDecoratorHandlers<D>(node: Node, handlers: DecoratorHandlerLike<D>[], draft: D, options: ApplyHandlersOptions): void;
963
+ declare function applyJsDocHandlers<D>(node: Node, handlers: JsDocHandlerLike<D>[], draft: D, options: ApplyHandlersOptions): void;
964
+ //#endregion
965
+ //#region src/adapters/decorator/typescript/types.d.ts
966
+ type DecoratorSourceBuilderOptions = {
967
+ target: DecoratorTarget;
968
+ host: DecoratorHost;
969
+ resolveTypeNode: (node: TypeNode) => Type;
970
+ typeChecker?: TypeChecker;
971
+ };
972
+ type JsDocSourceBuilderOptions = {
973
+ target: DecoratorTarget;
974
+ host: DecoratorHost;
975
+ resolveTypeNode: (node: TypeNode) => Type;
976
+ };
977
+ //#endregion
978
+ //#region src/adapters/decorator/typescript/module.d.ts
979
+ declare function buildDecoratorSources(node: Node, options: DecoratorSourceBuilderOptions): DecoratorSource[];
980
+ declare function buildJsDocSources(node: Node, options: JsDocSourceBuilderOptions): JsDocSource[];
981
+ //#endregion
982
+ //#region src/adapters/decorator/typescript/utils.d.ts
983
+ type RawDecorator = {
984
+ name: string;
985
+ arguments: DecoratorArgument[];
986
+ };
987
+ /**
988
+ * Enumerate decorators on a TS node and classify their argument values without
989
+ * going through the registry. Used by read-side consumers (type resolver,
990
+ * extension extraction) that only need decorator names + argument values.
991
+ */
992
+ declare function readNodeDecorators(node: Node, typeChecker?: TypeChecker): RawDecorator[];
993
+ declare function findDecoratorByName(node: Node, name: string, typeChecker?: TypeChecker): RawDecorator | undefined;
994
+ declare function findDecoratorsByName(node: Node, name: string, typeChecker?: TypeChecker): RawDecorator[];
995
+ declare function hasDecoratorNamed(node: Node, name: string, typeChecker?: TypeChecker): boolean;
996
+ declare function buildDecoratorArgument(expr: Expression, typeChecker?: TypeChecker): DecoratorArgument;
997
+ //#endregion
998
+ //#region src/adapters/decorator/utils.d.ts
999
+ declare function matches(match: Match, source: Pick<DecoratorSource, 'name' | 'target'>): boolean;
1000
+ declare function matchesJsDoc(match: JsDocMatch, source: Pick<JsDocSource, 'tag' | 'target'>): boolean;
1001
+ declare function newControllerDraft(input: Pick<ControllerDraft, 'name' | 'location'>): ControllerDraft;
1002
+ declare function newMethodDraft(input: Pick<MethodDraft, 'name'>): MethodDraft;
1003
+ declare function newParameterDraft(input: Pick<ParameterDraft, 'parameterName'>): ParameterDraft;
1004
+ declare function createRegistry(): Registry;
1005
+ declare function generatePresetLookupPaths(input: string): string[];
1006
+ /**
1007
+ * Collect the unique decorator names of every handler whose `marker` matches
1008
+ * the given predicate. Lets the type resolver discover preset-renamed
1009
+ * decorators without hard-coding canonical names.
1010
+ */
1011
+ declare function namesForMarker(registry: Registry, predicate: (marker: ResolverMarker) => boolean): Set<string>;
1012
+ /**
1013
+ * Collect the unique JSDoc tag names of every JSDoc handler whose `marker`
1014
+ * matches the given predicate. JSDoc analogue of `namesForMarker`.
1015
+ */
1016
+ declare function tagsForMarker(registry: Registry, predicate: (marker: ResolverMarker) => boolean): Set<string>;
1017
+ declare function isHiddenMarker(marker: ResolverMarker): boolean;
1018
+ declare function isDeprecatedMarker(marker: ResolverMarker): boolean;
1019
+ declare function isExtensionMarker(marker: ResolverMarker): boolean;
1020
+ declare function numericMarkerKind(marker: ResolverMarker): 'int' | 'long' | 'float' | 'double' | undefined;
1021
+ declare const controller: (handler: ControllerHandler) => ControllerHandler;
1022
+ declare const method: (handler: MethodHandler) => MethodHandler;
1023
+ declare const parameter: (handler: ParameterHandler) => ParameterHandler;
1024
+ declare const controllerJsDoc: (handler: ControllerJsDocHandler) => ControllerJsDocHandler;
1025
+ declare const methodJsDoc: (handler: MethodJsDocHandler) => MethodJsDocHandler;
1026
+ declare const parameterJsDoc: (handler: ParameterJsDocHandler) => ParameterJsDocHandler;
1027
+ type AnyDraft = ControllerDraft | MethodDraft | ParameterDraft;
1028
+ type DraftApply = (ctx: HandlerContext, draft: AnyDraft) => void;
1029
+ declare function into(key: string): {
1030
+ positional(index: number): DraftApply;
1031
+ typeArgument(index?: number): DraftApply;
1032
+ };
1033
+ declare function append(key: string): {
1034
+ positional(index: number): DraftApply;
1035
+ positionalAll(): DraftApply;
1036
+ };
1037
+ declare function flag(key: string, value?: unknown): DraftApply;
1038
+ //#endregion
1039
+ //#region src/adapters/decorator/validation/module.d.ts
1040
+ declare const matchSchema: z.ZodObject<{
1041
+ name: z.ZodString;
1042
+ on: z.ZodOptional<z.ZodEnum<{
1043
+ class: "class";
1044
+ method: "method";
1045
+ parameter: "parameter";
1046
+ property: "property";
1047
+ }>>;
1048
+ }, z.core.$strip>;
1049
+ declare const jsDocMatchSchema: z.ZodObject<{
1050
+ tag: z.ZodString;
1051
+ on: z.ZodOptional<z.ZodEnum<{
1052
+ class: "class";
1053
+ method: "method";
1054
+ parameter: "parameter";
1055
+ property: "property";
1056
+ }>>;
1057
+ }, z.core.$strip>;
1058
+ declare const controllerHandlerSchema: z.ZodObject<{
1059
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1060
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1061
+ numeric: z.ZodEnum<{
1062
+ double: "double";
1063
+ float: "float";
1064
+ long: "long";
1065
+ int: "int";
1066
+ }>;
1067
+ }, z.core.$strip>]>>;
1068
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1069
+ match: z.ZodObject<{
1070
+ name: z.ZodString;
1071
+ on: z.ZodOptional<z.ZodEnum<{
1072
+ class: "class";
1073
+ method: "method";
1074
+ parameter: "parameter";
1075
+ property: "property";
1076
+ }>>;
1077
+ }, z.core.$strip>;
1078
+ }, z.core.$strip>;
1079
+ declare const methodHandlerSchema: z.ZodObject<{
1080
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1081
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1082
+ numeric: z.ZodEnum<{
1083
+ double: "double";
1084
+ float: "float";
1085
+ long: "long";
1086
+ int: "int";
1087
+ }>;
1088
+ }, z.core.$strip>]>>;
1089
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1090
+ match: z.ZodObject<{
1091
+ name: z.ZodString;
1092
+ on: z.ZodOptional<z.ZodEnum<{
1093
+ class: "class";
1094
+ method: "method";
1095
+ parameter: "parameter";
1096
+ property: "property";
1097
+ }>>;
1098
+ }, z.core.$strip>;
1099
+ }, z.core.$strip>;
1100
+ declare const parameterHandlerSchema: z.ZodObject<{
1101
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1102
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1103
+ numeric: z.ZodEnum<{
1104
+ double: "double";
1105
+ float: "float";
1106
+ long: "long";
1107
+ int: "int";
1108
+ }>;
1109
+ }, z.core.$strip>]>>;
1110
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1111
+ match: z.ZodObject<{
1112
+ name: z.ZodString;
1113
+ on: z.ZodOptional<z.ZodEnum<{
1114
+ class: "class";
1115
+ method: "method";
1116
+ parameter: "parameter";
1117
+ property: "property";
1118
+ }>>;
1119
+ }, z.core.$strip>;
1120
+ }, z.core.$strip>;
1121
+ declare const controllerJsDocHandlerSchema: z.ZodObject<{
1122
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1123
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1124
+ numeric: z.ZodEnum<{
1125
+ double: "double";
1126
+ float: "float";
1127
+ long: "long";
1128
+ int: "int";
1129
+ }>;
1130
+ }, z.core.$strip>]>>;
1131
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1132
+ match: z.ZodObject<{
1133
+ tag: z.ZodString;
1134
+ on: z.ZodOptional<z.ZodEnum<{
1135
+ class: "class";
1136
+ method: "method";
1137
+ parameter: "parameter";
1138
+ property: "property";
1139
+ }>>;
1140
+ }, z.core.$strip>;
1141
+ }, z.core.$strip>;
1142
+ declare const methodJsDocHandlerSchema: z.ZodObject<{
1143
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1144
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1145
+ numeric: z.ZodEnum<{
1146
+ double: "double";
1147
+ float: "float";
1148
+ long: "long";
1149
+ int: "int";
1150
+ }>;
1151
+ }, z.core.$strip>]>>;
1152
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1153
+ match: z.ZodObject<{
1154
+ tag: z.ZodString;
1155
+ on: z.ZodOptional<z.ZodEnum<{
1156
+ class: "class";
1157
+ method: "method";
1158
+ parameter: "parameter";
1159
+ property: "property";
1160
+ }>>;
1161
+ }, z.core.$strip>;
1162
+ }, z.core.$strip>;
1163
+ declare const parameterJsDocHandlerSchema: z.ZodObject<{
1164
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1165
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1166
+ numeric: z.ZodEnum<{
1167
+ double: "double";
1168
+ float: "float";
1169
+ long: "long";
1170
+ int: "int";
1171
+ }>;
1172
+ }, z.core.$strip>]>>;
1173
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1174
+ match: z.ZodObject<{
1175
+ tag: z.ZodString;
1176
+ on: z.ZodOptional<z.ZodEnum<{
1177
+ class: "class";
1178
+ method: "method";
1179
+ parameter: "parameter";
1180
+ property: "property";
1181
+ }>>;
1182
+ }, z.core.$strip>;
1183
+ }, z.core.$strip>;
1184
+ declare const presetSchema: z.ZodObject<{
1185
+ name: z.ZodString;
1186
+ extends: z.ZodOptional<z.ZodArray<z.ZodString>>;
1187
+ controllers: z.ZodOptional<z.ZodArray<z.ZodObject<{
1188
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1189
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1190
+ numeric: z.ZodEnum<{
1191
+ double: "double";
1192
+ float: "float";
1193
+ long: "long";
1194
+ int: "int";
1195
+ }>;
1196
+ }, z.core.$strip>]>>;
1197
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1198
+ match: z.ZodObject<{
1199
+ name: z.ZodString;
1200
+ on: z.ZodOptional<z.ZodEnum<{
1201
+ class: "class";
1202
+ method: "method";
1203
+ parameter: "parameter";
1204
+ property: "property";
1205
+ }>>;
1206
+ }, z.core.$strip>;
1207
+ }, z.core.$strip>>>;
1208
+ methods: z.ZodOptional<z.ZodArray<z.ZodObject<{
1209
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1210
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1211
+ numeric: z.ZodEnum<{
1212
+ double: "double";
1213
+ float: "float";
1214
+ long: "long";
1215
+ int: "int";
1216
+ }>;
1217
+ }, z.core.$strip>]>>;
1218
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1219
+ match: z.ZodObject<{
1220
+ name: z.ZodString;
1221
+ on: z.ZodOptional<z.ZodEnum<{
1222
+ class: "class";
1223
+ method: "method";
1224
+ parameter: "parameter";
1225
+ property: "property";
1226
+ }>>;
1227
+ }, z.core.$strip>;
1228
+ }, z.core.$strip>>>;
1229
+ parameters: z.ZodOptional<z.ZodArray<z.ZodObject<{
1230
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1231
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1232
+ numeric: z.ZodEnum<{
1233
+ double: "double";
1234
+ float: "float";
1235
+ long: "long";
1236
+ int: "int";
1237
+ }>;
1238
+ }, z.core.$strip>]>>;
1239
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1240
+ match: z.ZodObject<{
1241
+ name: z.ZodString;
1242
+ on: z.ZodOptional<z.ZodEnum<{
1243
+ class: "class";
1244
+ method: "method";
1245
+ parameter: "parameter";
1246
+ property: "property";
1247
+ }>>;
1248
+ }, z.core.$strip>;
1249
+ }, z.core.$strip>>>;
1250
+ controllerJsDoc: z.ZodOptional<z.ZodArray<z.ZodObject<{
1251
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1252
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1253
+ numeric: z.ZodEnum<{
1254
+ double: "double";
1255
+ float: "float";
1256
+ long: "long";
1257
+ int: "int";
1258
+ }>;
1259
+ }, z.core.$strip>]>>;
1260
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1261
+ match: z.ZodObject<{
1262
+ tag: z.ZodString;
1263
+ on: z.ZodOptional<z.ZodEnum<{
1264
+ class: "class";
1265
+ method: "method";
1266
+ parameter: "parameter";
1267
+ property: "property";
1268
+ }>>;
1269
+ }, z.core.$strip>;
1270
+ }, z.core.$strip>>>;
1271
+ methodJsDoc: z.ZodOptional<z.ZodArray<z.ZodObject<{
1272
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1273
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1274
+ numeric: z.ZodEnum<{
1275
+ double: "double";
1276
+ float: "float";
1277
+ long: "long";
1278
+ int: "int";
1279
+ }>;
1280
+ }, z.core.$strip>]>>;
1281
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1282
+ match: z.ZodObject<{
1283
+ tag: z.ZodString;
1284
+ on: z.ZodOptional<z.ZodEnum<{
1285
+ class: "class";
1286
+ method: "method";
1287
+ parameter: "parameter";
1288
+ property: "property";
1289
+ }>>;
1290
+ }, z.core.$strip>;
1291
+ }, z.core.$strip>>>;
1292
+ parameterJsDoc: z.ZodOptional<z.ZodArray<z.ZodObject<{
1293
+ replaces: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodString]>>;
1294
+ marker: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"hidden">, z.ZodLiteral<"deprecated">, z.ZodLiteral<"extension">, z.ZodObject<{
1295
+ numeric: z.ZodEnum<{
1296
+ double: "double";
1297
+ float: "float";
1298
+ long: "long";
1299
+ int: "int";
1300
+ }>;
1301
+ }, z.core.$strip>]>>;
1302
+ apply: z.ZodCustom<(...args: unknown[]) => unknown, (...args: unknown[]) => unknown>;
1303
+ match: z.ZodObject<{
1304
+ tag: z.ZodString;
1305
+ on: z.ZodOptional<z.ZodEnum<{
1306
+ class: "class";
1307
+ method: "method";
1308
+ parameter: "parameter";
1309
+ property: "property";
1310
+ }>>;
1311
+ }, z.core.$strip>;
1312
+ }, z.core.$strip>>>;
1313
+ }, z.core.$strip>;
1314
+ declare function createPresetContainer(): Container<Preset>;
1315
+ declare function validatePreset(input: unknown): Promise<Preset>;
1316
+ //#endregion
1317
+ //#region src/adapters/filesystem/tsconfig/types.d.ts
1318
+ type TsconfigLoadContext = {
1319
+ cwd?: string;
1320
+ name?: string;
1321
+ };
1322
+ type TsCompilerOptions = CompilerOptions;
1323
+ type TsConfig = {
1324
+ compilerOptions?: TsCompilerOptions;
1325
+ [key: string]: any;
1326
+ };
1327
+ //#endregion
1328
+ //#region src/adapters/filesystem/tsconfig/module.d.ts
1329
+ declare function loadTSConfig(context?: TsconfigLoadContext): Promise<TsConfig>;
1330
+ declare function softLoadTsconfig(context?: TsconfigLoadContext): Promise<TsConfig>;
1331
+ //#endregion
1332
+ //#region src/core/config/types.d.ts
1333
+ type EntryPointOptions = {
1334
+ cwd: string;
1335
+ pattern: string;
1336
+ };
1337
+ type EntryPoint = string | string[] | EntryPointOptions | EntryPointOptions[];
1338
+ type MetadataGeneratorOptions = {
1339
+ /**
1340
+ * The entry point to your API.
1341
+ */
1342
+ entryPoint: EntryPoint;
1343
+ /**
1344
+ * Directory to ignore during TypeScript files scan.
1345
+ * Default: []
1346
+ */
1347
+ ignore?: string[];
1348
+ /**
1349
+ * Directory to allow during TypeScript files scan.
1350
+ * Default: []
1351
+ */
1352
+ allow?: string[];
1353
+ /**
1354
+ * Directory to store and cache metadata cache files.
1355
+ * Default: false
1356
+ */
1357
+ cache?: string | boolean | Partial<CacheOptions>;
1358
+ /**
1359
+ * Load a specific preset configuration.
1360
+ */
1361
+ preset?: string;
1362
+ /**
1363
+ * Controls how unmatched decorators (decorators with no matching handler
1364
+ * in the resolved registry) are surfaced.
1365
+ *
1366
+ * - `false` / unset (default): silent.
1367
+ * - `true`: emit a single `console.warn` listing every unmatched decorator
1368
+ * at the end of generation. Useful for catching typos (e.g. `@Hiden`
1369
+ * instead of `@Hidden`) and unwired decorators in custom presets.
1370
+ * - `'throw'`: throw a `GeneratorError` instead of warning. Useful as a
1371
+ * CI gate.
1372
+ *
1373
+ * If `onUnmatchedDecorator` is also set, the callback is invoked instead
1374
+ * of warning/throwing — collection still happens, but reporting is yours.
1375
+ *
1376
+ * Note: JSDoc tags are not currently included in strict-mode reporting
1377
+ * because standard documentation tags (`@param`, `@returns`, ...) would
1378
+ * generate excessive noise.
1379
+ */
1380
+ strict?: boolean | 'throw';
1381
+ /**
1382
+ * Optional callback invoked at the end of generation with all unmatched-
1383
+ * decorator reports collected during the run. Replaces the default
1384
+ * `console.warn` / `throw` behaviour of `strict` — when set, the callback
1385
+ * is the terminal step (no warn, no throw).
1386
+ *
1387
+ * Setting this implicitly enables collection — you don't also need to set
1388
+ * `strict`.
1389
+ */
1390
+ onUnmatchedDecorator?: (reports: UnmatchedDecoratorReport[]) => void;
1391
+ };
1392
+ type MetadataGenerateOptions = MetadataGeneratorOptions & {
1393
+ /**
1394
+ * Path to tsconfig.json or a TsConfig object.
1395
+ */
1396
+ tsconfig?: string | TsConfig;
1397
+ };
1398
+ //#endregion
1399
+ //#region src/core/metadata/types.d.ts
1400
+ type MetadataGeneratorContext = {
1401
+ options: MetadataGeneratorOptions;
1402
+ sourceFiles: string[];
1403
+ compilerOptions?: CompilerOptions;
1404
+ };
1405
+ interface IMetadataGenerator {
1406
+ generate(): Promise<Metadata>;
1407
+ }
1408
+ /**
1409
+ * The output specification for metadata generation.
1410
+ */
1411
+ type Metadata = {
1412
+ /**
1413
+ * A Controller is a collection of grouped methods (GET, POST, ...)
1414
+ * for a common URL path (i.e /users) or an more explicit URL path (i.e. /users/:id).
1415
+ */
1416
+ controllers: Controller[];
1417
+ /**
1418
+ * ReferenceTypes is an object of found types (interfaces, type, ...),
1419
+ * and classes which were detected during code analysis.
1420
+ */
1421
+ referenceTypes: ReferenceTypes;
1422
+ };
1423
+ /**
1424
+ * Narrow context interface for the type resolver.
1425
+ * Contains only what TypeNodeResolver needs — no generator methods.
1426
+ */
1427
+ interface IResolverContext {
1428
+ readonly typeChecker: TypeChecker;
1429
+ readonly nodes: Node[];
1430
+ readonly registry: Registry;
1431
+ readonly resolverCache: IResolverCache;
1432
+ isExportedNode(node: Node): boolean;
1433
+ }
1434
+ /**
1435
+ * Callback interface for resolver → generator communication.
1436
+ * Allows the resolver to register discovered reference types
1437
+ * without importing the MetadataGenerator class.
1438
+ */
1439
+ interface IReferenceTypeRegistry {
1440
+ addReferenceType(type: ReferenceType): void;
1441
+ getReferenceType(refName: string): ReferenceType | undefined;
1442
+ registerDependencyResolver(callback: DependencyResolver): void;
1443
+ }
1444
+ /**
1445
+ * Context interface for generators.
1446
+ * Extends IResolverContext and IReferenceTypeRegistry so generators
1447
+ * can pass `this.current` directly to TypeNodeResolver.
1448
+ */
1449
+ interface IGeneratorContext extends IResolverContext, IReferenceTypeRegistry {
1450
+ readonly config: MetadataGeneratorOptions;
1451
+ readonly registry: Registry;
1452
+ /**
1453
+ * Optional sink for unmatched-decorator reports. Generators forward to
1454
+ * this when `config.strict` is enabled. The metadata generator drains the
1455
+ * sink after the controller walk and emits a single warning summary.
1456
+ */
1457
+ reportUnmatchedDecorator?(report: UnmatchedDecoratorReport): void;
1458
+ }
1459
+ //#endregion
1460
+ //#region src/core/metadata/variable.d.ts
1461
+ type VariableType = 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function';
1462
+ //#endregion
1463
+ //#region src/core/validator/error.d.ts
1464
+ declare class ValidatorError extends MetadataError {}
1465
+ //#endregion
1466
+ //#region src/core/validator/constants.d.ts
1467
+ declare enum ValidatorName {
1468
+ UNIQUE_ITEMS = "uniqueItems",
1469
+ MINIMUM = "minimum",
1470
+ MAXIMUM = "maximum",
1471
+ MIN_ITEMS = "minItems",
1472
+ MAX_ITEMS = "maxItems",
1473
+ MIN_LENGTH = "minLength",
1474
+ MAX_LENGTH = "maxLength",
1475
+ MIN_DATE = "minDate",
1476
+ MAX_DATE = "maxDate",
1477
+ PATTERN = "pattern"
1478
+ }
1479
+ declare const ValidatorErrorCode: {
1480
+ readonly EXPECTED_NUMBER: "VALIDATOR_EXPECTED_NUMBER";
1481
+ readonly EXPECTED_DATE: "VALIDATOR_EXPECTED_DATE";
1482
+ readonly EXPECTED_STRING: "VALIDATOR_EXPECTED_STRING";
1483
+ };
1484
+ //#endregion
1485
+ //#region src/core/error/config.d.ts
1486
+ declare class ConfigError extends MetadataError {}
1487
+ //#endregion
1488
+ //#region src/core/error/config-codes.d.ts
1489
+ declare const ConfigErrorCode: {
1490
+ readonly TSCONFIG_MALFORMED: "CONFIG_TSCONFIG_MALFORMED";
1491
+ readonly PRESET_NOT_FOUND: "CONFIG_PRESET_NOT_FOUND";
1492
+ readonly PRESET_MISSING: "CONFIG_PRESET_MISSING";
1493
+ };
1494
+ type ConfigErrorCode = typeof ConfigErrorCode[keyof typeof ConfigErrorCode];
1495
+ //#endregion
1496
+ //#region src/adapters/typescript/resolver/types.d.ts
1497
+ type OverrideToken = ts.Token<ts.SyntaxKind.QuestionToken> | ts.Token<ts.SyntaxKind.PlusToken> | ts.Token<ts.SyntaxKind.MinusToken>;
1498
+ type UsableDeclaration = ts.InterfaceDeclaration | ts.ClassDeclaration | ts.PropertySignature | ts.TypeAliasDeclaration | ts.EnumMember;
1499
+ type TypeNodeResolverContext = {
1500
+ [name: string]: ts.TypeReferenceNode | ts.TypeNode;
1501
+ };
1502
+ type SubResolverContext = {
1503
+ readonly typeChecker: ts.TypeChecker;
1504
+ readonly current: IResolverContext & IReferenceTypeRegistry;
1505
+ readonly parentNode?: ts.Node;
1506
+ readonly context: TypeNodeResolverContext;
1507
+ readonly referencer?: ts.TypeNode;
1508
+ resolveType(typeNode: ts.TypeNode, parentNode?: ts.Node, context?: TypeNodeResolverContext, referencer?: ts.TypeNode): Type;
1509
+ propertyFromSignature(sig: ts.PropertySignature, overrideToken?: OverrideToken): ResolverProperty;
1510
+ propertyFromDeclaration(decl: ts.PropertyDeclaration | ts.ParameterDeclaration, overrideToken?: OverrideToken): ResolverProperty;
1511
+ getNodeDescription(node: UsableDeclaration | ts.PropertyDeclaration | ts.ParameterDeclaration | ts.EnumDeclaration): string;
1512
+ getNodeExample(node: UsableDeclaration | ts.PropertyDeclaration | ts.ParameterDeclaration | ts.EnumDeclaration): unknown;
1513
+ getNodeExtensions(node: UsableDeclaration | ts.PropertyDeclaration | ts.ParameterDeclaration | ts.EnumDeclaration): Extension[];
1514
+ };
1515
+ //#endregion
1516
+ //#region src/adapters/typescript/resolver/sub/array.d.ts
1517
+ declare function resolveArrayType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1518
+ //#endregion
1519
+ //#region src/adapters/typescript/resolver/sub/base.d.ts
1520
+ declare class ResolverBase {
1521
+ protected hasPublicModifier(node: Node): boolean;
1522
+ protected hasStaticModifier(node: Node): boolean;
1523
+ protected isAccessibleParameter(node: Node): boolean;
1524
+ }
1525
+ //#endregion
1526
+ //#region src/adapters/typescript/resolver/sub/indexed-access.d.ts
1527
+ declare function resolveIndexedAccessType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1528
+ //#endregion
1529
+ //#region src/adapters/typescript/resolver/sub/intersection.d.ts
1530
+ declare function resolveIntersectionType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1531
+ //#endregion
1532
+ //#region src/adapters/typescript/resolver/sub/literal.d.ts
1533
+ declare function resolveLiteralType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1534
+ declare function getLiteralValue(typeNode: ts.LiteralTypeNode): string | number | boolean | null;
1535
+ //#endregion
1536
+ //#region src/adapters/typescript/resolver/sub/mapped.d.ts
1537
+ declare function resolveMappedType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1538
+ //#endregion
1539
+ //#region src/adapters/typescript/resolver/sub/object-literal.d.ts
1540
+ declare function resolveObjectLiteralType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1541
+ //#endregion
1542
+ //#region src/adapters/typescript/resolver/sub/primitive.d.ts
1543
+ declare class PrimitiveResolver {
1544
+ protected registry: Registry;
1545
+ constructor(registry: Registry);
1546
+ resolve(node: TypeNode, parentNode?: Node): PrimitiveType | NeverType | VoidType | undefined;
1547
+ resolveSyntaxKind(syntaxKind: SyntaxKind): "string" | "number" | "boolean" | "bigint" | "null" | "undefined" | "void" | "never";
1548
+ }
1549
+ //#endregion
1550
+ //#region src/adapters/typescript/resolver/sub/reference.d.ts
1551
+ declare class ReferenceResolver extends ResolverBase {
1552
+ protected typeChecker: TypeChecker;
1553
+ constructor(typeChecker: TypeChecker);
1554
+ merge(referenceTypes: ReferenceType[]): ReferenceType;
1555
+ mergeManyRefEnums(many: RefEnumType[]): RefEnumType;
1556
+ mergeRefEnums(first: RefEnumType, second: RefEnumType): RefEnumType;
1557
+ mergeManyRefObjects(many: RefObjectType[]): RefObjectType;
1558
+ mergeRefObject(first: RefObjectType, second: RefObjectType): RefObjectType;
1559
+ transformEnum(declaration: EnumDeclaration, enumName: string): RefEnumType;
1560
+ transformEnumMember(declaration: EnumMember, enumName: string): RefEnumType;
1561
+ }
1562
+ //#endregion
1563
+ //#region src/adapters/typescript/resolver/sub/tuple.d.ts
1564
+ declare function resolveTupleType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1565
+ //#endregion
1566
+ //#region src/adapters/typescript/resolver/sub/type-operator.d.ts
1567
+ declare function resolveTypeOperatorType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1568
+ //#endregion
1569
+ //#region src/adapters/typescript/resolver/sub/union.d.ts
1570
+ declare function resolveUnionType(typeNode: ts.TypeNode, ctx: SubResolverContext): Type | undefined;
1571
+ //#endregion
1572
+ //#region src/adapters/typescript/resolver/module.d.ts
1573
+ declare class TypeNodeResolver extends ResolverBase {
1574
+ private static readonly MAX_DEPTH;
1575
+ private readonly typeNode;
1576
+ private readonly current;
1577
+ private readonly parentNode?;
1578
+ private context;
1579
+ private readonly referencer;
1580
+ private readonly depth;
1581
+ private readonly primitiveResolver;
1582
+ private readonly referenceResolver;
1583
+ constructor(typeNode: ts.TypeNode, current: IResolverContext & IReferenceTypeRegistry, parentNode?: ts.Node, context?: TypeNodeResolverContext, referencer?: ts.TypeNode, depth?: number);
1584
+ /**
1585
+ * @deprecated Use resolverCache.clear() on the context instead.
1586
+ * Kept for backward compatibility — no-ops since cache is now instance-scoped.
1587
+ */
1588
+ static clearCache(): void;
1589
+ resolve(): Type;
1590
+ private createSubResolverContext;
1591
+ private resolveNestedType;
1592
+ private throwUnknownType;
1593
+ private resolveConditionalType;
1594
+ private resolveTypeReference;
1595
+ private static readonly CHECKER_RESOLVABLE_UTILITY_TYPES;
1596
+ private static isCheckerResolvableUtilityType;
1597
+ private resolveUtilityTypeViaChecker;
1598
+ /**
1599
+ * Shared checker delegation: resolves a type node by letting the TS
1600
+ * type checker evaluate it, converting back to a TypeNode, and
1601
+ * recursively resolving the result.
1602
+ */
1603
+ private resolveTypeViaChecker;
1604
+ /**
1605
+ * Check if a type reference has type arguments that reference unbound
1606
+ * type parameters from this.context (e.g. `Awaited<T>` where T is a
1607
+ * generic parameter mapped in context).
1608
+ */
1609
+ private hasUnboundContextArgs;
1610
+ private static resolveSpecialReference;
1611
+ private getDateType;
1612
+ private static getDesignatedModels;
1613
+ private getEnumerateType;
1614
+ private getReferenceType;
1615
+ private getTypeAliasReference;
1616
+ private getModelReference;
1617
+ private static getRefTypeName;
1618
+ private contextualizedName;
1619
+ private handleCachingAndCircularReferences;
1620
+ private createCircularDependencyResolver;
1621
+ private static nodeIsUsable;
1622
+ private getModelTypeDeclarations;
1623
+ private getModelTypeDeclaration;
1624
+ private hasFlag;
1625
+ private getSymbolAtLocation;
1626
+ private getModelProperties;
1627
+ private propertyFromSignature;
1628
+ private propertyFromDeclaration;
1629
+ private getModelAdditionalProperties;
1630
+ private typeArgumentsToContext;
1631
+ private getModelInheritedProperties;
1632
+ private getNodeDescription;
1633
+ private static getNodeFormat;
1634
+ private getNodeExample;
1635
+ protected getNodeExtensions(node: UsableDeclaration | ts.PropertyDeclaration | ts.ParameterDeclaration | ts.EnumDeclaration): Extension[];
1636
+ }
1637
+ //#endregion
1638
+ //#region src/adapters/typescript/resolver/cache.d.ts
1639
+ declare class ResolverCache implements IResolverCache {
1640
+ private referenceTypes;
1641
+ private inProgressTypes;
1642
+ getCachedType(name: string): ReferenceType | undefined;
1643
+ setCachedType(name: string, type: ReferenceType): void;
1644
+ isInProgress(name: string): boolean;
1645
+ markInProgress(name: string): void;
1646
+ clearInProgress(name: string): void;
1647
+ clear(): void;
1648
+ }
1649
+ //#endregion
1650
+ //#region src/adapters/typescript/resolver/utils.d.ts
1651
+ declare function getNodeDescription(node: Node, typeChecker: TypeChecker): string;
1652
+ declare function toTypeNodeOrFail(typeChecker: TypeChecker, ...args: Parameters<TypeChecker['typeToTypeNode']>): TypeNode;
1653
+ //#endregion
1654
+ //#region src/adapters/typescript/resolver/extension/module.d.ts
1655
+ declare function getNodeExtensions(node: Node, registry: Registry): Extension[];
1656
+ //#endregion
1657
+ //#region src/adapters/typescript/node-utils/types.d.ts
1658
+ interface NodeDecorator {
1659
+ text: string;
1660
+ arguments: any[];
1661
+ typeArguments: any[];
1662
+ }
1663
+ //#endregion
1664
+ //#region src/adapters/typescript/node-utils/module.d.ts
1665
+ /**
1666
+ * Get Decorators for a specific node.
1667
+ *
1668
+ * @param node
1669
+ * @param isMatching
1670
+ */
1671
+ declare function getNodeDecorators(node: Node, isMatching?: (data: NodeDecorator) => boolean): NodeDecorator[];
1672
+ //#endregion
1673
+ //#region src/adapters/typescript/initializer.d.ts
1674
+ declare function getInitializerValue(initializer?: ts.Expression, typeChecker?: ts.TypeChecker, type?: Type): unknown;
1675
+ declare const hasInitializer: (node: ts.Node) => node is ts.HasInitializer;
1676
+ //#endregion
1677
+ //#region src/adapters/typescript/js-doc/constants.d.ts
1678
+ declare enum JSDocTagName {
1679
+ ABSTRACT = "abstract",
1680
+ ACCESS = "access",
1681
+ ALIAS = "alias",
1682
+ ASYNC = "async",
1683
+ /**
1684
+ * Alias for @extends
1685
+ */
1686
+ AUGMENTS = "augments",
1687
+ AUTHOR = "author",
1688
+ DEFAULT = "default",
1689
+ DEPRECATED = "deprecated",
1690
+ DESCRIPTION = "description",
1691
+ EXAMPLE = "example",
1692
+ FORMAT = "format",
1693
+ IGNORE = "ignore",
1694
+ SUMMARY = "summary"
1695
+ }
1696
+ //#endregion
1697
+ //#region src/adapters/typescript/js-doc/module.d.ts
1698
+ declare function getJSDocDescription(node: Node, index?: number): string | undefined;
1699
+ declare function getJSDoc(node: Node, index?: number): undefined | JSDoc;
1700
+ declare function getJSDocTags(node: Node, isMatching?: `${JSDocTagName}` | `${JSDocTagName}`[] | (string & {}) | (string & {})[] | ((tag: JSDocTag) => boolean)): JSDocTag[];
1701
+ declare function hasJSDocTag(node: Node, tagName: ((tag: JSDocTag) => boolean) | `${JSDocTagName}` | (string & {})): boolean;
1702
+ declare function getJSDocTagComment(node: Node, tagName: ((tag: JSDocTag) => boolean) | `${JSDocTagName}`): undefined | string;
1703
+ declare function getJSDocTagNames(node: Node, requireTagName?: boolean): string[];
1704
+ //#endregion
1705
+ //#region src/adapters/typescript/js-doc/utils.d.ts
1706
+ declare function transformJSDocComment(input?: string | NodeArray<JSDocComment>): string | undefined;
1707
+ //#endregion
1708
+ //#region src/adapters/typescript/validator/module.d.ts
1709
+ declare function getDeclarationValidators(declaration: PropertyDeclaration | TypeAliasDeclaration | PropertySignature | ParameterDeclaration, name?: string): Record<string, Validator>;
1710
+ //#endregion
1711
+ //#region src/adapters/filesystem/source-files.d.ts
1712
+ declare function scanSourceFiles(input: EntryPoint): Promise<string[]>;
1713
+ //#endregion
1714
+ //#region src/app/generate.d.ts
1715
+ declare function generateMetadata(options: MetadataGenerateOptions): Promise<Metadata>;
1716
+ //#endregion
1717
+ //#region src/app/generator/metadata/module.d.ts
1718
+ declare class MetadataGenerator implements IGeneratorContext, IMetadataGenerator {
1719
+ readonly nodes: Node[];
1720
+ readonly typeChecker: TypeChecker;
1721
+ registry: Registry;
1722
+ readonly resolverCache: ResolverCache;
1723
+ readonly config: MetadataGeneratorOptions;
1724
+ private readonly program;
1725
+ private cache;
1726
+ private controllers;
1727
+ private referenceTypes;
1728
+ private circularDependencyResolvers;
1729
+ private unmatchedDecorators;
1730
+ constructor(context: MetadataGeneratorContext);
1731
+ generate(): Promise<Metadata>;
1732
+ private assertPresetProducedControllers;
1733
+ reportUnmatchedDecorator(report: UnmatchedDecoratorReport): void;
1734
+ private dispatchUnmatchedDecoratorReports;
1735
+ private formatUnmatchedSummary;
1736
+ protected buildNodesFromSourceFiles(): string;
1737
+ /**
1738
+ * Check if the source file path is in the ignored path list.
1739
+ *
1740
+ * @param filePath
1741
+ * @protected
1742
+ */
1743
+ protected isIgnoredPath(filePath: string): boolean;
1744
+ /**
1745
+ * Check if the source file path is in the ignored path list.
1746
+ *
1747
+ * @param filePath
1748
+ * @protected
1749
+ */
1750
+ protected isAllowedPath(filePath: string): boolean;
1751
+ isExportedNode(_node: Node): boolean;
1752
+ addReferenceType(referenceType: ReferenceType): void;
1753
+ getReferenceType(refName: string): ReferenceType;
1754
+ registerDependencyResolver(callback: DependencyResolver): void;
1755
+ private buildControllers;
1756
+ }
1757
+ //#endregion
1758
+ //#region src/app/generator/metadata/utils.d.ts
1759
+ declare function isMetadata(input: unknown): input is Metadata;
1760
+ //#endregion
1761
+ //#region src/app/generator/controller/module.d.ts
1762
+ declare class ControllerGenerator implements IControllerGenerator {
1763
+ protected readonly node: ClassDeclaration;
1764
+ protected readonly current: IGeneratorContext;
1765
+ constructor(node: ClassDeclaration, current: IGeneratorContext);
1766
+ isValid(): boolean;
1767
+ generate(): Controller | null;
1768
+ private applyOptions;
1769
+ protected buildMethods(controllerPaths: string[]): Method[];
1770
+ private collectInheritedMethodDeclarations;
1771
+ private resolveBaseClassDeclaration;
1772
+ }
1773
+ //#endregion
1774
+ //#region src/app/generator/method/module.d.ts
1775
+ declare class MethodGenerator {
1776
+ protected readonly node: MethodDeclaration;
1777
+ protected readonly current: IGeneratorContext;
1778
+ constructor(node: MethodDeclaration, current: IGeneratorContext);
1779
+ getMethodName(): string;
1780
+ generate(controllerPaths: string[]): Method | null;
1781
+ private applyOptions;
1782
+ private resolveReturnType;
1783
+ private buildParameters;
1784
+ }
1785
+ //#endregion
1786
+ //#region src/app/generator/parameter/module.d.ts
1787
+ declare class ParameterGenerator implements IParameterGenerator {
1788
+ private readonly parameter;
1789
+ private readonly method;
1790
+ private readonly paths;
1791
+ private readonly current;
1792
+ constructor(parameter: ts.ParameterDeclaration, method: string, paths: string[], current: IGeneratorContext);
1793
+ generate(): Parameter[];
1794
+ private finalize;
1795
+ private draftToParameter;
1796
+ private decomposeObject;
1797
+ private pathContainsParam;
1798
+ private validatePathDecomposition;
1799
+ private validatePathName;
1800
+ private isLeafTypeSupported;
1801
+ private isLeafOrEnumOrUnion;
1802
+ private resolveType;
1803
+ private getParameterName;
1804
+ private getDescription;
1805
+ private getJsDocExamples;
1806
+ private applyOptions;
1807
+ }
1808
+ //#endregion
1809
+ //#region src/core/utils/array.d.ts
1810
+ declare function isStringArray(input: unknown): input is string[];
1811
+ //#endregion
1812
+ //#region src/core/utils/object.d.ts
1813
+ declare function hasOwnProperty<Y extends PropertyKey>(obj: unknown, prop: Y): obj is Record<Y, unknown>;
1814
+ //#endregion
1815
+ //#region src/core/utils/path-normalize.d.ts
1816
+ declare function normalizePath(str: string): string;
1817
+ //#endregion
1818
+ export { AnyDecoratorHandler, AnyJsDocHandler, AnyType, ApplyHandlersOptions, ArrayParameter, ArrayType, BaseType, BigintType, BinaryType, BooleanType, BufferType, ByteType, CACHE_DEFAULT_MAX_AGE_MS, CACHE_FILE_PREFIX, CACHE_FILE_SUFFIX, CACHE_SCHEMA_VERSION, CacheClient, CacheData, CacheKeyParts, CacheOptions, CacheOptionsInput, CollectionFormat, CollectionKind, ConfigError, ConfigErrorCode, Controller, ControllerDraft, ControllerGenerator, ControllerHandler, ControllerJsDocHandler, CreateHandlerContextInput, DateTimeType, DateType, DecoratorArgument, DecoratorArgumentKind, DecoratorArgumentKindName, DecoratorHost, DecoratorSource, DecoratorSourceBuilderOptions, DecoratorTarget, DecoratorTargetKind, DecoratorTypeArgument, DependencyResolver, DoubleType, EntryPoint, EntryPointOptions, EnumType, Example, Extension, ExtensionType, FileType, FloatType, GeneratorError, GeneratorErrorCode, HandlerContext, ICacheClient, IControllerGenerator, IGeneratorContext, IMetadataGenerator, IParameterGenerator, IReferenceTypeRegistry, IResolverCache, IResolverContext, IntegerType, IntersectionType, JSDocTagName, JsDocHandlerContext, JsDocMatch, JsDocSource, JsDocSourceBuilderOptions, LoadRegistryOptions, LongType, MarkerName, Match, Metadata, MetadataError, MetadataGenerateOptions, MetadataGenerator, MetadataGeneratorContext, MetadataGeneratorOptions, Method, MethodDraft, MethodGenerator, MethodHandler, MethodJsDocHandler, MethodName, MethodType, NestedObjectLiteralType, NeverType, NodeDecorator, NumericKind, ObjectType, OverrideToken, ParamKind, Parameter, ParameterDraft, ParameterError, ParameterErrorCode, ParameterGenerator, ParameterHandler, ParameterJsDocHandler, ParameterSource, Preset, PresetResolver, PrimitiveResolver, PrimitiveType, RawDecorator, RefAliasType, RefEnumType, RefObjectType, ReferenceResolver, ReferenceType, ReferenceTypeBase, ReferenceTypes, Registry, ReplacesPolicy, ResolverBase, ResolverCache, ResolverError, ResolverMarker, ResolverProperty, Response, Security, StringType, SubResolverContext, TsCompilerOptions, TsConfig, TsconfigLoadContext, TupleElement, TupleType, Type, TypeName, TypeNodeResolver, TypeNodeResolverContext, UndefinedType, UnionType, UnmatchedDecoratorReport, UsableDeclaration, UtilityTypeName, Validator, ValidatorError, ValidatorErrorCode, ValidatorMeta, ValidatorName, Validators, VariableType, VoidType, append, applyDecoratorHandlers, applyJsDocHandlers, arrayArg, buildCacheOptions, buildDecoratorArgument, buildDecoratorSources, buildHandlerContext, buildJsDocHandlerContext, buildJsDocSources, composeCacheKey, controller, controllerHandlerSchema, controllerJsDoc, controllerJsDocHandlerSchema, createHandlerContext, createPresetContainer, createRegistry, findDecoratorByName, findDecoratorsByName, flag, generateMetadata, generatePresetLookupPaths, getDeclarationValidators, getInitializerValue, getJSDoc, getJSDocDescription, getJSDocTagComment, getJSDocTagNames, getJSDocTags, getLiteralValue, getNodeDecorators, getNodeDescription, getNodeExtensions, hasDecoratorNamed, hasInitializer, hasJSDocTag, hasOwnProperty, hashCompilerOptions, hashRegistry, identifierArg, into, isAnyType, isArrayType, isBigintType, isBinaryType, isBooleanType, isBufferType, isByteType, isDateTimeType, isDateType, isDeprecatedMarker, isDoubleType, isEnumType, isExtensionMarker, isFileType, isFloatType, isGeneratorError, isHiddenMarker, isIntegerType, isIntersectionType, isLongType, isMetadata, isNestedObjectLiteralType, isNeverType, isObjectType, isPrimitiveType, isRefAliasType, isRefEnumType, isRefObjectType, isReferenceType, isResolverError, isStringArray, isStringType, isTupleType, isUndefinedType, isUnionType, isVoidType, jsDocMatchSchema, literalArg, loadRegistry, loadRegistryByName, loadTSConfig, matchSchema, matches, matchesJsDoc, method, methodHandlerSchema, methodJsDoc, methodJsDocHandlerSchema, namesForMarker, newControllerDraft, newMethodDraft, newParameterDraft, normalizePath, numericMarkerKind, objectArg, parameter, parameterHandlerSchema, parameterJsDoc, parameterJsDocHandlerSchema, presetSchema, prettyLocationOfNode, prettyTroubleCause, readBoolean, readNodeDecorators, readNumber, readString, readStringOrStringArray, resolveArrayType, resolveIndexedAccessType, resolveIntersectionType, resolveLiteralType, resolveMappedType, resolveObjectLiteralType, resolvePresetByName, resolveTupleType, resolveTypeOperatorType, resolveUnionType, scanSourceFiles, setControllerPaths, setMethodPath, softLoadTsconfig, tagsForMarker, toTypeNodeOrFail, transformJSDocComment, typeArg, unresolvableArg, validatePreset };
1819
+ //# sourceMappingURL=index.d.mts.map