@daiso-tech/core 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/dist/cjs/_module.js +2 -2
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/_shared/utilities.js +7 -0
  4. package/dist/cjs/_shared/utilities.js.map +1 -1
  5. package/dist/cjs/cache/contracts/_module.js +22 -0
  6. package/dist/cjs/cache/contracts/_module.js.map +1 -0
  7. package/dist/cjs/{storage/contracts/storage-adapter.contract.js → cache/contracts/cache-adapter.contract.js} +1 -1
  8. package/dist/cjs/cache/contracts/cache-adapter.contract.js.map +1 -0
  9. package/dist/cjs/{storage/contracts/storage-manager.contract.js → cache/contracts/cache-factory.contract.js} +1 -1
  10. package/dist/cjs/cache/contracts/cache-factory.contract.js.map +1 -0
  11. package/dist/cjs/{storage/contracts/storage.contract.js → cache/contracts/cache.contract.js} +1 -1
  12. package/dist/cjs/cache/contracts/cache.contract.js.map +1 -0
  13. package/dist/cjs/cache/contracts/cache.errors.js +32 -0
  14. package/dist/cjs/cache/contracts/cache.errors.js.map +1 -0
  15. package/dist/cjs/cache/contracts/cache.events.js +14 -0
  16. package/dist/cjs/cache/contracts/cache.events.js.map +1 -0
  17. package/dist/cjs/cache/implementations/_module.js +20 -0
  18. package/dist/cjs/cache/implementations/_module.js.map +1 -0
  19. package/dist/cjs/{event-bus/implementations/memory-event-bus-adapter → cache/implementations/_shared}/_module.js +1 -1
  20. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -0
  21. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +192 -0
  22. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -0
  23. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +1009 -0
  24. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -0
  25. package/dist/cjs/cache/implementations/adapters/_module.js +22 -0
  26. package/dist/cjs/cache/implementations/adapters/_module.js.map +1 -0
  27. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js +18 -0
  28. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js.map +1 -0
  29. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +291 -0
  30. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -0
  31. package/dist/cjs/{event-bus/implementations/redis-event-bus-adapter → cache/implementations/adapters/libsql-cache-adapter}/_module.js +1 -1
  32. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -0
  33. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +61 -0
  34. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -0
  35. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +18 -0
  36. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -0
  37. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +72 -0
  38. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -0
  39. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +18 -0
  40. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -0
  41. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +262 -0
  42. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -0
  43. package/dist/cjs/{event-bus/implementations/no-op-event-bus-adapter → cache/implementations/adapters/redis-cache-adapter}/_module.js +1 -1
  44. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -0
  45. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +147 -0
  46. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -0
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +18 -0
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -0
  49. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +60 -0
  50. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -0
  51. package/dist/cjs/cache/implementations/derivables/_module.js +20 -0
  52. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -0
  53. package/dist/cjs/cache/implementations/derivables/base-cache.js +262 -0
  54. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +1 -0
  55. package/dist/cjs/cache/implementations/derivables/cache-factory.js +39 -0
  56. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -0
  57. package/dist/cjs/cache/implementations/derivables/cache.js +191 -0
  58. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -0
  59. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +1 -1
  60. package/dist/cjs/collection/implementations/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  61. package/dist/cjs/event-bus/contracts/_module.js +2 -1
  62. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  63. package/dist/cjs/event-bus/contracts/_shared.js +0 -36
  64. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  65. package/dist/cjs/event-bus/contracts/{event-bus-manager.contract.js → event-bus-factory.contract.js} +1 -1
  66. package/dist/cjs/event-bus/contracts/event-bus-factory.contract.js.map +1 -0
  67. package/dist/cjs/event-bus/contracts/event-bus.errors.js +39 -0
  68. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -0
  69. package/dist/cjs/event-bus/implementations/_module.js +2 -4
  70. package/dist/cjs/event-bus/implementations/_module.js.map +1 -1
  71. package/dist/cjs/event-bus/implementations/adapters/_module.js +20 -0
  72. package/dist/cjs/event-bus/implementations/adapters/_module.js.map +1 -0
  73. package/dist/cjs/{storage/implementations/redis-storage-adapter → event-bus/implementations/adapters/memory-event-bus-adapter}/_module.js +1 -1
  74. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -0
  75. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -0
  76. package/dist/cjs/{storage/implementations/_shared/test-utilities → event-bus/implementations/adapters/no-op-event-bus-adapter}/_module.js +1 -1
  77. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js.map +1 -0
  78. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -0
  79. package/dist/cjs/{storage/implementations/memory-storage-adapter → event-bus/implementations/adapters/redis-event-bus-adapter}/_module.js +1 -1
  80. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +1 -0
  81. package/dist/cjs/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.js +2 -2
  82. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -0
  83. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/_module.js +2 -2
  84. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -0
  85. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +39 -0
  86. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -0
  87. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/event-bus.js +11 -8
  88. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -0
  89. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.js +1 -0
  90. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +1 -0
  91. package/dist/cjs/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +1 -0
  92. package/dist/cjs/serializer/contracts/_module.js +1 -0
  93. package/dist/cjs/serializer/contracts/_module.js.map +1 -1
  94. package/dist/cjs/serializer/contracts/serializer.contract.js +0 -22
  95. package/dist/cjs/serializer/contracts/serializer.contract.js.map +1 -1
  96. package/dist/cjs/serializer/contracts/serializer.errors.js +25 -0
  97. package/dist/cjs/serializer/contracts/serializer.errors.js.map +1 -0
  98. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +3 -3
  99. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +1 -1
  100. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +3 -3
  101. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +1 -1
  102. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +3 -3
  103. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +1 -1
  104. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js +21 -21
  105. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +1 -1
  106. package/dist/cjs/utilities/_module.js +1 -0
  107. package/dist/cjs/utilities/_module.js.map +1 -1
  108. package/dist/cjs/utilities/global-errors.js +25 -0
  109. package/dist/cjs/utilities/global-errors.js.map +1 -0
  110. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  111. package/dist/esm/_module.js +2 -2
  112. package/dist/esm/_module.js.map +1 -1
  113. package/dist/esm/_shared/utilities.js +6 -0
  114. package/dist/esm/_shared/utilities.js.map +1 -1
  115. package/dist/esm/cache/contracts/_module.js +6 -0
  116. package/dist/esm/cache/contracts/_module.js.map +1 -0
  117. package/dist/esm/cache/contracts/cache-adapter.contract.js +1 -0
  118. package/dist/esm/cache/contracts/cache-adapter.contract.js.map +1 -0
  119. package/dist/esm/cache/contracts/cache-factory.contract.js +1 -0
  120. package/dist/esm/cache/contracts/cache-factory.contract.js.map +1 -0
  121. package/dist/esm/cache/contracts/cache.contract.js +1 -0
  122. package/dist/esm/cache/contracts/cache.contract.js.map +1 -0
  123. package/dist/esm/cache/contracts/cache.errors.js +25 -0
  124. package/dist/esm/cache/contracts/cache.errors.js.map +1 -0
  125. package/dist/esm/cache/contracts/cache.events.js +11 -0
  126. package/dist/esm/cache/contracts/cache.events.js.map +1 -0
  127. package/dist/esm/cache/implementations/_module.js +4 -0
  128. package/dist/esm/cache/implementations/_module.js.map +1 -0
  129. package/dist/esm/cache/implementations/_shared/_module.js +2 -0
  130. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -0
  131. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +189 -0
  132. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -0
  133. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +1006 -0
  134. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -0
  135. package/dist/esm/cache/implementations/adapters/_module.js +6 -0
  136. package/dist/esm/cache/implementations/adapters/_module.js.map +1 -0
  137. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js +2 -0
  138. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.js.map +1 -0
  139. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +287 -0
  140. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -0
  141. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -0
  142. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -0
  143. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +57 -0
  144. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -0
  145. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +2 -0
  146. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -0
  147. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +68 -0
  148. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -0
  149. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -0
  150. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -0
  151. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +255 -0
  152. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -0
  153. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +2 -0
  154. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -0
  155. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +143 -0
  156. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -0
  157. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +2 -0
  158. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -0
  159. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +56 -0
  160. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -0
  161. package/dist/esm/cache/implementations/derivables/_module.js +4 -0
  162. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -0
  163. package/dist/esm/cache/implementations/derivables/base-cache.js +258 -0
  164. package/dist/esm/cache/implementations/derivables/base-cache.js.map +1 -0
  165. package/dist/esm/cache/implementations/derivables/cache-factory.js +35 -0
  166. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -0
  167. package/dist/esm/cache/implementations/derivables/cache.js +187 -0
  168. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -0
  169. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.js.map +1 -1
  170. package/dist/esm/collection/implementations/iterable-collection/_shared/cross-join-iterable.js.map +1 -1
  171. package/dist/esm/event-bus/contracts/_module.js +2 -1
  172. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  173. package/dist/esm/event-bus/contracts/_shared.js +0 -30
  174. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  175. package/dist/esm/event-bus/contracts/event-bus-factory.contract.js +1 -0
  176. package/dist/esm/event-bus/contracts/event-bus-factory.contract.js.map +1 -0
  177. package/dist/esm/event-bus/contracts/event-bus.errors.js +31 -0
  178. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -0
  179. package/dist/esm/event-bus/implementations/_module.js +2 -4
  180. package/dist/esm/event-bus/implementations/_module.js.map +1 -1
  181. package/dist/esm/event-bus/implementations/adapters/_module.js +4 -0
  182. package/dist/esm/event-bus/implementations/adapters/_module.js.map +1 -0
  183. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -0
  184. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -0
  185. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -0
  186. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js +2 -0
  187. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js.map +1 -0
  188. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -0
  189. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js +2 -0
  190. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +1 -0
  191. package/dist/esm/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.js +2 -2
  192. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -0
  193. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -0
  194. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -0
  195. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +35 -0
  196. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -0
  197. package/dist/esm/event-bus/implementations/{event-bus → derivables}/event-bus.js +12 -9
  198. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -0
  199. package/dist/esm/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.js +1 -0
  200. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +1 -0
  201. package/dist/esm/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +1 -0
  202. package/dist/esm/serializer/contracts/_module.js +1 -0
  203. package/dist/esm/serializer/contracts/_module.js.map +1 -1
  204. package/dist/esm/serializer/contracts/serializer.contract.js +0 -18
  205. package/dist/esm/serializer/contracts/serializer.contract.js.map +1 -1
  206. package/dist/esm/serializer/contracts/serializer.errors.js +19 -0
  207. package/dist/esm/serializer/contracts/serializer.errors.js.map +1 -0
  208. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js +1 -1
  209. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +1 -1
  210. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js +1 -1
  211. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +1 -1
  212. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js +1 -1
  213. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +1 -1
  214. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js +1 -1
  215. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +1 -1
  216. package/dist/esm/utilities/_module.js +1 -0
  217. package/dist/esm/utilities/_module.js.map +1 -1
  218. package/dist/esm/utilities/global-errors.js +19 -0
  219. package/dist/esm/utilities/global-errors.js.map +1 -0
  220. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  221. package/dist/types/_module.d.ts +2 -2
  222. package/dist/types/_shared/types.d.ts +4 -0
  223. package/dist/types/_shared/utilities.d.ts +5 -1
  224. package/dist/types/cache/contracts/_module.d.ts +5 -0
  225. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +44 -0
  226. package/dist/types/cache/contracts/cache-factory.contract.d.ts +48 -0
  227. package/dist/types/cache/contracts/cache.contract.d.ts +195 -0
  228. package/dist/types/{storage/contracts/_shared.d.ts → cache/contracts/cache.errors.d.ts} +5 -5
  229. package/dist/types/cache/contracts/cache.events.d.ts +96 -0
  230. package/dist/types/cache/implementations/_module.d.ts +3 -0
  231. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  232. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +51 -0
  233. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +60 -0
  234. package/dist/types/cache/implementations/adapters/_module.d.ts +5 -0
  235. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/_module.d.ts +1 -0
  236. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +55 -0
  237. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +1 -0
  238. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +35 -0
  239. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  240. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +20 -0
  241. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +1 -0
  242. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +41 -0
  243. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  244. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +37 -0
  245. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  246. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +35 -0
  247. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -0
  248. package/dist/types/cache/implementations/derivables/base-cache.d.ts +57 -0
  249. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +56 -0
  250. package/dist/types/cache/implementations/derivables/cache.d.ts +88 -0
  251. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-error-handler-iterable.d.ts +3 -0
  252. package/dist/types/collection/implementations/iterable-collection/_shared/cross-join-iterable.d.ts +3 -0
  253. package/dist/types/event-bus/contracts/_module.d.ts +2 -1
  254. package/dist/types/event-bus/contracts/_shared.d.ts +0 -30
  255. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +78 -0
  256. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +21 -18
  257. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +33 -0
  258. package/dist/types/event-bus/implementations/_module.d.ts +2 -4
  259. package/dist/types/event-bus/implementations/adapters/_module.d.ts +3 -0
  260. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +1 -0
  261. package/dist/types/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.d.ts +1 -1
  262. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.d.ts +1 -0
  263. package/dist/types/event-bus/implementations/{no-op-event-bus-adapter → adapters/no-op-event-bus-adapter}/no-op-event-bus-adapter.d.ts +3 -3
  264. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/_module.d.ts +1 -0
  265. package/dist/types/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.d.ts +2 -2
  266. package/dist/types/event-bus/implementations/derivables/_module.d.ts +2 -0
  267. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +47 -0
  268. package/dist/types/event-bus/implementations/{event-bus → derivables}/event-bus.d.ts +8 -7
  269. package/dist/types/serializer/contracts/_module.d.ts +1 -0
  270. package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -18
  271. package/dist/types/serializer/contracts/serializer.errors.d.ts +21 -0
  272. package/dist/types/utilities/_module.d.ts +1 -0
  273. package/dist/types/utilities/global-errors.d.ts +12 -0
  274. package/dist/types/utilities/time-span/time-span.d.ts +2 -0
  275. package/package.json +12 -2
  276. package/dist/cjs/event-bus/contracts/event-bus-manager.contract.js.map +0 -1
  277. package/dist/cjs/event-bus/implementations/event-bus/_module.js.map +0 -1
  278. package/dist/cjs/event-bus/implementations/event-bus/event-bus-manager.js +0 -31
  279. package/dist/cjs/event-bus/implementations/event-bus/event-bus-manager.js.map +0 -1
  280. package/dist/cjs/event-bus/implementations/event-bus/event-bus.js.map +0 -1
  281. package/dist/cjs/event-bus/implementations/event-bus/with-namespace-event-bus-adapter.js.map +0 -1
  282. package/dist/cjs/event-bus/implementations/event-bus/with-validation-event-bus-adapter.js.map +0 -1
  283. package/dist/cjs/event-bus/implementations/memory-event-bus-adapter/_module.js.map +0 -1
  284. package/dist/cjs/event-bus/implementations/memory-event-bus-adapter/memory-event-bus-adapter.js.map +0 -1
  285. package/dist/cjs/event-bus/implementations/no-op-event-bus-adapter/_module.js.map +0 -1
  286. package/dist/cjs/event-bus/implementations/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +0 -1
  287. package/dist/cjs/event-bus/implementations/redis-event-bus-adapter/_module.js.map +0 -1
  288. package/dist/cjs/event-bus/implementations/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  289. package/dist/cjs/storage/contracts/_module.js +0 -22
  290. package/dist/cjs/storage/contracts/_module.js.map +0 -1
  291. package/dist/cjs/storage/contracts/_shared.js +0 -32
  292. package/dist/cjs/storage/contracts/_shared.js.map +0 -1
  293. package/dist/cjs/storage/contracts/storage-adapter.contract.js.map +0 -1
  294. package/dist/cjs/storage/contracts/storage-events.contract.js +0 -14
  295. package/dist/cjs/storage/contracts/storage-events.contract.js.map +0 -1
  296. package/dist/cjs/storage/contracts/storage-manager.contract.js.map +0 -1
  297. package/dist/cjs/storage/contracts/storage.contract.js.map +0 -1
  298. package/dist/cjs/storage/implementations/_module.js +0 -23
  299. package/dist/cjs/storage/implementations/_module.js.map +0 -1
  300. package/dist/cjs/storage/implementations/_shared/test-utilities/_module.js.map +0 -1
  301. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +0 -298
  302. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +0 -1
  303. package/dist/cjs/storage/implementations/memory-storage-adapter/_module.js.map +0 -1
  304. package/dist/cjs/storage/implementations/memory-storage-adapter/memory-storage-adapter.js +0 -85
  305. package/dist/cjs/storage/implementations/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  306. package/dist/cjs/storage/implementations/mongodb-storage-adapter/_module.js +0 -6
  307. package/dist/cjs/storage/implementations/mongodb-storage-adapter/_module.js.map +0 -1
  308. package/dist/cjs/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js +0 -203
  309. package/dist/cjs/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  310. package/dist/cjs/storage/implementations/redis-storage-adapter/_module.js.map +0 -1
  311. package/dist/cjs/storage/implementations/redis-storage-adapter/redis-storage-adapter.js +0 -228
  312. package/dist/cjs/storage/implementations/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  313. package/dist/cjs/storage/implementations/sqlite/_module.js +0 -19
  314. package/dist/cjs/storage/implementations/sqlite/_module.js.map +0 -1
  315. package/dist/cjs/storage/implementations/sqlite/_shared/_module.js +0 -18
  316. package/dist/cjs/storage/implementations/sqlite/_shared/_module.js.map +0 -1
  317. package/dist/cjs/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js +0 -190
  318. package/dist/cjs/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  319. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/_module.js +0 -18
  320. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  321. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +0 -53
  322. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  323. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/_module.js +0 -18
  324. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  325. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +0 -52
  326. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  327. package/dist/cjs/storage/implementations/storage/_module.js +0 -19
  328. package/dist/cjs/storage/implementations/storage/_module.js.map +0 -1
  329. package/dist/cjs/storage/implementations/storage/storage-manager.js +0 -34
  330. package/dist/cjs/storage/implementations/storage/storage-manager.js.map +0 -1
  331. package/dist/cjs/storage/implementations/storage/storage.js +0 -265
  332. package/dist/cjs/storage/implementations/storage/storage.js.map +0 -1
  333. package/dist/cjs/storage/implementations/storage/with-event-storage-adapter.js +0 -255
  334. package/dist/cjs/storage/implementations/storage/with-event-storage-adapter.js.map +0 -1
  335. package/dist/cjs/storage/implementations/storage/with-namespace-storage-adapter.js +0 -53
  336. package/dist/cjs/storage/implementations/storage/with-namespace-storage-adapter.js.map +0 -1
  337. package/dist/cjs/storage/implementations/storage/with-validation-storage-adapter.js +0 -48
  338. package/dist/cjs/storage/implementations/storage/with-validation-storage-adapter.js.map +0 -1
  339. package/dist/esm/event-bus/contracts/event-bus-manager.contract.js +0 -1
  340. package/dist/esm/event-bus/contracts/event-bus-manager.contract.js.map +0 -1
  341. package/dist/esm/event-bus/implementations/event-bus/_module.js +0 -3
  342. package/dist/esm/event-bus/implementations/event-bus/_module.js.map +0 -1
  343. package/dist/esm/event-bus/implementations/event-bus/event-bus-manager.js +0 -27
  344. package/dist/esm/event-bus/implementations/event-bus/event-bus-manager.js.map +0 -1
  345. package/dist/esm/event-bus/implementations/event-bus/event-bus.js.map +0 -1
  346. package/dist/esm/event-bus/implementations/event-bus/with-namespace-event-bus-adapter.js.map +0 -1
  347. package/dist/esm/event-bus/implementations/event-bus/with-validation-event-bus-adapter.js.map +0 -1
  348. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/_module.js +0 -2
  349. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/_module.js.map +0 -1
  350. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/memory-event-bus-adapter.js.map +0 -1
  351. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/_module.js +0 -2
  352. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/_module.js.map +0 -1
  353. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +0 -1
  354. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/_module.js +0 -2
  355. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/_module.js.map +0 -1
  356. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  357. package/dist/esm/storage/contracts/_module.js +0 -6
  358. package/dist/esm/storage/contracts/_module.js.map +0 -1
  359. package/dist/esm/storage/contracts/_shared.js +0 -25
  360. package/dist/esm/storage/contracts/_shared.js.map +0 -1
  361. package/dist/esm/storage/contracts/storage-adapter.contract.js +0 -1
  362. package/dist/esm/storage/contracts/storage-adapter.contract.js.map +0 -1
  363. package/dist/esm/storage/contracts/storage-events.contract.js +0 -11
  364. package/dist/esm/storage/contracts/storage-events.contract.js.map +0 -1
  365. package/dist/esm/storage/contracts/storage-manager.contract.js +0 -1
  366. package/dist/esm/storage/contracts/storage-manager.contract.js.map +0 -1
  367. package/dist/esm/storage/contracts/storage.contract.js +0 -1
  368. package/dist/esm/storage/contracts/storage.contract.js.map +0 -1
  369. package/dist/esm/storage/implementations/_module.js +0 -7
  370. package/dist/esm/storage/implementations/_module.js.map +0 -1
  371. package/dist/esm/storage/implementations/_shared/test-utilities/_module.js +0 -2
  372. package/dist/esm/storage/implementations/_shared/test-utilities/_module.js.map +0 -1
  373. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +0 -295
  374. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +0 -1
  375. package/dist/esm/storage/implementations/memory-storage-adapter/_module.js +0 -2
  376. package/dist/esm/storage/implementations/memory-storage-adapter/_module.js.map +0 -1
  377. package/dist/esm/storage/implementations/memory-storage-adapter/memory-storage-adapter.js +0 -81
  378. package/dist/esm/storage/implementations/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  379. package/dist/esm/storage/implementations/mongodb-storage-adapter/_module.js +0 -2
  380. package/dist/esm/storage/implementations/mongodb-storage-adapter/_module.js.map +0 -1
  381. package/dist/esm/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js +0 -196
  382. package/dist/esm/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  383. package/dist/esm/storage/implementations/redis-storage-adapter/_module.js +0 -2
  384. package/dist/esm/storage/implementations/redis-storage-adapter/_module.js.map +0 -1
  385. package/dist/esm/storage/implementations/redis-storage-adapter/redis-storage-adapter.js +0 -224
  386. package/dist/esm/storage/implementations/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  387. package/dist/esm/storage/implementations/sqlite/_module.js +0 -3
  388. package/dist/esm/storage/implementations/sqlite/_module.js.map +0 -1
  389. package/dist/esm/storage/implementations/sqlite/_shared/_module.js +0 -2
  390. package/dist/esm/storage/implementations/sqlite/_shared/_module.js.map +0 -1
  391. package/dist/esm/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js +0 -186
  392. package/dist/esm/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  393. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/_module.js +0 -2
  394. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  395. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +0 -49
  396. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  397. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/_module.js +0 -2
  398. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  399. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +0 -48
  400. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  401. package/dist/esm/storage/implementations/storage/_module.js +0 -3
  402. package/dist/esm/storage/implementations/storage/_module.js.map +0 -1
  403. package/dist/esm/storage/implementations/storage/storage-manager.js +0 -30
  404. package/dist/esm/storage/implementations/storage/storage-manager.js.map +0 -1
  405. package/dist/esm/storage/implementations/storage/storage.js +0 -261
  406. package/dist/esm/storage/implementations/storage/storage.js.map +0 -1
  407. package/dist/esm/storage/implementations/storage/with-event-storage-adapter.js +0 -251
  408. package/dist/esm/storage/implementations/storage/with-event-storage-adapter.js.map +0 -1
  409. package/dist/esm/storage/implementations/storage/with-namespace-storage-adapter.js +0 -49
  410. package/dist/esm/storage/implementations/storage/with-namespace-storage-adapter.js.map +0 -1
  411. package/dist/esm/storage/implementations/storage/with-validation-storage-adapter.js +0 -44
  412. package/dist/esm/storage/implementations/storage/with-validation-storage-adapter.js.map +0 -1
  413. package/dist/types/event-bus/contracts/event-bus-manager.contract.d.ts +0 -120
  414. package/dist/types/event-bus/implementations/event-bus/_module.d.ts +0 -2
  415. package/dist/types/event-bus/implementations/event-bus/event-bus-manager.d.ts +0 -26
  416. package/dist/types/event-bus/implementations/memory-event-bus-adapter/_module.d.ts +0 -1
  417. package/dist/types/event-bus/implementations/no-op-event-bus-adapter/_module.d.ts +0 -1
  418. package/dist/types/event-bus/implementations/redis-event-bus-adapter/_module.d.ts +0 -1
  419. package/dist/types/storage/contracts/_module.d.ts +0 -5
  420. package/dist/types/storage/contracts/storage-adapter.contract.d.ts +0 -41
  421. package/dist/types/storage/contracts/storage-events.contract.d.ts +0 -91
  422. package/dist/types/storage/contracts/storage-manager.contract.d.ts +0 -100
  423. package/dist/types/storage/contracts/storage.contract.d.ts +0 -185
  424. package/dist/types/storage/implementations/_module.d.ts +0 -6
  425. package/dist/types/storage/implementations/_shared/test-utilities/_module.d.ts +0 -1
  426. package/dist/types/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.d.ts +0 -36
  427. package/dist/types/storage/implementations/memory-storage-adapter/_module.d.ts +0 -1
  428. package/dist/types/storage/implementations/memory-storage-adapter/memory-storage-adapter.d.ts +0 -18
  429. package/dist/types/storage/implementations/mongodb-storage-adapter/_module.d.ts +0 -1
  430. package/dist/types/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.d.ts +0 -43
  431. package/dist/types/storage/implementations/redis-storage-adapter/_module.d.ts +0 -1
  432. package/dist/types/storage/implementations/redis-storage-adapter/redis-storage-adapter.d.ts +0 -38
  433. package/dist/types/storage/implementations/sqlite/_module.d.ts +0 -2
  434. package/dist/types/storage/implementations/sqlite/_shared/_module.d.ts +0 -1
  435. package/dist/types/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.d.ts +0 -39
  436. package/dist/types/storage/implementations/sqlite/libsql-storage-adapter/_module.d.ts +0 -1
  437. package/dist/types/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.d.ts +0 -30
  438. package/dist/types/storage/implementations/sqlite/sqlite-storage-adapter/_module.d.ts +0 -1
  439. package/dist/types/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.d.ts +0 -30
  440. package/dist/types/storage/implementations/storage/_module.d.ts +0 -2
  441. package/dist/types/storage/implementations/storage/storage-manager.d.ts +0 -29
  442. package/dist/types/storage/implementations/storage/storage.d.ts +0 -114
  443. package/dist/types/storage/implementations/storage/with-event-storage-adapter.d.ts +0 -31
  444. package/dist/types/storage/implementations/storage/with-namespace-storage-adapter.d.ts +0 -24
  445. package/dist/types/storage/implementations/storage/with-validation-storage-adapter.d.ts +0 -22
  446. /package/dist/cjs/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.js +0 -0
  447. /package/dist/cjs/event-bus/implementations/{no-op-event-bus-adapter → adapters/no-op-event-bus-adapter}/no-op-event-bus-adapter.js +0 -0
  448. /package/dist/cjs/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.js +0 -0
  449. /package/dist/esm/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.js +0 -0
  450. /package/dist/esm/event-bus/implementations/{no-op-event-bus-adapter → adapters/no-op-event-bus-adapter}/no-op-event-bus-adapter.js +0 -0
  451. /package/dist/esm/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.js +0 -0
  452. /package/dist/types/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.d.ts +0 -0
  453. /package/dist/types/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.d.ts +0 -0
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { IDeinitizable, IInitizable } from "../../../../_shared/types";
5
+ import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
6
+ import type { ISerializer } from "../../../../serializer/contracts/_module";
7
+ import type { TimeSpan } from "../../../../utilities/_module";
8
+ import { type Database } from "better-sqlite3";
9
+ /**
10
+ * @group Adapters
11
+ */
12
+ export type SqliteStorageAdapterSettings = {
13
+ tableName?: string;
14
+ serializer?: ISerializer<string>;
15
+ enableTransactions?: boolean;
16
+ expiredKeysRemovalInterval?: TimeSpan;
17
+ shouldRemoveExpiredKeys?: boolean;
18
+ };
19
+ /**
20
+ * @group Adapters
21
+ */
22
+ export declare class SqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
23
+ private readonly cacheAdapter;
24
+ constructor(database: Database, settings: SqliteStorageAdapterSettings);
25
+ removeExpiredKeys(): Promise<void>;
26
+ deInit(): Promise<void>;
27
+ init(): Promise<void>;
28
+ get(key: string): Promise<TType | null>;
29
+ add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
30
+ update(key: string, value: TType): Promise<boolean>;
31
+ put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
32
+ remove(key: string): Promise<boolean>;
33
+ increment(key: string, value: number): Promise<boolean>;
34
+ clear(prefix: string): Promise<void>;
35
+ }
@@ -0,0 +1,3 @@
1
+ export * from "../../../cache/implementations/derivables/base-cache";
2
+ export * from "../../../cache/implementations/derivables/cache";
3
+ export * from "../../../cache/implementations/derivables/cache-factory";
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { CacheEventNames, WithTtlValue } from "../../../cache/contracts/_module";
5
+ import { type ICache } from "../../../cache/contracts/_module";
6
+ import { type INamespacedCache, type AllCacheEvents } from "../../../cache/contracts/_module";
7
+ import type { OneOrMore } from "../../../_shared/types";
8
+ import { type AsyncLazyable, type GetOrAddValue } from "../../../_shared/types";
9
+ import type { TimeSpan } from "../../../utilities/_module";
10
+ import { LazyPromise } from "../../../utilities/_module";
11
+ import type { Listener, SelectEvent, Unsubscribe, INamespacedEventBus } from "../../../event-bus/contracts/_module";
12
+ /**
13
+ * @group Derivables
14
+ */
15
+ export type BaseCacheSettings<TType> = {
16
+ namespace: string;
17
+ eventBus: INamespacedEventBus<AllCacheEvents<TType>>;
18
+ };
19
+ /**
20
+ * The BaseCache class serves as an abstract base class that provides implementations for redundant methods.
21
+ * It simplifies implementing the {@link INamespacedCache} interface without using an {@link ICacheAdapter}.
22
+ * @group Derivables
23
+ */
24
+ export declare abstract class BaseCache<TType = unknown> implements INamespacedCache<TType> {
25
+ private readonly listenable;
26
+ constructor(settings: BaseCacheSettings<TType>);
27
+ addListener<TEventType extends CacheEventNames>(event: TEventType, listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<void>;
28
+ addListenerMany<TEventType extends CacheEventNames>(events: TEventType[], listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<void>;
29
+ removeListener<TEventType extends CacheEventNames>(event: TEventType, listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<void>;
30
+ removeListenerMany<TEventType extends CacheEventNames>(events: TEventType[], listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<void>;
31
+ subscribe<TEventType extends CacheEventNames>(event: TEventType, listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<Unsubscribe>;
32
+ subscribeMany<TEventType extends CacheEventNames>(events: TEventType[], listener: Listener<SelectEvent<AllCacheEvents<TType>, TEventType>>): LazyPromise<Unsubscribe>;
33
+ abstract withNamespace(namespace: OneOrMore<string>): ICache<TType>;
34
+ abstract getNamespace(): string;
35
+ exists(key: string): LazyPromise<boolean>;
36
+ existsMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
37
+ missing(key: string): LazyPromise<boolean>;
38
+ missingMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
39
+ abstract get(key: string): LazyPromise<TType | null>;
40
+ getMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, TType | null>>;
41
+ getOr(key: string, defaultValue: AsyncLazyable<TType>): LazyPromise<TType>;
42
+ getOrMany<TKeys extends string>(keysWithDefaults: Record<TKeys, AsyncLazyable<TType>>): LazyPromise<Record<TKeys, TType>>;
43
+ getOrFail(key: string): LazyPromise<TType>;
44
+ abstract add(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
45
+ addMany<TKeys extends string>(values: Record<TKeys, WithTtlValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
46
+ abstract update(key: string, value: TType): LazyPromise<boolean>;
47
+ updateMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
48
+ abstract put(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
49
+ putMany<TKeys extends string>(values: Record<TKeys, WithTtlValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
50
+ abstract remove(key: string): LazyPromise<boolean>;
51
+ removeMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
52
+ getAndRemove(key: string): LazyPromise<TType | null>;
53
+ getOrAdd(key: string, valueToAdd: AsyncLazyable<GetOrAddValue<TType>>, ttl?: TimeSpan): LazyPromise<TType>;
54
+ abstract increment(key: string, value?: Extract<TType, number>): LazyPromise<boolean>;
55
+ decrement(key: string, value?: Extract<TType, number>): LazyPromise<boolean>;
56
+ abstract clear(): LazyPromise<void>;
57
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { INamespacedEventBus } from "../../../event-bus/contracts/_module";
5
+ import type { ICacheFactory, INamespacedCache, ICacheAdapter } from "../../../cache/contracts/_module";
6
+ import type { TimeSpan } from "../../../utilities/_module";
7
+ /**
8
+ * @group Derivables
9
+ */
10
+ export type CacheDrivers<TDrivers extends string> = Partial<Record<TDrivers, ICacheAdapter<any>>>;
11
+ /**
12
+ * @group Derivables
13
+ */
14
+ export type CacheFactorySettings<TDrivers extends string = string> = {
15
+ drivers: CacheDrivers<TDrivers>;
16
+ defaultDriver?: NoInfer<TDrivers>;
17
+ /**
18
+ * You can decide the default ttl value. If null is passed then no ttl will be used by default.
19
+ */
20
+ defaultTtl?: TimeSpan;
21
+ /**
22
+ * In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link INamespacedEventBus}</i>.
23
+ */
24
+ eventBus?: INamespacedEventBus<any>;
25
+ /**
26
+ * You can prefix all keys with a given <i>rootNamespace</i>.
27
+ */
28
+ rootNamespace?: string;
29
+ };
30
+ /**
31
+ * @group Derivables
32
+ * @example
33
+ * ```ts
34
+ * import { CacheFactory } from "@daiso-tech/core";
35
+ * import Redis from "ioredis"
36
+ *
37
+ * const cacheFactory = new CacheFactory({
38
+ * drivers: {
39
+ * memory: new MemoryCacheAdapter(),
40
+ * redis: new RedisCacheAdapter(new Redis()),
41
+ * },
42
+ * defaultDriver: "memory",
43
+ * rootNamespace: "@events"
44
+ * });
45
+ * ```
46
+ */
47
+ export declare class CacheFactory<TDrivers extends string = string, TType = unknown> implements ICacheFactory<TDrivers, TType> {
48
+ private readonly rootNamespace?;
49
+ private readonly drivers;
50
+ private readonly defaultDriver?;
51
+ private readonly eventBus?;
52
+ private defaultTtl;
53
+ constructor(settings: CacheFactorySettings<TDrivers>);
54
+ use(driverName?: TDrivers | undefined): INamespacedCache<TType>;
55
+ withType<TOutput extends TType = TType>(): ICacheFactory<TDrivers, TOutput>;
56
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import { type ICache, type ICacheAdapter } from "../../../cache/contracts/_module";
5
+ import { type INamespacedCache, type AllCacheEvents } from "../../../cache/contracts/_module";
6
+ import type { OneOrMore } from "../../../_shared/types";
7
+ import type { TimeSpan } from "../../../utilities/_module";
8
+ import { LazyPromise } from "../../../utilities/_module";
9
+ import type { INamespacedEventBus } from "../../../event-bus/contracts/_module";
10
+ import { BaseCache } from "../../../cache/implementations/derivables/base-cache";
11
+ /**
12
+ * @group Derivables
13
+ */
14
+ export type CacheSettings<TType> = {
15
+ /**
16
+ * You can prefix all keys with a given <i>rootNamespace</i>.
17
+ * This useful if you want to add multitenancy but still use the same database.
18
+ * @default {""}
19
+ * @example
20
+ * ```ts
21
+ * import { Cache, MemoryCacheAdapter } from "@daiso-tech/core";
22
+ *
23
+ * const memoryCacheAdapter = new MemoryCacheAdapter();
24
+ * const cacheA = new Cache(memoryCacheAdapter, {
25
+ * rootNamespace: "@a"
26
+ * });
27
+ * const cacheB = new Cache(memoryCacheAdapter, {
28
+ * rootNamespace: "@b"
29
+ * });
30
+ *
31
+ * (async () => {
32
+ * await cacheA.add("a", 1);
33
+ *
34
+ * // Will be "a"
35
+ * console.log(await cacheA.get("a"));
36
+ *
37
+ * // Will be "null"
38
+ * console.log(await cacheB.get("a"));
39
+ * })();
40
+ * ```
41
+ */
42
+ rootNamespace?: OneOrMore<string>;
43
+ /**
44
+ * In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link INamespacedEventBus}</i>.
45
+ */
46
+ eventBus?: INamespacedEventBus<AllCacheEvents<TType>>;
47
+ /**
48
+ * You can decide the default ttl value. If null is passed then no ttl will be used by default.
49
+ */
50
+ defaultTtl?: TimeSpan | null;
51
+ };
52
+ /**
53
+ * <i>Cache</i> class can be derived from any <i>{@link ICacheAdapter}</i>.
54
+ * @group Derivables
55
+ * @example
56
+ * ```ts
57
+ * import { Cache, MemoryCacheAdapter } from "@daiso-tech/core";
58
+ *
59
+ * const cache = new Cache(new MemoryCacheAdapter());
60
+ * ```
61
+ */
62
+ export declare class Cache<TType = unknown> extends BaseCache<TType> implements INamespacedCache<TType> {
63
+ private readonly namespace;
64
+ private readonly namespacedEventBus;
65
+ private readonly eventBus;
66
+ private readonly cacheAdapter;
67
+ private readonly eventAttributes;
68
+ private readonly defaultTtl;
69
+ constructor(cacheAdapter: ICacheAdapter<any>, settings?: CacheSettings<TType>);
70
+ private createKeyFoundEvent;
71
+ private createKeyNotFoundEvent;
72
+ private createKeyAddedEvent;
73
+ private createKeyUpdatedEvent;
74
+ private createKeyRemovedEvent;
75
+ private createKeysClearedEvent;
76
+ private createKeyIncrementedEvent;
77
+ private createKeyDecrementedEvent;
78
+ private keyWithNamespace;
79
+ withNamespace(namespace: OneOrMore<string>): ICache<TType>;
80
+ getNamespace(): string;
81
+ get(key: string): LazyPromise<TType | null>;
82
+ add(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
83
+ update(key: string, value: TType): LazyPromise<boolean>;
84
+ put(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
85
+ remove(key: string): LazyPromise<boolean>;
86
+ increment(key: string, value?: Extract<TType, number>): LazyPromise<boolean>;
87
+ clear(): LazyPromise<void>;
88
+ }
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * @module Collection
3
3
  */
4
+ /**
5
+ * @internal
6
+ */
4
7
  export declare class AsyncErrorHandlerIterable<TInput> implements AsyncIterable<TInput> {
5
8
  private readonly iterable;
6
9
  private readonly errorPasser;
@@ -2,6 +2,9 @@
2
2
  * @module Collection
3
3
  */
4
4
  import type { CrossJoinResult, ICollection } from "../../../../collection/contracts/_module";
5
+ /**
6
+ * @internal
7
+ */
5
8
  export declare class CrossJoinIterable<TInput, TExtended = TInput> implements Iterable<CrossJoinResult<TInput, TExtended>> {
6
9
  private collection;
7
10
  private iterable;
@@ -1,4 +1,5 @@
1
1
  export * from "../../event-bus/contracts/_shared";
2
+ export * from "../../event-bus/contracts/event-bus.errors";
2
3
  export * from "../../event-bus/contracts/event-bus.contract";
3
4
  export * from "../../event-bus/contracts/event-bus-adapter.contract";
4
- export * from "../../event-bus/contracts/event-bus-manager.contract";
5
+ export * from "../../event-bus/contracts/event-bus-factory.contract";
@@ -6,33 +6,3 @@ export type IBaseEvent = {
6
6
  type: string;
7
7
  };
8
8
  export type Listener<TEvent extends IBaseEvent> = (event: TEvent) => Promisable<void>;
9
- /**
10
- * @group Errors
11
- */
12
- export declare class EventBusError extends Error {
13
- constructor(message: string, cause?: unknown);
14
- }
15
- /**
16
- * @group Errors
17
- */
18
- export declare class UnexpectedEventBusError extends EventBusError {
19
- constructor(message: string, cause?: unknown);
20
- }
21
- /**
22
- * @group Errors
23
- */
24
- export declare class RemoveListenerEventBusError extends Error {
25
- constructor(message: string, cause?: unknown);
26
- }
27
- /**
28
- * @group Errors
29
- */
30
- export declare class AddListenerEventBusError extends Error {
31
- constructor(message: string, cause?: unknown);
32
- }
33
- /**
34
- * @group Errors
35
- */
36
- export declare class DispatchEventBusError extends Error {
37
- constructor(message: string, cause?: unknown);
38
- }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { Validator } from "../../utilities/_module";
5
+ import type { INamespacedEventBus } from "../../event-bus/contracts/event-bus.contract";
6
+ import type { IBaseEvent } from "../../event-bus/contracts/_shared";
7
+ /**
8
+ * The <i>IEventBusFactory</i> contract makes it easy to configure and switch between different <i>{@link INamespacedEventBus}</i> dynamically.
9
+ * @group Contracts
10
+ */
11
+ export type IEventBusFactory<TDrivers extends string = string, TEvents extends IBaseEvent = IBaseEvent> = {
12
+ /**
13
+ * The <i>use</i> method will throw an error if you provide it unregisted driver.
14
+ * If no default driver is defined an error will be thrown by <i>use</i> method.
15
+ * @throws {UnregisteredDriverError} {@link UnregisteredDriverError}
16
+ * @throws {DefaultDriverNotDefinedError} {@link DefaultDriverNotDefinedError}
17
+ * @example
18
+ * ```ts
19
+ * import { type IEventBusFactory } from "@daiso-tech/core";
20
+ *
21
+ * async function main(eventFactory: IEventBusFactory): Promise<void> {
22
+ * // Will dispatch envent using the default driver
23
+ * await eventBusFactory
24
+ * .use()
25
+ * .dispatch({ type: "add", a: 1, b: 2 });
26
+ * // Will dispatch envent using the redis addapter
27
+ * await eventBusFactory
28
+ * .use("redis")
29
+ * .dispatch({ type: "add", a: 1, b: 2 });
30
+ * }
31
+ * ```
32
+ */
33
+ use(driverName?: TDrivers): INamespacedEventBus<TEvents>;
34
+ /**
35
+ * The <i>withValidation</i> method is used to set a <i>validator</i>, which validates the event during runtime.
36
+ * The type is inferred from the provided <i>validator</i>.
37
+ * @example
38
+ * ```ts
39
+ * import { type IEventBusFactory, zodValidator } from "@daiso-tech/core";
40
+ * import { z } from "zod"
41
+ *
42
+ * async function main(eventBusFactory: IEventBusFactory): Promise<void> {
43
+ * const addEventSchema = z.zod({
44
+ * type: z.literal("add"),
45
+ * a: z.number(),
46
+ * b: z.number(),
47
+ * });
48
+ * await eventBusFactory
49
+ * .withValidation(zodValidator(addEventSchema))
50
+ * .use()
51
+ * // You will se an typescript error and get runtime erorr
52
+ * .dispatch({ type: "add" });
53
+ * }
54
+ * ```
55
+ */
56
+ withValidation<TOutput extends TEvents = TEvents>(validator: Validator<TOutput>): IEventBusFactory<TDrivers, TOutput>;
57
+ /**
58
+ * The <i>withTypes</i> method is used to set the event types of the <i>{@link IEventBus}</i>.
59
+ * @example
60
+ * ```ts
61
+ * import { type IEventBusFactory, zodValidator } from "@daiso-tech/core";
62
+ *
63
+ * async function main(eventBusFactory: IEventBusFactory): Promise<void> {
64
+ * type AddEvent = {
65
+ * type: "add";
66
+ * a: number;
67
+ * b: number;
68
+ * };
69
+ * await eventBusFactory
70
+ * .withTypes<AddEvent>()
71
+ * .use()
72
+ * // You will se an typescript error
73
+ * .dispatch({ type: "add" });
74
+ * }
75
+ * ```
76
+ */
77
+ withType<TOutput extends TEvents = TEvents>(): IEventBusFactory<TDrivers, TOutput>;
78
+ };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { LazyPromise } from "../../_module";
4
+ import type { LazyPromise } from "../../utilities/_module";
5
5
  import type { OneOrMore } from "../../_shared/types";
6
6
  import type { IBaseEvent, Listener } from "../../event-bus/contracts/_shared";
7
7
  export type SelectEvent<TEvents extends IBaseEvent, TEventType extends TEvents["type"]> = Extract<TEvents, {
@@ -49,32 +49,38 @@ export type IListenable<TEvents extends IBaseEvent = IBaseEvent> = {
49
49
  subscribeMany<TEventType extends TEvents["type"]>(events: TEventType[], listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<Unsubscribe>;
50
50
  };
51
51
  /**
52
- * The <i>IEventBus</i> contract defines a way for dispatching and listening to events independent of underlying technology.
53
- * It commes with more convient methods compared to <i>IEventBusAdapter</i>.
52
+ * The <i>IDispatcher</i> contract defines a way for dispatching to events independent of underlying technology.
54
53
  * @group Contracts
55
54
  */
56
- export type IEventBus<TEvents extends IBaseEvent = IBaseEvent> = IListenable<TEvents> & {
55
+ export type IDispatcher<TEvents extends IBaseEvent = IBaseEvent> = {
57
56
  /**
58
57
  * The <i>dispatch</i> method is used for dispatching one or multiple <i>events</i>.
59
58
 
60
59
  * @throws {DispatchEventBusError} {@link DispatchEventBusError}
61
60
  */
62
61
  dispatch(events: OneOrMore<TEvents>): LazyPromise<void>;
62
+ };
63
+ /**
64
+ * The <i>IEventBus</i> contract defines a way for dispatching and listening to events independent of underlying technology.
65
+ * It commes with more convient methods compared to <i>IEventBusAdapter</i>.
66
+ * @group Contracts
67
+ */
68
+ export type IEventBus<TEvents extends IBaseEvent = IBaseEvent> = IListenable<TEvents> & IDispatcher<TEvents> & {
63
69
  /**
64
- * The <i>getNamespace</i> method return the complete namespace.
70
+ * The <i>getNamespace</i> method returns the complete namespace.
65
71
  * @example
66
72
  * ```ts
67
- * const eventBus = new EventBus(new MemoryEventBusAdapter(), {
68
- * rootNamespace: "@root/"
69
- * });
73
+ * import { type IEventBus } from "@daiso-tech/core";
70
74
  *
71
- * // Will be "@root/"
75
+ * async function main(eventBus: IEventBus): Promise<void> {
76
+ * // Will be "@root"
72
77
  * console.log(eventBus.getNamespace())
73
78
  *
74
- * const eventBusA = eventBus.withNamespace("a/");
79
+ * const eventBusA = eventBus.withNamespace("a");
75
80
  *
76
- * // Will be "@root/a/"
81
+ * // Will be "@root/a"
77
82
  * console.log(eventBusA.getNamespace())
83
+ * }
78
84
  * ```
79
85
  */
80
86
  getNamespace(): string;
@@ -90,11 +96,9 @@ export type INamespacedEventBus<TEvents extends IBaseEvent = IBaseEvent> = IEven
90
96
  * This useful for multitennat applications.
91
97
  * @example
92
98
  * ```ts
93
- * import { EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
94
- *
95
- * (async () => {
96
- * const eventBus = new EventBus(new MemoryEventBusAdapter());
99
+ * import { type IEventBus } from "@daiso-tech/core";
97
100
  *
101
+ * async function main(eventBus: IEventBus): Promise<void> {
98
102
  * const eventBusA = eventBus.withNamespace("a");
99
103
  * await eventBusA.subscribe("add", (event) => {
100
104
  * // This will be logged
@@ -112,9 +116,8 @@ export type INamespacedEventBus<TEvents extends IBaseEvent = IBaseEvent> = IEven
112
116
  * a: 1,
113
117
  * b: 2
114
118
  * })
115
- * })();
116
- *
119
+ * }
117
120
  * ```
118
121
  */
119
- withNamespace(namespace: string): IEventBus<TEvents>;
122
+ withNamespace(namespace: OneOrMore<string>): IEventBus<TEvents>;
120
123
  };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ /**
5
+ * @group Errors
6
+ */
7
+ export declare class EventBusError extends Error {
8
+ constructor(message: string, cause?: unknown);
9
+ }
10
+ /**
11
+ * @group Errors
12
+ */
13
+ export declare class UnexpectedEventBusError extends EventBusError {
14
+ constructor(message: string, cause?: unknown);
15
+ }
16
+ /**
17
+ * @group Errors
18
+ */
19
+ export declare class RemoveListenerEventBusError extends Error {
20
+ constructor(message: string, cause?: unknown);
21
+ }
22
+ /**
23
+ * @group Errors
24
+ */
25
+ export declare class AddListenerEventBusError extends Error {
26
+ constructor(message: string, cause?: unknown);
27
+ }
28
+ /**
29
+ * @group Errors
30
+ */
31
+ export declare class DispatchEventBusError extends Error {
32
+ constructor(message: string, cause?: unknown);
33
+ }
@@ -1,5 +1,3 @@
1
1
  export * from "../../event-bus/implementations/_shared/test-utilities/_module";
2
- export * from "../../event-bus/implementations/event-bus/_module";
3
- export * from "../../event-bus/implementations/memory-event-bus-adapter/_module";
4
- export * from "../../event-bus/implementations/redis-event-bus-adapter/_module";
5
- export * from "../../event-bus/implementations/no-op-event-bus-adapter/_module";
2
+ export * from "../../event-bus/implementations/derivables/_module";
3
+ export * from "../../event-bus/implementations/adapters/_module";
@@ -0,0 +1,3 @@
1
+ export * from "../../../event-bus/implementations/adapters/memory-event-bus-adapter/_module";
2
+ export * from "../../../event-bus/implementations/adapters/no-op-event-bus-adapter/_module";
3
+ export * from "../../../event-bus/implementations/adapters/redis-event-bus-adapter/_module";
@@ -0,0 +1 @@
1
+ export * from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/_module";
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { IBaseEvent, IEventBusAdapter, Listener } from "../../../event-bus/contracts/_module";
4
+ import type { IBaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
5
5
  import { EventEmitter } from "node:events";
6
6
  /**
7
7
  * @group Adapters
@@ -0,0 +1 @@
1
+ export * from "../../../../event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter";
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { Listener, IBaseEvent } from "../../../_module";
5
- import type { IEventBusAdapter } from "../../../event-bus/contracts/event-bus-adapter.contract";
4
+ import type { Listener, IBaseEvent } from "../../../../event-bus/contracts/_module";
5
+ import type { IEventBusAdapter } from "../../../../event-bus/contracts/_module";
6
6
  /**
7
- * This <i>NoOpEventBusAdapter</i> will do nothing and is used for easily mocking IEventBus for testing.
7
+ * This <i>NoOpEventBusAdapter</i> will do nothing and is used for easily mocking {@link IEventBus} for testing.
8
8
  * @group Adapters
9
9
  */
10
10
  export declare class NoOpEventBusAdapter implements IEventBusAdapter {
@@ -0,0 +1 @@
1
+ export * from "../../../../event-bus/implementations/adapters/memory-event-bus-adapter/_module";
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import { type ISerializer } from "../../../serializer/contracts/_module";
5
- import type { IBaseEvent, IEventBusAdapter, Listener } from "../../../event-bus/contracts/_module";
4
+ import { type ISerializer } from "../../../../serializer/contracts/_module";
5
+ import type { IBaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
6
6
  import type Redis from "ioredis";
7
7
  /**
8
8
  * @group Adapters
@@ -0,0 +1,2 @@
1
+ export * from "../../../event-bus/implementations/derivables/event-bus";
2
+ export * from "../../../event-bus/implementations/derivables/event-bus-factory";
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { Validator } from "../../../utilities/_module";
5
+ import type { INamespacedEventBus, IEventBusAdapter, IBaseEvent, IEventBusFactory } from "../../../event-bus/contracts/_module";
6
+ /**
7
+ * @group Derivables
8
+ */
9
+ export type EventBusDrivers<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
10
+ /**
11
+ * @group Derivables
12
+ */
13
+ export type EventBusFactorySettings<TAdapters extends string = string> = {
14
+ drivers: EventBusDrivers<TAdapters>;
15
+ defaultDriver?: NoInfer<TAdapters>;
16
+ rootNamespace?: string;
17
+ };
18
+ /**
19
+ * @group Derivables
20
+ * @example
21
+ * ```ts
22
+ * import { EventBusFactory } from "@daiso-tech/core";
23
+ * import Redis from "ioredis"
24
+ *
25
+ * const eventBusFactory = new EventBusFactory({
26
+ * drivers: {
27
+ * memory: new MemoryEventBusAdapter(),
28
+ * redis: new RedisEventBusAdapter({
29
+ * dispatcherClient: new Redis(),
30
+ * listenerClient: new Redis(),
31
+ * }),
32
+ * },
33
+ * defaultDriver: "memory",
34
+ * rootNamespace: "@events"
35
+ * });
36
+ * ```
37
+ */
38
+ export declare class EventBusFactory<TAdapters extends string = string, TEvent extends IBaseEvent = IBaseEvent> implements IEventBusFactory<TAdapters> {
39
+ private readonly drivers;
40
+ private readonly defaultDriver?;
41
+ private readonly rootNamespace?;
42
+ private validator;
43
+ constructor(settings: EventBusFactorySettings<TAdapters>);
44
+ use(driverName?: TAdapters | undefined): INamespacedEventBus<TEvent>;
45
+ withValidation<TOutput extends IBaseEvent = IBaseEvent>(validator: Validator<TOutput>): IEventBusFactory<TAdapters, TOutput>;
46
+ withType<TOutput extends IBaseEvent = IBaseEvent>(): IEventBusFactory<TAdapters, TOutput>;
47
+ }