@daiso-tech/core 0.41.1 → 0.43.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1425) hide show
  1. package/README.md +18 -8
  2. package/dist/backoff-policies/_module-exports.d.ts +5 -4
  3. package/dist/backoff-policies/_module-exports.js +5 -4
  4. package/dist/backoff-policies/_module-exports.js.map +1 -1
  5. package/dist/backoff-policies/_module.d.ts +7 -0
  6. package/dist/backoff-policies/_module.js +8 -0
  7. package/dist/backoff-policies/_module.js.map +1 -0
  8. package/dist/backoff-policies/_shared.d.ts +8 -3
  9. package/dist/backoff-policies/_shared.js +57 -2
  10. package/dist/backoff-policies/_shared.js.map +1 -1
  11. package/dist/backoff-policies/backoffs-lua.d.ts +7 -0
  12. package/dist/backoff-policies/backoffs-lua.js +78 -0
  13. package/dist/backoff-policies/backoffs-lua.js.map +1 -0
  14. package/dist/backoff-policies/constant-backoff/_module.d.ts +1 -0
  15. package/dist/backoff-policies/constant-backoff/_module.js +2 -0
  16. package/dist/backoff-policies/constant-backoff/_module.js.map +1 -0
  17. package/dist/backoff-policies/constant-backoff/constant-backoff.d.ts +53 -0
  18. package/dist/backoff-policies/constant-backoff/constant-backoff.js +54 -0
  19. package/dist/backoff-policies/constant-backoff/constant-backoff.js.map +1 -0
  20. package/dist/backoff-policies/exponential-backoff/_module.d.ts +1 -0
  21. package/dist/backoff-policies/exponential-backoff/_module.js +2 -0
  22. package/dist/backoff-policies/exponential-backoff/_module.js.map +1 -0
  23. package/dist/backoff-policies/exponential-backoff/exponential-backoff.d.ts +68 -0
  24. package/dist/backoff-policies/exponential-backoff/exponential-backoff.js +59 -0
  25. package/dist/backoff-policies/exponential-backoff/exponential-backoff.js.map +1 -0
  26. package/dist/backoff-policies/linear-backoff/_module.d.ts +1 -0
  27. package/dist/backoff-policies/linear-backoff/_module.js +2 -0
  28. package/dist/backoff-policies/linear-backoff/_module.js.map +1 -0
  29. package/dist/backoff-policies/linear-backoff/linear-backoff.d.ts +63 -0
  30. package/dist/backoff-policies/linear-backoff/linear-backoff.js +57 -0
  31. package/dist/backoff-policies/linear-backoff/linear-backoff.js.map +1 -0
  32. package/dist/backoff-policies/polynomial-backoff/_module.d.ts +1 -0
  33. package/dist/backoff-policies/polynomial-backoff/_module.js +2 -0
  34. package/dist/backoff-policies/polynomial-backoff/_module.js.map +1 -0
  35. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.d.ts +68 -0
  36. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.js +59 -0
  37. package/dist/backoff-policies/polynomial-backoff/polynomial-backoff.js.map +1 -0
  38. package/dist/backoff-policies/types.d.ts +83 -0
  39. package/dist/backoff-policies/types.js +18 -0
  40. package/dist/backoff-policies/types.js.map +1 -0
  41. package/dist/cache/contracts/_module-exports.d.ts +5 -4
  42. package/dist/cache/contracts/_module-exports.js +0 -4
  43. package/dist/cache/contracts/_module-exports.js.map +1 -1
  44. package/dist/cache/contracts/_module.d.ts +7 -0
  45. package/dist/cache/contracts/_module.js +3 -0
  46. package/dist/cache/contracts/_module.js.map +1 -0
  47. package/dist/cache/contracts/cache-adapter.contract.d.ts +1 -1
  48. package/dist/cache/contracts/cache-adapter.contract.js +4 -1
  49. package/dist/cache/contracts/cache-adapter.contract.js.map +1 -1
  50. package/dist/cache/contracts/cache-factory.contract.d.ts +1 -1
  51. package/dist/cache/contracts/cache-factory.contract.js +2 -1
  52. package/dist/cache/contracts/cache-factory.contract.js.map +1 -1
  53. package/dist/cache/contracts/cache.contract.d.ts +79 -76
  54. package/dist/cache/contracts/cache.contract.js +10 -1
  55. package/dist/cache/contracts/cache.contract.js.map +1 -1
  56. package/dist/cache/contracts/cache.errors.d.ts +22 -0
  57. package/dist/cache/contracts/cache.errors.js +29 -0
  58. package/dist/cache/contracts/cache.errors.js.map +1 -1
  59. package/dist/cache/contracts/cache.events.d.ts +19 -22
  60. package/dist/cache/contracts/cache.events.js +8 -1
  61. package/dist/cache/contracts/cache.events.js.map +1 -1
  62. package/dist/cache/contracts/types.d.ts +18 -0
  63. package/dist/cache/contracts/types.js +7 -0
  64. package/dist/cache/contracts/types.js.map +1 -0
  65. package/dist/cache/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  66. package/dist/cache/implementations/adapters/_module.js.map +1 -0
  67. package/dist/cache/implementations/adapters/kysely-cache-adapter/_module-exports.d.ts +1 -0
  68. package/dist/cache/implementations/adapters/kysely-cache-adapter/_module-exports.js +2 -0
  69. package/dist/cache/implementations/adapters/kysely-cache-adapter/_module-exports.js.map +1 -0
  70. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +20 -13
  71. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +16 -8
  72. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  73. package/dist/cache/implementations/adapters/memory-cache-adapter/_module-exports.d.ts +1 -0
  74. package/dist/cache/implementations/adapters/memory-cache-adapter/_module-exports.js +2 -0
  75. package/dist/cache/implementations/adapters/memory-cache-adapter/_module-exports.js.map +1 -0
  76. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +4 -4
  77. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +4 -3
  78. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  79. package/dist/cache/implementations/adapters/mongodb-cache-adapter/_module-exports.d.ts +1 -0
  80. package/dist/cache/implementations/adapters/mongodb-cache-adapter/_module-exports.js +2 -0
  81. package/dist/cache/implementations/adapters/mongodb-cache-adapter/_module-exports.js.map +1 -0
  82. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.d.ts +1 -1
  83. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.js +1 -1
  84. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-serde.js.map +1 -1
  85. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +10 -11
  86. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +11 -8
  87. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  88. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module-exports.d.ts +1 -0
  89. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module-exports.js +2 -0
  90. package/dist/cache/implementations/adapters/no-op-cache-adapter/_module-exports.js.map +1 -0
  91. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +3 -3
  92. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +3 -2
  93. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  94. package/dist/cache/implementations/adapters/redis-cache-adapter/_module-exports.d.ts +1 -0
  95. package/dist/cache/implementations/adapters/redis-cache-adapter/_module-exports.js +2 -0
  96. package/dist/cache/implementations/adapters/redis-cache-adapter/_module-exports.js.map +1 -0
  97. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.d.ts +1 -1
  98. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.js +1 -1
  99. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-serde.js.map +1 -1
  100. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +7 -7
  101. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +9 -5
  102. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  103. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js +1 -1
  104. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js.map +1 -1
  105. package/dist/cache/implementations/derivables/_module.d.ts +2 -0
  106. package/dist/cache/implementations/derivables/_module.js +3 -0
  107. package/dist/cache/implementations/derivables/_module.js.map +1 -0
  108. package/dist/cache/implementations/derivables/cache/_module.d.ts +1 -0
  109. package/dist/cache/implementations/derivables/cache/_module.js +1 -0
  110. package/dist/cache/implementations/derivables/cache/_module.js.map +1 -1
  111. package/dist/cache/implementations/derivables/cache/cache.d.ts +53 -43
  112. package/dist/cache/implementations/derivables/cache/cache.js +148 -82
  113. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  114. package/dist/cache/implementations/derivables/cache/database-cache-adapter.d.ts +2 -2
  115. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +2 -1
  116. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
  117. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.d.ts +2 -3
  118. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js +9 -2
  119. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js.map +1 -1
  120. package/dist/cache/implementations/derivables/cache/resolve-cache-adapter.d.ts +8 -0
  121. package/dist/cache/implementations/derivables/cache/resolve-cache-adapter.js +16 -0
  122. package/dist/cache/implementations/derivables/cache/resolve-cache-adapter.js.map +1 -0
  123. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +14 -11
  124. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +19 -6
  125. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  126. package/dist/cache/implementations/test-utilities/_module.d.ts +3 -0
  127. package/dist/cache/implementations/test-utilities/_module.js +4 -0
  128. package/dist/cache/implementations/test-utilities/_module.js.map +1 -0
  129. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +4 -4
  130. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +6 -6
  131. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  132. package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +7 -3
  133. package/dist/cache/implementations/test-utilities/cache.test-suite.js +1480 -608
  134. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  135. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.d.ts +16 -9
  136. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +17 -10
  137. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  138. package/dist/circuit-breaker/contracts/_module-exports.d.ts +9 -0
  139. package/dist/circuit-breaker/contracts/_module-exports.js +6 -0
  140. package/dist/circuit-breaker/contracts/_module-exports.js.map +1 -0
  141. package/dist/circuit-breaker/contracts/_module.d.ts +9 -0
  142. package/dist/circuit-breaker/contracts/_module.js +6 -0
  143. package/dist/circuit-breaker/contracts/_module.js.map +1 -0
  144. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.d.ts +45 -0
  145. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.js +7 -0
  146. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.js.map +1 -0
  147. package/dist/circuit-breaker/contracts/circuit-breaker-policy.contract.d.ts +114 -0
  148. package/dist/circuit-breaker/contracts/circuit-breaker-policy.contract.js +41 -0
  149. package/dist/circuit-breaker/contracts/circuit-breaker-policy.contract.js.map +1 -0
  150. package/dist/circuit-breaker/contracts/circuit-breaker-provider-factory.contract.d.ts +19 -0
  151. package/dist/circuit-breaker/contracts/circuit-breaker-provider-factory.contract.js +10 -0
  152. package/dist/circuit-breaker/contracts/circuit-breaker-provider-factory.contract.js.map +1 -0
  153. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.d.ts +63 -0
  154. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js +19 -0
  155. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js.map +1 -0
  156. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.d.ts +20 -0
  157. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js +15 -0
  158. package/dist/circuit-breaker/contracts/circuit-breaker-state.contract.js.map +1 -0
  159. package/dist/circuit-breaker/contracts/circuit-breaker-storage-adapter.contract.d.ts +52 -0
  160. package/dist/circuit-breaker/contracts/circuit-breaker-storage-adapter.contract.js +5 -0
  161. package/dist/circuit-breaker/contracts/circuit-breaker-storage-adapter.contract.js.map +1 -0
  162. package/dist/circuit-breaker/contracts/circuit-breaker.contract.d.ts +40 -0
  163. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js +9 -0
  164. package/dist/circuit-breaker/contracts/circuit-breaker.contract.js.map +1 -0
  165. package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +49 -0
  166. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +61 -0
  167. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -0
  168. package/dist/circuit-breaker/contracts/circuit-breaker.events.d.ts +96 -0
  169. package/dist/circuit-breaker/contracts/circuit-breaker.events.js +20 -0
  170. package/dist/circuit-breaker/contracts/circuit-breaker.events.js.map +1 -0
  171. package/dist/circuit-breaker/implementations/adapters/_module.d.ts +7 -0
  172. package/dist/circuit-breaker/implementations/adapters/_module.js +8 -0
  173. package/dist/circuit-breaker/implementations/adapters/_module.js.map +1 -0
  174. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module-exports.d.ts +1 -0
  175. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module-exports.js +2 -0
  176. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module-exports.js.map +1 -0
  177. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module.d.ts +1 -0
  178. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module.js +2 -0
  179. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/_module.js.map +1 -0
  180. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-policy.d.ts +65 -0
  181. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-policy.js +128 -0
  182. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-policy.js.map +1 -0
  183. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-state-manager.d.ts +18 -0
  184. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-state-manager.js +57 -0
  185. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-state-manager.js.map +1 -0
  186. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-storage.d.ts +17 -0
  187. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-storage.js +40 -0
  188. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/circuit-breaker-storage.js.map +1 -0
  189. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/database-circuit-breaker-adapter.d.ts +59 -0
  190. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/database-circuit-breaker-adapter.js +57 -0
  191. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/database-circuit-breaker-adapter.js.map +1 -0
  192. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/types.d.ts +12 -0
  193. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/types.js +6 -0
  194. package/dist/circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/types.js.map +1 -0
  195. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module-exports.d.ts +1 -0
  196. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module-exports.js +2 -0
  197. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module-exports.js.map +1 -0
  198. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module.d.ts +1 -0
  199. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module.js +2 -0
  200. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/_module.js.map +1 -0
  201. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.d.ts +81 -0
  202. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js +149 -0
  203. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js.map +1 -0
  204. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module-exports.d.ts +1 -0
  205. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module-exports.js +2 -0
  206. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module-exports.js.map +1 -0
  207. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module.d.ts +1 -0
  208. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module.js +2 -0
  209. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/_module.js.map +1 -0
  210. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.d.ts +42 -0
  211. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js +60 -0
  212. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js.map +1 -0
  213. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module-exports.d.ts +1 -0
  214. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module-exports.js +2 -0
  215. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module-exports.js.map +1 -0
  216. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module.d.ts +1 -0
  217. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module.js +2 -0
  218. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/_module.js.map +1 -0
  219. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.d.ts +80 -0
  220. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js +115 -0
  221. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js.map +1 -0
  222. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module-exports.d.ts +1 -0
  223. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module-exports.js +2 -0
  224. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module-exports.js.map +1 -0
  225. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module.d.ts +1 -0
  226. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module.js +2 -0
  227. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/_module.js.map +1 -0
  228. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.d.ts +16 -0
  229. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js +32 -0
  230. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js.map +1 -0
  231. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module-exports.d.ts +1 -0
  232. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module-exports.js +2 -0
  233. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module-exports.js.map +1 -0
  234. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module.d.ts +1 -0
  235. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module.js +2 -0
  236. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/_module.js.map +1 -0
  237. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.d.ts +16 -0
  238. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js +24 -0
  239. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js.map +1 -0
  240. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module-exports.d.ts +1 -0
  241. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module-exports.js +2 -0
  242. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module-exports.js.map +1 -0
  243. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module.d.ts +1 -0
  244. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module.js +2 -0
  245. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/_module.js.map +1 -0
  246. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/_module.d.ts +1 -0
  247. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/_module.js +2 -0
  248. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/_module.js.map +1 -0
  249. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-factory-lua.d.ts +4 -0
  250. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-factory-lua.js +76 -0
  251. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-factory-lua.js.map +1 -0
  252. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-lua.d.ts +7 -0
  253. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-lua.js +34 -0
  254. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-lua.js.map +1 -0
  255. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-policy-lua.d.ts +7 -0
  256. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-policy-lua.js +144 -0
  257. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-policy-lua.js.map +1 -0
  258. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-state-manager-lua.d.ts +7 -0
  259. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-state-manager-lua.js +64 -0
  260. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-state-manager-lua.js.map +1 -0
  261. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-storage-lua.d.ts +7 -0
  262. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-storage-lua.js +39 -0
  263. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/circuit-breaker-storage-lua.js.map +1 -0
  264. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/consecutive-breaker-lua.d.ts +7 -0
  265. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/consecutive-breaker-lua.js +75 -0
  266. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/consecutive-breaker-lua.js.map +1 -0
  267. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/count-breaker-lua.d.ts +7 -0
  268. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/count-breaker-lua.js +136 -0
  269. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/count-breaker-lua.js.map +1 -0
  270. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/sampling-breaker-lua.d.ts +7 -0
  271. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/sampling-breaker-lua.js +153 -0
  272. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/lua/sampling-breaker-lua.js.map +1 -0
  273. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/redis-circuit-breaker-adapter.d.ts +68 -0
  274. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/redis-circuit-breaker-adapter.js +131 -0
  275. package/dist/circuit-breaker/implementations/adapters/redis-circuit-breaker-adapter/redis-circuit-breaker-adapter.js.map +1 -0
  276. package/dist/circuit-breaker/implementations/derivables/_module-exports.d.ts +2 -0
  277. package/dist/circuit-breaker/implementations/derivables/_module-exports.js +3 -0
  278. package/dist/circuit-breaker/implementations/derivables/_module-exports.js.map +1 -0
  279. package/dist/circuit-breaker/implementations/derivables/_module.d.ts +2 -0
  280. package/dist/circuit-breaker/implementations/derivables/_module.js +3 -0
  281. package/dist/circuit-breaker/implementations/derivables/_module.js.map +1 -0
  282. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/_module.d.ts +1 -0
  283. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/_module.js +2 -0
  284. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/_module.js.map +1 -0
  285. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +154 -0
  286. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +138 -0
  287. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -0
  288. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.d.ts +41 -0
  289. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js +77 -0
  290. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js.map +1 -0
  291. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +62 -0
  292. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +201 -0
  293. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -0
  294. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/_module.d.ts +2 -0
  295. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/_module.js +3 -0
  296. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/_module.js.map +1 -0
  297. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +108 -0
  298. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js +140 -0
  299. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -0
  300. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +137 -0
  301. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js +164 -0
  302. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -0
  303. package/dist/circuit-breaker/implementations/policies/_module-exports.d.ts +5 -0
  304. package/dist/circuit-breaker/implementations/policies/_module-exports.js +6 -0
  305. package/dist/circuit-breaker/implementations/policies/_module-exports.js.map +1 -0
  306. package/dist/circuit-breaker/implementations/policies/_module.d.ts +5 -0
  307. package/dist/circuit-breaker/implementations/policies/_module.js +6 -0
  308. package/dist/circuit-breaker/implementations/policies/_module.js.map +1 -0
  309. package/dist/circuit-breaker/implementations/policies/_shared.d.ts +12 -0
  310. package/dist/circuit-breaker/implementations/policies/_shared.js +50 -0
  311. package/dist/circuit-breaker/implementations/policies/_shared.js.map +1 -0
  312. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/_module.d.ts +1 -0
  313. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/_module.js +2 -0
  314. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/_module.js.map +1 -0
  315. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/consecutive-breaker.d.ts +51 -0
  316. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/consecutive-breaker.js +85 -0
  317. package/dist/circuit-breaker/implementations/policies/consecutive-breaker/consecutive-breaker.js.map +1 -0
  318. package/dist/circuit-breaker/implementations/policies/count-breaker/_module.d.ts +1 -0
  319. package/dist/circuit-breaker/implementations/policies/count-breaker/_module.js +2 -0
  320. package/dist/circuit-breaker/implementations/policies/count-breaker/_module.js.map +1 -0
  321. package/dist/circuit-breaker/implementations/policies/count-breaker/count-breaker.d.ts +74 -0
  322. package/dist/circuit-breaker/implementations/policies/count-breaker/count-breaker.js +130 -0
  323. package/dist/circuit-breaker/implementations/policies/count-breaker/count-breaker.js.map +1 -0
  324. package/dist/circuit-breaker/implementations/policies/sampling-breaker/_module.d.ts +1 -0
  325. package/dist/circuit-breaker/implementations/policies/sampling-breaker/_module.js +2 -0
  326. package/dist/circuit-breaker/implementations/policies/sampling-breaker/_module.js.map +1 -0
  327. package/dist/circuit-breaker/implementations/policies/sampling-breaker/sampling-breaker.d.ts +112 -0
  328. package/dist/circuit-breaker/implementations/policies/sampling-breaker/sampling-breaker.js +159 -0
  329. package/dist/circuit-breaker/implementations/policies/sampling-breaker/sampling-breaker.js.map +1 -0
  330. package/dist/circuit-breaker/implementations/policies/types.d.ts +51 -0
  331. package/dist/circuit-breaker/implementations/policies/types.js +16 -0
  332. package/dist/circuit-breaker/implementations/policies/types.js.map +1 -0
  333. package/dist/circuit-breaker/implementations/test-utilities/_module-exports.d.ts +4 -0
  334. package/dist/circuit-breaker/implementations/test-utilities/_module-exports.js +5 -0
  335. package/dist/circuit-breaker/implementations/test-utilities/_module-exports.js.map +1 -0
  336. package/dist/circuit-breaker/implementations/test-utilities/_module.d.ts +4 -0
  337. package/dist/circuit-breaker/implementations/test-utilities/_module.js +5 -0
  338. package/dist/circuit-breaker/implementations/test-utilities/_module.js.map +1 -0
  339. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.d.ts +45 -0
  340. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js +110 -0
  341. package/dist/circuit-breaker/implementations/test-utilities/circuit-breaker-storage-adapter.test-suite.js.map +1 -0
  342. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.d.ts +60 -0
  343. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js +453 -0
  344. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js.map +1 -0
  345. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.d.ts +60 -0
  346. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js +703 -0
  347. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js.map +1 -0
  348. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.d.ts +60 -0
  349. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js +94 -0
  350. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js.map +1 -0
  351. package/dist/collection/contracts/_module-exports.d.ts +3 -3
  352. package/dist/collection/contracts/_module-exports.js +0 -3
  353. package/dist/collection/contracts/_module-exports.js.map +1 -1
  354. package/dist/collection/contracts/_module.d.ts +4 -0
  355. package/dist/collection/contracts/_module.js +2 -0
  356. package/dist/collection/contracts/_module.js.map +1 -0
  357. package/dist/collection/contracts/_shared/_module.d.ts +11 -11
  358. package/dist/collection/contracts/_shared/_module.js +1 -11
  359. package/dist/collection/contracts/_shared/_module.js.map +1 -1
  360. package/dist/collection/contracts/_shared/compartor.type.d.ts +1 -1
  361. package/dist/collection/contracts/_shared/compartor.type.js +1 -1
  362. package/dist/collection/contracts/_shared/compartor.type.js.map +1 -1
  363. package/dist/collection/contracts/_shared/foreach.type.d.ts +1 -1
  364. package/dist/collection/contracts/_shared/foreach.type.js +1 -1
  365. package/dist/collection/contracts/_shared/foreach.type.js.map +1 -1
  366. package/dist/collection/contracts/_shared/map.type.d.ts +1 -1
  367. package/dist/collection/contracts/_shared/map.type.js +1 -1
  368. package/dist/collection/contracts/_shared/map.type.js.map +1 -1
  369. package/dist/collection/contracts/_shared/modifier.type.d.ts +1 -1
  370. package/dist/collection/contracts/_shared/modifier.type.js +1 -1
  371. package/dist/collection/contracts/_shared/modifier.type.js.map +1 -1
  372. package/dist/collection/contracts/_shared/predicate.type.d.ts +1 -1
  373. package/dist/collection/contracts/_shared/predicate.type.js +1 -1
  374. package/dist/collection/contracts/_shared/predicate.type.js.map +1 -1
  375. package/dist/collection/contracts/_shared/reduce.type.d.ts +1 -1
  376. package/dist/collection/contracts/_shared/reduce.type.js +1 -1
  377. package/dist/collection/contracts/_shared/reduce.type.js.map +1 -1
  378. package/dist/collection/contracts/_shared/tap.type.d.ts +1 -1
  379. package/dist/collection/contracts/_shared/tap.type.js +1 -1
  380. package/dist/collection/contracts/_shared/tap.type.js.map +1 -1
  381. package/dist/collection/contracts/_shared/transform.type.d.ts +1 -1
  382. package/dist/collection/contracts/_shared/transform.type.js +1 -1
  383. package/dist/collection/contracts/_shared/transform.type.js.map +1 -1
  384. package/dist/collection/contracts/async-collection.contract.d.ts +54 -54
  385. package/dist/collection/contracts/async-collection.contract.js +5 -1
  386. package/dist/collection/contracts/async-collection.contract.js.map +1 -1
  387. package/dist/collection/contracts/collection.contract.d.ts +12 -12
  388. package/dist/collection/contracts/collection.contract.js +5 -1
  389. package/dist/collection/contracts/collection.contract.js.map +1 -1
  390. package/dist/collection/contracts/collection.errors.d.ts +18 -10
  391. package/dist/collection/contracts/collection.errors.js +24 -13
  392. package/dist/collection/contracts/collection.errors.js.map +1 -1
  393. package/dist/collection/implementations/_module.d.ts +4 -0
  394. package/dist/collection/implementations/_module.js +5 -0
  395. package/dist/collection/implementations/_module.js.map +1 -0
  396. package/dist/collection/implementations/_shared.d.ts +0 -23
  397. package/dist/collection/implementations/_shared.js +0 -41
  398. package/dist/collection/implementations/_shared.js.map +1 -1
  399. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-iterable.d.ts +2 -2
  400. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-iterable.js +2 -2
  401. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-iterable.js.map +1 -1
  402. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-while-iterable.d.ts +2 -2
  403. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-while-iterable.js +2 -2
  404. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-while-iterable.js.map +1 -1
  405. package/dist/collection/implementations/async-iterable-collection/_shared/async-collapse-iterable.d.ts +1 -1
  406. package/dist/collection/implementations/async-iterable-collection/_shared/async-collapse-iterable.js +2 -2
  407. package/dist/collection/implementations/async-iterable-collection/_shared/async-collapse-iterable.js.map +1 -1
  408. package/dist/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.d.ts +1 -1
  409. package/dist/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.js +2 -2
  410. package/dist/collection/implementations/async-iterable-collection/_shared/async-count-by-iterable.js.map +1 -1
  411. package/dist/collection/implementations/async-iterable-collection/_shared/async-cross-join-iterable.d.ts +2 -3
  412. package/dist/collection/implementations/async-iterable-collection/_shared/async-cross-join-iterable.js +3 -4
  413. package/dist/collection/implementations/async-iterable-collection/_shared/async-cross-join-iterable.js.map +1 -1
  414. package/dist/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.d.ts +1 -1
  415. package/dist/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.js +2 -2
  416. package/dist/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.js.map +1 -1
  417. package/dist/collection/implementations/async-iterable-collection/_shared/async-filter-iterable.d.ts +1 -1
  418. package/dist/collection/implementations/async-iterable-collection/_shared/async-filter-iterable.js +2 -2
  419. package/dist/collection/implementations/async-iterable-collection/_shared/async-filter-iterable.js.map +1 -1
  420. package/dist/collection/implementations/async-iterable-collection/_shared/async-flat-map-iterable.d.ts +1 -1
  421. package/dist/collection/implementations/async-iterable-collection/_shared/async-flat-map-iterable.js +2 -2
  422. package/dist/collection/implementations/async-iterable-collection/_shared/async-flat-map-iterable.js.map +1 -1
  423. package/dist/collection/implementations/async-iterable-collection/_shared/async-group-by-iterable.d.ts +2 -2
  424. package/dist/collection/implementations/async-iterable-collection/_shared/async-group-by-iterable.js +2 -2
  425. package/dist/collection/implementations/async-iterable-collection/_shared/async-group-by-iterable.js.map +1 -1
  426. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-after-iterable.d.ts +2 -2
  427. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-after-iterable.js +3 -3
  428. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-after-iterable.js.map +1 -1
  429. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-before-iterable.d.ts +2 -2
  430. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-before-iterable.js +3 -3
  431. package/dist/collection/implementations/async-iterable-collection/_shared/async-insert-before-iterable.js.map +1 -1
  432. package/dist/collection/implementations/async-iterable-collection/_shared/async-map-iterable.d.ts +1 -1
  433. package/dist/collection/implementations/async-iterable-collection/_shared/async-map-iterable.js +2 -2
  434. package/dist/collection/implementations/async-iterable-collection/_shared/async-map-iterable.js.map +1 -1
  435. package/dist/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.d.ts +1 -1
  436. package/dist/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +4 -5
  437. package/dist/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  438. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-end-iterable.d.ts +2 -2
  439. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-end-iterable.js +2 -2
  440. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-end-iterable.js.map +1 -1
  441. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-start-iterable.d.ts +2 -2
  442. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-start-iterable.js +2 -2
  443. package/dist/collection/implementations/async-iterable-collection/_shared/async-pad-start-iterable.js.map +1 -1
  444. package/dist/collection/implementations/async-iterable-collection/_shared/async-partion-iterable.d.ts +2 -2
  445. package/dist/collection/implementations/async-iterable-collection/_shared/async-partion-iterable.js +2 -2
  446. package/dist/collection/implementations/async-iterable-collection/_shared/async-partion-iterable.js.map +1 -1
  447. package/dist/collection/implementations/async-iterable-collection/_shared/async-repeat-iterable.d.ts +2 -2
  448. package/dist/collection/implementations/async-iterable-collection/_shared/async-repeat-iterable.js +2 -2
  449. package/dist/collection/implementations/async-iterable-collection/_shared/async-repeat-iterable.js.map +1 -1
  450. package/dist/collection/implementations/async-iterable-collection/_shared/async-reverse-iterable.d.ts +2 -2
  451. package/dist/collection/implementations/async-iterable-collection/_shared/async-reverse-iterable.js +2 -2
  452. package/dist/collection/implementations/async-iterable-collection/_shared/async-reverse-iterable.js.map +1 -1
  453. package/dist/collection/implementations/async-iterable-collection/_shared/async-shuffle-iterable.d.ts +1 -1
  454. package/dist/collection/implementations/async-iterable-collection/_shared/async-shuffle-iterable.js +1 -1
  455. package/dist/collection/implementations/async-iterable-collection/_shared/async-shuffle-iterable.js.map +1 -1
  456. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-iterable.d.ts +1 -1
  457. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-iterable.js +1 -1
  458. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-iterable.js.map +1 -1
  459. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-until-iterable.d.ts +1 -1
  460. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-until-iterable.js +2 -2
  461. package/dist/collection/implementations/async-iterable-collection/_shared/async-skip-until-iterable.js.map +1 -1
  462. package/dist/collection/implementations/async-iterable-collection/_shared/async-slice-iterable.d.ts +1 -1
  463. package/dist/collection/implementations/async-iterable-collection/_shared/async-slice-iterable.js +1 -1
  464. package/dist/collection/implementations/async-iterable-collection/_shared/async-slice-iterable.js.map +1 -1
  465. package/dist/collection/implementations/async-iterable-collection/_shared/async-sliding-iterable.d.ts +1 -1
  466. package/dist/collection/implementations/async-iterable-collection/_shared/async-sliding-iterable.js +1 -1
  467. package/dist/collection/implementations/async-iterable-collection/_shared/async-sliding-iterable.js.map +1 -1
  468. package/dist/collection/implementations/async-iterable-collection/_shared/async-sort-iterable.d.ts +1 -1
  469. package/dist/collection/implementations/async-iterable-collection/_shared/async-sort-iterable.js +2 -2
  470. package/dist/collection/implementations/async-iterable-collection/_shared/async-sort-iterable.js.map +1 -1
  471. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.d.ts +2 -2
  472. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js +2 -2
  473. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  474. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-iterable.d.ts +1 -1
  475. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-iterable.js +1 -1
  476. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-iterable.js.map +1 -1
  477. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-until-iterable.d.ts +1 -1
  478. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-until-iterable.js +2 -2
  479. package/dist/collection/implementations/async-iterable-collection/_shared/async-take-until-iterable.js.map +1 -1
  480. package/dist/collection/implementations/async-iterable-collection/_shared/async-tap-iterable.d.ts +1 -1
  481. package/dist/collection/implementations/async-iterable-collection/_shared/async-tap-iterable.js +2 -2
  482. package/dist/collection/implementations/async-iterable-collection/_shared/async-tap-iterable.js.map +1 -1
  483. package/dist/collection/implementations/async-iterable-collection/_shared/async-unique-iterable.d.ts +1 -1
  484. package/dist/collection/implementations/async-iterable-collection/_shared/async-unique-iterable.js +2 -2
  485. package/dist/collection/implementations/async-iterable-collection/_shared/async-unique-iterable.js.map +1 -1
  486. package/dist/collection/implementations/async-iterable-collection/_shared/async-update-iterable.d.ts +1 -1
  487. package/dist/collection/implementations/async-iterable-collection/_shared/async-update-iterable.js +2 -2
  488. package/dist/collection/implementations/async-iterable-collection/_shared/async-update-iterable.js.map +1 -1
  489. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.d.ts +1 -1
  490. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js +4 -0
  491. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js.map +1 -1
  492. package/dist/collection/implementations/async-iterable-collection/_shared/async-when-iterable.d.ts +1 -1
  493. package/dist/collection/implementations/async-iterable-collection/_shared/async-when-iterable.js +2 -2
  494. package/dist/collection/implementations/async-iterable-collection/_shared/async-when-iterable.js.map +1 -1
  495. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.d.ts +1 -1
  496. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js +3 -16
  497. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  498. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +43 -44
  499. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +32 -32
  500. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  501. package/dist/collection/implementations/iterable-collection/_shared/chunk-iterable.d.ts +1 -1
  502. package/dist/collection/implementations/iterable-collection/_shared/chunk-iterable.js +1 -1
  503. package/dist/collection/implementations/iterable-collection/_shared/chunk-iterable.js.map +1 -1
  504. package/dist/collection/implementations/iterable-collection/_shared/chunk-while-iterable.d.ts +1 -1
  505. package/dist/collection/implementations/iterable-collection/_shared/chunk-while-iterable.js +2 -2
  506. package/dist/collection/implementations/iterable-collection/_shared/chunk-while-iterable.js.map +1 -1
  507. package/dist/collection/implementations/iterable-collection/_shared/collapse-iterable.d.ts +1 -1
  508. package/dist/collection/implementations/iterable-collection/_shared/collapse-iterable.js +2 -2
  509. package/dist/collection/implementations/iterable-collection/_shared/collapse-iterable.js.map +1 -1
  510. package/dist/collection/implementations/iterable-collection/_shared/count-by-iterable.d.ts +1 -1
  511. package/dist/collection/implementations/iterable-collection/_shared/count-by-iterable.js +2 -2
  512. package/dist/collection/implementations/iterable-collection/_shared/count-by-iterable.js.map +1 -1
  513. package/dist/collection/implementations/iterable-collection/_shared/cross-join-iterable.d.ts +1 -1
  514. package/dist/collection/implementations/iterable-collection/_shared/cross-join-iterable.js +2 -1
  515. package/dist/collection/implementations/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  516. package/dist/collection/implementations/iterable-collection/_shared/filter-iterable.d.ts +1 -1
  517. package/dist/collection/implementations/iterable-collection/_shared/filter-iterable.js +2 -2
  518. package/dist/collection/implementations/iterable-collection/_shared/filter-iterable.js.map +1 -1
  519. package/dist/collection/implementations/iterable-collection/_shared/flat-map-iterable.d.ts +1 -1
  520. package/dist/collection/implementations/iterable-collection/_shared/flat-map-iterable.js +2 -2
  521. package/dist/collection/implementations/iterable-collection/_shared/flat-map-iterable.js.map +1 -1
  522. package/dist/collection/implementations/iterable-collection/_shared/group-by-iterable.d.ts +1 -1
  523. package/dist/collection/implementations/iterable-collection/_shared/group-by-iterable.js +2 -2
  524. package/dist/collection/implementations/iterable-collection/_shared/group-by-iterable.js.map +1 -1
  525. package/dist/collection/implementations/iterable-collection/_shared/insert-after-iterable.d.ts +1 -1
  526. package/dist/collection/implementations/iterable-collection/_shared/insert-after-iterable.js +2 -2
  527. package/dist/collection/implementations/iterable-collection/_shared/insert-after-iterable.js.map +1 -1
  528. package/dist/collection/implementations/iterable-collection/_shared/insert-before-iterable.d.ts +1 -1
  529. package/dist/collection/implementations/iterable-collection/_shared/insert-before-iterable.js +2 -2
  530. package/dist/collection/implementations/iterable-collection/_shared/insert-before-iterable.js.map +1 -1
  531. package/dist/collection/implementations/iterable-collection/_shared/map-iterable.d.ts +1 -1
  532. package/dist/collection/implementations/iterable-collection/_shared/map-iterable.js +2 -2
  533. package/dist/collection/implementations/iterable-collection/_shared/map-iterable.js.map +1 -1
  534. package/dist/collection/implementations/iterable-collection/_shared/merge-iterable.d.ts +2 -1
  535. package/dist/collection/implementations/iterable-collection/_shared/merge-iterable.js +3 -2
  536. package/dist/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  537. package/dist/collection/implementations/iterable-collection/_shared/pad-end-iterable.d.ts +1 -1
  538. package/dist/collection/implementations/iterable-collection/_shared/pad-end-iterable.js +1 -1
  539. package/dist/collection/implementations/iterable-collection/_shared/pad-end-iterable.js.map +1 -1
  540. package/dist/collection/implementations/iterable-collection/_shared/pad-start-iterable.d.ts +1 -1
  541. package/dist/collection/implementations/iterable-collection/_shared/pad-start-iterable.js +1 -1
  542. package/dist/collection/implementations/iterable-collection/_shared/pad-start-iterable.js.map +1 -1
  543. package/dist/collection/implementations/iterable-collection/_shared/partion-iterable.d.ts +1 -1
  544. package/dist/collection/implementations/iterable-collection/_shared/partion-iterable.js +2 -2
  545. package/dist/collection/implementations/iterable-collection/_shared/partion-iterable.js.map +1 -1
  546. package/dist/collection/implementations/iterable-collection/_shared/repeat-iterable.d.ts +1 -1
  547. package/dist/collection/implementations/iterable-collection/_shared/repeat-iterable.js +1 -1
  548. package/dist/collection/implementations/iterable-collection/_shared/repeat-iterable.js.map +1 -1
  549. package/dist/collection/implementations/iterable-collection/_shared/reverse-iterable.d.ts +1 -1
  550. package/dist/collection/implementations/iterable-collection/_shared/reverse-iterable.js +1 -1
  551. package/dist/collection/implementations/iterable-collection/_shared/reverse-iterable.js.map +1 -1
  552. package/dist/collection/implementations/iterable-collection/_shared/skip-iterable.d.ts +1 -1
  553. package/dist/collection/implementations/iterable-collection/_shared/skip-iterable.js +1 -1
  554. package/dist/collection/implementations/iterable-collection/_shared/skip-iterable.js.map +1 -1
  555. package/dist/collection/implementations/iterable-collection/_shared/skip-until-iterable.d.ts +1 -1
  556. package/dist/collection/implementations/iterable-collection/_shared/skip-until-iterable.js +2 -2
  557. package/dist/collection/implementations/iterable-collection/_shared/skip-until-iterable.js.map +1 -1
  558. package/dist/collection/implementations/iterable-collection/_shared/slice-iterable.d.ts +1 -1
  559. package/dist/collection/implementations/iterable-collection/_shared/slice-iterable.js +1 -1
  560. package/dist/collection/implementations/iterable-collection/_shared/slice-iterable.js.map +1 -1
  561. package/dist/collection/implementations/iterable-collection/_shared/sliding-iterable.d.ts +1 -1
  562. package/dist/collection/implementations/iterable-collection/_shared/sliding-iterable.js +1 -1
  563. package/dist/collection/implementations/iterable-collection/_shared/sliding-iterable.js.map +1 -1
  564. package/dist/collection/implementations/iterable-collection/_shared/sort-iterable.d.ts +1 -1
  565. package/dist/collection/implementations/iterable-collection/_shared/sort-iterable.js +2 -2
  566. package/dist/collection/implementations/iterable-collection/_shared/sort-iterable.js.map +1 -1
  567. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.d.ts +1 -1
  568. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js +1 -1
  569. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js.map +1 -1
  570. package/dist/collection/implementations/iterable-collection/_shared/take-iterable.d.ts +1 -1
  571. package/dist/collection/implementations/iterable-collection/_shared/take-iterable.js +1 -1
  572. package/dist/collection/implementations/iterable-collection/_shared/take-iterable.js.map +1 -1
  573. package/dist/collection/implementations/iterable-collection/_shared/take-until-iterable.d.ts +1 -1
  574. package/dist/collection/implementations/iterable-collection/_shared/take-until-iterable.js +2 -2
  575. package/dist/collection/implementations/iterable-collection/_shared/take-until-iterable.js.map +1 -1
  576. package/dist/collection/implementations/iterable-collection/_shared/tap-iterable.d.ts +1 -1
  577. package/dist/collection/implementations/iterable-collection/_shared/tap-iterable.js +2 -2
  578. package/dist/collection/implementations/iterable-collection/_shared/tap-iterable.js.map +1 -1
  579. package/dist/collection/implementations/iterable-collection/_shared/unique-iterable.d.ts +1 -1
  580. package/dist/collection/implementations/iterable-collection/_shared/unique-iterable.js +2 -2
  581. package/dist/collection/implementations/iterable-collection/_shared/unique-iterable.js.map +1 -1
  582. package/dist/collection/implementations/iterable-collection/_shared/update-iterable.d.ts +1 -1
  583. package/dist/collection/implementations/iterable-collection/_shared/update-iterable.js +2 -2
  584. package/dist/collection/implementations/iterable-collection/_shared/update-iterable.js.map +1 -1
  585. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.d.ts +4 -1
  586. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js +2 -1
  587. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js.map +1 -1
  588. package/dist/collection/implementations/iterable-collection/_shared/when-iterable.d.ts +1 -1
  589. package/dist/collection/implementations/iterable-collection/_shared/when-iterable.js +2 -2
  590. package/dist/collection/implementations/iterable-collection/_shared/when-iterable.js.map +1 -1
  591. package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +17 -18
  592. package/dist/collection/implementations/iterable-collection/iterable-collection.js +39 -40
  593. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  594. package/dist/collection/implementations/list-collection/list-collection.d.ts +16 -17
  595. package/dist/collection/implementations/list-collection/list-collection.js +45 -41
  596. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  597. package/dist/event-bus/contracts/_module-exports.d.ts +3 -3
  598. package/dist/event-bus/contracts/_module-exports.js +1 -3
  599. package/dist/event-bus/contracts/_module-exports.js.map +1 -1
  600. package/dist/event-bus/contracts/_module.d.ts +3 -0
  601. package/dist/event-bus/contracts/_module.js +2 -0
  602. package/dist/event-bus/contracts/_module.js.map +1 -0
  603. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +21 -8
  604. package/dist/event-bus/contracts/event-bus-adapter.contract.js +1 -1
  605. package/dist/event-bus/contracts/event-bus-adapter.contract.js.map +1 -1
  606. package/dist/event-bus/contracts/event-bus-factory.contract.d.ts +1 -1
  607. package/dist/event-bus/contracts/event-bus-factory.contract.js +2 -1
  608. package/dist/event-bus/contracts/event-bus-factory.contract.js.map +1 -1
  609. package/dist/event-bus/contracts/event-bus.contract.d.ts +12 -12
  610. package/dist/event-bus/contracts/event-bus.contract.js +3 -1
  611. package/dist/event-bus/contracts/event-bus.contract.js.map +1 -1
  612. package/dist/event-bus/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  613. package/dist/event-bus/implementations/adapters/_module.js.map +1 -0
  614. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/_module-exports.d.ts +1 -0
  615. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/_module-exports.js +2 -0
  616. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/_module-exports.js.map +1 -0
  617. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +4 -4
  618. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +4 -3
  619. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  620. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/_module-exports.d.ts +1 -0
  621. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/_module-exports.js +2 -0
  622. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/_module-exports.js.map +1 -0
  623. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +2 -3
  624. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +2 -1
  625. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  626. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module-exports.d.ts +1 -0
  627. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module-exports.js +2 -0
  628. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module-exports.js.map +1 -0
  629. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +7 -7
  630. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +8 -6
  631. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  632. package/dist/event-bus/implementations/derivables/_module.d.ts +2 -0
  633. package/dist/event-bus/implementations/derivables/_module.js +3 -0
  634. package/dist/event-bus/implementations/derivables/_module.js.map +1 -0
  635. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +12 -14
  636. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +8 -7
  637. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  638. package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +1 -1
  639. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +2 -1
  640. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -1
  641. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +9 -7
  642. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +10 -7
  643. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  644. package/dist/event-bus/implementations/test-utilities/_module.d.ts +2 -0
  645. package/dist/event-bus/implementations/test-utilities/_module.js +3 -0
  646. package/dist/event-bus/implementations/test-utilities/_module.js.map +1 -0
  647. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.d.ts +2 -2
  648. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +4 -3
  649. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  650. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.d.ts +2 -2
  651. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +6 -6
  652. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  653. package/dist/hooks/_module-exports.d.ts +1 -1
  654. package/dist/hooks/_module-exports.js +0 -1
  655. package/dist/hooks/_module-exports.js.map +1 -1
  656. package/dist/hooks/_module.d.ts +3 -0
  657. package/dist/hooks/_module.js +3 -0
  658. package/dist/hooks/_module.js.map +1 -0
  659. package/dist/hooks/async-hooks.d.ts +3 -3
  660. package/dist/hooks/async-hooks.js +8 -5
  661. package/dist/hooks/async-hooks.js.map +1 -1
  662. package/dist/hooks/hooks.d.ts +2 -2
  663. package/dist/hooks/hooks.js +2 -1
  664. package/dist/hooks/hooks.js.map +1 -1
  665. package/dist/lock/contracts/_module-exports.d.ts +6 -6
  666. package/dist/lock/contracts/_module-exports.js +0 -6
  667. package/dist/lock/contracts/_module-exports.js.map +1 -1
  668. package/dist/lock/contracts/_module.d.ts +9 -0
  669. package/dist/lock/contracts/_module.js +4 -0
  670. package/dist/lock/contracts/_module.js.map +1 -0
  671. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +8 -3
  672. package/dist/lock/contracts/database-lock-adapter.contract.js +1 -1
  673. package/dist/lock/contracts/database-lock-adapter.contract.js.map +1 -1
  674. package/dist/lock/contracts/lock-adapter.contract.d.ts +1 -1
  675. package/dist/lock/contracts/lock-adapter.contract.js +3 -1
  676. package/dist/lock/contracts/lock-adapter.contract.js.map +1 -1
  677. package/dist/lock/contracts/lock-provider-factory.contract.d.ts +1 -1
  678. package/dist/lock/contracts/lock-provider-factory.contract.js +2 -1
  679. package/dist/lock/contracts/lock-provider-factory.contract.js.map +1 -1
  680. package/dist/lock/contracts/lock-provider.contract.d.ts +4 -8
  681. package/dist/lock/contracts/lock-provider.contract.js +4 -1
  682. package/dist/lock/contracts/lock-provider.contract.js.map +1 -1
  683. package/dist/lock/contracts/lock-state.contract.d.ts +2 -2
  684. package/dist/lock/contracts/lock-state.contract.js +1 -0
  685. package/dist/lock/contracts/lock-state.contract.js.map +1 -1
  686. package/dist/lock/contracts/lock.contract.d.ts +18 -27
  687. package/dist/lock/contracts/lock.contract.js +5 -1
  688. package/dist/lock/contracts/lock.contract.js.map +1 -1
  689. package/dist/lock/contracts/lock.errors.d.ts +19 -0
  690. package/dist/lock/contracts/lock.errors.js +25 -0
  691. package/dist/lock/contracts/lock.errors.js.map +1 -1
  692. package/dist/lock/contracts/lock.events.d.ts +1 -1
  693. package/dist/lock/contracts/lock.events.js +2 -0
  694. package/dist/lock/contracts/lock.events.js.map +1 -1
  695. package/dist/lock/contracts/types.d.ts +2 -2
  696. package/dist/lock/contracts/types.js +2 -1
  697. package/dist/lock/contracts/types.js.map +1 -1
  698. package/dist/lock/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  699. package/dist/lock/implementations/adapters/_module.js.map +1 -0
  700. package/dist/lock/implementations/adapters/kysely-lock-adapter/_module-exports.d.ts +1 -0
  701. package/dist/lock/implementations/adapters/kysely-lock-adapter/_module-exports.js +2 -0
  702. package/dist/lock/implementations/adapters/kysely-lock-adapter/_module-exports.js.map +1 -0
  703. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +13 -18
  704. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +11 -10
  705. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  706. package/dist/lock/implementations/adapters/memory-lock-adapter/_module-exports.d.ts +1 -0
  707. package/dist/lock/implementations/adapters/memory-lock-adapter/_module-exports.js +2 -0
  708. package/dist/lock/implementations/adapters/memory-lock-adapter/_module-exports.js.map +1 -0
  709. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +11 -8
  710. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +10 -4
  711. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  712. package/dist/lock/implementations/adapters/mongodb-lock-adapter/_module-exports.d.ts +1 -0
  713. package/dist/lock/implementations/adapters/mongodb-lock-adapter/_module-exports.js +2 -0
  714. package/dist/lock/implementations/adapters/mongodb-lock-adapter/_module-exports.js.map +1 -0
  715. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +8 -9
  716. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +6 -3
  717. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  718. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module-exports.d.ts +1 -0
  719. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module-exports.js +2 -0
  720. package/dist/lock/implementations/adapters/no-op-lock-adapter/_module-exports.js.map +1 -0
  721. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +3 -3
  722. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +3 -1
  723. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -1
  724. package/dist/lock/implementations/adapters/redis-lock-adapter/_module-exports.d.ts +1 -0
  725. package/dist/lock/implementations/adapters/redis-lock-adapter/_module-exports.js +2 -0
  726. package/dist/lock/implementations/adapters/redis-lock-adapter/_module-exports.js.map +1 -0
  727. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +5 -6
  728. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +5 -2
  729. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  730. package/dist/lock/implementations/derivables/_module.d.ts +2 -0
  731. package/dist/lock/implementations/derivables/_module.js +3 -0
  732. package/dist/lock/implementations/derivables/_module.js.map +1 -0
  733. package/dist/lock/implementations/derivables/lock-provider/_module.d.ts +1 -0
  734. package/dist/lock/implementations/derivables/lock-provider/_module.js +1 -0
  735. package/dist/lock/implementations/derivables/lock-provider/_module.js.map +1 -1
  736. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +2 -2
  737. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +5 -3
  738. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  739. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.d.ts +1 -2
  740. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js +4 -0
  741. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +1 -1
  742. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +40 -25
  743. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +30 -21
  744. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  745. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +6 -6
  746. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +6 -2
  747. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  748. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +19 -23
  749. package/dist/lock/implementations/derivables/lock-provider/lock.js +13 -37
  750. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  751. package/dist/lock/implementations/derivables/lock-provider/resolve-lock-adapter.d.ts +8 -0
  752. package/dist/lock/implementations/derivables/lock-provider/{resolve-database-lock-adapter.js → resolve-lock-adapter.js} +7 -3
  753. package/dist/lock/implementations/derivables/lock-provider/resolve-lock-adapter.js.map +1 -0
  754. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +12 -12
  755. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +15 -8
  756. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  757. package/dist/lock/implementations/test-utilities/_module.d.ts +3 -0
  758. package/dist/lock/implementations/test-utilities/_module.js +4 -0
  759. package/dist/lock/implementations/test-utilities/_module.js.map +1 -0
  760. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.d.ts +17 -12
  761. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +19 -14
  762. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  763. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +3 -3
  764. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +5 -5
  765. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  766. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +6 -6
  767. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +9 -544
  768. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  769. package/dist/namespace/_module.d.ts +1 -0
  770. package/dist/namespace/_module.js +2 -0
  771. package/dist/namespace/_module.js.map +1 -0
  772. package/dist/namespace/namespace.d.ts +1 -1
  773. package/dist/namespace/namespace.js +1 -1
  774. package/dist/namespace/namespace.js.map +1 -1
  775. package/dist/rate-limiter/contracts/_module-exports.d.ts +9 -0
  776. package/dist/rate-limiter/contracts/_module-exports.js +4 -0
  777. package/dist/rate-limiter/contracts/_module-exports.js.map +1 -0
  778. package/dist/rate-limiter/contracts/_module.d.ts +9 -0
  779. package/dist/rate-limiter/contracts/_module.js +4 -0
  780. package/dist/rate-limiter/contracts/_module.js.map +1 -0
  781. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.d.ts +36 -0
  782. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.js +7 -0
  783. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.js.map +1 -0
  784. package/dist/rate-limiter/contracts/rate-limiter-policy.contract.d.ts +28 -0
  785. package/dist/rate-limiter/contracts/rate-limiter-policy.contract.js +5 -0
  786. package/dist/rate-limiter/contracts/rate-limiter-policy.contract.js.map +1 -0
  787. package/dist/rate-limiter/contracts/rate-limiter-provider-factory.contract.d.ts +19 -0
  788. package/dist/rate-limiter/contracts/rate-limiter-provider-factory.contract.js +10 -0
  789. package/dist/rate-limiter/contracts/rate-limiter-provider-factory.contract.js.map +1 -0
  790. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.d.ts +39 -0
  791. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.js +8 -0
  792. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.js.map +1 -0
  793. package/dist/rate-limiter/contracts/rate-limiter-state.contract.d.ts +48 -0
  794. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js +14 -0
  795. package/dist/rate-limiter/contracts/rate-limiter-state.contract.js.map +1 -0
  796. package/dist/rate-limiter/contracts/rate-limiter-storage-adapter.contract.d.ts +65 -0
  797. package/dist/rate-limiter/contracts/rate-limiter-storage-adapter.contract.js +5 -0
  798. package/dist/rate-limiter/contracts/rate-limiter-storage-adapter.contract.js.map +1 -0
  799. package/dist/rate-limiter/contracts/rate-limiter.contract.d.ts +46 -0
  800. package/dist/rate-limiter/contracts/rate-limiter.contract.js +10 -0
  801. package/dist/rate-limiter/contracts/rate-limiter.contract.js.map +1 -0
  802. package/dist/rate-limiter/contracts/rate-limiter.errors.d.ts +34 -0
  803. package/dist/rate-limiter/contracts/rate-limiter.errors.js +40 -0
  804. package/dist/rate-limiter/contracts/rate-limiter.errors.js.map +1 -0
  805. package/dist/rate-limiter/contracts/rate-limiter.events.d.ts +74 -0
  806. package/dist/rate-limiter/contracts/rate-limiter.events.js +17 -0
  807. package/dist/rate-limiter/contracts/rate-limiter.events.js.map +1 -0
  808. package/dist/rate-limiter/implementations/adapters/_module.d.ts +7 -0
  809. package/dist/rate-limiter/implementations/adapters/_module.js +8 -0
  810. package/dist/rate-limiter/implementations/adapters/_module.js.map +1 -0
  811. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module-exports.d.ts +1 -0
  812. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module-exports.js +2 -0
  813. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module-exports.js.map +1 -0
  814. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module.d.ts +1 -0
  815. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module.js +2 -0
  816. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module.js.map +1 -0
  817. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/database-rate-limiter-adapter.d.ts +56 -0
  818. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/database-rate-limiter-adapter.js +75 -0
  819. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/database-rate-limiter-adapter.js.map +1 -0
  820. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-policy.d.ts +48 -0
  821. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-policy.js +69 -0
  822. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-policy.js.map +1 -0
  823. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-state-manager.d.ts +15 -0
  824. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-state-manager.js +33 -0
  825. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-state-manager.js.map +1 -0
  826. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-storage.d.ts +45 -0
  827. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-storage.js +59 -0
  828. package/dist/rate-limiter/implementations/adapters/database-rate-limiter-adapter/rate-limiter-storage.js.map +1 -0
  829. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module-exports.d.ts +1 -0
  830. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module-exports.js +2 -0
  831. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module-exports.js.map +1 -0
  832. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module.d.ts +1 -0
  833. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module.js +2 -0
  834. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/_module.js.map +1 -0
  835. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.d.ts +95 -0
  836. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.js +186 -0
  837. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.js.map +1 -0
  838. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module-exports.d.ts +1 -0
  839. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module-exports.js +2 -0
  840. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module-exports.js.map +1 -0
  841. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module.d.ts +1 -0
  842. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module.js +2 -0
  843. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/_module.js.map +1 -0
  844. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.d.ts +37 -0
  845. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js +71 -0
  846. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js.map +1 -0
  847. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module-exports.d.ts +1 -0
  848. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module-exports.js +2 -0
  849. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module-exports.js.map +1 -0
  850. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module.d.ts +1 -0
  851. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module.js +2 -0
  852. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/_module.js.map +1 -0
  853. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.d.ts +77 -0
  854. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js +126 -0
  855. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js.map +1 -0
  856. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module-exports.d.ts +1 -0
  857. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module-exports.js +2 -0
  858. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module-exports.js.map +1 -0
  859. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module.d.ts +1 -0
  860. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module.js +2 -0
  861. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/_module.js.map +1 -0
  862. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.d.ts +13 -0
  863. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js +29 -0
  864. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js.map +1 -0
  865. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module-exports.d.ts +1 -0
  866. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module-exports.js +2 -0
  867. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module-exports.js.map +1 -0
  868. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module.d.ts +1 -0
  869. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module.js +2 -0
  870. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/_module.js.map +1 -0
  871. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.d.ts +16 -0
  872. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js +33 -0
  873. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js.map +1 -0
  874. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module-exports.d.ts +1 -0
  875. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module-exports.js +2 -0
  876. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module-exports.js.map +1 -0
  877. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module.d.ts +1 -0
  878. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module.js +2 -0
  879. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/_module.js.map +1 -0
  880. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/_module.d.ts +1 -0
  881. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/_module.js +2 -0
  882. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/_module.js.map +1 -0
  883. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/fixed-window-limiter-lua.d.ts +7 -0
  884. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/fixed-window-limiter-lua.js +55 -0
  885. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/fixed-window-limiter-lua.js.map +1 -0
  886. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-factory-lua.d.ts +4 -0
  887. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-factory-lua.js +71 -0
  888. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-factory-lua.js.map +1 -0
  889. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-lua.d.ts +4 -0
  890. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-lua.js +29 -0
  891. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-lua.js.map +1 -0
  892. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-policy-lua.d.ts +7 -0
  893. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-policy-lua.js +82 -0
  894. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-policy-lua.js.map +1 -0
  895. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-state-manager-lua.d.ts +7 -0
  896. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-state-manager-lua.js +51 -0
  897. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-state-manager-lua.js.map +1 -0
  898. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-storage-lua.d.ts +7 -0
  899. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-storage-lua.js +59 -0
  900. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/rate-limiter-storage-lua.js.map +1 -0
  901. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/sliding-window-limiter-lua.d.ts +7 -0
  902. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/sliding-window-limiter-lua.js +113 -0
  903. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/lua/sliding-window-limiter-lua.js.map +1 -0
  904. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/redis-rate-limiter-adapter.d.ts +64 -0
  905. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/redis-rate-limiter-adapter.js +95 -0
  906. package/dist/rate-limiter/implementations/adapters/redis-rate-limiter-adapter/redis-rate-limiter-adapter.js.map +1 -0
  907. package/dist/rate-limiter/implementations/derivables/_module-exports.d.ts +2 -0
  908. package/dist/rate-limiter/implementations/derivables/_module-exports.js +3 -0
  909. package/dist/rate-limiter/implementations/derivables/_module-exports.js.map +1 -0
  910. package/dist/rate-limiter/implementations/derivables/_module.d.ts +2 -0
  911. package/dist/rate-limiter/implementations/derivables/_module.js +3 -0
  912. package/dist/rate-limiter/implementations/derivables/_module.js.map +1 -0
  913. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/_module.d.ts +1 -0
  914. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/_module.js +2 -0
  915. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/_module.js.map +1 -0
  916. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +114 -0
  917. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +104 -0
  918. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -0
  919. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +41 -0
  920. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +160 -0
  921. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -0
  922. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/_module.d.ts +2 -0
  923. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/_module.js +3 -0
  924. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/_module.js.map +1 -0
  925. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +135 -0
  926. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js +156 -0
  927. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -0
  928. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +106 -0
  929. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js +132 -0
  930. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -0
  931. package/dist/rate-limiter/implementations/policies/_module-exports.d.ts +4 -0
  932. package/dist/rate-limiter/implementations/policies/_module-exports.js +5 -0
  933. package/dist/rate-limiter/implementations/policies/_module-exports.js.map +1 -0
  934. package/dist/rate-limiter/implementations/policies/_module.d.ts +4 -0
  935. package/dist/rate-limiter/implementations/policies/_module.js +5 -0
  936. package/dist/rate-limiter/implementations/policies/_module.js.map +1 -0
  937. package/dist/rate-limiter/implementations/policies/_shared.d.ts +12 -0
  938. package/dist/rate-limiter/implementations/policies/_shared.js +37 -0
  939. package/dist/rate-limiter/implementations/policies/_shared.js.map +1 -0
  940. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/_module.d.ts +1 -0
  941. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/_module.js +2 -0
  942. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/_module.js.map +1 -0
  943. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/fixed-window-limiter.d.ts +74 -0
  944. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/fixed-window-limiter.js +73 -0
  945. package/dist/rate-limiter/implementations/policies/fixed-window-limiter/fixed-window-limiter.js.map +1 -0
  946. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/_module.d.ts +1 -0
  947. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/_module.js +2 -0
  948. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/_module.js.map +1 -0
  949. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/sliding-window-limiter.d.ts +86 -0
  950. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/sliding-window-limiter.js +106 -0
  951. package/dist/rate-limiter/implementations/policies/sliding-window-limiter/sliding-window-limiter.js.map +1 -0
  952. package/dist/rate-limiter/implementations/policies/types.d.ts +47 -0
  953. package/dist/rate-limiter/implementations/policies/types.js +14 -0
  954. package/dist/rate-limiter/implementations/policies/types.js.map +1 -0
  955. package/dist/rate-limiter/implementations/test-utilities/_module-exports.d.ts +3 -0
  956. package/dist/rate-limiter/implementations/test-utilities/_module-exports.js +4 -0
  957. package/dist/rate-limiter/implementations/test-utilities/_module-exports.js.map +1 -0
  958. package/dist/rate-limiter/implementations/test-utilities/_module.d.ts +3 -0
  959. package/dist/rate-limiter/implementations/test-utilities/_module.js +4 -0
  960. package/dist/rate-limiter/implementations/test-utilities/_module.js.map +1 -0
  961. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.d.ts +60 -0
  962. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js +90 -0
  963. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js.map +1 -0
  964. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.d.ts +45 -0
  965. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js +102 -0
  966. package/dist/rate-limiter/implementations/test-utilities/rate-limiter-storage-adapter.test-suite.js.map +1 -0
  967. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.d.ts +60 -0
  968. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js +91 -0
  969. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js.map +1 -0
  970. package/dist/resilience/_module.d.ts +2 -0
  971. package/dist/resilience/_module.js +3 -0
  972. package/dist/resilience/_module.js.map +1 -0
  973. package/dist/resilience/middlewares/dynamic/dynamic.middleware.d.ts +2 -2
  974. package/dist/resilience/middlewares/dynamic/dynamic.middleware.js +2 -1
  975. package/dist/resilience/middlewares/dynamic/dynamic.middleware.js.map +1 -1
  976. package/dist/resilience/middlewares/fallback/_module.d.ts +1 -1
  977. package/dist/resilience/middlewares/fallback/_module.js +0 -1
  978. package/dist/resilience/middlewares/fallback/_module.js.map +1 -1
  979. package/dist/resilience/middlewares/fallback/fallback.middleware.d.ts +3 -25
  980. package/dist/resilience/middlewares/fallback/fallback.middleware.js +6 -32
  981. package/dist/resilience/middlewares/fallback/fallback.middleware.js.map +1 -1
  982. package/dist/resilience/middlewares/fallback/fallback.types.d.ts +4 -6
  983. package/dist/resilience/middlewares/fallback/fallback.types.js +2 -2
  984. package/dist/resilience/middlewares/fallback/fallback.types.js.map +1 -1
  985. package/dist/resilience/middlewares/observe/_module.d.ts +1 -1
  986. package/dist/resilience/middlewares/observe/_module.js +0 -1
  987. package/dist/resilience/middlewares/observe/_module.js.map +1 -1
  988. package/dist/resilience/middlewares/observe/observe.middleware.d.ts +3 -39
  989. package/dist/resilience/middlewares/observe/observe.middleware.js +5 -57
  990. package/dist/resilience/middlewares/observe/observe.middleware.js.map +1 -1
  991. package/dist/resilience/middlewares/observe/observe.types.d.ts +4 -5
  992. package/dist/resilience/middlewares/observe/observe.types.js +3 -1
  993. package/dist/resilience/middlewares/observe/observe.types.js.map +1 -1
  994. package/dist/resilience/middlewares/retry/_module.d.ts +1 -1
  995. package/dist/resilience/middlewares/retry/_module.js +0 -1
  996. package/dist/resilience/middlewares/retry/_module.js.map +1 -1
  997. package/dist/resilience/middlewares/retry/retry.middleware.d.ts +3 -33
  998. package/dist/resilience/middlewares/retry/retry.middleware.js +9 -40
  999. package/dist/resilience/middlewares/retry/retry.middleware.js.map +1 -1
  1000. package/dist/resilience/middlewares/retry/retry.types.d.ts +7 -9
  1001. package/dist/resilience/middlewares/retry/retry.types.js +4 -3
  1002. package/dist/resilience/middlewares/retry/retry.types.js.map +1 -1
  1003. package/dist/resilience/middlewares/timeout/_module.d.ts +1 -1
  1004. package/dist/resilience/middlewares/timeout/_module.js +0 -1
  1005. package/dist/resilience/middlewares/timeout/_module.js.map +1 -1
  1006. package/dist/resilience/middlewares/timeout/timeout.middleware.d.ts +2 -2
  1007. package/dist/resilience/middlewares/timeout/timeout.middleware.js +4 -2
  1008. package/dist/resilience/middlewares/timeout/timeout.middleware.js.map +1 -1
  1009. package/dist/resilience/middlewares/timeout/timeout.type.d.ts +4 -4
  1010. package/dist/resilience/middlewares/timeout/timeout.type.js +4 -1
  1011. package/dist/resilience/middlewares/timeout/timeout.type.js.map +1 -1
  1012. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.d.ts +1 -1
  1013. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.js +1 -1
  1014. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.js.map +1 -1
  1015. package/dist/semaphore/contracts/_module-exports.d.ts +6 -6
  1016. package/dist/semaphore/contracts/_module-exports.js +0 -6
  1017. package/dist/semaphore/contracts/_module-exports.js.map +1 -1
  1018. package/dist/semaphore/contracts/_module.d.ts +9 -0
  1019. package/dist/semaphore/contracts/_module.js +4 -0
  1020. package/dist/semaphore/contracts/_module.js.map +1 -0
  1021. package/dist/semaphore/contracts/database-semaphore-adapter.contract.d.ts +1 -1
  1022. package/dist/semaphore/contracts/database-semaphore-adapter.contract.js +1 -1
  1023. package/dist/semaphore/contracts/database-semaphore-adapter.contract.js.map +1 -1
  1024. package/dist/semaphore/contracts/semaphore-adapter.contract.d.ts +1 -1
  1025. package/dist/semaphore/contracts/semaphore-adapter.contract.js +3 -1
  1026. package/dist/semaphore/contracts/semaphore-adapter.contract.js.map +1 -1
  1027. package/dist/semaphore/contracts/semaphore-provider-factory.contract.d.ts +1 -1
  1028. package/dist/semaphore/contracts/semaphore-provider-factory.contract.js +2 -1
  1029. package/dist/semaphore/contracts/semaphore-provider-factory.contract.js.map +1 -1
  1030. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +4 -8
  1031. package/dist/semaphore/contracts/semaphore-provider.contract.js +4 -1
  1032. package/dist/semaphore/contracts/semaphore-provider.contract.js.map +1 -1
  1033. package/dist/semaphore/contracts/semaphore-state.contract.d.ts +2 -2
  1034. package/dist/semaphore/contracts/semaphore-state.contract.js +1 -0
  1035. package/dist/semaphore/contracts/semaphore-state.contract.js.map +1 -1
  1036. package/dist/semaphore/contracts/semaphore.contract.d.ts +18 -28
  1037. package/dist/semaphore/contracts/semaphore.contract.js +5 -1
  1038. package/dist/semaphore/contracts/semaphore.contract.js.map +1 -1
  1039. package/dist/semaphore/contracts/semaphore.errors.d.ts +19 -0
  1040. package/dist/semaphore/contracts/semaphore.errors.js +25 -0
  1041. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
  1042. package/dist/semaphore/contracts/semaphore.events.d.ts +1 -1
  1043. package/dist/semaphore/contracts/semaphore.events.js +1 -0
  1044. package/dist/semaphore/contracts/semaphore.events.js.map +1 -1
  1045. package/dist/semaphore/contracts/types.d.ts +2 -2
  1046. package/dist/semaphore/contracts/types.js +2 -1
  1047. package/dist/semaphore/contracts/types.js.map +1 -1
  1048. package/dist/semaphore/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  1049. package/dist/semaphore/implementations/adapters/_module.js.map +1 -0
  1050. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module-exports.d.ts +1 -0
  1051. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module-exports.js +2 -0
  1052. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module-exports.js.map +1 -0
  1053. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.d.ts +18 -11
  1054. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js +13 -6
  1055. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js.map +1 -1
  1056. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module-exports.d.ts +1 -0
  1057. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module-exports.js +2 -0
  1058. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module-exports.js.map +1 -0
  1059. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.d.ts +13 -8
  1060. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js +22 -4
  1061. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js.map +1 -1
  1062. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module-exports.d.ts +1 -0
  1063. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module-exports.js +2 -0
  1064. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module-exports.js.map +1 -0
  1065. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.d.ts +13 -10
  1066. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js +9 -5
  1067. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js.map +1 -1
  1068. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module-exports.d.ts +1 -0
  1069. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module-exports.js +2 -0
  1070. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module-exports.js.map +1 -0
  1071. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.d.ts +3 -3
  1072. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js +3 -1
  1073. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js.map +1 -1
  1074. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module-exports.d.ts +1 -0
  1075. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module-exports.js +2 -0
  1076. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module-exports.js.map +1 -0
  1077. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.d.ts +4 -4
  1078. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.js +4 -1
  1079. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.js.map +1 -1
  1080. package/dist/semaphore/implementations/derivables/_module-exports.d.ts +1 -1
  1081. package/dist/semaphore/implementations/derivables/_module-exports.js +0 -1
  1082. package/dist/semaphore/implementations/derivables/_module-exports.js.map +1 -1
  1083. package/dist/semaphore/implementations/derivables/_module.d.ts +2 -0
  1084. package/dist/semaphore/implementations/derivables/_module.js +2 -0
  1085. package/dist/semaphore/implementations/derivables/_module.js.map +1 -0
  1086. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.d.ts +2 -2
  1087. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.js +3 -1
  1088. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.js.map +1 -1
  1089. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.d.ts +1 -1
  1090. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.js +4 -0
  1091. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.js.map +1 -1
  1092. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-semaphore-adapter.d.ts +8 -0
  1093. package/dist/semaphore/implementations/derivables/semaphore-provider/{resolve-database-semaphore-adapter.js → resolve-semaphore-adapter.js} +4 -3
  1094. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-semaphore-adapter.js.map +1 -0
  1095. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +57 -18
  1096. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +46 -12
  1097. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  1098. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.d.ts +6 -6
  1099. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js +6 -3
  1100. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
  1101. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +19 -23
  1102. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +13 -36
  1103. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
  1104. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.d.ts +1 -1
  1105. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.js +1 -1
  1106. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.js.map +1 -1
  1107. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +59 -4
  1108. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js +63 -1
  1109. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
  1110. package/dist/semaphore/implementations/test-utilities/_module.d.ts +3 -0
  1111. package/dist/semaphore/implementations/test-utilities/_module.js +4 -0
  1112. package/dist/semaphore/implementations/test-utilities/_module.js.map +1 -0
  1113. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.d.ts +17 -12
  1114. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js +18 -12
  1115. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js.map +1 -1
  1116. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.d.ts +4 -4
  1117. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js +6 -6
  1118. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js.map +1 -1
  1119. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.d.ts +6 -6
  1120. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +81 -810
  1121. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -1
  1122. package/dist/serde/contracts/_module-exports.d.ts +5 -5
  1123. package/dist/serde/contracts/_module-exports.js +0 -5
  1124. package/dist/serde/contracts/_module-exports.js.map +1 -1
  1125. package/dist/serde/contracts/_module.d.ts +6 -0
  1126. package/dist/serde/contracts/_module.js +2 -0
  1127. package/dist/serde/contracts/_module.js.map +1 -0
  1128. package/dist/serde/contracts/flexible-serde-adapter.contract.d.ts +1 -1
  1129. package/dist/serde/contracts/flexible-serde-adapter.contract.js +1 -1
  1130. package/dist/serde/contracts/flexible-serde-adapter.contract.js.map +1 -1
  1131. package/dist/serde/contracts/flexible-serde.contract.d.ts +2 -2
  1132. package/dist/serde/contracts/flexible-serde.contract.js +2 -1
  1133. package/dist/serde/contracts/flexible-serde.contract.js.map +1 -1
  1134. package/dist/serde/contracts/serde.contract.d.ts +2 -2
  1135. package/dist/serde/contracts/serde.contract.js +2 -1
  1136. package/dist/serde/contracts/serde.contract.js.map +1 -1
  1137. package/dist/serde/contracts/serde.errors.d.ts +12 -0
  1138. package/dist/serde/contracts/serde.errors.js +16 -0
  1139. package/dist/serde/contracts/serde.errors.js.map +1 -1
  1140. package/dist/serde/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  1141. package/dist/serde/implementations/adapters/_module.js.map +1 -0
  1142. package/dist/serde/implementations/adapters/no-op-serde-adapter/_module-exports.d.ts +1 -0
  1143. package/dist/serde/implementations/adapters/no-op-serde-adapter/_module-exports.js +2 -0
  1144. package/dist/serde/implementations/adapters/no-op-serde-adapter/_module-exports.js.map +1 -0
  1145. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.d.ts +2 -2
  1146. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js +5 -1
  1147. package/dist/serde/implementations/adapters/no-op-serde-adapter/no-op-serde-adapter.js.map +1 -1
  1148. package/dist/serde/implementations/adapters/super-json-serde-adapter/_module-exports.d.ts +1 -0
  1149. package/dist/serde/implementations/adapters/super-json-serde-adapter/_module-exports.js +2 -0
  1150. package/dist/serde/implementations/adapters/super-json-serde-adapter/_module-exports.js.map +1 -0
  1151. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.d.ts +2 -2
  1152. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +4 -4
  1153. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  1154. package/dist/serde/implementations/derivables/_module.d.ts +1 -0
  1155. package/dist/serde/implementations/derivables/_module.js +2 -0
  1156. package/dist/serde/implementations/derivables/_module.js.map +1 -0
  1157. package/dist/serde/implementations/derivables/serde-transformers.d.ts +2 -2
  1158. package/dist/serde/implementations/derivables/serde-transformers.js +5 -1
  1159. package/dist/serde/implementations/derivables/serde-transformers.js.map +1 -1
  1160. package/dist/serde/implementations/derivables/serde.d.ts +7 -7
  1161. package/dist/serde/implementations/derivables/serde.js +7 -6
  1162. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  1163. package/dist/serde/implementations/test-utilities/_module.d.ts +2 -0
  1164. package/dist/serde/implementations/test-utilities/_module.js +3 -0
  1165. package/dist/serde/implementations/test-utilities/_module.js.map +1 -0
  1166. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.d.ts +2 -2
  1167. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js +2 -1
  1168. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js.map +1 -1
  1169. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.d.ts +2 -2
  1170. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js +2 -1
  1171. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js.map +1 -1
  1172. package/dist/shared-lock/contracts/_module-exports.d.ts +7 -7
  1173. package/dist/shared-lock/contracts/_module-exports.js +0 -7
  1174. package/dist/shared-lock/contracts/_module-exports.js.map +1 -1
  1175. package/dist/shared-lock/contracts/_module.d.ts +10 -0
  1176. package/dist/shared-lock/contracts/_module.js +4 -0
  1177. package/dist/shared-lock/contracts/_module.js.map +1 -0
  1178. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +1 -1
  1179. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.js +1 -1
  1180. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.js.map +1 -1
  1181. package/dist/shared-lock/contracts/shared-lock-adapter.contract.d.ts +1 -1
  1182. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js +3 -1
  1183. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js.map +1 -1
  1184. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.d.ts +1 -1
  1185. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.js +2 -1
  1186. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.js.map +1 -1
  1187. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +4 -8
  1188. package/dist/shared-lock/contracts/shared-lock-provider.contract.js +4 -1
  1189. package/dist/shared-lock/contracts/shared-lock-provider.contract.js.map +1 -1
  1190. package/dist/shared-lock/contracts/shared-lock-state.contract.d.ts +3 -3
  1191. package/dist/shared-lock/contracts/shared-lock-state.contract.js +1 -0
  1192. package/dist/shared-lock/contracts/shared-lock-state.contract.js.map +1 -1
  1193. package/dist/shared-lock/contracts/shared-lock.contract.d.ts +33 -51
  1194. package/dist/shared-lock/contracts/shared-lock.contract.js +5 -0
  1195. package/dist/shared-lock/contracts/shared-lock.contract.js.map +1 -1
  1196. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +37 -0
  1197. package/dist/shared-lock/contracts/shared-lock.errors.js +52 -0
  1198. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
  1199. package/dist/shared-lock/contracts/shared-lock.events.d.ts +1 -1
  1200. package/dist/shared-lock/contracts/shared-lock.events.js +1 -0
  1201. package/dist/shared-lock/contracts/shared-lock.events.js.map +1 -1
  1202. package/dist/shared-lock/contracts/types.d.ts +2 -2
  1203. package/dist/shared-lock/contracts/types.js +2 -1
  1204. package/dist/shared-lock/contracts/types.js.map +1 -1
  1205. package/dist/shared-lock/implementations/adapters/{_module-exports.js → _module.js} +1 -1
  1206. package/dist/shared-lock/implementations/adapters/_module.js.map +1 -0
  1207. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module-exports.d.ts +1 -0
  1208. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module-exports.js +2 -0
  1209. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module-exports.js.map +1 -0
  1210. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.d.ts +21 -14
  1211. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js +15 -8
  1212. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js.map +1 -1
  1213. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module-exports.d.ts +1 -0
  1214. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module-exports.js +2 -0
  1215. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module-exports.js.map +1 -0
  1216. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.d.ts +15 -12
  1217. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js +12 -7
  1218. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js.map +1 -1
  1219. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module-exports.d.ts +1 -0
  1220. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module-exports.js +2 -0
  1221. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module-exports.js.map +1 -0
  1222. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.d.ts +15 -15
  1223. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js +10 -8
  1224. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js.map +1 -1
  1225. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module-exports.d.ts +1 -0
  1226. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module-exports.js +2 -0
  1227. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module-exports.js.map +1 -0
  1228. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.d.ts +3 -3
  1229. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js +3 -1
  1230. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js.map +1 -1
  1231. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module-exports.d.ts +1 -0
  1232. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module-exports.js +2 -0
  1233. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module-exports.js.map +1 -0
  1234. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.d.ts +6 -6
  1235. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.js +6 -3
  1236. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.js.map +1 -1
  1237. package/dist/shared-lock/implementations/derivables/_module.d.ts +2 -0
  1238. package/dist/shared-lock/implementations/derivables/_module.js +3 -0
  1239. package/dist/shared-lock/implementations/derivables/_module.js.map +1 -0
  1240. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.d.ts +2 -3
  1241. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.js +6 -3
  1242. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.js.map +1 -1
  1243. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.d.ts +1 -1
  1244. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.js +1 -0
  1245. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.js.map +1 -1
  1246. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-shared-lock-adapter.d.ts +8 -0
  1247. package/dist/shared-lock/implementations/derivables/shared-lock-provider/{resolve-database-shared-lock-adapter.js → resolve-shared-lock-adapter.js} +4 -3
  1248. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-shared-lock-adapter.js.map +1 -0
  1249. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +43 -27
  1250. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +32 -22
  1251. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  1252. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.d.ts +6 -6
  1253. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js +6 -3
  1254. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
  1255. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +31 -35
  1256. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +17 -68
  1257. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
  1258. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +19 -19
  1259. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js +22 -15
  1260. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
  1261. package/dist/shared-lock/implementations/test-utilities/_module.d.ts +3 -0
  1262. package/dist/shared-lock/implementations/test-utilities/_module.js +4 -0
  1263. package/dist/shared-lock/implementations/test-utilities/_module.js.map +1 -0
  1264. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.d.ts +20 -15
  1265. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js +24 -13
  1266. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js.map +1 -1
  1267. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.d.ts +3 -3
  1268. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js +5 -5
  1269. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js.map +1 -1
  1270. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.d.ts +6 -6
  1271. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +1008 -2498
  1272. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -1
  1273. package/dist/task/contracts/_module-exports.d.ts +1 -0
  1274. package/dist/task/contracts/_module-exports.js +2 -0
  1275. package/dist/task/contracts/_module-exports.js.map +1 -0
  1276. package/dist/task/contracts/_module.d.ts +1 -0
  1277. package/dist/task/contracts/_module.js +2 -0
  1278. package/dist/task/contracts/_module.js.map +1 -0
  1279. package/dist/task/contracts/task.contract.d.ts +20 -0
  1280. package/dist/task/contracts/task.contract.js +6 -0
  1281. package/dist/task/contracts/task.contract.js.map +1 -0
  1282. package/dist/task/implementations/_module-exports.d.ts +1 -0
  1283. package/dist/task/implementations/_module-exports.js +2 -0
  1284. package/dist/task/implementations/_module-exports.js.map +1 -0
  1285. package/dist/task/implementations/_module.d.ts +1 -0
  1286. package/dist/task/implementations/_module.js +2 -0
  1287. package/dist/task/implementations/_module.js.map +1 -0
  1288. package/dist/task/implementations/abort-and-fail.js.map +1 -0
  1289. package/dist/task/{task.d.ts → implementations/task.d.ts} +27 -25
  1290. package/dist/task/{task.js → implementations/task.js} +19 -10
  1291. package/dist/task/implementations/task.js.map +1 -0
  1292. package/dist/time-span/contracts/_module.d.ts +1 -0
  1293. package/dist/time-span/contracts/_module.js +2 -0
  1294. package/dist/time-span/contracts/_module.js.map +1 -0
  1295. package/dist/time-span/implementations/_module.d.ts +1 -0
  1296. package/dist/time-span/implementations/_module.js +2 -0
  1297. package/dist/time-span/implementations/_module.js.map +1 -0
  1298. package/dist/time-span/implementations/time-span.d.ts +3 -3
  1299. package/dist/time-span/implementations/time-span.js +4 -2
  1300. package/dist/time-span/implementations/time-span.js.map +1 -1
  1301. package/dist/utilities/_module-exports.d.ts +2 -3
  1302. package/dist/utilities/_module-exports.js +0 -3
  1303. package/dist/utilities/_module-exports.js.map +1 -1
  1304. package/dist/utilities/_module.d.ts +5 -0
  1305. package/dist/utilities/_module.js +4 -0
  1306. package/dist/utilities/_module.js.map +1 -0
  1307. package/dist/utilities/contracts/_module.d.ts +5 -5
  1308. package/dist/utilities/contracts/_module.js +1 -5
  1309. package/dist/utilities/contracts/_module.js.map +1 -1
  1310. package/dist/utilities/errors.d.ts +2 -10
  1311. package/dist/utilities/errors.js +2 -13
  1312. package/dist/utilities/errors.js.map +1 -1
  1313. package/dist/utilities/functions/_module.d.ts +9 -2
  1314. package/dist/utilities/functions/_module.js +9 -2
  1315. package/dist/utilities/functions/_module.js.map +1 -1
  1316. package/dist/utilities/functions/array-like-to-iterable.d.ts +7 -0
  1317. package/dist/utilities/functions/array-like-to-iterable.js +20 -0
  1318. package/dist/utilities/functions/array-like-to-iterable.js.map +1 -0
  1319. package/dist/utilities/functions/error-policy.d.ts +7 -7
  1320. package/dist/utilities/functions/error-policy.js +17 -28
  1321. package/dist/utilities/functions/error-policy.js.map +1 -1
  1322. package/dist/utilities/functions/invokable.d.ts +2 -2
  1323. package/dist/utilities/functions/invokable.js +3 -1
  1324. package/dist/utilities/functions/invokable.js.map +1 -1
  1325. package/dist/utilities/functions/is-array-like.d.ts +7 -0
  1326. package/dist/utilities/functions/is-array-like.js +17 -0
  1327. package/dist/utilities/functions/is-array-like.js.map +1 -0
  1328. package/dist/utilities/functions/is-async-iterable.d.ts +7 -0
  1329. package/dist/utilities/functions/is-async-iterable.js +14 -0
  1330. package/dist/utilities/functions/is-async-iterable.js.map +1 -0
  1331. package/dist/utilities/functions/is-class.d.ts +1 -1
  1332. package/dist/utilities/functions/is-class.js +1 -0
  1333. package/dist/utilities/functions/is-class.js.map +1 -1
  1334. package/dist/utilities/functions/is-iterable.d.ts +7 -0
  1335. package/dist/utilities/functions/is-iterable.js +13 -0
  1336. package/dist/utilities/functions/is-iterable.js.map +1 -0
  1337. package/dist/utilities/functions/is-standard-schema.d.ts +1 -1
  1338. package/dist/utilities/functions/is-standard-schema.js +1 -0
  1339. package/dist/utilities/functions/is-standard-schema.js.map +1 -1
  1340. package/dist/utilities/functions/iterable-to-async-iterable.d.ts +7 -0
  1341. package/dist/utilities/functions/iterable-to-async-iterable.js +17 -0
  1342. package/dist/utilities/functions/iterable-to-async-iterable.js.map +1 -0
  1343. package/dist/utilities/functions/lazy.d.ts +4 -4
  1344. package/dist/utilities/functions/lazy.js +5 -3
  1345. package/dist/utilities/functions/lazy.js.map +1 -1
  1346. package/dist/utilities/functions/resolve-async-iterable-value.d.ts +8 -0
  1347. package/dist/utilities/functions/resolve-async-iterable-value.js +21 -0
  1348. package/dist/utilities/functions/resolve-async-iterable-value.js.map +1 -0
  1349. package/dist/utilities/functions/resolve-iterable-value.d.ts +8 -0
  1350. package/dist/utilities/functions/resolve-iterable-value.js +16 -0
  1351. package/dist/utilities/functions/resolve-iterable-value.js.map +1 -0
  1352. package/dist/utilities/functions/resolve-one-or-more.js +1 -1
  1353. package/dist/utilities/functions/resolve-one-or-more.js.map +1 -1
  1354. package/dist/utilities/functions/validate.d.ts +1 -1
  1355. package/dist/utilities/functions/validate.js +1 -0
  1356. package/dist/utilities/functions/validate.js.map +1 -1
  1357. package/dist/utilities/functions/with-jitter.d.ts +15 -0
  1358. package/dist/utilities/functions/with-jitter.js +14 -0
  1359. package/dist/utilities/functions/with-jitter.js.map +1 -0
  1360. package/dist/utilities/types/_module.d.ts +4 -4
  1361. package/dist/utilities/types/_module.js +1 -4
  1362. package/dist/utilities/types/_module.js.map +1 -1
  1363. package/dist/utilities/types/async-iterable-value.type.d.ts +6 -1
  1364. package/package.json +207 -28
  1365. package/dist/backoff-policies/constant-backoff-policy/_module.d.ts +0 -1
  1366. package/dist/backoff-policies/constant-backoff-policy/_module.js +0 -2
  1367. package/dist/backoff-policies/constant-backoff-policy/_module.js.map +0 -1
  1368. package/dist/backoff-policies/constant-backoff-policy/constant-backoff-policy.d.ts +0 -30
  1369. package/dist/backoff-policies/constant-backoff-policy/constant-backoff-policy.js +0 -29
  1370. package/dist/backoff-policies/constant-backoff-policy/constant-backoff-policy.js.map +0 -1
  1371. package/dist/backoff-policies/exponential-backoff-policy/_module.d.ts +0 -1
  1372. package/dist/backoff-policies/exponential-backoff-policy/_module.js +0 -2
  1373. package/dist/backoff-policies/exponential-backoff-policy/_module.js.map +0 -1
  1374. package/dist/backoff-policies/exponential-backoff-policy/exponential-backoff-policy.d.ts +0 -38
  1375. package/dist/backoff-policies/exponential-backoff-policy/exponential-backoff-policy.js +0 -30
  1376. package/dist/backoff-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +0 -1
  1377. package/dist/backoff-policies/linear-backoff-policy/_module.d.ts +0 -1
  1378. package/dist/backoff-policies/linear-backoff-policy/_module.js +0 -2
  1379. package/dist/backoff-policies/linear-backoff-policy/_module.js.map +0 -1
  1380. package/dist/backoff-policies/linear-backoff-policy/linear-backoff-policy.d.ts +0 -34
  1381. package/dist/backoff-policies/linear-backoff-policy/linear-backoff-policy.js +0 -30
  1382. package/dist/backoff-policies/linear-backoff-policy/linear-backoff-policy.js.map +0 -1
  1383. package/dist/backoff-policies/polynomial-backoff-policy/_module.d.ts +0 -1
  1384. package/dist/backoff-policies/polynomial-backoff-policy/_module.js +0 -2
  1385. package/dist/backoff-policies/polynomial-backoff-policy/_module.js.map +0 -1
  1386. package/dist/backoff-policies/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +0 -38
  1387. package/dist/backoff-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +0 -30
  1388. package/dist/backoff-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +0 -1
  1389. package/dist/cache/implementations/adapters/_module-exports.js.map +0 -1
  1390. package/dist/event-bus/implementations/adapters/_module-exports.js.map +0 -1
  1391. package/dist/lock/implementations/adapters/_module-exports.js.map +0 -1
  1392. package/dist/lock/implementations/derivables/lock-provider/resolve-database-lock-adapter.d.ts +0 -9
  1393. package/dist/lock/implementations/derivables/lock-provider/resolve-database-lock-adapter.js.map +0 -1
  1394. package/dist/semaphore/implementations/adapters/_module-exports.js.map +0 -1
  1395. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-database-semaphore-adapter.d.ts +0 -8
  1396. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-database-semaphore-adapter.js.map +0 -1
  1397. package/dist/serde/implementations/adapters/_module-exports.js.map +0 -1
  1398. package/dist/shared-lock/implementations/adapters/_module-exports.js.map +0 -1
  1399. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-database-shared-lock-adapter.d.ts +0 -8
  1400. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-database-shared-lock-adapter.js.map +0 -1
  1401. package/dist/task/_module-exports.d.ts +0 -1
  1402. package/dist/task/_module-exports.js +0 -2
  1403. package/dist/task/_module-exports.js.map +0 -1
  1404. package/dist/task/abort-and-fail.js.map +0 -1
  1405. package/dist/task/task.js.map +0 -1
  1406. package/dist/utilities/classes/_module.d.ts +0 -1
  1407. package/dist/utilities/classes/_module.js +0 -2
  1408. package/dist/utilities/classes/_module.js.map +0 -1
  1409. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.d.ts +0 -1
  1410. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.js +0 -2
  1411. package/dist/utilities/classes/kysely-table-name-transformer-plugin/_module.js.map +0 -1
  1412. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.d.ts +0 -13
  1413. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js +0 -51
  1414. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js.map +0 -1
  1415. package/dist/utilities/functions/result.d.ts +0 -91
  1416. package/dist/utilities/functions/result.js +0 -59
  1417. package/dist/utilities/functions/result.js.map +0 -1
  1418. /package/dist/cache/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1419. /package/dist/event-bus/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1420. /package/dist/lock/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1421. /package/dist/semaphore/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1422. /package/dist/serde/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1423. /package/dist/shared-lock/implementations/adapters/{_module-exports.d.ts → _module.d.ts} +0 -0
  1424. /package/dist/task/{abort-and-fail.d.ts → implementations/abort-and-fail.d.ts} +0 -0
  1425. /package/dist/task/{abort-and-fail.js → implementations/abort-and-fail.js} +0 -0
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * @module Cache
3
3
  */
4
- import {} from "vitest";
5
- import { KeyNotFoundCacheError, CACHE_EVENTS, } from "../../../cache/contracts/_module-exports.js";
6
- import {} from "../../../utilities/_module-exports.js";
7
- import { Task } from "../../../task/_module-exports.js";
8
- import { TimeSpan } from "../../../time-span/implementations/_module-exports.js";
4
+ import { vi, } from "vitest";
5
+ import { KeyNotFoundCacheError, CACHE_EVENTS, KeyExistsCacheError, } from "../../../cache/contracts/_module.js";
6
+ import { Key } from "../../../namespace/_module.js";
7
+ import { Task } from "../../../task/implementations/_module.js";
8
+ import {} from "../../../time-span/contracts/time-span.contract.js";
9
+ import { TimeSpan } from "../../../time-span/implementations/_module.js";
10
+ import {} from "../../../utilities/_module.js";
9
11
  /**
10
12
  * The `cacheTestSuite` function simplifies the process of testing your custom implementation of {@link ICache | `ICache`} with `vitest`.
11
13
  *
@@ -15,7 +17,7 @@ import { TimeSpan } from "../../../time-span/implementations/_module-exports.js"
15
17
  * ```ts
16
18
  * import { beforeEach, describe, expect, test } from "vitest";
17
19
  * import { cacheTestSuite } from "@daiso-tech/core/cache/test-utilities";
18
- * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/adapters";
20
+ * import { MemoryCacheAdapter } from "@daiso-tech/core/cache/memory-cache-adapter";
19
21
  * import { Cache } from "@daiso-tech/core/cache";
20
22
  *
21
23
  * describe("class: Cache", () => {
@@ -34,820 +36,1690 @@ import { TimeSpan } from "../../../time-span/implementations/_module-exports.js"
34
36
  * ```
35
37
  */
36
38
  export function cacheTestSuite(settings) {
37
- const { expect, test, createCache, describe, beforeEach } = settings;
39
+ const { expect, test, createCache, describe, beforeEach, excludeEventTests = false, } = settings;
38
40
  let cache;
39
41
  beforeEach(async () => {
40
- cache = await createCache();
42
+ cache = (await createCache());
41
43
  });
44
+ async function delay(ttl) {
45
+ await Task.delay(ttl);
46
+ }
42
47
  const TTL = TimeSpan.fromMilliseconds(50);
43
- const DELAY_TIME = TimeSpan.fromMilliseconds(50);
48
+ const LONG_TTL = TimeSpan.fromMinutes(5);
44
49
  describe("Api tests:", () => {
45
50
  describe("method: exists", () => {
46
- test("Should return true when key exists", async () => {
47
- await cache.add("a", 1, null);
48
- await Task.delay(TTL.divide(4));
49
- expect(await cache.exists("a")).toBe(true);
51
+ test("Should return false when key does not exists", async () => {
52
+ const key = "a";
53
+ const result = await cache.exists(key);
54
+ expect(result).toBe(false);
50
55
  });
51
- test("Should return false when keys doesnt exists", async () => {
52
- expect(await cache.exists("a")).toBe(false);
56
+ test("Should return false when key is expired", async () => {
57
+ const key = "a";
58
+ await cache.add(key, 1, {
59
+ ttl: TTL,
60
+ });
61
+ await delay(TTL.addMilliseconds(10));
62
+ const result = await cache.exists(key);
63
+ expect(result).toBe(false);
53
64
  });
54
- test("Should return false when key is experied", async () => {
55
- await cache.add("a", 1, TTL);
56
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
57
- expect(await cache.exists("a")).toBe(false);
65
+ test("Should return true when key exists", async () => {
66
+ const key = "a";
67
+ await cache.add(key, 1);
68
+ const result = await cache.exists(key);
69
+ expect(result).toBe(true);
70
+ });
71
+ test("Should return true when key is unexpired", async () => {
72
+ const key = "a";
73
+ await cache.add(key, 1, { ttl: LONG_TTL });
74
+ const result = await cache.exists(key);
75
+ expect(result).toBe(true);
58
76
  });
59
77
  });
60
78
  describe("method: missing", () => {
61
- test("Should return false when key exists", async () => {
62
- await cache.add("a", 1, null);
63
- await Task.delay(TTL.divide(4));
64
- expect(await cache.missing("a")).toBe(false);
79
+ test("Should return true when key does not exists", async () => {
80
+ const key = "a";
81
+ const result = await cache.missing(key);
82
+ expect(result).toBe(true);
65
83
  });
66
- test("Should return true when keys doesnt exists", async () => {
67
- expect(await cache.missing("a")).toBe(true);
84
+ test("Should return true when key is expired", async () => {
85
+ const key = "a";
86
+ await cache.add(key, 1, {
87
+ ttl: TTL,
88
+ });
89
+ await delay(TTL.addMilliseconds(10));
90
+ const result = await cache.missing(key);
91
+ expect(result).toBe(true);
92
+ });
93
+ test("Should return false when key exists", async () => {
94
+ const key = "a";
95
+ await cache.add(key, 1);
96
+ const result = await cache.missing(key);
97
+ expect(result).toBe(false);
68
98
  });
69
- test("Should return true when key is experied", async () => {
70
- await cache.add("a", 1, TTL);
71
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
72
- expect(await cache.missing("a")).toBe(true);
99
+ test("Should return false when key is unexpired", async () => {
100
+ const key = "a";
101
+ await cache.add(key, 1, { ttl: LONG_TTL });
102
+ const result = await cache.missing(key);
103
+ expect(result).toBe(false);
73
104
  });
74
105
  });
75
106
  describe("method: get", () => {
76
- test("Should return the value when key exists", async () => {
77
- await cache.add("a", 1, null);
78
- await Task.delay(TTL.divide(4));
79
- expect(await cache.get("a")).toBe(1);
107
+ test("Should return null when key does not exists", async () => {
108
+ const key = "a";
109
+ const result = await cache.get(key);
110
+ expect(result).toBeNull();
80
111
  });
81
- test("Should return null when keys doesnt exists", async () => {
82
- expect(await cache.get("a")).toBeNull();
112
+ test("Should return null when key is expired", async () => {
113
+ const key = "a";
114
+ await cache.add(key, 1, {
115
+ ttl: TTL,
116
+ });
117
+ await delay(TTL.addMilliseconds(10));
118
+ const result = await cache.get(key);
119
+ expect(result).toBeNull();
83
120
  });
84
- test("Should return null when key is experied", async () => {
85
- await cache.add("a", 1, TTL);
86
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
87
- expect(await cache.get("a")).toBeNull();
121
+ test("Should return value when key exists", async () => {
122
+ const key = "a";
123
+ const value = 1;
124
+ await cache.add(key, value);
125
+ const result = await cache.get(key);
126
+ expect(result).toBe(value);
127
+ });
128
+ test("Should return value when key is unexpired", async () => {
129
+ const key = "a";
130
+ const value = 1;
131
+ await cache.add(key, value, { ttl: LONG_TTL });
132
+ const result = await cache.get(key);
133
+ expect(result).toBe(value);
88
134
  });
89
135
  });
90
136
  describe("method: getOrFail", () => {
91
- test("Should return the value when key exists", async () => {
92
- await cache.add("a", 1, null);
93
- await Task.delay(TTL.divide(4));
94
- expect(await cache.getOrFail("a")).toBe(1);
95
- });
96
- test("Should throw an KeyNotFoundCacheError when keys doesnt exists", async () => {
97
- await expect(cache.getOrFail("a")).rejects.toBeInstanceOf(KeyNotFoundCacheError);
137
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
138
+ const key = "a";
139
+ const result = cache.getOrFail(key);
140
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
141
+ });
142
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
143
+ const key = "a";
144
+ await cache.add(key, 1, {
145
+ ttl: TTL,
146
+ });
147
+ await delay(TTL.addMilliseconds(10));
148
+ const result = cache.getOrFail(key);
149
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
98
150
  });
99
- test("Should throw an KeyNotFoundCacheError when key is experied", async () => {
100
- await cache.add("a", 1, TTL);
101
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
102
- await expect(cache.getOrFail("a")).rejects.toBeInstanceOf(KeyNotFoundCacheError);
151
+ test("Should return value when key exists", async () => {
152
+ const key = "a";
153
+ const value = 1;
154
+ await cache.add(key, value);
155
+ const result = await cache.getOrFail(key);
156
+ expect(result).toBe(value);
157
+ });
158
+ test("Should return value when key is unexpired", async () => {
159
+ const key = "a";
160
+ const value = 1;
161
+ await cache.add(key, value, { ttl: LONG_TTL });
162
+ const result = await cache.getOrFail(key);
163
+ expect(result).toBe(value);
103
164
  });
104
165
  });
105
166
  describe("method: getOr", () => {
106
- test("Should return value when key exists", async () => {
107
- await cache.add("a", 1);
108
- expect(await cache.getOr("a", -1)).toBe(1);
109
- });
110
- describe("Should return default value when key doesnt exists", () => {
111
- test("Value", async () => {
112
- expect(await cache.getOr("a", -1)).toBe(-1);
113
- });
114
- test("Function", async () => {
115
- expect(await cache.getOr("a", () => -1)).toBe(-1);
116
- });
117
- test("Async function", async () => {
118
- expect(await cache.getOr("a", () => Promise.resolve(-1))).toBe(-1);
119
- });
120
- test("Task", async () => {
121
- expect(await cache.getOr("a", new Task(() => Promise.resolve(-1)))).toBe(-1);
167
+ test("Should return default value when key does not exists", async () => {
168
+ const key = "a";
169
+ const defaultValue = -1;
170
+ const result = await cache.getOr(key, defaultValue);
171
+ expect(result).toBe(defaultValue);
172
+ });
173
+ test("Should return default value when key is expired", async () => {
174
+ const key = "a";
175
+ await cache.add(key, 1, {
176
+ ttl: TTL,
122
177
  });
178
+ await delay(TTL.addMilliseconds(10));
179
+ const defaultValue = -1;
180
+ const result = await cache.getOr(key, defaultValue);
181
+ expect(result).toBe(defaultValue);
123
182
  });
124
- describe("Should return default value when key is expired", () => {
125
- test("Value", async () => {
126
- await cache.add("a", 1, TTL);
127
- await Task.delay(TTL);
128
- expect(await cache.getOr("a", -1)).toBe(-1);
129
- });
130
- test("Function", async () => {
131
- await cache.add("a", 1, TTL);
132
- await Task.delay(TTL);
133
- expect(await cache.getOr("a", () => -1)).toBe(-1);
134
- });
135
- test("Async function", async () => {
136
- await cache.add("a", 1, TTL);
137
- await Task.delay(TTL);
138
- expect(await cache.getOr("a", () => Promise.resolve(-1))).toBe(-1);
139
- });
140
- test("Task", async () => {
141
- await cache.add("a", 1, TTL);
142
- await Task.delay(TTL);
143
- expect(await cache.getOr("a", new Task(() => Promise.resolve(-1)))).toBe(-1);
144
- });
183
+ test("Should return value when key exists", async () => {
184
+ const key = "a";
185
+ const value = 1;
186
+ await cache.add(key, value);
187
+ const defaultValue = -1;
188
+ const result = await cache.getOr(key, defaultValue);
189
+ expect(result).toBe(value);
190
+ });
191
+ test("Should return value when key is unexpired", async () => {
192
+ const key = "a";
193
+ const value = 1;
194
+ await cache.add(key, value, { ttl: LONG_TTL });
195
+ const defaultValue = -1;
196
+ const result = await cache.getOr(key, defaultValue);
197
+ expect(result).toBe(value);
145
198
  });
146
199
  });
147
200
  describe("method: getAndRemove", () => {
148
- test("Should return value when key exists", async () => {
149
- await cache.add("a", 1, null);
150
- await Task.delay(TTL.divide(4));
151
- expect(await cache.getAndRemove("a")).toBe(1);
152
- });
153
- test("Should return null when key doesnt exists", async () => {
154
- expect(await cache.getAndRemove("a")).toBeNull();
201
+ test("Should return null when key does not exists", async () => {
202
+ const key = "a";
203
+ const result = await cache.getAndRemove(key);
204
+ expect(result).toBeNull();
155
205
  });
156
206
  test("Should return null when key is expired", async () => {
157
- await cache.add("a", 1, TTL);
158
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
159
- expect(await cache.getAndRemove("a")).toBeNull();
207
+ const key = "a";
208
+ await cache.add(key, 1, {
209
+ ttl: TTL,
210
+ });
211
+ await delay(TTL.addMilliseconds(10));
212
+ const result = await cache.getAndRemove(key);
213
+ expect(result).toBeNull();
160
214
  });
161
- test("Should persist removal when key exists", async () => {
162
- await cache.add("a", 1, null);
163
- await Task.delay(TTL.divide(4));
164
- await cache.getAndRemove("a");
165
- await Task.delay(TTL.divide(4));
166
- expect(await cache.get("a")).toBeNull();
215
+ test("Should return value when key exists", async () => {
216
+ const key = "a";
217
+ const value = 1;
218
+ await cache.add(key, value);
219
+ const result = await cache.getAndRemove(key);
220
+ expect(result).toBe(value);
221
+ });
222
+ test("Should return value when key is unexpired", async () => {
223
+ const key = "a";
224
+ const value = 1;
225
+ await cache.add(key, value, { ttl: LONG_TTL });
226
+ const result = await cache.getAndRemove(key);
227
+ expect(result).toBe(value);
228
+ });
229
+ test("Should remove key when exists", async () => {
230
+ const key = "a";
231
+ const value = 1;
232
+ await cache.add(key, value);
233
+ await cache.getAndRemove(key);
234
+ const result = await cache.get(key);
235
+ expect(result).toBeNull();
236
+ });
237
+ test("Should remove key when is unexpired", async () => {
238
+ const key = "a";
239
+ const value = 1;
240
+ await cache.add(key, value, { ttl: LONG_TTL });
241
+ await cache.getAndRemove(key);
242
+ const result = await cache.get(key);
243
+ expect(result).toBeNull();
167
244
  });
168
245
  });
169
246
  describe("method: getOrAdd", () => {
170
- test("Should return value when key exists", async () => {
171
- await cache.add("a", 1);
172
- expect(await cache.getOrAdd("a", -1)).toBe(1);
173
- });
174
- describe("Should persist insertion when key doesnt exists", () => {
175
- test("Value", async () => {
176
- await cache.getOrAdd("a", -1);
177
- expect(await cache.get("a")).toBe(-1);
247
+ test("Should return value to add when key does not exists", async () => {
248
+ const key = "a";
249
+ const valueToAdd = -1;
250
+ const result = await cache.getOrAdd(key, valueToAdd);
251
+ expect(result).toBe(valueToAdd);
252
+ });
253
+ test("Should persist value when key does not exists", async () => {
254
+ const key = "a";
255
+ const valueToAdd = -1;
256
+ await cache.getOrAdd(key, valueToAdd);
257
+ const result = await cache.get(key);
258
+ expect(result).toBe(valueToAdd);
259
+ });
260
+ test("Should return value to add when key is expired", async () => {
261
+ const key = "a";
262
+ await cache.add(key, 1, {
263
+ ttl: TTL,
178
264
  });
179
- test("Function", async () => {
180
- await cache.getOrAdd("a", () => -1);
181
- expect(await cache.get("a")).toBe(-1);
182
- });
183
- test("Async function", async () => {
184
- await cache.getOrAdd("a", () => Promise.resolve(-1));
185
- expect(await cache.get("a")).toBe(-1);
186
- });
187
- test("Task", async () => {
188
- await cache.getOrAdd("a", new Task(() => Promise.resolve(-1)));
189
- expect(await cache.get("a")).toBe(-1);
265
+ await delay(TTL.addMilliseconds(10));
266
+ const valueToAdd = -1;
267
+ const result = await cache.getOrAdd(key, valueToAdd);
268
+ expect(result).toBe(valueToAdd);
269
+ });
270
+ test("Should persist value when key is expired", async () => {
271
+ const key = "a";
272
+ await cache.add(key, 1, {
273
+ ttl: TTL,
190
274
  });
275
+ await delay(TTL.addMilliseconds(10));
276
+ const valueToAdd = -1;
277
+ await cache.getOrAdd(key, valueToAdd);
278
+ const result = await cache.get(key);
279
+ expect(result).toBe(valueToAdd);
191
280
  });
192
- describe("Should persist insertion when key is expired", () => {
193
- test("Value", async () => {
194
- await cache.add("a", 1, TTL);
195
- await Task.delay(TTL);
196
- await cache.getOrAdd("a", -1);
197
- expect(await cache.get("a")).toBe(-1);
198
- });
199
- test("Function", async () => {
200
- await cache.add("a", 1, TTL);
201
- await Task.delay(TTL);
202
- await cache.getOrAdd("a", () => -1);
203
- expect(await cache.get("a")).toBe(-1);
204
- });
205
- test("Async function", async () => {
206
- await cache.add("a", 1, TTL);
207
- await Task.delay(TTL);
208
- await cache.getOrAdd("a", () => Promise.resolve(-1));
209
- expect(await cache.get("a")).toBe(-1);
210
- });
211
- test("Task", async () => {
212
- await cache.add("a", 1, TTL);
213
- await Task.delay(TTL);
214
- await cache.getOrAdd("a", new Task(() => Promise.resolve(-1)));
215
- expect(await cache.get("a")).toBe(-1);
216
- });
281
+ test("Should return value when key exists", async () => {
282
+ const key = "a";
283
+ const value = 1;
284
+ await cache.add(key, value);
285
+ const valueToAdd = -1;
286
+ const result = await cache.getOrAdd(key, valueToAdd);
287
+ expect(result).toBe(value);
288
+ });
289
+ test("Should not persist value when key exists", async () => {
290
+ const key = "a";
291
+ const value = 1;
292
+ await cache.add(key, value);
293
+ const valueToAdd = -1;
294
+ await cache.getOrAdd(key, valueToAdd);
295
+ const result = await cache.get(key);
296
+ expect(result).toBe(value);
297
+ });
298
+ test("Should return value when key is unexpired", async () => {
299
+ const key = "a";
300
+ const value = 1;
301
+ await cache.add(key, value, { ttl: LONG_TTL });
302
+ const valueToAdd = -1;
303
+ const result = await cache.getOrAdd(key, valueToAdd);
304
+ expect(result).toBe(value);
305
+ });
306
+ test("Should not persist when key is unexpired", async () => {
307
+ const key = "a";
308
+ const value = 1;
309
+ await cache.add(key, value, { ttl: LONG_TTL });
310
+ const valueToAdd = -1;
311
+ await cache.getOrAdd(key, valueToAdd);
312
+ const result = await cache.get(key);
313
+ expect(result).toBe(value);
217
314
  });
218
315
  });
219
316
  describe("method: add", () => {
220
- test("Should return true when key doesnt exists", async () => {
221
- const result = await cache.add("a", 1, null);
222
- await Task.delay(TTL.divide(4));
317
+ test("Should return true when key does not exists", async () => {
318
+ const key = "a";
319
+ const value = 1;
320
+ const result = await cache.add(key, value);
223
321
  expect(result).toBe(true);
224
322
  });
225
- test("Should return true when key is expired", async () => {
226
- await cache.add("a", 1, TTL);
227
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
228
- expect(await cache.add("a", 1, null)).toBe(true);
323
+ test("Should persist value when key does not exists", async () => {
324
+ const key = "a";
325
+ const value = 1;
326
+ await cache.add(key, value);
327
+ const result = await cache.get(key);
328
+ expect(result).toBe(value);
229
329
  });
230
- test("Should persist values when key doesnt exist", async () => {
231
- await cache.add("a", 1, null);
232
- await Task.delay(TTL.divide(4));
233
- expect(await cache.get("a")).toBe(1);
330
+ test("Should return true when key is expired", async () => {
331
+ const key = "a";
332
+ const value1 = 1;
333
+ await cache.add(key, value1, {
334
+ ttl: TTL,
335
+ });
336
+ await delay(TTL.addMilliseconds(10));
337
+ const value2 = 2;
338
+ const result = await cache.add(key, value2);
339
+ expect(result).toBe(true);
234
340
  });
235
- test("Should persist values when key is expired", async () => {
236
- await cache.add("a", -1, TTL);
237
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
238
- await cache.add("a", 1, null);
239
- expect(await cache.get("a")).toBe(1);
341
+ test("Should persist value when key is expired", async () => {
342
+ const key = "a";
343
+ const value1 = 1;
344
+ await cache.add(key, value1, {
345
+ ttl: TTL,
346
+ });
347
+ await delay(TTL.addMilliseconds(10));
348
+ const value2 = 2;
349
+ await cache.add(key, value2);
350
+ const result = await cache.get(key);
351
+ expect(result).toBe(value2);
240
352
  });
241
353
  test("Should return false when key exists", async () => {
242
- await cache.add("a", 1, null);
243
- await Task.delay(TTL.divide(4));
244
- expect(await cache.add("a", 1, null)).toBe(false);
354
+ const key = "a";
355
+ const value1 = 1;
356
+ await cache.add(key, value1);
357
+ const value2 = 2;
358
+ const result = await cache.add(key, value2);
359
+ expect(result).toBe(false);
360
+ });
361
+ test("Should return false when key is unexpired", async () => {
362
+ const key = "a";
363
+ const value1 = 1;
364
+ await cache.add(key, value1, { ttl: LONG_TTL });
365
+ const value2 = 2;
366
+ const result = await cache.add(key, value2);
367
+ expect(result).toBe(false);
368
+ });
369
+ test("Should not persist value when key exists", async () => {
370
+ const key = "a";
371
+ const value1 = 1;
372
+ await cache.add(key, value1);
373
+ const value2 = 2;
374
+ await cache.add(key, value2);
375
+ const result = await cache.get(key);
376
+ expect(result).toBe(value1);
377
+ });
378
+ test("Should not persist value when key is unexpired", async () => {
379
+ const key = "a";
380
+ const value1 = 1;
381
+ await cache.add(key, value1, { ttl: LONG_TTL });
382
+ const value2 = 2;
383
+ await cache.add(key, value2);
384
+ const result = await cache.get(key);
385
+ expect(result).toBe(value1);
245
386
  });
246
- test("Should not persist value when key exist", async () => {
247
- await cache.add("a", 1, null);
248
- await Task.delay(TTL.divide(4));
249
- await cache.add("a", 2, null);
250
- await Task.delay(TTL.divide(4));
251
- expect(await cache.get("a")).toBe(1);
387
+ });
388
+ describe("method: addOrFail", () => {
389
+ test("Should not throw error when key does not exists", async () => {
390
+ const key = "a";
391
+ const value = 1;
392
+ const result = cache.addOrFail(key, value);
393
+ await expect(result).resolves.toBeUndefined();
394
+ });
395
+ test("Should persist value when key does not exists", async () => {
396
+ const key = "a";
397
+ const value = 1;
398
+ await cache.addOrFail(key, value);
399
+ const result = await cache.get(key);
400
+ expect(result).toBe(value);
401
+ });
402
+ test("Should not throw error when key is expired", async () => {
403
+ const key = "a";
404
+ const value1 = 1;
405
+ await cache.addOrFail(key, value1, {
406
+ ttl: TTL,
407
+ });
408
+ await delay(TTL.addMilliseconds(10));
409
+ const value2 = 2;
410
+ const result = cache.addOrFail(key, value2);
411
+ await expect(result).resolves.toBeUndefined();
412
+ });
413
+ test("Should persist value when key is expired", async () => {
414
+ const key = "a";
415
+ const value1 = 1;
416
+ await cache.addOrFail(key, value1, {
417
+ ttl: TTL,
418
+ });
419
+ await delay(TTL.addMilliseconds(10));
420
+ const value2 = 2;
421
+ await cache.addOrFail(key, value2);
422
+ const result = await cache.get(key);
423
+ expect(result).toBe(value2);
424
+ });
425
+ test("Should throw KeyExistsCacheError when key exists", async () => {
426
+ const key = "a";
427
+ const value1 = 1;
428
+ await cache.addOrFail(key, value1);
429
+ const value2 = 2;
430
+ const result = cache.addOrFail(key, value2);
431
+ await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
432
+ });
433
+ test("Should throw KeyExistsCacheError when key is unexpired", async () => {
434
+ const key = "a";
435
+ const value1 = 1;
436
+ await cache.addOrFail(key, value1, {
437
+ ttl: LONG_TTL,
438
+ });
439
+ const value2 = 2;
440
+ const result = cache.addOrFail(key, value2);
441
+ await expect(result).rejects.toBeInstanceOf(KeyExistsCacheError);
442
+ });
443
+ test("Should not persist value when key exists", async () => {
444
+ const key = "a";
445
+ const value1 = 1;
446
+ await cache.addOrFail(key, value1);
447
+ const value2 = 2;
448
+ try {
449
+ await cache.addOrFail(key, value2);
450
+ }
451
+ catch {
452
+ /* EMPTY */
453
+ }
454
+ const result = await cache.get(key);
455
+ expect(result).toBe(value1);
456
+ });
457
+ test("Should not persist value when key is unexpired", async () => {
458
+ const key = "a";
459
+ const value1 = 1;
460
+ await cache.addOrFail(key, value1, {
461
+ ttl: LONG_TTL,
462
+ });
463
+ const value2 = 2;
464
+ try {
465
+ await cache.addOrFail(key, value2);
466
+ }
467
+ catch {
468
+ /* EMPTY */
469
+ }
470
+ const result = await cache.get(key);
471
+ expect(result).toBe(value1);
252
472
  });
253
473
  });
254
474
  describe("method: put", () => {
255
475
  test("Should return true when key exists", async () => {
256
- await cache.add("a", 1, null);
257
- await Task.delay(TTL.divide(4));
258
- expect(await cache.put("a", -1, null)).toBe(true);
476
+ const key = "a";
477
+ const value1 = 1;
478
+ await cache.add(key, value1);
479
+ const value2 = 2;
480
+ const result = await cache.put(key, value2);
481
+ expect(result).toBe(true);
259
482
  });
260
- test("Should persist value when key exist", async () => {
261
- await cache.add("a", 1, null);
262
- await Task.delay(TTL.divide(4));
263
- await cache.put("a", -1, null);
264
- await Task.delay(TTL.divide(4));
265
- expect(await cache.get("a")).toBe(-1);
483
+ test("Should persist value when key exists", async () => {
484
+ const key = "a";
485
+ const value1 = 1;
486
+ await cache.add(key, value1);
487
+ const value2 = 2;
488
+ await cache.put(key, value2);
489
+ const result = await cache.get(key);
490
+ expect(result).toBe(value2);
491
+ });
492
+ test("Should persist ttl when key exists", async () => {
493
+ const key = "a";
494
+ const value1 = 1;
495
+ await cache.add(key, value1);
496
+ const value2 = 2;
497
+ await cache.put(key, value2, { ttl: TTL });
498
+ await delay(TTL.addMilliseconds(10));
499
+ const result = await cache.get(key);
500
+ expect(result).toBeNull();
501
+ });
502
+ test("Should return true when key is unexpired", async () => {
503
+ const key = "a";
504
+ const value1 = 1;
505
+ await cache.add(key, value1, { ttl: LONG_TTL });
506
+ const value2 = 2;
507
+ const result = await cache.put(key, value2);
508
+ expect(result).toBe(true);
266
509
  });
267
- test("Should return false when key doesnt exists", async () => {
268
- expect(await cache.put("a", -1, null)).toBe(false);
269
- });
270
- test("Should return false when key is expired", async () => {
271
- await cache.add("a", 1, TTL);
272
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
273
- expect(await cache.put("a", -1, null)).toBe(false);
274
- });
275
- test("Should persist values when key doesnt exist", async () => {
276
- await cache.put("a", -1, null);
277
- await Task.delay(TTL.divide(4));
278
- expect(await cache.get("a")).toBe(-1);
279
- });
280
- test("Should persist values when key is expired", async () => {
281
- await cache.add("a", 1, TTL);
282
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
283
- await cache.put("a", -1, null);
284
- await Task.delay(TTL.divide(4));
285
- expect(await cache.get("a")).toBe(-1);
286
- });
287
- test("Should replace the ttl value", async () => {
288
- const ttlA = TimeSpan.fromMilliseconds(100);
289
- await cache.add("a", 1, ttlA);
290
- await Task.delay(TTL.divide(4));
291
- const ttlB = TimeSpan.fromMilliseconds(50);
292
- await cache.put("a", -1, ttlB);
293
- await Task.delay(ttlB);
294
- expect(await cache.get("a")).toBeNull();
510
+ test("Should persist value when key is unexpired", async () => {
511
+ const key = "a";
512
+ const value1 = 1;
513
+ await cache.add(key, value1, { ttl: LONG_TTL });
514
+ const value2 = 2;
515
+ await cache.put(key, value2);
516
+ const result = await cache.get(key);
517
+ expect(result).toBe(value2);
518
+ });
519
+ test("Should persist ttl when key is unexpired", async () => {
520
+ const key = "a";
521
+ const value1 = 1;
522
+ await cache.add(key, value1, { ttl: LONG_TTL });
523
+ const value2 = 2;
524
+ await cache.put(key, value2, { ttl: TTL });
525
+ await delay(TTL.addMilliseconds(10));
526
+ const result = await cache.get(key);
527
+ expect(result).toBeNull();
528
+ });
529
+ test("Should return false when key does not exist", async () => {
530
+ const key = "a";
531
+ const value = 1;
532
+ const result = await cache.put(key, value);
533
+ expect(result).toBe(false);
534
+ });
535
+ test("Should persist value when key does not exist", async () => {
536
+ const key = "a";
537
+ const value = 2;
538
+ await cache.put(key, value);
539
+ const result = await cache.get(key);
540
+ expect(result).toBe(value);
541
+ });
542
+ test("Should persist ttl when key does not exist", async () => {
543
+ const key = "a";
544
+ const value = 2;
545
+ await cache.put(key, value, { ttl: TTL });
546
+ await delay(TTL.addMilliseconds(10));
547
+ const result = await cache.get(key);
548
+ expect(result).toBeNull();
295
549
  });
296
550
  });
297
551
  describe("method: update", () => {
298
- test("Should return true when key exists", async () => {
299
- await cache.add("a", 1, null);
300
- await Task.delay(TTL.divide(4));
301
- expect(await cache.update("a", -1)).toBe(true);
552
+ test("Should return false when key does not exists", async () => {
553
+ const key = "a";
554
+ const value = 1;
555
+ const result = await cache.update(key, value);
556
+ expect(result).toBe(false);
557
+ });
558
+ test("Should not persist value when key does not exists", async () => {
559
+ const key = "a";
560
+ const value = 1;
561
+ await cache.update(key, value);
562
+ const result = await cache.get(key);
563
+ expect(result).toBeNull();
564
+ });
565
+ test("Should return false when key is expired", async () => {
566
+ const key = "a";
567
+ const value1 = 1;
568
+ await cache.add(key, value1, {
569
+ ttl: TTL,
570
+ });
571
+ await delay(TTL.addMilliseconds(10));
572
+ const value2 = 2;
573
+ const result = await cache.update(key, value2);
574
+ expect(result).toBe(false);
302
575
  });
303
- test("Should persist value when key exist", async () => {
304
- await cache.add("a", 1, null);
305
- await Task.delay(TTL.divide(4));
306
- await cache.update("a", -1);
307
- await Task.delay(TTL.divide(4));
308
- expect(await cache.get("a")).toBe(-1);
576
+ test("Should not persist value when key is expired", async () => {
577
+ const key = "a";
578
+ const value1 = 1;
579
+ await cache.add(key, value1, {
580
+ ttl: TTL,
581
+ });
582
+ await delay(TTL.addMilliseconds(10));
583
+ const value2 = 2;
584
+ await cache.update(key, value2);
585
+ const result = await cache.get(key);
586
+ expect(result).toBeNull();
309
587
  });
310
- test("Should return false when key doesnt exists", async () => {
311
- expect(await cache.update("a", -1)).toBe(false);
588
+ test("Should return true when key exists", async () => {
589
+ const key = "a";
590
+ const value1 = 1;
591
+ await cache.add(key, value1);
592
+ const value2 = 2;
593
+ const result = await cache.update(key, value2);
594
+ expect(result).toBe(true);
312
595
  });
313
- test("Should return false when key is expired", async () => {
314
- await cache.add("a", 1, TTL);
315
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
316
- expect(await cache.update("a", -1)).toBe(false);
596
+ test("Should return true when key is unexpired", async () => {
597
+ const key = "a";
598
+ const value1 = 1;
599
+ await cache.add(key, value1, { ttl: LONG_TTL });
600
+ const value2 = 2;
601
+ const result = await cache.update(key, value2);
602
+ expect(result).toBe(true);
317
603
  });
318
- test("Should not persist value when key doesnt exist", async () => {
319
- await cache.update("a", -1);
320
- await Task.delay(TTL.divide(4));
321
- expect(await cache.get("a")).toBeNull();
604
+ test("Should persist value when key exists", async () => {
605
+ const key = "a";
606
+ const value1 = 1;
607
+ await cache.add(key, value1);
608
+ const value2 = 2;
609
+ await cache.update(key, value2);
610
+ const result = await cache.get(key);
611
+ expect(result).toBe(value2);
612
+ });
613
+ test("Should persist value when key is unexpired", async () => {
614
+ const key = "a";
615
+ const value1 = 1;
616
+ await cache.add(key, value1, { ttl: LONG_TTL });
617
+ const value2 = 2;
618
+ await cache.update(key, value2);
619
+ const result = await cache.get(key);
620
+ expect(result).toBe(value2);
621
+ });
622
+ });
623
+ describe("method: updateOrFail", () => {
624
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
625
+ const key = "a";
626
+ const value = 1;
627
+ const result = cache.updateOrFail(key, value);
628
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
629
+ });
630
+ test("Should not persist value when key does not exists", async () => {
631
+ const key = "a";
632
+ const value = 1;
633
+ try {
634
+ await cache.updateOrFail(key, value);
635
+ }
636
+ catch {
637
+ /* EMPTY */
638
+ }
639
+ const result = await cache.get(key);
640
+ expect(result).toBeNull();
641
+ });
642
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
643
+ const key = "a";
644
+ const value1 = 1;
645
+ await cache.add(key, value1, {
646
+ ttl: TTL,
647
+ });
648
+ await delay(TTL.addMilliseconds(10));
649
+ const value2 = 2;
650
+ const result = cache.updateOrFail(key, value2);
651
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
322
652
  });
323
653
  test("Should not persist value when key is expired", async () => {
324
- await cache.add("a", 1, TTL);
325
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
326
- await cache.update("a", -1);
327
- expect(await cache.get("a")).toBeNull();
654
+ const key = "a";
655
+ const value1 = 1;
656
+ await cache.add(key, value1, {
657
+ ttl: TTL,
658
+ });
659
+ await delay(TTL.addMilliseconds(10));
660
+ const value2 = 2;
661
+ try {
662
+ await cache.updateOrFail(key, value2);
663
+ }
664
+ catch {
665
+ /* EMPTY */
666
+ }
667
+ const result = await cache.get(key);
668
+ expect(result).toBeNull();
669
+ });
670
+ test("Should not throw error when key exists", async () => {
671
+ const key = "a";
672
+ const value1 = 1;
673
+ await cache.add(key, value1);
674
+ const value2 = 2;
675
+ const result = cache.updateOrFail(key, value2);
676
+ await expect(result).resolves.toBeUndefined();
677
+ });
678
+ test("Should not throw error when key is unexpired", async () => {
679
+ const key = "a";
680
+ const value1 = 1;
681
+ await cache.add(key, value1, { ttl: LONG_TTL });
682
+ const value2 = 2;
683
+ const result = cache.updateOrFail(key, value2);
684
+ await expect(result).resolves.toBeUndefined();
685
+ });
686
+ test("Should persist value when key exists", async () => {
687
+ const key = "a";
688
+ const value1 = 1;
689
+ await cache.add(key, value1);
690
+ const value2 = 2;
691
+ await cache.updateOrFail(key, value2);
692
+ const result = await cache.get(key);
693
+ expect(result).toBe(value2);
694
+ });
695
+ test("Should persist value when key is unexpired", async () => {
696
+ const key = "a";
697
+ const value1 = 1;
698
+ await cache.add(key, value1, { ttl: LONG_TTL });
699
+ const value2 = 2;
700
+ await cache.updateOrFail(key, value2);
701
+ const result = await cache.get(key);
702
+ expect(result).toBe(value2);
328
703
  });
329
704
  });
330
705
  describe("method: increment", () => {
331
- test("Should return true when key exists", async () => {
332
- await cache.add("a", 1, null);
333
- await Task.delay(TTL.divide(4));
334
- expect(await cache.increment("a", 1)).toBe(true);
706
+ test("Should return false when key does not exists", async () => {
707
+ const key = "a";
708
+ const value = 1;
709
+ const result = await cache.increment(key, value);
710
+ expect(result).toBe(false);
711
+ });
712
+ test("Should not persist value when key does not exists", async () => {
713
+ const key = "a";
714
+ const value = 1;
715
+ await cache.increment(key, value);
716
+ const result = await cache.get(key);
717
+ expect(result).toBeNull();
335
718
  });
336
- test("Should persist increment when key exists", async () => {
337
- await cache.add("a", 1, null);
338
- await Task.delay(TTL.divide(4));
339
- await cache.increment("a", 1);
340
- await Task.delay(TTL.divide(4));
341
- expect(await cache.get("a")).toBe(2);
719
+ test("Should return false when key is expired", async () => {
720
+ const key = "a";
721
+ const value1 = 1;
722
+ await cache.add(key, value1, {
723
+ ttl: TTL,
724
+ });
725
+ await delay(TTL.addMilliseconds(10));
726
+ const value2 = 2;
727
+ const result = await cache.increment(key, value2);
728
+ expect(result).toBe(false);
342
729
  });
343
- test("Should return false when key doesnt exists", async () => {
344
- expect(await cache.increment("a", 1)).toBe(false);
730
+ test("Should not persist value when key is expired", async () => {
731
+ const key = "a";
732
+ const value1 = 1;
733
+ await cache.add(key, value1, {
734
+ ttl: TTL,
735
+ });
736
+ await delay(TTL.addMilliseconds(10));
737
+ const value2 = 2;
738
+ await cache.increment(key, value2);
739
+ const result = await cache.get(key);
740
+ expect(result).toBeNull();
345
741
  });
346
- test("Should return false when key is expired", async () => {
347
- await cache.add("a", 1, TTL);
348
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
349
- expect(await cache.increment("a", 1)).toBe(false);
742
+ test("Should return true when key exists", async () => {
743
+ const key = "a";
744
+ const value1 = 1;
745
+ await cache.add(key, value1);
746
+ const value2 = 2;
747
+ const result = await cache.increment(key, value2);
748
+ expect(result).toBe(true);
350
749
  });
351
- test("Should not persist increment when key doesnt exists", async () => {
352
- await cache.increment("a", 1);
353
- await Task.delay(TTL.divide(4));
354
- expect(await cache.get("a")).toBeNull();
750
+ test("Should return true when key is unexpired", async () => {
751
+ const key = "a";
752
+ const value1 = 1;
753
+ await cache.add(key, value1, { ttl: LONG_TTL });
754
+ const value2 = 2;
755
+ const result = await cache.increment(key, value2);
756
+ expect(result).toBe(true);
355
757
  });
356
- test("Should not persist increment when key is expired", async () => {
357
- await cache.add("a", 1, TTL);
358
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
359
- await cache.increment("a", 1);
360
- expect(await cache.get("a")).toBeNull();
758
+ test("Should persist value when key exists", async () => {
759
+ const key = "a";
760
+ const value1 = 1;
761
+ await cache.add(key, value1);
762
+ const value2 = 2;
763
+ await cache.increment(key, value2);
764
+ const result = await cache.get(key);
765
+ expect(result).toBe(3);
766
+ });
767
+ test("Should persist value when key is unexpired", async () => {
768
+ const key = "a";
769
+ const value1 = 1;
770
+ await cache.add(key, value1, { ttl: LONG_TTL });
771
+ const value2 = 2;
772
+ await cache.increment(key, value2);
773
+ const result = await cache.get(key);
774
+ expect(result).toBe(3);
361
775
  });
362
- test("Should throw TypeError key value is not number type", async () => {
363
- await cache.add("a", "str", null);
364
- await Task.delay(TTL.divide(4));
365
- await expect(cache.increment("a", 1)).rejects.toBeInstanceOf(TypeError);
776
+ });
777
+ describe("method: incrementOrFail", () => {
778
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
779
+ const key = "a";
780
+ const value = 1;
781
+ const result = cache.incrementOrFail(key, value);
782
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
783
+ });
784
+ test("Should not persist value when key does not exists", async () => {
785
+ const key = "a";
786
+ const value = 1;
787
+ try {
788
+ await cache.incrementOrFail(key, value);
789
+ }
790
+ catch {
791
+ /* EMPTY */
792
+ }
793
+ const result = await cache.get(key);
794
+ expect(result).toBeNull();
795
+ });
796
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
797
+ const key = "a";
798
+ const value1 = 1;
799
+ await cache.add(key, value1, {
800
+ ttl: TTL,
801
+ });
802
+ await delay(TTL.addMilliseconds(10));
803
+ const value2 = 2;
804
+ const result = cache.incrementOrFail(key, value2);
805
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
806
+ });
807
+ test("Should not persist value when key is expired", async () => {
808
+ const key = "a";
809
+ const value1 = 1;
810
+ await cache.add(key, value1, {
811
+ ttl: TTL,
812
+ });
813
+ await delay(TTL.addMilliseconds(10));
814
+ const value2 = 2;
815
+ try {
816
+ await cache.incrementOrFail(key, value2);
817
+ }
818
+ catch {
819
+ /* EMPTY */
820
+ }
821
+ const result = await cache.get(key);
822
+ expect(result).toBeNull();
823
+ });
824
+ test("Should not throw error when key exists", async () => {
825
+ const key = "a";
826
+ const value1 = 1;
827
+ await cache.add(key, value1);
828
+ const value2 = 2;
829
+ const result = cache.incrementOrFail(key, value2);
830
+ await expect(result).resolves.toBeUndefined();
831
+ });
832
+ test("Should not throw error when key is unexpired", async () => {
833
+ const key = "a";
834
+ const value1 = 1;
835
+ await cache.add(key, value1, { ttl: LONG_TTL });
836
+ const value2 = 2;
837
+ const result = cache.incrementOrFail(key, value2);
838
+ await expect(result).resolves.toBeUndefined();
839
+ });
840
+ test("Should persist value when key exists", async () => {
841
+ const key = "a";
842
+ const value1 = 1;
843
+ await cache.add(key, value1);
844
+ const value2 = 2;
845
+ await cache.incrementOrFail(key, value2);
846
+ const result = await cache.get(key);
847
+ expect(result).toBe(3);
848
+ });
849
+ test("Should persist value when key is unexpired", async () => {
850
+ const key = "a";
851
+ const value1 = 1;
852
+ await cache.add(key, value1, { ttl: LONG_TTL });
853
+ const value2 = 2;
854
+ await cache.incrementOrFail(key, value2);
855
+ const result = await cache.get(key);
856
+ expect(result).toBe(3);
366
857
  });
367
858
  });
368
859
  describe("method: decrement", () => {
369
- test("Should return true when key exists", async () => {
370
- await cache.add("a", 1, null);
371
- await Task.delay(TTL.divide(4));
372
- expect(await cache.decrement("a", 1)).toBe(true);
860
+ test("Should return false when key does not exists", async () => {
861
+ const key = "a";
862
+ const value = 1;
863
+ const result = await cache.decrement(key, value);
864
+ expect(result).toBe(false);
865
+ });
866
+ test("Should not persist value when key does not exists", async () => {
867
+ const key = "a";
868
+ const value = 1;
869
+ await cache.decrement(key, value);
870
+ const result = await cache.get(key);
871
+ expect(result).toBeNull();
373
872
  });
374
- test("Should persist decrement when key exists", async () => {
375
- await cache.add("a", 1, null);
376
- await Task.delay(TTL.divide(4));
377
- await cache.decrement("a", 1);
378
- await Task.delay(TTL.divide(4));
379
- expect(await cache.get("a")).toBe(0);
873
+ test("Should return false when key is expired", async () => {
874
+ const key = "a";
875
+ const value1 = 1;
876
+ await cache.add(key, value1, {
877
+ ttl: TTL,
878
+ });
879
+ await delay(TTL.addMilliseconds(10));
880
+ const value2 = 2;
881
+ const result = await cache.decrement(key, value2);
882
+ expect(result).toBe(false);
380
883
  });
381
- test("Should return false when key doesnt exists", async () => {
382
- expect(await cache.decrement("a", 1)).toBe(false);
884
+ test("Should not persist value when key is expired", async () => {
885
+ const key = "a";
886
+ const value1 = 1;
887
+ await cache.add(key, value1, {
888
+ ttl: TTL,
889
+ });
890
+ await delay(TTL.addMilliseconds(10));
891
+ const value2 = 2;
892
+ await cache.decrement(key, value2);
893
+ const result = await cache.get(key);
894
+ expect(result).toBeNull();
383
895
  });
384
- test("Should return false when key is expired", async () => {
385
- await cache.add("a", 1, TTL);
386
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
387
- expect(await cache.decrement("a", 1)).toBe(false);
896
+ test("Should return true when key exists", async () => {
897
+ const key = "a";
898
+ const value1 = 1;
899
+ await cache.add(key, value1);
900
+ const value2 = 2;
901
+ const result = await cache.decrement(key, value2);
902
+ expect(result).toBe(true);
903
+ });
904
+ test("Should return true when key is unexpired", async () => {
905
+ const key = "a";
906
+ const value1 = 1;
907
+ await cache.add(key, value1, { ttl: LONG_TTL });
908
+ const value2 = 2;
909
+ const result = await cache.decrement(key, value2);
910
+ expect(result).toBe(true);
388
911
  });
389
- test("Should not persist decrement when key doesnt exists", async () => {
390
- await cache.decrement("a", 1);
391
- await Task.delay(TTL.divide(4));
392
- expect(await cache.get("a")).toBeNull();
912
+ test("Should persist value when key exists", async () => {
913
+ const key = "a";
914
+ const value1 = 1;
915
+ await cache.add(key, value1);
916
+ const value2 = 2;
917
+ await cache.decrement(key, value2);
918
+ const result = await cache.get(key);
919
+ expect(result).toBe(-1);
920
+ });
921
+ test("Should persist value when key is unexpired", async () => {
922
+ const key = "a";
923
+ const value1 = 1;
924
+ await cache.add(key, value1, { ttl: LONG_TTL });
925
+ const value2 = 2;
926
+ await cache.decrement(key, value2);
927
+ const result = await cache.get(key);
928
+ expect(result).toBe(-1);
393
929
  });
394
- test("Should not persist decrement when key is expired", async () => {
395
- await cache.add("a", 1, TTL);
396
- await Task.delay(TTL.addTimeSpan(TTL.divide(4)));
397
- await cache.decrement("a", 1);
398
- expect(await cache.get("a")).toBeNull();
930
+ });
931
+ describe("method: decrementOrFail", () => {
932
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
933
+ const key = "a";
934
+ const value = 1;
935
+ const result = cache.decrementOrFail(key, value);
936
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
937
+ });
938
+ test("Should not persist value when key does not exists", async () => {
939
+ const key = "a";
940
+ const value = 1;
941
+ try {
942
+ await cache.decrementOrFail(key, value);
943
+ }
944
+ catch {
945
+ /* EMPTY */
946
+ }
947
+ const result = await cache.get(key);
948
+ expect(result).toBeNull();
949
+ });
950
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
951
+ const key = "a";
952
+ const value1 = 1;
953
+ await cache.add(key, value1, {
954
+ ttl: TTL,
955
+ });
956
+ await delay(TTL.addMilliseconds(10));
957
+ const value2 = 2;
958
+ const result = cache.decrementOrFail(key, value2);
959
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
399
960
  });
400
- test("Should throw TypeError key value is not number type", async () => {
401
- await cache.add("a", "str", null);
402
- await Task.delay(TTL.divide(4));
403
- await expect(cache.decrement("a", 1)).rejects.toBeInstanceOf(TypeError);
961
+ test("Should not persist value when key is expired", async () => {
962
+ const key = "a";
963
+ const value1 = 1;
964
+ await cache.add(key, value1, {
965
+ ttl: TTL,
966
+ });
967
+ await delay(TTL.addMilliseconds(10));
968
+ const value2 = 2;
969
+ try {
970
+ await cache.decrementOrFail(key, value2);
971
+ }
972
+ catch {
973
+ /* EMPTY */
974
+ }
975
+ const result = await cache.get(key);
976
+ expect(result).toBeNull();
977
+ });
978
+ test("Should not throw error when key exists", async () => {
979
+ const key = "a";
980
+ const value1 = 1;
981
+ await cache.add(key, value1);
982
+ const value2 = 2;
983
+ const result = cache.decrementOrFail(key, value2);
984
+ await expect(result).resolves.toBeUndefined();
985
+ });
986
+ test("Should not throw error when key is unexpired", async () => {
987
+ const key = "a";
988
+ const value1 = 1;
989
+ await cache.add(key, value1, { ttl: LONG_TTL });
990
+ const value2 = 2;
991
+ const result = cache.decrementOrFail(key, value2);
992
+ await expect(result).resolves.toBeUndefined();
993
+ });
994
+ test("Should persist value when key exists", async () => {
995
+ const key = "a";
996
+ const value1 = 1;
997
+ await cache.add(key, value1);
998
+ const value2 = 2;
999
+ await cache.decrementOrFail(key, value2);
1000
+ const result = await cache.get(key);
1001
+ expect(result).toBe(-1);
1002
+ });
1003
+ test("Should persist value when key is unexpired", async () => {
1004
+ const key = "a";
1005
+ const value1 = 1;
1006
+ await cache.add(key, value1, { ttl: LONG_TTL });
1007
+ const value2 = 2;
1008
+ await cache.decrementOrFail(key, value2);
1009
+ const result = await cache.get(key);
1010
+ expect(result).toBe(-1);
404
1011
  });
405
1012
  });
406
1013
  describe("method: remove", () => {
1014
+ test("Should return false when key does not exists", async () => {
1015
+ const key = "a";
1016
+ const result = await cache.remove(key);
1017
+ expect(result).toBe(false);
1018
+ });
1019
+ test("Should return false when key is expired", async () => {
1020
+ const key = "a";
1021
+ await cache.add(key, 1, {
1022
+ ttl: TTL,
1023
+ });
1024
+ await delay(TTL.addMilliseconds(10));
1025
+ const result = await cache.remove(key);
1026
+ expect(result).toBe(false);
1027
+ });
407
1028
  test("Should return true when key exists", async () => {
408
- await cache.add("a", 1, null);
409
- await Task.delay(TTL.divide(4));
410
- const result = await cache.remove("a");
1029
+ const key = "a";
1030
+ await cache.add(key, 1);
1031
+ const result = await cache.remove(key);
1032
+ expect(result).toBe(true);
1033
+ });
1034
+ test("Should return true when key is unexpired", async () => {
1035
+ const key = "a";
1036
+ await cache.add(key, 1, { ttl: LONG_TTL });
1037
+ const result = await cache.remove(key);
411
1038
  expect(result).toBe(true);
412
1039
  });
413
- test("Should persist the key removal when key exists", async () => {
414
- await cache.add("a", 1, null);
415
- await Task.delay(TTL.divide(4));
416
- await cache.remove("a");
417
- await Task.delay(TTL.divide(4));
418
- expect(await cache.get("a")).toEqual(null);
1040
+ test("Should persist removal when key exists", async () => {
1041
+ const key = "a";
1042
+ await cache.add(key, 1);
1043
+ await cache.remove(key);
1044
+ const result = await cache.get(key);
1045
+ expect(result).toBeNull();
1046
+ });
1047
+ test("Should persist removal when key is unexpired", async () => {
1048
+ const key = "a";
1049
+ await cache.add(key, 1, { ttl: LONG_TTL });
1050
+ await cache.remove(key);
1051
+ const result = await cache.get(key);
1052
+ expect(result).toBeNull();
1053
+ });
1054
+ });
1055
+ describe("method: removeOrFail", () => {
1056
+ test("Should throw KeyNotFoundCacheError when key does not exists", async () => {
1057
+ const key = "a";
1058
+ const result = cache.removeOrFail(key);
1059
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1060
+ });
1061
+ test("Should throw KeyNotFoundCacheError when key is expired", async () => {
1062
+ const key = "a";
1063
+ await cache.add(key, 1, {
1064
+ ttl: TTL,
1065
+ });
1066
+ await delay(TTL.addMilliseconds(10));
1067
+ const result = cache.removeOrFail(key);
1068
+ await expect(result).rejects.toBeInstanceOf(KeyNotFoundCacheError);
1069
+ });
1070
+ test("Should not throw error when key exists", async () => {
1071
+ const key = "a";
1072
+ await cache.add(key, 1);
1073
+ const result = cache.removeOrFail(key);
1074
+ await expect(result).resolves.toBeUndefined();
1075
+ });
1076
+ test("Should not throw error when key is unexpired", async () => {
1077
+ const key = "a";
1078
+ await cache.add(key, 1, { ttl: LONG_TTL });
1079
+ const result = cache.removeOrFail(key);
1080
+ await expect(result).resolves.toBeUndefined();
1081
+ });
1082
+ test("Should persist removal when key exists", async () => {
1083
+ const key = "a";
1084
+ await cache.add(key, 1);
1085
+ await cache.removeOrFail(key);
1086
+ const result = await cache.get(key);
1087
+ expect(result).toBeNull();
1088
+ });
1089
+ test("Should persist removal when key is unexpired", async () => {
1090
+ const key = "a";
1091
+ await cache.add(key, 1, { ttl: LONG_TTL });
1092
+ await cache.removeOrFail(key);
1093
+ const result = await cache.get(key);
1094
+ expect(result).toBeNull();
419
1095
  });
420
1096
  });
421
1097
  describe("method: removeMany", () => {
1098
+ test("Should return false when all keys dont exists", async () => {
1099
+ const keyA = "a";
1100
+ const keyB = "b";
1101
+ const keyC = "c";
1102
+ await cache.add(keyA, 1, { ttl: TTL });
1103
+ await delay(TTL.addMilliseconds(10));
1104
+ const result = await cache.removeMany([keyA, keyB, keyC]);
1105
+ expect(result).toBe(false);
1106
+ });
422
1107
  test("Should return true when one key exists", async () => {
423
- await cache.add("a", 1, null);
424
- await Task.delay(TTL.divide(4));
425
- const result = await cache.removeMany(["a", "b", "c"]);
1108
+ const keyA = "a";
1109
+ const keyB = "b";
1110
+ const keyC = "c";
1111
+ await cache.add(keyA, 1, { ttl: TTL });
1112
+ await delay(TTL.addMilliseconds(10));
1113
+ await cache.add(keyC, 2);
1114
+ const result = await cache.removeMany([keyA, keyB, keyC]);
426
1115
  expect(result).toBe(true);
427
1116
  });
428
- test("Should persist removal of the keys that exists", async () => {
429
- await cache.add("a", 1, null);
430
- await cache.add("b", 2, null);
431
- await cache.add("c", 3, null);
432
- await Task.delay(TTL.divide(4));
433
- await cache.removeMany(["a", "b"]);
434
- await Task.delay(TTL.divide(4));
435
- const result = [
436
- await cache.get("a"),
437
- await cache.get("b"),
438
- await cache.get("c"),
439
- ];
440
- expect(result).toEqual([null, null, 3]);
441
- });
442
- });
443
- describe("method: clear", () => {
444
- test("Should remove all keys", async () => {
445
- await cache.add("a", 1);
446
- await cache.add("b", 2);
447
- await cache.add("c", 3);
448
- await cache.add("d", 4);
449
- await cache.clear();
450
- const result = [
451
- await cache.get("a"),
452
- await cache.get("b"),
453
- await cache.get("c"),
454
- await cache.get("d"),
455
- ];
456
- expect(result).toStrictEqual([null, null, null, null]);
1117
+ test("Should persist removal when one key exists", async () => {
1118
+ const keyA = "a";
1119
+ const keyB = "b";
1120
+ const keyC = "c";
1121
+ await cache.add(keyA, 1, { ttl: TTL });
1122
+ await delay(TTL.addMilliseconds(10));
1123
+ await cache.add(keyC, 2);
1124
+ await cache.removeMany([keyA, keyB, keyC]);
1125
+ const resultA = await cache.get(keyA);
1126
+ expect(resultA).toBeNull();
1127
+ const resultB = await cache.get(keyB);
1128
+ expect(resultB).toBeNull();
1129
+ const resultC = await cache.get(keyC);
1130
+ expect(resultC).toBeNull();
457
1131
  });
458
1132
  });
459
1133
  });
460
- describe("Event tests:", () => {
1134
+ describe.skipIf(excludeEventTests)("Event tests:", () => {
461
1135
  describe("method: exists", () => {
462
1136
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
463
- let event_ = null;
464
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
465
- event_ = event;
1137
+ const handlerFn = vi.fn((_event) => { });
1138
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1139
+ const key = "a";
1140
+ await cache.exists(key);
1141
+ expect(handlerFn).toHaveBeenCalledOnce();
1142
+ expect(handlerFn).toHaveBeenCalledWith({
1143
+ key: expect.any(Key),
466
1144
  });
467
- await cache.exists("a");
468
- await Task.delay(DELAY_TIME);
469
- expect(event_?.key).toBe("a");
470
- await unsubscribe();
1145
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1146
+ expect(keyObj?.get()).toBe(key);
471
1147
  });
472
1148
  test("Should dispatch FoundCacheEvent when key exists", async () => {
473
- let event_ = null;
474
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
475
- event_ = event;
1149
+ const handlerFn = vi.fn((_event) => { });
1150
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1151
+ const key = "a";
1152
+ const value = 1;
1153
+ await cache.add(key, value);
1154
+ await cache.exists(key);
1155
+ expect(handlerFn).toHaveBeenCalledOnce();
1156
+ expect(handlerFn).toHaveBeenCalledWith({
1157
+ key: expect.any(Key),
1158
+ value,
476
1159
  });
477
- await cache.add("a", 1);
478
- await cache.exists("a");
479
- await Task.delay(DELAY_TIME);
480
- expect(event_?.key).toBe("a");
481
- expect(event_?.value).toBe(1);
482
- await unsubscribe();
1160
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1161
+ expect(keyObj?.get()).toBe(key);
483
1162
  });
484
1163
  });
485
1164
  describe("method: missing", () => {
486
1165
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
487
- let event_ = null;
488
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
489
- event_ = event;
1166
+ const handlerFn = vi.fn((_event) => { });
1167
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1168
+ const key = "a";
1169
+ await cache.missing(key);
1170
+ expect(handlerFn).toHaveBeenCalledOnce();
1171
+ expect(handlerFn).toHaveBeenCalledWith({
1172
+ key: expect.any(Key),
490
1173
  });
491
- await cache.missing("a");
492
- await Task.delay(DELAY_TIME);
493
- expect(event_?.key).toBe("a");
494
- await unsubscribe();
1174
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1175
+ expect(keyObj?.get()).toBe(key);
495
1176
  });
496
1177
  test("Should dispatch FoundCacheEvent when key exists", async () => {
497
- let event_ = null;
498
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
499
- event_ = event;
1178
+ const handlerFn = vi.fn((_event) => { });
1179
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1180
+ const key = "a";
1181
+ const value = 1;
1182
+ await cache.add(key, value);
1183
+ await cache.missing(key);
1184
+ expect(handlerFn).toHaveBeenCalledOnce();
1185
+ expect(handlerFn).toHaveBeenCalledWith({
1186
+ key: expect.any(Key),
1187
+ value,
500
1188
  });
501
- await cache.add("a", 1);
502
- await cache.missing("a");
503
- await Task.delay(DELAY_TIME);
504
- expect(event_?.key).toBe("a");
505
- expect(event_?.value).toBe(1);
506
- await unsubscribe();
1189
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1190
+ expect(keyObj?.get()).toBe(key);
507
1191
  });
508
1192
  });
509
1193
  describe("method: get", () => {
510
1194
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
511
- let event_ = null;
512
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
513
- event_ = event;
1195
+ const handlerFn = vi.fn((_event) => { });
1196
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1197
+ const key = "a";
1198
+ await cache.get(key);
1199
+ expect(handlerFn).toHaveBeenCalledOnce();
1200
+ expect(handlerFn).toHaveBeenCalledWith({
1201
+ key: expect.any(Key),
514
1202
  });
515
- await cache.get("a");
516
- await Task.delay(DELAY_TIME);
517
- expect(event_?.key).toBe("a");
518
- await unsubscribe();
1203
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1204
+ expect(keyObj?.get()).toBe(key);
519
1205
  });
520
1206
  test("Should dispatch FoundCacheEvent when key exists", async () => {
521
- let event_ = null;
522
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
523
- event_ = event;
1207
+ const handlerFn = vi.fn((_event) => { });
1208
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1209
+ const key = "a";
1210
+ const value = 1;
1211
+ await cache.add(key, value);
1212
+ await cache.get(key);
1213
+ expect(handlerFn).toHaveBeenCalledOnce();
1214
+ expect(handlerFn).toHaveBeenCalledWith({
1215
+ key: expect.any(Key),
1216
+ value,
524
1217
  });
525
- await cache.add("a", 1);
526
- await cache.get("a");
527
- await Task.delay(DELAY_TIME);
528
- expect(event_?.key).toBe("a");
529
- expect(event_?.value).toBe(1);
530
- await unsubscribe();
1218
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1219
+ expect(keyObj?.get()).toBe(key);
531
1220
  });
532
1221
  });
533
1222
  describe("method: getOr", () => {
534
1223
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
535
- let event_ = null;
536
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
537
- event_ = event;
1224
+ const handlerFn = vi.fn((_event) => { });
1225
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1226
+ const key = "a";
1227
+ await cache.getOr(key, -1);
1228
+ expect(handlerFn).toHaveBeenCalledOnce();
1229
+ expect(handlerFn).toHaveBeenCalledWith({
1230
+ key: expect.any(Key),
538
1231
  });
539
- await cache.getOr("a", 1);
540
- await Task.delay(DELAY_TIME);
541
- expect(event_?.key).toBe("a");
542
- await unsubscribe();
1232
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1233
+ expect(keyObj?.get()).toBe(key);
543
1234
  });
544
1235
  test("Should dispatch FoundCacheEvent when key exists", async () => {
545
- let event_ = null;
546
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
547
- event_ = event;
1236
+ const handlerFn = vi.fn((_event) => { });
1237
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1238
+ const key = "a";
1239
+ const value = 1;
1240
+ await cache.add(key, value);
1241
+ await cache.getOr(key, -1);
1242
+ expect(handlerFn).toHaveBeenCalledOnce();
1243
+ expect(handlerFn).toHaveBeenCalledWith({
1244
+ key: expect.any(Key),
1245
+ value,
548
1246
  });
549
- await cache.add("a", 1);
550
- await cache.getOr("a", 1);
551
- await Task.delay(DELAY_TIME);
552
- expect(event_?.key).toBe("a");
553
- expect(event_?.value).toBe(1);
554
- await unsubscribe();
1247
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1248
+ expect(keyObj?.get()).toBe(key);
555
1249
  });
556
1250
  });
557
1251
  describe("method: getOrFail", () => {
558
1252
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
559
- let event_ = null;
560
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
561
- event_ = event;
562
- });
1253
+ const handlerFn = vi.fn((_event) => { });
1254
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1255
+ const key = "a";
563
1256
  try {
564
- await cache.getOrFail("a");
1257
+ await cache.getOrFail(key);
565
1258
  }
566
1259
  catch {
567
- /* Empty */
1260
+ /* EMPTY */
568
1261
  }
569
- await Task.delay(DELAY_TIME);
570
- expect(event_?.key).toBe("a");
571
- await unsubscribe();
1262
+ expect(handlerFn).toHaveBeenCalledOnce();
1263
+ expect(handlerFn).toHaveBeenCalledWith({
1264
+ key: expect.any(Key),
1265
+ });
1266
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1267
+ expect(keyObj?.get()).toBe(key);
572
1268
  });
573
1269
  test("Should dispatch FoundCacheEvent when key exists", async () => {
574
- let event_ = null;
575
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
576
- event_ = event;
1270
+ const handlerFn = vi.fn((_event) => { });
1271
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1272
+ const key = "a";
1273
+ const value = 1;
1274
+ await cache.add(key, value);
1275
+ await cache.getOrFail(key);
1276
+ expect(handlerFn).toHaveBeenCalledOnce();
1277
+ expect(handlerFn).toHaveBeenCalledWith({
1278
+ key: expect.any(Key),
1279
+ value,
577
1280
  });
578
- await cache.add("a", 1);
579
- await cache.getOrFail("a");
580
- await Task.delay(DELAY_TIME);
581
- expect(event_?.key).toBe("a");
582
- expect(event_?.value).toBe(1);
583
- await unsubscribe();
1281
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1282
+ expect(keyObj?.get()).toBe(key);
584
1283
  });
585
1284
  });
586
1285
  describe("method: add", () => {
587
1286
  test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
588
- let event_ = null;
589
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
590
- if (event.type === "added") {
591
- event_ = event;
592
- }
1287
+ const handlerFn = vi.fn((_event) => { });
1288
+ await cache.addListener(CACHE_EVENTS.ADDED, handlerFn);
1289
+ const key = "a";
1290
+ const value = 1;
1291
+ await cache.add(key, value, { ttl: TTL });
1292
+ expect(handlerFn).toHaveBeenCalledOnce();
1293
+ expect(handlerFn).toHaveBeenCalledWith({
1294
+ key: expect.any(Key),
1295
+ value,
1296
+ ttl: expect.any(TimeSpan),
593
1297
  });
594
- const ttl = TimeSpan.fromMilliseconds(20);
595
- await cache.add("a", 1, ttl);
596
- await Task.delay(DELAY_TIME);
597
- expect(event_?.key).toBe("a");
598
- expect(event_?.value).toBe(1);
599
- expect(event_?.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
600
- await unsubscribe();
1298
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1299
+ expect(keyObj?.get()).toBe(key);
1300
+ const ttl_ = handlerFn.mock.calls[0]?.[0].ttl;
1301
+ expect(ttl_?.toMilliseconds()).toBe(TTL.toMilliseconds());
601
1302
  });
602
1303
  });
603
1304
  describe("method: update", () => {
1305
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1306
+ const handlerFn = vi.fn((_event) => { });
1307
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1308
+ const key = "a";
1309
+ const value = 1;
1310
+ await cache.update(key, value);
1311
+ expect(handlerFn).toHaveBeenCalledOnce();
1312
+ expect(handlerFn).toHaveBeenCalledWith({
1313
+ key: expect.any(Key),
1314
+ });
1315
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1316
+ expect(keyObj?.get()).toBe(key);
1317
+ });
604
1318
  test("Should dispatch UpdatedCacheEvent when key exists", async () => {
605
- let event_ = null;
606
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
607
- if (event.type === "updated") {
608
- event_ = event;
609
- }
1319
+ const handlerFn = vi.fn((_event) => { });
1320
+ await cache.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1321
+ const key = "a";
1322
+ const value1 = 1;
1323
+ await cache.add(key, value1);
1324
+ const value2 = 2;
1325
+ await cache.update(key, value2);
1326
+ expect(handlerFn).toHaveBeenCalledOnce();
1327
+ expect(handlerFn).toHaveBeenCalledWith({
1328
+ key: expect.any(Key),
1329
+ value: value2,
610
1330
  });
611
- await cache.add("a", 1);
612
- await cache.update("a", 2);
613
- await Task.delay(DELAY_TIME);
614
- expect(event_?.key).toBe("a");
615
- expect(event_?.value).toBe(2);
616
- await unsubscribe();
1331
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1332
+ expect(keyObj?.get()).toBe(key);
617
1333
  });
1334
+ });
1335
+ describe("method: updateOrFail", () => {
618
1336
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
619
- let event_ = null;
620
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
621
- event_ = event;
1337
+ const handlerFn = vi.fn((_event) => { });
1338
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1339
+ const key = "a";
1340
+ const value = 1;
1341
+ try {
1342
+ await cache.updateOrFail(key, value);
1343
+ }
1344
+ catch {
1345
+ /* EMPTY */
1346
+ }
1347
+ expect(handlerFn).toHaveBeenCalledOnce();
1348
+ expect(handlerFn).toHaveBeenCalledWith({
1349
+ key: expect.any(Key),
622
1350
  });
623
- await cache.update("a", 2);
624
- await Task.delay(DELAY_TIME);
625
- expect(event_?.key).toBe("a");
626
- await unsubscribe();
1351
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1352
+ expect(keyObj?.get()).toBe(key);
1353
+ });
1354
+ test("Should dispatch UpdatedCacheEvent when key exists", async () => {
1355
+ const handlerFn = vi.fn((_event) => { });
1356
+ await cache.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1357
+ const key = "a";
1358
+ const value1 = 1;
1359
+ await cache.add(key, value1);
1360
+ const value2 = 2;
1361
+ await cache.updateOrFail(key, value2);
1362
+ expect(handlerFn).toHaveBeenCalledOnce();
1363
+ expect(handlerFn).toHaveBeenCalledWith({
1364
+ key: expect.any(Key),
1365
+ value: value2,
1366
+ });
1367
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1368
+ expect(keyObj?.get()).toBe(key);
627
1369
  });
628
1370
  });
629
1371
  describe("method: put", () => {
630
1372
  test("Should dispatch AddedCacheEvent when key doesnt exists", async () => {
631
- let event_ = null;
632
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
633
- if (event.type === "added") {
634
- event_ = event;
635
- }
636
- });
637
- const ttl = TimeSpan.fromMilliseconds(20);
638
- await cache.put("a", 1, ttl);
639
- await Task.delay(DELAY_TIME);
640
- expect(event_?.key).toBe("a");
641
- expect(event_?.value).toBe(1);
642
- expect(event_?.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
643
- await unsubscribe();
1373
+ const handlerFn = vi.fn((_event) => { });
1374
+ await cache.addListener(CACHE_EVENTS.ADDED, handlerFn);
1375
+ const key = "a";
1376
+ const value = 1;
1377
+ await cache.put(key, value, { ttl: TTL });
1378
+ expect(handlerFn).toHaveBeenCalledOnce();
1379
+ expect(handlerFn).toHaveBeenCalledWith({
1380
+ key: expect.any(Key),
1381
+ value,
1382
+ ttl: expect.any(TimeSpan),
1383
+ });
1384
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1385
+ expect(keyObj?.get()).toBe(key);
1386
+ const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1387
+ expect(ttl?.toMilliseconds()).toBe(ttl?.toMilliseconds());
644
1388
  });
645
1389
  test("Should dispatch UpdatedCacheEvent when key exists", async () => {
646
- let event_ = null;
647
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
648
- if (event.type === "updated") {
649
- event_ = event;
650
- }
1390
+ const handlerFn = vi.fn((_event) => { });
1391
+ await cache.addListener(CACHE_EVENTS.UPDATED, handlerFn);
1392
+ const key = "a";
1393
+ const value = 1;
1394
+ await cache.add(key, value);
1395
+ await cache.put(key, value, { ttl: TTL });
1396
+ expect(handlerFn).toHaveBeenCalledOnce();
1397
+ expect(handlerFn).toHaveBeenCalledWith({
1398
+ key: expect.any(Key),
1399
+ value,
651
1400
  });
652
- await cache.put("a", 1);
653
- await cache.put("a", 2);
654
- await Task.delay(DELAY_TIME);
655
- expect(event_?.key).toBe("a");
656
- expect(event_?.value).toBe(2);
657
- await unsubscribe();
1401
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1402
+ expect(keyObj?.get()).toBe(key);
658
1403
  });
659
1404
  });
660
1405
  describe("method: remove", () => {
1406
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1407
+ const handlerFn = vi.fn((_event) => { });
1408
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1409
+ const key = "a";
1410
+ await cache.remove(key);
1411
+ expect(handlerFn).toHaveBeenCalledOnce();
1412
+ expect(handlerFn).toHaveBeenCalledWith({
1413
+ key: expect.any(Key),
1414
+ });
1415
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1416
+ expect(keyObj?.get()).toBe(key);
1417
+ });
661
1418
  test("Should dispatch RemovedCacheEvent when key exists", async () => {
662
- let event_ = null;
663
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
664
- if (event.type === "removed") {
665
- event_ = event;
666
- }
1419
+ const handlerFn = vi.fn((_event) => { });
1420
+ await cache.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1421
+ const key = "a";
1422
+ const value = 1;
1423
+ await cache.add(key, value);
1424
+ await cache.remove(key);
1425
+ expect(handlerFn).toHaveBeenCalledOnce();
1426
+ expect(handlerFn).toHaveBeenCalledWith({
1427
+ key: expect.any(Key),
667
1428
  });
668
- await cache.add("a", 1);
669
- await cache.remove("a");
670
- await Task.delay(DELAY_TIME);
671
- expect(event_?.key).toBe("a");
672
- await unsubscribe();
1429
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1430
+ expect(keyObj?.get()).toBe(key);
673
1431
  });
1432
+ });
1433
+ describe("method: removeOrFail", () => {
674
1434
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
675
- let event_ = null;
676
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
677
- event_ = event;
1435
+ const handlerFn = vi.fn((_event) => { });
1436
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1437
+ const key = "a";
1438
+ try {
1439
+ await cache.removeOrFail(key);
1440
+ }
1441
+ catch {
1442
+ /* EMPTY */
1443
+ }
1444
+ expect(handlerFn).toHaveBeenCalledOnce();
1445
+ expect(handlerFn).toHaveBeenCalledWith({
1446
+ key: expect.any(Key),
678
1447
  });
679
- await cache.remove("a");
680
- await Task.delay(DELAY_TIME);
681
- expect(event_?.key).toBe("a");
682
- await unsubscribe();
1448
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1449
+ expect(keyObj?.get()).toBe(key);
1450
+ });
1451
+ test("Should dispatch RemovedCacheEvent when key exists", async () => {
1452
+ const handlerFn = vi.fn((_event) => { });
1453
+ await cache.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1454
+ const key = "a";
1455
+ const value = 1;
1456
+ await cache.add(key, value);
1457
+ await cache.removeOrFail(key);
1458
+ expect(handlerFn).toHaveBeenCalledOnce();
1459
+ expect(handlerFn).toHaveBeenCalledWith({
1460
+ key: expect.any(Key),
1461
+ });
1462
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1463
+ expect(keyObj?.get()).toBe(key);
683
1464
  });
684
1465
  });
685
1466
  describe("method: removeMany", () => {
686
- test("Should dispatch RemovedCacheEvent when key doesnt exists", async () => {
687
- let event_ = null;
688
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
689
- if (event.type === "removed") {
690
- event_ = event;
691
- }
1467
+ test("Should dispatch RemovedCacheEvent when one key exists", async () => {
1468
+ const handlerFn = vi.fn((_event) => { });
1469
+ await cache.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1470
+ const key1 = "a";
1471
+ const key2 = "b";
1472
+ const value = 1;
1473
+ await cache.add(key1, value);
1474
+ await cache.removeMany([key1, key2]);
1475
+ expect(handlerFn).toHaveBeenCalledTimes(2);
1476
+ expect(handlerFn).toHaveBeenCalledWith({
1477
+ key: expect.any(Key),
692
1478
  });
693
- await cache.add("a", 1);
694
- await cache.removeMany(["a"]);
695
- await Task.delay(DELAY_TIME);
696
- expect(event_?.key).toBe("a");
697
- await unsubscribe();
698
- });
699
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
700
- let event_ = null;
701
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
702
- event_ = event;
1479
+ const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1480
+ expect(keyObj1?.get()).toBe("a");
1481
+ const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1482
+ expect(keyObj2?.get()).toBe("b");
1483
+ });
1484
+ test("Should dispatch NotFoundCacheEvent when all keys doesnt exists", async () => {
1485
+ const handlerFn = vi.fn((_event) => { });
1486
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1487
+ const key1 = "a";
1488
+ const key2 = "b";
1489
+ await cache.removeMany([key1, key2]);
1490
+ expect(handlerFn).toHaveBeenCalledTimes(2);
1491
+ expect(handlerFn).toHaveBeenCalledWith({
1492
+ key: expect.any(Key),
703
1493
  });
704
- await cache.removeMany(["a"]);
705
- await Task.delay(DELAY_TIME);
706
- expect(event_?.key).toBe("a");
707
- await unsubscribe();
1494
+ const keyObj1 = handlerFn.mock.calls[0]?.[0].key;
1495
+ expect(keyObj1?.get()).toBe("a");
1496
+ const keyObj2 = handlerFn.mock.calls[1]?.[0].key;
1497
+ expect(keyObj2?.get()).toBe("b");
708
1498
  });
709
1499
  });
710
1500
  describe("method: getAndRemove", () => {
711
1501
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
712
- let event_ = null;
713
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
714
- event_ = event;
1502
+ const handlerFn = vi.fn((_event) => { });
1503
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1504
+ const key = "a";
1505
+ await cache.getAndRemove(key);
1506
+ expect(handlerFn).toHaveBeenCalledOnce();
1507
+ expect(handlerFn).toHaveBeenCalledWith({
1508
+ key: expect.any(Key),
715
1509
  });
716
- await cache.getAndRemove("a");
717
- await Task.delay(DELAY_TIME);
718
- expect(event_?.key).toBe("a");
719
- await unsubscribe();
720
- });
721
- test("Should dispatch FoundCacheEvent when key exists", async () => {
722
- let event_ = null;
723
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
724
- event_ = event;
725
- });
726
- await cache.add("a", 1);
727
- await cache.getAndRemove("a");
728
- await Task.delay(DELAY_TIME);
729
- expect(event_?.key).toBe("a");
730
- expect(event_?.value).toBe(1);
731
- await unsubscribe();
1510
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1511
+ expect(keyObj?.get()).toBe(key);
1512
+ });
1513
+ test("Should not dispatch FoundCacheEvent when key exists", async () => {
1514
+ const handlerFn = vi.fn((_event) => { });
1515
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1516
+ const key = "a";
1517
+ const value = 1;
1518
+ await cache.add(key, value);
1519
+ await cache.getAndRemove(key);
1520
+ expect(handlerFn).not.toHaveBeenCalled();
732
1521
  });
733
1522
  test("Should dispatch RemovedCacheEvent when key exists", async () => {
734
- let event_ = null;
735
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
736
- if (event.type === "removed") {
737
- event_ = event;
738
- }
1523
+ const handlerFn = vi.fn((_event) => { });
1524
+ await cache.addListener(CACHE_EVENTS.REMOVED, handlerFn);
1525
+ const key = "a";
1526
+ const value = 1;
1527
+ await cache.add(key, value);
1528
+ await cache.getAndRemove(key);
1529
+ expect(handlerFn).toHaveBeenCalledOnce();
1530
+ expect(handlerFn).toHaveBeenCalledWith({
1531
+ key: expect.any(Key),
739
1532
  });
740
- await cache.add("a", 1);
741
- await cache.getAndRemove("a");
742
- await Task.delay(DELAY_TIME);
743
- expect(event_?.key).toBe("a");
744
- await unsubscribe();
1533
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1534
+ expect(keyObj?.get()).toBe(key);
745
1535
  });
746
1536
  });
747
1537
  describe("method: getOrAdd", () => {
748
- test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
749
- let event_ = null;
750
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
751
- event_ = event;
752
- });
753
- await cache.getOrAdd("a", 1);
754
- await Task.delay(DELAY_TIME);
755
- expect(event_?.key).toBe("a");
756
- await unsubscribe();
1538
+ test("Should not dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1539
+ const handlerFn = vi.fn((_event) => { });
1540
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1541
+ const key = "a";
1542
+ const value = 1;
1543
+ await cache.getOrAdd(key, value);
1544
+ expect(handlerFn).not.toHaveBeenCalled();
757
1545
  });
758
1546
  test("Should dispatch FoundCacheEvent when key exists", async () => {
759
- let event_ = null;
760
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.FOUND, (event) => {
761
- event_ = event;
1547
+ const handlerFn = vi.fn((_event) => { });
1548
+ await cache.addListener(CACHE_EVENTS.FOUND, handlerFn);
1549
+ const key = "a";
1550
+ const value = 1;
1551
+ await cache.add(key, value);
1552
+ await cache.getOrAdd(key, value);
1553
+ expect(handlerFn).toHaveBeenCalledOnce();
1554
+ expect(handlerFn).toHaveBeenCalledWith({
1555
+ key: expect.any(Key),
1556
+ value,
762
1557
  });
763
- await cache.add("a", 1);
764
- await cache.getOrAdd("a", 1);
765
- await Task.delay(DELAY_TIME);
766
- expect(event_?.key).toBe("a");
767
- expect(event_?.value).toBe(1);
768
- await unsubscribe();
1558
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1559
+ expect(keyObj?.get()).toBe(key);
769
1560
  });
770
1561
  test("Should dispatch AddedCacheEvent when key exists", async () => {
771
- let event_ = null;
772
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
773
- if (event.type === "added") {
774
- event_ = event;
775
- }
1562
+ const handlerFn = vi.fn((_event) => { });
1563
+ await cache.addListener(CACHE_EVENTS.ADDED, handlerFn);
1564
+ const key = "a";
1565
+ const value = 1;
1566
+ await cache.getOrAdd(key, value, { ttl: TTL });
1567
+ expect(handlerFn).toHaveBeenCalledOnce();
1568
+ expect(handlerFn).toHaveBeenCalledWith({
1569
+ key: expect.any(Key),
1570
+ value,
1571
+ ttl: expect.any(TimeSpan),
776
1572
  });
777
- const ttl = TimeSpan.fromMilliseconds(50);
778
- await cache.getOrAdd("a", 1, ttl);
779
- await Task.delay(DELAY_TIME);
780
- expect(event_?.key).toBe("a");
781
- expect(event_?.value).toBe(1);
782
- expect(event_?.ttl?.toMilliseconds()).toBe(ttl.toMilliseconds());
783
- await unsubscribe();
1573
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1574
+ expect(keyObj?.get()).toBe(key);
1575
+ const ttl = handlerFn.mock.calls[0]?.[0].ttl;
1576
+ expect(ttl?.toMilliseconds()).toBe(TTL.toMilliseconds());
784
1577
  });
785
1578
  });
786
1579
  describe("method: increment", () => {
1580
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1581
+ const handlerFn = vi.fn((_event) => { });
1582
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1583
+ const key = "a";
1584
+ const value = 1;
1585
+ await cache.increment(key, value);
1586
+ expect(handlerFn).toHaveBeenCalledOnce();
1587
+ expect(handlerFn).toHaveBeenCalledWith({
1588
+ key: expect.any(Key),
1589
+ });
1590
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1591
+ expect(keyObj?.get()).toBe(key);
1592
+ });
787
1593
  test("Should dispatch IncrementedCacheEvent when key exists", async () => {
788
- let event_ = null;
789
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
790
- if (event.type === "incremented") {
791
- event_ = event;
792
- }
1594
+ const handlerFn = vi.fn((_event) => { });
1595
+ await cache.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1596
+ const key = "a";
1597
+ const value1 = 1;
1598
+ await cache.add(key, value1);
1599
+ const value2 = 2;
1600
+ await cache.increment(key, value2);
1601
+ expect(handlerFn).toHaveBeenCalledOnce();
1602
+ expect(handlerFn).toHaveBeenCalledWith({
1603
+ key: expect.any(Key),
1604
+ value: value2,
793
1605
  });
794
- await cache.add("a", 1);
795
- await cache.increment("a", 1);
796
- await Task.delay(DELAY_TIME);
797
- expect(event_?.key).toBe("a");
798
- expect(event_?.value).toBe(1);
799
- await unsubscribe();
1606
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1607
+ expect(keyObj?.get()).toBe(key);
800
1608
  });
1609
+ });
1610
+ describe("method: incrementOrFail", () => {
801
1611
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
802
- let event_ = null;
803
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
804
- event_ = event;
1612
+ const handlerFn = vi.fn((_event) => { });
1613
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1614
+ const key = "a";
1615
+ const value = 1;
1616
+ try {
1617
+ await cache.incrementOrFail(key, value);
1618
+ }
1619
+ catch {
1620
+ /* EMPTY */
1621
+ }
1622
+ expect(handlerFn).toHaveBeenCalledOnce();
1623
+ expect(handlerFn).toHaveBeenCalledWith({
1624
+ key: expect.any(Key),
1625
+ });
1626
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1627
+ expect(keyObj?.get()).toBe(key);
1628
+ });
1629
+ test("Should dispatch IncrementedCacheEvent when key exists", async () => {
1630
+ const handlerFn = vi.fn((_event) => { });
1631
+ await cache.addListener(CACHE_EVENTS.INCREMENTED, handlerFn);
1632
+ const key = "a";
1633
+ const value1 = 1;
1634
+ await cache.add(key, value1);
1635
+ const value2 = 2;
1636
+ await cache.incrementOrFail(key, value2);
1637
+ expect(handlerFn).toHaveBeenCalledOnce();
1638
+ expect(handlerFn).toHaveBeenCalledWith({
1639
+ key: expect.any(Key),
1640
+ value: value2,
805
1641
  });
806
- await cache.increment("a", 1);
807
- await Task.delay(DELAY_TIME);
808
- expect(event_?.key).toBe("a");
809
- await unsubscribe();
1642
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1643
+ expect(keyObj?.get()).toBe(key);
810
1644
  });
811
1645
  });
812
1646
  describe("method: decrement", () => {
1647
+ test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
1648
+ const handlerFn = vi.fn((_event) => { });
1649
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1650
+ const key = "a";
1651
+ const value = 1;
1652
+ await cache.decrement(key, value);
1653
+ expect(handlerFn).toHaveBeenCalledOnce();
1654
+ expect(handlerFn).toHaveBeenCalledWith({
1655
+ key: expect.any(Key),
1656
+ });
1657
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1658
+ expect(keyObj?.get()).toBe(key);
1659
+ });
813
1660
  test("Should dispatch DecrementedCacheEvent when key exists", async () => {
814
- let event_ = null;
815
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.WRITTEN, (event) => {
816
- if (event.type === "decremented") {
817
- event_ = event;
818
- }
1661
+ const handlerFn = vi.fn((_event) => { });
1662
+ await cache.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1663
+ const key = "a";
1664
+ const value1 = 1;
1665
+ await cache.add(key, value1);
1666
+ const value2 = 2;
1667
+ await cache.decrement(key, value2);
1668
+ expect(handlerFn).toHaveBeenCalledOnce();
1669
+ expect(handlerFn).toHaveBeenCalledWith({
1670
+ key: expect.any(Key),
1671
+ value: value2,
819
1672
  });
820
- await cache.add("a", 1);
821
- await cache.decrement("a", 1);
822
- await Task.delay(DELAY_TIME);
823
- expect(event_?.key).toBe("a");
824
- expect(event_?.value).toBe(1);
825
- await unsubscribe();
1673
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1674
+ expect(keyObj?.get()).toBe(key);
826
1675
  });
1676
+ });
1677
+ describe("method: decrementOrFail", () => {
827
1678
  test("Should dispatch NotFoundCacheEvent when key doesnt exists", async () => {
828
- let event_ = null;
829
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.NOT_FOUND, (event) => {
830
- event_ = event;
1679
+ const handlerFn = vi.fn((_event) => { });
1680
+ await cache.addListener(CACHE_EVENTS.NOT_FOUND, handlerFn);
1681
+ const key = "a";
1682
+ const value = 1;
1683
+ try {
1684
+ await cache.decrementOrFail(key, value);
1685
+ }
1686
+ catch {
1687
+ /* EMPTY */
1688
+ }
1689
+ expect(handlerFn).toHaveBeenCalledOnce();
1690
+ expect(handlerFn).toHaveBeenCalledWith({
1691
+ key: expect.any(Key),
1692
+ });
1693
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1694
+ expect(keyObj?.get()).toBe(key);
1695
+ });
1696
+ test("Should dispatch DecrementedCacheEvent when key exists", async () => {
1697
+ const handlerFn = vi.fn((_event) => { });
1698
+ await cache.addListener(CACHE_EVENTS.DECREMENTED, handlerFn);
1699
+ const key = "a";
1700
+ const value1 = 1;
1701
+ await cache.add(key, value1);
1702
+ const value2 = 2;
1703
+ await cache.decrementOrFail(key, value2);
1704
+ expect(handlerFn).toHaveBeenCalledOnce();
1705
+ expect(handlerFn).toHaveBeenCalledWith({
1706
+ key: expect.any(Key),
1707
+ value: value2,
831
1708
  });
832
- await cache.decrement("a", 1);
833
- await Task.delay(DELAY_TIME);
834
- expect(event_?.key).toBe("a");
835
- await unsubscribe();
1709
+ const keyObj = handlerFn.mock.calls[0]?.[0].key;
1710
+ expect(keyObj?.get()).toBe(key);
836
1711
  });
837
1712
  });
838
1713
  describe("method: clear", () => {
839
1714
  test("Should dispatch ClearedCacheEvent when key doesnt exists", async () => {
840
- let event_ = null;
841
- const unsubscribe = await cache.subscribe(CACHE_EVENTS.CLEARED, (event) => {
842
- event_ = event;
843
- });
1715
+ const handler = vi.fn((_event) => { });
1716
+ await cache.addListener(CACHE_EVENTS.CLEARED, handler);
844
1717
  await cache.add("a", 1);
845
1718
  await cache.add("b", 2);
846
1719
  await cache.add("c", 3);
847
1720
  await cache.clear();
848
- await Task.delay(DELAY_TIME);
849
- await unsubscribe();
850
- expect(event_).toStrictEqual({});
1721
+ expect(handler).toHaveBeenCalledOnce();
1722
+ expect(handler).toHaveBeenCalledWith({});
851
1723
  });
852
1724
  });
853
1725
  });