@daiso-tech/core 0.49.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/README.md +41 -42
  2. package/dist/cache/contracts/_module-exports.d.ts +1 -1
  3. package/dist/cache/contracts/_module.d.ts +1 -1
  4. package/dist/cache/contracts/{cache-factory.contract.d.ts → cache-resolver.contract.d.ts} +2 -2
  5. package/dist/cache/contracts/{cache-factory.contract.js → cache-resolver.contract.js} +1 -1
  6. package/dist/cache/contracts/cache-resolver.contract.js.map +1 -0
  7. package/dist/cache/contracts/cache.contract.d.ts +2 -2
  8. package/dist/cache/contracts/cache.errors.d.ts +3 -1
  9. package/dist/cache/contracts/cache.errors.js +5 -3
  10. package/dist/cache/contracts/cache.errors.js.map +1 -1
  11. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  12. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +1 -2
  13. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  14. package/dist/cache/implementations/derivables/_module-exports.d.ts +1 -1
  15. package/dist/cache/implementations/derivables/_module-exports.js +1 -1
  16. package/dist/cache/implementations/derivables/_module-exports.js.map +1 -1
  17. package/dist/cache/implementations/derivables/_module.d.ts +1 -1
  18. package/dist/cache/implementations/derivables/_module.js +1 -1
  19. package/dist/cache/implementations/derivables/_module.js.map +1 -1
  20. package/dist/cache/implementations/derivables/{cache-factory → cache-resolver}/_module.d.ts +1 -1
  21. package/dist/cache/implementations/derivables/cache-resolver/_module.js +2 -0
  22. package/dist/cache/implementations/derivables/cache-resolver/_module.js.map +1 -0
  23. package/dist/cache/implementations/derivables/{cache-factory/cache-factory.d.ts → cache-resolver/cache-resolver.d.ts} +18 -18
  24. package/dist/cache/implementations/derivables/{cache-factory/cache-factory.js → cache-resolver/cache-resolver.js} +17 -17
  25. package/dist/cache/implementations/derivables/cache-resolver/cache-resolver.js.map +1 -0
  26. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +10 -0
  27. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +47 -43
  28. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  29. package/dist/cache/implementations/test-utilities/cache.test-suite.d.ts +10 -0
  30. package/dist/cache/implementations/test-utilities/cache.test-suite.js +34 -34
  31. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  32. package/dist/circuit-breaker/contracts/_module-exports.d.ts +2 -2
  33. package/dist/circuit-breaker/contracts/_module-exports.js +1 -1
  34. package/dist/circuit-breaker/contracts/_module-exports.js.map +1 -1
  35. package/dist/circuit-breaker/contracts/_module.d.ts +2 -2
  36. package/dist/circuit-breaker/contracts/_module.js +1 -1
  37. package/dist/circuit-breaker/contracts/_module.js.map +1 -1
  38. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.d.ts +1 -1
  39. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.js +1 -1
  40. package/dist/circuit-breaker/contracts/circuit-breaker-adapter.contract.js.map +1 -1
  41. package/dist/circuit-breaker/contracts/{circuit-breaker-provider-factory.contract.d.ts → circuit-breaker-factory-resolver.contract.d.ts} +4 -4
  42. package/dist/circuit-breaker/contracts/{circuit-breaker-provider-factory.contract.js → circuit-breaker-factory-resolver.contract.js} +2 -2
  43. package/dist/circuit-breaker/contracts/circuit-breaker-factory-resolver.contract.js.map +1 -0
  44. package/dist/circuit-breaker/contracts/{circuit-breaker-provider.contract.d.ts → circuit-breaker-factory.contract.d.ts} +4 -4
  45. package/dist/circuit-breaker/contracts/{circuit-breaker-provider.contract.js → circuit-breaker-factory.contract.js} +1 -1
  46. package/dist/circuit-breaker/contracts/circuit-breaker-factory.contract.js.map +1 -0
  47. package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +2 -1
  48. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +4 -3
  49. package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
  50. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.d.ts +1 -1
  51. package/dist/circuit-breaker/implementations/adapters/memory-circuit-breaker-storage-adapter/memory-circuit-breaker-storage-adapter.js +1 -1
  52. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.d.ts +1 -1
  53. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-adapter/no-op-circuit-breaker-adapter.js +1 -1
  54. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.d.ts +1 -1
  55. package/dist/circuit-breaker/implementations/adapters/no-op-circuit-breaker-storage-adapter/no-op-circuit-breaker-storage-adapter.js +1 -1
  56. package/dist/circuit-breaker/implementations/derivables/_module-exports.d.ts +2 -2
  57. package/dist/circuit-breaker/implementations/derivables/_module-exports.js +2 -2
  58. package/dist/circuit-breaker/implementations/derivables/_module-exports.js.map +1 -1
  59. package/dist/circuit-breaker/implementations/derivables/_module.d.ts +2 -2
  60. package/dist/circuit-breaker/implementations/derivables/_module.js +2 -2
  61. package/dist/circuit-breaker/implementations/derivables/_module.js.map +1 -1
  62. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/_module.d.ts +1 -1
  63. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory/_module.js +2 -0
  64. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/_module.js.map +1 -1
  65. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider/circuit-breaker-provider.d.ts → circuit-breaker-factory/circuit-breaker-factory.d.ts} +9 -9
  66. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider/circuit-breaker-provider.js → circuit-breaker-factory/circuit-breaker-factory.js} +7 -7
  67. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory/circuit-breaker-factory.js.map +1 -0
  68. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/circuit-breaker-serde-transformer.d.ts +1 -1
  69. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/circuit-breaker-serde-transformer.js +1 -1
  70. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory/circuit-breaker-serde-transformer.js.map +1 -0
  71. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory/circuit-breaker.js.map +1 -0
  72. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory-resolver/_module.d.ts +2 -0
  73. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-factory-resolver/_module.js +3 -0
  74. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory → circuit-breaker-factory-resolver}/_module.js.map +1 -1
  75. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts → circuit-breaker-factory-resolver/circuit-breaker-factory-resolver.d.ts} +18 -18
  76. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/circuit-breaker-provider-factory.js → circuit-breaker-factory-resolver/circuit-breaker-factory-resolver.js} +17 -17
  77. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map → circuit-breaker-factory-resolver/circuit-breaker-factory-resolver.js.map} +1 -1
  78. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts → circuit-breaker-factory-resolver/database-circuit-breaker-factory-resolver.d.ts} +20 -20
  79. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js → circuit-breaker-factory-resolver/database-circuit-breaker-factory-resolver.js} +19 -19
  80. package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map → circuit-breaker-factory-resolver/database-circuit-breaker-factory-resolver.js.map} +1 -1
  81. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.d.ts +10 -0
  82. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js +12 -11
  83. package/dist/circuit-breaker/implementations/test-utilities/consecutive-breaker.test-suite.js.map +1 -1
  84. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.d.ts +10 -0
  85. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js +13 -12
  86. package/dist/circuit-breaker/implementations/test-utilities/count-breaker.test-suite.js.map +1 -1
  87. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.d.ts +10 -0
  88. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js +3 -2
  89. package/dist/circuit-breaker/implementations/test-utilities/sampling-breaker.test-suite.js.map +1 -1
  90. package/dist/codec/contracts/codec.errors.d.ts +2 -1
  91. package/dist/codec/contracts/codec.errors.js +4 -3
  92. package/dist/codec/contracts/codec.errors.js.map +1 -1
  93. package/dist/collection/contracts/collection.errors.d.ts +11 -0
  94. package/dist/collection/contracts/collection.errors.js +13 -0
  95. package/dist/collection/contracts/collection.errors.js.map +1 -1
  96. package/dist/event-bus/contracts/_module-exports.d.ts +1 -1
  97. package/dist/event-bus/contracts/_module.d.ts +1 -1
  98. package/dist/event-bus/contracts/{event-bus-factory.contract.d.ts → event-bus-resolver.contract.d.ts} +2 -2
  99. package/dist/event-bus/contracts/{event-bus-factory.contract.js → event-bus-resolver.contract.js} +1 -1
  100. package/dist/event-bus/contracts/event-bus-resolver.contract.js.map +1 -0
  101. package/dist/event-bus/contracts/event-bus.contract.d.ts +1 -1
  102. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +1 -1
  103. package/dist/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +1 -1
  104. package/dist/event-bus/implementations/derivables/_module-exports.d.ts +1 -1
  105. package/dist/event-bus/implementations/derivables/_module-exports.js +1 -1
  106. package/dist/event-bus/implementations/derivables/_module-exports.js.map +1 -1
  107. package/dist/event-bus/implementations/derivables/_module.d.ts +1 -1
  108. package/dist/event-bus/implementations/derivables/_module.js +1 -1
  109. package/dist/event-bus/implementations/derivables/_module.js.map +1 -1
  110. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +0 -2
  111. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  112. package/dist/event-bus/implementations/derivables/{event-bus-factory → event-bus-resolver}/_module.d.ts +1 -1
  113. package/dist/event-bus/implementations/derivables/event-bus-resolver/_module.js +2 -0
  114. package/dist/event-bus/implementations/derivables/event-bus-resolver/_module.js.map +1 -0
  115. package/dist/event-bus/implementations/derivables/{event-bus-factory/event-bus-factory.d.ts → event-bus-resolver/event-bus-resolver.d.ts} +18 -16
  116. package/dist/event-bus/implementations/derivables/{event-bus-factory/event-bus-factory.js → event-bus-resolver/event-bus-resolver.js} +17 -15
  117. package/dist/event-bus/implementations/derivables/event-bus-resolver/event-bus-resolver.js.map +1 -0
  118. package/dist/file-storage/contracts/_module-exports.d.ts +1 -1
  119. package/dist/file-storage/contracts/_module.d.ts +1 -1
  120. package/dist/file-storage/contracts/{file-storage-factory.contract.d.ts → file-storage-resolver.contract.d.ts} +2 -2
  121. package/dist/file-storage/contracts/{file-storage-factory.contract.js → file-storage-resolver.contract.js} +1 -1
  122. package/dist/file-storage/contracts/file-storage-resolver.contract.js.map +1 -0
  123. package/dist/file-storage/contracts/file-storage.contract.d.ts +2 -2
  124. package/dist/file-storage/contracts/file.errors.d.ts +2 -1
  125. package/dist/file-storage/contracts/file.errors.js +4 -3
  126. package/dist/file-storage/contracts/file.errors.js.map +1 -1
  127. package/dist/file-storage/implementations/derivables/_module-exports.d.ts +2 -2
  128. package/dist/file-storage/implementations/derivables/_module-exports.js +2 -2
  129. package/dist/file-storage/implementations/derivables/_module-exports.js.map +1 -1
  130. package/dist/file-storage/implementations/derivables/_module.d.ts +1 -1
  131. package/dist/file-storage/implementations/derivables/_module.js +1 -1
  132. package/dist/file-storage/implementations/derivables/_module.js.map +1 -1
  133. package/dist/file-storage/implementations/derivables/{file-storage-factory → file-storage-resolver}/_module.d.ts +1 -1
  134. package/dist/file-storage/implementations/derivables/file-storage-resolver/_module.js +2 -0
  135. package/dist/file-storage/implementations/derivables/{file-storage-factory → file-storage-resolver}/_module.js.map +1 -1
  136. package/dist/file-storage/implementations/derivables/{file-storage-factory/file-storage-factory.d.ts → file-storage-resolver/file-storage-resolver.d.ts} +16 -16
  137. package/dist/file-storage/implementations/derivables/{file-storage-factory/file-storage-factory.js → file-storage-resolver/file-storage-resolver.js} +15 -15
  138. package/dist/file-storage/implementations/derivables/file-storage-resolver/file-storage-resolver.js.map +1 -0
  139. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js +1 -42
  140. package/dist/file-storage/implementations/test-utilities/file-storage-adapter.test-suite.js.map +1 -1
  141. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js +1 -59
  142. package/dist/file-storage/implementations/test-utilities/file-storage.test-suite.js.map +1 -1
  143. package/dist/lock/contracts/_module-exports.d.ts +2 -2
  144. package/dist/lock/contracts/_module.d.ts +2 -2
  145. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +7 -7
  146. package/dist/lock/contracts/lock-adapter.contract.d.ts +1 -1
  147. package/dist/lock/contracts/lock-adapter.contract.js +1 -1
  148. package/dist/lock/contracts/lock-adapter.contract.js.map +1 -1
  149. package/dist/lock/contracts/{lock-provider-factory.contract.d.ts → lock-factory-resolver.contract.d.ts} +4 -4
  150. package/dist/lock/contracts/{lock-provider-factory.contract.js → lock-factory-resolver.contract.js} +2 -2
  151. package/dist/lock/contracts/lock-factory-resolver.contract.js.map +1 -0
  152. package/dist/lock/contracts/{lock-provider.contract.d.ts → lock-factory.contract.d.ts} +6 -6
  153. package/dist/lock/contracts/{lock-provider.contract.js → lock-factory.contract.js} +1 -1
  154. package/dist/lock/contracts/lock-factory.contract.js.map +1 -0
  155. package/dist/lock/contracts/lock.contract.d.ts +2 -1
  156. package/dist/lock/contracts/lock.contract.js +1 -0
  157. package/dist/lock/contracts/lock.contract.js.map +1 -1
  158. package/dist/lock/contracts/lock.errors.d.ts +3 -2
  159. package/dist/lock/contracts/lock.errors.js +5 -4
  160. package/dist/lock/contracts/lock.errors.js.map +1 -1
  161. package/dist/lock/contracts/lock.events.d.ts +2 -2
  162. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +1 -1
  163. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +1 -1
  164. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +1 -1
  165. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +1 -1
  166. package/dist/lock/implementations/derivables/_module-exports.d.ts +2 -2
  167. package/dist/lock/implementations/derivables/_module-exports.js +2 -2
  168. package/dist/lock/implementations/derivables/_module-exports.js.map +1 -1
  169. package/dist/lock/implementations/derivables/_module.d.ts +2 -2
  170. package/dist/lock/implementations/derivables/_module.js +2 -2
  171. package/dist/lock/implementations/derivables/_module.js.map +1 -1
  172. package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/_module.d.ts +2 -2
  173. package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/_module.js +2 -2
  174. package/dist/lock/implementations/derivables/lock-factory/_module.js.map +1 -0
  175. package/dist/lock/implementations/derivables/lock-factory/database-lock-adapter.js.map +1 -0
  176. package/dist/lock/implementations/derivables/lock-factory/is-database-lock-adapter.js.map +1 -0
  177. package/dist/lock/implementations/derivables/{lock-provider/lock-provider.d.ts → lock-factory/lock-factory.d.ts} +14 -14
  178. package/dist/lock/implementations/derivables/{lock-provider/lock-provider.js → lock-factory/lock-factory.js} +12 -12
  179. package/dist/lock/implementations/derivables/lock-factory/lock-factory.js.map +1 -0
  180. package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/lock-serde-transformer.d.ts +1 -1
  181. package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/lock-serde-transformer.js +1 -1
  182. package/dist/lock/implementations/derivables/lock-factory/lock-serde-transformer.js.map +1 -0
  183. package/dist/lock/implementations/derivables/lock-factory/lock.js.map +1 -0
  184. package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/resolve-lock-adapter.js +2 -2
  185. package/dist/lock/implementations/derivables/lock-factory/resolve-lock-adapter.js.map +1 -0
  186. package/dist/lock/implementations/derivables/{lock-provider-factory → lock-factory-resolver}/_module.d.ts +1 -1
  187. package/dist/lock/implementations/derivables/lock-factory-resolver/_module.js +2 -0
  188. package/dist/lock/implementations/derivables/lock-factory-resolver/_module.js.map +1 -0
  189. package/dist/lock/implementations/derivables/{lock-provider-factory/lock-provider-factory.d.ts → lock-factory-resolver/lock-factory-resolver.d.ts} +20 -20
  190. package/dist/lock/implementations/derivables/{lock-provider-factory/lock-provider-factory.js → lock-factory-resolver/lock-factory-resolver.js} +19 -19
  191. package/dist/lock/implementations/derivables/lock-factory-resolver/lock-factory-resolver.js.map +1 -0
  192. package/dist/lock/implementations/test-utilities/_module-exports.d.ts +1 -1
  193. package/dist/lock/implementations/test-utilities/_module-exports.js +1 -1
  194. package/dist/lock/implementations/test-utilities/_module-exports.js.map +1 -1
  195. package/dist/lock/implementations/test-utilities/_module.d.ts +1 -1
  196. package/dist/lock/implementations/test-utilities/_module.js +1 -1
  197. package/dist/lock/implementations/test-utilities/_module.js.map +1 -1
  198. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +10 -0
  199. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +147 -164
  200. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  201. package/dist/lock/implementations/test-utilities/{lock-provider.test-suite.d.ts → lock-factory.test-suite.d.ts} +37 -13
  202. package/dist/lock/implementations/test-utilities/{lock-provider.test-suite.js → lock-factory.test-suite.js} +488 -549
  203. package/dist/lock/implementations/test-utilities/lock-factory.test-suite.js.map +1 -0
  204. package/dist/rate-limiter/contracts/_module-exports.d.ts +2 -2
  205. package/dist/rate-limiter/contracts/_module.d.ts +2 -2
  206. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.d.ts +1 -1
  207. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.js +1 -1
  208. package/dist/rate-limiter/contracts/rate-limiter-adapter.contract.js.map +1 -1
  209. package/dist/rate-limiter/contracts/{rate-limiter-provider-factory.contract.d.ts → rate-limiter-factory-resolver.contract.d.ts} +4 -4
  210. package/dist/rate-limiter/contracts/{rate-limiter-provider-factory.contract.js → rate-limiter-factory-resolver.contract.js} +2 -2
  211. package/dist/rate-limiter/contracts/rate-limiter-factory-resolver.contract.js.map +1 -0
  212. package/dist/rate-limiter/contracts/{rate-limiter-provider.contract.d.ts → rate-limiter-factory.contract.d.ts} +4 -4
  213. package/dist/rate-limiter/contracts/{rate-limiter-provider.contract.js → rate-limiter-factory.contract.js} +1 -1
  214. package/dist/rate-limiter/contracts/rate-limiter-factory.contract.js.map +1 -0
  215. package/dist/rate-limiter/contracts/rate-limiter.errors.d.ts +3 -2
  216. package/dist/rate-limiter/contracts/rate-limiter.errors.js +6 -5
  217. package/dist/rate-limiter/contracts/rate-limiter.errors.js.map +1 -1
  218. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.d.ts +1 -1
  219. package/dist/rate-limiter/implementations/adapters/memory-rate-limiter-storage-adapter/memory-rate-limiter-storage-adapter.js +1 -1
  220. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.d.ts +1 -1
  221. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-adapter/no-op-rate-limiter-adapter.js +1 -1
  222. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.d.ts +1 -1
  223. package/dist/rate-limiter/implementations/adapters/no-op-rate-limiter-storage-adapter/no-op-rate-limiter-storage-adapter.js +1 -1
  224. package/dist/rate-limiter/implementations/derivables/_module-exports.d.ts +2 -2
  225. package/dist/rate-limiter/implementations/derivables/_module-exports.js +2 -2
  226. package/dist/rate-limiter/implementations/derivables/_module-exports.js.map +1 -1
  227. package/dist/rate-limiter/implementations/derivables/_module.d.ts +2 -2
  228. package/dist/rate-limiter/implementations/derivables/_module.js +2 -2
  229. package/dist/rate-limiter/implementations/derivables/_module.js.map +1 -1
  230. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/_module.d.ts +1 -1
  231. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory/_module.js +2 -0
  232. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/_module.js.map +1 -1
  233. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider/rate-limiter-provider.d.ts → rate-limiter-factory/rate-limiter-factory.d.ts} +8 -8
  234. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider/rate-limiter-provider.js → rate-limiter-factory/rate-limiter-factory.js} +6 -6
  235. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory/rate-limiter-factory.js.map +1 -0
  236. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/rate-limiter-serde-transformer.d.ts +1 -1
  237. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/rate-limiter-serde-transformer.js +1 -1
  238. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory/rate-limiter-serde-transformer.js.map +1 -0
  239. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory/rate-limiter.js.map +1 -0
  240. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory-resolver/_module.d.ts +2 -0
  241. package/dist/rate-limiter/implementations/derivables/rate-limiter-factory-resolver/_module.js +3 -0
  242. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory → rate-limiter-factory-resolver}/_module.js.map +1 -1
  243. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts → rate-limiter-factory-resolver/database-rate-limiter-factory-resolver.d.ts} +19 -19
  244. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/database-rate-limiter-provider-factory.js → rate-limiter-factory-resolver/database-rate-limiter-factory-resolver.js} +18 -18
  245. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map → rate-limiter-factory-resolver/database-rate-limiter-factory-resolver.js.map} +1 -1
  246. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts → rate-limiter-factory-resolver/rate-limiter-factory-resolver.d.ts} +17 -17
  247. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/rate-limiter-provider-factory.js → rate-limiter-factory-resolver/rate-limiter-factory-resolver.js} +16 -16
  248. package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider-factory/rate-limiter-provider-factory.js.map → rate-limiter-factory-resolver/rate-limiter-factory-resolver.js.map} +1 -1
  249. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.d.ts +10 -0
  250. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js +7 -6
  251. package/dist/rate-limiter/implementations/test-utilities/fixed-window-limiter.test-suite.js.map +1 -1
  252. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.d.ts +10 -0
  253. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js +3 -2
  254. package/dist/rate-limiter/implementations/test-utilities/sliding-window-limiter.test-suite.js.map +1 -1
  255. package/dist/resilience/middlewares/timeout/timeout.middleware.js.map +1 -1
  256. package/dist/semaphore/contracts/_module-exports.d.ts +2 -2
  257. package/dist/semaphore/contracts/_module.d.ts +2 -2
  258. package/dist/semaphore/contracts/semaphore-adapter.contract.d.ts +1 -1
  259. package/dist/semaphore/contracts/semaphore-adapter.contract.js +1 -1
  260. package/dist/semaphore/contracts/semaphore-adapter.contract.js.map +1 -1
  261. package/dist/semaphore/contracts/{semaphore-provider-factory.contract.d.ts → semaphore-factory-resolver.contract.d.ts} +4 -4
  262. package/dist/semaphore/contracts/{semaphore-provider-factory.contract.js → semaphore-factory-resolver.contract.js} +2 -2
  263. package/dist/semaphore/contracts/semaphore-factory-resolver.contract.js.map +1 -0
  264. package/dist/semaphore/contracts/{semaphore-provider.contract.d.ts → semaphore-factory.contract.d.ts} +6 -6
  265. package/dist/semaphore/contracts/{semaphore-provider.contract.js → semaphore-factory.contract.js} +1 -1
  266. package/dist/semaphore/contracts/semaphore-factory.contract.js.map +1 -0
  267. package/dist/semaphore/contracts/semaphore.contract.d.ts +2 -1
  268. package/dist/semaphore/contracts/semaphore.contract.js +1 -0
  269. package/dist/semaphore/contracts/semaphore.contract.js.map +1 -1
  270. package/dist/semaphore/contracts/semaphore.errors.d.ts +3 -2
  271. package/dist/semaphore/contracts/semaphore.errors.js +4 -3
  272. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
  273. package/dist/semaphore/contracts/semaphore.events.d.ts +4 -4
  274. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.d.ts +1 -1
  275. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js +1 -1
  276. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.d.ts +1 -1
  277. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js +1 -1
  278. package/dist/semaphore/implementations/derivables/_module-exports.d.ts +2 -2
  279. package/dist/semaphore/implementations/derivables/_module-exports.js +1 -1
  280. package/dist/semaphore/implementations/derivables/_module-exports.js.map +1 -1
  281. package/dist/semaphore/implementations/derivables/_module.d.ts +2 -2
  282. package/dist/semaphore/implementations/derivables/_module.js +1 -1
  283. package/dist/semaphore/implementations/derivables/_module.js.map +1 -1
  284. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/_module.d.ts +1 -1
  285. package/dist/semaphore/implementations/derivables/semaphore-factory/_module.js +2 -0
  286. package/dist/{event-bus/implementations/derivables/event-bus-factory → semaphore/implementations/derivables/semaphore-factory}/_module.js.map +1 -1
  287. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/database-semaphore-adapter.js +8 -8
  288. package/dist/semaphore/implementations/derivables/semaphore-factory/database-semaphore-adapter.js.map +1 -0
  289. package/dist/semaphore/implementations/derivables/semaphore-factory/is-database-semaphore-adapter.js.map +1 -0
  290. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/resolve-semaphore-adapter.js +2 -2
  291. package/dist/semaphore/implementations/derivables/semaphore-factory/resolve-semaphore-adapter.js.map +1 -0
  292. package/dist/semaphore/implementations/derivables/{semaphore-provider/semaphore-provider.d.ts → semaphore-factory/semaphore-factory.d.ts} +11 -11
  293. package/dist/semaphore/implementations/derivables/{semaphore-provider/semaphore-provider.js → semaphore-factory/semaphore-factory.js} +9 -9
  294. package/dist/semaphore/implementations/derivables/semaphore-factory/semaphore-factory.js.map +1 -0
  295. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/semaphore-serde-transformer.d.ts +1 -1
  296. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/semaphore-serde-transformer.js +1 -1
  297. package/dist/semaphore/implementations/derivables/semaphore-factory/semaphore-serde-transformer.js.map +1 -0
  298. package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/semaphore.js +0 -1
  299. package/dist/semaphore/implementations/derivables/semaphore-factory/semaphore.js.map +1 -0
  300. package/dist/semaphore/implementations/derivables/{semaphore-provider-factory → semaphore-factory-resolver}/_module.d.ts +1 -1
  301. package/dist/semaphore/implementations/derivables/semaphore-factory-resolver/_module.js.map +1 -0
  302. package/dist/semaphore/implementations/derivables/{semaphore-provider-factory/semaphore-provider-factory.d.ts → semaphore-factory-resolver/semaphore-factory-resolver.d.ts} +19 -19
  303. package/dist/semaphore/implementations/derivables/{semaphore-provider-factory/semaphore-provider-factory.js → semaphore-factory-resolver/semaphore-factory-resolver.js} +18 -18
  304. package/dist/semaphore/implementations/derivables/semaphore-factory-resolver/semaphore-factory-resolver.js.map +1 -0
  305. package/dist/semaphore/implementations/test-utilities/_module-exports.d.ts +1 -1
  306. package/dist/semaphore/implementations/test-utilities/_module-exports.js +1 -1
  307. package/dist/semaphore/implementations/test-utilities/_module-exports.js.map +1 -1
  308. package/dist/semaphore/implementations/test-utilities/_module.d.ts +1 -1
  309. package/dist/semaphore/implementations/test-utilities/_module.js +1 -1
  310. package/dist/semaphore/implementations/test-utilities/_module.js.map +1 -1
  311. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.d.ts +10 -0
  312. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js +11 -42
  313. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js.map +1 -1
  314. package/dist/semaphore/implementations/test-utilities/{semaphore-provider.test-suite.d.ts → semaphore-factory.test-suite.d.ts} +37 -13
  315. package/dist/semaphore/implementations/test-utilities/{semaphore-provider.test-suite.js → semaphore-factory.test-suite.js} +453 -476
  316. package/dist/semaphore/implementations/test-utilities/semaphore-factory.test-suite.js.map +1 -0
  317. package/dist/shared-lock/contracts/_module-exports.d.ts +2 -3
  318. package/dist/shared-lock/contracts/_module-exports.js.map +1 -1
  319. package/dist/shared-lock/contracts/_module.d.ts +2 -3
  320. package/dist/shared-lock/contracts/_module.js.map +1 -1
  321. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +6 -6
  322. package/dist/shared-lock/contracts/shared-lock-adapter.contract.d.ts +1 -1
  323. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js +1 -1
  324. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js.map +1 -1
  325. package/dist/shared-lock/contracts/{shared-lock-provider-factory.contract.d.ts → shared-lock-factory-resolver.contract.d.ts} +4 -4
  326. package/dist/shared-lock/contracts/{shared-lock-provider-factory.contract.js → shared-lock-factory-resolver.contract.js} +2 -2
  327. package/dist/shared-lock/contracts/shared-lock-factory-resolver.contract.js.map +1 -0
  328. package/dist/shared-lock/contracts/{shared-lock-provider.contract.d.ts → shared-lock-factory.contract.d.ts} +6 -6
  329. package/dist/shared-lock/contracts/{shared-lock-provider.contract.js → shared-lock-factory.contract.js} +1 -1
  330. package/dist/shared-lock/contracts/shared-lock-factory.contract.js.map +1 -0
  331. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +20 -17
  332. package/dist/shared-lock/contracts/shared-lock.errors.js +17 -16
  333. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
  334. package/dist/shared-lock/contracts/shared-lock.events.d.ts +17 -19
  335. package/dist/shared-lock/contracts/shared-lock.events.js +0 -1
  336. package/dist/shared-lock/contracts/shared-lock.events.js.map +1 -1
  337. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.d.ts +1 -1
  338. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js +1 -1
  339. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.d.ts +1 -1
  340. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js +1 -1
  341. package/dist/shared-lock/implementations/derivables/_module-exports.d.ts +2 -2
  342. package/dist/shared-lock/implementations/derivables/_module-exports.js +2 -2
  343. package/dist/shared-lock/implementations/derivables/_module-exports.js.map +1 -1
  344. package/dist/shared-lock/implementations/derivables/_module.d.ts +2 -2
  345. package/dist/shared-lock/implementations/derivables/_module.js +2 -2
  346. package/dist/shared-lock/implementations/derivables/_module.js.map +1 -1
  347. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/_module.d.ts +1 -1
  348. package/dist/shared-lock/implementations/derivables/shared-lock-factory/_module.js +2 -0
  349. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/_module.js.map +1 -1
  350. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/database-shared-lock-adapter.js +8 -8
  351. package/dist/shared-lock/implementations/derivables/shared-lock-factory/database-shared-lock-adapter.js.map +1 -0
  352. package/dist/shared-lock/implementations/derivables/shared-lock-factory/is-database-shared-lock-adapter.js.map +1 -0
  353. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/resolve-shared-lock-adapter.js +2 -2
  354. package/dist/shared-lock/implementations/derivables/shared-lock-factory/resolve-shared-lock-adapter.js.map +1 -0
  355. package/dist/shared-lock/implementations/derivables/{shared-lock-provider/shared-lock-provider.d.ts → shared-lock-factory/shared-lock-factory.d.ts} +14 -14
  356. package/dist/shared-lock/implementations/derivables/{shared-lock-provider/shared-lock-provider.js → shared-lock-factory/shared-lock-factory.js} +12 -12
  357. package/dist/shared-lock/implementations/derivables/shared-lock-factory/shared-lock-factory.js.map +1 -0
  358. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/shared-lock-serde-transformer.d.ts +1 -1
  359. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/shared-lock-serde-transformer.js +1 -1
  360. package/dist/shared-lock/implementations/derivables/shared-lock-factory/shared-lock-serde-transformer.js.map +1 -0
  361. package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/shared-lock.js +1 -1
  362. package/dist/shared-lock/implementations/derivables/shared-lock-factory/shared-lock.js.map +1 -0
  363. package/dist/shared-lock/implementations/derivables/{shared-lock-provider-factory → shared-lock-factory-resolver}/_module.d.ts +1 -1
  364. package/dist/shared-lock/implementations/derivables/shared-lock-factory-resolver/_module.js +2 -0
  365. package/dist/shared-lock/implementations/derivables/{shared-lock-provider-factory → shared-lock-factory-resolver}/_module.js.map +1 -1
  366. package/dist/shared-lock/implementations/derivables/{shared-lock-provider-factory/shared-lock-provider-factory.d.ts → shared-lock-factory-resolver/shared-lock-factory-resolver.d.ts} +18 -18
  367. package/dist/shared-lock/implementations/derivables/{shared-lock-provider-factory/shared-lock-provider-factory.js → shared-lock-factory-resolver/shared-lock-factory-resolver.js} +17 -17
  368. package/dist/shared-lock/implementations/derivables/shared-lock-factory-resolver/shared-lock-factory-resolver.js.map +1 -0
  369. package/dist/shared-lock/implementations/test-utilities/_module-exports.d.ts +1 -1
  370. package/dist/shared-lock/implementations/test-utilities/_module-exports.js +1 -1
  371. package/dist/shared-lock/implementations/test-utilities/_module-exports.js.map +1 -1
  372. package/dist/shared-lock/implementations/test-utilities/_module.d.ts +1 -1
  373. package/dist/shared-lock/implementations/test-utilities/_module.js +1 -1
  374. package/dist/shared-lock/implementations/test-utilities/_module.js.map +1 -1
  375. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.d.ts +10 -0
  376. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js +206 -276
  377. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js.map +1 -1
  378. package/dist/shared-lock/implementations/test-utilities/{shared-lock-provider.test-suite.d.ts → shared-lock-factory.test-suite.d.ts} +37 -13
  379. package/dist/shared-lock/implementations/test-utilities/{shared-lock-provider.test-suite.js → shared-lock-factory.test-suite.js} +1642 -1318
  380. package/dist/shared-lock/implementations/test-utilities/shared-lock-factory.test-suite.js.map +1 -0
  381. package/dist/test-utilities/_module.d.ts +18 -0
  382. package/dist/test-utilities/_module.js +96 -0
  383. package/dist/test-utilities/_module.js.map +1 -0
  384. package/dist/utilities/types/_module.d.ts +1 -0
  385. package/dist/utilities/types/infer-instance.type.d.ts +9 -0
  386. package/dist/utilities/types/infer-instance.type.js +5 -0
  387. package/dist/utilities/types/infer-instance.type.js.map +1 -0
  388. package/package.json +2 -2
  389. package/dist/cache/contracts/cache-factory.contract.js.map +0 -1
  390. package/dist/cache/implementations/derivables/cache-factory/_module.js +0 -2
  391. package/dist/cache/implementations/derivables/cache-factory/_module.js.map +0 -1
  392. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +0 -1
  393. package/dist/circuit-breaker/contracts/circuit-breaker-provider-factory.contract.js.map +0 -1
  394. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.js.map +0 -1
  395. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/_module.js +0 -2
  396. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +0 -1
  397. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js.map +0 -1
  398. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +0 -1
  399. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/_module.d.ts +0 -2
  400. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/_module.js +0 -3
  401. package/dist/event-bus/contracts/event-bus-factory.contract.js.map +0 -1
  402. package/dist/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -2
  403. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +0 -1
  404. package/dist/file-storage/contracts/file-storage-factory.contract.js.map +0 -1
  405. package/dist/file-storage/implementations/derivables/file-storage-factory/_module.js +0 -2
  406. package/dist/file-storage/implementations/derivables/file-storage-factory/file-storage-factory.js.map +0 -1
  407. package/dist/lock/contracts/lock-provider-factory.contract.js.map +0 -1
  408. package/dist/lock/contracts/lock-provider.contract.js.map +0 -1
  409. package/dist/lock/implementations/derivables/lock-provider/_module.js.map +0 -1
  410. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +0 -1
  411. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +0 -1
  412. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +0 -1
  413. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +0 -1
  414. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +0 -1
  415. package/dist/lock/implementations/derivables/lock-provider/resolve-lock-adapter.js.map +0 -1
  416. package/dist/lock/implementations/derivables/lock-provider-factory/_module.js +0 -2
  417. package/dist/lock/implementations/derivables/lock-provider-factory/_module.js.map +0 -1
  418. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +0 -1
  419. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +0 -1
  420. package/dist/rate-limiter/contracts/rate-limiter-provider-factory.contract.js.map +0 -1
  421. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.js.map +0 -1
  422. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/_module.js +0 -2
  423. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +0 -1
  424. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js.map +0 -1
  425. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +0 -1
  426. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/_module.d.ts +0 -2
  427. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/_module.js +0 -3
  428. package/dist/semaphore/contracts/semaphore-provider-factory.contract.js.map +0 -1
  429. package/dist/semaphore/contracts/semaphore-provider.contract.js.map +0 -1
  430. package/dist/semaphore/implementations/derivables/semaphore-provider/_module.js +0 -2
  431. package/dist/semaphore/implementations/derivables/semaphore-provider/_module.js.map +0 -1
  432. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.js.map +0 -1
  433. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.js.map +0 -1
  434. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-semaphore-adapter.js.map +0 -1
  435. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +0 -1
  436. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +0 -1
  437. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +0 -1
  438. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.js.map +0 -1
  439. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +0 -1
  440. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +0 -1
  441. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.js.map +0 -1
  442. package/dist/shared-lock/contracts/shared-lock-provider.contract.js.map +0 -1
  443. package/dist/shared-lock/implementations/derivables/shared-lock-provider/_module.js +0 -2
  444. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.js.map +0 -1
  445. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.js.map +0 -1
  446. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-shared-lock-adapter.js.map +0 -1
  447. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +0 -1
  448. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +0 -1
  449. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +0 -1
  450. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/_module.js +0 -2
  451. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +0 -1
  452. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +0 -1
  453. /package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/circuit-breaker.d.ts +0 -0
  454. /package/dist/circuit-breaker/implementations/derivables/{circuit-breaker-provider → circuit-breaker-factory}/circuit-breaker.js +0 -0
  455. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/database-lock-adapter.d.ts +0 -0
  456. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/database-lock-adapter.js +0 -0
  457. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/is-database-lock-adapter.d.ts +0 -0
  458. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/is-database-lock-adapter.js +0 -0
  459. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/lock.d.ts +0 -0
  460. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/lock.js +0 -0
  461. /package/dist/lock/implementations/derivables/{lock-provider → lock-factory}/resolve-lock-adapter.d.ts +0 -0
  462. /package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/rate-limiter.d.ts +0 -0
  463. /package/dist/rate-limiter/implementations/derivables/{rate-limiter-provider → rate-limiter-factory}/rate-limiter.js +0 -0
  464. /package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/database-semaphore-adapter.d.ts +0 -0
  465. /package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/is-database-semaphore-adapter.d.ts +0 -0
  466. /package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/is-database-semaphore-adapter.js +0 -0
  467. /package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/resolve-semaphore-adapter.d.ts +0 -0
  468. /package/dist/semaphore/implementations/derivables/{semaphore-provider → semaphore-factory}/semaphore.d.ts +0 -0
  469. /package/dist/semaphore/implementations/derivables/{semaphore-provider-factory → semaphore-factory-resolver}/_module.js +0 -0
  470. /package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/database-shared-lock-adapter.d.ts +0 -0
  471. /package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/is-database-shared-lock-adapter.d.ts +0 -0
  472. /package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/is-database-shared-lock-adapter.js +0 -0
  473. /package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/resolve-shared-lock-adapter.d.ts +0 -0
  474. /package/dist/shared-lock/implementations/derivables/{shared-lock-provider → shared-lock-factory}/shared-lock.d.ts +0 -0
@@ -4,6 +4,7 @@
4
4
  import { vi, } from "vitest";
5
5
  import {} from "../../../lock/contracts/_module.js";
6
6
  import { Task } from "../../../task/implementations/_module.js";
7
+ import {} from "../../../time-span/contracts/_module.js";
7
8
  import { TimeSpan } from "../../../time-span/implementations/_module.js";
8
9
  import {} from "../../../utilities/_module.js";
9
10
  /**
@@ -47,10 +48,10 @@ import {} from "../../../utilities/_module.js";
47
48
  * ```
48
49
  */
49
50
  export function lockAdapterTestSuite(settings) {
50
- const { expect, test, createAdapter, describe, beforeEach } = settings;
51
+ const { expect, test, createAdapter, describe, beforeEach, delayBuffer = TimeSpan.fromMilliseconds(10), } = settings;
51
52
  let adapter;
52
53
  async function delay(time) {
53
- await Task.delay(time.addMilliseconds(10));
54
+ await Task.delay(TimeSpan.fromTimeSpan(time).addTimeSpan(delayBuffer));
54
55
  }
55
56
  describe("ILockAdapter tests:", () => {
56
57
  beforeEach(async () => {
@@ -59,159 +60,153 @@ export function lockAdapterTestSuite(settings) {
59
60
  describe("method: acquire", () => {
60
61
  test("Should return true when key doesnt exists", async () => {
61
62
  const key = "a";
62
- const owner = "b";
63
+ const lockId = "b";
63
64
  const ttl = null;
64
- const result = await adapter.acquire(key, owner, ttl);
65
+ const result = await adapter.acquire(key, lockId, ttl);
65
66
  expect(result).toBe(true);
66
67
  });
67
- test("Should return true when key is expired", {
68
- retry: 10,
69
- }, async () => {
68
+ test("Should return true when key is expired", async () => {
70
69
  const key = "a";
71
- const owner = "b";
70
+ const lockId = "b";
72
71
  const ttl = TimeSpan.fromMilliseconds(50);
73
- await adapter.acquire(key, owner, ttl);
72
+ await adapter.acquire(key, lockId, ttl);
74
73
  await delay(ttl);
75
- const result = await adapter.acquire(key, owner, null);
74
+ const result = await adapter.acquire(key, lockId, null);
76
75
  expect(result).toBe(true);
77
76
  });
78
- test("Should return true when key is unexpireable and acquired by same owner", async () => {
77
+ test("Should return true when key is unexpireable and acquired by same lock-id", async () => {
79
78
  const key = "a";
80
- const owner = "b";
79
+ const lockId = "b";
81
80
  const ttl = null;
82
- await adapter.acquire(key, owner, ttl);
83
- const result = await adapter.acquire(key, owner, ttl);
81
+ await adapter.acquire(key, lockId, ttl);
82
+ const result = await adapter.acquire(key, lockId, ttl);
84
83
  expect(result).toBe(true);
85
84
  });
86
- test("Should return true when key is unexpired and acquired by same owner", async () => {
85
+ test("Should return true when key is unexpired and acquired by same lock-id", async () => {
87
86
  const key = "a";
88
- const owner = "b";
87
+ const lockId = "b";
89
88
  const ttl = TimeSpan.fromMilliseconds(50);
90
- await adapter.acquire(key, owner, ttl);
91
- const result = await adapter.acquire(key, owner, ttl);
89
+ await adapter.acquire(key, lockId, ttl);
90
+ const result = await adapter.acquire(key, lockId, ttl);
92
91
  expect(result).toBe(true);
93
92
  });
94
- test("Should return false when key is unexpireable and acquired by different owner", async () => {
93
+ test("Should return false when key is unexpireable and acquired by different lock-id", async () => {
95
94
  const key = "a";
96
- const owner1 = "b";
95
+ const lockId1 = "b";
97
96
  const ttl = null;
98
- await adapter.acquire(key, owner1, ttl);
99
- const owner2 = "c";
100
- const result = await adapter.acquire(key, owner2, ttl);
97
+ await adapter.acquire(key, lockId1, ttl);
98
+ const lockId2 = "c";
99
+ const result = await adapter.acquire(key, lockId2, ttl);
101
100
  expect(result).toBe(false);
102
101
  });
103
- test("Should return false when key is unexpired and acquired by different owner", async () => {
102
+ test("Should return false when key is unexpired and acquired by different lock-id", async () => {
104
103
  const key = "a";
105
- const owner1 = "b";
104
+ const lockId1 = "b";
106
105
  const ttl = TimeSpan.fromMilliseconds(50);
107
- await adapter.acquire(key, owner1, ttl);
108
- const owner2 = "c";
109
- const result = await adapter.acquire(key, owner2, ttl);
106
+ await adapter.acquire(key, lockId1, ttl);
107
+ const lockId2 = "c";
108
+ const result = await adapter.acquire(key, lockId2, ttl);
110
109
  expect(result).toBe(false);
111
110
  });
112
111
  });
113
112
  describe("method: release", () => {
114
113
  test("Should return false when key doesnt exists", async () => {
115
114
  const key = "a";
116
- const owner = "b";
117
- const result = await adapter.release(key, owner);
115
+ const lockId = "b";
116
+ const result = await adapter.release(key, lockId);
118
117
  expect(result).toBe(false);
119
118
  });
120
- test("Should return false when key is unexpireable and released by different owner", async () => {
119
+ test("Should return false when key is unexpireable and released by different lock-id", async () => {
121
120
  const key = "a";
122
- const owner1 = "b";
121
+ const lockId1 = "b";
123
122
  const ttl = null;
124
- await adapter.acquire(key, owner1, ttl);
125
- const owner2 = "c";
126
- const result = await adapter.release(key, owner2);
123
+ await adapter.acquire(key, lockId1, ttl);
124
+ const lockId2 = "c";
125
+ const result = await adapter.release(key, lockId2);
127
126
  expect(result).toBe(false);
128
127
  });
129
- test("Should return false when key is unexpired and released by different owner", async () => {
128
+ test("Should return false when key is unexpired and released by different lock-id", async () => {
130
129
  const key = "a";
131
- const owner1 = "b";
130
+ const lockId1 = "b";
132
131
  const ttl = TimeSpan.fromMilliseconds(50);
133
- await adapter.acquire(key, owner1, ttl);
134
- const owner2 = "c";
135
- const result = await adapter.release(key, owner2);
132
+ await adapter.acquire(key, lockId1, ttl);
133
+ const lockId2 = "c";
134
+ const result = await adapter.release(key, lockId2);
136
135
  expect(result).toBe(false);
137
136
  });
138
- test("Should return false when key is expired and released by different owner", {
139
- retry: 10,
140
- }, async () => {
137
+ test("Should return false when key is expired and released by different lock-id", async () => {
141
138
  const key = "a";
142
- const owner1 = "b";
139
+ const lockId1 = "b";
143
140
  const ttl = TimeSpan.fromMilliseconds(50);
144
- await adapter.acquire(key, owner1, ttl);
145
- const owner2 = "c";
146
- const result = await adapter.release(key, owner2);
141
+ await adapter.acquire(key, lockId1, ttl);
147
142
  await delay(ttl);
143
+ const lockId2 = "c";
144
+ const result = await adapter.release(key, lockId2);
148
145
  expect(result).toBe(false);
149
146
  });
150
- test("Should return false when key is expired and released by same owner", {
151
- retry: 10,
152
- }, async () => {
147
+ test("Should return false when key is expired and released by same lock-id", async () => {
153
148
  const key = "a";
154
- const owner = "b";
149
+ const lockId = "b";
155
150
  const ttl = TimeSpan.fromMilliseconds(50);
156
- await adapter.acquire(key, owner, ttl);
151
+ await adapter.acquire(key, lockId, ttl);
157
152
  await delay(ttl);
158
- const result = await adapter.release(key, owner);
153
+ const result = await adapter.release(key, lockId);
159
154
  expect(result).toBe(false);
160
155
  });
161
- test("Should return true when key is unexpireable and released by same owner", async () => {
156
+ test("Should return true when key is unexpireable and released by same lock-id", async () => {
162
157
  const key = "a";
163
- const owner = "b";
158
+ const lockId = "b";
164
159
  const ttl = null;
165
- await adapter.acquire(key, owner, ttl);
166
- const result = await adapter.release(key, owner);
160
+ await adapter.acquire(key, lockId, ttl);
161
+ const result = await adapter.release(key, lockId);
167
162
  expect(result).toBe(true);
168
163
  });
169
- test("Should return true when key is unexpired and released by same owner", async () => {
164
+ test("Should return true when key is unexpired and released by same lock-id", async () => {
170
165
  const key = "a";
171
- const owner = "b";
166
+ const lockId = "b";
172
167
  const ttl = TimeSpan.fromMilliseconds(50);
173
- await adapter.acquire(key, owner, ttl);
174
- const result = await adapter.release(key, owner);
168
+ await adapter.acquire(key, lockId, ttl);
169
+ const result = await adapter.release(key, lockId);
175
170
  expect(result).toBe(true);
176
171
  });
177
- test("Should not be reacquirable when key is unexpireable and released by different owner", async () => {
172
+ test("Should not be reacquirable when key is unexpireable and released by different lock-id", async () => {
178
173
  const key = "a";
179
- const owner1 = "b";
174
+ const lockId1 = "b";
180
175
  const ttl = null;
181
- await adapter.acquire(key, owner1, ttl);
182
- const owner2 = "c";
183
- await adapter.release(key, owner2);
184
- const result = await adapter.acquire(key, owner2, ttl);
176
+ await adapter.acquire(key, lockId1, ttl);
177
+ const lockId2 = "c";
178
+ await adapter.release(key, lockId2);
179
+ const result = await adapter.acquire(key, lockId2, ttl);
185
180
  expect(result).toBe(false);
186
181
  });
187
- test("Should not be reacquirable when key is unexpired and released by different owner", async () => {
182
+ test("Should not be reacquirable when key is unexpired and released by different lock-id", async () => {
188
183
  const key = "a";
189
- const owner1 = "b";
184
+ const lockId1 = "b";
190
185
  const ttl = TimeSpan.fromMilliseconds(50);
191
- await adapter.acquire(key, owner1, ttl);
192
- const owner2 = "c";
193
- await adapter.release(key, owner2);
194
- const result = await adapter.acquire(key, owner2, ttl);
186
+ await adapter.acquire(key, lockId1, ttl);
187
+ const lockId2 = "c";
188
+ await adapter.release(key, lockId2);
189
+ const result = await adapter.acquire(key, lockId2, ttl);
195
190
  expect(result).toBe(false);
196
191
  });
197
- test("Should be reacquirable when key is unexpireable and released by same owner", async () => {
192
+ test("Should be reacquirable when key is unexpireable and released by same lock-id", async () => {
198
193
  const key = "a";
199
- const owner1 = "b";
194
+ const lockId1 = "b";
200
195
  const ttl = null;
201
- await adapter.acquire(key, owner1, ttl);
202
- await adapter.release(key, owner1);
203
- const owner2 = "c";
204
- const result = await adapter.acquire(key, owner2, ttl);
196
+ await adapter.acquire(key, lockId1, ttl);
197
+ await adapter.release(key, lockId1);
198
+ const lockId2 = "c";
199
+ const result = await adapter.acquire(key, lockId2, ttl);
205
200
  expect(result).toBe(true);
206
201
  });
207
- test("Should be reacquirable when key is unexpired and released by same owner", async () => {
202
+ test("Should be reacquirable when key is unexpired and released by same lock-id", async () => {
208
203
  const key = "a";
209
- const owner1 = "b";
204
+ const lockId1 = "b";
210
205
  const ttl = TimeSpan.fromMilliseconds(50);
211
- await adapter.acquire(key, owner1, ttl);
212
- await adapter.release(key, owner1);
213
- const owner2 = "c";
214
- const result = await adapter.acquire(key, owner2, ttl);
206
+ await adapter.acquire(key, lockId1, ttl);
207
+ await adapter.release(key, lockId1);
208
+ const lockId2 = "c";
209
+ const result = await adapter.acquire(key, lockId2, ttl);
215
210
  expect(result).toBe(true);
216
211
  });
217
212
  });
@@ -221,144 +216,134 @@ export function lockAdapterTestSuite(settings) {
221
216
  const result = await adapter.forceRelease(key);
222
217
  expect(result).toBe(false);
223
218
  });
224
- test("Should return false when key is expired", {
225
- retry: 10,
226
- }, async () => {
219
+ test("Should return false when key is expired", async () => {
227
220
  const key = "a";
228
- const owner = "b";
221
+ const lockId = "b";
229
222
  const ttl = TimeSpan.fromMilliseconds(50);
230
- await adapter.acquire(key, owner, ttl);
223
+ await adapter.acquire(key, lockId, ttl);
231
224
  await delay(ttl);
232
225
  const result = await adapter.forceRelease(key);
233
226
  expect(result).toBe(false);
234
227
  });
235
228
  test("Should return true when key is uenxpired", async () => {
236
229
  const key = "a";
237
- const owner = "b";
230
+ const lockId = "b";
238
231
  const ttl = TimeSpan.fromMilliseconds(50);
239
- await adapter.acquire(key, owner, ttl);
232
+ await adapter.acquire(key, lockId, ttl);
240
233
  const result = await adapter.forceRelease(key);
241
234
  expect(result).toBe(true);
242
235
  });
243
236
  test("Should return true when key is unexpireable", async () => {
244
237
  const key = "a";
245
- const owner = "b";
238
+ const lockId = "b";
246
239
  const ttl = null;
247
- await adapter.acquire(key, owner, ttl);
240
+ await adapter.acquire(key, lockId, ttl);
248
241
  const result = await adapter.forceRelease(key);
249
242
  expect(result).toBe(true);
250
243
  });
251
244
  test("Should be reacquirable when force released", async () => {
252
245
  const key = "a";
253
- const owner1 = "b";
246
+ const lockId1 = "b";
254
247
  const ttl = null;
255
- await adapter.acquire(key, owner1, ttl);
248
+ await adapter.acquire(key, lockId1, ttl);
256
249
  await adapter.forceRelease(key);
257
- const owner2 = "c";
258
- const result = await adapter.acquire(key, owner2, ttl);
250
+ const lockId2 = "c";
251
+ const result = await adapter.acquire(key, lockId2, ttl);
259
252
  expect(result).toBe(true);
260
253
  });
261
254
  });
262
255
  describe("method: refresh", () => {
263
256
  test("Should return false when key doesnt exists", async () => {
264
257
  const key = "a";
265
- const owner = "b";
258
+ const lockId = "b";
266
259
  const newTtl = TimeSpan.fromMinutes(1);
267
- const result = await adapter.refresh(key, owner, newTtl);
260
+ const result = await adapter.refresh(key, lockId, newTtl);
268
261
  expect(result).toBe(false);
269
262
  });
270
- test("Should return false when key is unexpireable and refreshed by different owner", async () => {
263
+ test("Should return false when key is unexpireable and refreshed by different lock-id", async () => {
271
264
  const key = "a";
272
- const owner1 = "b";
265
+ const lockId1 = "b";
273
266
  const ttl = null;
274
- await adapter.acquire(key, owner1, ttl);
267
+ await adapter.acquire(key, lockId1, ttl);
275
268
  const newTtl = TimeSpan.fromMinutes(1);
276
- const owner2 = "c";
277
- const result = await adapter.refresh(key, owner2, newTtl);
269
+ const lockId2 = "c";
270
+ const result = await adapter.refresh(key, lockId2, newTtl);
278
271
  expect(result).toBe(false);
279
272
  });
280
- test("Should return false when key is unexpired and refreshed by different owner", async () => {
273
+ test("Should return false when key is unexpired and refreshed by different lock-id", async () => {
281
274
  const key = "a";
282
- const owner1 = "b";
275
+ const lockId1 = "b";
283
276
  const ttl = TimeSpan.fromMilliseconds(50);
284
- await adapter.acquire(key, owner1, ttl);
277
+ await adapter.acquire(key, lockId1, ttl);
285
278
  const newTtl = TimeSpan.fromMinutes(1);
286
- const owner2 = "c";
287
- const result = await adapter.refresh(key, owner2, newTtl);
279
+ const lockId2 = "c";
280
+ const result = await adapter.refresh(key, lockId2, newTtl);
288
281
  expect(result).toBe(false);
289
282
  });
290
- test("Should return false when key is expired and refreshed by different owner", {
291
- retry: 10,
292
- }, async () => {
283
+ test("Should return false when key is expired and refreshed by different lock-id", async () => {
293
284
  const key = "a";
294
- const owner1 = "b";
285
+ const lockId1 = "b";
295
286
  const ttl = TimeSpan.fromMilliseconds(50);
296
- await adapter.acquire(key, owner1, ttl);
287
+ await adapter.acquire(key, lockId1, ttl);
297
288
  await delay(ttl);
298
289
  const newTtl = TimeSpan.fromMinutes(1);
299
- const owner2 = "c";
300
- const result = await adapter.refresh(key, owner2, newTtl);
290
+ const lockId2 = "c";
291
+ const result = await adapter.refresh(key, lockId2, newTtl);
301
292
  expect(result).toBe(false);
302
293
  });
303
- test("Should return false when key is expired and refreshed by same owner", {
304
- retry: 10,
305
- }, async () => {
294
+ test("Should return false when key is expired and refreshed by same lock-id", async () => {
306
295
  const key = "a";
307
- const owner = "b";
296
+ const lockId = "b";
308
297
  const ttl = TimeSpan.fromMilliseconds(50);
309
- await adapter.acquire(key, owner, ttl);
298
+ await adapter.acquire(key, lockId, ttl);
310
299
  await delay(ttl);
311
300
  const newTtl = TimeSpan.fromMinutes(1);
312
- const result = await adapter.refresh(key, owner, newTtl);
301
+ const result = await adapter.refresh(key, lockId, newTtl);
313
302
  expect(result).toBe(false);
314
303
  });
315
- test("Should return false when key is unexpireable and refreshed by same owner", async () => {
304
+ test("Should return false when key is unexpireable and refreshed by same lock-id", async () => {
316
305
  const key = "a";
317
- const owner = "b";
306
+ const lockId = "b";
318
307
  const ttl = null;
319
- await adapter.acquire(key, owner, ttl);
308
+ await adapter.acquire(key, lockId, ttl);
320
309
  const newTtl = TimeSpan.fromMinutes(1);
321
- const result = await adapter.refresh(key, owner, newTtl);
310
+ const result = await adapter.refresh(key, lockId, newTtl);
322
311
  expect(result).toBe(false);
323
312
  });
324
- test("Should return true when key is unexpired and refreshed by same owner", async () => {
313
+ test("Should return true when key is unexpired and refreshed by same lock-id", async () => {
325
314
  const key = "a";
326
- const owner = "b";
315
+ const lockId = "b";
327
316
  const ttl = TimeSpan.fromMilliseconds(50);
328
- await adapter.acquire(key, owner, ttl);
317
+ await adapter.acquire(key, lockId, ttl);
329
318
  const newTtl = TimeSpan.fromMinutes(1);
330
- const result = await adapter.refresh(key, owner, newTtl);
319
+ const result = await adapter.refresh(key, lockId, newTtl);
331
320
  expect(result).toBe(true);
332
321
  });
333
- test("Should not update expiration when key is unexpireable and refreshed by same owner", {
334
- retry: 10,
335
- }, async () => {
322
+ test("Should not update expiration when key is unexpireable and refreshed by same lock-id", async () => {
336
323
  const key = "a";
337
- const owner1 = "b";
324
+ const lockId1 = "b";
338
325
  const ttl = null;
339
- await adapter.acquire(key, owner1, ttl);
326
+ await adapter.acquire(key, lockId1, ttl);
340
327
  const newTtl = TimeSpan.fromMilliseconds(50);
341
- await adapter.refresh(key, owner1, newTtl);
328
+ await adapter.refresh(key, lockId1, newTtl);
342
329
  await delay(newTtl);
343
- const owner2 = "a";
344
- const result = await adapter.acquire(key, owner2, ttl);
330
+ const lockId2 = "a";
331
+ const result = await adapter.acquire(key, lockId2, ttl);
345
332
  expect(result).toBe(false);
346
333
  });
347
- test("Should update expiration when key is unexpired and refreshed by same owner", {
348
- retry: 10,
349
- }, async () => {
334
+ test("Should update expiration when key is unexpired and refreshed by same lock-id", async () => {
350
335
  const key = "a";
351
- const owner1 = "b";
336
+ const lockId1 = "b";
352
337
  const ttl = TimeSpan.fromMilliseconds(50);
353
- await adapter.acquire(key, owner1, ttl);
338
+ await adapter.acquire(key, lockId1, ttl);
354
339
  const newTtl = TimeSpan.fromMilliseconds(100);
355
- await adapter.refresh(key, owner1, newTtl);
340
+ await adapter.refresh(key, lockId1, newTtl);
356
341
  await delay(newTtl.divide(2));
357
- const owner2 = "c";
358
- const result1 = await adapter.acquire(key, owner2, ttl);
342
+ const lockId2 = "c";
343
+ const result1 = await adapter.acquire(key, lockId2, ttl);
359
344
  expect(result1).toBe(false);
360
345
  await delay(newTtl.divide(2));
361
- const result2 = await adapter.acquire(key, owner2, ttl);
346
+ const result2 = await adapter.acquire(key, lockId2, ttl);
362
347
  expect(result2).toBe(true);
363
348
  });
364
349
  });
@@ -368,13 +353,11 @@ export function lockAdapterTestSuite(settings) {
368
353
  const lockData = await adapter.getState(key);
369
354
  expect(lockData).toBeNull();
370
355
  });
371
- test("Should return null when lock is expired", {
372
- retry: 10,
373
- }, async () => {
356
+ test("Should return null when lock is expired", async () => {
374
357
  const key = "a";
375
- const owner = "b";
358
+ const lockId = "b";
376
359
  const ttl = TimeSpan.fromMilliseconds(50);
377
- await adapter.acquire(key, owner, ttl);
360
+ await adapter.acquire(key, lockId, ttl);
378
361
  await delay(ttl);
379
362
  const lockData = await adapter.getState(key);
380
363
  expect(lockData).toBeNull();
@@ -382,8 +365,8 @@ export function lockAdapterTestSuite(settings) {
382
365
  test("Should return null when lock is released with forceRelease method", async () => {
383
366
  const key = "a";
384
367
  const ttl = null;
385
- const owner = "1";
386
- await adapter.acquire(key, owner, ttl);
368
+ const lockId = "1";
369
+ await adapter.acquire(key, lockId, ttl);
387
370
  await adapter.forceRelease(key);
388
371
  const lockData = await adapter.getState(key);
389
372
  expect(lockData).toBeNull();
@@ -391,39 +374,39 @@ export function lockAdapterTestSuite(settings) {
391
374
  test("Should return null when lock is released with release method", async () => {
392
375
  const key = "a";
393
376
  const ttl = null;
394
- const owner = "1";
395
- await adapter.acquire(key, owner, ttl);
396
- await adapter.release(key, owner);
377
+ const lockId = "1";
378
+ await adapter.acquire(key, lockId, ttl);
379
+ await adapter.release(key, lockId);
397
380
  const lockData = await adapter.getState(key);
398
381
  expect(lockData).toBeNull();
399
382
  });
400
383
  test("Should return ILockAdapterState when lock exists and is uenxpireable", async () => {
401
384
  const key = "a";
402
385
  const ttl = null;
403
- const owner = "1";
404
- await adapter.acquire(key, owner, ttl);
386
+ const lockId = "1";
387
+ await adapter.acquire(key, lockId, ttl);
405
388
  const state = await adapter.getState(key);
406
389
  expect(state).toEqual({
407
- owner,
390
+ owner: lockId,
408
391
  expiration: ttl,
409
392
  });
410
393
  });
411
394
  test("Should return ILockAdapterState when lock exists and is unexpired", async () => {
412
395
  const key = "a";
413
- const owner = "1";
396
+ const lockId = "1";
414
397
  const ttl = TimeSpan.fromMinutes(5);
415
398
  let expiration;
416
399
  try {
417
400
  vi.useFakeTimers();
418
401
  expiration = ttl.toEndDate();
419
- await adapter.acquire(key, owner, ttl);
402
+ await adapter.acquire(key, lockId, ttl);
420
403
  }
421
404
  finally {
422
405
  vi.useRealTimers();
423
406
  }
424
407
  const state = await adapter.getState(key);
425
408
  expect(state).toEqual({
426
- owner,
409
+ owner: lockId,
427
410
  expiration,
428
411
  });
429
412
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lock-adapter.test-suite.js","sourceRoot":"","sources":["../../../../src/lock/implementations/test-utilities/lock-adapter.test-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-adapter.test-suite.js","sourceRoot":"","sources":["../../../../src/lock/implementations/test-utilities/lock-adapter.test-suite.ts"],"names":[],"mappings":"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"}