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
@@ -1,3 +1,4 @@
1
+ import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes'
1
2
  import { BaseCache } from '../../core/BaseCache'
2
3
  import { CacheError } from '../../errors'
3
4
  import type { HealthCheckResponse, MemoryCacheConfig } from '../../types'
@@ -52,13 +53,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
52
53
 
53
54
  this.recordHit()
54
55
  return entry.value
55
- } catch (err) {
56
- throw new CacheError(
57
- `Failed to get key "${key}" from memory cache`,
58
- 'MEMORY_GET_ERROR',
59
- 'memory',
60
- err as Error,
61
- )
56
+ } catch (error) {
57
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_KEY_NOT_FOUND, {
58
+ adapter: 'memory',
59
+ operation: 'get',
60
+ details: { key },
61
+ cause: error instanceof Error ? error : undefined,
62
+ })
62
63
  }
63
64
  }
64
65
 
@@ -84,13 +85,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
84
85
 
85
86
  this.store.set(fullKey, { value, expiresAt })
86
87
  this.recordSet()
87
- } catch (err) {
88
- throw new CacheError(
89
- `Failed to set key "${key}" in memory cache`,
90
- 'MEMORY_SET_ERROR',
91
- 'memory',
92
- err as Error,
93
- )
88
+ } catch (error) {
89
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
90
+ adapter: 'memory',
91
+ operation: 'set',
92
+ details: { key },
93
+ cause: error instanceof Error ? error : undefined,
94
+ })
94
95
  }
95
96
  }
96
97
 
@@ -105,13 +106,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
105
106
  this.recordDelete()
106
107
  }
107
108
  return deleted
108
- } catch (err) {
109
- throw new CacheError(
110
- `Failed to delete key "${key}" from memory cache`,
111
- 'MEMORY_DELETE_ERROR',
112
- 'memory',
113
- err as Error,
114
- )
109
+ } catch (error) {
110
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
111
+ adapter: 'memory',
112
+ operation: 'delete',
113
+ details: { key },
114
+ cause: error instanceof Error ? error : undefined,
115
+ })
115
116
  }
116
117
  }
117
118
 
@@ -134,13 +135,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
134
135
  }
135
136
 
136
137
  return true
137
- } catch (err) {
138
- throw new CacheError(
139
- `Failed to check existence of key "${key}" in memory cache`,
140
- 'MEMORY_EXISTS_ERROR',
141
- 'memory',
142
- err as Error,
143
- )
138
+ } catch (error) {
139
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
140
+ adapter: 'memory',
141
+ operation: 'exists',
142
+ details: { key },
143
+ cause: error instanceof Error ? error : undefined,
144
+ })
144
145
  }
145
146
  }
146
147
 
@@ -160,13 +161,12 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
160
161
  // Clear all
161
162
  this.store.clear()
162
163
  }
163
- } catch (err) {
164
- throw new CacheError(
165
- 'Failed to clear memory cache',
166
- 'MEMORY_CLEAR_ERROR',
167
- 'memory',
168
- err as Error,
169
- )
164
+ } catch (error) {
165
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_OPERATION_TIMEOUT, {
166
+ adapter: 'memory',
167
+ operation: 'clear',
168
+ cause: error instanceof Error ? error : undefined,
169
+ })
170
170
  }
171
171
  }
172
172
 
@@ -200,13 +200,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
200
200
  }
201
201
 
202
202
  return result
203
- } catch (err) {
204
- throw new CacheError(
205
- 'Failed to get multiple keys from memory cache',
206
- 'MEMORY_GET_MULTIPLE_ERROR',
207
- 'memory',
208
- err as Error,
209
- )
203
+ } catch (error) {
204
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
205
+ adapter: 'memory',
206
+ operation: 'getMultiple',
207
+ details: { keys },
208
+ cause: error instanceof Error ? error : undefined,
209
+ })
210
210
  }
211
211
  }
212
212
 
@@ -224,13 +224,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
224
224
  }
225
225
 
226
226
  this.stats.sets += Object.keys(data).length
227
- } catch (err) {
228
- throw new CacheError(
229
- 'Failed to set multiple keys in memory cache',
230
- 'MEMORY_SET_MULTIPLE_ERROR',
231
- 'memory',
232
- err as Error,
233
- )
227
+ } catch (error) {
228
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
229
+ adapter: 'memory',
230
+ operation: 'setMultiple',
231
+ details: { keys: Object.keys(data) },
232
+ cause: error instanceof Error ? error : undefined,
233
+ })
234
234
  }
235
235
  }
236
236
 
@@ -248,13 +248,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
248
248
  }
249
249
  this.stats.deletes += count
250
250
  return count
251
- } catch (err) {
252
- throw new CacheError(
253
- 'Failed to delete multiple keys from memory cache',
254
- 'MEMORY_DELETE_MULTIPLE_ERROR',
255
- 'memory',
256
- err as Error,
257
- )
251
+ } catch (error) {
252
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
253
+ adapter: 'memory',
254
+ operation: 'deleteMultiple',
255
+ details: { keys },
256
+ cause: error instanceof Error ? error : undefined,
257
+ })
258
258
  }
259
259
  }
260
260
 
@@ -280,13 +280,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
280
280
 
281
281
  this.store.set(fullKey, { value: value as T, expiresAt })
282
282
  return value
283
- } catch (err) {
284
- throw new CacheError(
285
- `Failed to increment key "${key}" in memory cache`,
286
- 'MEMORY_INCREMENT_ERROR',
287
- 'memory',
288
- err as Error,
289
- )
283
+ } catch (error) {
284
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
285
+ adapter: 'memory',
286
+ operation: 'increment',
287
+ details: { key },
288
+ cause: error instanceof Error ? error : undefined,
289
+ })
290
290
  }
291
291
  }
292
292
 
@@ -312,13 +312,13 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
312
312
 
313
313
  this.store.set(fullKey, { value: value as T, expiresAt })
314
314
  return value
315
- } catch (err) {
316
- throw new CacheError(
317
- `Failed to decrement key "${key}" in memory cache`,
318
- 'MEMORY_DECREMENT_ERROR',
319
- 'memory',
320
- err as Error,
321
- )
315
+ } catch (error) {
316
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
317
+ adapter: 'memory',
318
+ operation: 'decrement',
319
+ details: { key },
320
+ cause: error instanceof Error ? error : undefined,
321
+ })
322
322
  }
323
323
  }
324
324
 
@@ -343,13 +343,12 @@ export class MemoryCache<T = unknown> extends BaseCache<T> {
343
343
  this.cleanupInterval = null
344
344
  }
345
345
  this.store.clear()
346
- } catch (err) {
347
- throw new CacheError(
348
- 'Failed to close memory cache',
349
- 'MEMORY_CLOSE_ERROR',
350
- 'memory',
351
- err as Error,
352
- )
346
+ } catch (error) {
347
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
348
+ adapter: 'memory',
349
+ operation: 'close',
350
+ cause: error instanceof Error ? error : undefined,
351
+ })
353
352
  }
354
353
  }
355
354
  }
@@ -1,5 +1,6 @@
1
1
  import { createClient, createCluster } from 'redis'
2
2
  import type { RedisClientOptions } from 'redis'
3
+ import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes'
3
4
  import { BaseCache } from '../../core/BaseCache'
4
5
  import { CacheError } from '../../errors'
5
6
  import type { HealthCheckResponse, RedisCacheConfig } from '../../types'
@@ -81,13 +82,12 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
81
82
  await this.client.connect()
82
83
  this.isConnected = true
83
84
  }
84
- } catch (err) {
85
- throw new CacheError(
86
- 'Failed to connect to Redis',
87
- 'REDIS_CONNECTION_ERROR',
88
- 'redis',
89
- err as Error,
90
- )
85
+ } catch (error) {
86
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_CONNECTION_FAILED, {
87
+ adapter: 'redis',
88
+ operation: 'connect',
89
+ cause: error instanceof Error ? error : undefined,
90
+ })
91
91
  }
92
92
  }
93
93
 
@@ -116,13 +116,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
116
116
 
117
117
  this.recordHit()
118
118
  return this.deserialize(value)
119
- } catch (err) {
120
- throw new CacheError(
121
- `Failed to get key "${key}" from Redis`,
122
- 'REDIS_GET_ERROR',
123
- 'redis',
124
- err as Error,
125
- )
119
+ } catch (error) {
120
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
121
+ adapter: 'redis',
122
+ operation: 'get',
123
+ details: { key },
124
+ cause: error instanceof Error ? error : undefined,
125
+ })
126
126
  }
127
127
  }
128
128
 
@@ -143,13 +143,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
143
143
  }
144
144
 
145
145
  this.recordSet()
146
- } catch (err) {
147
- throw new CacheError(
148
- `Failed to set key "${key}" in Redis`,
149
- 'REDIS_SET_ERROR',
150
- 'redis',
151
- err as Error,
152
- )
146
+ } catch (error) {
147
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
148
+ adapter: 'redis',
149
+ operation: 'set',
150
+ details: { key },
151
+ cause: error instanceof Error ? error : undefined,
152
+ })
153
153
  }
154
154
  }
155
155
 
@@ -163,13 +163,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
163
163
  const result = await this.client!.del(fullKey)
164
164
  this.recordDelete()
165
165
  return result > 0
166
- } catch (err) {
167
- throw new CacheError(
168
- `Failed to delete key "${key}" from Redis`,
169
- 'REDIS_DELETE_ERROR',
170
- 'redis',
171
- err as Error,
172
- )
166
+ } catch (error) {
167
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
168
+ adapter: 'redis',
169
+ operation: 'delete',
170
+ details: { key },
171
+ cause: error instanceof Error ? error : undefined,
172
+ })
173
173
  }
174
174
  }
175
175
 
@@ -182,13 +182,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
182
182
  const fullKey = this.buildKey(key)
183
183
  const result = await this.client!.exists(fullKey)
184
184
  return result > 0
185
- } catch (err) {
186
- throw new CacheError(
187
- `Failed to check existence of key "${key}" in Redis`,
188
- 'REDIS_EXISTS_ERROR',
189
- 'redis',
190
- err as Error,
191
- )
185
+ } catch (error) {
186
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
187
+ adapter: 'redis',
188
+ operation: 'exists',
189
+ details: { key },
190
+ cause: error instanceof Error ? error : undefined,
191
+ })
192
192
  }
193
193
  }
194
194
 
@@ -214,13 +214,12 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
214
214
  console.warn('Clear operation not supported in cluster mode')
215
215
  }
216
216
  }
217
- } catch (err) {
218
- throw new CacheError(
219
- 'Failed to clear Redis cache',
220
- 'REDIS_CLEAR_ERROR',
221
- 'redis',
222
- err as Error,
223
- )
217
+ } catch (error) {
218
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_OPERATION_TIMEOUT, {
219
+ adapter: 'redis',
220
+ operation: 'clear',
221
+ cause: error instanceof Error ? error : undefined,
222
+ })
224
223
  }
225
224
  }
226
225
 
@@ -246,13 +245,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
246
245
  })
247
246
 
248
247
  return result
249
- } catch (err) {
250
- throw new CacheError(
251
- 'Failed to get multiple keys from Redis',
252
- 'REDIS_GET_MULTIPLE_ERROR',
253
- 'redis',
254
- err as Error,
255
- )
248
+ } catch (error) {
249
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
250
+ adapter: 'redis',
251
+ operation: 'getMultiple',
252
+ details: { keys },
253
+ cause: error instanceof Error ? error : undefined,
254
+ })
256
255
  }
257
256
  }
258
257
 
@@ -284,13 +283,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
284
283
  }
285
284
 
286
285
  this.stats.sets += Object.keys(data).length
287
- } catch (err) {
288
- throw new CacheError(
289
- 'Failed to set multiple keys in Redis',
290
- 'REDIS_SET_MULTIPLE_ERROR',
291
- 'redis',
292
- err as Error,
293
- )
286
+ } catch (error) {
287
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
288
+ adapter: 'redis',
289
+ operation: 'setMultiple',
290
+ details: { keys: Object.keys(data) },
291
+ cause: error instanceof Error ? error : undefined,
292
+ })
294
293
  }
295
294
  }
296
295
 
@@ -304,13 +303,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
304
303
  const result = await this.client!.del(fullKeys)
305
304
  this.stats.deletes += result
306
305
  return result
307
- } catch (err) {
308
- throw new CacheError(
309
- 'Failed to delete multiple keys from Redis',
310
- 'REDIS_DELETE_MULTIPLE_ERROR',
311
- 'redis',
312
- err as Error,
313
- )
306
+ } catch (error) {
307
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
308
+ adapter: 'redis',
309
+ operation: 'deleteMultiple',
310
+ details: { keys },
311
+ cause: error instanceof Error ? error : undefined,
312
+ })
314
313
  }
315
314
  }
316
315
 
@@ -322,13 +321,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
322
321
  await this.ensureConnected()
323
322
  const fullKey = this.buildKey(key)
324
323
  return await this.client!.incrBy(fullKey, amount)
325
- } catch (err) {
326
- throw new CacheError(
327
- `Failed to increment key "${key}" in Redis`,
328
- 'REDIS_INCREMENT_ERROR',
329
- 'redis',
330
- err as Error,
331
- )
324
+ } catch (error) {
325
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
326
+ adapter: 'redis',
327
+ operation: 'increment',
328
+ details: { key },
329
+ cause: error instanceof Error ? error : undefined,
330
+ })
332
331
  }
333
332
  }
334
333
 
@@ -340,13 +339,13 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
340
339
  await this.ensureConnected()
341
340
  const fullKey = this.buildKey(key)
342
341
  return await this.client!.decrBy(fullKey, amount)
343
- } catch (err) {
344
- throw new CacheError(
345
- `Failed to decrement key "${key}" in Redis`,
346
- 'REDIS_DECREMENT_ERROR',
347
- 'redis',
348
- err as Error,
349
- )
342
+ } catch (error) {
343
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
344
+ adapter: 'redis',
345
+ operation: 'decrement',
346
+ details: { key },
347
+ cause: error instanceof Error ? error : undefined,
348
+ })
350
349
  }
351
350
  }
352
351
 
@@ -374,12 +373,12 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
374
373
  adapter: 'redis',
375
374
  timestamp: new Date(),
376
375
  }
377
- } catch (err) {
376
+ } catch (error) {
378
377
  return {
379
378
  isAlive: false,
380
379
  adapter: 'redis',
381
380
  timestamp: new Date(),
382
- error: (err as Error).message,
381
+ error: (error as Error).message,
383
382
  }
384
383
  }
385
384
  }
@@ -394,13 +393,12 @@ export class RedisCache<T = unknown> extends BaseCache<T> {
394
393
  this.isConnected = false
395
394
  this.client = null
396
395
  }
397
- } catch (err) {
398
- throw new CacheError(
399
- 'Failed to close Redis connection',
400
- 'REDIS_CLOSE_ERROR',
401
- 'redis',
402
- err as Error,
403
- )
396
+ } catch (error) {
397
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_ERROR, {
398
+ adapter: 'redis',
399
+ operation: 'close',
400
+ cause: error instanceof Error ? error : undefined,
401
+ })
404
402
  }
405
403
  }
406
404
  }
@@ -1,3 +1,4 @@
1
+ import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes'
1
2
  import { CacheError } from '../errors'
2
3
 
3
4
  import type {
@@ -39,13 +40,12 @@ export abstract class BaseCache<T = unknown> implements ICache<T> {
39
40
  protected deserialize(data: string): T {
40
41
  try {
41
42
  return JSON.parse(data)
42
- } catch (err) {
43
- throw new CacheError(
44
- `Failed to deserialize cache value for key`,
45
- 'DESERIALIZE_ERROR',
46
- this.config.adapter,
47
- err as Error,
48
- )
43
+ } catch (error) {
44
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_DESERIALIZE_ERROR, {
45
+ adapter: this.config.adapter,
46
+ operation: 'deserialize',
47
+ cause: error instanceof Error ? error : undefined,
48
+ })
49
49
  }
50
50
  }
51
51
 
@@ -55,13 +55,12 @@ export abstract class BaseCache<T = unknown> implements ICache<T> {
55
55
  protected serialize(value: T): string {
56
56
  try {
57
57
  return JSON.stringify(value)
58
- } catch (err) {
59
- throw new CacheError(
60
- `Failed to serialize cache value`,
61
- 'SERIALIZE_ERROR',
62
- this.config.adapter,
63
- err as Error,
64
- )
58
+ } catch (error) {
59
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_SERIALIZE_ERROR, {
60
+ adapter: this.config.adapter,
61
+ operation: 'serialize',
62
+ cause: error instanceof Error ? error : undefined,
63
+ })
65
64
  }
66
65
  }
67
66
 
@@ -1,3 +1,4 @@
1
+ import { CACHE_ERROR_CODES } from 'src/errors/cacheErrorCodes'
1
2
  import { MemcacheCache } from '../adapters/memcache'
2
3
  import { MemoryCache } from '../adapters/memory'
3
4
  import { RedisCache } from '../adapters/redis'
@@ -25,18 +26,25 @@ export class CacheFactory {
25
26
 
26
27
  // Validate: can't use both single + cluster
27
28
  if (redisConfig.host && redisConfig.cluster) {
28
- throw new CacheError(
29
- 'Cannot specify both host and cluster config',
30
- 'INVALID_CONFIG',
31
- )
29
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_INVALID_CONFIG, {
30
+ adapter: 'redis',
31
+ operation: 'create',
32
+ details: {
33
+ reason:
34
+ 'Redis config cannot have both "host" and "cluster" defined',
35
+ },
36
+ })
32
37
  }
33
38
 
34
39
  // Require either single or cluster
35
40
  if (!redisConfig.host && !redisConfig.cluster) {
36
- throw new CacheError(
37
- 'Redis requires either host or cluster config',
38
- 'INVALID_CONFIG',
39
- )
41
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_INVALID_CONFIG, {
42
+ adapter: 'redis',
43
+ operation: 'create',
44
+ details: {
45
+ reason: 'Redis requires either host or cluster config',
46
+ },
47
+ })
40
48
  }
41
49
  return new RedisCache<T>(redisConfig)
42
50
 
@@ -47,10 +55,10 @@ export class CacheFactory {
47
55
  return new MemoryCache<T>(config as MemoryCacheConfig)
48
56
 
49
57
  default:
50
- throw new CacheError(
51
- `Unknown cache adapter: ${config.adapter}`,
52
- 'UNKNOWN_ADAPTER',
53
- )
58
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_UNSUPPORTED_ADAPTER, {
59
+ adapter: config.adapter,
60
+ operation: 'create',
61
+ })
54
62
  }
55
63
  }
56
64
 
@@ -84,9 +92,12 @@ export class CacheFactory {
84
92
  }
85
93
 
86
94
  // No fallback, throw error
87
- throw new CacheError(
88
- `Failed to initialize ${config.adapter} cache and fallback is disabled`,
89
- 'CACHE_INIT_ERROR',
90
- )
95
+ throw new CacheError(CACHE_ERROR_CODES.CACHE_CONNECTION_FAILED, {
96
+ adapter: config.adapter,
97
+ operation: 'createWithFallback',
98
+ details: {
99
+ reason: `${config.adapter} cache is not alive and fallback is disabled`,
100
+ },
101
+ })
91
102
  }
92
103
  }
@@ -1,22 +1,21 @@
1
- /**
2
- * Custom error class for cache operations
3
- */
4
- export class CacheError extends Error {
5
- public readonly code: string
6
- public readonly adapter?: string
7
- public readonly originalError?: Error
1
+ import { AppError, type ErrorCode } from '@naman_deep_singh/errors-utils'
2
+ import type { CacheErrorCode } from './cacheErrorCodes'
3
+
4
+ export class CacheError extends AppError {
5
+ readonly adapter?: string
6
+ readonly operation?: string
8
7
 
9
8
  constructor(
10
- message: string,
11
- code = 'CACHE_ERROR',
12
- adapter?: string,
13
- originalError?: Error,
9
+ code: CacheErrorCode,
10
+ options?: {
11
+ adapter?: string
12
+ operation?: string
13
+ details?: unknown
14
+ cause?: Error
15
+ },
14
16
  ) {
15
- super(message)
16
- this.name = 'CacheError'
17
- this.code = code
18
- this.adapter = adapter
19
- this.originalError = originalError
20
- Object.setPrototypeOf(this, CacheError.prototype)
17
+ super(code as ErrorCode, undefined, options?.details, options?.cause)
18
+ this.adapter = options?.adapter
19
+ this.operation = options?.operation
21
20
  }
22
21
  }
@@ -0,0 +1,24 @@
1
+ export const CACHE_ERROR_CODES = {
2
+ CACHE_ERROR: 'Temporary caching issue, please retry',
3
+ CACHE_CONNECTION_FAILED: 'Failed to connect to the cache server',
4
+ CACHE_UNSUPPORTED_ADAPTER: 'The specified cache adapter is not supported',
5
+ CACHE_INVALID_CONFIG: 'The provided cache configuration is invalid',
6
+ CACHE_KEY_NOT_FOUND: 'The requested cache key was not found',
7
+ CACHE_OPERATION_TIMEOUT: 'The cache operation timed out',
8
+ CACHE_SERIALIZE_ERROR: 'Failed to serialize cached data',
9
+ CACHE_DESERIALIZE_ERROR: 'Failed to deserialize cached data',
10
+ SESSION_CREATE_ERROR: 'Failed to create a new session',
11
+ SESSION_GET_ERROR: 'Failed to get session data',
12
+ SESSION_UPDATE_ERROR: 'Failed to update session data',
13
+ SESSION_DELETE_ERROR: 'Failed to delete session data',
14
+ SESSION_EXISTS_ERROR: 'Failed to check session existence',
15
+ SESSION_CLEAR_ERROR: 'Failed to clear sessions',
16
+ SESSION_GET_MULTIPLE_ERROR: 'Failed to get multiple sessions',
17
+ SESSION_DELETE_MULTIPLE_ERROR: 'Failed to delete multiple sessions',
18
+ SESSION_EXTEND_ERROR: 'Failed to extend session expiry',
19
+ SESSION_GET_EXTEND_ERROR: 'Failed to get and extend session data',
20
+ SESSION_NOT_FOUND: 'Session not found',
21
+ } as const
22
+
23
+ export type CacheErrorCode =
24
+ (typeof CACHE_ERROR_CODES)[keyof typeof CACHE_ERROR_CODES]