@daiso-tech/core 0.15.0 → 0.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/dist/cjs/_module.js +2 -2
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/async/_module.js +1 -1
  4. package/dist/cjs/async/_module.js.map +1 -1
  5. package/dist/cjs/async/backof-policies/_module.js +1 -0
  6. package/dist/cjs/async/backof-policies/_module.js.map +1 -1
  7. package/dist/cjs/async/utilities/_module.js +3 -0
  8. package/dist/cjs/async/utilities/_module.js.map +1 -1
  9. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +21 -12
  10. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  11. package/dist/cjs/cache/contracts/cache.events.js +168 -0
  12. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  13. package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
  14. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
  15. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  16. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  17. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +23 -2
  18. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +63 -20
  20. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  22. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  23. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
  24. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  25. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +30 -16
  26. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  28. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  29. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
  30. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  31. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +66 -39
  32. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  33. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  34. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  35. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
  36. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  37. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +78 -28
  38. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  39. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  40. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  41. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  42. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  43. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
  44. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  45. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +55 -23
  46. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  49. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
  50. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  51. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +31 -17
  52. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  53. package/dist/cjs/cache/implementations/derivables/_module.js +3 -2
  54. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  55. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +65 -0
  56. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  57. package/dist/cjs/cache/implementations/derivables/cache-factory.js +29 -18
  58. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  59. package/dist/cjs/cache/implementations/derivables/cache-settings.js +56 -0
  60. package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
  61. package/dist/cjs/cache/implementations/derivables/cache.js +334 -79
  62. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  63. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  64. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  65. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  66. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  67. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  68. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  69. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  70. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  71. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +62 -41
  72. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  73. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  74. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  75. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  76. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  77. package/dist/cjs/collection/implementations/list-collection/list-collection.js +13 -0
  78. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  79. package/dist/cjs/event-bus/contracts/_module.js +2 -2
  80. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  81. package/dist/cjs/event-bus/contracts/_shared.js +7 -0
  82. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  83. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +98 -38
  84. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  85. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +197 -125
  86. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  87. package/dist/cjs/event-bus/implementations/adapters/_module.js +1 -1
  88. package/dist/cjs/event-bus/implementations/adapters/_module.js.map +1 -1
  89. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  90. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  91. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
  92. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  93. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +29 -11
  94. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  95. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +9 -3
  96. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  97. package/dist/cjs/{serializer/implementations/_shared/test-utilities → event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter}/_module.js +2 -1
  98. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  99. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
  100. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  101. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +56 -0
  102. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  103. package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
  104. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
  105. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +59 -0
  106. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  107. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +28 -17
  108. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  109. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +56 -0
  110. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  111. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +106 -37
  112. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  113. package/dist/cjs/serde/contracts/_module.js +23 -0
  114. package/dist/cjs/serde/contracts/_module.js.map +1 -0
  115. package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
  116. package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
  117. package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
  118. package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
  119. package/dist/cjs/serde/contracts/serde.contract.js +3 -0
  120. package/dist/cjs/serde/contracts/serde.contract.js.map +1 -0
  121. package/dist/cjs/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +7 -7
  122. package/dist/cjs/serde/contracts/serde.errors.js.map +1 -0
  123. package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
  124. package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
  125. package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
  126. package/dist/cjs/{serializer → serde}/implementations/_module.js +6 -5
  127. package/dist/cjs/serde/implementations/_module.js.map +1 -0
  128. package/dist/cjs/{serializer/contracts → serde/implementations/_shared/test-utilities}/_module.js +2 -2
  129. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  130. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +53 -0
  131. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  132. package/dist/cjs/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +68 -93
  133. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  134. package/dist/cjs/{serializer/implementations/sql-serializer → serde/implementations/mongodb-serde}/_module.js +1 -1
  135. package/dist/cjs/serde/implementations/mongodb-serde/_module.js.map +1 -0
  136. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js +36 -0
  137. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  138. package/dist/cjs/{serializer/implementations/redis-serializer → serde/implementations/no-op-serde}/_module.js +1 -1
  139. package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
  140. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +16 -0
  141. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  142. package/dist/cjs/{serializer/implementations/mongodb-serializer → serde/implementations/redis-serde}/_module.js +1 -1
  143. package/dist/cjs/serde/implementations/redis-serde/_module.js.map +1 -0
  144. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js +37 -0
  145. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  146. package/dist/cjs/{event-bus/implementations/adapters/redis-event-bus-adapter → serde/implementations/sql-serde}/_module.js +1 -1
  147. package/dist/cjs/serde/implementations/sql-serde/_module.js.map +1 -0
  148. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js +37 -0
  149. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  150. package/dist/cjs/serde/implementations/super-json-serde/_module.js +18 -0
  151. package/dist/cjs/serde/implementations/super-json-serde/_module.js.map +1 -0
  152. package/dist/cjs/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +77 -100
  153. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  154. package/dist/cjs/utilities/contracts/_module.js +1 -0
  155. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  156. package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
  157. package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
  158. package/dist/cjs/utilities/errors.js +10 -10
  159. package/dist/cjs/utilities/errors.js.map +1 -1
  160. package/dist/cjs/utilities/functions.js +9 -5
  161. package/dist/cjs/utilities/functions.js.map +1 -1
  162. package/dist/cjs/utilities/time-span/time-span.js +8 -0
  163. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  164. package/dist/esm/_module.js +2 -2
  165. package/dist/esm/_module.js.map +1 -1
  166. package/dist/esm/async/_module.js +1 -1
  167. package/dist/esm/async/_module.js.map +1 -1
  168. package/dist/esm/async/backof-policies/_module.js +1 -0
  169. package/dist/esm/async/backof-policies/_module.js.map +1 -1
  170. package/dist/esm/async/utilities/_module.js +3 -0
  171. package/dist/esm/async/utilities/_module.js.map +1 -1
  172. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +21 -12
  173. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  174. package/dist/esm/cache/contracts/cache.events.js +158 -0
  175. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  176. package/dist/esm/cache/implementations/_shared/_module.js +1 -0
  177. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
  178. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  179. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  180. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +23 -2
  181. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  182. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +64 -21
  183. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  184. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  185. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  186. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
  187. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  188. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +29 -15
  189. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  190. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  191. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  192. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
  193. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  194. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +66 -39
  195. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  196. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  197. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  198. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
  199. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  200. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +78 -25
  201. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  202. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  203. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  204. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  205. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  206. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
  207. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  208. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +55 -23
  209. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  210. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  211. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  212. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
  213. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  214. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +29 -15
  215. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  216. package/dist/esm/cache/implementations/derivables/_module.js +3 -2
  217. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  218. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +61 -0
  219. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  220. package/dist/esm/cache/implementations/derivables/cache-factory.js +30 -19
  221. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  222. package/dist/esm/cache/implementations/derivables/cache-settings.js +52 -0
  223. package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
  224. package/dist/esm/cache/implementations/derivables/cache.js +333 -78
  225. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  226. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  227. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  228. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  229. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  230. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  231. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  232. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  233. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  234. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +62 -41
  235. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  236. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  237. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  238. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  239. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  240. package/dist/esm/collection/implementations/list-collection/list-collection.js +13 -0
  241. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  242. package/dist/esm/event-bus/contracts/_module.js +2 -2
  243. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  244. package/dist/esm/event-bus/contracts/_shared.js +5 -0
  245. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  246. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +96 -36
  247. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  248. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +195 -123
  249. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  250. package/dist/esm/event-bus/implementations/adapters/_module.js +1 -1
  251. package/dist/esm/event-bus/implementations/adapters/_module.js.map +1 -1
  252. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  253. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  254. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
  255. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  256. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +29 -11
  257. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  258. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +9 -3
  259. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  260. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +3 -0
  261. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  262. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
  263. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  264. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +52 -0
  265. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  266. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
  267. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
  268. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +55 -0
  269. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  270. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +29 -18
  271. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  272. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +52 -0
  273. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  274. package/dist/esm/event-bus/implementations/derivables/event-bus.js +108 -39
  275. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  276. package/dist/esm/serde/contracts/_module.js +7 -0
  277. package/dist/esm/serde/contracts/_module.js.map +1 -0
  278. package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
  279. package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
  280. package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
  281. package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
  282. package/dist/esm/serde/contracts/serde.contract.js +1 -0
  283. package/dist/esm/serde/contracts/serde.contract.js.map +1 -0
  284. package/dist/esm/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +5 -5
  285. package/dist/esm/serde/contracts/serde.errors.js.map +1 -0
  286. package/dist/esm/serde/contracts/serializable.contract.js +1 -0
  287. package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
  288. package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
  289. package/dist/esm/serde/implementations/_module.js +7 -0
  290. package/dist/esm/serde/implementations/_module.js.map +1 -0
  291. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +3 -0
  292. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  293. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +50 -0
  294. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  295. package/dist/esm/{serializer/implementations/_shared/test-utilities/serializer.test-suite.js → serde/implementations/_shared/test-utilities/serde.test-suite.js} +67 -92
  296. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  297. package/dist/esm/serde/implementations/mongodb-serde/_module.js +2 -0
  298. package/dist/esm/serde/implementations/mongodb-serde/_module.js.map +1 -0
  299. package/dist/esm/{serializer/implementations/mongodb-serializer/mongodb-serializer.js → serde/implementations/mongodb-serde/mongodb-serde.js} +10 -10
  300. package/dist/esm/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  301. package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
  302. package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
  303. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +12 -0
  304. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  305. package/dist/esm/serde/implementations/redis-serde/_module.js +2 -0
  306. package/dist/esm/serde/implementations/redis-serde/_module.js.map +1 -0
  307. package/dist/esm/{serializer/implementations/sql-serializer/sql-serializer.js → serde/implementations/redis-serde/redis-serde.js} +10 -10
  308. package/dist/esm/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  309. package/dist/esm/serde/implementations/sql-serde/_module.js +2 -0
  310. package/dist/esm/serde/implementations/sql-serde/_module.js.map +1 -0
  311. package/dist/esm/{serializer/implementations/redis-serializer/redis-serializer.js → serde/implementations/sql-serde/sql-serde.js} +10 -10
  312. package/dist/esm/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  313. package/dist/esm/serde/implementations/super-json-serde/_module.js +2 -0
  314. package/dist/esm/serde/implementations/super-json-serde/_module.js.map +1 -0
  315. package/dist/esm/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +55 -55
  316. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  317. package/dist/esm/utilities/contracts/_module.js +1 -0
  318. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  319. package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
  320. package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
  321. package/dist/esm/utilities/errors.js +7 -7
  322. package/dist/esm/utilities/errors.js.map +1 -1
  323. package/dist/esm/utilities/functions.js +7 -4
  324. package/dist/esm/utilities/functions.js.map +1 -1
  325. package/dist/esm/utilities/time-span/time-span.js +8 -0
  326. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  327. package/dist/types/_module.d.ts +2 -2
  328. package/dist/types/async/_module.d.ts +1 -1
  329. package/dist/types/async/backof-policies/_module.d.ts +1 -1
  330. package/dist/types/async/utilities/_module.d.ts +3 -0
  331. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +66 -39
  332. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +20 -6
  333. package/dist/types/cache/contracts/cache-factory.contract.d.ts +12 -25
  334. package/dist/types/cache/contracts/cache.contract.d.ts +382 -22
  335. package/dist/types/cache/contracts/cache.events.d.ts +156 -42
  336. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  337. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +21 -12
  338. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +21 -15
  339. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +15 -8
  340. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
  341. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
  342. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +54 -36
  343. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  344. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
  345. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +50 -20
  346. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
  347. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
  348. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +66 -41
  349. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +6 -3
  350. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  351. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
  352. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +51 -29
  353. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  354. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
  355. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +54 -34
  356. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -2
  357. package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +77 -0
  358. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +59 -45
  359. package/dist/types/cache/implementations/derivables/cache-settings.d.ts +68 -0
  360. package/dist/types/cache/implementations/derivables/cache.d.ts +83 -62
  361. package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
  362. package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
  363. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.d.ts +4 -5
  364. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
  365. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +194 -3
  366. package/dist/types/collection/implementations/iterable-collection/_shared/merge-iterable.d.ts +4 -5
  367. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +141 -1
  368. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +141 -1
  369. package/dist/types/event-bus/contracts/_module.d.ts +2 -2
  370. package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
  371. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +9 -8
  372. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +38 -32
  373. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +52 -37
  374. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +22 -10
  375. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +16 -13
  376. package/dist/types/event-bus/implementations/adapters/_module.d.ts +1 -1
  377. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
  378. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
  379. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +53 -22
  380. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +7 -4
  381. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -0
  382. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
  383. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +62 -0
  384. package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
  385. package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +70 -0
  386. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +40 -24
  387. package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +58 -0
  388. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +31 -45
  389. package/dist/types/serde/contracts/_module.d.ts +6 -0
  390. package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
  391. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +56 -0
  392. package/dist/types/serde/contracts/serde.contract.d.ts +10 -0
  393. package/dist/types/{serializer/contracts/serializer.errors.d.ts → serde/contracts/serde.errors.d.ts} +4 -4
  394. package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
  395. package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
  396. package/dist/types/serde/implementations/_module.d.ts +6 -0
  397. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +2 -0
  398. package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
  399. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +17 -0
  400. package/dist/types/serde/implementations/mongodb-serde/_module.d.ts +1 -0
  401. package/dist/types/serde/implementations/mongodb-serde/mongodb-serde.d.ts +13 -0
  402. package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
  403. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +13 -0
  404. package/dist/types/serde/implementations/redis-serde/_module.d.ts +1 -0
  405. package/dist/types/serde/implementations/redis-serde/redis-serde.d.ts +13 -0
  406. package/dist/types/serde/implementations/sql-serde/_module.d.ts +1 -0
  407. package/dist/types/serde/implementations/sql-serde/sql-serde.d.ts +13 -0
  408. package/dist/types/serde/implementations/super-json-serde/_module.d.ts +1 -0
  409. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +25 -0
  410. package/dist/types/utilities/contracts/_module.d.ts +1 -0
  411. package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
  412. package/dist/types/utilities/errors.d.ts +3 -3
  413. package/dist/types/utilities/functions.d.ts +5 -1
  414. package/dist/types/utilities/time-span/time-span.d.ts +10 -1
  415. package/dist/types/utilities/types.d.ts +0 -1
  416. package/package.json +3 -9
  417. package/dist/cjs/cache/implementations/derivables/base-cache.js +0 -270
  418. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +0 -1
  419. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  420. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -44
  421. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  422. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js +0 -47
  423. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  424. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -42
  425. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  426. package/dist/cjs/serializer/contracts/_module.js.map +0 -1
  427. package/dist/cjs/serializer/contracts/serializer.contract.js.map +0 -1
  428. package/dist/cjs/serializer/contracts/serializer.errors.js.map +0 -1
  429. package/dist/cjs/serializer/implementations/_module.js.map +0 -1
  430. package/dist/cjs/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  431. package/dist/cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  432. package/dist/cjs/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  433. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +0 -36
  434. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  435. package/dist/cjs/serializer/implementations/redis-serializer/_module.js.map +0 -1
  436. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +0 -37
  437. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  438. package/dist/cjs/serializer/implementations/sql-serializer/_module.js.map +0 -1
  439. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +0 -37
  440. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  441. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js +0 -18
  442. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  443. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  444. package/dist/esm/cache/implementations/derivables/base-cache.js +0 -266
  445. package/dist/esm/cache/implementations/derivables/base-cache.js.map +0 -1
  446. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js +0 -2
  447. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  448. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -40
  449. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  450. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js +0 -43
  451. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  452. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -38
  453. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  454. package/dist/esm/serializer/contracts/_module.js +0 -3
  455. package/dist/esm/serializer/contracts/_module.js.map +0 -1
  456. package/dist/esm/serializer/contracts/serializer.contract.js.map +0 -1
  457. package/dist/esm/serializer/contracts/serializer.errors.js.map +0 -1
  458. package/dist/esm/serializer/implementations/_module.js +0 -6
  459. package/dist/esm/serializer/implementations/_module.js.map +0 -1
  460. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js +0 -2
  461. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  462. package/dist/esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  463. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js +0 -2
  464. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  465. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  466. package/dist/esm/serializer/implementations/redis-serializer/_module.js +0 -2
  467. package/dist/esm/serializer/implementations/redis-serializer/_module.js.map +0 -1
  468. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  469. package/dist/esm/serializer/implementations/sql-serializer/_module.js +0 -2
  470. package/dist/esm/serializer/implementations/sql-serializer/_module.js.map +0 -1
  471. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  472. package/dist/esm/serializer/implementations/super-json-serializer/_module.js +0 -2
  473. package/dist/esm/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  474. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  475. package/dist/types/cache/implementations/derivables/base-cache.d.ts +0 -58
  476. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/_module.d.ts +0 -1
  477. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.d.ts +0 -43
  478. package/dist/types/event-bus/implementations/derivables/base-event-bus.d.ts +0 -23
  479. package/dist/types/event-bus/implementations/derivables/with-namespace-event-bus-adapter.d.ts +0 -16
  480. package/dist/types/serializer/contracts/_module.d.ts +0 -2
  481. package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -16
  482. package/dist/types/serializer/implementations/_module.d.ts +0 -5
  483. package/dist/types/serializer/implementations/_shared/test-utilities/_module.d.ts +0 -1
  484. package/dist/types/serializer/implementations/_shared/test-utilities/serializer.test-suite.d.ts +0 -18
  485. package/dist/types/serializer/implementations/mongodb-serializer/_module.d.ts +0 -1
  486. package/dist/types/serializer/implementations/mongodb-serializer/mongodb-serializer.d.ts +0 -13
  487. package/dist/types/serializer/implementations/redis-serializer/_module.d.ts +0 -1
  488. package/dist/types/serializer/implementations/redis-serializer/redis-serializer.d.ts +0 -13
  489. package/dist/types/serializer/implementations/sql-serializer/_module.d.ts +0 -1
  490. package/dist/types/serializer/implementations/sql-serializer/sql-serializer.d.ts +0 -13
  491. package/dist/types/serializer/implementations/super-json-serializer/_module.d.ts +0 -1
  492. package/dist/types/serializer/implementations/super-json-serializer/super-json-serializer.d.ts +0 -37
  493. /package/dist/cjs/{serializer → serde}/contracts/serializer.contract.js +0 -0
  494. /package/dist/esm/{serializer → serde}/contracts/serializer.contract.js +0 -0
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { BaseEvent, IEventBusAdapter, Listener } from "../../../../event-bus/contracts/_module";
5
+ import type { OneOrMore } from "../../../../utilities/_module";
6
+ import type { RedisPubSubEventBusAdapterSettings } from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings";
7
+ import { RedisPubSubEventBusAdapterSettingsBuilder } from "../../../../event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings";
8
+ /**
9
+ * To utilize the <i>RedisPubSubEventBusAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
10
+ * @group Adapters
11
+ */
12
+ export declare class RedisPubSubEventBusAdapter implements IEventBusAdapter {
13
+ /**
14
+ * @example
15
+ * ```ts
16
+ * import { RedisPubSubEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
17
+ * import Redis from "ioredis";
18
+ *
19
+ * const cacheAdapter = new RedisPubSubEventBusAdapter(
20
+ * RedisPubSubEventBusAdapter
21
+ * .settings()
22
+ * .setDispatcherClient(new Redis("YOUR REDIS CONNECTION"))
23
+ * .setListenerClient(new Redis("YOUR REDIS CONNECTION"))
24
+ * .setSerde(new SuperJsonSerde())
25
+ * .setRootGroup("@global")
26
+ * .build()
27
+ * );
28
+ * ```
29
+ */
30
+ static settings<TSettings extends Partial<RedisPubSubEventBusAdapterSettings>>(): RedisPubSubEventBusAdapterSettingsBuilder<TSettings>;
31
+ private readonly group;
32
+ private readonly baseSerde;
33
+ private readonly redisSerde;
34
+ private readonly dispatcherClient;
35
+ private readonly listenerClient;
36
+ private readonly eventEmitter;
37
+ /**
38
+ * @example
39
+ * ```ts
40
+ * import { RedisPubSubEventBusAdapter, SuperJsonSerde } from "@daiso-tech/core";
41
+ * import Redis from "ioredis";
42
+ *
43
+ * const dispatcherClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
44
+ * const listenerClient = new Redis("YOUR_REDIS_CONNECTION_STRING");
45
+ * const serde = new SuperJsonSerde();
46
+ * const eventBusAdapter = new RedisPubSubEventBusAdapter({
47
+ * dispatcherClient,
48
+ * listenerClient,
49
+ * serde,
50
+ * rootGroup: "@global"
51
+ * });
52
+ * ```
53
+ */
54
+ constructor({ dispatcherClient, listenerClient, serde, rootGroup, }: RedisPubSubEventBusAdapterSettings);
55
+ getGroup(): string;
56
+ withGroup(group: OneOrMore<string>): IEventBusAdapter;
57
+ private withPrefix;
58
+ private redisListener;
59
+ addListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
60
+ removeListener(eventName: string, listener: Listener<BaseEvent>): Promise<void>;
61
+ dispatch(eventName: string, eventData: BaseEvent): Promise<void>;
62
+ }
@@ -1,2 +1,4 @@
1
- export * from "../../../event-bus/implementations/derivables/event-bus";
1
+ export * from "../../../event-bus/implementations/derivables/event-bus-factory-settings";
2
2
  export * from "../../../event-bus/implementations/derivables/event-bus-factory";
3
+ export * from "../../../event-bus/implementations/derivables/event-bus-settings";
4
+ export * from "../../../event-bus/implementations/derivables/event-bus";
@@ -0,0 +1,70 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
5
+ import type { IGroupableEventBus, IEventBusAdapter } from "../../../event-bus/contracts/_module";
6
+ import type { TimeSpan } from "../../../utilities/_module";
7
+ /**
8
+ * @group Derivables
9
+ */
10
+ export type EventBusAdapters<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
11
+ /**
12
+ * The <i>EventBusFactorySettings</i> is an immutable builder class, meaning that each method invocation creates a new instance.
13
+ * @group Derivables
14
+ */
15
+ export type EventBusFactorySettings<TAdapters extends string = string> = {
16
+ adapters: EventBusAdapters<TAdapters>;
17
+ defaultAdapter?: NoInfer<TAdapters>;
18
+ /**
19
+ * In order to listen to events of <i>{@link Cache}</i> class you must pass in <i>{@link IGroupableEventBus}</i>.
20
+ */
21
+ eventBus?: IGroupableEventBus<any>;
22
+ /**
23
+ * The default retry attempt to use in the returned <i>LazyPromise</i>.
24
+ */
25
+ retryAttempts?: number | null;
26
+ /**
27
+ * The default backof policy to use in the returned <i>LazyPromise</i>.
28
+ */
29
+ backoffPolicy?: BackoffPolicy | null;
30
+ /**
31
+ * The default retry policy to use in the returned <i>LazyPromise</i>.
32
+ */
33
+ retryPolicy?: RetryPolicy | null;
34
+ /**
35
+ * The default timeout to use in the returned <i>LazyPromise</i>.
36
+ */
37
+ timeout?: TimeSpan | null;
38
+ };
39
+ /**
40
+ * The <i>EventBusFactorySettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
41
+ * @group Derivables
42
+ */
43
+ export declare class EventBusFactorySettingsBuilder<TSettings extends EventBusFactorySettings> {
44
+ private readonly settings;
45
+ constructor(settings?: TSettings);
46
+ setEventBus(eventBus: IGroupableEventBus<any>): EventBusFactorySettingsBuilder<TSettings & {
47
+ eventBus: IGroupableEventBus<any>;
48
+ }>;
49
+ setRetryAttempts(attempts: number | null): EventBusFactorySettingsBuilder<TSettings & {
50
+ retryAttempts: number | null;
51
+ }>;
52
+ setBackoffPolicy(policy: BackoffPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
53
+ backoffPolicy: BackoffPolicy | null;
54
+ }>;
55
+ setRetryPolicy(policy: RetryPolicy | null): EventBusFactorySettingsBuilder<TSettings & {
56
+ retryPolicy: RetryPolicy | null;
57
+ }>;
58
+ setTimeout(time: TimeSpan | null): EventBusFactorySettingsBuilder<TSettings & {
59
+ timeout: TimeSpan | null;
60
+ }>;
61
+ setAdapter<TName extends string>(name: TName, adapter: IEventBusAdapter): EventBusFactorySettingsBuilder<TSettings & {
62
+ adapters: {
63
+ readonly [x: string]: IEventBusAdapter | undefined;
64
+ };
65
+ }>;
66
+ setDefaultAdapter(adapter: string): EventBusFactorySettingsBuilder<TSettings & {
67
+ defaultAdapter: string;
68
+ }>;
69
+ build(this: EventBusFactorySettingsBuilder<EventBusFactorySettings>): EventBusFactorySettings;
70
+ }
@@ -1,19 +1,8 @@
1
1
  /**
2
2
  * @module EventBus
3
3
  */
4
- import type { INamespacedEventBus, IEventBusAdapter, IEventBusFactory, BaseEvents } from "../../../event-bus/contracts/_module";
5
- /**
6
- * @group Derivables
7
- */
8
- export type EventBusDrivers<TAdapters extends string = string> = Partial<Record<TAdapters, IEventBusAdapter>>;
9
- /**
10
- * @group Derivables
11
- */
12
- export type EventBusFactorySettings<TAdapters extends string = string> = {
13
- drivers: EventBusDrivers<TAdapters>;
14
- defaultDriver?: NoInfer<TAdapters>;
15
- rootNamespace?: string;
16
- };
4
+ import type { IGroupableEventBus, IEventBusFactory, BaseEvent } from "../../../event-bus/contracts/_module";
5
+ import { type EventBusFactorySettings, EventBusFactorySettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-factory-settings";
17
6
  /**
18
7
  * @group Derivables
19
8
  * @example
@@ -22,23 +11,50 @@ export type EventBusFactorySettings<TAdapters extends string = string> = {
22
11
  * import Redis from "ioredis"
23
12
  *
24
13
  * const eventBusFactory = new EventBusFactory({
25
- * drivers: {
26
- * memory: new MemoryEventBusAdapter(),
27
- * redis: new RedisEventBusAdapter({
14
+ * adapters: {
15
+ * memory: new MemoryEventBusAdapter({ rootGroup: "@global" }),
16
+ * redis: new RedisPubSubEventBusAdapter({
28
17
  * dispatcherClient: new Redis(),
29
18
  * listenerClient: new Redis(),
19
+ * serde: new SuperJsonSerde(),
20
+ * rootGroup: "@global"
30
21
  * }),
31
22
  * },
32
- * defaultDriver: "memory",
33
- * rootNamespace: "@events"
23
+ * defaultAdapter: "memory",
34
24
  * });
35
25
  * ```
36
26
  */
37
- export declare class EventBusFactory<TAdapters extends string = string, TEvents extends BaseEvents = BaseEvents> implements IEventBusFactory<TAdapters, TEvents> {
38
- private readonly drivers;
39
- private readonly defaultDriver?;
40
- private readonly rootNamespace?;
27
+ export declare class EventBusFactory<TAdapters extends string = string> implements IEventBusFactory<TAdapters> {
28
+ /**
29
+ * @example
30
+ * ```ts
31
+ * import { EventBusFactory, SuperJsonSerde. MemoryEventBusAdapter, RedisPubSubEventBusAdapter, EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
32
+ * import Redis from "ioredis";
33
+ *
34
+ * const cacheFactory = new EventBusFactory(
35
+ * EventBusFactory
36
+ * .settings()
37
+ * .setAdapter("memory", new MemoryEventBusAdapter({
38
+ * rootGroup: "@global"
39
+ * }))
40
+ * .setAdapter("redis", new RedisPubSubEventBusAdapter({
41
+ * dispatcherClient: new Redis("YOUR_REDIS_CONNECTION"),
42
+ * listenerClient: new Redis("YOUR_REDIS_CONNECTION")
43
+ * serde: new SuperJsonSerde(),
44
+ * rootGroup: "@global"
45
+ * }))
46
+ * .setDefaultAdapter("memory")
47
+ * .build()
48
+ * );
49
+ * ```
50
+ */
51
+ static settings<TAdapters extends string, TSettings extends EventBusFactorySettings<TAdapters>>(): EventBusFactorySettingsBuilder<TSettings>;
52
+ private readonly adapters;
53
+ private readonly defaultAdapter?;
54
+ private readonly retryAttempts?;
55
+ private readonly backoffPolicy?;
56
+ private readonly retryPolicy?;
57
+ private readonly timeout?;
41
58
  constructor(settings: EventBusFactorySettings<TAdapters>);
42
- use(driverName?: TAdapters | undefined): INamespacedEventBus<TEvents>;
43
- withType<TOutput extends BaseEvents = TEvents>(): IEventBusFactory<TAdapters, TOutput>;
59
+ use<TEvents extends BaseEvent = BaseEvent>(adapterName?: TAdapters | undefined): IGroupableEventBus<TEvents>;
44
60
  }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { BackoffPolicy, RetryPolicy } from "../../../async/_module";
5
+ import { type IGroupableEventBus, type IEventBusAdapter } from "../../../event-bus/contracts/_module";
6
+ import type { IBuildable, TimeSpan } from "../../../utilities/_module";
7
+ /**
8
+ * @group Derivables
9
+ */
10
+ export type EventBusSettings = {
11
+ adapter: IEventBusAdapter;
12
+ /**
13
+ * The default retry attempt to use in the returned <i>LazyPromise</i>.
14
+ */
15
+ retryAttempts?: number | null;
16
+ /**
17
+ * The default backof policy to use in the returned <i>LazyPromise</i>.
18
+ */
19
+ backoffPolicy?: BackoffPolicy | null;
20
+ /**
21
+ * The default retry policy to use in the returned <i>LazyPromise</i>.
22
+ */
23
+ retryPolicy?: RetryPolicy | null;
24
+ /**
25
+ * The default timeout to use in the returned <i>LazyPromise</i>.
26
+ */
27
+ timeout?: TimeSpan | null;
28
+ };
29
+ /**
30
+ * The <i>EventBusSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
31
+ * @group Derivables
32
+ */
33
+ export declare class EventBusSettingsBuilder<TSettings extends Partial<EventBusSettings>> implements IBuildable<EventBusSettings> {
34
+ private readonly settings;
35
+ constructor(settings?: TSettings);
36
+ setAdapter(adapter: IEventBusAdapter): EventBusSettingsBuilder<TSettings & {
37
+ adapter: IEventBusAdapter;
38
+ }>;
39
+ setEventBus(eventBus: IGroupableEventBus<any>): EventBusSettingsBuilder<TSettings & {
40
+ eventBus: IGroupableEventBus<any>;
41
+ }>;
42
+ setDefultTtl(time: TimeSpan): EventBusSettingsBuilder<TSettings & {
43
+ defaultTtl: TimeSpan;
44
+ }>;
45
+ setRetryAttempts(attempts: number | null): EventBusSettingsBuilder<TSettings & {
46
+ retryAttempts: number | null;
47
+ }>;
48
+ setBackoffPolicy(policy: BackoffPolicy | null): EventBusSettingsBuilder<TSettings & {
49
+ backoffPolicy: BackoffPolicy | null;
50
+ }>;
51
+ setRetryPolicy(policy: RetryPolicy | null): EventBusSettingsBuilder<TSettings & {
52
+ retryPolicy: RetryPolicy | null;
53
+ }>;
54
+ setTimeout(time: TimeSpan | null): EventBusSettingsBuilder<TSettings & {
55
+ timeout: TimeSpan | null;
56
+ }>;
57
+ build(this: EventBusSettingsBuilder<EventBusSettings>): EventBusSettings;
58
+ }
@@ -2,60 +2,46 @@
2
2
  * @module EventBus
3
3
  */
4
4
  import { LazyPromise } from "../../../async/_module";
5
- import type { SelectEvent, AllEvents, BaseEvents } from "../../../event-bus/contracts/_module";
6
- import { type IEventBus, type INamespacedEventBus, type IEventBusAdapter, type Listener } from "../../../event-bus/contracts/_module";
5
+ import type { EventClass, EventInstance, Unsubscribe } from "../../../event-bus/contracts/_module";
6
+ import { type IEventBus, type IGroupableEventBus, type Listener, type BaseEvent } from "../../../event-bus/contracts/_module";
7
7
  import type { OneOrMore } from "../../../utilities/_module";
8
- import { BaseEventBus } from "../../../event-bus/implementations/derivables/base-event-bus";
8
+ import type { EventBusSettings } from "../../../event-bus/implementations/derivables/event-bus-settings";
9
+ import { EventBusSettingsBuilder } from "../../../event-bus/implementations/derivables/event-bus-settings";
9
10
  /**
11
+ * <i>EventBus</i> class can be derived from any <i>{@link IEventBusAdapter}</i>.
10
12
  * @group Derivables
11
13
  */
12
- export type EventBusSettings = {
14
+ export declare class EventBus<TEvents extends BaseEvent = BaseEvent> implements IGroupableEventBus<TEvents> {
13
15
  /**
14
- * You can prefix all keys with a given <i>namespace</i>.
15
- * This useful if you want to add multitenancy but still use the same database.
16
- * @default {""}
17
16
  * @example
18
17
  * ```ts
19
18
  * import { EventBus, MemoryEventBusAdapter } from "@daiso-tech/core";
20
19
  *
21
- * const memoryEventBusAdapter = new MemoryEventBusAdapter();
22
- * const eventBusA = new EventBus(memoryEventBusAdapter, {
23
- * rootNamespace: "@a"
24
- * });
25
- * const eventBusB = new EventBus(memoryEventBusAdapter, {
26
- * rootNamespace: "@b"
27
- * });
28
- *
29
- * (async () => {
30
- * eventBusB.addListener("add", event => {
31
- * // This will never be logged because eventBusB has different namespace
32
- * console.log("eventBusB:", event);
33
- * });
34
- *
35
- * eventBusB.addListener("add", event => {
36
- * // This will be logged
37
- * console.log("eventBusB:", event);
38
- * });
39
- *
40
- * await eventBusA.dispatch([
41
- * { type: "add", a: 1, b: 2 }
42
- * ]);
43
- * })();
20
+ * const cache = new EventBus(
21
+ * EventBus
22
+ * .settings()
23
+ * .setAdapter(new MemoryEventBusAdapter({ rootGroup: "@global" }))
24
+ * .build()
25
+ * );
44
26
  * ```
45
27
  */
46
- rootNamespace?: OneOrMore<string>;
47
- };
48
- /**
49
- * <i>EventBus</i> class can be derived from any <i>{@link IEventBusAdapter}</i>.
50
- * @group Derivables
51
- */
52
- export declare class EventBus<TEvents extends BaseEvents = BaseEvents> extends BaseEventBus<TEvents> implements INamespacedEventBus<TEvents> {
53
- private readonly eventBusAdapter;
54
- private readonly namespace;
55
- constructor(eventBusAdapter: IEventBusAdapter, settings?: EventBusSettings);
56
- withNamespace(namespace: OneOrMore<string>): IEventBus<TEvents>;
57
- getNamespace(): string;
58
- addListener<TEventName extends keyof TEvents>(eventName: TEventName, listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
59
- removeListener<TEventName extends keyof TEvents>(eventName: TEventName, listener: Listener<SelectEvent<TEvents, TEventName>>): LazyPromise<void>;
60
- dispatch(events: OneOrMore<AllEvents<TEvents>>): LazyPromise<void>;
28
+ static settings<TSettings extends Partial<EventBusSettings>>(): EventBusSettingsBuilder<TSettings>;
29
+ private readonly adapter;
30
+ private readonly retryAttempts;
31
+ private readonly backoffPolicy;
32
+ private readonly retryPolicy;
33
+ private readonly timeout;
34
+ constructor(settings: EventBusSettings);
35
+ private createLayPromise;
36
+ withGroup(group: OneOrMore<string>): IEventBus<TEvents>;
37
+ getGroup(): string;
38
+ addListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
39
+ removeListener<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
40
+ addListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
41
+ removeListenerMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
42
+ listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<void>;
43
+ subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
44
+ subscribeMany<TEventClass extends EventClass<TEvents>>(events: TEventClass[], listener: Listener<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
45
+ dispatchMany(events: TEvents[]): LazyPromise<void>;
46
+ dispatch(event: TEvents): LazyPromise<void>;
61
47
  }
@@ -0,0 +1,6 @@
1
+ export * from "../../serde/contracts/deserializer.contract";
2
+ export * from "../../serde/contracts/flexible-serde.contract";
3
+ export * from "../../serde/contracts/serde.contract";
4
+ export * from "../../serde/contracts/serde.errors";
5
+ export * from "../../serde/contracts/serializable.contract";
6
+ export * from "../../serde/contracts/serializer.contract";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ /**
5
+ * The <i>IDeserializer</i> contract defines a standard way to deserialize plain data, excluding support for custom classes.
6
+ * @group Contracts
7
+ */
8
+ export type IDeserializer<TSerializedValue = unknown> = {
9
+ /**
10
+ * @throws {DeserializationError} {@link DeserializationError}
11
+ */
12
+ deserialize<TValue>(serializedValue: TSerializedValue): TValue;
13
+ };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import type { ISerializable } from "../../serde/contracts/serializable.contract";
5
+ import type { ISerde } from "../../serde/contracts/serde.contract";
6
+ /**
7
+ * The <i>SerializableClass</i> contract defines standard way to make a class instance serializable and deserializable.
8
+ * @group Contracts
9
+ */
10
+ export type SerializableClass<TSerializedValue> = {
11
+ new (...arguments_: any[]): ISerializable<TSerializedValue>;
12
+ deserialize(serializedValue: TSerializedValue): ISerializable<TSerializedValue>;
13
+ };
14
+ /**
15
+ * The <i>IFlexibleSerde</i> contract defines a standard way to serialize and deserialize both plain data and custom classes.
16
+ * @group Contracts
17
+ */
18
+ export type IFlexibleSerde<TSerializedValue = unknown> = ISerde<TSerializedValue> & {
19
+ /**
20
+ * The <i>registerClass</i> method is used for registering custom class for serialization and deserialization.
21
+ * The <i>class_</i> parameter must be of type <i>{@link SerializableClass}</i>.
22
+ * @example
23
+ * ```ts
24
+ * import type { IFlexibleSerde } from "@daiso-tech/core";
25
+ *
26
+ * type SerializedUser = {
27
+ * name: string;
28
+ * age: number;
29
+ * };
30
+ *
31
+ * class User implements ISerializable<SerializedUser> {
32
+ * static deserialize(serializedUser: SerializedUser): User {
33
+ * return new User(serializedUser.name, serializedUser.age);
34
+ * }
35
+ *
36
+ * constructor(public readonly name: string, public readonly age: number) {}
37
+ *
38
+ * getInfo(): string {
39
+ * return `name: ${this.name}, age: ${this.age}`;
40
+ * }
41
+ * }
42
+ *
43
+ * function main(serde: IFlexibleSerde) {
44
+ * // You must register the class before trying to serialize or deserialize it.
45
+ * serde.registerClass(User);
46
+ *
47
+ * const user = serde.deserialize(serde.serialize(new User("Jacob", 50)));
48
+ *
49
+ * console.log(user.getInfo());
50
+ * // "name: Jacob, age: 50"
51
+ * }
52
+ *
53
+ * ```
54
+ */
55
+ registerClass<TSerializedClassInstance>(class_: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
56
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import type { ISerializer } from "../../serde/contracts/serializer.contract";
5
+ import type { IDeserializer } from "../../serde/contracts/deserializer.contract";
6
+ /**
7
+ * The <i>ISerde</i> contract defines a standard way to serialize and deserialize plain data, excluding support for custom classes.
8
+ * @group Contracts
9
+ */
10
+ export type ISerde<TSerializedValue = unknown> = ISerializer<TSerializedValue> & IDeserializer<TSerializedValue>;
@@ -1,21 +1,21 @@
1
1
  /**
2
- * @module Serializer
2
+ * @module Serde
3
3
  */
4
4
  /**
5
5
  * @group Errors
6
6
  */
7
- export declare class SerializerError extends Error {
7
+ export declare class SerdeError extends Error {
8
8
  constructor(message: string, cause?: unknown);
9
9
  }
10
10
  /**
11
11
  * @group Errors
12
12
  */
13
- export declare class SerializationError extends SerializerError {
13
+ export declare class SerializationError extends SerdeError {
14
14
  constructor(message: string, cause?: unknown);
15
15
  }
16
16
  /**
17
17
  * @group Errors
18
18
  */
19
- export declare class DeserializationError extends SerializerError {
19
+ export declare class DeserializationError extends SerdeError {
20
20
  constructor(message: string, cause?: unknown);
21
21
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ /**
5
+ * The <i>ISerializable</i> contract defines standard way to make a class instance serializable.
6
+ * @group Contracts
7
+ */
8
+ export type ISerializable<TSerializedValue> = {
9
+ serialize(): TSerializedValue;
10
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The <i>ISerializer</i> contract defines a standard way to serialize plain data, excluding support for custom classes.
3
+ * @group Contracts
4
+ */
5
+ export type ISerializer<TSerializedValue = unknown> = {
6
+ /**
7
+ * @throws {SerializationError} {@link SerializationError}
8
+ */
9
+ serialize<TValue>(value: TValue): TSerializedValue;
10
+ };
@@ -0,0 +1,6 @@
1
+ export * from "../../serde/implementations/_shared/test-utilities/_module";
2
+ export * from "../../serde/implementations/mongodb-serde/_module";
3
+ export * from "../../serde/implementations/redis-serde/_module";
4
+ export * from "../../serde/implementations/sql-serde/_module";
5
+ export * from "../../serde/implementations/super-json-serde/_module";
6
+ export * from "../../serde/implementations/no-op-serde/_module";
@@ -0,0 +1,2 @@
1
+ export * from "../../../../serde/implementations/_shared/test-utilities/serde.test-suite";
2
+ export * from "../../../../serde/implementations/_shared/test-utilities/flexible-serde.test-suite";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import { type TestAPI, type ExpectStatic } from "vitest";
5
+ import type { IFlexibleSerde } from "../../../../serde/contracts/_module";
6
+ /**
7
+ * @group Utilities
8
+ */
9
+ export type FlexibleSerdeSuiteSettings = {
10
+ expect: ExpectStatic;
11
+ test: TestAPI;
12
+ createAdapter: () => IFlexibleSerde;
13
+ };
14
+ /**
15
+ * @group Utilities
16
+ */
17
+ export declare function flexibleSerdeTestSuite(settings: FlexibleSerdeSuiteSettings): void;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import { type TestAPI, type ExpectStatic } from "vitest";
5
+ import type { ISerde } from "../../../../serde/contracts/_module";
6
+ /**
7
+ * @group Utilities
8
+ */
9
+ export type SerdeSuiteSettings = {
10
+ expect: ExpectStatic;
11
+ test: TestAPI;
12
+ createAdapter: () => ISerde;
13
+ };
14
+ /**
15
+ * @group Utilities
16
+ */
17
+ export declare function serdeTestSuite(settings: SerdeSuiteSettings): void;
@@ -0,0 +1 @@
1
+ export * from "../../../serde/implementations/mongodb-serde/mongodb-serde";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import { type ISerde } from "../../../serde/contracts/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class MongodbSerde implements ISerde<string | number> {
9
+ private readonly serde;
10
+ constructor(serde: ISerde<string>);
11
+ serialize<TValue>(value: TValue): string | number;
12
+ deserialize<TValue>(value: string | number): TValue;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../serde/implementations/no-op-serde/no-op-serde";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module EventBus
3
+ */
4
+ import type { IFlexibleSerde, SerializableClass } from "../../../serde/contracts/_module";
5
+ /**
6
+ * This <i>NoOpSerde</i> will do nothing and is used for easily mocking {@link IFlexibleSerde} or {@link ISerde} for testing.
7
+ * @group Adapters
8
+ */
9
+ export declare class NoOpSerde<TSerializedValue> implements IFlexibleSerde<TSerializedValue> {
10
+ serialize<TValue>(value: TValue): TSerializedValue;
11
+ deserialize<TValue>(serializedValue: TSerializedValue): TValue;
12
+ registerClass<TSerializedClassInstance>(_class: SerializableClass<TSerializedClassInstance>): IFlexibleSerde<TSerializedValue>;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../serde/implementations/redis-serde/redis-serde";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import { type ISerde } from "../../../serde/contracts/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class RedisSerde implements ISerde<string> {
9
+ private readonly serde;
10
+ constructor(serde: ISerde<string>);
11
+ serialize<TValue>(value: TValue): string;
12
+ deserialize<TValue>(value: string): TValue;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../serde/implementations/sql-serde/sql-serde";
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module Serde
3
+ */
4
+ import { type ISerde } from "../../../serde/contracts/_module";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class SqlSerde implements ISerde<string> {
9
+ private readonly serde;
10
+ constructor(serde: ISerde<string>);
11
+ serialize<TValue>(value: TValue): string;
12
+ deserialize<TValue>(value: string): TValue;
13
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../serde/implementations/super-json-serde/super-json-serde";