@catbee/utils 0.0.8-rc.0 → 0.0.8-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.md +25 -1
  2. package/build/esm/config.d.ts +0 -1
  3. package/build/esm/config.js +6 -7
  4. package/build/esm/index.d.ts +0 -1
  5. package/build/esm/index.js +0 -1
  6. package/build/esm/servers/server.builder.d.ts +0 -1
  7. package/build/esm/servers/server.builder.js +99 -147
  8. package/build/esm/servers/server.d.ts +0 -1
  9. package/build/esm/servers/server.js +591 -876
  10. package/build/esm/types/api-response.d.ts +0 -1
  11. package/build/esm/types/api-response.js +0 -1
  12. package/build/esm/types/index.d.ts +0 -1
  13. package/build/esm/types/index.js +0 -1
  14. package/build/esm/types/server.d.ts +0 -1
  15. package/build/esm/types/server.js +0 -1
  16. package/build/esm/utils/array.utils.d.ts +0 -1
  17. package/build/esm/utils/array.utils.js +48 -86
  18. package/build/esm/utils/async.utils.d.ts +0 -1
  19. package/build/esm/utils/async.utils.js +247 -524
  20. package/build/esm/utils/cache.utils.d.ts +0 -1
  21. package/build/esm/utils/cache.utils.js +96 -301
  22. package/build/esm/utils/context-store.utils.d.ts +0 -1
  23. package/build/esm/utils/context-store.utils.js +62 -79
  24. package/build/esm/utils/crypto.utils.d.ts +0 -1
  25. package/build/esm/utils/crypto.utils.js +78 -175
  26. package/build/esm/utils/date.utils.d.ts +0 -1
  27. package/build/esm/utils/date.utils.js +47 -53
  28. package/build/esm/utils/decorators.utils.d.ts +201 -5
  29. package/build/esm/utils/decorators.utils.js +632 -285
  30. package/build/esm/utils/dir.utils.d.ts +0 -1
  31. package/build/esm/utils/dir.utils.js +264 -786
  32. package/build/esm/utils/env.utils.d.ts +0 -1
  33. package/build/esm/utils/env.utils.js +180 -271
  34. package/build/esm/utils/exception.utils.d.ts +0 -1
  35. package/build/esm/utils/exception.utils.js +112 -289
  36. package/build/esm/utils/fs.utils.d.ts +0 -1
  37. package/build/esm/utils/fs.utils.js +169 -401
  38. package/build/esm/utils/http-status-codes.d.ts +0 -1
  39. package/build/esm/utils/http-status-codes.js +0 -1
  40. package/build/esm/utils/id.utils.d.ts +0 -1
  41. package/build/esm/utils/id.utils.js +5 -9
  42. package/build/esm/utils/logger.utils.d.ts +0 -1
  43. package/build/esm/utils/logger.utils.js +34 -71
  44. package/build/esm/utils/middleware.utils.d.ts +0 -1
  45. package/build/esm/utils/middleware.utils.js +65 -155
  46. package/build/esm/utils/obj.utils.d.ts +0 -1
  47. package/build/esm/utils/obj.utils.js +69 -176
  48. package/build/esm/utils/performance.utils.d.ts +0 -1
  49. package/build/esm/utils/performance.utils.js +92 -195
  50. package/build/esm/utils/request.utils.d.ts +0 -1
  51. package/build/esm/utils/request.utils.js +41 -74
  52. package/build/esm/utils/response.utils.d.ts +0 -1
  53. package/build/esm/utils/response.utils.js +84 -107
  54. package/build/esm/utils/stream.utils.d.ts +0 -1
  55. package/build/esm/utils/stream.utils.js +38 -113
  56. package/build/esm/utils/string.utils.d.ts +0 -1
  57. package/build/esm/utils/string.utils.js +6 -11
  58. package/build/esm/utils/type.utils.d.ts +0 -1
  59. package/build/esm/utils/type.utils.js +8 -12
  60. package/build/esm/utils/url.utils.d.ts +0 -1
  61. package/build/esm/utils/url.utils.js +49 -127
  62. package/build/esm/utils/validate.utils.d.ts +0 -1
  63. package/build/esm/utils/validate.utils.js +23 -40
  64. package/package.json +3 -33
  65. package/build/esm/config.js.map +0 -1
  66. package/build/esm/index.js.map +0 -1
  67. package/build/esm/servers/server.builder.js.map +0 -1
  68. package/build/esm/servers/server.js.map +0 -1
  69. package/build/esm/types/api-response.js.map +0 -1
  70. package/build/esm/types/index.js.map +0 -1
  71. package/build/esm/types/server.js.map +0 -1
  72. package/build/esm/utils/array.utils.js.map +0 -1
  73. package/build/esm/utils/async.utils.js.map +0 -1
  74. package/build/esm/utils/cache.utils.js.map +0 -1
  75. package/build/esm/utils/context-store.utils.js.map +0 -1
  76. package/build/esm/utils/crypto.utils.js.map +0 -1
  77. package/build/esm/utils/date.utils.js.map +0 -1
  78. package/build/esm/utils/decorators.utils.js.map +0 -1
  79. package/build/esm/utils/dir.utils.js.map +0 -1
  80. package/build/esm/utils/env.utils.js.map +0 -1
  81. package/build/esm/utils/exception.utils.js.map +0 -1
  82. package/build/esm/utils/fs.utils.js.map +0 -1
  83. package/build/esm/utils/http-status-codes.js.map +0 -1
  84. package/build/esm/utils/id.utils.js.map +0 -1
  85. package/build/esm/utils/logger.utils.js.map +0 -1
  86. package/build/esm/utils/middleware.utils.js.map +0 -1
  87. package/build/esm/utils/obj.utils.js.map +0 -1
  88. package/build/esm/utils/performance.utils.js.map +0 -1
  89. package/build/esm/utils/request.utils.js.map +0 -1
  90. package/build/esm/utils/response.utils.js.map +0 -1
  91. package/build/esm/utils/stream.utils.js.map +0 -1
  92. package/build/esm/utils/string.utils.js.map +0 -1
  93. package/build/esm/utils/type.utils.js.map +0 -1
  94. package/build/esm/utils/url.utils.js.map +0 -1
  95. package/build/esm/utils/validate.utils.js.map +0 -1
  96. package/build/esnext/config.d.ts +0 -122
  97. package/build/esnext/config.js +0 -133
  98. package/build/esnext/config.js.map +0 -1
  99. package/build/esnext/index.d.ts +0 -27
  100. package/build/esnext/index.js +0 -50
  101. package/build/esnext/index.js.map +0 -1
  102. package/build/esnext/servers/server.builder.d.ts +0 -508
  103. package/build/esnext/servers/server.builder.js +0 -657
  104. package/build/esnext/servers/server.builder.js.map +0 -1
  105. package/build/esnext/servers/server.d.ts +0 -256
  106. package/build/esnext/servers/server.js +0 -955
  107. package/build/esnext/servers/server.js.map +0 -1
  108. package/build/esnext/types/api-response.d.ts +0 -152
  109. package/build/esnext/types/api-response.js +0 -34
  110. package/build/esnext/types/api-response.js.map +0 -1
  111. package/build/esnext/types/index.d.ts +0 -125
  112. package/build/esnext/types/index.js +0 -25
  113. package/build/esnext/types/index.js.map +0 -1
  114. package/build/esnext/types/server.d.ts +0 -268
  115. package/build/esnext/types/server.js +0 -25
  116. package/build/esnext/types/server.js.map +0 -1
  117. package/build/esnext/utils/array.utils.d.ts +0 -168
  118. package/build/esnext/utils/array.utils.js +0 -345
  119. package/build/esnext/utils/array.utils.js.map +0 -1
  120. package/build/esnext/utils/async.utils.d.ts +0 -265
  121. package/build/esnext/utils/async.utils.js +0 -620
  122. package/build/esnext/utils/async.utils.js.map +0 -1
  123. package/build/esnext/utils/cache.utils.d.ts +0 -153
  124. package/build/esnext/utils/cache.utils.js +0 -293
  125. package/build/esnext/utils/cache.utils.js.map +0 -1
  126. package/build/esnext/utils/context-store.utils.d.ts +0 -189
  127. package/build/esnext/utils/context-store.utils.js +0 -289
  128. package/build/esnext/utils/context-store.utils.js.map +0 -1
  129. package/build/esnext/utils/crypto.utils.d.ts +0 -160
  130. package/build/esnext/utils/crypto.utils.js +0 -276
  131. package/build/esnext/utils/crypto.utils.js.map +0 -1
  132. package/build/esnext/utils/date.utils.d.ts +0 -159
  133. package/build/esnext/utils/date.utils.js +0 -384
  134. package/build/esnext/utils/date.utils.js.map +0 -1
  135. package/build/esnext/utils/decorators.utils.d.ts +0 -315
  136. package/build/esnext/utils/decorators.utils.js +0 -504
  137. package/build/esnext/utils/decorators.utils.js.map +0 -1
  138. package/build/esnext/utils/dir.utils.d.ts +0 -196
  139. package/build/esnext/utils/dir.utils.js +0 -477
  140. package/build/esnext/utils/dir.utils.js.map +0 -1
  141. package/build/esnext/utils/env.utils.d.ts +0 -377
  142. package/build/esnext/utils/env.utils.js +0 -785
  143. package/build/esnext/utils/env.utils.js.map +0 -1
  144. package/build/esnext/utils/exception.utils.d.ts +0 -230
  145. package/build/esnext/utils/exception.utils.js +0 -381
  146. package/build/esnext/utils/exception.utils.js.map +0 -1
  147. package/build/esnext/utils/fs.utils.d.ts +0 -164
  148. package/build/esnext/utils/fs.utils.js +0 -349
  149. package/build/esnext/utils/fs.utils.js.map +0 -1
  150. package/build/esnext/utils/http-status-codes.d.ts +0 -266
  151. package/build/esnext/utils/http-status-codes.js +0 -295
  152. package/build/esnext/utils/http-status-codes.js.map +0 -1
  153. package/build/esnext/utils/id.utils.d.ts +0 -36
  154. package/build/esnext/utils/id.utils.js +0 -84
  155. package/build/esnext/utils/id.utils.js.map +0 -1
  156. package/build/esnext/utils/logger.utils.d.ts +0 -160
  157. package/build/esnext/utils/logger.utils.js +0 -300
  158. package/build/esnext/utils/logger.utils.js.map +0 -1
  159. package/build/esnext/utils/middleware.utils.d.ts +0 -100
  160. package/build/esnext/utils/middleware.utils.js +0 -236
  161. package/build/esnext/utils/middleware.utils.js.map +0 -1
  162. package/build/esnext/utils/obj.utils.d.ts +0 -124
  163. package/build/esnext/utils/obj.utils.js +0 -413
  164. package/build/esnext/utils/obj.utils.js.map +0 -1
  165. package/build/esnext/utils/performance.utils.d.ts +0 -136
  166. package/build/esnext/utils/performance.utils.js +0 -271
  167. package/build/esnext/utils/performance.utils.js.map +0 -1
  168. package/build/esnext/utils/request.utils.d.ts +0 -86
  169. package/build/esnext/utils/request.utils.js +0 -186
  170. package/build/esnext/utils/request.utils.js.map +0 -1
  171. package/build/esnext/utils/response.utils.d.ts +0 -163
  172. package/build/esnext/utils/response.utils.js +0 -247
  173. package/build/esnext/utils/response.utils.js.map +0 -1
  174. package/build/esnext/utils/stream.utils.d.ts +0 -88
  175. package/build/esnext/utils/stream.utils.js +0 -210
  176. package/build/esnext/utils/stream.utils.js.map +0 -1
  177. package/build/esnext/utils/string.utils.d.ts +0 -93
  178. package/build/esnext/utils/string.utils.js +0 -165
  179. package/build/esnext/utils/string.utils.js.map +0 -1
  180. package/build/esnext/utils/type.utils.d.ts +0 -90
  181. package/build/esnext/utils/type.utils.js +0 -187
  182. package/build/esnext/utils/type.utils.js.map +0 -1
  183. package/build/esnext/utils/url.utils.d.ts +0 -141
  184. package/build/esnext/utils/url.utils.js +0 -304
  185. package/build/esnext/utils/url.utils.js.map +0 -1
  186. package/build/esnext/utils/validate.utils.d.ts +0 -177
  187. package/build/esnext/utils/validate.utils.js +0 -320
  188. package/build/esnext/utils/validate.utils.js.map +0 -1
  189. package/build/src/config.d.ts +0 -122
  190. package/build/src/config.js +0 -138
  191. package/build/src/config.js.map +0 -1
  192. package/build/src/index.d.ts +0 -27
  193. package/build/src/index.js +0 -69
  194. package/build/src/index.js.map +0 -1
  195. package/build/src/servers/server.builder.d.ts +0 -508
  196. package/build/src/servers/server.builder.js +0 -661
  197. package/build/src/servers/server.builder.js.map +0 -1
  198. package/build/src/servers/server.d.ts +0 -256
  199. package/build/src/servers/server.js +0 -962
  200. package/build/src/servers/server.js.map +0 -1
  201. package/build/src/types/api-response.d.ts +0 -152
  202. package/build/src/types/api-response.js +0 -37
  203. package/build/src/types/api-response.js.map +0 -1
  204. package/build/src/types/index.d.ts +0 -125
  205. package/build/src/types/index.js +0 -26
  206. package/build/src/types/index.js.map +0 -1
  207. package/build/src/types/server.d.ts +0 -268
  208. package/build/src/types/server.js +0 -26
  209. package/build/src/types/server.js.map +0 -1
  210. package/build/src/utils/array.utils.d.ts +0 -168
  211. package/build/src/utils/array.utils.js +0 -364
  212. package/build/src/utils/array.utils.js.map +0 -1
  213. package/build/src/utils/async.utils.d.ts +0 -265
  214. package/build/src/utils/async.utils.js +0 -641
  215. package/build/src/utils/async.utils.js.map +0 -1
  216. package/build/src/utils/cache.utils.d.ts +0 -153
  217. package/build/src/utils/cache.utils.js +0 -297
  218. package/build/src/utils/cache.utils.js.map +0 -1
  219. package/build/src/utils/context-store.utils.d.ts +0 -189
  220. package/build/src/utils/context-store.utils.js +0 -296
  221. package/build/src/utils/context-store.utils.js.map +0 -1
  222. package/build/src/utils/crypto.utils.d.ts +0 -160
  223. package/build/src/utils/crypto.utils.js +0 -293
  224. package/build/src/utils/crypto.utils.js.map +0 -1
  225. package/build/src/utils/date.utils.d.ts +0 -159
  226. package/build/src/utils/date.utils.js +0 -396
  227. package/build/src/utils/date.utils.js.map +0 -1
  228. package/build/src/utils/decorators.utils.d.ts +0 -315
  229. package/build/src/utils/decorators.utils.js +0 -516
  230. package/build/src/utils/decorators.utils.js.map +0 -1
  231. package/build/src/utils/dir.utils.d.ts +0 -196
  232. package/build/src/utils/dir.utils.js +0 -501
  233. package/build/src/utils/dir.utils.js.map +0 -1
  234. package/build/src/utils/env.utils.d.ts +0 -377
  235. package/build/src/utils/env.utils.js +0 -789
  236. package/build/src/utils/env.utils.js.map +0 -1
  237. package/build/src/utils/exception.utils.d.ts +0 -230
  238. package/build/src/utils/exception.utils.js +0 -407
  239. package/build/src/utils/exception.utils.js.map +0 -1
  240. package/build/src/utils/fs.utils.d.ts +0 -164
  241. package/build/src/utils/fs.utils.js +0 -372
  242. package/build/src/utils/fs.utils.js.map +0 -1
  243. package/build/src/utils/http-status-codes.d.ts +0 -266
  244. package/build/src/utils/http-status-codes.js +0 -298
  245. package/build/src/utils/http-status-codes.js.map +0 -1
  246. package/build/src/utils/id.utils.d.ts +0 -36
  247. package/build/src/utils/id.utils.js +0 -91
  248. package/build/src/utils/id.utils.js.map +0 -1
  249. package/build/src/utils/logger.utils.d.ts +0 -160
  250. package/build/src/utils/logger.utils.js +0 -346
  251. package/build/src/utils/logger.utils.js.map +0 -1
  252. package/build/src/utils/middleware.utils.d.ts +0 -100
  253. package/build/src/utils/middleware.utils.js +0 -244
  254. package/build/src/utils/middleware.utils.js.map +0 -1
  255. package/build/src/utils/obj.utils.d.ts +0 -124
  256. package/build/src/utils/obj.utils.js +0 -429
  257. package/build/src/utils/obj.utils.js.map +0 -1
  258. package/build/src/utils/performance.utils.d.ts +0 -136
  259. package/build/src/utils/performance.utils.js +0 -278
  260. package/build/src/utils/performance.utils.js.map +0 -1
  261. package/build/src/utils/request.utils.d.ts +0 -86
  262. package/build/src/utils/request.utils.js +0 -195
  263. package/build/src/utils/request.utils.js.map +0 -1
  264. package/build/src/utils/response.utils.d.ts +0 -163
  265. package/build/src/utils/response.utils.js +0 -260
  266. package/build/src/utils/response.utils.js.map +0 -1
  267. package/build/src/utils/stream.utils.d.ts +0 -88
  268. package/build/src/utils/stream.utils.js +0 -218
  269. package/build/src/utils/stream.utils.js.map +0 -1
  270. package/build/src/utils/string.utils.d.ts +0 -93
  271. package/build/src/utils/string.utils.js +0 -179
  272. package/build/src/utils/string.utils.js.map +0 -1
  273. package/build/src/utils/type.utils.d.ts +0 -90
  274. package/build/src/utils/type.utils.js +0 -196
  275. package/build/src/utils/type.utils.js.map +0 -1
  276. package/build/src/utils/url.utils.d.ts +0 -141
  277. package/build/src/utils/url.utils.js +0 -317
  278. package/build/src/utils/url.utils.js.map +0 -1
  279. package/build/src/utils/validate.utils.d.ts +0 -177
  280. package/build/src/utils/validate.utils.js +0 -345
  281. package/build/src/utils/validate.utils.js.map +0 -1
@@ -1,5 +1,26 @@
1
1
  import type { RequestHandler, Router } from 'express';
2
2
  import 'reflect-metadata';
3
+ type Constructor<T = any> = new (...args: any[]) => T;
4
+ export declare class DIContainer {
5
+ private instances;
6
+ private constructing;
7
+ register<T>(target: Constructor<T>): void;
8
+ get<T>(target: Constructor<T>): T;
9
+ clear(): void;
10
+ }
11
+ /**
12
+ * Injectable decorator for marking classes as injectable.
13
+ *
14
+ * @returns Class decorator that marks a class as injectable and registers it with the DI container.
15
+ */
16
+ export declare function Injectable(): ClassDecorator;
17
+ /**
18
+ * Inject decorator for injecting dependencies into class properties.
19
+ *
20
+ * @param targetClass - The class to inject
21
+ * @returns Property decorator that injects the specified class into the property
22
+ */
23
+ export declare function Inject<T>(targetClass: new (...args: any[]) => T): PropertyDecorator;
3
24
  /**
4
25
  * Decorator for GET HTTP method routes.
5
26
  *
@@ -212,8 +233,8 @@ export declare function HttpCode(status: number): MethodDecorator;
212
233
  /**
213
234
  * Decorator that adds a custom HTTP header to the response.
214
235
  *
215
- * @param name - Header name
216
- * @param value - Header value
236
+ * @param header - Header name-value pairs or a single header name and value
237
+ * @param value - Header value if a single header name is provided
217
238
  * @returns Method decorator
218
239
  *
219
240
  * @example
@@ -224,9 +245,38 @@ export declare function HttpCode(status: number): MethodDecorator;
224
245
  * // Response will include the Cache-Control header
225
246
  * return { data: '...' };
226
247
  * }
248
+ */
249
+ export declare function Header(name: string, value: string): MethodDecorator & ClassDecorator;
250
+ /**
251
+ * Decorator that adds a custom HTTP headers to the response.
252
+ *
253
+ * @param headers - Header name-value pairs or a single header name and value
254
+ * @param value - Header value if a single header name is provided
255
+ * @returns Method decorator
256
+ *
257
+ * @example
258
+ * ```ts
259
+ * @Get('/data')
260
+ * @Headers('Cache-Control', 'max-age=60')
261
+ * getData() {
262
+ * // Response will include the Cache-Control header
263
+ * return { data: '...' };
264
+ * }
265
+ *
266
+ * @Get('/data/:id')
267
+ * @Headers({
268
+ * 'Cache-Control': 'max-age=60',
269
+ * 'X-Custom-Header': 'custom-value',
270
+ * 'Content-Security-Policy': "default-src 'self'"
271
+ * })
272
+ * getData() {
273
+ * // Response will include all specified headers
274
+ * return { data: '...' };
275
+ * }
276
+ *
227
277
  * ```
228
278
  */
229
- export declare function Header(name: string, value: string): MethodDecorator;
279
+ export declare function Headers(headers: Record<string, string> | string, value?: string): MethodDecorator & ClassDecorator;
230
280
  /**
231
281
  * Decorator that registers a function to run before route handler execution.
232
282
  * Useful for pre-processing or logging.
@@ -266,6 +316,8 @@ export declare function After(fn: Function): MethodDecorator;
266
316
  * Decorator that requires specific roles for accessing a route.
267
317
  * Must be used with authentication middleware.
268
318
  *
319
+ * Check req.user.roles for user roles[].
320
+ *
269
321
  * @param roles - List of roles that can access this route
270
322
  * @returns Method decorator
271
323
  *
@@ -279,7 +331,7 @@ export declare function After(fn: Function): MethodDecorator;
279
331
  * }
280
332
  * ```
281
333
  */
282
- export declare function Roles(...roles: string[]): MethodDecorator;
334
+ export declare function Roles(...roles: string[]): MethodDecorator & ClassDecorator;
283
335
  /**
284
336
  * Decorator that redirects to another URL.
285
337
  *
@@ -304,6 +356,150 @@ export declare function Roles(...roles: string[]): MethodDecorator;
304
356
  * ```
305
357
  */
306
358
  export declare function Redirect(url?: string, statusCode?: number): MethodDecorator;
359
+ /**
360
+ * Decorator that adds caching to a route response.
361
+ *
362
+ * @param ttlSeconds - Time to live in seconds for the cache
363
+ * @returns Method decorator
364
+ *
365
+ * @example
366
+ * ```ts
367
+ * @Get('/data')
368
+ * @Cache(300) // Cache for 5 minutes
369
+ * getData() {
370
+ * return { data: 'expensive operation result' };
371
+ * }
372
+ * ```
373
+ */
374
+ export declare function Cache(ttlSeconds: number): MethodDecorator & ClassDecorator;
375
+ /**
376
+ * Decorator that applies rate limiting to a route.
377
+ * Note: Requires 'express-rate-limit' package to be installed.
378
+ *
379
+ * @param limit - Maximum number of requests allowed in the window
380
+ * @param windowMs - Time window in milliseconds
381
+ * @returns Method decorator
382
+ *
383
+ * Default Options:
384
+ * - standardHeaders: true
385
+ * - legacyHeaders: false
386
+ *
387
+ * @example
388
+ * ```ts
389
+ * @Post('/login')
390
+ * @RateLimit({ max: 5, windowMs: 60000, standardHeaders: true, legacyHeaders: false }) // 5 requests per minute
391
+ * login(@Body() credentials: LoginDto) {
392
+ * return this.authService.login(credentials);
393
+ * }
394
+ * ```
395
+ */
396
+ export declare function RateLimit(options: {
397
+ max: number;
398
+ windowMs: number;
399
+ standardHeaders?: boolean;
400
+ legacyHeaders?: boolean;
401
+ }): MethodDecorator & ClassDecorator;
402
+ /**
403
+ * Decorator that sets the content type for the response.
404
+ *
405
+ * @param type - MIME type for the response
406
+ * @returns Method decorator
407
+ *
408
+ * @example
409
+ * ```ts
410
+ * @Get('/download')
411
+ * @ContentType('application/pdf')
412
+ * downloadPdf() {
413
+ * return this.fileService.generatePdf();
414
+ * }
415
+ * ```
416
+ */
417
+ export declare function ContentType(type: string): MethodDecorator;
418
+ /**
419
+ * Decorator that adds API versioning to a route.
420
+ *
421
+ * @param version - Version string for the API endpoint
422
+ * @param options - Versioning options
423
+ * @returns Method decorator
424
+ *
425
+ * Default Options:
426
+ * - addPrefix: true
427
+ * - addHeader: true
428
+ * - headerName: 'X-API-Version'
429
+ *
430
+ * @example
431
+ * ```ts
432
+ *
433
+ * @Get('/users')
434
+ * @Version('v2')
435
+ * getUsersV2() {
436
+ * return this.userService.findAllV2();
437
+ * }
438
+ *
439
+ * @Get('/users')
440
+ * @Version('v2', { addPrefix: true, addHeader: true, headerName: 'X-API-Version' })
441
+ * getUsersV2() {
442
+ * // Route becomes /v2/users
443
+ * return this.userService.findAllV2();
444
+ * }
445
+ * ```
446
+ */
447
+ export declare function Version(version: string, options?: {
448
+ addPrefix?: boolean;
449
+ addHeader?: boolean;
450
+ headerName?: string;
451
+ }): MethodDecorator & ClassDecorator;
452
+ /**
453
+ * Decorator that sets a timeout for route execution.
454
+ *
455
+ * @param ms - Timeout in milliseconds
456
+ * @returns Method decorator
457
+ *
458
+ * @example
459
+ * ```ts
460
+ * @Get('/slow-operation')
461
+ * @Timeout(30000) // 30 second timeout
462
+ * slowOperation() {
463
+ * return this.heavyService.processData();
464
+ * }
465
+ * ```
466
+ */
467
+ export declare function Timeout(ms: number): MethodDecorator & ClassDecorator;
468
+ /**
469
+ * Decorator that adds comprehensive logging to a route.
470
+ *
471
+ * @param options - Logging configuration options
472
+ * @returns Method decorator
473
+ *
474
+ * Default Options:
475
+ * - logEntry: true
476
+ * - logExit: true
477
+ * - logBody: false
478
+ * - logParams: false
479
+ * - logResponse: false
480
+ *
481
+ * @example
482
+ * ```ts
483
+ * @Post('/users')
484
+ * @Log({
485
+ * logEntry: true,
486
+ * logExit: true,
487
+ * logBody: true,
488
+ * logParams: true,
489
+ * logResponse: false
490
+ * })
491
+ * createUser(@Body() userData: any) {
492
+ * return this.userService.create(userData);
493
+ * }
494
+ * ```
495
+ */
496
+ export declare function Log(options?: {
497
+ logEntry?: boolean;
498
+ logExit?: boolean;
499
+ logBody?: boolean;
500
+ logParams?: boolean;
501
+ logResponse?: boolean;
502
+ }): MethodDecorator & ClassDecorator;
307
503
  /**
308
504
  * Registers all controller classes with the provided router.
309
505
  * This function processes all decorators and sets up the Express routes.
@@ -312,4 +508,4 @@ export declare function Redirect(url?: string, statusCode?: number): MethodDecor
312
508
  * @param controllers - Array of controller classes
313
509
  */
314
510
  export declare function registerControllers(router: Router, controllers: any[]): void;
315
- //# sourceMappingURL=decorators.utils.d.ts.map
511
+ export {};