@daiso-tech/core 0.10.0 → 0.11.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 (385) hide show
  1. package/dist/cjs/_shared/utilities.js +7 -0
  2. package/dist/cjs/_shared/utilities.js.map +1 -1
  3. package/dist/cjs/event-bus/contracts/_module.js +2 -1
  4. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  5. package/dist/cjs/event-bus/contracts/_shared.js +0 -36
  6. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  7. package/dist/cjs/event-bus/contracts/{event-bus-manager.contract.js → event-bus-factory.contract.js} +1 -1
  8. package/dist/cjs/event-bus/contracts/event-bus-factory.contract.js.map +1 -0
  9. package/dist/cjs/event-bus/contracts/event-bus.errors.js +39 -0
  10. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -0
  11. package/dist/cjs/event-bus/implementations/_module.js +2 -4
  12. package/dist/cjs/event-bus/implementations/_module.js.map +1 -1
  13. package/dist/cjs/event-bus/implementations/adapters/_module.js +20 -0
  14. package/dist/cjs/event-bus/implementations/adapters/_module.js.map +1 -0
  15. package/dist/cjs/{storage/implementations/redis-storage-adapter → event-bus/implementations/adapters/memory-event-bus-adapter}/_module.js +1 -1
  16. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -0
  17. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -0
  18. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js +18 -0
  19. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js.map +1 -0
  20. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -0
  21. package/dist/cjs/event-bus/implementations/{memory-event-bus-adapter → adapters/redis-event-bus-adapter}/_module.js +1 -1
  22. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +1 -0
  23. package/dist/cjs/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.js +2 -2
  24. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -0
  25. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/_module.js +2 -2
  26. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -0
  27. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +39 -0
  28. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -0
  29. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/event-bus.js +11 -8
  30. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -0
  31. package/dist/cjs/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.js +1 -0
  32. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +1 -0
  33. package/dist/cjs/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +1 -0
  34. package/dist/cjs/serializer/contracts/_module.js +1 -0
  35. package/dist/cjs/serializer/contracts/_module.js.map +1 -1
  36. package/dist/cjs/serializer/contracts/serializer.contract.js +0 -22
  37. package/dist/cjs/serializer/contracts/serializer.contract.js.map +1 -1
  38. package/dist/cjs/serializer/contracts/serializer.errors.js +25 -0
  39. package/dist/cjs/serializer/contracts/serializer.errors.js.map +1 -0
  40. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +3 -3
  41. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +1 -1
  42. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +3 -3
  43. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +1 -1
  44. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +3 -3
  45. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +1 -1
  46. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js +21 -21
  47. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +1 -1
  48. package/dist/cjs/storage/contracts/_module.js +4 -4
  49. package/dist/cjs/storage/contracts/_module.js.map +1 -1
  50. package/dist/cjs/storage/contracts/{storage-manager.contract.js → storage-factory.contract.js} +1 -1
  51. package/dist/cjs/storage/contracts/storage-factory.contract.js.map +1 -0
  52. package/dist/cjs/storage/contracts/{_shared.js → storage.errors.js} +1 -1
  53. package/dist/cjs/storage/contracts/storage.errors.js.map +1 -0
  54. package/dist/cjs/storage/contracts/{storage-events.contract.js → storage.events.js} +6 -6
  55. package/dist/cjs/storage/contracts/storage.events.js.map +1 -0
  56. package/dist/cjs/storage/implementations/_module.js +2 -5
  57. package/dist/cjs/storage/implementations/_module.js.map +1 -1
  58. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +74 -242
  59. package/dist/cjs/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +1 -1
  60. package/dist/cjs/storage/implementations/adapters/_module.js +21 -0
  61. package/dist/cjs/storage/implementations/adapters/_module.js.map +1 -0
  62. package/dist/cjs/storage/implementations/{memory-storage-adapter → adapters/memory-storage-adapter}/_module.js +1 -1
  63. package/dist/cjs/storage/implementations/adapters/memory-storage-adapter/_module.js.map +1 -0
  64. package/dist/cjs/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js +58 -0
  65. package/dist/cjs/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js.map +1 -0
  66. package/dist/cjs/storage/implementations/{mongodb-storage-adapter → adapters/mongodb-storage-adapter}/_module.js +1 -1
  67. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/_module.js.map +1 -0
  68. package/dist/cjs/storage/implementations/{mongodb-storage-adapter → adapters/mongodb-storage-adapter}/mongodb-storage-adapter.js +22 -93
  69. package/dist/cjs/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js.map +1 -0
  70. package/dist/cjs/{event-bus/implementations/no-op-event-bus-adapter → storage/implementations/adapters/redis-storage-adapter}/_module.js +1 -1
  71. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/_module.js.map +1 -0
  72. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js +89 -0
  73. package/dist/cjs/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js.map +1 -0
  74. package/dist/cjs/storage/implementations/adapters/sqlite/_module.js +19 -0
  75. package/dist/cjs/storage/implementations/adapters/sqlite/_module.js.map +1 -0
  76. package/dist/cjs/{event-bus/implementations/redis-event-bus-adapter → storage/implementations/adapters/sqlite/_shared}/_module.js +1 -1
  77. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/_module.js.map +1 -0
  78. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js +119 -0
  79. package/dist/cjs/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js.map +1 -0
  80. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js +18 -0
  81. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js.map +1 -0
  82. package/dist/cjs/storage/implementations/{sqlite → adapters/sqlite}/libsql-storage-adapter/libsql-storage-adapter.js +16 -16
  83. package/dist/cjs/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +1 -0
  84. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js +18 -0
  85. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js.map +1 -0
  86. package/dist/cjs/storage/implementations/{sqlite → adapters/sqlite}/sqlite-storage-adapter/sqlite-storage-adapter.js +16 -16
  87. package/dist/cjs/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +1 -0
  88. package/dist/cjs/storage/implementations/derivables/_module.js +19 -0
  89. package/dist/cjs/storage/implementations/derivables/_module.js.map +1 -0
  90. package/dist/cjs/storage/implementations/derivables/storage-factory.js +42 -0
  91. package/dist/cjs/storage/implementations/derivables/storage-factory.js.map +1 -0
  92. package/dist/cjs/storage/implementations/derivables/storage.js +429 -0
  93. package/dist/cjs/storage/implementations/derivables/storage.js.map +1 -0
  94. package/dist/cjs/utilities/_module.js +1 -0
  95. package/dist/cjs/utilities/_module.js.map +1 -1
  96. package/dist/cjs/utilities/global-errors.js +25 -0
  97. package/dist/cjs/utilities/global-errors.js.map +1 -0
  98. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  99. package/dist/esm/_shared/utilities.js +6 -0
  100. package/dist/esm/_shared/utilities.js.map +1 -1
  101. package/dist/esm/event-bus/contracts/_module.js +2 -1
  102. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  103. package/dist/esm/event-bus/contracts/_shared.js +0 -30
  104. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  105. package/dist/esm/event-bus/contracts/event-bus-factory.contract.js +1 -0
  106. package/dist/esm/event-bus/contracts/event-bus-factory.contract.js.map +1 -0
  107. package/dist/esm/event-bus/contracts/event-bus.errors.js +31 -0
  108. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -0
  109. package/dist/esm/event-bus/implementations/_module.js +2 -4
  110. package/dist/esm/event-bus/implementations/_module.js.map +1 -1
  111. package/dist/esm/event-bus/implementations/adapters/_module.js +4 -0
  112. package/dist/esm/event-bus/implementations/adapters/_module.js.map +1 -0
  113. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -0
  114. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -0
  115. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -0
  116. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js +2 -0
  117. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.js.map +1 -0
  118. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -0
  119. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js +2 -0
  120. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +1 -0
  121. package/dist/esm/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.js +2 -2
  122. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +1 -0
  123. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -0
  124. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -0
  125. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +35 -0
  126. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -0
  127. package/dist/esm/event-bus/implementations/{event-bus → derivables}/event-bus.js +12 -9
  128. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -0
  129. package/dist/esm/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.js +1 -0
  130. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +1 -0
  131. package/dist/esm/event-bus/implementations/derivables/with-validation-event-bus-adapter.js.map +1 -0
  132. package/dist/esm/serializer/contracts/_module.js +1 -0
  133. package/dist/esm/serializer/contracts/_module.js.map +1 -1
  134. package/dist/esm/serializer/contracts/serializer.contract.js +0 -18
  135. package/dist/esm/serializer/contracts/serializer.contract.js.map +1 -1
  136. package/dist/esm/serializer/contracts/serializer.errors.js +19 -0
  137. package/dist/esm/serializer/contracts/serializer.errors.js.map +1 -0
  138. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js +1 -1
  139. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +1 -1
  140. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js +1 -1
  141. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +1 -1
  142. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js +1 -1
  143. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +1 -1
  144. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js +1 -1
  145. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +1 -1
  146. package/dist/esm/storage/contracts/_module.js +4 -4
  147. package/dist/esm/storage/contracts/_module.js.map +1 -1
  148. package/dist/esm/storage/contracts/storage-factory.contract.js +1 -0
  149. package/dist/esm/storage/contracts/storage-factory.contract.js.map +1 -0
  150. package/dist/esm/storage/contracts/{_shared.js → storage.errors.js} +1 -1
  151. package/dist/esm/storage/contracts/storage.errors.js.map +1 -0
  152. package/dist/esm/storage/contracts/storage.events.js +11 -0
  153. package/dist/esm/storage/contracts/storage.events.js.map +1 -0
  154. package/dist/esm/storage/implementations/_module.js +2 -5
  155. package/dist/esm/storage/implementations/_module.js.map +1 -1
  156. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js +74 -242
  157. package/dist/esm/storage/implementations/_shared/test-utilities/storage-adapter.test-suite.js.map +1 -1
  158. package/dist/esm/storage/implementations/adapters/_module.js +5 -0
  159. package/dist/esm/storage/implementations/adapters/_module.js.map +1 -0
  160. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/_module.js +2 -0
  161. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/_module.js.map +1 -0
  162. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js +54 -0
  163. package/dist/esm/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.js.map +1 -0
  164. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/_module.js +2 -0
  165. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/_module.js.map +1 -0
  166. package/dist/esm/storage/implementations/{mongodb-storage-adapter → adapters/mongodb-storage-adapter}/mongodb-storage-adapter.js +21 -92
  167. package/dist/esm/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.js.map +1 -0
  168. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/_module.js +2 -0
  169. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/_module.js.map +1 -0
  170. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js +85 -0
  171. package/dist/esm/storage/implementations/adapters/redis-storage-adapter/redis-storage-adapter.js.map +1 -0
  172. package/dist/esm/storage/implementations/adapters/sqlite/_module.js +3 -0
  173. package/dist/esm/storage/implementations/adapters/sqlite/_module.js.map +1 -0
  174. package/dist/esm/storage/implementations/adapters/sqlite/_shared/_module.js +2 -0
  175. package/dist/esm/storage/implementations/adapters/sqlite/_shared/_module.js.map +1 -0
  176. package/dist/esm/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js +115 -0
  177. package/dist/esm/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.js.map +1 -0
  178. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js +2 -0
  179. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.js.map +1 -0
  180. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +49 -0
  181. package/dist/esm/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +1 -0
  182. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js +2 -0
  183. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.js.map +1 -0
  184. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +48 -0
  185. package/dist/esm/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +1 -0
  186. package/dist/esm/storage/implementations/derivables/_module.js +3 -0
  187. package/dist/esm/storage/implementations/derivables/_module.js.map +1 -0
  188. package/dist/esm/storage/implementations/derivables/storage-factory.js +38 -0
  189. package/dist/esm/storage/implementations/derivables/storage-factory.js.map +1 -0
  190. package/dist/esm/storage/implementations/derivables/storage.js +425 -0
  191. package/dist/esm/storage/implementations/derivables/storage.js.map +1 -0
  192. package/dist/esm/utilities/_module.js +1 -0
  193. package/dist/esm/utilities/_module.js.map +1 -1
  194. package/dist/esm/utilities/global-errors.js +19 -0
  195. package/dist/esm/utilities/global-errors.js.map +1 -0
  196. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  197. package/dist/types/_shared/types.d.ts +4 -0
  198. package/dist/types/_shared/utilities.d.ts +5 -1
  199. package/dist/types/event-bus/contracts/_module.d.ts +2 -1
  200. package/dist/types/event-bus/contracts/_shared.d.ts +0 -30
  201. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +78 -0
  202. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +21 -18
  203. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +33 -0
  204. package/dist/types/event-bus/implementations/_module.d.ts +2 -4
  205. package/dist/types/event-bus/implementations/adapters/_module.d.ts +3 -0
  206. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +1 -0
  207. package/dist/types/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.d.ts +1 -1
  208. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/_module.d.ts +1 -0
  209. 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
  210. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/_module.d.ts +1 -0
  211. package/dist/types/event-bus/implementations/{redis-event-bus-adapter → adapters/redis-event-bus-adapter}/redis-event-bus-adapter.d.ts +2 -2
  212. package/dist/types/event-bus/implementations/derivables/_module.d.ts +2 -0
  213. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +47 -0
  214. package/dist/types/event-bus/implementations/{event-bus → derivables}/event-bus.d.ts +8 -7
  215. package/dist/types/serializer/contracts/_module.d.ts +1 -0
  216. package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -18
  217. package/dist/types/serializer/contracts/serializer.errors.d.ts +21 -0
  218. package/dist/types/storage/contracts/_module.d.ts +4 -4
  219. package/dist/types/storage/contracts/storage-adapter.contract.d.ts +11 -11
  220. package/dist/types/storage/contracts/storage-factory.contract.d.ts +67 -0
  221. package/dist/types/storage/contracts/storage.contract.d.ts +24 -27
  222. package/dist/types/storage/contracts/{storage-events.contract.d.ts → storage.events.d.ts} +24 -21
  223. package/dist/types/storage/implementations/_module.d.ts +2 -5
  224. package/dist/types/storage/implementations/adapters/_module.d.ts +4 -0
  225. package/dist/types/storage/implementations/adapters/memory-storage-adapter/_module.d.ts +1 -0
  226. package/dist/types/storage/implementations/adapters/memory-storage-adapter/memory-storage-adapter.d.ts +18 -0
  227. package/dist/types/storage/implementations/adapters/mongodb-storage-adapter/_module.d.ts +1 -0
  228. package/dist/types/storage/implementations/adapters/mongodb-storage-adapter/mongodb-storage-adapter.d.ts +40 -0
  229. package/dist/types/storage/implementations/adapters/redis-storage-adapter/_module.d.ts +1 -0
  230. package/dist/types/storage/implementations/{redis-storage-adapter → adapters/redis-storage-adapter}/redis-storage-adapter.d.ts +8 -9
  231. package/dist/types/storage/implementations/adapters/sqlite/_module.d.ts +2 -0
  232. package/dist/types/storage/implementations/adapters/sqlite/_shared/_module.d.ts +1 -0
  233. package/dist/types/storage/implementations/adapters/sqlite/_shared/base-sqlite-storage-adapter.d.ts +45 -0
  234. package/dist/types/storage/implementations/adapters/sqlite/libsql-storage-adapter/_module.d.ts +1 -0
  235. package/dist/types/storage/implementations/adapters/sqlite/libsql-storage-adapter/libsql-storage-adapter.d.ts +37 -0
  236. package/dist/types/storage/implementations/adapters/sqlite/sqlite-storage-adapter/_module.d.ts +1 -0
  237. package/dist/types/storage/implementations/adapters/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.d.ts +37 -0
  238. package/dist/types/storage/implementations/derivables/_module.d.ts +2 -0
  239. package/dist/types/storage/implementations/derivables/storage-factory.d.ts +47 -0
  240. package/dist/types/storage/implementations/{storage → derivables}/storage.d.ts +36 -31
  241. package/dist/types/utilities/_module.d.ts +1 -0
  242. package/dist/types/utilities/global-errors.d.ts +12 -0
  243. package/dist/types/utilities/time-span/time-span.d.ts +2 -0
  244. package/package.json +12 -2
  245. package/dist/cjs/event-bus/contracts/event-bus-manager.contract.js.map +0 -1
  246. package/dist/cjs/event-bus/implementations/event-bus/_module.js.map +0 -1
  247. package/dist/cjs/event-bus/implementations/event-bus/event-bus-manager.js +0 -31
  248. package/dist/cjs/event-bus/implementations/event-bus/event-bus-manager.js.map +0 -1
  249. package/dist/cjs/event-bus/implementations/event-bus/event-bus.js.map +0 -1
  250. package/dist/cjs/event-bus/implementations/event-bus/with-namespace-event-bus-adapter.js.map +0 -1
  251. package/dist/cjs/event-bus/implementations/event-bus/with-validation-event-bus-adapter.js.map +0 -1
  252. package/dist/cjs/event-bus/implementations/memory-event-bus-adapter/_module.js.map +0 -1
  253. package/dist/cjs/event-bus/implementations/memory-event-bus-adapter/memory-event-bus-adapter.js.map +0 -1
  254. package/dist/cjs/event-bus/implementations/no-op-event-bus-adapter/_module.js.map +0 -1
  255. package/dist/cjs/event-bus/implementations/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +0 -1
  256. package/dist/cjs/event-bus/implementations/redis-event-bus-adapter/_module.js.map +0 -1
  257. package/dist/cjs/event-bus/implementations/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  258. package/dist/cjs/storage/contracts/_shared.js.map +0 -1
  259. package/dist/cjs/storage/contracts/storage-events.contract.js.map +0 -1
  260. package/dist/cjs/storage/contracts/storage-manager.contract.js.map +0 -1
  261. package/dist/cjs/storage/implementations/memory-storage-adapter/_module.js.map +0 -1
  262. package/dist/cjs/storage/implementations/memory-storage-adapter/memory-storage-adapter.js +0 -85
  263. package/dist/cjs/storage/implementations/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  264. package/dist/cjs/storage/implementations/mongodb-storage-adapter/_module.js.map +0 -1
  265. package/dist/cjs/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  266. package/dist/cjs/storage/implementations/redis-storage-adapter/_module.js.map +0 -1
  267. package/dist/cjs/storage/implementations/redis-storage-adapter/redis-storage-adapter.js +0 -228
  268. package/dist/cjs/storage/implementations/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  269. package/dist/cjs/storage/implementations/sqlite/_module.js +0 -19
  270. package/dist/cjs/storage/implementations/sqlite/_module.js.map +0 -1
  271. package/dist/cjs/storage/implementations/sqlite/_shared/_module.js +0 -18
  272. package/dist/cjs/storage/implementations/sqlite/_shared/_module.js.map +0 -1
  273. package/dist/cjs/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js +0 -190
  274. package/dist/cjs/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  275. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/_module.js +0 -18
  276. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  277. package/dist/cjs/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  278. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/_module.js +0 -18
  279. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  280. package/dist/cjs/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  281. package/dist/cjs/storage/implementations/storage/_module.js +0 -19
  282. package/dist/cjs/storage/implementations/storage/_module.js.map +0 -1
  283. package/dist/cjs/storage/implementations/storage/storage-manager.js +0 -34
  284. package/dist/cjs/storage/implementations/storage/storage-manager.js.map +0 -1
  285. package/dist/cjs/storage/implementations/storage/storage.js +0 -265
  286. package/dist/cjs/storage/implementations/storage/storage.js.map +0 -1
  287. package/dist/cjs/storage/implementations/storage/with-event-storage-adapter.js +0 -255
  288. package/dist/cjs/storage/implementations/storage/with-event-storage-adapter.js.map +0 -1
  289. package/dist/cjs/storage/implementations/storage/with-namespace-storage-adapter.js +0 -53
  290. package/dist/cjs/storage/implementations/storage/with-namespace-storage-adapter.js.map +0 -1
  291. package/dist/cjs/storage/implementations/storage/with-validation-storage-adapter.js +0 -48
  292. package/dist/cjs/storage/implementations/storage/with-validation-storage-adapter.js.map +0 -1
  293. package/dist/esm/event-bus/contracts/event-bus-manager.contract.js +0 -1
  294. package/dist/esm/event-bus/contracts/event-bus-manager.contract.js.map +0 -1
  295. package/dist/esm/event-bus/implementations/event-bus/_module.js +0 -3
  296. package/dist/esm/event-bus/implementations/event-bus/_module.js.map +0 -1
  297. package/dist/esm/event-bus/implementations/event-bus/event-bus-manager.js +0 -27
  298. package/dist/esm/event-bus/implementations/event-bus/event-bus-manager.js.map +0 -1
  299. package/dist/esm/event-bus/implementations/event-bus/event-bus.js.map +0 -1
  300. package/dist/esm/event-bus/implementations/event-bus/with-namespace-event-bus-adapter.js.map +0 -1
  301. package/dist/esm/event-bus/implementations/event-bus/with-validation-event-bus-adapter.js.map +0 -1
  302. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/_module.js +0 -2
  303. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/_module.js.map +0 -1
  304. package/dist/esm/event-bus/implementations/memory-event-bus-adapter/memory-event-bus-adapter.js.map +0 -1
  305. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/_module.js +0 -2
  306. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/_module.js.map +0 -1
  307. package/dist/esm/event-bus/implementations/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +0 -1
  308. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/_module.js +0 -2
  309. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/_module.js.map +0 -1
  310. package/dist/esm/event-bus/implementations/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  311. package/dist/esm/storage/contracts/_shared.js.map +0 -1
  312. package/dist/esm/storage/contracts/storage-events.contract.js +0 -11
  313. package/dist/esm/storage/contracts/storage-events.contract.js.map +0 -1
  314. package/dist/esm/storage/contracts/storage-manager.contract.js +0 -1
  315. package/dist/esm/storage/contracts/storage-manager.contract.js.map +0 -1
  316. package/dist/esm/storage/implementations/memory-storage-adapter/_module.js +0 -2
  317. package/dist/esm/storage/implementations/memory-storage-adapter/_module.js.map +0 -1
  318. package/dist/esm/storage/implementations/memory-storage-adapter/memory-storage-adapter.js +0 -81
  319. package/dist/esm/storage/implementations/memory-storage-adapter/memory-storage-adapter.js.map +0 -1
  320. package/dist/esm/storage/implementations/mongodb-storage-adapter/_module.js +0 -2
  321. package/dist/esm/storage/implementations/mongodb-storage-adapter/_module.js.map +0 -1
  322. package/dist/esm/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.js.map +0 -1
  323. package/dist/esm/storage/implementations/redis-storage-adapter/_module.js +0 -2
  324. package/dist/esm/storage/implementations/redis-storage-adapter/_module.js.map +0 -1
  325. package/dist/esm/storage/implementations/redis-storage-adapter/redis-storage-adapter.js +0 -224
  326. package/dist/esm/storage/implementations/redis-storage-adapter/redis-storage-adapter.js.map +0 -1
  327. package/dist/esm/storage/implementations/sqlite/_module.js +0 -3
  328. package/dist/esm/storage/implementations/sqlite/_module.js.map +0 -1
  329. package/dist/esm/storage/implementations/sqlite/_shared/_module.js +0 -2
  330. package/dist/esm/storage/implementations/sqlite/_shared/_module.js.map +0 -1
  331. package/dist/esm/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js +0 -186
  332. package/dist/esm/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.js.map +0 -1
  333. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/_module.js +0 -2
  334. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/_module.js.map +0 -1
  335. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js +0 -49
  336. package/dist/esm/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.js.map +0 -1
  337. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/_module.js +0 -2
  338. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/_module.js.map +0 -1
  339. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js +0 -48
  340. package/dist/esm/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.js.map +0 -1
  341. package/dist/esm/storage/implementations/storage/_module.js +0 -3
  342. package/dist/esm/storage/implementations/storage/_module.js.map +0 -1
  343. package/dist/esm/storage/implementations/storage/storage-manager.js +0 -30
  344. package/dist/esm/storage/implementations/storage/storage-manager.js.map +0 -1
  345. package/dist/esm/storage/implementations/storage/storage.js +0 -261
  346. package/dist/esm/storage/implementations/storage/storage.js.map +0 -1
  347. package/dist/esm/storage/implementations/storage/with-event-storage-adapter.js +0 -251
  348. package/dist/esm/storage/implementations/storage/with-event-storage-adapter.js.map +0 -1
  349. package/dist/esm/storage/implementations/storage/with-namespace-storage-adapter.js +0 -49
  350. package/dist/esm/storage/implementations/storage/with-namespace-storage-adapter.js.map +0 -1
  351. package/dist/esm/storage/implementations/storage/with-validation-storage-adapter.js +0 -44
  352. package/dist/esm/storage/implementations/storage/with-validation-storage-adapter.js.map +0 -1
  353. package/dist/types/event-bus/contracts/event-bus-manager.contract.d.ts +0 -120
  354. package/dist/types/event-bus/implementations/event-bus/_module.d.ts +0 -2
  355. package/dist/types/event-bus/implementations/event-bus/event-bus-manager.d.ts +0 -26
  356. package/dist/types/event-bus/implementations/memory-event-bus-adapter/_module.d.ts +0 -1
  357. package/dist/types/event-bus/implementations/no-op-event-bus-adapter/_module.d.ts +0 -1
  358. package/dist/types/event-bus/implementations/redis-event-bus-adapter/_module.d.ts +0 -1
  359. package/dist/types/storage/contracts/storage-manager.contract.d.ts +0 -100
  360. package/dist/types/storage/implementations/memory-storage-adapter/_module.d.ts +0 -1
  361. package/dist/types/storage/implementations/memory-storage-adapter/memory-storage-adapter.d.ts +0 -18
  362. package/dist/types/storage/implementations/mongodb-storage-adapter/_module.d.ts +0 -1
  363. package/dist/types/storage/implementations/mongodb-storage-adapter/mongodb-storage-adapter.d.ts +0 -43
  364. package/dist/types/storage/implementations/redis-storage-adapter/_module.d.ts +0 -1
  365. package/dist/types/storage/implementations/sqlite/_module.d.ts +0 -2
  366. package/dist/types/storage/implementations/sqlite/_shared/_module.d.ts +0 -1
  367. package/dist/types/storage/implementations/sqlite/_shared/base-sqlite-storage-adapter.d.ts +0 -39
  368. package/dist/types/storage/implementations/sqlite/libsql-storage-adapter/_module.d.ts +0 -1
  369. package/dist/types/storage/implementations/sqlite/libsql-storage-adapter/libsql-storage-adapter.d.ts +0 -30
  370. package/dist/types/storage/implementations/sqlite/sqlite-storage-adapter/_module.d.ts +0 -1
  371. package/dist/types/storage/implementations/sqlite/sqlite-storage-adapter/sqlite-storage-adapter.d.ts +0 -30
  372. package/dist/types/storage/implementations/storage/_module.d.ts +0 -2
  373. package/dist/types/storage/implementations/storage/storage-manager.d.ts +0 -29
  374. package/dist/types/storage/implementations/storage/with-event-storage-adapter.d.ts +0 -31
  375. package/dist/types/storage/implementations/storage/with-namespace-storage-adapter.d.ts +0 -24
  376. package/dist/types/storage/implementations/storage/with-validation-storage-adapter.d.ts +0 -22
  377. /package/dist/cjs/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.js +0 -0
  378. /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
  379. /package/dist/cjs/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.js +0 -0
  380. /package/dist/esm/event-bus/implementations/{memory-event-bus-adapter → adapters/memory-event-bus-adapter}/memory-event-bus-adapter.js +0 -0
  381. /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
  382. /package/dist/esm/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.js +0 -0
  383. /package/dist/types/event-bus/implementations/{event-bus → derivables}/with-namespace-event-bus-adapter.d.ts +0 -0
  384. /package/dist/types/event-bus/implementations/{event-bus → derivables}/with-validation-event-bus-adapter.d.ts +0 -0
  385. /package/dist/types/storage/contracts/{_shared.d.ts → storage.errors.d.ts} +0 -0
@@ -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
+ }
@@ -18,11 +18,12 @@ export type EventBusSettings<TEvents extends IBaseEvent> = {
18
18
  * ```ts
19
19
  * import { EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
20
20
  *
21
- * const eventBusA = new EventBus(new MemoryEventBusAdapter(), {
22
- * rootNamespace: "@a/"
21
+ * const memoryEventBusAdapter = new MemoryEventBusAdapter();
22
+ * const eventBusA = new EventBus(memoryEventBusAdapter, {
23
+ * rootNamespace: "@a"
23
24
  * });
24
- * const eventBusB = new EventBus(new MemoryEventBusAdapter(), {
25
- * rootNamespace: "@b/"
25
+ * const eventBusB = new EventBus(memoryEventBusAdapter, {
26
+ * rootNamespace: "@b"
26
27
  * });
27
28
  *
28
29
  * (async () => {
@@ -42,7 +43,7 @@ export type EventBusSettings<TEvents extends IBaseEvent> = {
42
43
  * })();
43
44
  * ```
44
45
  */
45
- rootNamespace?: string;
46
+ rootNamespace?: OneOrMore<string>;
46
47
  /**
47
48
  * You can pass a custom <i>{@link Validator}</i> to validate, transform and sanitize your data.
48
49
  * You could also use <i>{@link zodValidator}</i> which enables you to use zod for validating, transforming, and sanitizing.
@@ -87,10 +88,10 @@ export type EventBusSettings<TEvents extends IBaseEvent> = {
87
88
  */
88
89
  export declare class EventBus<TEvents extends IBaseEvent = IBaseEvent> implements INamespacedEventBus<TEvents> {
89
90
  private readonly eventBusAdapter;
90
- private readonly namespace_;
91
+ private readonly namespace;
91
92
  private readonly validator;
92
93
  constructor(eventBusAdapter: IEventBusAdapter, settings?: EventBusSettings<TEvents>);
93
- withNamespace(namespace: string): IEventBus<TEvents>;
94
+ withNamespace(namespace: OneOrMore<string>): IEventBus<TEvents>;
94
95
  getNamespace(): string;
95
96
  addListener<TEventType extends TEvents["type"]>(event: TEventType, listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
96
97
  addListenerMany<TEventType extends TEvents["type"]>(events: TEventType[], listener: Listener<SelectEvent<TEvents, TEventType>>): LazyPromise<void>;
@@ -1 +1,2 @@
1
1
  export * from "../../serializer/contracts/serializer.contract";
2
+ export * from "../../serializer/contracts/serializer.errors";
@@ -1,24 +1,6 @@
1
1
  /**
2
2
  * @module Serializer
3
3
  */
4
- /**
5
- * @group Errors
6
- */
7
- export declare class SerializerError extends Error {
8
- constructor(message: string, cause?: unknown);
9
- }
10
- /**
11
- * @group Errors
12
- */
13
- export declare class SerializationError extends SerializerError {
14
- constructor(message: string, cause?: unknown);
15
- }
16
- /**
17
- * @group Errors
18
- */
19
- export declare class DeserializationError extends SerializerError {
20
- constructor(message: string, cause?: unknown);
21
- }
22
4
  /**
23
5
  * @group Contracts
24
6
  */
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module Serializer
3
+ */
4
+ /**
5
+ * @group Errors
6
+ */
7
+ export declare class SerializerError extends Error {
8
+ constructor(message: string, cause?: unknown);
9
+ }
10
+ /**
11
+ * @group Errors
12
+ */
13
+ export declare class SerializationError extends SerializerError {
14
+ constructor(message: string, cause?: unknown);
15
+ }
16
+ /**
17
+ * @group Errors
18
+ */
19
+ export declare class DeserializationError extends SerializerError {
20
+ constructor(message: string, cause?: unknown);
21
+ }
@@ -1,5 +1,5 @@
1
- export * from "../../storage/contracts/_shared";
2
- export * from "../../storage/contracts/storage.contract";
3
1
  export * from "../../storage/contracts/storage-adapter.contract";
4
- export * from "../../storage/contracts/storage-events.contract";
5
- export * from "../../storage/contracts/storage-manager.contract";
2
+ export * from "../../storage/contracts/storage-factory.contract";
3
+ export * from "../../storage/contracts/storage.contract";
4
+ export * from "../../storage/contracts/storage.errors";
5
+ export * from "../../storage/contracts/storage.events";
@@ -8,28 +8,28 @@
8
8
  */
9
9
  export type IStorageAdapter<TType = unknown> = {
10
10
  /**
11
- * The <i>getMany</i> returns the value for the <i>keys</i> that are found otherwise null will be returned.
11
+ * The <i>get</i> returns the value of <i>keys</i> that are found otherwise null will be returned.
12
12
  */
13
- getMany<TKeys extends string>(keys: TKeys[]): PromiseLike<Record<TKeys, TType | null>>;
13
+ get(key: string): PromiseLike<TType | null>;
14
14
  /**
15
- * The <i>addMany</i> method adds the keys that doesn't exists. Returns true for the keys that doesn't exists otherwise false will be returned.
15
+ * The <i>add</i> method add a new <i>key</i>. Returns true if the <i>key</i> where added otherwise false will be returned.
16
16
  */
17
- addMany<TKeys extends string>(values: Record<TKeys, TType>): PromiseLike<Record<TKeys, boolean>>;
17
+ add(key: string, value: TType): PromiseLike<boolean>;
18
18
  /**
19
- * The <i>updateMany</i> method updates the given keys. Returns true for the keys that exists otherwise false will be returned.
19
+ * The <i>update</i> method updates a <i>key</i>. Returns true if the <i>key</i> where updated otherwise false will be returned.
20
20
  */
21
- updateMany<TKeys extends string>(values: Record<TKeys, TType>): PromiseLike<Record<TKeys, boolean>>;
21
+ update(key: string, value: TType): PromiseLike<boolean>;
22
22
  /**
23
- * The <i>putMany</i> method replaces the keys that are found. Adds keys that are not found. Returns true for all the keys that are found otherwise false is returned.
23
+ * The <i>put</i> method replaces a <i>key</i> that exists or adds <i>key</i> that do not exists. Return true if the <i>key</i> where updated otherwise false is returned.
24
24
  */
25
- putMany<TKeys extends string>(values: Record<TKeys, TType>): PromiseLike<Record<TKeys, boolean>>;
25
+ put(key: string, value: TType): PromiseLike<boolean>;
26
26
  /**
27
- * The <i>removesMany</i> method removes the keys that are found. Returns true for the keys that are found otherwise false is returned.
27
+ * The <i>remove</i> method removes a <i>key</i>. Returns true if the <i>key</i> is removed otherwise false is returned.
28
28
  */
29
- removeMany<TKeys extends string>(keys: TKeys[]): PromiseLike<Record<TKeys, boolean>>;
29
+ remove(key: string): PromiseLike<boolean>;
30
30
  /**
31
31
  * The <i>increment</i> method will increment the given <i>key</i> if found otherwise nonthing will occur.
32
- * Returns true if key exists otherwise false will be returned.
32
+ * Returns true if key is incremented otherwise false will be returned.
33
33
  * An error will thrown if the key is not a number.
34
34
  * @throws {TypeStorageError} {@link TypeStorageError}
35
35
  */
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @module Storage
3
+ */
4
+ import type { Validator } from "../../utilities/_module";
5
+ import type { INamespacedStorage } from "../../storage/contracts/storage.contract";
6
+ /**
7
+ * The <i>IStorageFactory</i> contract makes it easy to configure and switch between different <i>{@link INamespacedStorage}</i> dynamically.
8
+ * @group Contracts
9
+ */
10
+ export type IStorageFactory<TDrivers extends string = string, TType = unknown> = {
11
+ /**
12
+ * The <i>use</i> method will throw an error if you provide it unregisted driver.
13
+ * If no default driver is defined an error will be thrown by <i>use</i> method.
14
+ * @throws {UnregisteredDriverError} {@link UnregisteredDriverError}
15
+ * @throws {DefaultDriverNotDefinedError} {@link DefaultDriverNotDefinedError}
16
+ * @example
17
+ * ```ts
18
+ * import { type IStorageFactory } from "@daiso-tech/core";
19
+ *
20
+ * async function main(storageFactory: IStorageFactory): Promise<void> {
21
+ * // Will add key using the default driver which is the memory addapter
22
+ * await storageFactory
23
+ * .use()
24
+ * .add("a", 1);
25
+ * // Will add key using the redis addapter
26
+ * await storageFactory
27
+ * .use("redis")
28
+ * .add("a", 1);
29
+ * }
30
+ * ```
31
+ */
32
+ use(driverName?: TDrivers): INamespacedStorage<TType>;
33
+ /**
34
+ * The <i>withValidation</i> method is used to set a <i>validator</i>, which validates the storage values during runtime.
35
+ * The type is inferred from the provided <i>validator</i>.
36
+ * @example
37
+ * ```ts
38
+ * import { type IStorageFactory, zodValidator } from "@daiso-tech/core";
39
+ * import { z } from "zod"
40
+ *
41
+ * async function main(storageFactory: IStorageFactory): Promise<void> {
42
+ * await storageFactory
43
+ * .withValidation(zodValidator(z.string()))
44
+ * .use()
45
+ * // You will se an typescript error and get runtime erorr
46
+ * .add("a", 1);
47
+ * }
48
+ * ```
49
+ */
50
+ withValidation<TOutput extends TType = TType>(validator: Validator<TOutput>): IStorageFactory<TDrivers, TOutput>;
51
+ /**
52
+ * The <i>withTypes</i> method is used to set the value types of the storage.
53
+ * @example
54
+ * ```ts
55
+ * import { type IStorageFactory zodValidator } from "@daiso-tech/core";
56
+ *
57
+ * async function main(storageFactory: IStorageFactory): Promise<void> {
58
+ * await storageFactory
59
+ * .withTypes<string>()
60
+ * .use()
61
+ * // You will se an typescript error
62
+ * .add("a", 1)
63
+ * }
64
+ * ```
65
+ */
66
+ withType<TOutput extends TType = TType>(): IStorageFactory<TDrivers, TOutput>;
67
+ };
@@ -2,10 +2,10 @@
2
2
  * @module Storage
3
3
  */
4
4
  import type { IListenable } from "../../event-bus/contracts/_module";
5
- import { type AnyFunction, type AsyncLazyable, type GetOrAddValue } from "../../_shared/types";
5
+ import type { OneOrMore } from "../../_shared/types";
6
+ import { type AsyncLazyable, type GetOrAddValue } from "../../_shared/types";
6
7
  import type { AllStorageEvents } from "../../storage/contracts/_module";
7
- import type { LazyPromise } from "../../_module";
8
- export type StorageValue<T> = Exclude<T, AnyFunction | undefined | null>;
8
+ import type { LazyPromise } from "../../utilities/_module";
9
9
  /**
10
10
  * The <i>IStorageListenable</i> contract defines a way for listening <i>{@link IStorage}</i> crud operations.
11
11
  */
@@ -66,19 +66,19 @@ export type IStorage<TType = unknown> = IStorageListenable & {
66
66
  * The <i>add</i> method adds a <i>key</i> with given <i>value</i> when key doesn't exists. Returns true when key doesn't exists otherwise false will be returned.
67
67
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
68
68
  */
69
- add(key: string, value: StorageValue<TType>): LazyPromise<boolean>;
69
+ add(key: string, value: TType): LazyPromise<boolean>;
70
70
  /**
71
- * The <i>addMany</i> method adds the keys that doesn't exists. Returns true for the keys that doesn't exists otherwise false will be returned.
71
+ * The <i>addMany</i> method adds new keys. Returns true for the keys that where added otherwise false will be returned.
72
72
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
73
73
  */
74
- addMany<TKeys extends string>(values: Record<TKeys, StorageValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
74
+ addMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
75
75
  /**
76
76
  * The <i>update</i> method updates the given <i>key</i> with given <i>value</i>. Returns true when key otherwise false will be returned.
77
77
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
78
78
  */
79
79
  update(key: string, value: TType): LazyPromise<boolean>;
80
80
  /**
81
- * The <i>updateMany</i> method updates the given keys. Returns true for the keys that exists otherwise false will be returned.
81
+ * The <i>updateMany</i> method updates the given keys. Returns true for the keys that where updated otherwise false will be returned.
82
82
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
83
83
  */
84
84
  updateMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
@@ -86,19 +86,19 @@ export type IStorage<TType = unknown> = IStorageListenable & {
86
86
  * The <i>put</i> method replaces the key with given <i>value</i> if found. If the <i>key</i> is not found it will just be added. True is returned if the key is found otherwise false will be returned.
87
87
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
88
88
  */
89
- put(key: string, value: StorageValue<TType>): LazyPromise<boolean>;
89
+ put(key: string, value: TType): LazyPromise<boolean>;
90
90
  /**
91
- * The <i>putMany</i> method replaces the keys that are found. Adds keys that are not found. Returns true for all the keys that are found otherwise false is returned.
91
+ * The <i>putMany</i> method replaces the keys that exists. Adds keys that do not exists. Return true for all the keys that where updated otherwise false is returned.
92
92
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
93
93
  */
94
- putMany<TKeys extends string>(values: Record<TKeys, StorageValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
94
+ putMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
95
95
  /**
96
96
  * The <i>remove</i> method removes the given <i>key</i> when found. Returns true if the key is found otherwise false is returned.
97
97
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
98
98
  */
99
99
  remove(key: string): LazyPromise<boolean>;
100
100
  /**
101
- * The <i>removesMany</i> method removes the keys that are found. Returns true for the keys that are found otherwise false is returned.
101
+ * The <i>removeMany</i> method removes keys. Returns true for the keys that are removed otherwise false is returned.
102
102
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
103
103
  */
104
104
  removeMany<TKeys extends string>(keys: TKeys[]): LazyPromise<Record<TKeys, boolean>>;
@@ -111,10 +111,10 @@ export type IStorage<TType = unknown> = IStorageListenable & {
111
111
  * The <i>getOrAdd</i> method will retrieve the given <i>key</i> if found otherwise <i>valueToAdd</i> will be added and returned.
112
112
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
113
113
  */
114
- getOrAdd(key: string, valueToAdd: AsyncLazyable<StorageValue<GetOrAddValue<TType>>>): LazyPromise<TType>;
114
+ getOrAdd(key: string, valueToAdd: AsyncLazyable<GetOrAddValue<TType>>): LazyPromise<TType>;
115
115
  /**
116
116
  * The <i>increment</i> method will increment the given <i>key</i> if found otherwise nonthing will occur.
117
- * Returns true if key exists otherwise false will be returned.
117
+ * Returns true if key is incremented otherwise false will be returned.
118
118
  * An error will thrown if the key is not a number.
119
119
  * @throws {UnexpectedStorageError} {@link UnexpectedStorageError}
120
120
  * @throws {TypeStorageError} {@link TypeStorageError}
@@ -135,20 +135,20 @@ export type IStorage<TType = unknown> = IStorageListenable & {
135
135
  */
136
136
  clear(): LazyPromise<void>;
137
137
  /**
138
- * The <i>getNamespace</i> method return the complete namespace.
138
+ * The <i>getNamespace</i> method returns the complete namespace.
139
139
  * @example
140
140
  * ```ts
141
- * const storage = new Storage(new MemoryStorageAdapter(), {
142
- * rootNamespace: "@root/"
143
- * });
141
+ * import type { IStorage } from "@daiso-tech/core";
144
142
  *
145
- * // Will be "@root/"
143
+ * async function main(storage: IStorage) {
144
+ * // Will be "@root"
146
145
  * console.log(storage.getNamespace())
147
146
  *
148
- * const storageA = storage.withNamespace("a/");
147
+ * const storageA = storage.withNamespace("a");
149
148
  *
150
- * // Will be "@root/a/"
149
+ * // Will be "@root/a"
151
150
  * console.log(storageA.getNamespace())
151
+ * }
152
152
  * ```
153
153
  */
154
154
  getNamespace(): string;
@@ -164,11 +164,9 @@ export type INamespacedStorage<TType = unknown> = IStorage<TType> & {
164
164
  * This useful for multitennat applications.
165
165
  * @example
166
166
  * ```ts
167
- * import { Storage, MemoryStorageAdapter } from "@daiso-tech/core";
168
- *
169
- * (async () => {
170
- * const storage = new Storage(new MemoryStorageAdapter());
167
+ * import { type IStorage } from "@daiso-tech/core";
171
168
  *
169
+ * async function main(storage: IStorage): Promise<void> {
172
170
  * const storageA = storage.withNamespace("a");
173
171
  * await storageA.add("a", 1);
174
172
  *
@@ -177,9 +175,8 @@ export type INamespacedStorage<TType = unknown> = IStorage<TType> & {
177
175
  *
178
176
  * // Will print { a: 1, b: null }
179
177
  * console.log(await storageA.getMany(["a", "b"]));
180
- * })();
181
- *
178
+ * }
182
179
  * ```
183
180
  */
184
- withNamespace(namespace: string): IStorage<TType>;
181
+ withNamespace(namespace: OneOrMore<string>): IStorage<TType>;
185
182
  };