@daiso-tech/core 0.16.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 (339) hide show
  1. package/dist/cjs/async/_module.js +1 -1
  2. package/dist/cjs/async/_module.js.map +1 -1
  3. package/dist/cjs/async/backof-policies/_module.js +1 -0
  4. package/dist/cjs/async/backof-policies/_module.js.map +1 -1
  5. package/dist/cjs/async/utilities/_module.js +3 -0
  6. package/dist/cjs/async/utilities/_module.js.map +1 -1
  7. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
  8. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  9. package/dist/cjs/cache/contracts/cache.events.js +168 -0
  10. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  11. package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
  12. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
  13. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  14. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  15. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  16. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  18. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
  20. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  21. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
  22. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  23. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  24. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  25. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
  26. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  27. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  28. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  29. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  30. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  31. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
  32. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  33. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  34. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  35. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  36. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  37. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
  38. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  39. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
  40. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  41. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  42. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  43. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
  44. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  45. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
  46. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  47. package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
  48. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  49. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
  50. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  51. package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -15
  52. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  53. package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
  54. package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
  55. package/dist/cjs/cache/implementations/derivables/cache.js +104 -93
  56. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  57. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  58. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  59. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  60. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  61. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  62. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  63. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  64. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  65. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  66. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  67. package/dist/cjs/event-bus/contracts/_module.js +2 -2
  68. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  69. package/dist/cjs/event-bus/contracts/_shared.js +7 -0
  70. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  71. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
  72. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  73. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
  74. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  75. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  76. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  77. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
  78. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  79. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  80. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  81. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  82. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  83. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  84. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  85. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
  86. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  87. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
  88. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  89. package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
  90. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
  91. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
  92. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  93. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -16
  94. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  95. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
  96. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  97. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +74 -62
  98. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  99. package/dist/cjs/serde/contracts/_module.js +4 -0
  100. package/dist/cjs/serde/contracts/_module.js.map +1 -1
  101. package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
  102. package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
  103. package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
  104. package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
  105. package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
  106. package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
  107. package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
  108. package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
  109. package/dist/cjs/serde/implementations/_module.js +1 -0
  110. package/dist/cjs/serde/implementations/_module.js.map +1 -1
  111. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
  112. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  113. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
  114. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  115. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  116. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  117. package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
  118. package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
  119. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
  120. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  121. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +5 -2
  122. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  123. package/dist/cjs/utilities/contracts/_module.js +1 -0
  124. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  125. package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
  126. package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
  127. package/dist/cjs/utilities/errors.js +10 -10
  128. package/dist/cjs/utilities/errors.js.map +1 -1
  129. package/dist/cjs/utilities/functions.js +4 -0
  130. package/dist/cjs/utilities/functions.js.map +1 -1
  131. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  132. package/dist/esm/async/_module.js +1 -1
  133. package/dist/esm/async/_module.js.map +1 -1
  134. package/dist/esm/async/backof-policies/_module.js +1 -0
  135. package/dist/esm/async/backof-policies/_module.js.map +1 -1
  136. package/dist/esm/async/utilities/_module.js +3 -0
  137. package/dist/esm/async/utilities/_module.js.map +1 -1
  138. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
  139. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  140. package/dist/esm/cache/contracts/cache.events.js +158 -0
  141. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  142. package/dist/esm/cache/implementations/_shared/_module.js +1 -0
  143. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
  144. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  145. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  146. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  147. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  148. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  149. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  150. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
  151. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  152. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
  153. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  154. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  155. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  156. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
  157. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  158. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  159. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  160. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  161. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  162. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
  163. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  164. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  165. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  166. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  167. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  168. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
  169. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  170. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
  171. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  172. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  173. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  174. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
  175. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  176. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
  177. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  178. package/dist/esm/cache/implementations/derivables/_module.js +3 -1
  179. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  180. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
  181. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  182. package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -16
  183. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  184. package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
  185. package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
  186. package/dist/esm/cache/implementations/derivables/cache.js +82 -71
  187. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  188. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  189. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  190. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  191. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  192. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  193. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  194. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  195. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  196. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  197. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  198. package/dist/esm/event-bus/contracts/_module.js +2 -2
  199. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  200. package/dist/esm/event-bus/contracts/_shared.js +5 -0
  201. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  202. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
  203. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  204. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
  205. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  206. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  207. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  208. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
  209. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  210. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  211. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  212. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  213. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  214. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  215. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  216. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
  217. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  218. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
  219. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  220. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
  221. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
  222. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
  223. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  224. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -17
  225. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  226. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
  227. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  228. package/dist/esm/event-bus/implementations/derivables/event-bus.js +76 -64
  229. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  230. package/dist/esm/serde/contracts/_module.js +4 -0
  231. package/dist/esm/serde/contracts/_module.js.map +1 -1
  232. package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
  233. package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
  234. package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
  235. package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
  236. package/dist/esm/serde/contracts/serializable.contract.js +1 -0
  237. package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
  238. package/dist/esm/serde/contracts/serializer.contract.js +1 -0
  239. package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
  240. package/dist/esm/serde/implementations/_module.js +1 -0
  241. package/dist/esm/serde/implementations/_module.js.map +1 -1
  242. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
  243. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  244. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
  245. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  246. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  247. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  248. package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
  249. package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
  250. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
  251. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  252. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +5 -2
  253. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  254. package/dist/esm/utilities/contracts/_module.js +1 -0
  255. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  256. package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
  257. package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
  258. package/dist/esm/utilities/errors.js +7 -7
  259. package/dist/esm/utilities/errors.js.map +1 -1
  260. package/dist/esm/utilities/functions.js +3 -0
  261. package/dist/esm/utilities/functions.js.map +1 -1
  262. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  263. package/dist/types/async/_module.d.ts +1 -1
  264. package/dist/types/async/backof-policies/_module.d.ts +1 -1
  265. package/dist/types/async/utilities/_module.d.ts +3 -0
  266. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
  267. package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
  268. package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
  269. package/dist/types/cache/contracts/cache.events.d.ts +156 -38
  270. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  271. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
  272. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
  273. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
  274. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
  275. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
  276. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
  277. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  278. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
  279. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
  280. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
  281. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
  282. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
  283. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  284. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  285. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
  286. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
  287. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  288. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
  289. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
  290. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
  291. package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
  292. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -39
  293. package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
  294. package/dist/types/cache/implementations/derivables/cache.d.ts +65 -36
  295. package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
  296. package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
  297. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
  298. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
  299. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
  300. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
  301. package/dist/types/event-bus/contracts/_module.d.ts +2 -2
  302. package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
  303. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
  304. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
  305. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
  306. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
  307. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
  308. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
  309. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
  310. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
  311. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
  312. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
  313. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
  314. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
  315. package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
  316. package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
  317. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +39 -22
  318. package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
  319. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +34 -22
  320. package/dist/types/serde/contracts/_module.d.ts +4 -0
  321. package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
  322. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
  323. package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
  324. package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
  325. package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
  326. package/dist/types/serde/implementations/_module.d.ts +1 -0
  327. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
  328. package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
  329. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
  330. package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
  331. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
  332. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +1 -1
  333. package/dist/types/utilities/contracts/_module.d.ts +1 -0
  334. package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
  335. package/dist/types/utilities/errors.d.ts +3 -3
  336. package/dist/types/utilities/functions.d.ts +4 -0
  337. package/dist/types/utilities/time-span/time-span.d.ts +2 -2
  338. package/dist/types/utilities/types.d.ts +0 -1
  339. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"list-collection.js","sourceRoot":"","sources":["../../../../../src/collection/implementations/list-collection/list-collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-collection.js","sourceRoot":"","sources":["../../../../../src/collection/implementations/list-collection/list-collection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
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";
6
6
  //# sourceMappingURL=_module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../src/event-bus/contracts/_module.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kDAAkD,CAAC;AACjE,cAAc,kDAAkD,CAAC"}
1
+ {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../src/event-bus/contracts/_module.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kDAAkD,CAAC;AACjE,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC"}
@@ -1 +1,6 @@
1
+ export class BaseEvent {
2
+ static deserialize(_serializedEvent) {
3
+ throw new Error("Method must be implemented!");
4
+ }
5
+ }
1
6
  //# sourceMappingURL=_shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../../src/event-bus/contracts/_shared.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../../src/event-bus/contracts/_shared.ts"],"names":[],"mappings":"AAeA,MAAM,OAAgB,SAAS;IAK3B,MAAM,CAAC,WAAW,CAAC,gBAAqB;QACpC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;CAGJ"}
@@ -1,8 +1,10 @@
1
1
  import { describe, } from "vitest";
2
+ import { BaseEvent } from "../../../event-bus/contracts/_module";
2
3
  import { TimeSpan } from "../../../utilities/_module";
3
4
  import { delay } from "../../../async/_module";
5
+ import { NoOpSerde } from "../../../serde/implementations/_module";
4
6
  export function eventBusAdapterTestSuite(settings) {
5
- const { expect, test, createAdapterA, createAdapterB, beforeEach } = settings;
7
+ const { expect, test, createAdapterA, createAdapterB, beforeEach, serde = new NoOpSerde(), } = settings;
6
8
  let eventBusAdapterA;
7
9
  let eventBusAdapterB;
8
10
  beforeEach(async () => {
@@ -10,41 +12,53 @@ export function eventBusAdapterTestSuite(settings) {
10
12
  eventBusAdapterB = await createAdapterB();
11
13
  });
12
14
  const TTL = TimeSpan.fromMilliseconds(50);
15
+ class TestEvent extends BaseEvent {
16
+ data;
17
+ static deserialize(serializedEvent) {
18
+ return new TestEvent(serializedEvent);
19
+ }
20
+ constructor(data) {
21
+ super();
22
+ this.data = data;
23
+ }
24
+ serialize() {
25
+ return this.data;
26
+ }
27
+ }
28
+ serde.registerClass(TestEvent);
13
29
  describe("Api tests:", () => {
14
30
  describe("method: addListener, removeListener, dispatch", () => {
15
31
  test("Should be null when listener added and event is not triggered", async () => {
16
- const TYPE = "type";
17
32
  let result = null;
18
- await eventBusAdapterA.addListener(TYPE, (event) => {
33
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
19
34
  result = event;
20
35
  });
21
36
  expect(result).toBeNull();
22
37
  });
23
- test("Should be IBaseEvent when listener added and event is triggered", async () => {
24
- const TYPE = "type";
38
+ test("Should be TestEvent when listener added and event is triggered", async () => {
25
39
  let result = null;
26
- await eventBusAdapterA.addListener(TYPE, (event) => {
40
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
27
41
  result = event;
28
42
  });
29
- const event = {
30
- type: TYPE,
31
- };
32
- await eventBusAdapterA.dispatch(event);
43
+ const event = new TestEvent({
44
+ type: BaseEvent.name,
45
+ });
46
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
33
47
  await delay(TTL);
34
48
  expect(result).toEqual(event);
49
+ expect(result).toBeInstanceOf(TestEvent);
35
50
  });
36
51
  test("Should be null when listener removed and event is triggered", async () => {
37
- const TYPE = "type";
38
52
  let result = null;
39
53
  const listener = (event) => {
40
54
  result = event;
41
55
  };
42
- await eventBusAdapterA.addListener(TYPE, listener);
43
- await eventBusAdapterA.removeListener(TYPE, listener);
44
- const event = {
45
- type: TYPE,
46
- };
47
- await eventBusAdapterA.dispatch(event);
56
+ await eventBusAdapterA.addListener(TestEvent.name, listener);
57
+ await eventBusAdapterA.removeListener(TestEvent.name, listener);
58
+ const event = new TestEvent({
59
+ type: BaseEvent.name,
60
+ });
61
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
48
62
  await delay(TTL);
49
63
  expect(result).toBeNull();
50
64
  });
@@ -52,40 +66,42 @@ export function eventBusAdapterTestSuite(settings) {
52
66
  });
53
67
  describe("Group tests:", () => {
54
68
  test("method: addListener / dispatch", async () => {
55
- const event = {
69
+ const event = new TestEvent({
56
70
  type: "type",
57
- };
71
+ });
58
72
  let result_a = null;
59
- await eventBusAdapterA.addListener(event.type, (event) => {
73
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
60
74
  result_a = event;
61
75
  });
62
76
  let result_b = null;
63
- await eventBusAdapterB.addListener(event.type, (event) => {
77
+ await eventBusAdapterB.addListener(TestEvent.name, (event) => {
64
78
  result_b = event;
65
79
  });
66
- await eventBusAdapterA.dispatch(event);
80
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
67
81
  await delay(TTL);
68
82
  expect(result_a).toEqual(event);
83
+ expect(result_a).toBeInstanceOf(TestEvent);
69
84
  expect(result_b).toBeNull();
70
85
  });
71
86
  test("method: removeListener / addListener / dispatch", async () => {
72
- const event = {
87
+ const event = new TestEvent({
73
88
  type: "type",
74
- };
89
+ });
75
90
  let result_a = null;
76
- await eventBusAdapterA.addListener(event.type, (event) => {
91
+ await eventBusAdapterA.addListener(TestEvent.name, (event) => {
77
92
  result_a = event;
78
93
  });
79
94
  let result_b = null;
80
95
  const listenerB = (event) => {
81
96
  result_b = event;
82
97
  };
83
- await eventBusAdapterB.addListener(event.type, listenerB);
84
- await eventBusAdapterB.removeListener(event.type, listenerB);
85
- await eventBusAdapterA.dispatch(event);
86
- await eventBusAdapterB.dispatch(event);
98
+ await eventBusAdapterB.addListener(TestEvent.name, listenerB);
99
+ await eventBusAdapterB.removeListener(TestEvent.name, listenerB);
100
+ await eventBusAdapterA.dispatch(TestEvent.name, event);
101
+ await eventBusAdapterB.dispatch(TestEvent.name, event);
87
102
  await delay(TTL);
88
103
  expect(result_a).toEqual(event);
104
+ expect(result_a).toBeInstanceOf(TestEvent);
89
105
  expect(result_b).toBeNull();
90
106
  });
91
107
  });
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus-adapter.test-suite.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/_shared/event-bus-adapter.test-suite.ts"],"names":[],"mappings":"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"}