@daiso-tech/core 0.15.0 → 0.17.4

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 (494) hide show
  1. package/dist/cjs/_module.js +2 -2
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/async/_module.js +1 -1
  4. package/dist/cjs/async/_module.js.map +1 -1
  5. package/dist/cjs/async/backof-policies/_module.js +1 -0
  6. package/dist/cjs/async/backof-policies/_module.js.map +1 -1
  7. package/dist/cjs/async/utilities/_module.js +3 -0
  8. package/dist/cjs/async/utilities/_module.js.map +1 -1
  9. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +21 -12
  10. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  11. package/dist/cjs/cache/contracts/cache.events.js +168 -0
  12. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  13. package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
  14. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
  15. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  16. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  17. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +23 -2
  18. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +63 -20
  20. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  22. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  23. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
  24. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  25. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +30 -16
  26. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  28. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  29. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
  30. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  31. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +66 -39
  32. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  33. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  34. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  35. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
  36. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  37. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +78 -28
  38. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  39. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  40. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  41. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  42. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  43. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
  44. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  45. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +55 -23
  46. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  49. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
  50. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  51. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +31 -17
  52. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  53. package/dist/cjs/cache/implementations/derivables/_module.js +3 -2
  54. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  55. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
  56. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  57. package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -18
  58. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  59. package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
  60. package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
  61. package/dist/cjs/cache/implementations/derivables/cache.js +334 -79
  62. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  63. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  64. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  65. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  66. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  67. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  68. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  69. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  70. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  71. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +62 -41
  72. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  73. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  74. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  75. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  76. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  77. package/dist/cjs/collection/implementations/list-collection/list-collection.js +13 -0
  78. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  79. package/dist/cjs/event-bus/contracts/_module.js +2 -2
  80. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  81. package/dist/cjs/event-bus/contracts/_shared.js +7 -0
  82. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  83. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +98 -38
  84. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  85. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +197 -125
  86. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  87. package/dist/cjs/event-bus/implementations/adapters/_module.js +1 -1
  88. package/dist/cjs/event-bus/implementations/adapters/_module.js.map +1 -1
  89. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  90. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  91. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
  92. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  93. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +29 -11
  94. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  95. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +9 -3
  96. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  97. package/dist/cjs/{serializer/implementations/_shared/test-utilities → event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter}/_module.js +2 -1
  98. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  99. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
  100. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  101. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +56 -0
  102. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  103. package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
  104. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
  105. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
  106. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  107. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -17
  108. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  109. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
  110. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  111. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +106 -37
  112. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  113. package/dist/cjs/serde/contracts/_module.js +23 -0
  114. package/dist/cjs/serde/contracts/_module.js.map +1 -0
  115. package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
  116. package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
  117. package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
  118. package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
  119. package/dist/cjs/serde/contracts/serde.contract.js +3 -0
  120. package/dist/cjs/serde/contracts/serde.contract.js.map +1 -0
  121. package/dist/cjs/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +7 -7
  122. package/dist/cjs/serde/contracts/serde.errors.js.map +1 -0
  123. package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
  124. package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
  125. package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
  126. package/dist/cjs/{serializer → serde}/implementations/_module.js +6 -5
  127. package/dist/cjs/serde/implementations/_module.js.map +1 -0
  128. package/dist/cjs/{serializer/contracts → serde/implementations/_shared/test-utilities}/_module.js +2 -2
  129. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  130. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
  131. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  132. package/dist/cjs/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +68 -93
  133. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  134. package/dist/cjs/{serializer/implementations/sql-serializer → serde/implementations/mongodb-serde}/_module.js +1 -1
  135. package/dist/cjs/serde/implementations/mongodb-serde/_module.js.map +1 -0
  136. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js +36 -0
  137. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  138. package/dist/cjs/{serializer/implementations/redis-serializer → serde/implementations/no-op-serde}/_module.js +1 -1
  139. package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
  140. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
  141. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  142. package/dist/cjs/{serializer/implementations/mongodb-serializer → serde/implementations/redis-serde}/_module.js +1 -1
  143. package/dist/cjs/serde/implementations/redis-serde/_module.js.map +1 -0
  144. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js +37 -0
  145. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  146. package/dist/cjs/{event-bus/implementations/adapters/redis-event-bus-adapter → serde/implementations/sql-serde}/_module.js +1 -1
  147. package/dist/cjs/serde/implementations/sql-serde/_module.js.map +1 -0
  148. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js +37 -0
  149. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  150. package/dist/cjs/serde/implementations/super-json-serde/_module.js +18 -0
  151. package/dist/cjs/serde/implementations/super-json-serde/_module.js.map +1 -0
  152. package/dist/cjs/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +77 -100
  153. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  154. package/dist/cjs/utilities/contracts/_module.js +1 -0
  155. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  156. package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
  157. package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
  158. package/dist/cjs/utilities/errors.js +10 -10
  159. package/dist/cjs/utilities/errors.js.map +1 -1
  160. package/dist/cjs/utilities/functions.js +9 -5
  161. package/dist/cjs/utilities/functions.js.map +1 -1
  162. package/dist/cjs/utilities/time-span/time-span.js +8 -0
  163. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  164. package/dist/esm/_module.js +2 -2
  165. package/dist/esm/_module.js.map +1 -1
  166. package/dist/esm/async/_module.js +1 -1
  167. package/dist/esm/async/_module.js.map +1 -1
  168. package/dist/esm/async/backof-policies/_module.js +1 -0
  169. package/dist/esm/async/backof-policies/_module.js.map +1 -1
  170. package/dist/esm/async/utilities/_module.js +3 -0
  171. package/dist/esm/async/utilities/_module.js.map +1 -1
  172. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +21 -12
  173. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  174. package/dist/esm/cache/contracts/cache.events.js +158 -0
  175. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  176. package/dist/esm/cache/implementations/_shared/_module.js +1 -0
  177. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
  178. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  179. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  180. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +23 -2
  181. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  182. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +64 -21
  183. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  184. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  185. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  186. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
  187. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  188. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +29 -15
  189. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  190. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  191. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  192. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
  193. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  194. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +66 -39
  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/_module.js +2 -1
  197. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  198. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
  199. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  200. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +78 -25
  201. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  202. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  203. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  204. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  205. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  206. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
  207. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  208. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +55 -23
  209. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  210. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  211. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  212. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
  213. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  214. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +29 -15
  215. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  216. package/dist/esm/cache/implementations/derivables/_module.js +3 -2
  217. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  218. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
  219. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  220. package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -19
  221. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  222. package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
  223. package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
  224. package/dist/esm/cache/implementations/derivables/cache.js +333 -78
  225. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  226. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  227. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  228. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  229. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  230. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  231. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  232. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  233. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  234. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +62 -41
  235. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  236. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  237. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  238. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  239. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  240. package/dist/esm/collection/implementations/list-collection/list-collection.js +13 -0
  241. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  242. package/dist/esm/event-bus/contracts/_module.js +2 -2
  243. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  244. package/dist/esm/event-bus/contracts/_shared.js +5 -0
  245. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  246. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +96 -36
  247. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  248. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +195 -123
  249. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  250. package/dist/esm/event-bus/implementations/adapters/_module.js +1 -1
  251. package/dist/esm/event-bus/implementations/adapters/_module.js.map +1 -1
  252. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  253. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  254. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
  255. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  256. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +29 -11
  257. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  258. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +9 -3
  259. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  260. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +3 -0
  261. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  262. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
  263. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  264. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +52 -0
  265. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  266. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
  267. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
  268. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
  269. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  270. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -18
  271. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  272. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
  273. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  274. package/dist/esm/event-bus/implementations/derivables/event-bus.js +108 -39
  275. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  276. package/dist/esm/serde/contracts/_module.js +7 -0
  277. package/dist/esm/serde/contracts/_module.js.map +1 -0
  278. package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
  279. package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
  280. package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
  281. package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
  282. package/dist/esm/serde/contracts/serde.contract.js +1 -0
  283. package/dist/esm/serde/contracts/serde.contract.js.map +1 -0
  284. package/dist/esm/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +5 -5
  285. package/dist/esm/serde/contracts/serde.errors.js.map +1 -0
  286. package/dist/esm/serde/contracts/serializable.contract.js +1 -0
  287. package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
  288. package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
  289. package/dist/esm/serde/implementations/_module.js +7 -0
  290. package/dist/esm/serde/implementations/_module.js.map +1 -0
  291. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +3 -0
  292. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  293. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
  294. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  295. package/dist/esm/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +67 -92
  296. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  297. package/dist/esm/serde/implementations/mongodb-serde/_module.js +2 -0
  298. package/dist/esm/serde/implementations/mongodb-serde/_module.js.map +1 -0
  299. package/dist/esm/{serializer/implementations/mongodb-serializer/mongodb-serializer.js → serde/implementations/mongodb-serde/mongodb-serde.js} +10 -10
  300. package/dist/esm/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  301. package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
  302. package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
  303. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
  304. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  305. package/dist/esm/serde/implementations/redis-serde/_module.js +2 -0
  306. package/dist/esm/serde/implementations/redis-serde/_module.js.map +1 -0
  307. package/dist/esm/{serializer/implementations/sql-serializer/sql-serializer.js → serde/implementations/redis-serde/redis-serde.js} +10 -10
  308. package/dist/esm/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  309. package/dist/esm/serde/implementations/sql-serde/_module.js +2 -0
  310. package/dist/esm/serde/implementations/sql-serde/_module.js.map +1 -0
  311. package/dist/esm/{serializer/implementations/redis-serializer/redis-serializer.js → serde/implementations/sql-serde/sql-serde.js} +10 -10
  312. package/dist/esm/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  313. package/dist/esm/serde/implementations/super-json-serde/_module.js +2 -0
  314. package/dist/esm/serde/implementations/super-json-serde/_module.js.map +1 -0
  315. package/dist/esm/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +55 -55
  316. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  317. package/dist/esm/utilities/contracts/_module.js +1 -0
  318. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  319. package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
  320. package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
  321. package/dist/esm/utilities/errors.js +7 -7
  322. package/dist/esm/utilities/errors.js.map +1 -1
  323. package/dist/esm/utilities/functions.js +7 -4
  324. package/dist/esm/utilities/functions.js.map +1 -1
  325. package/dist/esm/utilities/time-span/time-span.js +8 -0
  326. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  327. package/dist/types/_module.d.ts +2 -2
  328. package/dist/types/async/_module.d.ts +1 -1
  329. package/dist/types/async/backof-policies/_module.d.ts +1 -1
  330. package/dist/types/async/utilities/_module.d.ts +3 -0
  331. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +66 -39
  332. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +20 -6
  333. package/dist/types/cache/contracts/cache-factory.contract.d.ts +12 -25
  334. package/dist/types/cache/contracts/cache.contract.d.ts +382 -22
  335. package/dist/types/cache/contracts/cache.events.d.ts +156 -42
  336. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  337. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +21 -12
  338. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +21 -15
  339. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +15 -8
  340. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
  341. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
  342. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +54 -36
  343. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  344. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
  345. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +50 -20
  346. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
  347. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
  348. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +66 -41
  349. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +6 -3
  350. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  351. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
  352. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +51 -29
  353. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  354. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
  355. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +54 -34
  356. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -2
  357. package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
  358. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -45
  359. package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
  360. package/dist/types/cache/implementations/derivables/cache.d.ts +83 -62
  361. package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
  362. package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
  363. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.d.ts +4 -5
  364. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
  365. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +194 -3
  366. package/dist/types/collection/implementations/iterable-collection/_shared/merge-iterable.d.ts +4 -5
  367. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +141 -1
  368. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +141 -1
  369. package/dist/types/event-bus/contracts/_module.d.ts +2 -2
  370. package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
  371. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +9 -8
  372. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +38 -32
  373. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +52 -37
  374. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +22 -10
  375. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +16 -13
  376. package/dist/types/event-bus/implementations/adapters/_module.d.ts +1 -1
  377. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
  378. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
  379. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +53 -22
  380. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +7 -4
  381. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -0
  382. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
  383. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +62 -0
  384. package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
  385. package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
  386. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +40 -24
  387. package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
  388. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +31 -45
  389. package/dist/types/serde/contracts/_module.d.ts +6 -0
  390. package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
  391. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
  392. package/dist/types/serde/contracts/serde.contract.d.ts +10 -0
  393. package/dist/types/{serializer/contracts/serializer.errors.d.ts → serde/contracts/serde.errors.d.ts} +4 -4
  394. package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
  395. package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
  396. package/dist/types/serde/implementations/_module.d.ts +6 -0
  397. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +2 -0
  398. package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
  399. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +17 -0
  400. package/dist/types/serde/implementations/mongodb-serde/_module.d.ts +1 -0
  401. package/dist/types/serde/implementations/mongodb-serde/mongodb-serde.d.ts +13 -0
  402. package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
  403. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
  404. package/dist/types/serde/implementations/redis-serde/_module.d.ts +1 -0
  405. package/dist/types/serde/implementations/redis-serde/redis-serde.d.ts +13 -0
  406. package/dist/types/serde/implementations/sql-serde/_module.d.ts +1 -0
  407. package/dist/types/serde/implementations/sql-serde/sql-serde.d.ts +13 -0
  408. package/dist/types/serde/implementations/super-json-serde/_module.d.ts +1 -0
  409. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +25 -0
  410. package/dist/types/utilities/contracts/_module.d.ts +1 -0
  411. package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
  412. package/dist/types/utilities/errors.d.ts +3 -3
  413. package/dist/types/utilities/functions.d.ts +5 -1
  414. package/dist/types/utilities/time-span/time-span.d.ts +10 -1
  415. package/dist/types/utilities/types.d.ts +0 -1
  416. package/package.json +3 -9
  417. package/dist/cjs/cache/implementations/derivables/base-cache.js +0 -270
  418. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +0 -1
  419. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  420. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -44
  421. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  422. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js +0 -47
  423. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  424. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -42
  425. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  426. package/dist/cjs/serializer/contracts/_module.js.map +0 -1
  427. package/dist/cjs/serializer/contracts/serializer.contract.js.map +0 -1
  428. package/dist/cjs/serializer/contracts/serializer.errors.js.map +0 -1
  429. package/dist/cjs/serializer/implementations/_module.js.map +0 -1
  430. package/dist/cjs/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  431. package/dist/cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  432. package/dist/cjs/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  433. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +0 -36
  434. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  435. package/dist/cjs/serializer/implementations/redis-serializer/_module.js.map +0 -1
  436. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +0 -37
  437. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  438. package/dist/cjs/serializer/implementations/sql-serializer/_module.js.map +0 -1
  439. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +0 -37
  440. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  441. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js +0 -18
  442. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  443. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  444. package/dist/esm/cache/implementations/derivables/base-cache.js +0 -266
  445. package/dist/esm/cache/implementations/derivables/base-cache.js.map +0 -1
  446. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js +0 -2
  447. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  448. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -40
  449. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  450. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js +0 -43
  451. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  452. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -38
  453. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  454. package/dist/esm/serializer/contracts/_module.js +0 -3
  455. package/dist/esm/serializer/contracts/_module.js.map +0 -1
  456. package/dist/esm/serializer/contracts/serializer.contract.js.map +0 -1
  457. package/dist/esm/serializer/contracts/serializer.errors.js.map +0 -1
  458. package/dist/esm/serializer/implementations/_module.js +0 -6
  459. package/dist/esm/serializer/implementations/_module.js.map +0 -1
  460. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js +0 -2
  461. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  462. package/dist/esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  463. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js +0 -2
  464. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  465. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  466. package/dist/esm/serializer/implementations/redis-serializer/_module.js +0 -2
  467. package/dist/esm/serializer/implementations/redis-serializer/_module.js.map +0 -1
  468. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  469. package/dist/esm/serializer/implementations/sql-serializer/_module.js +0 -2
  470. package/dist/esm/serializer/implementations/sql-serializer/_module.js.map +0 -1
  471. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  472. package/dist/esm/serializer/implementations/super-json-serializer/_module.js +0 -2
  473. package/dist/esm/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  474. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  475. package/dist/types/cache/implementations/derivables/base-cache.d.ts +0 -58
  476. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/_module.d.ts +0 -1
  477. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.d.ts +0 -43
  478. package/dist/types/event-bus/implementations/derivables/base-event-bus.d.ts +0 -23
  479. package/dist/types/event-bus/implementations/derivables/with-namespace-event-bus-adapter.d.ts +0 -16
  480. package/dist/types/serializer/contracts/_module.d.ts +0 -2
  481. package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -16
  482. package/dist/types/serializer/implementations/_module.d.ts +0 -5
  483. package/dist/types/serializer/implementations/_shared/test-utilities/_module.d.ts +0 -1
  484. package/dist/types/serializer/implementations/_shared/test-utilities/serializer.test-suite.d.ts +0 -18
  485. package/dist/types/serializer/implementations/mongodb-serializer/_module.d.ts +0 -1
  486. package/dist/types/serializer/implementations/mongodb-serializer/mongodb-serializer.d.ts +0 -13
  487. package/dist/types/serializer/implementations/redis-serializer/_module.d.ts +0 -1
  488. package/dist/types/serializer/implementations/redis-serializer/redis-serializer.d.ts +0 -13
  489. package/dist/types/serializer/implementations/sql-serializer/_module.d.ts +0 -1
  490. package/dist/types/serializer/implementations/sql-serializer/sql-serializer.d.ts +0 -13
  491. package/dist/types/serializer/implementations/super-json-serializer/_module.d.ts +0 -1
  492. package/dist/types/serializer/implementations/super-json-serializer/super-json-serializer.d.ts +0 -37
  493. /package/dist/cjs/{serializer → serde}/contracts/serializer.contract.js +0 -0
  494. /package/dist/esm/{serializer → serde}/contracts/serializer.contract.js +0 -0
@@ -5,9 +5,8 @@ import { type AsyncIterableValue } from "../../../../utilities/_module";
5
5
  /**
6
6
  * @internal
7
7
  */
8
- export declare class AsyncMergeIterable<TInput, TExtended> implements AsyncIterable<TInput | TExtended> {
9
- private iterableA;
10
- private iterableB;
11
- constructor(iterableA: AsyncIterableValue<TInput>, iterableB: AsyncIterableValue<TExtended>);
12
- [Symbol.asyncIterator](): AsyncIterator<TInput | TExtended>;
8
+ export declare class AsyncMergeIterable<TInput> implements AsyncIterable<TInput> {
9
+ private readonly iterables;
10
+ constructor(iterables: AsyncIterableValue<AsyncIterableValue<TInput>>);
11
+ [Symbol.asyncIterator](): AsyncIterator<TInput>;
13
12
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Collection
3
3
  */
4
- import { type RetrySettings } from "../../../../async/utilities/retry/_module";
4
+ import { type RetrySettings } from "../../../../async/utilities/_module";
5
5
  /**
6
6
  * @internal
7
7
  */
@@ -5,22 +5,213 @@ import type { EnsureMap, EnsureRecord } from "../../../collection/contracts/_mod
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
6
  import { type AsyncIterableValue, type AsyncLazyable } from "../../../utilities/_module";
7
7
  import type { TimeSpan } from "../../../utilities/_module";
8
+ import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
8
9
  import { LazyPromise } from "../../../async/_module";
10
+ /**
11
+ * @group Adapters
12
+ */
13
+ export type AsyncIterableCollectionSettings = {
14
+ /**
15
+ * The default retry attempt to use in the returned <i>LazyPromise</i>.
16
+ */
17
+ retryAttempts?: number | null;
18
+ /**
19
+ * The default backof policy to use in the returned <i>LazyPromise</i>.
20
+ */
21
+ backoffPolicy?: BackoffPolicy | null;
22
+ /**
23
+ * The default retry policy to use in the returned <i>LazyPromise</i>.
24
+ */
25
+ retryPolicy?: RetryPolicy | null;
26
+ /**
27
+ * The default timeout to use in the returned <i>LazyPromise</i>.
28
+ */
29
+ timeout?: TimeSpan | null;
30
+ };
9
31
  /**
10
32
  * All methods that return <i>{@link IAsyncCollection}</i> are executed lazly.
11
33
  * 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.
12
34
  * The methods that return <i>{@link PromiseLike}</i> object will execute only when awaited or <i>then</i> method is called.
13
35
  * @group Adapters
14
36
  */
15
- export declare class AsyncIterableCollection<TInput> implements IAsyncCollection<TInput> {
37
+ export declare class AsyncIterableCollection<TInput = unknown> implements IAsyncCollection<TInput> {
16
38
  private readonly iterable;
17
- private static createLazyPromise;
39
+ /**
40
+ * The <i>concat<i> static method is a convenient utility for easily concatenating multiple <i>{@link Iterable}</i> or <i>{@link AsyncIterable}</i>.
41
+ * @example
42
+ * ```ts
43
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
44
+ *
45
+ * class MyAsyncIterable implements AsyncIterable<number> {
46
+ * async *[Symbol.iterator](): Iterator<number> {
47
+ * yield "a";
48
+ * yield "b";
49
+ * yield "c";
50
+ * }
51
+ * }
52
+ *
53
+ * class MyIterable implements Iterable<number> {
54
+ * *[Symbol.iterator](): Iterator<number> {
55
+ * yield 1;
56
+ * yield 2;
57
+ * yield 3;
58
+ * }
59
+ * }
60
+ *
61
+ * const collection = AsyncIterableCollection.concat([
62
+ * new MyAsyncIterable(),
63
+ * new MyIterable(),
64
+ * new Set([1, 2, 3]),
65
+ * new Map([["a", 1], ["b", 2]]),
66
+ * ["a", "b", "c"]
67
+ * ]);
68
+ * await collection.toArray();
69
+ * // ["a", "b", "c", 1, 2, 3, 1, 2, 3, ["a", 1], ["b", 2], "a", "b", "c"]
70
+ * ```
71
+ */
72
+ static concat<TValue>(iterables: AsyncIterableValue<AsyncIterableValue<TValue>>): IAsyncCollection<TValue>;
73
+ /**
74
+ * The <i>difference</i> static method is used to compute the difference between two <i>{@link Iterable}</i> instances. By default, the equality check is performed on each item.
75
+ * @example
76
+ * ```ts
77
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
78
+ *
79
+ * const collection = AsyncIterableCollection.difference(
80
+ * [1, 2, 2, 3, 4, 5],
81
+ * [2, 4, 6, 8]
82
+ * );
83
+ * await collection.toArray();
84
+ * // [1, 3, 5]
85
+ * ```
86
+ * @example
87
+ * ```ts
88
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
89
+ *
90
+ * const collection = AsyncIterableCollection.difference(
91
+ * [
92
+ * { name: "iPhone 6", brand: "Apple", type: "phone" },
93
+ * { name: "iPhone 5", brand: "Apple", type: "phone" },
94
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
95
+ * { name: "Galaxy S6", brand: "Samsung", type: "phone" },
96
+ * { name: "Galaxy Gear", brand: "Samsung", type: "watch" },
97
+ * ],
98
+ * [
99
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
100
+ * ],
101
+ * (product) => product.type
102
+ * );
103
+ * await collection.toArray();
104
+ * // [
105
+ * // { name: "iPhone 6", brand: "Apple", type: "phone" },
106
+ * // { name: "iPhone 5", brand: "Apple", type: "phone" },
107
+ * // { name: "Galaxy S6", brand: "Samsung", type: "phone" },
108
+ * // ]
109
+ * ```
110
+ */
111
+ static difference<TValue, TSelect>(iterableA: AsyncIterableValue<TValue>, iterableB: AsyncIterableValue<TValue>, selectFn?: AsyncMap<TValue, IAsyncCollection<TValue>, TSelect>): IAsyncCollection<TValue>;
112
+ /**
113
+ * The <i>zip</i> static method merges together the values of <i>iterableA</i> with the values of the <i>iterableB</i> at their corresponding index.
114
+ * The returned collection has size of the shortest collection.
115
+ * @example
116
+ * ```ts
117
+ * import { AsyncIterableCollection } from "@daiso-tech/core";;
118
+ *
119
+ * const collection = AsyncIterableCollection.zip(["Chair", "Desk"], [100, 200]);
120
+ * await collection.toArray();
121
+ * // [["Chair", 100], ["Desk", 200]]
122
+ * ```
123
+ * @example
124
+ * ```ts
125
+ * import { AsyncIterableCollection } from "@daiso-tech/core";;
126
+ *
127
+ * const collection = AsyncIterableCollection.zip(["Chair", "Desk", "Couch"], [100, 200]);
128
+ * await collection.toArray();
129
+ * // [["Chair", 100], ["Desk", 200]]
130
+ * ```
131
+ * @example
132
+ * ```ts
133
+ * import { AsyncIterableCollection } from "@daiso-tech/core";;
134
+ *
135
+ * const collection = AsyncIterableCollection.zip(["Chair", "Desk"], [100, 200, 300]);
136
+ * await collection.toArray();
137
+ * // [["Chair", 100], ["Desk", 200]]
138
+ * ```
139
+ */
140
+ static zip<TValueA, TValueB>(iterableA: AsyncIterableValue<TValueA>, iterableB: AsyncIterableValue<TValueB>): IAsyncCollection<[TValueA, TValueB]>;
18
141
  private static DEFAULT_CHUNK_SIZE;
142
+ private static defaultRetryPolicy;
19
143
  private static makeCollection;
144
+ private readonly retryAttempts;
145
+ private readonly backoffPolicy;
146
+ private readonly retryPolicy;
147
+ private readonly timeout;
20
148
  /**
21
149
  * The <i>constructor</i> takes an <i>{@link Iterable}</i> or <i>{@link AsyncIterable}</i>.
150
+ *
151
+ * Works with <i>Array</i>.
152
+ * @example
153
+ * ```ts
154
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
155
+ *
156
+ * const collection = new AsyncIterableCollection([1, 2, 3, 4]);
157
+ * ```
158
+ *
159
+ * Works with <i>String</i>.
160
+ * @example
161
+ * ```ts
162
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
163
+ *
164
+ * const collection = new AsyncIterableCollection("ABCDE");
165
+ * ```
166
+ *
167
+ * Works with <i>Set</i>.
168
+ * @example
169
+ * ```ts
170
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
171
+ *
172
+ * const collection = new AsyncIterableCollection(new Set([1, 2, 2 4]));
173
+ * ```
174
+ *
175
+ * Works with <i>Map</i>.
176
+ * @example
177
+ * ```ts
178
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
179
+ *
180
+ * const collection = new AsyncIterableCollection(new Map([["a", 1], ["b", 2]]));
181
+ * ```
182
+ *
183
+ * Works with any <i>Iterable</i>.
184
+ * @example
185
+ * ```ts
186
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
187
+ *
188
+ * class MyIterable implements Iterable<number> {
189
+ * *[Symbol.iterator](): Iterator<number> {
190
+ * yield 1;
191
+ * yield 2;
192
+ * yield 3;
193
+ * }
194
+ * }
195
+ * const collection = new AsyncIterableCollection(new MyIterable());
196
+ * ```
197
+ *
198
+ * Works with any <i>AsyncIterable</i>.
199
+ * @example
200
+ * ```ts
201
+ * import { AsyncIterableCollection } from "@daiso-tech/core";
202
+ *
203
+ * class MyIterable implements AsyncIterable<number> {
204
+ * async *[Symbol.iterator](): Iterator<number> {
205
+ * yield 1;
206
+ * yield 2;
207
+ * yield 3;
208
+ * }
209
+ * }
210
+ * const collection = new AsyncIterableCollection(new MyIterable());
211
+ * ```
22
212
  */
23
- constructor(iterable?: AsyncIterableValue<TInput>);
213
+ constructor(iterable?: AsyncIterableValue<TInput>, settings?: AsyncIterableCollectionSettings);
214
+ private createLazyPromise;
24
215
  [Symbol.asyncIterator](): AsyncIterator<TInput>;
25
216
  toIterator(): AsyncIterator<TInput, void>;
26
217
  entries(): IAsyncCollection<[number, TInput]>;
@@ -4,9 +4,8 @@
4
4
  /**
5
5
  * @internal
6
6
  */
7
- export declare class MergeIterable<TInput, TExtended> implements Iterable<TInput | TExtended> {
8
- private iterableA;
9
- private iterableB;
10
- constructor(iterableA: Iterable<TInput>, iterableB: Iterable<TExtended>);
11
- [Symbol.iterator](): Iterator<TInput | TExtended>;
7
+ export declare class MergeIterable<TInput> implements Iterable<TInput> {
8
+ private iterables;
9
+ constructor(iterables: Iterable<Iterable<TInput>>);
10
+ [Symbol.iterator](): Iterator<TInput>;
12
11
  }
@@ -9,12 +9,152 @@ import { type Lazyable } from "../../../utilities/_module";
9
9
  * The rest of the methods are executed eagerly.
10
10
  * @group Adapters
11
11
  */
12
- export declare class IterableCollection<TInput> implements ICollection<TInput> {
12
+ export declare class IterableCollection<TInput = unknown> implements ICollection<TInput> {
13
13
  private readonly iterable;
14
+ /**
15
+ * The <i>concat<i> static method is a convenient utility for easily concatenating multiple <i>{@link Iterable}</i>.
16
+ * @example
17
+ * ```ts
18
+ * import { IterableCollection } from "@daiso-tech/core";
19
+ *
20
+ * class MyIterable implements Iterable<number> {
21
+ * *[Symbol.iterator](): Iterator<number> {
22
+ * yield 1;
23
+ * yield 2;
24
+ * yield 3;
25
+ * }
26
+ * }
27
+ *
28
+ * const collection = IterableCollection.concat([
29
+ * new MyIterable(),
30
+ * new Set([1, 2, 3]),
31
+ * new Map([["a", 1], ["b", 2]]),
32
+ * ["a", "b", "c"]
33
+ * ]);
34
+ * collection.toArray();
35
+ * // [1, 2, 3, 1, 2, 3, ["a", 1], ["b", 2], "a", "b", "c"]
36
+ * ```
37
+ */
38
+ static concat<TValue>(iterables: Iterable<Iterable<TValue>>): ICollection<TValue>;
39
+ /**
40
+ * The <i>difference</i> static method is used to compute the difference between two <i>{@link Iterable}</i> instances. By default, the equality check is performed on each item.
41
+ * @example
42
+ * ```ts
43
+ * import { IterableCollection } from "@daiso-tech/core";
44
+ *
45
+ * const collection = IterableCollection.difference(
46
+ * [1, 2, 2, 3, 4, 5],
47
+ * [2, 4, 6, 8]
48
+ * );
49
+ * collection.toArray();
50
+ * // [1, 3, 5]
51
+ * ```
52
+ * @example
53
+ * ```ts
54
+ * import { IterableCollection } from "@daiso-tech/core";
55
+ *
56
+ * const collection = IterableCollection.difference(
57
+ * [
58
+ * { name: "iPhone 6", brand: "Apple", type: "phone" },
59
+ * { name: "iPhone 5", brand: "Apple", type: "phone" },
60
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
61
+ * { name: "Galaxy S6", brand: "Samsung", type: "phone" },
62
+ * { name: "Galaxy Gear", brand: "Samsung", type: "watch" },
63
+ * ],
64
+ * [
65
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
66
+ * ],
67
+ * (product) => product.type
68
+ * );
69
+ * collection.toArray();
70
+ * // [
71
+ * // { name: "iPhone 6", brand: "Apple", type: "phone" },
72
+ * // { name: "iPhone 5", brand: "Apple", type: "phone" },
73
+ * // { name: "Galaxy S6", brand: "Samsung", type: "phone" },
74
+ * // ]
75
+ * ```
76
+ */
77
+ static difference<TValue, TSelect>(iterableA: Iterable<TValue>, iterableB: Iterable<TValue>, selectFn?: Map<TValue, ICollection<TValue>, TSelect>): ICollection<TValue>;
78
+ /**
79
+ * The <i>zip</i> static method merges together the values of <i>iterableA</i> with the values of the <i>iterableB</i> at their corresponding index.
80
+ * The returned collection has size of the shortest collection.
81
+ * @example
82
+ * ```ts
83
+ * import { IterableCollection } from "@daiso-tech/core";;
84
+ *
85
+ * const collection = IterableCollection.zip(["Chair", "Desk"], [100, 200]);
86
+ * collection.toArray();
87
+ * // [["Chair", 100], ["Desk", 200]]
88
+ * ```
89
+ * @example
90
+ * ```ts
91
+ * import { IterableCollection } from "@daiso-tech/core";;
92
+ *
93
+ * const collection = IterableCollection.zip(["Chair", "Desk", "Couch"], [100, 200]);
94
+ * collection.toArray();
95
+ * // [["Chair", 100], ["Desk", 200]]
96
+ * ```
97
+ * @example
98
+ * ```ts
99
+ * import { IterableCollection } from "@daiso-tech/core";;
100
+ *
101
+ * const collection = IterableCollection.zip(["Chair", "Desk"], [100, 200, 300]);
102
+ * collection.toArray();
103
+ * // [["Chair", 100], ["Desk", 200]]
104
+ * ```
105
+ */
106
+ static zip<TValueA, TValueB>(iterableA: Iterable<TValueA>, iterableB: Iterable<TValueB>): ICollection<[TValueA, TValueB]>;
14
107
  private static DEFAULT_CHUNK_SIZE;
15
108
  private static makeCollection;
16
109
  /**
17
110
  * The <i>constructor</i> takes an <i>{@link Iterable}</i>.
111
+ *
112
+ * Works with <i>Array</i>.
113
+ * @example
114
+ * ```ts
115
+ * import { IterableCollection } from "@daiso-tech/core";
116
+ *
117
+ * const collection = new IterableCollection([1, 2, 3, 4]);
118
+ * ```
119
+ *
120
+ * Works with <i>String</i>.
121
+ * @example
122
+ * ```ts
123
+ * import { IterableCollection } from "@daiso-tech/core";
124
+ *
125
+ * const collection = new IterableCollection("ABCDE");
126
+ * ```
127
+ *
128
+ * Works with <i>Set</i>.
129
+ * @example
130
+ * ```ts
131
+ * import { IterableCollection } from "@daiso-tech/core";
132
+ *
133
+ * const collection = new IterableCollection(new Set([1, 2, 2 4]));
134
+ * ```
135
+ *
136
+ * Works with <i>Map</i>.
137
+ * @example
138
+ * ```ts
139
+ * import { IterableCollection } from "@daiso-tech/core";
140
+ *
141
+ * const collection = new IterableCollection(new Map([["a", 1], ["b", 2]]));
142
+ * ```
143
+ *
144
+ * Works with any <i>Iterable</i>.
145
+ * @example
146
+ * ```ts
147
+ * import { IterableCollection } from "@daiso-tech/core";
148
+ *
149
+ * class MyIterable implements Iterable<number> {
150
+ * *[Symbol.iterator](): Iterator<number> {
151
+ * yield 1;
152
+ * yield 2;
153
+ * yield 3;
154
+ * }
155
+ * }
156
+ * const collection = new IterableCollection(new MyIterable());
157
+ * ```
18
158
  */
19
159
  constructor(iterable: Iterable<TInput>);
20
160
  [Symbol.iterator](): Iterator<TInput>;
@@ -8,10 +8,150 @@ import { type Lazyable } from "../../../utilities/_module";
8
8
  * All methods in <i>ListCollection</i> are executed eagerly.
9
9
  * @group Adapters
10
10
  */
11
- export declare class ListCollection<TInput> implements ICollection<TInput> {
11
+ export declare class ListCollection<TInput = unknown> implements ICollection<TInput> {
12
+ /**
13
+ * The <i>concat<i> static method is a convenient utility for easily concatenating multiple <i>{@link Iterable}</i>.
14
+ * @example
15
+ * ```ts
16
+ * import { ListCollection } from "@daiso-tech/core";
17
+ *
18
+ * class MyIterable implements Iterable<number> {
19
+ * *[Symbol.iterator](): Iterator<number> {
20
+ * yield 1;
21
+ * yield 2;
22
+ * yield 3;
23
+ * }
24
+ * }
25
+ *
26
+ * const collection = ListCollection.concat([
27
+ * new MyIterable(),
28
+ * new Set([1, 2, 3]),
29
+ * new Map([["a", 1], ["b", 2]]),
30
+ * ["a", "b", "c"]
31
+ * ]);
32
+ * collection.toArray();
33
+ * // [1, 2, 3, 1, 2, 3, ["a", 1], ["b", 2], "a", "b", "c"]
34
+ * ```
35
+ */
36
+ static concat<TValue>(iterables: Iterable<Iterable<TValue>>): ICollection<TValue>;
37
+ /**
38
+ * The <i>difference</i> static method is used to compute the difference between two <i>{@link Iterable}</i> instances. By default, the equality check is performed on each item.
39
+ * @example
40
+ * ```ts
41
+ * import { ListCollection } from "@daiso-tech/core";
42
+ *
43
+ * const collection = ListCollection.difference(
44
+ * [1, 2, 2, 3, 4, 5],
45
+ * [2, 4, 6, 8]
46
+ * );
47
+ * collection.toArray();
48
+ * // [1, 3, 5]
49
+ * ```
50
+ * @example
51
+ * ```ts
52
+ * import { ListCollection } from "@daiso-tech/core";
53
+ *
54
+ * const collection = ListCollection.difference(
55
+ * [
56
+ * { name: "iPhone 6", brand: "Apple", type: "phone" },
57
+ * { name: "iPhone 5", brand: "Apple", type: "phone" },
58
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
59
+ * { name: "Galaxy S6", brand: "Samsung", type: "phone" },
60
+ * { name: "Galaxy Gear", brand: "Samsung", type: "watch" },
61
+ * ],
62
+ * [
63
+ * { name: "Apple Watch", brand: "Apple", type: "watch" },
64
+ * ],
65
+ * (product) => product.type
66
+ * );
67
+ * collection.toArray();
68
+ * // [
69
+ * // { name: "iPhone 6", brand: "Apple", type: "phone" },
70
+ * // { name: "iPhone 5", brand: "Apple", type: "phone" },
71
+ * // { name: "Galaxy S6", brand: "Samsung", type: "phone" },
72
+ * // ]
73
+ * ```
74
+ */
75
+ static difference<TValue, TSelect>(iterableA: Iterable<TValue>, iterableB: Iterable<TValue>, selectFn?: Map<TValue, ICollection<TValue>, TSelect>): ICollection<TValue>;
76
+ /**
77
+ * The <i>zip</i> static method merges together the values of <i>iterableA</i> with the values of the <i>iterableB</i> at their corresponding index.
78
+ * The returned collection has size of the shortest collection.
79
+ * @example
80
+ * ```ts
81
+ * import { ListCollection } from "@daiso-tech/core";;
82
+ *
83
+ * const collection = ListCollection.zip(["Chair", "Desk"], [100, 200]);
84
+ * collection.toArray();
85
+ * // [["Chair", 100], ["Desk", 200]]
86
+ * ```
87
+ * @example
88
+ * ```ts
89
+ * import { ListCollection } from "@daiso-tech/core";;
90
+ *
91
+ * const collection = ListCollection.zip(["Chair", "Desk", "Couch"], [100, 200]);
92
+ * collection.toArray();
93
+ * // [["Chair", 100], ["Desk", 200]]
94
+ * ```
95
+ * @example
96
+ * ```ts
97
+ * import { ListCollection } from "@daiso-tech/core";;
98
+ *
99
+ * const collection = ListCollection.zip(["Chair", "Desk"], [100, 200, 300]);
100
+ * collection.toArray();
101
+ * // [["Chair", 100], ["Desk", 200]]
102
+ * ```
103
+ */
104
+ static zip<TValueA, TValueB>(iterableA: Iterable<TValueA>, iterableB: Iterable<TValueB>): ICollection<[TValueA, TValueB]>;
12
105
  private array;
13
106
  /**
14
107
  * The <i>constructor</i> takes an <i>{@link Iterable}</i>.
108
+ *
109
+ * Works with <i>Array</i>.
110
+ * @example
111
+ * ```ts
112
+ * import { ListCollection } from "@daiso-tech/core";
113
+ *
114
+ * const collection = new ListCollection([1, 2, 3, 4]);
115
+ * ```
116
+ *
117
+ * Works with <i>String</i>.
118
+ * @example
119
+ * ```ts
120
+ * import { ListCollection } from "@daiso-tech/core";
121
+ *
122
+ * const collection = new ListCollection("ABCDE");
123
+ * ```
124
+ *
125
+ * Works with <i>Set</i>.
126
+ * @example
127
+ * ```ts
128
+ * import { ListCollection } from "@daiso-tech/core";
129
+ *
130
+ * const collection = new ListCollection(new Set([1, 2, 2 4]));
131
+ * ```
132
+ *
133
+ * Works with <i>Map</i>.
134
+ * @example
135
+ * ```ts
136
+ * import { ListCollection } from "@daiso-tech/core";
137
+ *
138
+ * const collection = new ListCollection(new Map([["a", 1], ["b", 2]]));
139
+ * ```
140
+ *
141
+ * Works with any <i>Iterable</i>.
142
+ * @example
143
+ * ```ts
144
+ * import { ListCollection } from "@daiso-tech/core";
145
+ *
146
+ * class MyIterable implements Iterable<number> {
147
+ * *[Symbol.iterator](): Iterator<number> {
148
+ * yield 1;
149
+ * yield 2;
150
+ * yield 3;
151
+ * }
152
+ * }
153
+ * const collection = new ListCollection(new MyIterable());
154
+ * ```
15
155
  */
16
156
  constructor(iterable?: Iterable<TInput>);
17
157
  [Symbol.iterator](): Iterator<TInput>;
@@ -1,5 +1,5 @@
1
1
  export * from "../../event-bus/contracts/_shared";
2
- export * from "../../event-bus/contracts/event-bus.errors";
3
- export * from "../../event-bus/contracts/event-bus.contract";
4
2
  export * from "../../event-bus/contracts/event-bus-adapter.contract";
5
3
  export * from "../../event-bus/contracts/event-bus-factory.contract";
4
+ export * from "../../event-bus/contracts/event-bus.contract";
5
+ export * from "../../event-bus/contracts/event-bus.errors";
@@ -1,5 +1,16 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
+ import type { ISerializable } from "../../serde/contracts/_module";
4
5
  import type { Promisable } from "../../utilities/_module";
6
+ /**
7
+ * @group Contracts
8
+ */
5
9
  export type Listener<TEvent> = (event: TEvent) => Promisable<void>;
10
+ /**
11
+ * @group Contracts
12
+ */
13
+ export declare abstract class BaseEvent<TData extends Record<string, unknown> = Record<string, unknown>> implements ISerializable<TData> {
14
+ static deserialize(_serializedEvent: any): BaseEvent;
15
+ abstract serialize(): TData;
16
+ }
@@ -2,9 +2,8 @@
2
2
  * @module EventBus
3
3
  */
4
4
  import type { Listener } from "../../event-bus/contracts/_shared";
5
- export type IBaseEvent = {
6
- type: string;
7
- };
5
+ import type { OneOrMore } from "../../utilities/_module";
6
+ import type { BaseEvent } from "../../event-bus/contracts/_shared";
8
7
  /**
9
8
  * The <i>IEventBusAdapter</i> contract defines a way for dispatching and listening to events independent of underlying technology.
10
9
  * This interface is not meant to be used directly, instead you should use <i>IEventBus</i>
@@ -12,15 +11,17 @@ export type IBaseEvent = {
12
11
  */
13
12
  export type IEventBusAdapter = {
14
13
  /**
15
- * The <i>addListener</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>event</i>.
14
+ * The <i>addListener</i> method is used for adding <i>{@link Listener | listener}</i> for certain <i>eventName</i>.
16
15
  */
17
- addListener(event: string, listener: Listener<IBaseEvent>): PromiseLike<void>;
16
+ addListener(eventName: string, listener: Listener<BaseEvent>): PromiseLike<void>;
18
17
  /**
19
- * The <i>removeListener</i> method is used for removing <i>{@link Listener | listener}</i> for certain <i>event</i>.
18
+ * The <i>removeListener</i> method is used for removing <i>{@link Listener | listener}</i> for certain <i>eventName</i>.
20
19
  */
21
- removeListener(event: string, listener: Listener<IBaseEvent>): PromiseLike<void>;
20
+ removeListener(eventName: string, listener: Listener<BaseEvent>): PromiseLike<void>;
22
21
  /**
23
22
  * The <i>dispatch</i> method is used for dispatching one or multiple <i>events</i>.
24
23
  */
25
- dispatch(events: IBaseEvent[]): PromiseLike<void>;
24
+ dispatch(eventName: string, eventData: BaseEvent): PromiseLike<void>;
25
+ getGroup(): string;
26
+ withGroup(group: OneOrMore<string>): IEventBusAdapter;
26
27
  };