@catbee/utils 0.0.8-rc.1 → 0.0.8-rc.3

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 (280) hide show
  1. package/build/{esnext → cjs}/config.d.ts +0 -1
  2. package/build/{src → cjs}/config.js +0 -1
  3. package/build/{esnext → cjs}/index.d.ts +0 -1
  4. package/build/{src → cjs}/index.js +0 -1
  5. package/build/{esnext → cjs}/servers/server.builder.d.ts +0 -1
  6. package/build/{src → cjs}/servers/server.builder.js +10 -13
  7. package/build/{src → cjs}/servers/server.d.ts +0 -1
  8. package/build/{src → cjs}/servers/server.js +83 -75
  9. package/build/{src → cjs}/types/api-response.d.ts +0 -1
  10. package/build/{src → cjs}/types/api-response.js +0 -1
  11. package/build/{src → cjs}/types/index.d.ts +0 -1
  12. package/build/{src → cjs}/types/index.js +0 -1
  13. package/build/{src → cjs}/types/server.d.ts +0 -1
  14. package/build/{src → cjs}/types/server.js +0 -1
  15. package/build/{src → cjs}/utils/array.utils.d.ts +0 -1
  16. package/build/{src → cjs}/utils/array.utils.js +0 -1
  17. package/build/{src → cjs}/utils/async.utils.d.ts +0 -1
  18. package/build/{src → cjs}/utils/async.utils.js +2 -3
  19. package/build/{esnext → cjs}/utils/cache.utils.d.ts +0 -1
  20. package/build/{src → cjs}/utils/cache.utils.js +7 -6
  21. package/build/{esnext → cjs}/utils/context-store.utils.d.ts +1 -2
  22. package/build/{src → cjs}/utils/context-store.utils.js +10 -9
  23. package/build/{esnext → cjs}/utils/crypto.utils.d.ts +0 -1
  24. package/build/{src → cjs}/utils/crypto.utils.js +5 -3
  25. package/build/{src → cjs}/utils/date.utils.d.ts +0 -1
  26. package/build/{src → cjs}/utils/date.utils.js +1 -2
  27. package/build/{src → cjs}/utils/decorators.utils.d.ts +30 -27
  28. package/build/{src → cjs}/utils/decorators.utils.js +169 -30
  29. package/build/{esnext → cjs}/utils/dir.utils.d.ts +0 -1
  30. package/build/{src → cjs}/utils/dir.utils.js +6 -7
  31. package/build/{esnext → cjs}/utils/env.utils.d.ts +0 -1
  32. package/build/{src → cjs}/utils/env.utils.js +5 -8
  33. package/build/{src → cjs}/utils/exception.utils.d.ts +0 -1
  34. package/build/{src → cjs}/utils/exception.utils.js +2 -1
  35. package/build/{src → cjs}/utils/fs.utils.d.ts +0 -1
  36. package/build/{src → cjs}/utils/fs.utils.js +12 -13
  37. package/build/{esnext → cjs}/utils/http-status-codes.d.ts +0 -1
  38. package/build/{src → cjs}/utils/http-status-codes.js +0 -1
  39. package/build/{esnext → cjs}/utils/id.utils.d.ts +0 -1
  40. package/build/{src → cjs}/utils/id.utils.js +0 -1
  41. package/build/{src → cjs}/utils/logger.utils.d.ts +0 -1
  42. package/build/{src → cjs}/utils/logger.utils.js +10 -6
  43. package/build/{esnext → cjs}/utils/middleware.utils.d.ts +0 -1
  44. package/build/{src → cjs}/utils/middleware.utils.js +16 -17
  45. package/build/{esnext → cjs}/utils/obj.utils.d.ts +0 -1
  46. package/build/{src → cjs}/utils/obj.utils.js +1 -2
  47. package/build/{src → cjs}/utils/performance.utils.d.ts +0 -1
  48. package/build/{src → cjs}/utils/performance.utils.js +6 -4
  49. package/build/{esnext → cjs}/utils/request.utils.d.ts +0 -1
  50. package/build/{src → cjs}/utils/request.utils.js +7 -3
  51. package/build/{esnext → cjs}/utils/response.utils.d.ts +0 -1
  52. package/build/{src → cjs}/utils/response.utils.js +42 -28
  53. package/build/{esnext → cjs}/utils/stream.utils.d.ts +0 -1
  54. package/build/{src → cjs}/utils/stream.utils.js +0 -1
  55. package/build/{esnext → cjs}/utils/string.utils.d.ts +0 -1
  56. package/build/{src → cjs}/utils/string.utils.js +0 -1
  57. package/build/{src → cjs}/utils/type.utils.d.ts +0 -1
  58. package/build/{src → cjs}/utils/type.utils.js +2 -3
  59. package/build/{src → cjs}/utils/url.utils.d.ts +0 -1
  60. package/build/{src → cjs}/utils/url.utils.js +8 -9
  61. package/build/{src → cjs}/utils/validate.utils.d.ts +0 -1
  62. package/build/{src → cjs}/utils/validate.utils.js +2 -3
  63. package/build/esm/config.d.ts +0 -1
  64. package/build/esm/config.js +6 -7
  65. package/build/esm/index.d.ts +0 -1
  66. package/build/esm/index.js +0 -1
  67. package/build/esm/servers/server.builder.d.ts +0 -1
  68. package/build/esm/servers/server.builder.js +99 -147
  69. package/build/esm/servers/server.d.ts +0 -1
  70. package/build/esm/servers/server.js +591 -876
  71. package/build/esm/types/api-response.d.ts +0 -1
  72. package/build/esm/types/api-response.js +0 -1
  73. package/build/esm/types/index.d.ts +0 -1
  74. package/build/esm/types/index.js +0 -1
  75. package/build/esm/types/server.d.ts +0 -1
  76. package/build/esm/types/server.js +0 -1
  77. package/build/esm/utils/array.utils.d.ts +0 -1
  78. package/build/esm/utils/array.utils.js +48 -86
  79. package/build/esm/utils/async.utils.d.ts +0 -1
  80. package/build/esm/utils/async.utils.js +247 -524
  81. package/build/esm/utils/cache.utils.d.ts +0 -1
  82. package/build/esm/utils/cache.utils.js +96 -301
  83. package/build/esm/utils/context-store.utils.d.ts +1 -2
  84. package/build/esm/utils/context-store.utils.js +62 -79
  85. package/build/esm/utils/crypto.utils.d.ts +0 -1
  86. package/build/esm/utils/crypto.utils.js +78 -175
  87. package/build/esm/utils/date.utils.d.ts +0 -1
  88. package/build/esm/utils/date.utils.js +47 -53
  89. package/build/esm/utils/decorators.utils.d.ts +30 -27
  90. package/build/esm/utils/decorators.utils.js +417 -461
  91. package/build/esm/utils/dir.utils.d.ts +0 -1
  92. package/build/esm/utils/dir.utils.js +264 -786
  93. package/build/esm/utils/env.utils.d.ts +0 -1
  94. package/build/esm/utils/env.utils.js +180 -271
  95. package/build/esm/utils/exception.utils.d.ts +0 -1
  96. package/build/esm/utils/exception.utils.js +112 -289
  97. package/build/esm/utils/fs.utils.d.ts +0 -1
  98. package/build/esm/utils/fs.utils.js +169 -401
  99. package/build/esm/utils/http-status-codes.d.ts +0 -1
  100. package/build/esm/utils/http-status-codes.js +0 -1
  101. package/build/esm/utils/id.utils.d.ts +0 -1
  102. package/build/esm/utils/id.utils.js +5 -9
  103. package/build/esm/utils/logger.utils.d.ts +0 -1
  104. package/build/esm/utils/logger.utils.js +34 -71
  105. package/build/esm/utils/middleware.utils.d.ts +0 -1
  106. package/build/esm/utils/middleware.utils.js +65 -155
  107. package/build/esm/utils/obj.utils.d.ts +0 -1
  108. package/build/esm/utils/obj.utils.js +69 -176
  109. package/build/esm/utils/performance.utils.d.ts +0 -1
  110. package/build/esm/utils/performance.utils.js +92 -195
  111. package/build/esm/utils/request.utils.d.ts +0 -1
  112. package/build/esm/utils/request.utils.js +41 -74
  113. package/build/esm/utils/response.utils.d.ts +0 -1
  114. package/build/esm/utils/response.utils.js +84 -107
  115. package/build/esm/utils/stream.utils.d.ts +0 -1
  116. package/build/esm/utils/stream.utils.js +38 -113
  117. package/build/esm/utils/string.utils.d.ts +0 -1
  118. package/build/esm/utils/string.utils.js +6 -11
  119. package/build/esm/utils/type.utils.d.ts +0 -1
  120. package/build/esm/utils/type.utils.js +8 -12
  121. package/build/esm/utils/url.utils.d.ts +0 -1
  122. package/build/esm/utils/url.utils.js +49 -127
  123. package/build/esm/utils/validate.utils.d.ts +0 -1
  124. package/build/esm/utils/validate.utils.js +23 -40
  125. package/package.json +288 -63
  126. package/build/esm/config.js.map +0 -1
  127. package/build/esm/index.js.map +0 -1
  128. package/build/esm/servers/server.builder.js.map +0 -1
  129. package/build/esm/servers/server.js.map +0 -1
  130. package/build/esm/types/api-response.js.map +0 -1
  131. package/build/esm/types/index.js.map +0 -1
  132. package/build/esm/types/server.js.map +0 -1
  133. package/build/esm/utils/array.utils.js.map +0 -1
  134. package/build/esm/utils/async.utils.js.map +0 -1
  135. package/build/esm/utils/cache.utils.js.map +0 -1
  136. package/build/esm/utils/context-store.utils.js.map +0 -1
  137. package/build/esm/utils/crypto.utils.js.map +0 -1
  138. package/build/esm/utils/date.utils.js.map +0 -1
  139. package/build/esm/utils/decorators.utils.js.map +0 -1
  140. package/build/esm/utils/dir.utils.js.map +0 -1
  141. package/build/esm/utils/env.utils.js.map +0 -1
  142. package/build/esm/utils/exception.utils.js.map +0 -1
  143. package/build/esm/utils/fs.utils.js.map +0 -1
  144. package/build/esm/utils/http-status-codes.js.map +0 -1
  145. package/build/esm/utils/id.utils.js.map +0 -1
  146. package/build/esm/utils/logger.utils.js.map +0 -1
  147. package/build/esm/utils/middleware.utils.js.map +0 -1
  148. package/build/esm/utils/obj.utils.js.map +0 -1
  149. package/build/esm/utils/performance.utils.js.map +0 -1
  150. package/build/esm/utils/request.utils.js.map +0 -1
  151. package/build/esm/utils/response.utils.js.map +0 -1
  152. package/build/esm/utils/stream.utils.js.map +0 -1
  153. package/build/esm/utils/string.utils.js.map +0 -1
  154. package/build/esm/utils/type.utils.js.map +0 -1
  155. package/build/esm/utils/url.utils.js.map +0 -1
  156. package/build/esm/utils/validate.utils.js.map +0 -1
  157. package/build/esnext/config.js +0 -133
  158. package/build/esnext/config.js.map +0 -1
  159. package/build/esnext/index.js +0 -50
  160. package/build/esnext/index.js.map +0 -1
  161. package/build/esnext/servers/server.builder.js +0 -657
  162. package/build/esnext/servers/server.builder.js.map +0 -1
  163. package/build/esnext/servers/server.d.ts +0 -256
  164. package/build/esnext/servers/server.js +0 -955
  165. package/build/esnext/servers/server.js.map +0 -1
  166. package/build/esnext/types/api-response.d.ts +0 -152
  167. package/build/esnext/types/api-response.js +0 -34
  168. package/build/esnext/types/api-response.js.map +0 -1
  169. package/build/esnext/types/index.d.ts +0 -125
  170. package/build/esnext/types/index.js +0 -25
  171. package/build/esnext/types/index.js.map +0 -1
  172. package/build/esnext/types/server.d.ts +0 -268
  173. package/build/esnext/types/server.js +0 -25
  174. package/build/esnext/types/server.js.map +0 -1
  175. package/build/esnext/utils/array.utils.d.ts +0 -168
  176. package/build/esnext/utils/array.utils.js +0 -345
  177. package/build/esnext/utils/array.utils.js.map +0 -1
  178. package/build/esnext/utils/async.utils.d.ts +0 -265
  179. package/build/esnext/utils/async.utils.js +0 -620
  180. package/build/esnext/utils/async.utils.js.map +0 -1
  181. package/build/esnext/utils/cache.utils.js +0 -293
  182. package/build/esnext/utils/cache.utils.js.map +0 -1
  183. package/build/esnext/utils/context-store.utils.js +0 -289
  184. package/build/esnext/utils/context-store.utils.js.map +0 -1
  185. package/build/esnext/utils/crypto.utils.js +0 -276
  186. package/build/esnext/utils/crypto.utils.js.map +0 -1
  187. package/build/esnext/utils/date.utils.d.ts +0 -159
  188. package/build/esnext/utils/date.utils.js +0 -384
  189. package/build/esnext/utils/date.utils.js.map +0 -1
  190. package/build/esnext/utils/decorators.utils.d.ts +0 -508
  191. package/build/esnext/utils/decorators.utils.js +0 -877
  192. package/build/esnext/utils/decorators.utils.js.map +0 -1
  193. package/build/esnext/utils/dir.utils.js +0 -477
  194. package/build/esnext/utils/dir.utils.js.map +0 -1
  195. package/build/esnext/utils/env.utils.js +0 -785
  196. package/build/esnext/utils/env.utils.js.map +0 -1
  197. package/build/esnext/utils/exception.utils.d.ts +0 -230
  198. package/build/esnext/utils/exception.utils.js +0 -381
  199. package/build/esnext/utils/exception.utils.js.map +0 -1
  200. package/build/esnext/utils/fs.utils.d.ts +0 -164
  201. package/build/esnext/utils/fs.utils.js +0 -349
  202. package/build/esnext/utils/fs.utils.js.map +0 -1
  203. package/build/esnext/utils/http-status-codes.js +0 -295
  204. package/build/esnext/utils/http-status-codes.js.map +0 -1
  205. package/build/esnext/utils/id.utils.js +0 -84
  206. package/build/esnext/utils/id.utils.js.map +0 -1
  207. package/build/esnext/utils/logger.utils.d.ts +0 -160
  208. package/build/esnext/utils/logger.utils.js +0 -300
  209. package/build/esnext/utils/logger.utils.js.map +0 -1
  210. package/build/esnext/utils/middleware.utils.js +0 -236
  211. package/build/esnext/utils/middleware.utils.js.map +0 -1
  212. package/build/esnext/utils/obj.utils.js +0 -413
  213. package/build/esnext/utils/obj.utils.js.map +0 -1
  214. package/build/esnext/utils/performance.utils.d.ts +0 -136
  215. package/build/esnext/utils/performance.utils.js +0 -271
  216. package/build/esnext/utils/performance.utils.js.map +0 -1
  217. package/build/esnext/utils/request.utils.js +0 -186
  218. package/build/esnext/utils/request.utils.js.map +0 -1
  219. package/build/esnext/utils/response.utils.js +0 -247
  220. package/build/esnext/utils/response.utils.js.map +0 -1
  221. package/build/esnext/utils/stream.utils.js +0 -210
  222. package/build/esnext/utils/stream.utils.js.map +0 -1
  223. package/build/esnext/utils/string.utils.js +0 -165
  224. package/build/esnext/utils/string.utils.js.map +0 -1
  225. package/build/esnext/utils/type.utils.d.ts +0 -90
  226. package/build/esnext/utils/type.utils.js +0 -187
  227. package/build/esnext/utils/type.utils.js.map +0 -1
  228. package/build/esnext/utils/url.utils.d.ts +0 -141
  229. package/build/esnext/utils/url.utils.js +0 -304
  230. package/build/esnext/utils/url.utils.js.map +0 -1
  231. package/build/esnext/utils/validate.utils.d.ts +0 -177
  232. package/build/esnext/utils/validate.utils.js +0 -320
  233. package/build/esnext/utils/validate.utils.js.map +0 -1
  234. package/build/src/config.d.ts +0 -122
  235. package/build/src/config.js.map +0 -1
  236. package/build/src/index.d.ts +0 -27
  237. package/build/src/index.js.map +0 -1
  238. package/build/src/servers/server.builder.d.ts +0 -508
  239. package/build/src/servers/server.builder.js.map +0 -1
  240. package/build/src/servers/server.js.map +0 -1
  241. package/build/src/types/api-response.js.map +0 -1
  242. package/build/src/types/index.js.map +0 -1
  243. package/build/src/types/server.js.map +0 -1
  244. package/build/src/utils/array.utils.js.map +0 -1
  245. package/build/src/utils/async.utils.js.map +0 -1
  246. package/build/src/utils/cache.utils.d.ts +0 -153
  247. package/build/src/utils/cache.utils.js.map +0 -1
  248. package/build/src/utils/context-store.utils.d.ts +0 -189
  249. package/build/src/utils/context-store.utils.js.map +0 -1
  250. package/build/src/utils/crypto.utils.d.ts +0 -160
  251. package/build/src/utils/crypto.utils.js.map +0 -1
  252. package/build/src/utils/date.utils.js.map +0 -1
  253. package/build/src/utils/decorators.utils.js.map +0 -1
  254. package/build/src/utils/dir.utils.d.ts +0 -196
  255. package/build/src/utils/dir.utils.js.map +0 -1
  256. package/build/src/utils/env.utils.d.ts +0 -377
  257. package/build/src/utils/env.utils.js.map +0 -1
  258. package/build/src/utils/exception.utils.js.map +0 -1
  259. package/build/src/utils/fs.utils.js.map +0 -1
  260. package/build/src/utils/http-status-codes.d.ts +0 -266
  261. package/build/src/utils/http-status-codes.js.map +0 -1
  262. package/build/src/utils/id.utils.d.ts +0 -36
  263. package/build/src/utils/id.utils.js.map +0 -1
  264. package/build/src/utils/logger.utils.js.map +0 -1
  265. package/build/src/utils/middleware.utils.d.ts +0 -100
  266. package/build/src/utils/middleware.utils.js.map +0 -1
  267. package/build/src/utils/obj.utils.d.ts +0 -124
  268. package/build/src/utils/obj.utils.js.map +0 -1
  269. package/build/src/utils/performance.utils.js.map +0 -1
  270. package/build/src/utils/request.utils.d.ts +0 -86
  271. package/build/src/utils/request.utils.js.map +0 -1
  272. package/build/src/utils/response.utils.d.ts +0 -163
  273. package/build/src/utils/response.utils.js.map +0 -1
  274. package/build/src/utils/stream.utils.d.ts +0 -88
  275. package/build/src/utils/stream.utils.js.map +0 -1
  276. package/build/src/utils/string.utils.d.ts +0 -93
  277. package/build/src/utils/string.utils.js.map +0 -1
  278. package/build/src/utils/type.utils.js.map +0 -1
  279. package/build/src/utils/url.utils.js.map +0 -1
  280. package/build/src/utils/validate.utils.js.map +0 -1
@@ -42,6 +42,8 @@ var Environment;
42
42
  * Provides typed getters with fallback defaults and validation.
43
43
  */
44
44
  class Env {
45
+ // Cache for parsed values to avoid repeated parsing of complex values
46
+ static cache = new Map();
45
47
  /**
46
48
  * Checks if the current NODE_ENV is 'development'.
47
49
  *
@@ -112,13 +114,11 @@ class Env {
112
114
  * const url = Env.get('DATABASE_URL', ''); // "postgres://localhost:5432/myapp"
113
115
  */
114
116
  static get(key, defaultValue) {
115
- var _a;
116
- let value = (_a = process.env[key]) !== null && _a !== void 0 ? _a : defaultValue;
117
+ let value = process.env[key] ?? defaultValue;
117
118
  // Expand ${VAR} references
118
119
  if (value && value.includes('${')) {
119
120
  value = value.replace(/\${([A-Za-z0-9_]+)}/g, (_, varName) => {
120
- var _a;
121
- return (_a = process.env[varName]) !== null && _a !== void 0 ? _a : '';
121
+ return process.env[varName] ?? '';
122
122
  });
123
123
  }
124
124
  return value;
@@ -440,7 +440,7 @@ class Env {
440
440
  try {
441
441
  url = new URL(value);
442
442
  }
443
- catch (_a) {
443
+ catch {
444
444
  throw new Error(`Environment variable '${key}' is not a valid URL: "${value}"`);
445
445
  }
446
446
  // Validate protocol
@@ -784,6 +784,3 @@ class Env {
784
784
  }
785
785
  }
786
786
  exports.Env = Env;
787
- // Cache for parsed values to avoid repeated parsing of complex values
788
- Env.cache = new Map();
789
- //# sourceMappingURL=env.utils.js.map
@@ -227,4 +227,3 @@ export declare function getErrorMessage(error: unknown): string;
227
227
  * @returns A function that always returns or throws an HTTP error.
228
228
  */
229
229
  export declare function withErrorHandling<T extends (...args: any[]) => Promise<any>>(handler: T): (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
230
- //# sourceMappingURL=exception.utils.d.ts.map
@@ -193,6 +193,7 @@ exports.GatewayTimeoutException = GatewayTimeoutException;
193
193
  * Used when the server understands the content type but cannot process the contained instructions.
194
194
  */
195
195
  class UnprocessableEntityException extends response_utils_1.ErrorResponse {
196
+ details;
196
197
  /**
197
198
  * @param message - Optional custom message. Defaults to "Unprocessable Entity".
198
199
  * @param details - Optional validation details or additional error context.
@@ -209,6 +210,7 @@ exports.UnprocessableEntityException = UnprocessableEntityException;
209
210
  * Used when the request method is not supported for the requested resource.
210
211
  */
211
212
  class MethodNotAllowedException extends response_utils_1.ErrorResponse {
213
+ allowedMethods;
212
214
  /**
213
215
  * @param message - Optional custom message. Defaults to "Method Not Allowed".
214
216
  * @param allowedMethods - Optional array of allowed HTTP methods.
@@ -404,4 +406,3 @@ function withErrorHandling(handler) {
404
406
  }
405
407
  };
406
408
  }
407
- //# sourceMappingURL=exception.utils.js.map
@@ -161,4 +161,3 @@ export declare function getFileSize(path: string): Promise<number>;
161
161
  * @returns {Promise<Buffer | null>} File contents as Buffer or null if reading fails.
162
162
  */
163
163
  export declare function readFileBuffer(path: string): Promise<Buffer | null>;
164
- //# sourceMappingURL=fs.utils.d.ts.map
@@ -61,7 +61,7 @@ async function fileExists(path) {
61
61
  await promises_1.default.access(path);
62
62
  return true;
63
63
  }
64
- catch (_a) {
64
+ catch {
65
65
  return false;
66
66
  }
67
67
  }
@@ -77,7 +77,7 @@ async function readJsonFile(path) {
77
77
  const data = await promises_1.default.readFile(path, 'utf-8');
78
78
  return JSON.parse(data);
79
79
  }
80
- catch (_a) {
80
+ catch {
81
81
  return null;
82
82
  }
83
83
  }
@@ -121,7 +121,7 @@ async function readTextFile(path, encoding = 'utf-8') {
121
121
  try {
122
122
  return await promises_1.default.readFile(path, encoding);
123
123
  }
124
- catch (_a) {
124
+ catch {
125
125
  return null;
126
126
  }
127
127
  }
@@ -138,7 +138,7 @@ async function writeTextFile(path, content, encoding = 'utf-8') {
138
138
  await promises_1.default.writeFile(path, content, encoding);
139
139
  return true;
140
140
  }
141
- catch (_a) {
141
+ catch {
142
142
  return false;
143
143
  }
144
144
  }
@@ -155,7 +155,7 @@ async function appendTextFile(path, content, encoding = 'utf-8') {
155
155
  await promises_1.default.appendFile(path, content, encoding);
156
156
  return true;
157
157
  }
158
- catch (_a) {
158
+ catch {
159
159
  return false;
160
160
  }
161
161
  }
@@ -173,7 +173,7 @@ async function copyFile(source, destination, overwrite = false) {
173
173
  await promises_1.default.copyFile(source, destination, flags);
174
174
  return true;
175
175
  }
176
- catch (_a) {
176
+ catch {
177
177
  return false;
178
178
  }
179
179
  }
@@ -189,14 +189,14 @@ async function moveFile(oldPath, newPath) {
189
189
  await promises_1.default.rename(oldPath, newPath);
190
190
  return true;
191
191
  }
192
- catch (_a) {
192
+ catch {
193
193
  // If rename fails (e.g., across devices), try copy+delete
194
194
  try {
195
195
  await promises_1.default.copyFile(oldPath, newPath);
196
196
  await promises_1.default.unlink(oldPath);
197
197
  return true;
198
198
  }
199
- catch (_b) {
199
+ catch {
200
200
  return false;
201
201
  }
202
202
  }
@@ -211,7 +211,7 @@ async function getFileStats(path) {
211
211
  try {
212
212
  return await promises_1.default.stat(path);
213
213
  }
214
- catch (_a) {
214
+ catch {
215
215
  return null;
216
216
  }
217
217
  }
@@ -336,7 +336,7 @@ async function isFile(path) {
336
336
  const stat = await promises_1.default.stat(path);
337
337
  return stat.isFile();
338
338
  }
339
- catch (_a) {
339
+ catch {
340
340
  return false;
341
341
  }
342
342
  }
@@ -351,7 +351,7 @@ async function getFileSize(path) {
351
351
  const stat = await promises_1.default.stat(path);
352
352
  return stat.size;
353
353
  }
354
- catch (_a) {
354
+ catch {
355
355
  return -1;
356
356
  }
357
357
  }
@@ -365,8 +365,7 @@ async function readFileBuffer(path) {
365
365
  try {
366
366
  return await promises_1.default.readFile(path);
367
367
  }
368
- catch (_a) {
368
+ catch {
369
369
  return null;
370
370
  }
371
371
  }
372
- //# sourceMappingURL=fs.utils.js.map
@@ -263,4 +263,3 @@ export declare enum HttpStatusCodes {
263
263
  */
264
264
  NETWORK_AUTHENTICATION_REQUIRED = 511
265
265
  }
266
- //# sourceMappingURL=http-status-codes.d.ts.map
@@ -295,4 +295,3 @@ var HttpStatusCodes;
295
295
  */
296
296
  HttpStatusCodes[HttpStatusCodes["NETWORK_AUTHENTICATION_REQUIRED"] = 511] = "NETWORK_AUTHENTICATION_REQUIRED";
297
297
  })(HttpStatusCodes || (exports.HttpStatusCodes = HttpStatusCodes = {}));
298
- //# sourceMappingURL=http-status-codes.js.map
@@ -33,4 +33,3 @@ export declare function randomInt(min: number, max: number): number;
33
33
  * @returns {string} Random base64 string (URL-safe, no padding).
34
34
  */
35
35
  export declare function randomBase64(byteLength?: number): string;
36
- //# sourceMappingURL=id.utils.d.ts.map
@@ -88,4 +88,3 @@ function randomInt(min, max) {
88
88
  function randomBase64(byteLength = 16) {
89
89
  return (0, crypto_1.randomBytes)(byteLength).toString('base64url');
90
90
  }
91
- //# sourceMappingURL=id.utils.js.map
@@ -157,4 +157,3 @@ export declare function createRequestLogger(requestId: string, additionalContext
157
157
  * @param {Record<string, any>} [context] - Additional context properties
158
158
  */
159
159
  export declare function logError(error: Error | unknown, message?: string, context?: Record<string, any>): void;
160
- //# sourceMappingURL=logger.utils.d.ts.map
@@ -246,7 +246,6 @@ const _global = exports._globalThis;
246
246
  * - Uses singleton in global symbol registry.
247
247
  */
248
248
  function setupLogger() {
249
- var _a;
250
249
  const logParams = {
251
250
  name: config_1.config.logger.name || '@catbee/utils',
252
251
  level: config_1.config.logger.level || 'info',
@@ -277,7 +276,7 @@ function setupLogger() {
277
276
  }))
278
277
  : (0, pino_1.default)(logParams);
279
278
  _global[GLOBAL_LOGGER_KEY] = logger;
280
- (_a = _global[GLOBAL_LOGGER_KEY]) === null || _a === void 0 ? void 0 : _a.debug('Logger initialized');
279
+ _global[GLOBAL_LOGGER_KEY]?.debug('Logger initialized');
281
280
  }
282
281
  /**
283
282
  * Retrieves the current logger instance:
@@ -320,11 +319,14 @@ function createChildLogger(bindings, parentLogger) {
320
319
  * @returns {Logger} Request-scoped logger instance
321
320
  */
322
321
  function createRequestLogger(requestId, additionalContext = {}) {
323
- const logger = createChildLogger(Object.assign({ requestId }, additionalContext));
322
+ const logger = createChildLogger({
323
+ requestId,
324
+ ...additionalContext
325
+ });
324
326
  try {
325
327
  context_store_utils_1.ContextStore.set(context_store_utils_1.StoreKeys.LOGGER, logger);
326
328
  }
327
- catch (_a) {
329
+ catch {
328
330
  // Context not initialized, can't store logger
329
331
  logger.debug('Failed to store logger in context - AsyncLocalStorage not initialized');
330
332
  }
@@ -340,7 +342,9 @@ function createRequestLogger(requestId, additionalContext = {}) {
340
342
  function logError(error, message, context) {
341
343
  const logger = getLogger();
342
344
  const errObj = error instanceof Error ? error : new Error(String(error));
343
- const logContext = Object.assign(Object.assign({}, context), { error: errObj });
345
+ const logContext = {
346
+ ...context,
347
+ error: errObj
348
+ };
344
349
  logger.error(logContext, message || errObj.message);
345
350
  }
346
- //# sourceMappingURL=logger.utils.js.map
@@ -97,4 +97,3 @@ export declare function healthCheck(options?: {
97
97
  }>;
98
98
  detailed?: boolean;
99
99
  }): Middleware;
100
- //# sourceMappingURL=middleware.utils.d.ts.map
@@ -46,9 +46,9 @@ const exception_utils_1 = require("./exception.utils");
46
46
  * @returns {Middleware} Express-compatible middleware
47
47
  */
48
48
  function requestId(options) {
49
- const headerName = (options === null || options === void 0 ? void 0 : options.headerName) || 'X-Request-ID';
50
- const exposeHeader = (options === null || options === void 0 ? void 0 : options.exposeHeader) !== false;
51
- const generateId = (options === null || options === void 0 ? void 0 : options.generator) || id_utils_1.uuid;
49
+ const headerName = options?.headerName || 'X-Request-ID';
50
+ const exposeHeader = options?.exposeHeader !== false;
51
+ const generateId = options?.generator || id_utils_1.uuid;
52
52
  return (req, res, next) => {
53
53
  // Use existing request ID from header or generate a new one
54
54
  const existingId = req.headers[headerName.toLowerCase()];
@@ -71,8 +71,8 @@ function requestId(options) {
71
71
  * @returns {Middleware} Express-compatible middleware
72
72
  */
73
73
  function responseTime(options) {
74
- const addHeader = (options === null || options === void 0 ? void 0 : options.addHeader) !== false;
75
- const logOnComplete = (options === null || options === void 0 ? void 0 : options.logOnComplete) === true;
74
+ const addHeader = options?.addHeader !== false;
75
+ const logOnComplete = options?.logOnComplete === true;
76
76
  return (req, res, next) => {
77
77
  const start = process.hrtime();
78
78
  // Function to calculate duration
@@ -129,7 +129,7 @@ function setupRequestContext(options = {}) {
129
129
  const { headerName = 'x-request-id', autoLog = true } = options;
130
130
  return (req, _res, next) => {
131
131
  // Generate or use existing request ID
132
- const requestId = req.headers[headerName] || (req === null || req === void 0 ? void 0 : req['id']) || (0, id_utils_1.uuid)();
132
+ const requestId = req.headers[headerName] || req?.['id'] || (0, id_utils_1.uuid)();
133
133
  context_store_utils_1.ContextStore.run({ [context_store_utils_1.StoreKeys.REQUEST_ID]: requestId }, () => {
134
134
  // Create a child logger for this request
135
135
  const childLogger = (0, logger_utils_1.getLogger)().child({
@@ -174,11 +174,11 @@ function setupRequestContext(options = {}) {
174
174
  * });
175
175
  */
176
176
  function errorHandler(options) {
177
- const logErrors = (options === null || options === void 0 ? void 0 : options.logErrors) !== false;
178
- const includeDetails = (options === null || options === void 0 ? void 0 : options.includeDetails) === true;
177
+ const logErrors = options?.logErrors !== false;
178
+ const includeDetails = options?.includeDetails === true;
179
179
  return (err, req, res, _next) => {
180
180
  // Determine status code
181
- const status = (err === null || err === void 0 ? void 0 : err.status) || (err === null || err === void 0 ? void 0 : err.statusCode) || http_status_codes_1.HttpStatusCodes.INTERNAL_SERVER_ERROR;
181
+ const status = err?.status || err?.statusCode || http_status_codes_1.HttpStatusCodes.INTERNAL_SERVER_ERROR;
182
182
  // Log error if enabled
183
183
  if (logErrors) {
184
184
  (0, logger_utils_1.getLogger)().error({ err }, `${err.message || 'Unknown error'}`);
@@ -189,11 +189,11 @@ function errorHandler(options) {
189
189
  error: true,
190
190
  message: err.message,
191
191
  timestamp: err.timestamp,
192
- requestId: (err === null || err === void 0 ? void 0 : err.requestId) || (req === null || req === void 0 ? void 0 : req.id) || (0, id_utils_1.uuid)(),
192
+ requestId: err?.requestId || req?.id || (0, id_utils_1.uuid)(),
193
193
  status,
194
194
  path: req.originalUrl || req.url
195
195
  };
196
- if (includeDetails && (err === null || err === void 0 ? void 0 : err.stack)) {
196
+ if (includeDetails && err?.stack) {
197
197
  result.stack = err.stack.split('\n').map((line) => line.trim());
198
198
  }
199
199
  return res.status(status).json(result);
@@ -201,7 +201,7 @@ function errorHandler(options) {
201
201
  // Handle any other errors
202
202
  return res
203
203
  .status(status)
204
- .json((0, response_utils_1.createFinalErrorResponse)(req, status, (err === null || err === void 0 ? void 0 : err.message) || 'Internal Server Error', err, { includeDetails }));
204
+ .json((0, response_utils_1.createFinalErrorResponse)(req, status, err?.message || 'Internal Server Error', err, { includeDetails }));
205
205
  };
206
206
  }
207
207
  /**
@@ -214,9 +214,9 @@ function errorHandler(options) {
214
214
  * @returns {Middleware} Express-compatible middleware
215
215
  */
216
216
  function healthCheck(options) {
217
- const path = (options === null || options === void 0 ? void 0 : options.path) || '/healthz';
218
- const checks = (options === null || options === void 0 ? void 0 : options.checks) || [];
219
- const detailed = (options === null || options === void 0 ? void 0 : options.detailed) !== false;
217
+ const path = options?.path || '/healthz';
218
+ const checks = options?.checks || [];
219
+ const detailed = options?.detailed !== false;
220
220
  return async (req, res, next) => {
221
221
  if (req.path !== path)
222
222
  return next();
@@ -229,7 +229,7 @@ function healthCheck(options) {
229
229
  if (!result)
230
230
  allHealthy = false;
231
231
  }
232
- catch (_a) {
232
+ catch {
233
233
  results[check.name] = false;
234
234
  allHealthy = false;
235
235
  }
@@ -241,4 +241,3 @@ function healthCheck(options) {
241
241
  res.status(status).json(response);
242
242
  };
243
243
  }
244
- //# sourceMappingURL=middleware.utils.js.map
@@ -121,4 +121,3 @@ export declare function isObject(value: unknown): value is Record<string, any>;
121
121
  * @returns {string[]} Array of all paths in dot notation.
122
122
  */
123
123
  export declare function getAllPaths(obj: Record<string, any>, parentPath?: string): string[];
124
- //# sourceMappingURL=obj.utils.d.ts.map
@@ -271,7 +271,7 @@ function getValueByPath(obj, path) {
271
271
  .replace(/\[(\d+)\]/g, '.$1') // convert [0] to .0
272
272
  .split('.')
273
273
  .filter(Boolean); // remove empty strings
274
- return parts.reduce((acc, key) => acc === null || acc === void 0 ? void 0 : acc[key], obj);
274
+ return parts.reduce((acc, key) => acc?.[key], obj);
275
275
  }
276
276
  /**
277
277
  * Sets a value at a deeply nested key in an object using dot/bracket notation path.
@@ -426,4 +426,3 @@ function getAllPaths(obj, parentPath = '') {
426
426
  return [currentPath];
427
427
  });
428
428
  }
429
- //# sourceMappingURL=obj.utils.js.map
@@ -133,4 +133,3 @@ export declare function trackMemoryUsage<T>(fn: () => T, options?: {
133
133
  diff: Record<string, number>;
134
134
  };
135
135
  };
136
- //# sourceMappingURL=performance.utils.d.ts.map
@@ -168,16 +168,19 @@ function timed(options = {}) {
168
168
  // ESNext decorator: second argument is context object
169
169
  if (typeof propertyKeyOrContext === 'object' && propertyKeyOrContext !== null && 'name' in propertyKeyOrContext) {
170
170
  propertyKey = propertyKeyOrContext.name;
171
- actualDescriptor = descriptor !== null && descriptor !== void 0 ? descriptor : Object.getOwnPropertyDescriptor(target, propertyKey);
171
+ actualDescriptor = descriptor ?? Object.getOwnPropertyDescriptor(target, propertyKey);
172
172
  }
173
173
  else {
174
174
  // Legacy decorator: second argument is property key
175
175
  propertyKey = propertyKeyOrContext;
176
- actualDescriptor = descriptor !== null && descriptor !== void 0 ? descriptor : Object.getOwnPropertyDescriptor(target, propertyKey);
176
+ actualDescriptor = descriptor ?? Object.getOwnPropertyDescriptor(target, propertyKey);
177
177
  }
178
178
  const originalMethod = actualDescriptor.value;
179
179
  actualDescriptor.value = function (...args) {
180
- const methodOptions = Object.assign(Object.assign({}, options), { label: options.label || `${target.constructor.name}.${String(propertyKey)}` });
180
+ const methodOptions = {
181
+ ...options,
182
+ label: options.label || `${target.constructor.name}.${String(propertyKey)}`
183
+ };
181
184
  if (originalMethod.constructor.name === 'AsyncFunction') {
182
185
  return timeAsync(() => originalMethod.apply(this, args), methodOptions).then(({ result }) => result);
183
186
  }
@@ -275,4 +278,3 @@ function trackMemoryUsage(fn, options = {}) {
275
278
  }
276
279
  };
277
280
  }
278
- //# sourceMappingURL=performance.utils.js.map
@@ -83,4 +83,3 @@ export declare function extractSortParams(query: Record<string, string | string[
83
83
  * @returns Object containing the filters as key-value pairs
84
84
  */
85
85
  export declare function extractFilterParams(query: Record<string, string | string[]>, allowedFilters: string[]): Record<string, string | string[]>;
86
- //# sourceMappingURL=request.utils.d.ts.map
@@ -43,9 +43,14 @@ const getPaginationParams = (req) => {
43
43
  const { sortBy, sortOrder } = extractSortParams(query, []);
44
44
  // Optional search param
45
45
  const search = typeof query.search === 'string' ? query.search : undefined;
46
- return Object.assign(Object.assign({}, query), { page,
46
+ return {
47
+ ...query,
48
+ page,
47
49
  limit,
48
- sortBy, sortOrder: sortOrder, search });
50
+ sortBy,
51
+ sortOrder: sortOrder,
52
+ search
53
+ };
49
54
  };
50
55
  exports.getPaginationParams = getPaginationParams;
51
56
  /**
@@ -192,4 +197,3 @@ function extractFilterParams(query, allowedFilters) {
192
197
  }
193
198
  return filters;
194
199
  }
195
- //# sourceMappingURL=request.utils.js.map
@@ -160,4 +160,3 @@ export declare function createPaginatedResponse<T>(allItems: T[], page: number,
160
160
  * @param {SuccessResponse<any> | ErrorResponse | RedirectResponse} apiResponse - API response instance.
161
161
  */
162
162
  export declare function sendResponse(res: any, apiResponse: SuccessResponse<any> | ErrorResponse | RedirectResponse): void;
163
- //# sourceMappingURL=response.utils.d.ts.map
@@ -39,6 +39,16 @@ const id_utils_1 = require("./id.utils");
39
39
  * @typeParam T - The shape of the data returned in the response.
40
40
  */
41
41
  class SuccessResponse {
42
+ /** Message describing the result of the operation. */
43
+ message = 'Success';
44
+ /** Whether the response is an error. Always false in success responses. */
45
+ error = false;
46
+ /** The payload returned from the API. */
47
+ data = null;
48
+ /** Timestamp when the response was generated, in ISO format. */
49
+ timestamp = new Date().toISOString();
50
+ /** Unique identifier for this response, useful for request tracing. */
51
+ requestId = (0, context_store_utils_1.getRequestId)() ?? (0, id_utils_1.uuid)();
42
52
  /**
43
53
  * Constructs a new success response.
44
54
  *
@@ -46,20 +56,9 @@ class SuccessResponse {
46
56
  * @param {T} [data] - Optional data payload.
47
57
  */
48
58
  constructor(message, data) {
49
- var _a;
50
- /** Message describing the result of the operation. */
51
- this.message = 'Success';
52
- /** Whether the response is an error. Always false in success responses. */
53
- this.error = false;
54
- /** The payload returned from the API. */
55
- this.data = null;
56
- /** Timestamp when the response was generated, in ISO format. */
57
- this.timestamp = new Date().toISOString();
58
- /** Unique identifier for this response, useful for request tracing. */
59
- this.requestId = (_a = (0, context_store_utils_1.getRequestId)()) !== null && _a !== void 0 ? _a : (0, id_utils_1.uuid)();
60
59
  if (message)
61
60
  this.message = message;
62
- this.data = data !== null && data !== void 0 ? data : null;
61
+ this.data = data ?? null;
63
62
  }
64
63
  }
65
64
  exports.SuccessResponse = SuccessResponse;
@@ -68,6 +67,14 @@ exports.SuccessResponse = SuccessResponse;
68
67
  * Implements `ApiResponse` but omits the `data` field (which should not be present in errors).
69
68
  */
70
69
  class ErrorResponse extends Error {
70
+ /** HTTP status code associated with the error (e.g., 404, 500). */
71
+ status;
72
+ /** Indicates that this is an error. Always true. */
73
+ error = true;
74
+ /** Timestamp when the error occurred, in ISO format. */
75
+ timestamp = new Date().toISOString();
76
+ /** Unique identifier for this error instance. */
77
+ requestId = (0, context_store_utils_1.getRequestId)() ?? (0, id_utils_1.uuid)();
71
78
  /**
72
79
  * Constructs a new error response.
73
80
  *
@@ -75,14 +82,7 @@ class ErrorResponse extends Error {
75
82
  * @param {number} [status=500] - Optional HTTP status code (defaults to 500).
76
83
  */
77
84
  constructor(message, status = 500) {
78
- var _a;
79
85
  super(message);
80
- /** Indicates that this is an error. Always true. */
81
- this.error = true;
82
- /** Timestamp when the error occurred, in ISO format. */
83
- this.timestamp = new Date().toISOString();
84
- /** Unique identifier for this error instance. */
85
- this.requestId = (_a = (0, context_store_utils_1.getRequestId)()) !== null && _a !== void 0 ? _a : (0, id_utils_1.uuid)();
86
86
  this.status = status;
87
87
  this.name = this.constructor.name;
88
88
  Error.captureStackTrace(this, this.constructor);
@@ -96,6 +96,18 @@ exports.ErrorResponse = ErrorResponse;
96
96
  * @typeParam T - The shape of each item in the paginated collection.
97
97
  */
98
98
  class PaginatedResponse extends SuccessResponse {
99
+ /** Total number of items across all pages */
100
+ total;
101
+ /** Current page number (1-based) */
102
+ page;
103
+ /** Number of items per page */
104
+ pageSize;
105
+ /** Total number of pages */
106
+ totalPages;
107
+ /** Whether there's a next page available */
108
+ hasNext;
109
+ /** Whether there's a previous page available */
110
+ hasPrevious;
99
111
  /**
100
112
  * Constructs a new paginated response.
101
113
  *
@@ -135,6 +147,14 @@ exports.NoContentResponse = NoContentResponse;
135
147
  * Specialized response for redirects.
136
148
  */
137
149
  class RedirectResponse {
150
+ /** The URL to redirect to */
151
+ redirectUrl;
152
+ /** HTTP status code for the redirect (301, 302, 303, 307, 308) */
153
+ statusCode;
154
+ /** Whether the response is a redirect */
155
+ isRedirect = true;
156
+ /** Unique identifier for this response */
157
+ requestId = (0, context_store_utils_1.getRequestId)() ?? (0, id_utils_1.uuid)();
138
158
  /**
139
159
  * Constructs a new redirect response.
140
160
  *
@@ -142,11 +162,6 @@ class RedirectResponse {
142
162
  * @param {number} [statusCode=302] - HTTP status code for the redirect.
143
163
  */
144
164
  constructor(url, statusCode = 302) {
145
- var _a;
146
- /** Whether the response is a redirect */
147
- this.isRedirect = true;
148
- /** Unique identifier for this response */
149
- this.requestId = (_a = (0, context_store_utils_1.getRequestId)()) !== null && _a !== void 0 ? _a : (0, id_utils_1.uuid)();
150
165
  this.redirectUrl = url;
151
166
  this.statusCode = statusCode;
152
167
  }
@@ -185,17 +200,17 @@ function createErrorResponse(message, statusCode = 500) {
185
200
  */
186
201
  function createFinalErrorResponse(req, status, message, error, options) {
187
202
  const isDev = env_utils_1.Env.isDev();
188
- const includeDetails = (options === null || options === void 0 ? void 0 : options.includeDetails) && isDev;
203
+ const includeDetails = options?.includeDetails && isDev;
189
204
  const response = {
190
205
  error: true,
191
206
  message,
192
207
  timestamp: new Date().toISOString(),
193
- requestId: (error === null || error === void 0 ? void 0 : error.requestId) || (req === null || req === void 0 ? void 0 : req.id) || (0, id_utils_1.uuid)(),
208
+ requestId: error?.requestId || req?.id || (0, id_utils_1.uuid)(),
194
209
  status,
195
210
  path: req.originalUrl || req.url
196
211
  };
197
212
  // Include stack trace in development mode if requested
198
- if (includeDetails && (error === null || error === void 0 ? void 0 : error.stack)) {
213
+ if (includeDetails && error?.stack) {
199
214
  response.stack = error.stack.split('\n').map((line) => line.trim());
200
215
  }
201
216
  return response;
@@ -257,4 +272,3 @@ function sendResponse(res, apiResponse) {
257
272
  }
258
273
  res.status(200).json(successResponse);
259
274
  }
260
- //# sourceMappingURL=response.utils.js.map
@@ -85,4 +85,3 @@ export declare function createLineStream(options?: {
85
85
  encoding?: BufferEncoding;
86
86
  includeNewlines?: boolean;
87
87
  }): Transform;
88
- //# sourceMappingURL=stream.utils.d.ts.map
@@ -215,4 +215,3 @@ function createLineStream(options = {}) {
215
215
  }
216
216
  });
217
217
  }
218
- //# sourceMappingURL=stream.utils.js.map
@@ -90,4 +90,3 @@ export declare function reverse(str: string): string;
90
90
  * @returns {number} Number of occurrences.
91
91
  */
92
92
  export declare function countOccurrences(str: string, substring: string, caseSensitive?: boolean): number;
93
- //# sourceMappingURL=string.utils.d.ts.map
@@ -176,4 +176,3 @@ function countOccurrences(str, substring, caseSensitive = true) {
176
176
  }
177
177
  return str.split(substring).length - 1;
178
178
  }
179
- //# sourceMappingURL=string.utils.js.map
@@ -87,4 +87,3 @@ export declare function toBool(value: unknown, defaultValue?: boolean): boolean;
87
87
  * ```
88
88
  */
89
89
  export declare function ensureType<T>(value: unknown, expectedType: string, defaultValue: T): T;
90
- //# sourceMappingURL=type.utils.d.ts.map
@@ -122,7 +122,7 @@ function toStr(value, defaultValue = '') {
122
122
  }
123
123
  return String(value);
124
124
  }
125
- catch (_a) {
125
+ catch {
126
126
  return defaultValue;
127
127
  }
128
128
  }
@@ -142,7 +142,7 @@ function toNum(value, defaultValue = 0) {
142
142
  const num = Number(value);
143
143
  return isNaN(num) ? defaultValue : num;
144
144
  }
145
- catch (_a) {
145
+ catch {
146
146
  return defaultValue;
147
147
  }
148
148
  }
@@ -193,4 +193,3 @@ function ensureType(value, expectedType, defaultValue) {
193
193
  }
194
194
  return defaultValue;
195
195
  }
196
- //# sourceMappingURL=type.utils.js.map
@@ -138,4 +138,3 @@ export declare function getExtension(url: string): string;
138
138
  * // → { page: 2, q: 'test' }
139
139
  */
140
140
  export declare function parseTypedQueryParams<T extends Record<string, any>>(url: string, converters?: Record<keyof T, (val: string) => any>): Partial<T>;
141
- //# sourceMappingURL=url.utils.d.ts.map