@daiso-tech/core 0.13.0 → 0.15.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 (534) hide show
  1. package/dist/cjs/_module.js +1 -0
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/async/_module.js +20 -0
  4. package/dist/cjs/async/_module.js.map +1 -0
  5. package/dist/cjs/{utilities/async/_shared.js → async/async.errors.js} +1 -1
  6. package/dist/cjs/async/async.errors.js.map +1 -0
  7. package/dist/cjs/{utilities → async}/backof-policies/_module.js +4 -4
  8. package/dist/cjs/async/backof-policies/_module.js.map +1 -0
  9. package/dist/cjs/async/backof-policies/_shared.js.map +1 -0
  10. package/dist/cjs/{utilities/async/delay-iterable → async/backof-policies/constant-backoff-policy}/_module.js +1 -1
  11. package/dist/cjs/async/backof-policies/constant-backoff-policy/_module.js.map +1 -0
  12. package/dist/cjs/{utilities → async}/backof-policies/constant-backoff-policy/constant-backoff-policy.js +1 -1
  13. package/dist/cjs/async/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +1 -0
  14. package/dist/cjs/async/backof-policies/exponential-backoff-policy/_module.js +18 -0
  15. package/dist/cjs/async/backof-policies/exponential-backoff-policy/_module.js.map +1 -0
  16. package/dist/cjs/{utilities → async}/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js +1 -1
  17. package/dist/cjs/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +1 -0
  18. package/dist/cjs/{utilities/async/abortable → async/backof-policies/linear-backoff-policy}/_module.js +1 -1
  19. package/dist/cjs/async/backof-policies/linear-backoff-policy/_module.js.map +1 -0
  20. package/dist/cjs/{utilities → async}/backof-policies/linear-backoff-policy/linear-backoff-policy.js +1 -1
  21. package/dist/cjs/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +1 -0
  22. package/dist/cjs/{utilities/async/abortable-iterable → async/backof-policies/polynomial-backoff-policy}/_module.js +1 -1
  23. package/dist/cjs/async/backof-policies/polynomial-backoff-policy/_module.js.map +1 -0
  24. package/dist/cjs/{utilities → async}/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +1 -1
  25. package/dist/cjs/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +1 -0
  26. package/dist/cjs/{event-bus/implementations/_shared/test-utilities → async/utilities}/_module.js +2 -1
  27. package/dist/cjs/async/utilities/_module.js.map +1 -0
  28. package/dist/cjs/async/utilities/abort/_module.js +19 -0
  29. package/dist/cjs/async/utilities/abort/_module.js.map +1 -0
  30. package/dist/cjs/async/utilities/abort/abort-and-fail.js +45 -0
  31. package/dist/cjs/async/utilities/abort/abort-and-fail.js.map +1 -0
  32. package/dist/cjs/async/utilities/abort/abort.js +18 -0
  33. package/dist/cjs/async/utilities/abort/abort.js.map +1 -0
  34. package/dist/cjs/{utilities/async/retry → async/utilities/delay}/_module.js +1 -1
  35. package/dist/cjs/async/utilities/delay/_module.js.map +1 -0
  36. package/dist/cjs/async/utilities/delay/delay.js +20 -0
  37. package/dist/cjs/async/utilities/delay/delay.js.map +1 -0
  38. package/dist/cjs/{utilities/async → async/utilities}/lazy-promise/_module.js +1 -1
  39. package/dist/cjs/async/utilities/lazy-promise/_module.js.map +1 -0
  40. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +95 -0
  41. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -0
  42. package/dist/cjs/{utilities/async/delay → async/utilities/retry}/_module.js +2 -1
  43. package/dist/cjs/async/utilities/retry/_module.js.map +1 -0
  44. package/dist/cjs/async/utilities/retry/retry-or-fail.js +36 -0
  45. package/dist/cjs/async/utilities/retry/retry-or-fail.js.map +1 -0
  46. package/dist/cjs/async/utilities/retry/retry.js +18 -0
  47. package/dist/cjs/async/utilities/retry/retry.js.map +1 -0
  48. package/dist/cjs/{utilities/async → async/utilities}/timeout/_module.js +2 -1
  49. package/dist/cjs/async/utilities/timeout/_module.js.map +1 -0
  50. package/dist/cjs/async/utilities/timeout/timeout-and-fail.js +25 -0
  51. package/dist/cjs/async/utilities/timeout/timeout-and-fail.js.map +1 -0
  52. package/dist/cjs/async/utilities/timeout/timeout.js +18 -0
  53. package/dist/cjs/async/utilities/timeout/timeout.js.map +1 -0
  54. package/dist/cjs/cache/contracts/cache.events.js +0 -11
  55. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  56. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +12 -11
  57. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  58. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +36 -35
  59. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  60. package/dist/cjs/cache/implementations/adapters/_module.js +1 -0
  61. package/dist/cjs/cache/implementations/adapters/_module.js.map +1 -1
  62. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +3 -3
  63. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  64. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  65. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +1 -1
  66. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  67. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/_module.js +18 -0
  68. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/_module.js.map +1 -0
  69. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +28 -0
  70. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -0
  71. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +1 -1
  72. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  73. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +3 -3
  74. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  75. package/dist/cjs/cache/implementations/derivables/base-cache.js +46 -38
  76. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +1 -1
  77. package/dist/cjs/cache/implementations/derivables/cache-factory.js +3 -3
  78. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  79. package/dist/cjs/cache/implementations/derivables/cache.js +21 -23
  80. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  81. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/_module.js +4 -1
  82. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/_module.js.map +1 -1
  83. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js +27 -0
  84. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js.map +1 -0
  85. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +33 -0
  86. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -0
  87. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +36 -0
  88. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -0
  89. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +48 -0
  90. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -0
  91. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +48 -39
  92. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  93. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +5 -5
  94. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  95. package/dist/cjs/collection/implementations/list-collection/list-collection.js +5 -5
  96. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  97. package/dist/cjs/event-bus/contracts/event-bus.errors.js +3 -3
  98. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -1
  99. package/dist/cjs/event-bus/implementations/_module.js +1 -1
  100. package/dist/cjs/event-bus/implementations/_module.js.map +1 -1
  101. package/dist/cjs/event-bus/implementations/_shared/_module.js +19 -0
  102. package/dist/cjs/event-bus/implementations/_shared/_module.js.map +1 -0
  103. package/dist/cjs/event-bus/implementations/_shared/{test-utilities/event-bus-adapter.test-suite.js → event-bus-adapter.test-suite.js} +4 -3
  104. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -0
  105. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +299 -0
  106. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -0
  107. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  108. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +2 -3
  109. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -1
  110. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js +47 -0
  111. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js.map +1 -0
  112. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +3 -9
  113. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  114. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +20 -55
  115. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  116. package/dist/cjs/utilities/_module.js +5 -4
  117. package/dist/cjs/utilities/_module.js.map +1 -1
  118. package/dist/cjs/utilities/contracts/_module.js +19 -0
  119. package/dist/cjs/utilities/contracts/_module.js.map +1 -0
  120. package/dist/cjs/utilities/contracts/deinitizable.contract.js +3 -0
  121. package/dist/cjs/utilities/contracts/deinitizable.contract.js.map +1 -0
  122. package/dist/cjs/utilities/contracts/initizable.contract.js +3 -0
  123. package/dist/cjs/utilities/contracts/initizable.contract.js.map +1 -0
  124. package/dist/cjs/utilities/{global-errors.js → errors.js} +1 -1
  125. package/dist/cjs/utilities/errors.js.map +1 -0
  126. package/dist/cjs/{_shared/utilities.js → utilities/functions.js} +1 -1
  127. package/dist/cjs/utilities/functions.js.map +1 -0
  128. package/dist/cjs/{_shared → utilities}/kysely/_module.js +1 -1
  129. package/dist/cjs/utilities/kysely/_module.js.map +1 -0
  130. package/dist/cjs/utilities/kysely/kysely-table-name-transformer-plugin.js.map +1 -0
  131. package/dist/cjs/{_shared → utilities}/types.js.map +1 -1
  132. package/dist/esm/_module.js +1 -0
  133. package/dist/esm/_module.js.map +1 -1
  134. package/dist/esm/async/_module.js +4 -0
  135. package/dist/esm/async/_module.js.map +1 -0
  136. package/dist/esm/{utilities/async/_shared.js → async/async.errors.js} +1 -1
  137. package/dist/esm/async/async.errors.js.map +1 -0
  138. package/dist/esm/async/backof-policies/_module.js +5 -0
  139. package/dist/esm/async/backof-policies/_module.js.map +1 -0
  140. package/dist/esm/async/backof-policies/_shared.js.map +1 -0
  141. package/dist/esm/async/backof-policies/constant-backoff-policy/_module.js +2 -0
  142. package/dist/esm/async/backof-policies/constant-backoff-policy/_module.js.map +1 -0
  143. package/dist/esm/{utilities → async}/backof-policies/constant-backoff-policy/constant-backoff-policy.js +1 -1
  144. package/dist/esm/async/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +1 -0
  145. package/dist/esm/async/backof-policies/exponential-backoff-policy/_module.js +2 -0
  146. package/dist/esm/async/backof-policies/exponential-backoff-policy/_module.js.map +1 -0
  147. package/dist/esm/{utilities → async}/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js +1 -1
  148. package/dist/esm/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +1 -0
  149. package/dist/esm/async/backof-policies/linear-backoff-policy/_module.js +2 -0
  150. package/dist/esm/async/backof-policies/linear-backoff-policy/_module.js.map +1 -0
  151. package/dist/esm/{utilities → async}/backof-policies/linear-backoff-policy/linear-backoff-policy.js +1 -1
  152. package/dist/esm/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +1 -0
  153. package/dist/esm/async/backof-policies/polynomial-backoff-policy/_module.js +2 -0
  154. package/dist/esm/async/backof-policies/polynomial-backoff-policy/_module.js.map +1 -0
  155. package/dist/esm/{utilities → async}/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +1 -1
  156. package/dist/esm/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +1 -0
  157. package/dist/esm/async/utilities/_module.js +3 -0
  158. package/dist/esm/async/utilities/_module.js.map +1 -0
  159. package/dist/esm/async/utilities/abort/_module.js +3 -0
  160. package/dist/esm/async/utilities/abort/_module.js.map +1 -0
  161. package/dist/esm/{utilities/async/abortable/abortable.js → async/utilities/abort/abort-and-fail.js} +13 -16
  162. package/dist/esm/async/utilities/abort/abort-and-fail.js.map +1 -0
  163. package/dist/esm/async/utilities/abort/abort.js +15 -0
  164. package/dist/esm/async/utilities/abort/abort.js.map +1 -0
  165. package/dist/esm/async/utilities/delay/_module.js +2 -0
  166. package/dist/esm/async/utilities/delay/_module.js.map +1 -0
  167. package/dist/esm/async/utilities/delay/delay.js +17 -0
  168. package/dist/esm/async/utilities/delay/delay.js.map +1 -0
  169. package/dist/esm/async/utilities/lazy-promise/_module.js +2 -0
  170. package/dist/esm/async/utilities/lazy-promise/_module.js.map +1 -0
  171. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +91 -0
  172. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -0
  173. package/dist/esm/async/utilities/retry/_module.js +3 -0
  174. package/dist/esm/async/utilities/retry/_module.js.map +1 -0
  175. package/dist/esm/async/utilities/retry/retry-or-fail.js +33 -0
  176. package/dist/esm/async/utilities/retry/retry-or-fail.js.map +1 -0
  177. package/dist/esm/async/utilities/retry/retry.js +15 -0
  178. package/dist/esm/async/utilities/retry/retry.js.map +1 -0
  179. package/dist/esm/async/utilities/timeout/_module.js +3 -0
  180. package/dist/esm/async/utilities/timeout/_module.js.map +1 -0
  181. package/dist/esm/async/utilities/timeout/timeout-and-fail.js +22 -0
  182. package/dist/esm/async/utilities/timeout/timeout-and-fail.js.map +1 -0
  183. package/dist/esm/async/utilities/timeout/timeout.js +15 -0
  184. package/dist/esm/async/utilities/timeout/timeout.js.map +1 -0
  185. package/dist/esm/cache/contracts/cache.events.js +0 -10
  186. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  187. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +2 -1
  188. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  189. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +2 -1
  190. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  191. package/dist/esm/cache/implementations/adapters/_module.js +1 -0
  192. package/dist/esm/cache/implementations/adapters/_module.js.map +1 -1
  193. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +4 -4
  194. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  195. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  196. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +2 -2
  197. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  198. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/_module.js +2 -0
  199. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/_module.js.map +1 -0
  200. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +24 -0
  201. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -0
  202. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +2 -2
  203. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  204. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +3 -3
  205. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  206. package/dist/esm/cache/implementations/derivables/base-cache.js +37 -29
  207. package/dist/esm/cache/implementations/derivables/base-cache.js.map +1 -1
  208. package/dist/esm/cache/implementations/derivables/cache-factory.js +1 -1
  209. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  210. package/dist/esm/cache/implementations/derivables/cache.js +16 -18
  211. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  212. package/dist/esm/collection/implementations/async-iterable-collection/_shared/_module.js +4 -1
  213. package/dist/esm/collection/implementations/async-iterable-collection/_shared/_module.js.map +1 -1
  214. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js +23 -0
  215. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.js.map +1 -0
  216. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +29 -0
  217. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -0
  218. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +32 -0
  219. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -0
  220. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +44 -0
  221. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -0
  222. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +46 -37
  223. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  224. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +1 -1
  225. package/dist/esm/collection/implementations/list-collection/list-collection.js +1 -1
  226. package/dist/esm/event-bus/contracts/event-bus.errors.js +3 -3
  227. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -1
  228. package/dist/esm/event-bus/implementations/_module.js +1 -1
  229. package/dist/esm/event-bus/implementations/_module.js.map +1 -1
  230. package/dist/esm/event-bus/implementations/_shared/_module.js +3 -0
  231. package/dist/esm/event-bus/implementations/_shared/_module.js.map +1 -0
  232. package/dist/esm/event-bus/implementations/_shared/{test-utilities/event-bus-adapter.test-suite.js → event-bus-adapter.test-suite.js} +2 -1
  233. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -0
  234. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +296 -0
  235. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -0
  236. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  237. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +3 -4
  238. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -1
  239. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js +43 -0
  240. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js.map +1 -0
  241. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +1 -7
  242. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  243. package/dist/esm/event-bus/implementations/derivables/event-bus.js +18 -53
  244. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  245. package/dist/esm/utilities/_module.js +5 -4
  246. package/dist/esm/utilities/_module.js.map +1 -1
  247. package/dist/esm/utilities/contracts/_module.js +3 -0
  248. package/dist/esm/utilities/contracts/_module.js.map +1 -0
  249. package/dist/esm/utilities/contracts/deinitizable.contract.js +1 -0
  250. package/dist/esm/utilities/contracts/deinitizable.contract.js.map +1 -0
  251. package/dist/esm/utilities/contracts/initizable.contract.js +1 -0
  252. package/dist/esm/utilities/contracts/initizable.contract.js.map +1 -0
  253. package/dist/esm/utilities/{global-errors.js → errors.js} +1 -1
  254. package/dist/esm/utilities/errors.js.map +1 -0
  255. package/dist/esm/{_shared/utilities.js → utilities/functions.js} +1 -1
  256. package/dist/esm/utilities/functions.js.map +1 -0
  257. package/dist/esm/utilities/kysely/_module.js +2 -0
  258. package/dist/esm/utilities/kysely/_module.js.map +1 -0
  259. package/dist/esm/utilities/kysely/kysely-table-name-transformer-plugin.js.map +1 -0
  260. package/dist/esm/{_shared → utilities}/types.js.map +1 -1
  261. package/dist/types/_module.d.ts +1 -0
  262. package/dist/types/async/_module.d.ts +3 -0
  263. package/dist/types/{utilities/async/_shared.d.ts → async/async.errors.d.ts} +6 -6
  264. package/dist/types/async/backof-policies/_module.d.ts +5 -0
  265. package/dist/types/{utilities → async}/backof-policies/_shared.d.ts +1 -1
  266. package/dist/types/async/backof-policies/constant-backoff-policy/_module.d.ts +1 -0
  267. package/dist/types/{utilities → async}/backof-policies/constant-backoff-policy/constant-backoff-policy.d.ts +2 -2
  268. package/dist/types/async/backof-policies/exponential-backoff-policy/_module.d.ts +1 -0
  269. package/dist/types/{utilities → async}/backof-policies/exponential-backoff-policy/exponential-backoff-policy.d.ts +2 -2
  270. package/dist/types/async/backof-policies/linear-backoff-policy/_module.d.ts +1 -0
  271. package/dist/types/{utilities → async}/backof-policies/linear-backoff-policy/linear-backoff-policy.d.ts +2 -2
  272. package/dist/types/async/backof-policies/polynomial-backoff-policy/_module.d.ts +1 -0
  273. package/dist/types/{utilities → async}/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +2 -2
  274. package/dist/types/async/utilities/_module.d.ts +2 -0
  275. package/dist/types/async/utilities/abort/_module.d.ts +2 -0
  276. package/dist/types/async/utilities/abort/abort-and-fail.d.ts +4 -0
  277. package/dist/types/async/utilities/abort/abort.d.ts +9 -0
  278. package/dist/types/async/utilities/delay/_module.d.ts +1 -0
  279. package/dist/types/async/utilities/delay/delay.d.ts +19 -0
  280. package/dist/types/async/utilities/lazy-promise/_module.d.ts +1 -0
  281. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +185 -0
  282. package/dist/types/async/utilities/retry/_module.d.ts +2 -0
  283. package/dist/types/async/utilities/retry/retry-or-fail.d.ts +23 -0
  284. package/dist/types/async/utilities/retry/retry.d.ts +10 -0
  285. package/dist/types/async/utilities/timeout/_module.d.ts +2 -0
  286. package/dist/types/async/utilities/timeout/timeout-and-fail.d.ts +5 -0
  287. package/dist/types/async/utilities/timeout/timeout.d.ts +10 -0
  288. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +1 -1
  289. package/dist/types/cache/contracts/cache.contract.d.ts +7 -28
  290. package/dist/types/cache/contracts/cache.events.d.ts +30 -79
  291. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +26 -24
  292. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +54 -43
  293. package/dist/types/cache/implementations/adapters/_module.d.ts +1 -0
  294. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +1 -1
  295. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +23 -4
  296. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +15 -0
  297. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +20 -4
  298. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/_module.d.ts +1 -0
  299. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +18 -0
  300. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +14 -2
  301. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +20 -3
  302. package/dist/types/cache/implementations/derivables/base-cache.d.ts +15 -14
  303. package/dist/types/cache/implementations/derivables/cache.d.ts +7 -4
  304. package/dist/types/collection/contracts/async-collection.contract.d.ts +10 -6
  305. package/dist/types/collection/contracts/collection.contract.d.ts +1 -1
  306. package/dist/types/collection/implementations/async-iterable-collection/_shared/_module.d.ts +4 -1
  307. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-chunk-iterable.d.ts +1 -1
  308. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-chunk-while-iterable.d.ts +1 -1
  309. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-cross-join-iterable.d.ts +1 -1
  310. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-delay-iterable.d.ts +13 -0
  311. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-entries-iterable.d.ts +1 -1
  312. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-group-by-iterable.d.ts +1 -1
  313. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-insert-after-iterable.d.ts +1 -1
  314. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-insert-before-iterable.d.ts +1 -1
  315. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.d.ts +1 -1
  316. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-pad-end-iterable.d.ts +1 -1
  317. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-pad-start-iterable.d.ts +1 -1
  318. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-partion-iterable.d.ts +1 -1
  319. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-repeat-iterable.d.ts +1 -1
  320. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +13 -0
  321. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-reverse-iterable.d.ts +1 -1
  322. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-split-iterable.d.ts +1 -1
  323. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.d.ts +9 -0
  324. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.d.ts +13 -0
  325. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.d.ts +1 -1
  326. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +4 -3
  327. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +1 -1
  328. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +1 -1
  329. package/dist/types/event-bus/contracts/_shared.d.ts +2 -5
  330. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -1
  331. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +3 -28
  332. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -16
  333. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +3 -3
  334. package/dist/types/event-bus/implementations/_module.d.ts +1 -1
  335. package/dist/types/event-bus/implementations/_shared/_module.d.ts +2 -0
  336. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +59 -0
  337. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +72 -0
  338. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +16 -0
  339. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.d.ts +16 -1
  340. package/dist/types/event-bus/implementations/derivables/base-event-bus.d.ts +23 -0
  341. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +4 -7
  342. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +11 -53
  343. package/dist/types/serializer/implementations/_shared/test-utilities/serializer.test-suite.d.ts +1 -1
  344. package/dist/types/utilities/_module.d.ts +5 -4
  345. package/dist/types/utilities/contracts/_module.d.ts +2 -0
  346. package/dist/types/utilities/contracts/deinitizable.contract.d.ts +9 -0
  347. package/dist/types/utilities/contracts/initizable.contract.d.ts +9 -0
  348. package/dist/types/utilities/{global-errors.d.ts → errors.d.ts} +10 -1
  349. package/dist/types/{_shared/utilities.d.ts → utilities/functions.d.ts} +3 -3
  350. package/dist/types/utilities/kysely/_module.d.ts +1 -0
  351. package/dist/types/{_shared → utilities}/kysely/kysely-table-name-transformer-plugin.d.ts +1 -1
  352. package/dist/types/{_shared → utilities}/types.d.ts +3 -8
  353. package/package.json +1 -1
  354. package/dist/cjs/_shared/kysely/_module.js.map +0 -1
  355. package/dist/cjs/_shared/kysely/kysely-table-name-transformer-plugin.js.map +0 -1
  356. package/dist/cjs/_shared/redis/_module.js +0 -20
  357. package/dist/cjs/_shared/redis/_module.js.map +0 -1
  358. package/dist/cjs/_shared/redis/clear-iterable.js +0 -25
  359. package/dist/cjs/_shared/redis/clear-iterable.js.map +0 -1
  360. package/dist/cjs/_shared/redis/escape-redis-chars.js +0 -41
  361. package/dist/cjs/_shared/redis/escape-redis-chars.js.map +0 -1
  362. package/dist/cjs/_shared/redis/is-redis-type-error.js +0 -9
  363. package/dist/cjs/_shared/redis/is-redis-type-error.js.map +0 -1
  364. package/dist/cjs/_shared/utilities.js.map +0 -1
  365. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js +0 -31
  366. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +0 -1
  367. package/dist/cjs/event-bus/implementations/_shared/test-utilities/_module.js.map +0 -1
  368. package/dist/cjs/event-bus/implementations/_shared/test-utilities/event-bus-adapter.test-suite.js.map +0 -1
  369. package/dist/cjs/event-bus/implementations/derivables/with-validation-event-bus-adapter.js +0 -35
  370. package/dist/cjs/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +0 -1
  371. package/dist/cjs/utilities/async/_module.js +0 -29
  372. package/dist/cjs/utilities/async/_module.js.map +0 -1
  373. package/dist/cjs/utilities/async/_shared.js.map +0 -1
  374. package/dist/cjs/utilities/async/abortable/_module.js.map +0 -1
  375. package/dist/cjs/utilities/async/abortable/abortable.js +0 -48
  376. package/dist/cjs/utilities/async/abortable/abortable.js.map +0 -1
  377. package/dist/cjs/utilities/async/abortable-iterable/_module.js.map +0 -1
  378. package/dist/cjs/utilities/async/abortable-iterable/abortable-iterable.js +0 -32
  379. package/dist/cjs/utilities/async/abortable-iterable/abortable-iterable.js.map +0 -1
  380. package/dist/cjs/utilities/async/delay/_module.js.map +0 -1
  381. package/dist/cjs/utilities/async/delay/delay.js +0 -24
  382. package/dist/cjs/utilities/async/delay/delay.js.map +0 -1
  383. package/dist/cjs/utilities/async/delay-iterable/_module.js.map +0 -1
  384. package/dist/cjs/utilities/async/delay-iterable/delay-iterable.js +0 -36
  385. package/dist/cjs/utilities/async/delay-iterable/delay-iterable.js.map +0 -1
  386. package/dist/cjs/utilities/async/lazy-promise/_module.js.map +0 -1
  387. package/dist/cjs/utilities/async/lazy-promise/lazy-promise.js +0 -22
  388. package/dist/cjs/utilities/async/lazy-promise/lazy-promise.js.map +0 -1
  389. package/dist/cjs/utilities/async/retry/_module.js.map +0 -1
  390. package/dist/cjs/utilities/async/retry/retry.js +0 -43
  391. package/dist/cjs/utilities/async/retry/retry.js.map +0 -1
  392. package/dist/cjs/utilities/async/retry-iterable/_module.js +0 -18
  393. package/dist/cjs/utilities/async/retry-iterable/_module.js.map +0 -1
  394. package/dist/cjs/utilities/async/retry-iterable/retry-iterable.js +0 -32
  395. package/dist/cjs/utilities/async/retry-iterable/retry-iterable.js.map +0 -1
  396. package/dist/cjs/utilities/async/timeout/_module.js.map +0 -1
  397. package/dist/cjs/utilities/async/timeout/timeout.js +0 -28
  398. package/dist/cjs/utilities/async/timeout/timeout.js.map +0 -1
  399. package/dist/cjs/utilities/async/timeout-iterable/_module.js +0 -18
  400. package/dist/cjs/utilities/async/timeout-iterable/_module.js.map +0 -1
  401. package/dist/cjs/utilities/async/timeout-iterable/timeout-iterable.js +0 -11
  402. package/dist/cjs/utilities/async/timeout-iterable/timeout-iterable.js.map +0 -1
  403. package/dist/cjs/utilities/backof-policies/_module.js.map +0 -1
  404. package/dist/cjs/utilities/backof-policies/_shared.js.map +0 -1
  405. package/dist/cjs/utilities/backof-policies/constant-backoff-policy/_module.js +0 -18
  406. package/dist/cjs/utilities/backof-policies/constant-backoff-policy/_module.js.map +0 -1
  407. package/dist/cjs/utilities/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +0 -1
  408. package/dist/cjs/utilities/backof-policies/exponential-backoff-policy/_module.js +0 -18
  409. package/dist/cjs/utilities/backof-policies/exponential-backoff-policy/_module.js.map +0 -1
  410. package/dist/cjs/utilities/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +0 -1
  411. package/dist/cjs/utilities/backof-policies/linear-backoff-policy/_module.js +0 -18
  412. package/dist/cjs/utilities/backof-policies/linear-backoff-policy/_module.js.map +0 -1
  413. package/dist/cjs/utilities/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +0 -1
  414. package/dist/cjs/utilities/backof-policies/polynomial-backoff-policy/_module.js +0 -18
  415. package/dist/cjs/utilities/backof-policies/polynomial-backoff-policy/_module.js.map +0 -1
  416. package/dist/cjs/utilities/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +0 -1
  417. package/dist/cjs/utilities/global-errors.js.map +0 -1
  418. package/dist/cjs/utilities/validation/_module.js +0 -22
  419. package/dist/cjs/utilities/validation/_module.js.map +0 -1
  420. package/dist/esm/_shared/kysely/_module.js +0 -2
  421. package/dist/esm/_shared/kysely/_module.js.map +0 -1
  422. package/dist/esm/_shared/kysely/kysely-table-name-transformer-plugin.js.map +0 -1
  423. package/dist/esm/_shared/redis/_module.js +0 -4
  424. package/dist/esm/_shared/redis/_module.js.map +0 -1
  425. package/dist/esm/_shared/redis/clear-iterable.js +0 -21
  426. package/dist/esm/_shared/redis/clear-iterable.js.map +0 -1
  427. package/dist/esm/_shared/redis/escape-redis-chars.js +0 -38
  428. package/dist/esm/_shared/redis/escape-redis-chars.js.map +0 -1
  429. package/dist/esm/_shared/redis/is-redis-type-error.js +0 -6
  430. package/dist/esm/_shared/redis/is-redis-type-error.js.map +0 -1
  431. package/dist/esm/_shared/utilities.js.map +0 -1
  432. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js +0 -27
  433. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +0 -1
  434. package/dist/esm/event-bus/implementations/_shared/test-utilities/_module.js +0 -2
  435. package/dist/esm/event-bus/implementations/_shared/test-utilities/_module.js.map +0 -1
  436. package/dist/esm/event-bus/implementations/_shared/test-utilities/event-bus-adapter.test-suite.js.map +0 -1
  437. package/dist/esm/event-bus/implementations/derivables/with-validation-event-bus-adapter.js +0 -31
  438. package/dist/esm/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +0 -1
  439. package/dist/esm/utilities/async/_module.js +0 -11
  440. package/dist/esm/utilities/async/_module.js.map +0 -1
  441. package/dist/esm/utilities/async/_shared.js.map +0 -1
  442. package/dist/esm/utilities/async/abortable/_module.js +0 -2
  443. package/dist/esm/utilities/async/abortable/_module.js.map +0 -1
  444. package/dist/esm/utilities/async/abortable/abortable.js.map +0 -1
  445. package/dist/esm/utilities/async/abortable-iterable/_module.js +0 -2
  446. package/dist/esm/utilities/async/abortable-iterable/_module.js.map +0 -1
  447. package/dist/esm/utilities/async/abortable-iterable/abortable-iterable.js +0 -29
  448. package/dist/esm/utilities/async/abortable-iterable/abortable-iterable.js.map +0 -1
  449. package/dist/esm/utilities/async/delay/_module.js +0 -2
  450. package/dist/esm/utilities/async/delay/_module.js.map +0 -1
  451. package/dist/esm/utilities/async/delay/delay.js +0 -21
  452. package/dist/esm/utilities/async/delay/delay.js.map +0 -1
  453. package/dist/esm/utilities/async/delay-iterable/_module.js +0 -2
  454. package/dist/esm/utilities/async/delay-iterable/_module.js.map +0 -1
  455. package/dist/esm/utilities/async/delay-iterable/delay-iterable.js +0 -33
  456. package/dist/esm/utilities/async/delay-iterable/delay-iterable.js.map +0 -1
  457. package/dist/esm/utilities/async/lazy-promise/_module.js +0 -2
  458. package/dist/esm/utilities/async/lazy-promise/_module.js.map +0 -1
  459. package/dist/esm/utilities/async/lazy-promise/lazy-promise.js +0 -17
  460. package/dist/esm/utilities/async/lazy-promise/lazy-promise.js.map +0 -1
  461. package/dist/esm/utilities/async/retry/_module.js +0 -2
  462. package/dist/esm/utilities/async/retry/_module.js.map +0 -1
  463. package/dist/esm/utilities/async/retry/retry.js +0 -40
  464. package/dist/esm/utilities/async/retry/retry.js.map +0 -1
  465. package/dist/esm/utilities/async/retry-iterable/_module.js +0 -2
  466. package/dist/esm/utilities/async/retry-iterable/_module.js.map +0 -1
  467. package/dist/esm/utilities/async/retry-iterable/retry-iterable.js +0 -29
  468. package/dist/esm/utilities/async/retry-iterable/retry-iterable.js.map +0 -1
  469. package/dist/esm/utilities/async/timeout/_module.js +0 -2
  470. package/dist/esm/utilities/async/timeout/_module.js.map +0 -1
  471. package/dist/esm/utilities/async/timeout/timeout.js +0 -25
  472. package/dist/esm/utilities/async/timeout/timeout.js.map +0 -1
  473. package/dist/esm/utilities/async/timeout-iterable/_module.js +0 -2
  474. package/dist/esm/utilities/async/timeout-iterable/_module.js.map +0 -1
  475. package/dist/esm/utilities/async/timeout-iterable/timeout-iterable.js +0 -8
  476. package/dist/esm/utilities/async/timeout-iterable/timeout-iterable.js.map +0 -1
  477. package/dist/esm/utilities/backof-policies/_module.js +0 -5
  478. package/dist/esm/utilities/backof-policies/_module.js.map +0 -1
  479. package/dist/esm/utilities/backof-policies/_shared.js.map +0 -1
  480. package/dist/esm/utilities/backof-policies/constant-backoff-policy/_module.js +0 -2
  481. package/dist/esm/utilities/backof-policies/constant-backoff-policy/_module.js.map +0 -1
  482. package/dist/esm/utilities/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +0 -1
  483. package/dist/esm/utilities/backof-policies/exponential-backoff-policy/_module.js +0 -2
  484. package/dist/esm/utilities/backof-policies/exponential-backoff-policy/_module.js.map +0 -1
  485. package/dist/esm/utilities/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +0 -1
  486. package/dist/esm/utilities/backof-policies/linear-backoff-policy/_module.js +0 -2
  487. package/dist/esm/utilities/backof-policies/linear-backoff-policy/_module.js.map +0 -1
  488. package/dist/esm/utilities/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +0 -1
  489. package/dist/esm/utilities/backof-policies/polynomial-backoff-policy/_module.js +0 -2
  490. package/dist/esm/utilities/backof-policies/polynomial-backoff-policy/_module.js.map +0 -1
  491. package/dist/esm/utilities/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +0 -1
  492. package/dist/esm/utilities/global-errors.js.map +0 -1
  493. package/dist/esm/utilities/validation/_module.js +0 -17
  494. package/dist/esm/utilities/validation/_module.js.map +0 -1
  495. package/dist/types/_shared/kysely/_module.d.ts +0 -1
  496. package/dist/types/_shared/redis/_module.d.ts +0 -3
  497. package/dist/types/_shared/redis/clear-iterable.d.ts +0 -13
  498. package/dist/types/_shared/redis/escape-redis-chars.d.ts +0 -7
  499. package/dist/types/_shared/redis/is-redis-type-error.d.ts +0 -7
  500. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.d.ts +0 -12
  501. package/dist/types/event-bus/implementations/_shared/test-utilities/_module.d.ts +0 -1
  502. package/dist/types/event-bus/implementations/_shared/test-utilities/event-bus-adapter.test-suite.d.ts +0 -36
  503. package/dist/types/event-bus/implementations/derivables/with-validation-event-bus-adapter.d.ts +0 -17
  504. package/dist/types/utilities/async/_module.d.ts +0 -10
  505. package/dist/types/utilities/async/abortable/_module.d.ts +0 -1
  506. package/dist/types/utilities/async/abortable/abortable.d.ts +0 -39
  507. package/dist/types/utilities/async/abortable-iterable/_module.d.ts +0 -1
  508. package/dist/types/utilities/async/abortable-iterable/abortable-iterable.d.ts +0 -36
  509. package/dist/types/utilities/async/delay/_module.d.ts +0 -1
  510. package/dist/types/utilities/async/delay/delay.d.ts +0 -38
  511. package/dist/types/utilities/async/delay-iterable/_module.d.ts +0 -1
  512. package/dist/types/utilities/async/delay-iterable/delay-iterable.d.ts +0 -57
  513. package/dist/types/utilities/async/lazy-promise/_module.d.ts +0 -1
  514. package/dist/types/utilities/async/lazy-promise/lazy-promise.d.ts +0 -28
  515. package/dist/types/utilities/async/retry/_module.d.ts +0 -1
  516. package/dist/types/utilities/async/retry/retry.d.ts +0 -89
  517. package/dist/types/utilities/async/retry-iterable/_module.d.ts +0 -1
  518. package/dist/types/utilities/async/retry-iterable/retry-iterable.d.ts +0 -86
  519. package/dist/types/utilities/async/timeout/_module.d.ts +0 -1
  520. package/dist/types/utilities/async/timeout/timeout.d.ts +0 -40
  521. package/dist/types/utilities/async/timeout-iterable/_module.d.ts +0 -1
  522. package/dist/types/utilities/async/timeout-iterable/timeout-iterable.d.ts +0 -64
  523. package/dist/types/utilities/backof-policies/_module.d.ts +0 -5
  524. package/dist/types/utilities/backof-policies/constant-backoff-policy/_module.d.ts +0 -1
  525. package/dist/types/utilities/backof-policies/exponential-backoff-policy/_module.d.ts +0 -1
  526. package/dist/types/utilities/backof-policies/linear-backoff-policy/_module.d.ts +0 -1
  527. package/dist/types/utilities/backof-policies/polynomial-backoff-policy/_module.d.ts +0 -1
  528. package/dist/types/utilities/validation/_module.d.ts +0 -32
  529. /package/dist/cjs/{utilities → async}/backof-policies/_shared.js +0 -0
  530. /package/dist/cjs/{_shared → utilities}/kysely/kysely-table-name-transformer-plugin.js +0 -0
  531. /package/dist/cjs/{_shared → utilities}/types.js +0 -0
  532. /package/dist/esm/{utilities → async}/backof-policies/_shared.js +0 -0
  533. /package/dist/esm/{_shared → utilities}/kysely/kysely-table-name-transformer-plugin.js +0 -0
  534. /package/dist/esm/{_shared → utilities}/types.js +0 -0
@@ -2,8 +2,9 @@
2
2
  * @module Collection
3
3
  */
4
4
  import type { AsyncReduce, CrossJoinResult, AsyncPredicate, AsyncForEach, AsyncMap, AsyncModifier, AsyncTap, AsyncTransform, Comparator, EnsureRecord, EnsureMap } from "../../collection/contracts/_module";
5
- import type { AsyncLazyable, AsyncIterableValue } from "../../_shared/types";
6
- import type { LazyPromise, TimeSpan } from "../../utilities/_module";
5
+ import type { AsyncLazyable, AsyncIterableValue } from "../../utilities/_module";
6
+ import type { TimeSpan } from "../../utilities/_module";
7
+ import type { LazyPromise } from "../../async/_module";
7
8
  export type AsyncCollapse<TValue> = TValue extends Array<infer TItem> | Iterable<infer TItem> | IAsyncCollection<infer TItem> ? TItem : TValue;
8
9
  /**
9
10
  * The <i>IAsyncCollection</i> contract offers a fluent and efficient approach to working with {@link AsyncIterable} objects.
@@ -1485,7 +1486,9 @@ export type IAsyncCollection<TInput> = AsyncIterable<TInput> & {
1485
1486
  */
1486
1487
  delay(time: TimeSpan): IAsyncCollection<TInput>;
1487
1488
  /**
1488
- * The <i>abort</i> method will abort iteration of the collection by passing <i>{@link AbortSignal}</i>.
1489
+ * @experimental
1490
+ * The <I>takeUntilAbort</i> method returns a new collection that will iterate values until aborted by passing in <i>{@link abortSignal | AbortSignal}</i>.
1491
+ * After when aborted, the collection will stop iterating:
1489
1492
  * @example
1490
1493
  * ```ts
1491
1494
  * import { AsyncIterableCollection } from "@daiso-tech/core";;
@@ -1499,8 +1502,9 @@ export type IAsyncCollection<TInput> = AsyncIterable<TInput> & {
1499
1502
  */
1500
1503
  takeUntilAbort(abortSignal: AbortSignal, shouldThrow?: boolean): IAsyncCollection<TInput>;
1501
1504
  /**
1502
- * The <I>timeout</i> method returns a new collection that will iterate values until the specified time.
1503
- * After that time, the collection will then stop iterating:
1505
+ * @experimental
1506
+ * The <I>takeUntilTimeout</i> method returns a new collection that will iterate values until the specified time.
1507
+ * After that time, the collection will stop iterating:
1504
1508
  * @example
1505
1509
  * ```ts
1506
1510
  * import { AsyncIterableCollection } from "@daiso-tech/core";;
@@ -1519,7 +1523,7 @@ export type IAsyncCollection<TInput> = AsyncIterable<TInput> & {
1519
1523
  * .forEach(nbr => console.log(nbr))
1520
1524
  * ```
1521
1525
  */
1522
- takeUntilTimeout(timeInMs: TimeSpan, shouldThrow?: boolean): IAsyncCollection<TInput>;
1526
+ takeUntilTimeout(time: TimeSpan, shouldThrow?: boolean): IAsyncCollection<TInput>;
1523
1527
  /**
1524
1528
  * The <i>toArray</i> method converts the collection to a new <i>{@link Array}</i>.
1525
1529
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import type { Comparator, Predicate, ForEach, Map, Modifier, Tap, Transform, Reduce, CrossJoinResult, EnsureMap, EnsureRecord } from "../../collection/contracts/_module";
5
- import type { Lazyable } from "../../_shared/types";
5
+ import type { Lazyable } from "../../utilities/_module";
6
6
  export type Collapse<TValue> = TValue extends Array<infer TItem> | Iterable<infer TItem> | ICollection<infer TItem> ? TItem : TValue;
7
7
  /**
8
8
  * The <i>ICollection</i> contract offers a fluent and efficient approach to working with {@link Iterable} objects.
@@ -4,7 +4,6 @@ export * from "../../../../collection/implementations/async-iterable-collection/
4
4
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-count-by-iterable";
5
5
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-cross-join-iterable";
6
6
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-entries-iterable";
7
- export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable";
8
7
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-filter-iterable";
9
8
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-flat-map-iterable";
10
9
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-group-by-iterable";
@@ -31,3 +30,7 @@ export * from "../../../../collection/implementations/async-iterable-collection/
31
30
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-update-iterable";
32
31
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-when-iterable";
33
32
  export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-zip-iterable";
33
+ export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable";
34
+ export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable";
35
+ export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-delay-iterable";
36
+ export * from "../../../../collection/implementations/async-iterable-collection/_shared/async-retry-iterable";
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type AsyncPredicate, type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { CrossJoinResult } from "../../../../collection/contracts/_module";
5
5
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
6
- import { type AsyncIterableValue } from "../../../../_shared/types";
6
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
7
7
  /**
8
8
  * @internal
9
9
  */
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Collection
3
+ */
4
+ import type { TimeSpan } from "../../../../utilities/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class AsyncDelayIterable<TValue> implements AsyncIterable<TValue> {
9
+ private readonly iterable;
10
+ private readonly time;
11
+ constructor(iterable: AsyncIterable<TValue>, time: TimeSpan);
12
+ [Symbol.asyncIterator](): AsyncIterator<TValue>;
13
+ }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Collection
3
3
  */
4
- import { type AsyncIterableValue } from "../../../../_shared/types";
4
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type AsyncMap, type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type AsyncPredicate, type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type AsyncPredicate, type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Collection
3
3
  */
4
- import { type AsyncIterableValue } from "../../../../_shared/types";
4
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type AsyncPredicate, type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Collection
3
+ */
4
+ import { type RetrySettings } from "../../../../async/utilities/retry/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class AsyncRetryIterable<TValue> implements AsyncIterable<TValue> {
9
+ private readonly iterable;
10
+ private readonly settings?;
11
+ constructor(iterable: AsyncIterable<TValue>, settings?: RetrySettings | undefined);
12
+ [Symbol.asyncIterator](): AsyncIterator<TValue>;
13
+ }
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -2,7 +2,7 @@
2
2
  * @module Collection
3
3
  */
4
4
  import { type IAsyncCollection } from "../../../../collection/contracts/_module";
5
- import { type AsyncIterableValue } from "../../../../_shared/types";
5
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ */
4
+ export declare class AsyncTakeUntilAbortIterable<TValue> implements AsyncIterable<TValue> {
5
+ private readonly iterable;
6
+ private readonly abortSignal;
7
+ constructor(iterable: AsyncIterable<TValue>, abortSignal: AbortSignal);
8
+ [Symbol.asyncIterator](): AsyncIterator<TValue>;
9
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Collection
3
+ */
4
+ import { type TimeSpan } from "../../../../utilities/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class AsyncTakeUntilTimeoutIterable<TInput> implements AsyncIterable<TInput> {
9
+ private readonly iterable;
10
+ private readonly time;
11
+ constructor(iterable: AsyncIterable<TInput>, time: TimeSpan);
12
+ [Symbol.asyncIterator](): AsyncIterator<TInput>;
13
+ }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Collection
3
3
  */
4
- import { type AsyncIterableValue } from "../../../../_shared/types";
4
+ import { type AsyncIterableValue } from "../../../../utilities/_module";
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -3,9 +3,9 @@
3
3
  */
4
4
  import type { EnsureMap, EnsureRecord } from "../../../collection/contracts/_module";
5
5
  import { type AsyncCollapse, type AsyncPredicate, type AsyncForEach, type AsyncMap, type AsyncModifier, type AsyncTap, type AsyncTransform, type Comparator, type IAsyncCollection, type AsyncReduce, type CrossJoinResult } from "../../../collection/contracts/_module";
6
- import { type AsyncIterableValue, type AsyncLazyable } from "../../../_shared/types";
6
+ import { type AsyncIterableValue, type AsyncLazyable } from "../../../utilities/_module";
7
7
  import type { TimeSpan } from "../../../utilities/_module";
8
- import { LazyPromise } from "../../../utilities/_module";
8
+ import { LazyPromise } from "../../../async/_module";
9
9
  /**
10
10
  * All methods that return <i>{@link IAsyncCollection}</i> are executed lazly.
11
11
  * The methods that return <i>{@link IAsyncCollection}</i> will only be executed when <i>forEach</i> method is called or <i>for await</i> loop.
@@ -14,6 +14,7 @@ import { LazyPromise } from "../../../utilities/_module";
14
14
  */
15
15
  export declare class AsyncIterableCollection<TInput> implements IAsyncCollection<TInput> {
16
16
  private readonly iterable;
17
+ private static createLazyPromise;
17
18
  private static DEFAULT_CHUNK_SIZE;
18
19
  private static makeCollection;
19
20
  /**
@@ -97,7 +98,7 @@ export declare class AsyncIterableCollection<TInput> implements IAsyncCollection
97
98
  nth(step: number): IAsyncCollection<TInput>;
98
99
  delay(time: TimeSpan): IAsyncCollection<TInput>;
99
100
  takeUntilAbort(abortSignal: AbortSignal): IAsyncCollection<TInput>;
100
- takeUntilTimeout(timeInMs: TimeSpan): IAsyncCollection<TInput>;
101
+ takeUntilTimeout(time: TimeSpan): IAsyncCollection<TInput>;
101
102
  count(predicateFn: AsyncPredicate<TInput, IAsyncCollection<TInput>>): LazyPromise<number>;
102
103
  size(): LazyPromise<number>;
103
104
  isEmpty(): LazyPromise<boolean>;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { EnsureMap, EnsureRecord } from "../../../collection/contracts/_module";
5
5
  import { type Collapse, type Comparator, type Predicate, type ForEach, type ICollection, type Map, type Modifier, type Tap, type Transform, type Reduce, type CrossJoinResult } from "../../../collection/contracts/_module";
6
- import { type Lazyable } from "../../../_shared/types";
6
+ import { type Lazyable } from "../../../utilities/_module";
7
7
  /**
8
8
  * All methods that return <i>{@link ICollection}</i> are executed lazly which means they will be executed when the <i>IterableCollection</i> is iterated with <i>forEach</i> method or "for of" loop.
9
9
  * The rest of the methods are executed eagerly.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { EnsureMap, EnsureRecord } from "../../../collection/contracts/_module";
5
5
  import { type Collapse, type Comparator, type Predicate, type ICollection, type Map, type Modifier, type Tap, type Transform, type Reduce, type ForEach, type CrossJoinResult } from "../../../collection/contracts/_module";
6
- import { type Lazyable } from "../../../_shared/types";
6
+ import { type Lazyable } from "../../../utilities/_module";
7
7
  /**
8
8
  * All methods in <i>ListCollection</i> are executed eagerly.
9
9
  * @group Adapters
@@ -1,8 +1,5 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { Promisable } from "../../_shared/types";
5
- export type IBaseEvent = {
6
- type: string;
7
- };
8
- export type Listener<TEvent extends IBaseEvent> = (event: TEvent) => Promisable<void>;
4
+ import type { Promisable } from "../../utilities/_module";
5
+ export type Listener<TEvent> = (event: TEvent) => Promisable<void>;
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { IBaseEvent, Listener } from "../../event-bus/contracts/_shared";
4
+ import type { Listener } from "../../event-bus/contracts/_shared";
5
+ export type IBaseEvent = {
6
+ type: string;
7
+ };
5
8
  /**
6
9
  * The <i>IEventBusAdapter</i> contract defines a way for dispatching and listening to events independent of underlying technology.
7
10
  * This interface is not meant to be used directly, instead you should use <i>IEventBus</i>
@@ -1,14 +1,12 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { Validator } from "../../utilities/_module";
5
- import type { INamespacedEventBus } from "../../event-bus/contracts/event-bus.contract";
6
- import type { IBaseEvent } from "../../event-bus/contracts/_shared";
4
+ import type { BaseEvents, INamespacedEventBus } from "../../event-bus/contracts/event-bus.contract";
7
5
  /**
8
6
  * The <i>IEventBusFactory</i> contract makes it easy to configure and switch between different <i>{@link INamespacedEventBus}</i> dynamically.
9
7
  * @group Contracts
10
8
  */
11
- export type IEventBusFactory<TDrivers extends string = string, TEvents extends IBaseEvent = IBaseEvent> = {
9
+ export type IEventBusFactory<TDrivers extends string = string, TEvents extends BaseEvents = BaseEvents> = {
12
10
  /**
13
11
  * The <i>use</i> method will throw an error if you provide it unregisted driver.
14
12
  * If no default driver is defined an error will be thrown by <i>use</i> method.
@@ -31,34 +29,11 @@ export type IEventBusFactory<TDrivers extends string = string, TEvents extends I
31
29
  * ```
32
30
  */
33
31
  use(driverName?: TDrivers): INamespacedEventBus<TEvents>;
34
- /**
35
- * The <i>withValidation</i> method is used to set a <i>validator</i>, which validates the event during runtime.
36
- * The type is inferred from the provided <i>validator</i>.
37
- * @example
38
- * ```ts
39
- * import { type IEventBusFactory, zodValidator } from "@daiso-tech/core";
40
- * import { z } from "zod"
41
- *
42
- * async function main(eventBusFactory: IEventBusFactory): Promise<void> {
43
- * const addEventSchema = z.zod({
44
- * type: z.literal("add"),
45
- * a: z.number(),
46
- * b: z.number(),
47
- * });
48
- * await eventBusFactory
49
- * .withValidation(zodValidator(addEventSchema))
50
- * .use()
51
- * // You will se an typescript error and get runtime erorr
52
- * .dispatch({ type: "add" });
53
- * }
54
- * ```
55
- */
56
- withValidation<TOutput extends TEvents = TEvents>(validator: Validator<TOutput>): IEventBusFactory<TDrivers, TOutput>;
57
32
  /**
58
33
  * The <i>withTypes</i> method is used to set the event types of the <i>{@link IEventBus}</i>.
59
34
  * @example
60
35
  * ```ts
61
- * import { type IEventBusFactory, zodValidator } from "@daiso-tech/core";
36
+ * import { type IEventBusFactory } from "@daiso-tech/core";
62
37
  *
63
38
  * async function main(eventBusFactory: IEventBusFactory): Promise<void> {
64
39
  * type AddEvent = {
@@ -1,71 +1,79 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { LazyPromise } from "../../utilities/_module";
5
- import type { OneOrMore } from "../../_shared/types";
6
- import type { IBaseEvent, Listener } from "../../event-bus/contracts/_shared";
7
- export type SelectEvent<TEvents extends IBaseEvent, TEventType extends TEvents["type"]> = Extract<TEvents, {
8
- type: IBaseEvent extends TEvents ? string : TEventType;
4
+ import type { OneOrMore, Values } from "../../utilities/_module";
5
+ import type { LazyPromise } from "../../async/_module";
6
+ import type { Listener } from "../../event-bus/contracts/_shared";
7
+ export type BaseEvents = Record<string, Record<string, unknown>>;
8
+ export type AllEvents<TEvents extends BaseEvents> = Values<{
9
+ [TEventName in keyof TEvents]: TEvents[TEventName] & {
10
+ type: TEventName;
11
+ };
9
12
  }>;
13
+ export type SelectEvent<TEvents extends BaseEvents, TEventName extends keyof TEvents> = {
14
+ [TEventName in keyof TEvents]: TEvents[TEventName] & {
15
+ type: TEventName;
16
+ };
17
+ }[TEventName];
10
18
  export type Unsubscribe = () => LazyPromise<void>;
11
19
  /**
12
20
  * The <i>IListenable</i> contract defines a way listening to events independent of underlying technology
13
21
  * @group Contracts
14
22
  */
15
- export type IListenable<TEvents extends IBaseEvent = IBaseEvent> = {
23
+ export type IListenable<TEvents extends BaseEvents = BaseEvents> = {
16
24
  /**
17
25
  * The <i>addListener</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i>.
18
26
  * A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
19
27
  * @throws {AddListenerEventBusError} {@link AddListenerEventBusError}
20
28
  */
21
- addListener<TEventType extends TEvents["type"]>(event: TEventType, listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
29
+ addListener<TEventName extends keyof TEvents>(eventName: TEventName, listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
22
30
  /**
23
31
  * The <i>addListenerMany</i> method is used for adding multiple <i>{@link Listener | listeners}</i> for certain <i>events</i>.
24
32
  * A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
25
33
  * @throws {AddListenerEventBusError} {@link AddListenerEventBusError}
26
34
  */
27
- addListenerMany<TEventType extends TEvents["type"]>(events: TEventType[], listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
35
+ addListenerMany<TEventName extends keyof TEvents>(eventNames: TEventName[], listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
28
36
  /**
29
37
  * The <i>removeListener</i> method is used for removing <i>{@link Listener | listener}</i> for certain <i>event</i>.
30
38
  * Removing unadded listener will have no effect and nothing will occur.
31
39
  * @throws {RemoveListenerEventBusError} {@link RemoveListenerEventBusError}
32
40
  */
33
- removeListener<TEventType extends TEvents["type"]>(event: TEventType, listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
41
+ removeListener<TEventName extends keyof TEvents>(eventName: TEventName, listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
34
42
  /**
35
43
  * The <i>removeListener</i> method is used for removing multiple <i>{@link Listener | listeners}</i> for certain <i>event</i>.
36
44
  * Removing unadded listener will have no effect and nothing will occur.
37
45
  * @throws {RemoveListenerEventBusError} {@link RemoveListenerEventBusError}
38
46
  */
39
- removeListenerMany<TEventType extends TEvents["type"]>(events: TEventType[], listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
47
+ removeListenerMany<TEventName extends keyof TEvents>(eventNames: TEventName[], listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
40
48
  /**
41
49
  * The <i>subscribe</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i>.
42
50
  * A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
43
51
  */
44
- subscribe<TEventType extends TEvents["type"]>(event: TEventType, listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<Unsubscribe>;
52
+ subscribe<TEventName extends keyof TEvents>(eventName: TEventName, listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<Unsubscribe>;
45
53
  /**
46
54
  * The <i>subscribeMany</i> method is used for adding <i>{@link Listener | listener}</i> for multiple <i>events</i>.
47
55
  * A listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
48
56
  */
49
- subscribeMany<TEventType extends TEvents["type"]>(events: TEventType[], listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<Unsubscribe>;
57
+ subscribeMany<TEventName extends keyof TEvents>(eventNames: TEventName[], listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<Unsubscribe>;
50
58
  };
51
59
  /**
52
60
  * The <i>IDispatcher</i> contract defines a way for dispatching to events independent of underlying technology.
53
61
  * @group Contracts
54
62
  */
55
- export type IDispatcher<TEvents extends IBaseEvent = IBaseEvent> = {
63
+ export type IDispatcher<TEvents extends BaseEvents = BaseEvents> = {
56
64
  /**
57
65
  * The <i>dispatch</i> method is used for dispatching one or multiple <i>events</i>.
58
66
 
59
67
  * @throws {DispatchEventBusError} {@link DispatchEventBusError}
60
68
  */
61
- dispatch(events: OneOrMore<TEvents>): LazyPromise<void>;
69
+ dispatch(events: OneOrMore<AllEvents<TEvents>>): LazyPromise<void>;
62
70
  };
63
71
  /**
64
72
  * The <i>IEventBus</i> contract defines a way for dispatching and listening to events independent of underlying technology.
65
73
  * It commes with more convient methods compared to <i>IEventBusAdapter</i>.
66
74
  * @group Contracts
67
75
  */
68
- export type IEventBus<TEvents extends IBaseEvent = IBaseEvent> = IListenable<TEvents> & IDispatcher<TEvents> & {
76
+ export type IEventBus<TEvents extends BaseEvents = BaseEvents> = IListenable<TEvents> & IDispatcher<TEvents> & {
69
77
  /**
70
78
  * The <i>getNamespace</i> method returns the complete namespace.
71
79
  * @example
@@ -90,7 +98,7 @@ export type IEventBus<TEvents extends IBaseEvent = IBaseEvent> = IListenable<TEv
90
98
  * It commes with one extra method which is useful for multitennat applications compared to <i>IEventBus</i>.
91
99
  * @group Contracts
92
100
  */
93
- export type INamespacedEventBus<TEvents extends IBaseEvent = IBaseEvent> = IEventBus<TEvents> & {
101
+ export type INamespacedEventBus<TEvents extends BaseEvents = BaseEvents> = IEventBus<TEvents> & {
94
102
  /**
95
103
  * The <i>withNamespace</i> method returns new instance of <i>{@link IEventBus}</i> where all the events names will be prefixed with a given <i>namespace</i>.
96
104
  * This useful for multitennat applications.
@@ -16,18 +16,18 @@ export declare class UnexpectedEventBusError extends EventBusError {
16
16
  /**
17
17
  * @group Errors
18
18
  */
19
- export declare class RemoveListenerEventBusError extends Error {
19
+ export declare class RemoveListenerEventBusError extends UnexpectedEventBusError {
20
20
  constructor(message: string, cause?: unknown);
21
21
  }
22
22
  /**
23
23
  * @group Errors
24
24
  */
25
- export declare class AddListenerEventBusError extends Error {
25
+ export declare class AddListenerEventBusError extends UnexpectedEventBusError {
26
26
  constructor(message: string, cause?: unknown);
27
27
  }
28
28
  /**
29
29
  * @group Errors
30
30
  */
31
- export declare class DispatchEventBusError extends Error {
31
+ export declare class DispatchEventBusError extends UnexpectedEventBusError {
32
32
  constructor(message: string, cause?: unknown);
33
33
  }
@@ -1,3 +1,3 @@
1
- export * from "../../event-bus/implementations/_shared/test-utilities/_module";
1
+ export * from "../../event-bus/implementations/_shared/_module";
2
2
  export * from "../../event-bus/implementations/derivables/_module";
3
3
  export * from "../../event-bus/implementations/adapters/_module";
@@ -0,0 +1,2 @@
1
+ export * from "../../../event-bus/implementations/_shared/event-bus-adapter.test-suite";
2
+ export * from "../../../event-bus/implementations/_shared/event-bus.test-suite";
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import type { IEventBusAdapter } from "../../../event-bus/contracts/_module";
6
+ import { type Promisable } from "../../../utilities/_module";
7
+ /**
8
+ * @group Utilities
9
+ */
10
+ export type EventBusAdapterTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IEventBusAdapter>;
16
+ };
17
+ /**
18
+ * The <i>eventBusAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link IEventBusAdapter}</i> with vitest.
19
+ * @group Utilities
20
+ * @example
21
+ * ```ts
22
+ * import { describe, test, beforeEach, expect, afterEach } from "vitest";
23
+ * import type { StartedRedisContainer } from "@testcontainers/redis";
24
+ * import { RedisContainer } from "@testcontainers/redis";
25
+ * import Redis from "ioredis";
26
+ * import { SuperJsonSerializer, TimeSpan, RedisEventBusAdapter, eventBusAdapterTestSuite } from "@daiso-tech/core";
27
+ *
28
+ * const timeout = TimeSpan.fromMinutes(2);
29
+ * describe("class: RedisEventBusAdapter", () => {
30
+ * let dispatcherClient: Redis;
31
+ * let listenerClient: Redis;
32
+ * let startedContainer: StartedRedisContainer;
33
+ * const serializer = new SuperJsonSerializer();
34
+ * beforeEach(async () => {
35
+ * startedContainer = await new RedisContainer().start();
36
+ * dispatcherClient = new Redis(startedContainer.getConnectionUrl());
37
+ * listenerClient = new Redis(startedContainer.getConnectionUrl());
38
+ * }, timeout.toMilliseconds());
39
+ * afterEach(async () => {
40
+ * await dispatcherClient.quit();
41
+ * await listenerClient.quit();
42
+ * await startedContainer.stop();
43
+ * }, timeout.toMilliseconds());
44
+ * eventBusAdapterTestSuite({
45
+ * createAdapter: () =>
46
+ * new RedisEventBusAdapter({
47
+ * dispatcherClient,
48
+ * listenerClient,
49
+ * serializer,
50
+ * }),
51
+ * test,
52
+ * beforeEach,
53
+ * expect,
54
+ * describe,
55
+ * });
56
+ * });
57
+ * ```
58
+ */
59
+ export declare function eventBusAdapterTestSuite(settings: EventBusAdapterTestSuiteSettings): void;