@daiso-tech/core 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dist/cjs/_module.js +2 -2
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +15 -0
  4. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  5. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  6. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  7. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +23 -2
  8. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  9. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +59 -18
  10. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  11. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +15 -5
  12. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  13. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +58 -39
  14. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  15. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +63 -26
  16. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  18. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +44 -19
  20. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +15 -5
  22. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  23. package/dist/cjs/cache/implementations/derivables/_module.js +0 -1
  24. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  25. package/dist/cjs/cache/implementations/derivables/cache-factory.js +1 -4
  26. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  27. package/dist/cjs/cache/implementations/derivables/cache.js +297 -53
  28. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  29. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  30. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  31. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +51 -39
  32. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  33. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  34. package/dist/cjs/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  35. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  36. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  37. package/dist/cjs/collection/implementations/list-collection/list-collection.js +13 -0
  38. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  39. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +76 -32
  40. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  41. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +63 -27
  42. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  43. package/dist/cjs/event-bus/implementations/adapters/_module.js +1 -1
  44. package/dist/cjs/event-bus/implementations/adapters/_module.js.map +1 -1
  45. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +19 -9
  46. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  47. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +7 -1
  48. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  49. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  50. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +52 -0
  51. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  52. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +3 -4
  53. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  54. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +82 -25
  55. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  56. package/dist/cjs/{serializer/implementations/_shared/test-utilities → serde/contracts}/_module.js +2 -1
  57. package/dist/cjs/serde/contracts/_module.js.map +1 -0
  58. package/dist/cjs/{serializer/contracts/serializer.contract.js → serde/contracts/serde.contract.js} +1 -1
  59. package/dist/cjs/serde/contracts/serde.contract.js.map +1 -0
  60. package/dist/cjs/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +7 -7
  61. package/dist/cjs/serde/contracts/serde.errors.js.map +1 -0
  62. package/dist/cjs/{serializer/contracts → serde/implementations}/_module.js +5 -2
  63. package/dist/cjs/serde/implementations/_module.js.map +1 -0
  64. package/dist/cjs/{serializer/implementations/mongodb-serializer → serde/implementations/_shared/test-utilities}/_module.js +1 -1
  65. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  66. package/dist/{esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js → cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js} +65 -62
  67. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  68. package/dist/cjs/{serializer/implementations/sql-serializer → serde/implementations/mongodb-serde}/_module.js +1 -1
  69. package/dist/cjs/serde/implementations/mongodb-serde/_module.js.map +1 -0
  70. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js +36 -0
  71. package/dist/cjs/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  72. package/dist/cjs/{serializer/implementations/redis-serializer → serde/implementations/redis-serde}/_module.js +1 -1
  73. package/dist/cjs/serde/implementations/redis-serde/_module.js.map +1 -0
  74. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js +37 -0
  75. package/dist/cjs/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  76. package/dist/cjs/serde/implementations/sql-serde/_module.js +18 -0
  77. package/dist/cjs/serde/implementations/sql-serde/_module.js.map +1 -0
  78. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js +37 -0
  79. package/dist/cjs/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  80. package/dist/cjs/serde/implementations/super-json-serde/_module.js +18 -0
  81. package/dist/cjs/serde/implementations/super-json-serde/_module.js.map +1 -0
  82. package/dist/cjs/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +74 -100
  83. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  84. package/dist/cjs/utilities/functions.js +5 -5
  85. package/dist/cjs/utilities/functions.js.map +1 -1
  86. package/dist/cjs/utilities/time-span/time-span.js +8 -0
  87. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  88. package/dist/esm/_module.js +2 -2
  89. package/dist/esm/_module.js.map +1 -1
  90. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +15 -0
  91. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  92. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +256 -177
  93. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  94. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +23 -2
  95. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  96. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +60 -19
  97. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  98. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +15 -5
  99. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  100. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +58 -39
  101. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  102. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +63 -23
  103. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  104. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +10 -1
  105. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  106. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +44 -19
  107. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  108. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +15 -5
  109. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  110. package/dist/esm/cache/implementations/derivables/_module.js +0 -1
  111. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  112. package/dist/esm/cache/implementations/derivables/cache-factory.js +1 -4
  113. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  114. package/dist/esm/cache/implementations/derivables/cache.js +296 -52
  115. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  116. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js +14 -7
  117. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.js.map +1 -1
  118. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +51 -39
  119. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  120. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js +6 -7
  121. package/dist/esm/collection/implementations/iterable-collection/_shared/merge-iterable.js.map +1 -1
  122. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js +11 -2
  123. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  124. package/dist/esm/collection/implementations/list-collection/list-collection.js +13 -0
  125. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  126. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +76 -32
  127. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  128. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +63 -27
  129. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  130. package/dist/esm/event-bus/implementations/adapters/_module.js +1 -1
  131. package/dist/esm/event-bus/implementations/adapters/_module.js.map +1 -1
  132. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +19 -9
  133. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  134. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +7 -1
  135. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  136. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -0
  137. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +48 -0
  138. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -0
  139. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +3 -4
  140. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  141. package/dist/esm/event-bus/implementations/derivables/event-bus.js +83 -26
  142. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  143. package/dist/esm/serde/contracts/_module.js +3 -0
  144. package/dist/esm/serde/contracts/_module.js.map +1 -0
  145. package/dist/esm/serde/contracts/serde.contract.js +1 -0
  146. package/dist/esm/serde/contracts/serde.contract.js.map +1 -0
  147. package/dist/esm/{serializer/contracts/serializer.errors.js → serde/contracts/serde.errors.js} +5 -5
  148. package/dist/esm/serde/contracts/serde.errors.js.map +1 -0
  149. package/dist/esm/serde/implementations/_module.js +6 -0
  150. package/dist/esm/serde/implementations/_module.js.map +1 -0
  151. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +2 -0
  152. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -0
  153. package/dist/{cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js → esm/serde/implementations/_shared/test-utilities/serde.test-suite.js} +62 -65
  154. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -0
  155. package/dist/esm/serde/implementations/mongodb-serde/_module.js +2 -0
  156. package/dist/esm/serde/implementations/mongodb-serde/_module.js.map +1 -0
  157. package/dist/esm/{serializer/implementations/mongodb-serializer/mongodb-serializer.js → serde/implementations/mongodb-serde/mongodb-serde.js} +10 -10
  158. package/dist/esm/serde/implementations/mongodb-serde/mongodb-serde.js.map +1 -0
  159. package/dist/esm/serde/implementations/redis-serde/_module.js +2 -0
  160. package/dist/esm/serde/implementations/redis-serde/_module.js.map +1 -0
  161. package/dist/esm/{serializer/implementations/sql-serializer/sql-serializer.js → serde/implementations/redis-serde/redis-serde.js} +10 -10
  162. package/dist/esm/serde/implementations/redis-serde/redis-serde.js.map +1 -0
  163. package/dist/esm/serde/implementations/sql-serde/_module.js +2 -0
  164. package/dist/esm/serde/implementations/sql-serde/_module.js.map +1 -0
  165. package/dist/esm/{serializer/implementations/redis-serializer/redis-serializer.js → serde/implementations/sql-serde/sql-serde.js} +10 -10
  166. package/dist/esm/serde/implementations/sql-serde/sql-serde.js.map +1 -0
  167. package/dist/esm/serde/implementations/super-json-serde/_module.js +2 -0
  168. package/dist/esm/serde/implementations/super-json-serde/_module.js.map +1 -0
  169. package/dist/esm/{serializer/implementations/super-json-serializer/super-json-serializer.js → serde/implementations/super-json-serde/super-json-serde.js} +52 -55
  170. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -0
  171. package/dist/esm/utilities/functions.js +4 -4
  172. package/dist/esm/utilities/functions.js.map +1 -1
  173. package/dist/esm/utilities/time-span/time-span.js +8 -0
  174. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  175. package/dist/types/_module.d.ts +2 -2
  176. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +38 -1
  177. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +20 -6
  178. package/dist/types/cache/contracts/cache-factory.contract.d.ts +4 -4
  179. package/dist/types/cache/contracts/cache.contract.d.ts +19 -16
  180. package/dist/types/cache/contracts/cache.events.d.ts +17 -21
  181. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +12 -5
  182. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +6 -6
  183. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +11 -5
  184. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +17 -11
  185. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +12 -6
  186. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +21 -10
  187. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +5 -2
  188. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +20 -13
  189. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +16 -8
  190. package/dist/types/cache/implementations/derivables/_module.d.ts +0 -1
  191. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +5 -11
  192. package/dist/types/cache/implementations/derivables/cache.d.ts +35 -43
  193. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-merge-iterable.d.ts +4 -5
  194. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +7 -2
  195. package/dist/types/collection/implementations/iterable-collection/_shared/merge-iterable.d.ts +4 -5
  196. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +3 -0
  197. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +3 -0
  198. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +8 -5
  199. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +3 -3
  200. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +36 -13
  201. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +16 -7
  202. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +9 -9
  203. package/dist/types/event-bus/implementations/adapters/_module.d.ts +1 -1
  204. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +10 -5
  205. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -1
  206. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +50 -0
  207. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +5 -6
  208. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +16 -42
  209. package/dist/types/serde/contracts/_module.d.ts +2 -0
  210. package/dist/types/serde/contracts/serde.contract.d.ts +41 -0
  211. package/dist/types/{serializer/contracts/serializer.errors.d.ts → serde/contracts/serde.errors.d.ts} +4 -4
  212. package/dist/types/serde/implementations/_module.d.ts +5 -0
  213. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
  214. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +18 -0
  215. package/dist/types/serde/implementations/mongodb-serde/_module.d.ts +1 -0
  216. package/dist/types/serde/implementations/mongodb-serde/mongodb-serde.d.ts +13 -0
  217. package/dist/types/serde/implementations/redis-serde/_module.d.ts +1 -0
  218. package/dist/types/serde/implementations/redis-serde/redis-serde.d.ts +13 -0
  219. package/dist/types/serde/implementations/sql-serde/_module.d.ts +1 -0
  220. package/dist/types/serde/implementations/sql-serde/sql-serde.d.ts +13 -0
  221. package/dist/types/serde/implementations/super-json-serde/_module.d.ts +1 -0
  222. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +25 -0
  223. package/dist/types/utilities/functions.d.ts +1 -1
  224. package/dist/types/utilities/time-span/time-span.d.ts +11 -2
  225. package/package.json +3 -9
  226. package/dist/cjs/cache/implementations/derivables/base-cache.js +0 -270
  227. package/dist/cjs/cache/implementations/derivables/base-cache.js.map +0 -1
  228. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  229. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -44
  230. package/dist/cjs/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  231. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js +0 -47
  232. package/dist/cjs/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  233. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -42
  234. package/dist/cjs/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  235. package/dist/cjs/serializer/contracts/_module.js.map +0 -1
  236. package/dist/cjs/serializer/contracts/serializer.contract.js.map +0 -1
  237. package/dist/cjs/serializer/contracts/serializer.errors.js.map +0 -1
  238. package/dist/cjs/serializer/implementations/_module.js +0 -22
  239. package/dist/cjs/serializer/implementations/_module.js.map +0 -1
  240. package/dist/cjs/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  241. package/dist/cjs/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  242. package/dist/cjs/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  243. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js +0 -36
  244. package/dist/cjs/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  245. package/dist/cjs/serializer/implementations/redis-serializer/_module.js.map +0 -1
  246. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js +0 -37
  247. package/dist/cjs/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  248. package/dist/cjs/serializer/implementations/sql-serializer/_module.js.map +0 -1
  249. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js +0 -37
  250. package/dist/cjs/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  251. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js +0 -18
  252. package/dist/cjs/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  253. package/dist/cjs/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  254. package/dist/esm/cache/implementations/derivables/base-cache.js +0 -266
  255. package/dist/esm/cache/implementations/derivables/base-cache.js.map +0 -1
  256. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/_module.js.map +0 -1
  257. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js +0 -40
  258. package/dist/esm/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.js.map +0 -1
  259. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js +0 -43
  260. package/dist/esm/event-bus/implementations/derivables/base-event-bus.js.map +0 -1
  261. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js +0 -38
  262. package/dist/esm/event-bus/implementations/derivables/with-namespace-event-bus-adapter.js.map +0 -1
  263. package/dist/esm/serializer/contracts/_module.js +0 -3
  264. package/dist/esm/serializer/contracts/_module.js.map +0 -1
  265. package/dist/esm/serializer/contracts/serializer.contract.js +0 -1
  266. package/dist/esm/serializer/contracts/serializer.contract.js.map +0 -1
  267. package/dist/esm/serializer/contracts/serializer.errors.js.map +0 -1
  268. package/dist/esm/serializer/implementations/_module.js +0 -6
  269. package/dist/esm/serializer/implementations/_module.js.map +0 -1
  270. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js +0 -2
  271. package/dist/esm/serializer/implementations/_shared/test-utilities/_module.js.map +0 -1
  272. package/dist/esm/serializer/implementations/_shared/test-utilities/serializer.test-suite.js.map +0 -1
  273. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js +0 -2
  274. package/dist/esm/serializer/implementations/mongodb-serializer/_module.js.map +0 -1
  275. package/dist/esm/serializer/implementations/mongodb-serializer/mongodb-serializer.js.map +0 -1
  276. package/dist/esm/serializer/implementations/redis-serializer/_module.js +0 -2
  277. package/dist/esm/serializer/implementations/redis-serializer/_module.js.map +0 -1
  278. package/dist/esm/serializer/implementations/redis-serializer/redis-serializer.js.map +0 -1
  279. package/dist/esm/serializer/implementations/sql-serializer/_module.js +0 -2
  280. package/dist/esm/serializer/implementations/sql-serializer/_module.js.map +0 -1
  281. package/dist/esm/serializer/implementations/sql-serializer/sql-serializer.js.map +0 -1
  282. package/dist/esm/serializer/implementations/super-json-serializer/_module.js +0 -2
  283. package/dist/esm/serializer/implementations/super-json-serializer/_module.js.map +0 -1
  284. package/dist/esm/serializer/implementations/super-json-serializer/super-json-serializer.js.map +0 -1
  285. package/dist/types/cache/implementations/derivables/base-cache.d.ts +0 -58
  286. package/dist/types/event-bus/implementations/adapters/redis-event-bus-adapter/redis-event-bus-adapter.d.ts +0 -43
  287. package/dist/types/event-bus/implementations/derivables/base-event-bus.d.ts +0 -23
  288. package/dist/types/event-bus/implementations/derivables/with-namespace-event-bus-adapter.d.ts +0 -16
  289. package/dist/types/serializer/contracts/_module.d.ts +0 -2
  290. package/dist/types/serializer/contracts/serializer.contract.d.ts +0 -16
  291. package/dist/types/serializer/implementations/_module.d.ts +0 -5
  292. package/dist/types/serializer/implementations/_shared/test-utilities/_module.d.ts +0 -1
  293. package/dist/types/serializer/implementations/_shared/test-utilities/serializer.test-suite.d.ts +0 -18
  294. package/dist/types/serializer/implementations/mongodb-serializer/_module.d.ts +0 -1
  295. package/dist/types/serializer/implementations/mongodb-serializer/mongodb-serializer.d.ts +0 -13
  296. package/dist/types/serializer/implementations/redis-serializer/_module.d.ts +0 -1
  297. package/dist/types/serializer/implementations/redis-serializer/redis-serializer.d.ts +0 -13
  298. package/dist/types/serializer/implementations/sql-serializer/_module.d.ts +0 -1
  299. package/dist/types/serializer/implementations/sql-serializer/sql-serializer.d.ts +0 -13
  300. package/dist/types/serializer/implementations/super-json-serializer/_module.d.ts +0 -1
  301. package/dist/types/serializer/implementations/super-json-serializer/super-json-serializer.d.ts +0 -37
  302. /package/dist/cjs/event-bus/implementations/adapters/{redis-event-bus-adapter → redis-pub-sub-event-bus-adapter}/_module.js +0 -0
  303. /package/dist/esm/event-bus/implementations/adapters/{redis-event-bus-adapter → redis-pub-sub-event-bus-adapter}/_module.js +0 -0
  304. /package/dist/types/event-bus/implementations/adapters/{redis-event-bus-adapter → redis-pub-sub-event-bus-adapter}/_module.d.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @module Cache
3
3
  */
4
- import type { INamespacedCache } from "../../cache/contracts/cache.contract";
4
+ import type { IGroupableCache } from "../../cache/contracts/cache.contract";
5
5
  /**
6
- * The <i>ICacheFactory</i> contract makes it easy to configure and switch between different <i>{@link INamespacedCache}</i> dynamically.
6
+ * The <i>ICacheFactory</i> contract makes it easy to configure and switch between different <i>{@link IGroupableCache}</i> dynamically.
7
7
  * @group Contracts
8
8
  */
9
9
  export type ICacheFactory<TDrivers extends string = string, TType = unknown> = {
@@ -28,12 +28,12 @@ export type ICacheFactory<TDrivers extends string = string, TType = unknown> = {
28
28
  * }
29
29
  * ```
30
30
  */
31
- use(driverName?: TDrivers): INamespacedCache<TType>;
31
+ use(driverName?: TDrivers): IGroupableCache<TType>;
32
32
  /**
33
33
  * The <i>withTypes</i> method is used to set the value types of the cache.
34
34
  * @example
35
35
  * ```ts
36
- * import { type ICacheFactory zodValidator } from "@daiso-tech/core";
36
+ * import { type ICacheFactory } from "@daiso-tech/core";
37
37
  *
38
38
  * async function main(cacheFactory: ICacheFactory): Promise<void> {
39
39
  * await cacheFactory
@@ -83,12 +83,14 @@ export type ICache<TType = unknown> = ICacheListenable & {
83
83
  */
84
84
  updateMany<TKeys extends string>(values: Record<TKeys, TType>): LazyPromise<Record<TKeys, boolean>>;
85
85
  /**
86
- * The <i>put</i> method replaces the key with given <i>value</i> if found. If the <i>key</i> is not found it will just be added. True is returned if the key is found otherwise false will be returned.
87
- * You can provide a <i>ttl</i> value. If null is passed, the item will not expire.
86
+ * The <i>put</i> method replaces a <i>key</i> if the <i>key</i> exists including the ttl value or adds <i>key</i> that do not exists with a given <i>ttl</i>.
87
+ * Returns true if the <i>key</i> where replaced otherwise false is returned.
88
+ * You must provide a <i>ttl</i> value. If null is passed, the item will not expire.
88
89
  */
89
90
  put(key: string, value: TType, ttl?: TimeSpan | null): LazyPromise<boolean>;
90
91
  /**
91
- * The <i>putMany</i> method replaces the keys that exists. Adds keys that do not exists. Returns true for all the keys that where updated otherwise false is returned.
92
+ * The <i>putMany</i> method replaces the keys that exists including their ttl values or adds keys that do not exists.
93
+ * Returns true for all the keys that where replaced otherwise false is returned.
92
94
  */
93
95
  putMany<TKeys extends string>(values: Record<TKeys, WithTtlValue<TType>>): LazyPromise<Record<TKeys, boolean>>;
94
96
  /**
@@ -127,42 +129,43 @@ export type ICache<TType = unknown> = ICacheListenable & {
127
129
  */
128
130
  clear(): LazyPromise<void>;
129
131
  /**
130
- * The <i>getNamespace</i> method returns the complete namespace.
132
+ * The <i>getGroup</i> method returns the group name.
131
133
  * @example
132
134
  * ```ts
133
135
  * import type { ICache } from "@daiso-tech/core";
134
136
  *
135
137
  * async function main(cache: ICache) {
136
- * // Will be "@root"
137
- * console.log(cache.getNamespace())
138
+ * // Will be "@global"
139
+ * console.log(cache.getGroup())
138
140
  *
139
- * const cacheA = cache.withNamespace("a");
141
+ * const cacheA = cache.withGroup("a");
140
142
  *
141
- * // Will be "@root/a"
142
- * console.log(cacheA.getNamespace())
143
+ * // Will be "@global/a"
144
+ * console.log(cacheA.getGroup())
143
145
  * }
144
146
  * ```
145
147
  */
146
- getNamespace(): string;
148
+ getGroup(): string;
147
149
  };
148
150
  /**
149
- * The <i>INamespacedCache</i> contract defines a way for storing data as key-value pairs independent of data storage.
151
+ * The <i>IGroupableCache</i> contract defines a way for storing data as key-value pairs independent of data storage.
150
152
  * It commes with one extra method which is useful for multitennat applications compared to <i>ICache</i>.
151
153
  * @group Contracts
152
154
  */
153
- export type INamespacedCache<TType = unknown> = ICache<TType> & {
155
+ export type IGroupableCache<TType = unknown> = ICache<TType> & {
154
156
  /**
155
- * The <i>withNamespace</i> method returns new instance of <i>{@link ICache}</i> where all the keys will be prefixed with a given <i>namespace</i>.
157
+ * The <i>withGroup</i> method returns a new <i>{@link ICache}</i> instance that groups keys together.
158
+ * Only keys in the group can be updated, removed, or retrieved, leaving keys outside the group unaffected.
156
159
  * This useful for multitennat applications.
157
160
  * @example
158
161
  * ```ts
159
162
  * import { type ICache } from "@daiso-tech/core";
160
163
  *
161
164
  * async function main(cache: ICache): Promise<void> {
162
- * const cacheA = cache.withNamespace("a");
165
+ * const cacheA = cache.withGroup("a");
163
166
  * await cacheA.add("a", 1);
164
167
  *
165
- * const cacheB = cache.withNamespace("b");
168
+ * const cacheB = cache.withGroup("b");
166
169
  * await cacheB.add("b", 2);
167
170
  *
168
171
  * // Will print { a: 1, b: null }
@@ -170,5 +173,5 @@ export type INamespacedCache<TType = unknown> = ICache<TType> & {
170
173
  * }
171
174
  * ```
172
175
  */
173
- withNamespace(namespace: OneOrMore<string>): ICache<TType>;
176
+ withGroup(group: OneOrMore<string>): ICache<TType>;
174
177
  };
@@ -2,46 +2,42 @@
2
2
  * @module Cache
3
3
  */
4
4
  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
5
  export type CacheEvents<TType = unknown> = {
19
- key_found: CacheEvent & {
6
+ key_found: {
7
+ group: string;
20
8
  key: string;
21
9
  value: TType;
22
10
  };
23
- key_not_found: CacheEvent & {
11
+ key_not_found: {
12
+ group: string;
24
13
  key: string;
25
14
  };
26
- key_added: CacheEvent & {
15
+ key_added: {
16
+ group: string;
27
17
  key: string;
28
18
  value: TType;
29
19
  ttl: TimeSpan | null;
30
20
  };
31
- key_updated: CacheEvent & {
21
+ key_updated: {
22
+ group: string;
32
23
  key: string;
33
24
  value: TType;
34
25
  };
35
- key_removed: CacheEvent & {
26
+ key_removed: {
27
+ group: string;
36
28
  key: string;
37
29
  };
38
- key_incremented: CacheEvent & {
30
+ key_incremented: {
31
+ group: string;
39
32
  key: string;
40
33
  value: number;
41
34
  };
42
- key_decremented: CacheEvent & {
35
+ key_decremented: {
36
+ group: string;
43
37
  key: string;
44
38
  value: number;
45
39
  };
46
- keys_cleared: CacheEvent;
40
+ keys_cleared: {
41
+ group: string;
42
+ };
47
43
  };
@@ -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,13 +23,13 @@ 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
28
  * const timeout = TimeSpan.fromMinutes(2);
28
29
  * describe("class: RedisCacheAdapter", () => {
29
30
  * let client: 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
35
  * client = new Redis(startedContainer.getConnectionUrl());
@@ -38,9 +39,15 @@ export type CacheAdapterTestSuiteSettings = {
38
39
  * await startedContainer.stop();
39
40
  * }, timeout.toMilliseconds());
40
41
  * cacheAdapterTestSuite({
41
- * createAdapter: () =>
42
+ * createAdapterA: () =>
42
43
  * new RedisCacheAdapter(client, {
43
- * serializer,
44
+ * serde,
45
+ * rootGroup: "@a"
46
+ * }),
47
+ * createAdapterB: () =>
48
+ * new RedisCacheAdapter(client, {
49
+ * serde,
50
+ * rootGroup: "@b"
44
51
  * }),
45
52
  * test,
46
53
  * beforeEach,
@@ -23,14 +23,14 @@ 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
28
  * const timeout = TimeSpan.fromMinutes(2);
29
29
  * describe("class: Cache", () => {
30
30
  * let client: Redis;
31
31
  * let startedContainer: StartedRedisContainer;
32
32
  * const eventBus = new EventBus(new MemoryEventBusAdapter()):
33
- * const serializer = new SuperJsonSerializer();
33
+ * const serde = new SuperJsonSerde();
34
34
  * beforeEach(async () => {
35
35
  * startedContainer = await new RedisContainer("redis:7.4.2").start();
36
36
  * client = new Redis(startedContainer.getConnectionUrl());
@@ -43,20 +43,20 @@ export type CacheTestSuiteSettings = {
43
43
  * createCacheA: () =>
44
44
  * new Cache(
45
45
  * new RedisCacheAdapter(client, {
46
- * serializer,
46
+ * serde,
47
47
  * }),
48
48
  * {
49
- * rootNamespace: "@a",
49
+ * rootGroup: "@a",
50
50
  * eventBus,
51
51
  * }
52
52
  * ),
53
53
  * createCacheB: () =>
54
54
  * new Cache(
55
55
  * new RedisCacheAdapter(client, {
56
- * serializer,
56
+ * serde,
57
57
  * }),
58
58
  * {
59
- * rootNamespace: "@b",
59
+ * rootGroup: "@b",
60
60
  * eventBus,
61
61
  * }
62
62
  * ),
@@ -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,37 @@ type KyselySqliteTables = {
24
25
  * @internal
25
26
  */
26
27
  type KyselySqliteSettings = {
27
- serializer: ISerializer<string>;
28
+ serde: ISerde<string>;
28
29
  enableTransactions: boolean;
29
30
  expiredKeysRemovalInterval?: TimeSpan;
30
31
  shouldRemoveExpiredKeys?: boolean;
32
+ rootGroup: OneOrMore<string>;
31
33
  };
32
34
  /**
33
35
  * @internal
34
36
  */
35
37
  export declare class KyselySqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
36
38
  private readonly db;
37
- private readonly serializer;
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
45
  constructor(db: Kysely<KyselySqliteTables>, settings: KyselySqliteSettings);
46
+ getGroup(): string;
47
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
43
48
  private withTransaction;
44
49
  removeExpiredKeys(): Promise<void>;
45
50
  init(): Promise<void>;
46
51
  deInit(): Promise<void>;
52
+ exists(key: string): Promise<boolean>;
47
53
  get(key: string): Promise<TType | null>;
48
54
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
49
55
  update(key: string, value: TType): Promise<boolean>;
50
56
  put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
51
57
  remove(key: string): Promise<boolean>;
52
58
  increment(key: string, value: number): Promise<boolean>;
53
- clear(prefix: string): Promise<void>;
59
+ clear(): Promise<void>;
54
60
  }
55
61
  export {};
@@ -2,33 +2,36 @@
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";
5
+ import type { ISerde } from "../../../../serde/contracts/_module";
6
+ import type { TimeSpan, IDeinitizable, IInitizable, OneOrMore } from "../../../../utilities/_module";
7
7
  import type { Client } from "@libsql/client";
8
8
  /**
9
9
  * @group Adapters
10
10
  */
11
11
  export type LibsqlCacheAdapterSettings = {
12
12
  tableName?: string;
13
- serializer: ISerializer<string>;
13
+ serde: ISerde<string>;
14
14
  enableTransactions?: boolean;
15
15
  expiredKeysRemovalInterval?: TimeSpan;
16
16
  shouldRemoveExpiredKeys?: boolean;
17
+ rootGroup: OneOrMore<string>;
17
18
  };
18
19
  /**
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
+ * To utilize the <i>LibsqlCacheAdapter</i>, you must install the <i>"@libsql/client"</i> package and supply a <i>{@link ISerde | string serde}</i>, such as <i>{@link SuperJsonSerde}</i>.
20
21
  * @group Adapters
21
22
  * @example
22
23
  * ```ts
23
- * import { LibsqlCacheAdapter, SuperJsonSerializer } from "@daiso-tech/core";
24
+ * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
24
25
  * import { createClient } from "@libsql/client";
25
26
  *
27
+ * const client = createClient({ url: "file:local.db" });
28
+ * const serde = new SuperJsonSerde();
29
+ * const cacheAdapter = new LibsqlCacheAdapter(client, {
30
+ * serde,
31
+ * rootGroup: "@global"
32
+ * });
33
+ *
26
34
  * (async () => {
27
- * const client = createClient({ url: "file:local.db" });
28
- * const serializer = new SuperJsonSerializer();
29
- * const cacheAdapter = new LibsqlCacheAdapter(client, {
30
- * serializer,
31
- * });
32
35
  * // You only need to call it once before using the adapter.
33
36
  * await cacheAdapter.init();
34
37
  * await cacheAdapter.add("a", 1);
@@ -41,14 +44,17 @@ export type LibsqlCacheAdapterSettings = {
41
44
  export declare class LibsqlCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
42
45
  private readonly cacheAdapter;
43
46
  constructor(client: Client, settings: LibsqlCacheAdapterSettings);
47
+ getGroup(): string;
48
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
44
49
  removeExpiredKeys(): Promise<void>;
45
50
  deInit(): Promise<void>;
46
51
  init(): Promise<void>;
52
+ exists(key: string): Promise<boolean>;
47
53
  get(key: string): Promise<TType | null>;
48
54
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
49
55
  update(key: string, value: TType): Promise<boolean>;
50
56
  put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
51
57
  remove(key: string): Promise<boolean>;
52
58
  increment(key: string, value: number): Promise<boolean>;
53
- clear(prefix: string): Promise<void>;
59
+ clear(): Promise<void>;
54
60
  }
@@ -2,7 +2,7 @@
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
6
  /**
7
7
  * To utilize the <i>MemoryCacheAdapter</i>, you must create instance of it.
8
8
  * @group Adapters
@@ -18,18 +18,24 @@ import type { TimeSpan } from "../../../../utilities/_module";
18
18
  * import { MemoryCacheAdapter } from "@daiso-tech/core";
19
19
  *
20
20
  * const map = new Map<any, any>();
21
- * const cacheAdapter = new MemoryCacheAdapter(map);
21
+ * const cacheAdapter = new MemoryCacheAdapter("@cache", map);
22
22
  * ```
23
23
  */
24
24
  export declare class MemoryCacheAdapter<TType> implements ICacheAdapter<TType> {
25
25
  private readonly map;
26
- constructor(map?: Map<string, TType>);
27
- private readonly timeoutIdMap;
26
+ private readonly group;
27
+ private readonly timeoutMap;
28
+ constructor(rootGroup: OneOrMore<string>, map?: Map<string, TType>);
29
+ private getGroupName;
30
+ private withPrefix;
31
+ exists(key: string): Promise<boolean>;
28
32
  get(key: string): Promise<TType | null>;
29
33
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
30
34
  update(key: string, value: TType): Promise<boolean>;
31
- put(key: string, value: TType, _ttl: TimeSpan | null): Promise<boolean>;
35
+ put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
32
36
  remove(key: string): Promise<boolean>;
33
37
  increment(key: string, value: number): Promise<boolean>;
34
- clear(prefix: string): Promise<void>;
38
+ clear(): Promise<void>;
39
+ getGroup(): string;
40
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
35
41
  }
@@ -2,16 +2,17 @@
2
2
  * @module Cache
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
- import type { TimeSpan, IInitizable } from "../../../../utilities/_module";
5
+ import { type TimeSpan, type IInitizable, type OneOrMore } from "../../../../utilities/_module";
6
6
  import type { ObjectId } from "mongodb";
7
7
  import { type Collection } from "mongodb";
8
- import type { ISerializer } from "../../../../serializer/contracts/_module";
8
+ import type { ISerde } from "../../../../serde/contracts/_module";
9
9
  /**
10
10
  * @group Adapters
11
11
  */
12
12
  export type MongodbCacheDocument = {
13
13
  _id: ObjectId;
14
14
  key: string;
15
+ group: string;
15
16
  value: number | string;
16
17
  expiresAt: Date | null;
17
18
  };
@@ -19,39 +20,49 @@ export type MongodbCacheDocument = {
19
20
  * @group Adapters
20
21
  */
21
22
  export type MongodbCacheAdapterSettings = {
22
- serializer: ISerializer<string>;
23
+ serde: ISerde<string>;
24
+ rootGroup: OneOrMore<string>;
23
25
  };
24
26
  /**
25
- * To utilize the <i>MongodbCacheAdapter</i>, you must install the <i>"mongodb"</i> package and supply a <i>{@link ISerializer | string serializer}</i>, such as <i>{@link SuperJsonSerializer}</i>.
27
+ * To utilize the <i>MongodbCacheAdapter</i>, you must install the <i>"mongodb"</i> package and supply a <i>{@link ISerde | string serde}</i>, such as <i>{@link SuperJsonSerde}</i>.
26
28
  * @group Adapters
27
29
  * @example
28
30
  * ```ts
29
- * import { MongodbCacheAdapter, SuperJsonSerializer } from "@daiso-tech/core";
31
+ * import { MongodbCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
30
32
  * import { MongoClient } from "mongodb";
31
33
  *
32
34
  * const client = new MongoClient("YOUR_MONGODB_CONNECTION_STRING");
33
35
  * const database = client.db("database");
34
36
  * const cacheCollection = database.collection("cache");
35
- * const serializer = new SuperJsonSerializer();
37
+ * const serde = new SuperJsonSerde();
36
38
  * const cacheAdapter = new MongodbCacheAdapter(cacheCollection, {
37
- * serializer,
39
+ * serde,
40
+ * rootGroup: "@global"
38
41
  * });
42
+ *
43
+ * (async () => {
39
44
  * // You only need to call it once before using the adapter.
40
45
  * await cacheAdapter.init();
41
46
  * await cacheAdapter.add("a", 1);
47
+ * })();
42
48
  * ```
43
49
  */
44
50
  export declare class MongodbCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable {
45
51
  private readonly collection;
46
52
  private static isMongodbIncrementError;
47
- private serializer;
48
- constructor(collection: Collection<MongodbCacheDocument>, { serializer }: MongodbCacheAdapterSettings);
53
+ private readonly mongodbSerde;
54
+ private readonly group;
55
+ private readonly serde;
56
+ constructor(collection: Collection<MongodbCacheDocument>, { serde, rootGroup }: MongodbCacheAdapterSettings);
57
+ getGroup(): string;
58
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
49
59
  init(): Promise<void>;
60
+ exists(key: string): Promise<boolean>;
50
61
  get(key: string): Promise<TType | null>;
51
62
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
52
63
  update(key: string, value: TType): Promise<boolean>;
53
64
  put(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
54
65
  remove(key: string): Promise<boolean>;
55
66
  increment(key: string, value: number): Promise<boolean>;
56
- clear(prefix: string): Promise<void>;
67
+ clear(): Promise<void>;
57
68
  }
@@ -2,17 +2,20 @@
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, TimeSpan } from "../../../../utilities/_module";
6
6
  /**
7
7
  * This <i>NoOpCacheAdapter</i> will do nothing and is used for easily mocking {@link ICacheAdapter} for testing.
8
8
  * @group Adapters
9
9
  */
10
10
  export declare class NoOpCacheAdapter<TType> implements ICacheAdapter<TType> {
11
+ getGroup(): string;
12
+ withGroup(_group: OneOrMore<string>): ICacheAdapter<TType>;
13
+ exists(_key: string): Promise<boolean>;
11
14
  get(_key: string): Promise<TType | null>;
12
15
  add(_key: string, _value: TType, _ttl: TimeSpan | null): Promise<boolean>;
13
16
  update(_key: string, _value: TType): Promise<boolean>;
14
17
  put(_key: string, _value: TType, _ttl: TimeSpan | null): Promise<boolean>;
15
18
  remove(_key: string): Promise<boolean>;
16
19
  increment(_key: string, _value: number): Promise<boolean>;
17
- clear(_prefix: string): Promise<void>;
20
+ clear(): Promise<void>;
18
21
  }
@@ -2,42 +2,47 @@
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 } from "../../../../utilities/_module";
6
+ import { type TimeSpan } from "../../../../utilities/_module";
6
7
  import { type Redis, type Result } from "ioredis";
7
- import type { ISerializer } from "../../../../serializer/contracts/_module";
8
+ import type { ISerde } from "../../../../serde/contracts/_module";
8
9
  declare module "ioredis" {
9
10
  interface RedisCommander<Context> {
10
- daiso_storage_increment(key: string, number: string): Result<number, Context>;
11
- daiso_storage_put(key: string, value: string): Result<string, Context>;
12
- daiso_storage_getOrAdd(key: string, valueToAdd: string): Result<string, Context>;
11
+ daiso_cache_increment(key: string, number: string): Result<number, Context>;
13
12
  }
14
13
  }
15
14
  /**
16
15
  * @group Adapters
17
16
  */
18
17
  export type RedisCacheAdapterSettings = {
19
- serializer: ISerializer<string>;
18
+ serde: ISerde<string>;
19
+ rootGroup: OneOrMore<string>;
20
20
  };
21
21
  /**
22
- * To utilize the <i>RedisCacheAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerializer | string serializer}</i>, such as <i>{@link SuperJsonSerializer}</i>.
22
+ * To utilize the <i>RedisCacheAdapter</i>, you must install the <i>"ioredis"</i> package and supply a <i>{@link ISerde | string serde}</i>, such as <i>{@link SuperJsonSerde}</i>.
23
23
  * @group Adapters
24
24
  * @example
25
25
  * ```ts
26
- * import { RedisCacheAdapter, SuperJsonSerializer } from "@daiso-tech/core";
26
+ * import { RedisCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
27
27
  * import Redis from "ioredis";
28
28
  *
29
29
  * const client = new Redis("YOUR_REDIS_CONNECTION_STRING");
30
- * const serializer = new SuperJsonSerializer();
30
+ * const serde = new SuperJsonSerde();
31
31
  * const cacheAdapter = new RedisCacheAdapter(client, {
32
- * serializer,
32
+ * serde,
33
+ * rootGroup: "@global"
33
34
  * });
34
35
  * ```
35
36
  */
36
37
  export declare class RedisCacheAdapter<TType> implements ICacheAdapter<TType> {
37
38
  private readonly client;
38
39
  private static isRedisTypeError;
39
- private serializer;
40
- constructor(client: Redis, { serializer }: RedisCacheAdapterSettings);
40
+ private readonly serde;
41
+ private readonly group;
42
+ constructor(client: Redis, { serde, rootGroup }: RedisCacheAdapterSettings);
43
+ private getGroupName;
44
+ private withPrefix;
45
+ exists(key: string): Promise<boolean>;
41
46
  get(key: string): Promise<TType | null>;
42
47
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
43
48
  update(key: string, value: TType): Promise<boolean>;
@@ -45,5 +50,7 @@ export declare class RedisCacheAdapter<TType> implements ICacheAdapter<TType> {
45
50
  remove(key: string): Promise<boolean>;
46
51
  private initIncrementCommand;
47
52
  increment(key: string, value: number): Promise<boolean>;
48
- clear(prefix: string): Promise<void>;
53
+ clear(): Promise<void>;
54
+ getGroup(): string;
55
+ withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
49
56
  }