ts-packages 2.0.0 → 3.0.0

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 (286) hide show
  1. package/package.json +1 -1
  2. package/packages/cache/README.md +105 -9
  3. package/packages/cache/dist/cjs/adapters/memcache/MemcacheCache.d.ts +1 -54
  4. package/packages/cache/dist/cjs/adapters/memcache/MemcacheCache.js +75 -281
  5. package/packages/cache/dist/cjs/adapters/memory/MemoryCache.js +76 -22
  6. package/packages/cache/dist/cjs/adapters/redis/RedisCache.js +84 -26
  7. package/packages/cache/dist/cjs/core/BaseCache.js +13 -4
  8. package/packages/cache/dist/cjs/core/factory.js +26 -4
  9. package/packages/cache/dist/cjs/errors/CacheError.d.ts +10 -7
  10. package/packages/cache/dist/cjs/errors/CacheError.js +6 -11
  11. package/packages/cache/dist/cjs/errors/cacheErrorCodes.d.ts +22 -0
  12. package/packages/cache/dist/cjs/errors/cacheErrorCodes.js +24 -0
  13. package/packages/cache/dist/cjs/errors/index.js +3 -0
  14. package/packages/cache/dist/cjs/middleware/express/cacheMiddleware.js +8 -8
  15. package/packages/cache/dist/cjs/session/SessionStore.js +84 -28
  16. package/packages/cache/dist/esm/adapters/memcache/MemcacheCache.d.ts +1 -54
  17. package/packages/cache/dist/esm/adapters/memcache/MemcacheCache.js +75 -281
  18. package/packages/cache/dist/esm/adapters/memory/MemoryCache.js +76 -22
  19. package/packages/cache/dist/esm/adapters/redis/RedisCache.js +84 -26
  20. package/packages/cache/dist/esm/core/BaseCache.js +13 -4
  21. package/packages/cache/dist/esm/core/factory.js +26 -4
  22. package/packages/cache/dist/esm/errors/CacheError.d.ts +10 -7
  23. package/packages/cache/dist/esm/errors/CacheError.js +6 -11
  24. package/packages/cache/dist/esm/errors/cacheErrorCodes.d.ts +22 -0
  25. package/packages/cache/dist/esm/errors/cacheErrorCodes.js +21 -0
  26. package/packages/cache/dist/esm/errors/index.js +3 -0
  27. package/packages/cache/dist/esm/middleware/express/cacheMiddleware.js +8 -8
  28. package/packages/cache/dist/esm/session/SessionStore.js +84 -28
  29. package/packages/cache/dist/types/adapters/memcache/MemcacheCache.d.ts +1 -54
  30. package/packages/cache/dist/types/errors/CacheError.d.ts +10 -7
  31. package/packages/cache/dist/types/errors/cacheErrorCodes.d.ts +22 -0
  32. package/packages/cache/package.json +8 -6
  33. package/packages/cache/src/adapters/memcache/MemcacheCache.ts +79 -352
  34. package/packages/cache/src/adapters/memory/MemoryCache.ts +76 -77
  35. package/packages/cache/src/adapters/redis/RedisCache.ts +84 -86
  36. package/packages/cache/src/core/BaseCache.ts +13 -14
  37. package/packages/cache/src/core/factory.ts +27 -16
  38. package/packages/cache/src/errors/CacheError.ts +16 -17
  39. package/packages/cache/src/errors/cacheErrorCodes.ts +24 -0
  40. package/packages/cache/src/errors/index.ts +5 -0
  41. package/packages/cache/src/middleware/express/cacheMiddleware.ts +8 -8
  42. package/packages/cache/src/session/SessionStore.ts +84 -84
  43. package/packages/errors-utils/README.md +54 -57
  44. package/packages/errors-utils/dist/cjs/constants/errorCodes.d.ts +28 -23
  45. package/packages/errors-utils/dist/cjs/constants/errorCodes.js +57 -22
  46. package/packages/errors-utils/dist/cjs/constants/errorMessages.d.ts +8 -1
  47. package/packages/errors-utils/dist/cjs/constants/errorMessages.js +72 -29
  48. package/packages/errors-utils/dist/cjs/error/AppError.d.ts +2 -2
  49. package/packages/errors-utils/dist/cjs/error/AppError.js +2 -2
  50. package/packages/errors-utils/dist/cjs/error/ServiceUnavailableError.d.ts +4 -0
  51. package/packages/errors-utils/dist/cjs/error/ServiceUnavailableError.js +11 -0
  52. package/packages/errors-utils/dist/cjs/error/TokenExpiredError.d.ts +2 -2
  53. package/packages/errors-utils/dist/cjs/error/TokenExpiredError.js +2 -2
  54. package/packages/errors-utils/dist/cjs/error/TokenMalformedError.d.ts +2 -2
  55. package/packages/errors-utils/dist/cjs/error/TokenMalformedError.js +2 -2
  56. package/packages/errors-utils/dist/cjs/error/UnauthorizedError.d.ts +1 -2
  57. package/packages/errors-utils/dist/cjs/error/UnauthorizedError.js +2 -2
  58. package/packages/errors-utils/dist/cjs/error/index.d.ts +14 -0
  59. package/packages/errors-utils/dist/cjs/error/index.js +39 -0
  60. package/packages/errors-utils/dist/cjs/errorRegistry/errorRegistry.d.ts +19 -0
  61. package/packages/errors-utils/dist/cjs/errorRegistry/errorRegistry.js +63 -0
  62. package/packages/errors-utils/dist/cjs/errorRegistry/index.d.ts +3 -0
  63. package/packages/errors-utils/dist/cjs/errorRegistry/index.js +6 -0
  64. package/packages/errors-utils/dist/cjs/index.d.ts +3 -9
  65. package/packages/errors-utils/dist/cjs/index.js +12 -9
  66. package/packages/errors-utils/dist/cjs/middleware/express/{errorHandler.js → errorHandler.middleware.js} +4 -4
  67. package/packages/errors-utils/dist/cjs/middleware/express/index.d.ts +2 -2
  68. package/packages/errors-utils/dist/cjs/middleware/express/index.js +2 -2
  69. package/packages/errors-utils/dist/esm/constants/errorCodes.d.ts +28 -23
  70. package/packages/errors-utils/dist/esm/constants/errorCodes.js +57 -22
  71. package/packages/errors-utils/dist/esm/constants/errorMessages.d.ts +8 -1
  72. package/packages/errors-utils/dist/esm/constants/errorMessages.js +72 -29
  73. package/packages/errors-utils/dist/esm/error/AppError.d.ts +2 -2
  74. package/packages/errors-utils/dist/esm/error/AppError.js +2 -2
  75. package/packages/errors-utils/dist/esm/error/ServiceUnavailableError.d.ts +4 -0
  76. package/packages/errors-utils/dist/esm/error/ServiceUnavailableError.js +7 -0
  77. package/packages/errors-utils/dist/esm/error/TokenExpiredError.d.ts +2 -2
  78. package/packages/errors-utils/dist/esm/error/TokenExpiredError.js +2 -2
  79. package/packages/errors-utils/dist/esm/error/TokenMalformedError.d.ts +2 -2
  80. package/packages/errors-utils/dist/esm/error/TokenMalformedError.js +2 -2
  81. package/packages/errors-utils/dist/esm/error/UnauthorizedError.d.ts +1 -2
  82. package/packages/errors-utils/dist/esm/error/UnauthorizedError.js +2 -2
  83. package/packages/errors-utils/dist/esm/error/index.d.ts +14 -0
  84. package/packages/errors-utils/dist/esm/error/index.js +23 -0
  85. package/packages/errors-utils/dist/esm/errorRegistry/errorRegistry.d.ts +19 -0
  86. package/packages/errors-utils/dist/esm/errorRegistry/errorRegistry.js +59 -0
  87. package/packages/errors-utils/dist/esm/errorRegistry/index.d.ts +3 -0
  88. package/packages/errors-utils/dist/esm/errorRegistry/index.js +3 -0
  89. package/packages/errors-utils/dist/esm/index.d.ts +3 -9
  90. package/packages/errors-utils/dist/esm/index.js +12 -9
  91. package/packages/errors-utils/dist/esm/middleware/express/{errorHandler.js → errorHandler.middleware.js} +5 -5
  92. package/packages/errors-utils/dist/esm/middleware/express/index.d.ts +2 -2
  93. package/packages/errors-utils/dist/esm/middleware/express/index.js +2 -2
  94. package/packages/errors-utils/dist/types/constants/errorCodes.d.ts +28 -23
  95. package/packages/errors-utils/dist/types/constants/errorMessages.d.ts +8 -1
  96. package/packages/errors-utils/dist/types/error/AppError.d.ts +2 -2
  97. package/packages/errors-utils/dist/types/error/ServiceUnavailableError.d.ts +4 -0
  98. package/packages/errors-utils/dist/types/error/TokenExpiredError.d.ts +2 -2
  99. package/packages/errors-utils/dist/types/error/TokenMalformedError.d.ts +2 -2
  100. package/packages/errors-utils/dist/types/error/UnauthorizedError.d.ts +1 -2
  101. package/packages/errors-utils/dist/types/error/index.d.ts +14 -0
  102. package/packages/errors-utils/dist/types/errorRegistry/errorRegistry.d.ts +19 -0
  103. package/packages/errors-utils/dist/types/errorRegistry/index.d.ts +3 -0
  104. package/packages/errors-utils/dist/types/index.d.ts +3 -9
  105. package/packages/errors-utils/dist/types/middleware/express/index.d.ts +2 -2
  106. package/packages/errors-utils/package.json +4 -4
  107. package/packages/errors-utils/src/constants/errorCodes.ts +64 -23
  108. package/packages/errors-utils/src/constants/errorMessages.ts +91 -34
  109. package/packages/errors-utils/src/error/AppError.ts +3 -2
  110. package/packages/errors-utils/src/error/ServiceUnavailableError.ts +8 -0
  111. package/packages/errors-utils/src/error/TokenExpiredError.ts +2 -2
  112. package/packages/errors-utils/src/error/TokenMalformedError.ts +2 -2
  113. package/packages/errors-utils/src/error/UnauthorizedError.ts +8 -8
  114. package/packages/errors-utils/src/error/index.ts +26 -0
  115. package/packages/errors-utils/src/errorRegistry/errorRegistry.ts +74 -0
  116. package/packages/errors-utils/src/errorRegistry/index.ts +4 -0
  117. package/packages/errors-utils/src/index.ts +12 -10
  118. package/packages/errors-utils/src/middleware/express/{errorHandler.ts → errorHandler.middleware.ts} +5 -5
  119. package/packages/errors-utils/src/middleware/express/index.ts +2 -2
  120. package/packages/js-extensions/README.md +174 -425
  121. package/packages/js-extensions/dist/cjs/array/array-extensions.js +84 -50
  122. package/packages/js-extensions/dist/cjs/core/performance.d.ts +1 -0
  123. package/packages/js-extensions/dist/cjs/core/performance.js +6 -0
  124. package/packages/js-extensions/dist/cjs/core/version.d.ts +1 -0
  125. package/packages/js-extensions/dist/cjs/core/version.js +9 -0
  126. package/packages/js-extensions/dist/cjs/index.d.ts +1 -0
  127. package/packages/js-extensions/dist/cjs/index.js +1 -0
  128. package/packages/js-extensions/dist/cjs/number/number-extensions.js +85 -97
  129. package/packages/js-extensions/dist/cjs/object/object-extensions.js +102 -103
  130. package/packages/js-extensions/dist/cjs/string/string-extensions.js +66 -43
  131. package/packages/js-extensions/dist/cjs/types/global-augmentations.d.ts +1 -0
  132. package/packages/js-extensions/dist/cjs/utils/defineExtension.d.ts +1 -0
  133. package/packages/js-extensions/dist/cjs/utils/defineExtension.js +13 -0
  134. package/packages/js-extensions/dist/cjs/utils/index.d.ts +1 -0
  135. package/packages/js-extensions/dist/cjs/utils/index.js +1 -0
  136. package/packages/js-extensions/dist/esm/array/array-extensions.js +84 -50
  137. package/packages/js-extensions/dist/esm/core/performance.d.ts +1 -0
  138. package/packages/js-extensions/dist/esm/core/performance.js +5 -0
  139. package/packages/js-extensions/dist/esm/core/version.d.ts +1 -0
  140. package/packages/js-extensions/dist/esm/core/version.js +5 -0
  141. package/packages/js-extensions/dist/esm/index.d.ts +1 -0
  142. package/packages/js-extensions/dist/esm/index.js +1 -0
  143. package/packages/js-extensions/dist/esm/number/number-extensions.js +86 -98
  144. package/packages/js-extensions/dist/esm/object/object-extensions.js +102 -103
  145. package/packages/js-extensions/dist/esm/string/string-extensions.js +66 -43
  146. package/packages/js-extensions/dist/esm/types/global-augmentations.d.ts +1 -0
  147. package/packages/js-extensions/dist/esm/utils/defineExtension.d.ts +1 -0
  148. package/packages/js-extensions/dist/esm/utils/defineExtension.js +10 -0
  149. package/packages/js-extensions/dist/esm/utils/index.d.ts +1 -0
  150. package/packages/js-extensions/dist/esm/utils/index.js +1 -0
  151. package/packages/js-extensions/dist/types/core/performance.d.ts +1 -0
  152. package/packages/js-extensions/dist/types/core/version.d.ts +1 -0
  153. package/packages/js-extensions/dist/types/index.d.ts +1 -0
  154. package/packages/js-extensions/dist/types/types/global-augmentations.d.ts +1 -0
  155. package/packages/js-extensions/dist/types/utils/defineExtension.d.ts +1 -0
  156. package/packages/js-extensions/dist/types/utils/index.d.ts +1 -0
  157. package/packages/js-extensions/package.json +8 -4
  158. package/packages/js-extensions/src/array/array-extensions.ts +268 -150
  159. package/packages/js-extensions/src/core/performance.ts +11 -0
  160. package/packages/js-extensions/src/core/version.ts +7 -0
  161. package/packages/js-extensions/src/index.ts +2 -0
  162. package/packages/js-extensions/src/number/number-extensions.ts +90 -123
  163. package/packages/js-extensions/src/object/object-extensions.ts +102 -130
  164. package/packages/js-extensions/src/string/string-extensions.ts +80 -76
  165. package/packages/js-extensions/src/types/global-augmentations.ts +2 -1
  166. package/packages/js-extensions/src/utils/defineExtension.ts +14 -0
  167. package/packages/js-extensions/src/utils/index.ts +1 -0
  168. package/packages/response-utils/README.md +156 -198
  169. package/packages/response-utils/dist/cjs/core/BaseResponder.js +20 -4
  170. package/packages/response-utils/dist/cjs/index.d.ts +0 -1
  171. package/packages/response-utils/dist/cjs/index.js +1 -25
  172. package/packages/response-utils/dist/esm/core/BaseResponder.js +20 -4
  173. package/packages/response-utils/dist/esm/index.d.ts +0 -1
  174. package/packages/response-utils/dist/esm/index.js +0 -2
  175. package/packages/response-utils/dist/types/index.d.ts +0 -1
  176. package/packages/response-utils/package.json +1 -1
  177. package/packages/response-utils/src/core/BaseResponder.ts +25 -4
  178. package/packages/response-utils/src/index.ts +0 -3
  179. package/packages/response-utils/src/middleware/express/expressMiddleware.ts +1 -1
  180. package/packages/security/README.md +153 -355
  181. package/packages/security/dist/cjs/core/crypto/cryptoManager.js +34 -17
  182. package/packages/security/dist/cjs/core/jwt/decode.js +4 -1
  183. package/packages/security/dist/cjs/core/jwt/generateTokens.js +4 -1
  184. package/packages/security/dist/cjs/core/jwt/jwtManager.d.ts +19 -43
  185. package/packages/security/dist/cjs/core/jwt/jwtManager.js +84 -199
  186. package/packages/security/dist/cjs/core/jwt/parseDuration.js +3 -2
  187. package/packages/security/dist/cjs/core/jwt/signToken.js +2 -1
  188. package/packages/security/dist/cjs/core/jwt/validateToken.d.ts +10 -7
  189. package/packages/security/dist/cjs/core/jwt/validateToken.js +19 -10
  190. package/packages/security/dist/cjs/core/jwt/verify.d.ts +8 -9
  191. package/packages/security/dist/cjs/core/jwt/verify.js +59 -14
  192. package/packages/security/dist/cjs/core/password/hash.js +4 -4
  193. package/packages/security/dist/cjs/core/password/passwordManager.d.ts +1 -1
  194. package/packages/security/dist/cjs/core/password/passwordManager.js +36 -80
  195. package/packages/security/dist/cjs/core/password/strength.js +12 -6
  196. package/packages/security/dist/cjs/core/password/utils.d.ts +12 -0
  197. package/packages/security/dist/cjs/core/password/utils.js +16 -1
  198. package/packages/security/dist/cjs/core/password/verify.js +4 -4
  199. package/packages/security/dist/cjs/index.d.ts +2 -7
  200. package/packages/security/dist/esm/core/crypto/cryptoManager.js +34 -17
  201. package/packages/security/dist/esm/core/jwt/decode.js +4 -1
  202. package/packages/security/dist/esm/core/jwt/generateTokens.js +4 -1
  203. package/packages/security/dist/esm/core/jwt/jwtManager.d.ts +19 -43
  204. package/packages/security/dist/esm/core/jwt/jwtManager.js +85 -200
  205. package/packages/security/dist/esm/core/jwt/parseDuration.js +3 -2
  206. package/packages/security/dist/esm/core/jwt/signToken.js +2 -1
  207. package/packages/security/dist/esm/core/jwt/validateToken.d.ts +10 -7
  208. package/packages/security/dist/esm/core/jwt/validateToken.js +19 -10
  209. package/packages/security/dist/esm/core/jwt/verify.d.ts +8 -9
  210. package/packages/security/dist/esm/core/jwt/verify.js +58 -13
  211. package/packages/security/dist/esm/core/password/hash.js +4 -4
  212. package/packages/security/dist/esm/core/password/passwordManager.d.ts +1 -1
  213. package/packages/security/dist/esm/core/password/passwordManager.js +36 -80
  214. package/packages/security/dist/esm/core/password/strength.js +12 -6
  215. package/packages/security/dist/esm/core/password/utils.d.ts +12 -0
  216. package/packages/security/dist/esm/core/password/utils.js +16 -1
  217. package/packages/security/dist/esm/core/password/verify.js +4 -4
  218. package/packages/security/dist/esm/index.d.ts +2 -7
  219. package/packages/security/dist/types/core/jwt/jwtManager.d.ts +19 -43
  220. package/packages/security/dist/types/core/jwt/validateToken.d.ts +10 -7
  221. package/packages/security/dist/types/core/jwt/verify.d.ts +8 -9
  222. package/packages/security/dist/types/core/password/passwordManager.d.ts +1 -1
  223. package/packages/security/dist/types/core/password/utils.d.ts +12 -0
  224. package/packages/security/dist/types/index.d.ts +2 -7
  225. package/packages/security/package.json +3 -3
  226. package/packages/security/src/core/crypto/cryptoManager.ts +53 -21
  227. package/packages/security/src/core/jwt/decode.ts +4 -1
  228. package/packages/security/src/core/jwt/generateTokens.ts +4 -1
  229. package/packages/security/src/core/jwt/jwtManager.ts +105 -257
  230. package/packages/security/src/core/jwt/parseDuration.ts +4 -2
  231. package/packages/security/src/core/jwt/signToken.ts +2 -1
  232. package/packages/security/src/core/jwt/validateToken.ts +21 -13
  233. package/packages/security/src/core/jwt/verify.ts +82 -20
  234. package/packages/security/src/core/password/hash.ts +10 -4
  235. package/packages/security/src/core/password/passwordManager.ts +38 -108
  236. package/packages/security/src/core/password/strength.ts +13 -8
  237. package/packages/security/src/core/password/utils.ts +19 -3
  238. package/packages/security/src/core/password/verify.ts +6 -4
  239. package/packages/server-utils/README.md +1 -1
  240. package/packages/server-utils/dist/cjs/core/server.js +6 -6
  241. package/packages/server-utils/dist/cjs/middleware/auth.middleware.d.ts +1 -2
  242. package/packages/server-utils/dist/cjs/middleware/auth.middleware.js +17 -14
  243. package/packages/server-utils/dist/cjs/middleware/cache.middleware.js +2 -2
  244. package/packages/server-utils/dist/cjs/middleware/errorHandler.middleware.d.ts +1 -1
  245. package/packages/server-utils/dist/cjs/middleware/errorHandler.middleware.js +34 -17
  246. package/packages/server-utils/dist/cjs/middleware/session.middleware.js +8 -8
  247. package/packages/server-utils/dist/cjs/middleware/validation.middleware.js +2 -2
  248. package/packages/server-utils/dist/esm/core/server.js +6 -6
  249. package/packages/server-utils/dist/esm/middleware/auth.middleware.d.ts +1 -2
  250. package/packages/server-utils/dist/esm/middleware/auth.middleware.js +18 -15
  251. package/packages/server-utils/dist/esm/middleware/cache.middleware.js +2 -2
  252. package/packages/server-utils/dist/esm/middleware/errorHandler.middleware.d.ts +1 -1
  253. package/packages/server-utils/dist/esm/middleware/errorHandler.middleware.js +34 -17
  254. package/packages/server-utils/dist/esm/middleware/session.middleware.js +8 -8
  255. package/packages/server-utils/dist/esm/middleware/validation.middleware.js +2 -2
  256. package/packages/server-utils/dist/types/middleware/auth.middleware.d.ts +1 -2
  257. package/packages/server-utils/dist/types/middleware/errorHandler.middleware.d.ts +1 -1
  258. package/packages/server-utils/package.json +4 -4
  259. package/packages/server-utils/src/core/server.ts +6 -6
  260. package/packages/server-utils/src/middleware/auth.middleware.ts +40 -27
  261. package/packages/server-utils/src/middleware/cache.middleware.ts +2 -2
  262. package/packages/server-utils/src/middleware/errorHandler.middleware.ts +39 -24
  263. package/packages/server-utils/src/middleware/session.middleware.ts +11 -8
  264. package/packages/server-utils/src/middleware/validation.middleware.ts +2 -3
  265. package/packages/errors-utils/dist/cjs/error/RateLimitError.d.ts +0 -4
  266. package/packages/errors-utils/dist/cjs/error/RateLimitError.js +0 -11
  267. package/packages/errors-utils/dist/cjs/utils/mapAppErrorToResponder.d.ts +0 -3
  268. package/packages/errors-utils/dist/cjs/utils/mapAppErrorToResponder.js +0 -27
  269. package/packages/errors-utils/dist/esm/error/RateLimitError.d.ts +0 -4
  270. package/packages/errors-utils/dist/esm/error/RateLimitError.js +0 -7
  271. package/packages/errors-utils/dist/esm/utils/mapAppErrorToResponder.d.ts +0 -3
  272. package/packages/errors-utils/dist/esm/utils/mapAppErrorToResponder.js +0 -24
  273. package/packages/errors-utils/dist/types/error/RateLimitError.d.ts +0 -4
  274. package/packages/errors-utils/dist/types/utils/mapAppErrorToResponder.d.ts +0 -3
  275. package/packages/errors-utils/src/error/RateLimitError.ts +0 -8
  276. package/packages/errors-utils/src/utils/mapAppErrorToResponder.ts +0 -38
  277. package/packages/response-utils/src/legacy.ts +0 -30
  278. /package/packages/errors-utils/dist/cjs/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
  279. /package/packages/errors-utils/dist/cjs/middleware/express/{errorConverter.js → errorConverter.middleware.js} +0 -0
  280. /package/packages/errors-utils/dist/cjs/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
  281. /package/packages/errors-utils/dist/esm/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
  282. /package/packages/errors-utils/dist/esm/middleware/express/{errorConverter.js → errorConverter.middleware.js} +0 -0
  283. /package/packages/errors-utils/dist/esm/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
  284. /package/packages/errors-utils/dist/types/middleware/express/{errorConverter.d.ts → errorConverter.middleware.d.ts} +0 -0
  285. /package/packages/errors-utils/dist/types/middleware/express/{errorHandler.d.ts → errorHandler.middleware.d.ts} +0 -0
  286. /package/packages/errors-utils/src/middleware/express/{errorConverter.ts → errorConverter.middleware.ts} +0 -0
@@ -50,8 +50,8 @@ function cacheResponse(ttl) {
50
50
  };
51
51
  next();
52
52
  }
53
- catch (err) {
54
- console.error('[Cache] Unexpected error in cacheResponse middleware:', err);
53
+ catch (error) {
54
+ console.error('[Cache] Unexpected error in cacheResponse middleware:', error);
55
55
  next();
56
56
  }
57
57
  };
@@ -1,2 +1,2 @@
1
- import type { ErrorRequestHandler } from 'node_modules/@types/express';
1
+ import type { ErrorRequestHandler } from 'express';
2
2
  export declare function createErrorHandler(): ErrorRequestHandler;
@@ -1,29 +1,46 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createErrorHandler = createErrorHandler;
4
- // Error handling middleware
4
+ const errors_utils_1 = require("@naman_deep_singh/errors-utils");
5
5
  function createErrorHandler() {
6
- return (err, _req, res, next) => {
7
- console.error('Error:', err);
6
+ return (error, _req, res, next) => {
8
7
  if (res.headersSent) {
9
- return next(err);
8
+ return next(error);
10
9
  }
11
- // Type guard for error objects
12
- const errorObj = err;
13
- const status = errorObj.status || errorObj.statusCode || 500;
14
- const message = process.env.NODE_ENV === 'production'
15
- ? 'Internal Server Error'
16
- : errorObj.message || 'Unknown error';
17
- res.status(status).json({
10
+ // Use responder if available
11
+ const responder = res.responder?.() ?? null;
12
+ // Known application error
13
+ if (error instanceof errors_utils_1.AppError) {
14
+ if (responder) {
15
+ return responder
16
+ .status(error.statusCode)
17
+ .error(error.code, error.details);
18
+ }
19
+ // Fallback (if responder middleware is not mounted)
20
+ return res.status(error.statusCode).json({
21
+ success: false,
22
+ message: error.code,
23
+ error: {
24
+ message: error.code,
25
+ details: error.details,
26
+ },
27
+ data: undefined,
28
+ meta: null,
29
+ });
30
+ }
31
+ // Unknown / unhandled error
32
+ console.error('Unhandled error:', error);
33
+ const status = 500;
34
+ const message = 'Internal Server Error';
35
+ if (responder) {
36
+ return responder.status(status).error(message);
37
+ }
38
+ // Final fallback
39
+ return res.status(status).json({
18
40
  success: false,
19
41
  message,
42
+ error: { message },
20
43
  data: undefined,
21
- error: {
22
- message,
23
- ...(process.env.NODE_ENV !== 'production' && {
24
- details: { stack: errorObj.stack },
25
- }),
26
- },
27
44
  meta: null,
28
45
  });
29
46
  };
@@ -29,24 +29,24 @@ function useSession(cookieName) {
29
29
  try {
30
30
  return await store.get(sid);
31
31
  }
32
- catch (err) {
33
- console.error(`[Session] Failed to get session "${sid}":`, err);
34
- throw err;
32
+ catch (error) {
33
+ console.error(`[Session] Failed to get session "${sid}":`, error);
34
+ throw error;
35
35
  }
36
36
  };
37
37
  req.createSession = async (id, data, ttl) => {
38
38
  try {
39
39
  return await store.create(id, data, ttl);
40
40
  }
41
- catch (err) {
42
- console.error(`[Session] Failed to create session "${id}":`, err);
43
- throw err;
41
+ catch (error) {
42
+ console.error(`[Session] Failed to create session "${id}":`, error);
43
+ throw error;
44
44
  }
45
45
  };
46
46
  next();
47
47
  }
48
- catch (err) {
49
- console.error('[Session] Unexpected error in useSession middleware:', err);
48
+ catch (error) {
49
+ console.error('[Session] Unexpected error in useSession middleware:', error);
50
50
  next();
51
51
  }
52
52
  };
@@ -57,8 +57,8 @@ function createValidationMiddleware(rules) {
57
57
  }
58
58
  if (errors.length > 0) {
59
59
  // Use ValidationError from errors-utils and let error middleware handle response
60
- const validationError = new errors_utils_1.ValidationError('Validation failed', {
61
- validationErrors: errors,
60
+ const validationError = new errors_utils_1.ValidationError({
61
+ fieldErrors: errors,
62
62
  });
63
63
  return next(validationError);
64
64
  }
@@ -139,8 +139,8 @@ export class ExpressServer {
139
139
  });
140
140
  console.log(`✅ [${serverName}] Cache initialized successfully (adapter: ${cacheConfig.adapter || 'memory'})`);
141
141
  }
142
- catch (err) {
143
- console.error(`❌ [${serverName}] Failed to initialize cache (fallback to memory if enabled):`, err instanceof Error ? err.message : err);
142
+ catch (error) {
143
+ console.error(`❌ [${serverName}] Failed to initialize cache (fallback to memory if enabled):`, error instanceof Error ? error.message : error);
144
144
  // Cache initialization error is critical but we continue to allow graceful fallback
145
145
  }
146
146
  }
@@ -178,14 +178,14 @@ export class ExpressServer {
178
178
  this.app.use(useSession(cookieName));
179
179
  console.log(`✅ [${serverName}] Session middleware enabled (cookie: ${cookieName}, TTL: ${ttl}s)`);
180
180
  }
181
- catch (err) {
182
- console.error(`❌ [${serverName}] Session middleware not available:`, err instanceof Error ? err.message : err);
181
+ catch (error) {
182
+ console.error(`❌ [${serverName}] Session middleware not available:`, error instanceof Error ? error.message : error);
183
183
  }
184
184
  }
185
185
  }
186
186
  }
187
- catch (err) {
188
- console.error(`❌ [${serverName}] Error during cache/session setup:`, err instanceof Error ? err.message : err);
187
+ catch (error) {
188
+ console.error(`❌ [${serverName}] Error during cache/session setup:`, error instanceof Error ? error.message : error);
189
189
  }
190
190
  }
191
191
  setupPeriodicHealthMonitoring() {
@@ -1,7 +1,6 @@
1
- import type { Request, RequestHandler } from 'node_modules/@types/express';
1
+ import type { Request, RequestHandler } from 'express';
2
2
  export interface AuthConfig {
3
3
  secret: string;
4
- unauthorizedMessage?: string;
5
4
  tokenExtractor?: (req: Request) => string | null;
6
5
  }
7
6
  export declare function createAuthMiddleware(config: AuthConfig): RequestHandler;
@@ -1,7 +1,7 @@
1
- import { UnauthorizedError } from '@naman_deep_singh/errors-utils';
1
+ import { TokenExpiredError, TokenMalformedError, UnauthorizedError, } from '@naman_deep_singh/errors-utils';
2
2
  import { extractToken, safeVerifyToken } from '@naman_deep_singh/security';
3
3
  export function createAuthMiddleware(config) {
4
- const { secret, unauthorizedMessage = 'Unauthorized access', tokenExtractor = (req) => extractToken({
4
+ const { secret, tokenExtractor = (req) => extractToken({
5
5
  header: req.headers.authorization || undefined,
6
6
  cookies: req.cookies,
7
7
  query: req.query,
@@ -9,30 +9,33 @@ export function createAuthMiddleware(config) {
9
9
  }), } = config;
10
10
  return async (req, _res, next) => {
11
11
  try {
12
- // Extract token from request
12
+ // 1️⃣ Extract token
13
13
  const token = tokenExtractor(req);
14
14
  if (!token) {
15
- const error = new UnauthorizedError(unauthorizedMessage, {
15
+ // No cause client mistake
16
+ return next(new TokenMalformedError({
16
17
  reason: 'No token provided',
17
- });
18
- return next(error);
18
+ }));
19
19
  }
20
- // Use safe verify token from security package
20
+ // 2️⃣ Verify token
21
21
  const result = safeVerifyToken(token, secret);
22
22
  if (!result.valid) {
23
- const error = new UnauthorizedError(unauthorizedMessage, {
24
- reason: 'Invalid or expired token',
25
- originalError: result.error?.message,
26
- });
27
- return next(error);
23
+ // Token expired
24
+ if (result.error?.name === 'TokenExpiredError') {
25
+ return next(new TokenExpiredError({ reason: 'Token expired' }, result.error));
26
+ }
27
+ // Token invalid / malformed
28
+ return next(new TokenMalformedError({
29
+ reason: 'Invalid token',
30
+ }, result.error));
28
31
  }
29
- // Attach the verified payload as user
32
+ // 3️⃣ Attach payload
30
33
  req.user = result.payload;
31
34
  next();
32
35
  }
33
36
  catch (error) {
34
- const unauthorizedError = new UnauthorizedError(unauthorizedMessage, error instanceof Error ? { originalError: error.message } : error);
35
- return next(unauthorizedError);
37
+ // Unexpected error always pass cause
38
+ return next(new UnauthorizedError({ reason: 'Authentication failed' }, error instanceof Error ? error : undefined));
36
39
  }
37
40
  };
38
41
  }
@@ -47,8 +47,8 @@ export function cacheResponse(ttl) {
47
47
  };
48
48
  next();
49
49
  }
50
- catch (err) {
51
- console.error('[Cache] Unexpected error in cacheResponse middleware:', err);
50
+ catch (error) {
51
+ console.error('[Cache] Unexpected error in cacheResponse middleware:', error);
52
52
  next();
53
53
  }
54
54
  };
@@ -1,2 +1,2 @@
1
- import type { ErrorRequestHandler } from 'node_modules/@types/express';
1
+ import type { ErrorRequestHandler } from 'express';
2
2
  export declare function createErrorHandler(): ErrorRequestHandler;
@@ -1,26 +1,43 @@
1
- // Error handling middleware
1
+ import { AppError } from '@naman_deep_singh/errors-utils';
2
2
  export function createErrorHandler() {
3
- return (err, _req, res, next) => {
4
- console.error('Error:', err);
3
+ return (error, _req, res, next) => {
5
4
  if (res.headersSent) {
6
- return next(err);
5
+ return next(error);
7
6
  }
8
- // Type guard for error objects
9
- const errorObj = err;
10
- const status = errorObj.status || errorObj.statusCode || 500;
11
- const message = process.env.NODE_ENV === 'production'
12
- ? 'Internal Server Error'
13
- : errorObj.message || 'Unknown error';
14
- res.status(status).json({
7
+ // Use responder if available
8
+ const responder = res.responder?.() ?? null;
9
+ // Known application error
10
+ if (error instanceof AppError) {
11
+ if (responder) {
12
+ return responder
13
+ .status(error.statusCode)
14
+ .error(error.code, error.details);
15
+ }
16
+ // Fallback (if responder middleware is not mounted)
17
+ return res.status(error.statusCode).json({
18
+ success: false,
19
+ message: error.code,
20
+ error: {
21
+ message: error.code,
22
+ details: error.details,
23
+ },
24
+ data: undefined,
25
+ meta: null,
26
+ });
27
+ }
28
+ // Unknown / unhandled error
29
+ console.error('Unhandled error:', error);
30
+ const status = 500;
31
+ const message = 'Internal Server Error';
32
+ if (responder) {
33
+ return responder.status(status).error(message);
34
+ }
35
+ // Final fallback
36
+ return res.status(status).json({
15
37
  success: false,
16
38
  message,
39
+ error: { message },
17
40
  data: undefined,
18
- error: {
19
- message,
20
- ...(process.env.NODE_ENV !== 'production' && {
21
- details: { stack: errorObj.stack },
22
- }),
23
- },
24
41
  meta: null,
25
42
  });
26
43
  };
@@ -26,24 +26,24 @@ export function useSession(cookieName) {
26
26
  try {
27
27
  return await store.get(sid);
28
28
  }
29
- catch (err) {
30
- console.error(`[Session] Failed to get session "${sid}":`, err);
31
- throw err;
29
+ catch (error) {
30
+ console.error(`[Session] Failed to get session "${sid}":`, error);
31
+ throw error;
32
32
  }
33
33
  };
34
34
  req.createSession = async (id, data, ttl) => {
35
35
  try {
36
36
  return await store.create(id, data, ttl);
37
37
  }
38
- catch (err) {
39
- console.error(`[Session] Failed to create session "${id}":`, err);
40
- throw err;
38
+ catch (error) {
39
+ console.error(`[Session] Failed to create session "${id}":`, error);
40
+ throw error;
41
41
  }
42
42
  };
43
43
  next();
44
44
  }
45
- catch (err) {
46
- console.error('[Session] Unexpected error in useSession middleware:', err);
45
+ catch (error) {
46
+ console.error('[Session] Unexpected error in useSession middleware:', error);
47
47
  next();
48
48
  }
49
49
  };
@@ -54,8 +54,8 @@ export function createValidationMiddleware(rules) {
54
54
  }
55
55
  if (errors.length > 0) {
56
56
  // Use ValidationError from errors-utils and let error middleware handle response
57
- const validationError = new ValidationError('Validation failed', {
58
- validationErrors: errors,
57
+ const validationError = new ValidationError({
58
+ fieldErrors: errors,
59
59
  });
60
60
  return next(validationError);
61
61
  }
@@ -1,7 +1,6 @@
1
- import type { Request, RequestHandler } from 'node_modules/@types/express';
1
+ import type { Request, RequestHandler } from 'express';
2
2
  export interface AuthConfig {
3
3
  secret: string;
4
- unauthorizedMessage?: string;
5
4
  tokenExtractor?: (req: Request) => string | null;
6
5
  }
7
6
  export declare function createAuthMiddleware(config: AuthConfig): RequestHandler;
@@ -1,2 +1,2 @@
1
- import type { ErrorRequestHandler } from 'node_modules/@types/express';
1
+ import type { ErrorRequestHandler } from 'express';
2
2
  export declare function createErrorHandler(): ErrorRequestHandler;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naman_deep_singh/server-utils",
3
- "version": "1.4.3",
3
+ "version": "1.5.1",
4
4
  "description": "Extensible server utilities for Express.js microservices with TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -34,9 +34,9 @@
34
34
  "license": "ISC",
35
35
  "packageManager": "pnpm@10.20.0",
36
36
  "dependencies": {
37
- "@naman_deep_singh/cache": "^1.3.1",
38
- "@naman_deep_singh/errors-utils": "^1.1.1",
39
- "@naman_deep_singh/security": "^1.3.2",
37
+ "@naman_deep_singh/cache": "^1.4.0",
38
+ "@naman_deep_singh/errors-utils": "^1.4.2",
39
+ "@naman_deep_singh/security": "^1.5.1",
40
40
  "@types/express": "^5.0.5",
41
41
  "cookie-parser": "^1.4.6",
42
42
  "cors": "^2.8.5",
@@ -262,10 +262,10 @@ export class ExpressServer implements ServerInstance {
262
262
  console.log(
263
263
  `✅ [${serverName}] Cache initialized successfully (adapter: ${cacheConfig.adapter || 'memory'})`,
264
264
  )
265
- } catch (err) {
265
+ } catch (error) {
266
266
  console.error(
267
267
  `❌ [${serverName}] Failed to initialize cache (fallback to memory if enabled):`,
268
- err instanceof Error ? err.message : err,
268
+ error instanceof Error ? error.message : error,
269
269
  )
270
270
  // Cache initialization error is critical but we continue to allow graceful fallback
271
271
  }
@@ -316,18 +316,18 @@ export class ExpressServer implements ServerInstance {
316
316
  console.log(
317
317
  `✅ [${serverName}] Session middleware enabled (cookie: ${cookieName}, TTL: ${ttl}s)`,
318
318
  )
319
- } catch (err) {
319
+ } catch (error) {
320
320
  console.error(
321
321
  `❌ [${serverName}] Session middleware not available:`,
322
- err instanceof Error ? err.message : err,
322
+ error instanceof Error ? error.message : error,
323
323
  )
324
324
  }
325
325
  }
326
326
  }
327
- } catch (err) {
327
+ } catch (error) {
328
328
  console.error(
329
329
  `❌ [${serverName}] Error during cache/session setup:`,
330
- err instanceof Error ? err.message : err,
330
+ error instanceof Error ? error.message : error,
331
331
  )
332
332
  }
333
333
  }
@@ -1,25 +1,20 @@
1
- import { UnauthorizedError } from '@naman_deep_singh/errors-utils'
1
+ import {
2
+ TokenExpiredError,
3
+ TokenMalformedError,
4
+ UnauthorizedError,
5
+ } from '@naman_deep_singh/errors-utils'
2
6
  import { extractToken, safeVerifyToken } from '@naman_deep_singh/security'
3
7
 
4
- import type {
5
- NextFunction,
6
- Request,
7
- RequestHandler,
8
- Response,
9
- } from 'node_modules/@types/express'
8
+ import type { NextFunction, Request, RequestHandler, Response } from 'express'
10
9
 
11
- // Authentication middleware helper
12
10
  export interface AuthConfig {
13
11
  secret: string
14
- unauthorizedMessage?: string
15
12
  tokenExtractor?: (req: Request) => string | null
16
13
  }
17
14
 
18
15
  export function createAuthMiddleware(config: AuthConfig): RequestHandler {
19
16
  const {
20
17
  secret,
21
- unauthorizedMessage = 'Unauthorized access',
22
-
23
18
  tokenExtractor = (req) =>
24
19
  extractToken({
25
20
  header: req.headers.authorization || undefined,
@@ -31,36 +26,54 @@ export function createAuthMiddleware(config: AuthConfig): RequestHandler {
31
26
 
32
27
  return async (req: Request, _res: Response, next: NextFunction) => {
33
28
  try {
34
- // Extract token from request
29
+ // 1️⃣ Extract token
35
30
  const token = tokenExtractor(req)
36
31
 
37
32
  if (!token) {
38
- const error = new UnauthorizedError(unauthorizedMessage, {
39
- reason: 'No token provided',
40
- })
41
- return next(error)
33
+ // No cause client mistake
34
+ return next(
35
+ new TokenMalformedError({
36
+ reason: 'No token provided',
37
+ }),
38
+ )
42
39
  }
43
40
 
44
- // Use safe verify token from security package
41
+ // 2️⃣ Verify token
45
42
  const result = safeVerifyToken(token, secret)
46
43
 
47
44
  if (!result.valid) {
48
- const error = new UnauthorizedError(unauthorizedMessage, {
49
- reason: 'Invalid or expired token',
50
- originalError: result.error?.message,
51
- })
52
- return next(error)
45
+ // Token expired
46
+ if (result.error?.name === 'TokenExpiredError') {
47
+ return next(
48
+ new TokenExpiredError(
49
+ { reason: 'Token expired' },
50
+ result.error, // ✅ cause
51
+ ),
52
+ )
53
+ }
54
+
55
+ // Token invalid / malformed
56
+ return next(
57
+ new TokenMalformedError(
58
+ {
59
+ reason: 'Invalid token',
60
+ },
61
+ result.error, // ✅ cause
62
+ ),
63
+ )
53
64
  }
54
65
 
55
- // Attach the verified payload as user
66
+ // 3️⃣ Attach payload
56
67
  req.user = result.payload
57
68
  next()
58
69
  } catch (error) {
59
- const unauthorizedError = new UnauthorizedError(
60
- unauthorizedMessage,
61
- error instanceof Error ? { originalError: error.message } : error,
70
+ // Unexpected error always pass cause
71
+ return next(
72
+ new UnauthorizedError(
73
+ { reason: 'Authentication failed' },
74
+ error instanceof Error ? error : undefined,
75
+ ),
62
76
  )
63
- return next(unauthorizedError)
64
77
  }
65
78
  }
66
79
  }
@@ -57,10 +57,10 @@ export function cacheResponse(ttl?: number): RequestHandler {
57
57
  }
58
58
 
59
59
  next()
60
- } catch (err) {
60
+ } catch (error) {
61
61
  console.error(
62
62
  '[Cache] Unexpected error in cacheResponse middleware:',
63
- err,
63
+ error,
64
64
  )
65
65
  next()
66
66
  }
@@ -3,41 +3,56 @@ import type {
3
3
  NextFunction,
4
4
  Request,
5
5
  Response,
6
- } from 'node_modules/@types/express'
6
+ } from 'express'
7
7
 
8
- // Error handling middleware
9
- export function createErrorHandler(): ErrorRequestHandler {
10
- return (err: unknown, _req: Request, res: Response, next: NextFunction) => {
11
- console.error('Error:', err)
8
+ import { AppError } from '@naman_deep_singh/errors-utils'
12
9
 
10
+ export function createErrorHandler(): ErrorRequestHandler {
11
+ return (error: unknown, _req: Request, res: Response, next: NextFunction) => {
13
12
  if (res.headersSent) {
14
- return next(err)
13
+ return next(error)
15
14
  }
16
15
 
17
- // Type guard for error objects
18
- const errorObj = err as {
19
- status?: number
20
- statusCode?: number
21
- message?: string
22
- stack?: string
16
+ // Use responder if available
17
+ const responder = (res as any).responder?.() ?? null
18
+
19
+ // Known application error
20
+ if (error instanceof AppError) {
21
+ if (responder) {
22
+ return responder
23
+ .status(error.statusCode)
24
+ .error(error.code, error.details)
25
+ }
26
+
27
+ // Fallback (if responder middleware is not mounted)
28
+ return res.status(error.statusCode).json({
29
+ success: false,
30
+ message: error.code,
31
+ error: {
32
+ message: error.code,
33
+ details: error.details,
34
+ },
35
+ data: undefined,
36
+ meta: null,
37
+ })
23
38
  }
24
39
 
25
- const status = errorObj.status || errorObj.statusCode || 500
26
- const message =
27
- process.env.NODE_ENV === 'production'
28
- ? 'Internal Server Error'
29
- : errorObj.message || 'Unknown error'
40
+ // Unknown / unhandled error
41
+ console.error('Unhandled error:', error)
42
+
43
+ const status = 500
44
+ const message = 'Internal Server Error'
45
+
46
+ if (responder) {
47
+ return responder.status(status).error(message)
48
+ }
30
49
 
31
- res.status(status).json({
50
+ // Final fallback
51
+ return res.status(status).json({
32
52
  success: false,
33
53
  message,
54
+ error: { message },
34
55
  data: undefined,
35
- error: {
36
- message,
37
- ...(process.env.NODE_ENV !== 'production' && {
38
- details: { stack: errorObj.stack },
39
- }),
40
- },
41
56
  meta: null,
42
57
  })
43
58
  }