@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
@@ -1,47 +1,161 @@
1
1
  /**
2
2
  * @module Cache
3
3
  */
4
+ import { BaseEvent } from "../../event-bus/contracts/_module";
5
+ import type { IFlexibleSerde } from "../../serde/contracts/_module";
4
6
  import type { TimeSpan } from "../../utilities/_module";
5
- import type { ICacheAdapter } from "../../cache/contracts/cache-adapter.contract";
6
- /**
7
- * @group Events
8
- */
9
- export type CacheEvent = {
10
- namespace: string;
11
- adapter: ICacheAdapter<any>;
12
- };
13
- /**
14
- * This event will be triggered when cache is cleared.
15
- * @group Events
16
- */
17
- export type KeysClearedCacheEvent = CacheEvent & {};
18
- export type CacheEvents<TType = unknown> = {
19
- key_found: CacheEvent & {
20
- key: string;
21
- value: TType;
22
- };
23
- key_not_found: CacheEvent & {
24
- key: string;
25
- };
26
- key_added: CacheEvent & {
27
- key: string;
28
- value: TType;
29
- ttl: TimeSpan | null;
30
- };
31
- key_updated: CacheEvent & {
32
- key: string;
33
- value: TType;
34
- };
35
- key_removed: CacheEvent & {
36
- key: string;
37
- };
38
- key_incremented: CacheEvent & {
39
- key: string;
40
- value: number;
41
- };
42
- key_decremented: CacheEvent & {
43
- key: string;
44
- value: number;
45
- };
46
- keys_cleared: CacheEvent;
7
+ /**
8
+ * @group Events
9
+ */
10
+ export type KeyFoundCacheEventFields<TType> = {
11
+ group: string;
12
+ key: string;
13
+ value: TType;
14
+ };
15
+ /**
16
+ * @group Events
17
+ */
18
+ export declare class KeyFoundCacheEvent<TType = unknown> extends BaseEvent<KeyFoundCacheEventFields<TType>> {
19
+ group: string;
20
+ key: string;
21
+ value: TType;
22
+ static deserialize<TType>(serializedEvent: KeyFoundCacheEventFields<TType>): KeyFoundCacheEvent<TType>;
23
+ constructor(fields: KeyFoundCacheEventFields<TType>);
24
+ serialize(): KeyFoundCacheEventFields<TType>;
25
+ }
26
+ /**
27
+ * @group Events
28
+ */
29
+ export type KeyNotFoundCacheEventFields = {
30
+ group: string;
31
+ key: string;
32
+ };
33
+ /**
34
+ * @group Events
35
+ */
36
+ export declare class KeyNotFoundCacheEvent extends BaseEvent<KeyNotFoundCacheEventFields> {
37
+ group: string;
38
+ key: string;
39
+ static deserialize(serializedEvent: KeyNotFoundCacheEventFields): KeyNotFoundCacheEvent;
40
+ constructor(fields: KeyNotFoundCacheEventFields);
41
+ serialize(): KeyNotFoundCacheEventFields;
42
+ }
43
+ /**
44
+ * @group Events
45
+ */
46
+ export type KeyAddedCacheEventFields<TType = unknown> = {
47
+ group: string;
48
+ key: string;
49
+ value: TType;
50
+ ttl: TimeSpan | null;
51
+ };
52
+ /**
53
+ * @group Events
54
+ */
55
+ export declare class KeyAddedCacheEvent<TType = unknown> extends BaseEvent<KeyAddedCacheEventFields<TType>> {
56
+ group: string;
57
+ key: string;
58
+ value: TType;
59
+ ttl: TimeSpan | null;
60
+ static deserialize<TType>(serializedEvent: KeyAddedCacheEventFields<TType>): KeyAddedCacheEvent<TType>;
61
+ constructor(fields: KeyAddedCacheEventFields<TType>);
62
+ serialize(): KeyAddedCacheEventFields<TType>;
63
+ }
64
+ /**
65
+ * @group Events
66
+ */
67
+ export type KeyUpdatedCacheEventFields<TType = unknown> = {
68
+ group: string;
69
+ key: string;
70
+ value: TType;
71
+ };
72
+ /**
73
+ * @group Events
74
+ */
75
+ export declare class KeyUpdatedCacheEvent<TType = unknown> extends BaseEvent<KeyUpdatedCacheEventFields<TType>> {
76
+ group: string;
77
+ key: string;
78
+ value: TType;
79
+ static deserialize<TType>(serializedEvent: KeyUpdatedCacheEventFields<TType>): KeyUpdatedCacheEvent<TType>;
80
+ constructor(fields: KeyUpdatedCacheEventFields<TType>);
81
+ serialize(): KeyUpdatedCacheEventFields<TType>;
82
+ }
83
+ /**
84
+ * @group Events
85
+ */
86
+ export type KeyRemovedCacheEventFields = {
87
+ group: string;
88
+ key: string;
47
89
  };
90
+ /**
91
+ * @group Events
92
+ */
93
+ export declare class KeyRemovedCacheEvent extends BaseEvent<KeyRemovedCacheEventFields> {
94
+ group: string;
95
+ key: string;
96
+ static deserialize(serializedEvent: KeyRemovedCacheEventFields): KeyRemovedCacheEvent;
97
+ constructor(fields: KeyRemovedCacheEventFields);
98
+ serialize(): KeyRemovedCacheEventFields;
99
+ }
100
+ /**
101
+ * @group Events
102
+ */
103
+ export type KeyIncrementedCacheEventFields = {
104
+ group: string;
105
+ key: string;
106
+ value: number;
107
+ };
108
+ /**
109
+ * @group Events
110
+ */
111
+ export declare class KeyIncrementedCacheEvent extends BaseEvent<KeyIncrementedCacheEventFields> {
112
+ group: string;
113
+ key: string;
114
+ value: number;
115
+ static deserialize(serializedEvent: KeyIncrementedCacheEventFields): KeyIncrementedCacheEvent;
116
+ constructor(fields: KeyIncrementedCacheEventFields);
117
+ serialize(): KeyIncrementedCacheEventFields;
118
+ }
119
+ /**
120
+ * @group Events
121
+ */
122
+ export type KeyDecrementedCacheEventFields = {
123
+ group: string;
124
+ key: string;
125
+ value: number;
126
+ };
127
+ /**
128
+ * @group Events
129
+ */
130
+ export declare class KeyDecrementedCacheEvent extends BaseEvent<KeyDecrementedCacheEventFields> {
131
+ group: string;
132
+ key: string;
133
+ value: number;
134
+ static deserialize(serializedEvent: KeyDecrementedCacheEventFields): KeyDecrementedCacheEvent;
135
+ constructor(fields: KeyDecrementedCacheEventFields);
136
+ serialize(): KeyDecrementedCacheEventFields;
137
+ }
138
+ /**
139
+ * @group Events
140
+ */
141
+ export type KeysClearedCacheEventFields = {
142
+ group: string;
143
+ };
144
+ /**
145
+ * @group Events
146
+ */
147
+ export declare class KeysClearedCacheEvent extends BaseEvent<KeysClearedCacheEventFields> {
148
+ group: string;
149
+ static deserialize(serializedEvent: KeysClearedCacheEventFields): KeysClearedCacheEvent;
150
+ constructor(fields: KeysClearedCacheEventFields);
151
+ serialize(): KeysClearedCacheEventFields;
152
+ }
153
+ /**
154
+ * @group Events
155
+ */
156
+ export type CacheEvents<TType = unknown> = KeyFoundCacheEvent<TType> | KeyNotFoundCacheEvent | KeyAddedCacheEvent<TType> | KeyUpdatedCacheEvent<TType> | KeyRemovedCacheEvent | KeyIncrementedCacheEvent | KeyDecrementedCacheEvent | KeysClearedCacheEvent;
157
+ /**
158
+ * The <i>registerCacheEvents</i> function is used to register all cache events with a <i>{@link IFlexibleSerde}</i>.
159
+ * @group Events
160
+ */
161
+ export declare function registerCacheEvents<TSerializedValue>(serde: IFlexibleSerde<TSerializedValue>): void;
@@ -1 +1,2 @@
1
1
  export * from "../../../cache/implementations/_shared/cache-adapter.test-suite";
2
+ export * from "../../../cache/implementations/_shared/cache.test-suite";
@@ -12,7 +12,8 @@ export type CacheAdapterTestSuiteSettings = {
12
12
  test: TestAPI;
13
13
  describe: SuiteAPI;
14
14
  beforeEach: typeof beforeEach;
15
- createAdapter: () => Promisable<ICacheAdapter>;
15
+ createAdapterA: () => Promisable<ICacheAdapter>;
16
+ createAdapterB: () => Promisable<ICacheAdapter>;
16
17
  };
17
18
  /**
18
19
  * The <i>cacheAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ICacheAdapter}</i> with <i>vitest</i>.
@@ -22,25 +23,33 @@ export type CacheAdapterTestSuiteSettings = {
22
23
  * import Redis from "ioredis";
23
24
  * import { afterEach, beforeEach, describe, expect, test } from "vitest";
24
25
  * import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
25
- * import { SuperJsonSerializer, TimeSpan, RedisCacheAdapter, cacheAdapterTestSuite } from "@daiso-tech/core";
26
+ * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheAdapterTestSuite } from "@daiso-tech/core";
26
27
  *
27
- * const timeout = TimeSpan.fromMinutes(2);
28
+ * const TIMEOUT = TimeSpan.fromMinutes(2);
28
29
  * describe("class: RedisCacheAdapter", () => {
29
- * let client: Redis;
30
+ * let database: Redis;
30
31
  * let startedContainer: StartedRedisContainer;
31
- * const serializer = new SuperJsonSerializer();
32
+ * const serde = new SuperJsonSerde();
32
33
  * beforeEach(async () => {
33
34
  * startedContainer = await new RedisContainer("redis:7.4.2").start();
34
- * client = new Redis(startedContainer.getConnectionUrl());
35
- * }, timeout.toMilliseconds());
35
+ * database = new Redis(startedContainer.getConnectionUrl());
36
+ * }, TIMEOUT.toMilliseconds());
36
37
  * afterEach(async () => {
37
- * await client.quit();
38
+ * await database.quit();
38
39
  * await startedContainer.stop();
39
- * }, timeout.toMilliseconds());
40
+ * }, TIMEOUT.toMilliseconds());
40
41
  * cacheAdapterTestSuite({
41
- * createAdapter: () =>
42
- * new RedisCacheAdapter(client, {
43
- * serializer,
42
+ * createAdapterA: () =>
43
+ * new RedisCacheAdapter({
44
+ * database,
45
+ * serde,
46
+ * rootGroup: "@a"
47
+ * }),
48
+ * createAdapterB: () =>
49
+ * new RedisCacheAdapter({
50
+ * database,
51
+ * serde,
52
+ * rootGroup: "@b"
44
53
  * }),
45
54
  * test,
46
55
  * beforeEach,
@@ -23,40 +23,46 @@ export type CacheTestSuiteSettings = {
23
23
  * import Redis from "ioredis";
24
24
  * import { afterEach, beforeEach, describe, expect, test } from "vitest";
25
25
  * import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
26
- * import { SuperJsonSerializer, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemoryEventBusAdapter } from "@daiso-tech/core";
26
+ * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemoryEventBusAdapter } from "@daiso-tech/core";
27
27
  *
28
- * const timeout = TimeSpan.fromMinutes(2);
28
+ * const TIMEOUT = TimeSpan.fromMinutes(2);
29
29
  * describe("class: Cache", () => {
30
- * let client: Redis;
30
+ * let database: Redis;
31
31
  * let startedContainer: StartedRedisContainer;
32
- * const eventBus = new EventBus(new MemoryEventBusAdapter()):
33
- * const serializer = new SuperJsonSerializer();
32
+ * const eventBus = new EventBus({
33
+ * adapter: new MemoryEventBusAdapter({
34
+ * rootGroup: "@global"
35
+ * })
36
+ * }):
37
+ * const serde = new SuperJsonSerde();
34
38
  * beforeEach(async () => {
35
39
  * startedContainer = await new RedisContainer("redis:7.4.2").start();
36
- * client = new Redis(startedContainer.getConnectionUrl());
37
- * }, timeout.toMilliseconds());
40
+ * database = new Redis(startedContainer.getConnectionUrl());
41
+ * }, TIMEOUT.toMilliseconds());
38
42
  * afterEach(async () => {
39
- * await client.quit();
43
+ * await database.quit();
40
44
  * await startedContainer.stop();
41
- * }, timeout.toMilliseconds());
45
+ * }, TIMEOUT.toMilliseconds());
42
46
  * cacheTestSuite({
43
47
  * createCacheA: () =>
44
48
  * new Cache(
45
- * new RedisCacheAdapter(client, {
46
- * serializer,
49
+ * new RedisCacheAdapter({
50
+ * database,
51
+ * serde,
47
52
  * }),
48
53
  * {
49
- * rootNamespace: "@a",
54
+ * rootGroup: "@a",
50
55
  * eventBus,
51
56
  * }
52
57
  * ),
53
58
  * createCacheB: () =>
54
59
  * new Cache(
55
- * new RedisCacheAdapter(client, {
56
- * serializer,
60
+ * new RedisCacheAdapter({
61
+ * database,
62
+ * serde,
57
63
  * }),
58
64
  * {
59
- * rootNamespace: "@b",
65
+ * rootGroup: "@b",
60
66
  * eventBus,
61
67
  * }
62
68
  * ),
@@ -3,13 +3,14 @@
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/_module";
5
5
  import { type Kysely } from "kysely";
6
- import { type ISerializer } from "../../../../serializer/contracts/_module";
7
- import type { IDeinitizable, IInitizable } from "../../../../utilities/_module";
6
+ import { type ISerde } from "../../../../serde/contracts/_module";
7
+ import type { IDeinitizable, IInitizable, OneOrMore } from "../../../../utilities/_module";
8
8
  import { TimeSpan } from "../../../../utilities/_module";
9
9
  /**
10
10
  * @internal
11
11
  */
12
12
  type KyselySqliteCacheTable = {
13
+ group: string;
13
14
  key: string;
14
15
  value: string;
15
16
  expiresAt: number | null;
@@ -24,32 +25,38 @@ type KyselySqliteTables = {
24
25
  * @internal
25
26
  */
26
27
  type KyselySqliteSettings = {
27
- serializer: ISerializer<string>;
28
+ db: Kysely<KyselySqliteTables>;
29
+ serde: ISerde<string>;
28
30
  enableTransactions: boolean;
29
31
  expiredKeysRemovalInterval?: TimeSpan;
30
32
  shouldRemoveExpiredKeys?: boolean;
33
+ rootGroup: OneOrMore<string>;
31
34
  };
32
35
  /**
33
36
  * @internal
34
37
  */
35
- export declare class KyselySqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
36
- private readonly db;
37
- private readonly serializer;
38
+ export declare class KyselySqliteCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
39
+ private readonly group;
40
+ private readonly serde;
38
41
  private readonly enableTransactions;
39
42
  private readonly expiredKeysRemovalInterval;
40
43
  private readonly shouldRemoveExpiredKeys;
41
44
  private timeoutId;
42
- constructor(db: Kysely<KyselySqliteTables>, settings: KyselySqliteSettings);
45
+ private readonly db;
46
+ constructor(settings: KyselySqliteSettings);
47
+ getGroup(): string;
48
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
43
49
  private withTransaction;
44
50
  removeExpiredKeys(): Promise<void>;
45
51
  init(): Promise<void>;
46
52
  deInit(): Promise<void>;
53
+ exists(key: string): Promise<boolean>;
47
54
  get(key: string): Promise<TType | null>;
48
55
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
49
56
  update(key: string, value: TType): Promise<boolean>;
50
57
  put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
51
58
  remove(key: string): Promise<boolean>;
52
59
  increment(key: string, value: number): Promise<boolean>;
53
- clear(prefix: string): Promise<void>;
60
+ clear(): Promise<void>;
54
61
  }
55
62
  export {};
@@ -1 +1,2 @@
1
- export * from "../../../../cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter";
1
+ export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
2
+ export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter";
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { ISerde } from "../../../../serde/contracts/_module";
5
+ import type { TimeSpan, OneOrMore, IBuildable } from "../../../../utilities/_module";
6
+ import type { Client } from "@libsql/client";
7
+ /**
8
+ * @group Adapters
9
+ */
10
+ export type LibsqlCacheAdapterSettings = {
11
+ database: Client;
12
+ tableName?: string;
13
+ serde: ISerde<string>;
14
+ enableTransactions?: boolean;
15
+ expiredKeysRemovalInterval?: TimeSpan;
16
+ shouldRemoveExpiredKeys?: boolean;
17
+ rootGroup: OneOrMore<string>;
18
+ };
19
+ /**
20
+ * The <i>LibsqlCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
21
+ * @group Adapters
22
+ */
23
+ export declare class LibsqlCacheAdapterSettingsBuilder<TSettings extends Partial<LibsqlCacheAdapterSettings>> implements IBuildable<LibsqlCacheAdapterSettings> {
24
+ private readonly settings;
25
+ constructor(settings?: TSettings);
26
+ setDatabase(database: Client): LibsqlCacheAdapterSettingsBuilder<TSettings & {
27
+ database: Client;
28
+ }>;
29
+ setTableName(name: string): LibsqlCacheAdapterSettingsBuilder<TSettings & {
30
+ tableName: string;
31
+ }>;
32
+ setSerde(serde: ISerde<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
33
+ serde: ISerde<string>;
34
+ }>;
35
+ setEnableTransactions(enable: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
36
+ enableTransactions: boolean;
37
+ }>;
38
+ setExpiredKeysRemovalInterval(interval: TimeSpan): LibsqlCacheAdapterSettingsBuilder<TSettings & {
39
+ expiredKeysRemovalInterval: TimeSpan;
40
+ }>;
41
+ setShouldRemoveExpiredKeys(shouldRemove: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
42
+ shouldRemoveExpiredKeys: boolean;
43
+ }>;
44
+ setRootGroup(group: OneOrMore<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
45
+ rootGroup: OneOrMore<string>;
46
+ }>;
47
+ build(this: LibsqlCacheAdapterSettingsBuilder<LibsqlCacheAdapterSettings>): LibsqlCacheAdapterSettings;
48
+ }
@@ -2,53 +2,71 @@
2
2
  * @module Cache
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
- import type { ISerializer } from "../../../../serializer/contracts/_module";
6
- import type { TimeSpan, IDeinitizable, IInitizable } from "../../../../utilities/_module";
7
- import type { Client } from "@libsql/client";
5
+ import type { TimeSpan, IDeinitizable, IInitizable, OneOrMore } from "../../../../utilities/_module";
6
+ import type { LibsqlCacheAdapterSettings } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
7
+ import { LibsqlCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
8
8
  /**
9
+ * To utilize the <i>LibsqlCacheAdapter</i>, you must install the <i>"@libsql/client"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
9
10
  * @group Adapters
10
11
  */
11
- export type LibsqlCacheAdapterSettings = {
12
- tableName?: string;
13
- serializer: ISerializer<string>;
14
- enableTransactions?: boolean;
15
- expiredKeysRemovalInterval?: TimeSpan;
16
- shouldRemoveExpiredKeys?: boolean;
17
- };
18
- /**
19
- * To utilize the <i>LibsqlCacheAdapter</i>, you must install the <i>"@libsql/client"</i> package and supply a <i>{@link ISerializer | string serializer}</i>, such as <i>{@link SuperJsonSerializer}</i>.
20
- * @group Adapters
21
- * @example
22
- * ```ts
23
- * import { LibsqlCacheAdapter, SuperJsonSerializer } from "@daiso-tech/core";
24
- * import { createClient } from "@libsql/client";
25
- *
26
- * (async () => {
27
- * const client = createClient({ url: "file:local.db" });
28
- * const serializer = new SuperJsonSerializer();
29
- * const cacheAdapter = new LibsqlCacheAdapter(client, {
30
- * serializer,
31
- * });
32
- * // You only need to call it once before using the adapter.
33
- * await cacheAdapter.init();
34
- * await cacheAdapter.add("a", 1);
35
- *
36
- * // Will remove the cache
37
- * await cacheAdapter.deInit();
38
- * })();
39
- * ```
40
- */
41
- export declare class LibsqlCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
12
+ export declare class LibsqlCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
13
+ /**
14
+ * @example
15
+ * ```ts
16
+ * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
17
+ * import { createClient } from "@libsql/client";
18
+ *
19
+ * const cacheAdapter = new LibsqlCacheAdapter(
20
+ * LibsqlCacheAdapter
21
+ * .settings()
22
+ * .setDatabase(createClient({ url: "file:local.db" }))
23
+ * .setSerde(new SuperJsonSerde())
24
+ * .setRootGroup("@global")
25
+ * .build()
26
+ * );
27
+ * ```
28
+ */
29
+ static settings<TSettings extends Partial<LibsqlCacheAdapterSettings>>(): LibsqlCacheAdapterSettingsBuilder<TSettings>;
42
30
  private readonly cacheAdapter;
43
- constructor(client: Client, settings: LibsqlCacheAdapterSettings);
31
+ /***
32
+ * @example
33
+ * ```ts
34
+ * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
35
+ * import { createClient } from "@libsql/client";
36
+ *
37
+ * const database = createClient({ url: "file:local.db" });
38
+ * const serde = new SuperJsonSerde();
39
+ * const cacheAdapter = new LibsqlCacheAdapter({
40
+ * database,
41
+ * serde,
42
+ * rootGroup: "@global"
43
+ * });
44
+ *
45
+ * (async () => {
46
+ * await cacheAdapter.init();
47
+ * await cacheAdapter.add("a", 1);
48
+ * await cacheAdapter.deInit();
49
+ * })();
50
+ * ```
51
+ */
52
+ constructor(settings: LibsqlCacheAdapterSettings);
53
+ getGroup(): string;
54
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
44
55
  removeExpiredKeys(): Promise<void>;
56
+ /**
57
+ * Removes the table where the cache values are stored and removes the table indexes.
58
+ */
45
59
  deInit(): Promise<void>;
60
+ /**
61
+ * Creates the table where the cache values are stored and it's related indexes.
62
+ */
46
63
  init(): Promise<void>;
64
+ exists(key: string): Promise<boolean>;
47
65
  get(key: string): Promise<TType | null>;
48
66
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
49
67
  update(key: string, value: TType): Promise<boolean>;
50
68
  put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
51
69
  remove(key: string): Promise<boolean>;
52
70
  increment(key: string, value: number): Promise<boolean>;
53
- clear(prefix: string): Promise<void>;
71
+ clear(): Promise<void>;
54
72
  }
@@ -1 +1,2 @@
1
+ export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
1
2
  export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter";
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { IBuildable } from "../../../../utilities/_module";
5
+ import { type OneOrMore } from "../../../../utilities/_module";
6
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type MemoryCacheAdapterSettings = {
10
+ rootGroup: OneOrMore<string>;
11
+ map?: Map<string, unknown>;
12
+ };
13
+ /**
14
+ * The <i>MemoryCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
15
+ * @group Adapters
16
+ */
17
+ export declare class MemoryCacheAdapterSettingsBuilder<TSettings extends Partial<MemoryCacheAdapterSettings>> implements IBuildable<MemoryCacheAdapterSettings> {
18
+ private readonly settings;
19
+ constructor(settings?: TSettings);
20
+ setMap(map: Map<string, unknown>): MemoryCacheAdapterSettingsBuilder<TSettings & {
21
+ map: Map<string, unknown>;
22
+ }>;
23
+ setRootGroup(group: OneOrMore<string>): MemoryCacheAdapterSettingsBuilder<TSettings & {
24
+ rootGroup: OneOrMore<string>;
25
+ }>;
26
+ build(this: MemoryCacheAdapterSettingsBuilder<MemoryCacheAdapterSettings>): MemoryCacheAdapterSettings;
27
+ }
@@ -2,34 +2,64 @@
2
2
  * @module Cache
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
- import type { TimeSpan } from "../../../../utilities/_module";
5
+ import { type OneOrMore, type TimeSpan } from "../../../../utilities/_module";
6
+ import type { MemoryCacheAdapterSettings } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
7
+ import { MemoryCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
6
8
  /**
7
9
  * To utilize the <i>MemoryCacheAdapter</i>, you must create instance of it.
8
10
  * @group Adapters
9
- * @example
10
- * ```ts
11
- * import { MemoryCacheAdapter } from "@daiso-tech/core";
12
- *
13
- * const cacheAdapter = new MemoryCacheAdapter(client);
14
- * ```
15
- * You can also provide an <i>Map</i>.
16
- * @example
17
- * ```ts
18
- * import { MemoryCacheAdapter } from "@daiso-tech/core";
19
- *
20
- * const map = new Map<any, any>();
21
- * const cacheAdapter = new MemoryCacheAdapter(map);
22
- * ```
23
11
  */
24
- export declare class MemoryCacheAdapter<TType> implements ICacheAdapter<TType> {
12
+ export declare class MemoryCacheAdapter<TType = unknown> implements ICacheAdapter<TType> {
13
+ /**
14
+ * @example
15
+ * ```ts
16
+ * import { MemoryCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
17
+ *
18
+ * const cacheAdapter = new MemoryCacheAdapter(
19
+ * MemoryCacheAdapter
20
+ * .settings()
21
+ * .setMap(new Map())
22
+ * .setRootGroup("@global")
23
+ * .build()
24
+ * );
25
+ * ```
26
+ */
27
+ static settings<TSettings extends Partial<MemoryCacheAdapterSettings>>(): MemoryCacheAdapterSettingsBuilder<TSettings>;
28
+ private readonly group;
29
+ private readonly timeoutMap;
25
30
  private readonly map;
26
- constructor(map?: Map<string, TType>);
27
- private readonly timeoutIdMap;
31
+ /**
32
+ * @example
33
+ * ```ts
34
+ * import { MemoryCacheAdapter } from "@daiso-tech/core";
35
+ *
36
+ * const cacheAdapter = new MemoryCacheAdapter({
37
+ * rootGroup: "@cache"
38
+ * });
39
+ * ```
40
+ * You can also provide an <i>Map</i>.
41
+ * @example
42
+ * ```ts
43
+ * import { MemoryCacheAdapter } from "@daiso-tech/core";
44
+ *
45
+ * const map = new Map<any, any>();
46
+ * const cacheAdapter = new MemoryCacheAdapter({
47
+ * rootGroup: "@cache",
48
+ * map
49
+ * });
50
+ * ```
51
+ */
52
+ constructor(settings: MemoryCacheAdapterSettings);
53
+ private getGroupName;
54
+ private withPrefix;
55
+ exists(key: string): Promise<boolean>;
28
56
  get(key: string): Promise<TType | null>;
29
57
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
30
58
  update(key: string, value: TType): Promise<boolean>;
31
- put(key: string, value: TType, _ttl: TimeSpan | null): Promise<boolean>;
59
+ put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
32
60
  remove(key: string): Promise<boolean>;
33
61
  increment(key: string, value: number): Promise<boolean>;
34
- clear(prefix: string): Promise<void>;
62
+ clear(): Promise<void>;
63
+ getGroup(): string;
64
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
35
65
  }