@daiso-tech/core 0.21.0 → 0.22.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 (413) hide show
  1. package/dist/cjs/_module.js +2 -0
  2. package/dist/cjs/_module.js.map +1 -1
  3. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -9
  4. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  5. package/dist/cjs/cache/contracts/cache.events.js +13 -139
  6. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  7. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
  8. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  9. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js +729 -21
  10. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  11. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +1 -21
  12. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  13. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -1
  14. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  15. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -7
  16. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +0 -1
  18. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +3 -11
  20. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +0 -1
  22. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  23. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +6 -28
  24. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  25. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  26. package/dist/cjs/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
  28. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  29. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -13
  30. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  31. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
  32. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  33. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -7
  34. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  35. package/dist/cjs/cache/implementations/derivables/cache/_module.js +0 -1
  36. package/dist/cjs/cache/implementations/derivables/cache/_module.js.map +1 -1
  37. package/dist/cjs/cache/implementations/derivables/cache/cache.js +215 -103
  38. package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
  39. package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js +0 -1
  40. package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
  41. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
  42. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  43. package/dist/cjs/event-bus/contracts/_shared.js +3 -2
  44. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  45. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
  46. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  47. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +6 -27
  48. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  49. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
  50. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  51. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
  52. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  53. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
  54. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  55. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
  56. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  57. package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js +0 -1
  58. package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
  59. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
  60. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  61. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
  62. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
  63. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
  64. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  65. package/dist/cjs/lock/contracts/_module.js +24 -0
  66. package/dist/cjs/lock/contracts/_module.js.map +1 -0
  67. package/dist/cjs/lock/contracts/database-lock-adapter.contract.js +3 -0
  68. package/dist/cjs/lock/contracts/database-lock-adapter.contract.js.map +1 -0
  69. package/dist/cjs/lock/contracts/lock-adapter.contract.js +3 -0
  70. package/dist/cjs/lock/contracts/lock-adapter.contract.js.map +1 -0
  71. package/dist/cjs/lock/contracts/lock-provider-factory.contract.js +3 -0
  72. package/dist/cjs/lock/contracts/lock-provider-factory.contract.js.map +1 -0
  73. package/dist/cjs/lock/contracts/lock-provider.contract.js +3 -0
  74. package/dist/cjs/lock/contracts/lock-provider.contract.js.map +1 -0
  75. package/dist/cjs/lock/contracts/lock.contract.js +3 -0
  76. package/dist/cjs/lock/contracts/lock.contract.js.map +1 -0
  77. package/dist/cjs/lock/contracts/lock.errors.js +131 -0
  78. package/dist/cjs/lock/contracts/lock.errors.js.map +1 -0
  79. package/dist/cjs/lock/contracts/lock.events.js +44 -0
  80. package/dist/cjs/lock/contracts/lock.events.js.map +1 -0
  81. package/dist/cjs/lock/implementations/_module.js +20 -0
  82. package/dist/cjs/lock/implementations/_module.js.map +1 -0
  83. package/dist/cjs/lock/implementations/_shared/_module.js +20 -0
  84. package/dist/cjs/lock/implementations/_shared/_module.js.map +1 -0
  85. package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js +285 -0
  86. package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
  87. package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js +238 -0
  88. package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
  89. package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js +1841 -0
  90. package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
  91. package/dist/cjs/lock/implementations/adapters/_module.js +22 -0
  92. package/dist/cjs/lock/implementations/adapters/_module.js.map +1 -0
  93. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js +18 -0
  94. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
  95. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +126 -0
  96. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
  97. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js +18 -0
  98. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
  99. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +61 -0
  100. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
  101. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js +18 -0
  102. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
  103. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +107 -0
  104. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
  105. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js +18 -0
  106. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
  107. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +148 -0
  108. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
  109. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js +18 -0
  110. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
  111. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +131 -0
  112. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
  113. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js +18 -0
  114. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
  115. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +60 -0
  116. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
  117. package/dist/cjs/lock/implementations/derivables/_module.js +19 -0
  118. package/dist/cjs/lock/implementations/derivables/_module.js.map +1 -0
  119. package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js +18 -0
  120. package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
  121. package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js +80 -0
  122. package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
  123. package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js +162 -0
  124. package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
  125. package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js +306 -0
  126. package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
  127. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js +18 -0
  128. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
  129. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +78 -0
  130. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
  131. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  132. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  133. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  134. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  135. package/dist/cjs/utilities/contracts/_module.js +1 -0
  136. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  137. package/dist/cjs/utilities/contracts/serde-registrable.contract.js +3 -0
  138. package/dist/cjs/utilities/contracts/serde-registrable.contract.js.map +1 -0
  139. package/dist/cjs/utilities/functions.js +4 -0
  140. package/dist/cjs/utilities/functions.js.map +1 -1
  141. package/dist/esm/_module.js +2 -0
  142. package/dist/esm/_module.js.map +1 -1
  143. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -9
  144. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  145. package/dist/esm/cache/contracts/cache.events.js +11 -138
  146. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  147. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +5 -24
  148. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  149. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +731 -23
  150. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  151. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +1 -21
  152. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  153. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -1
  154. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  155. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -7
  156. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  157. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +0 -1
  158. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  159. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +3 -11
  160. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  161. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +0 -1
  162. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  163. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +6 -28
  164. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  165. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js +0 -3
  166. package/dist/esm/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  167. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
  168. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  169. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -13
  170. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  171. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
  172. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  173. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -7
  174. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  175. package/dist/esm/cache/implementations/derivables/cache/_module.js +0 -1
  176. package/dist/esm/cache/implementations/derivables/cache/_module.js.map +1 -1
  177. package/dist/esm/cache/implementations/derivables/cache/cache.js +216 -104
  178. package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
  179. package/dist/esm/cache/implementations/derivables/cache-factory/_module.js +0 -1
  180. package/dist/esm/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
  181. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
  182. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  183. package/dist/esm/event-bus/contracts/_shared.js +3 -2
  184. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  185. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +4 -15
  186. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  187. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +7 -28
  188. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  189. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
  190. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  191. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
  192. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  193. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
  194. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  195. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
  196. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  197. package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js +0 -1
  198. package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
  199. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
  200. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  201. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
  202. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
  203. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
  204. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  205. package/dist/esm/lock/contracts/_module.js +8 -0
  206. package/dist/esm/lock/contracts/_module.js.map +1 -0
  207. package/dist/esm/lock/contracts/database-lock-adapter.contract.js +1 -0
  208. package/dist/esm/lock/contracts/database-lock-adapter.contract.js.map +1 -0
  209. package/dist/esm/lock/contracts/lock-adapter.contract.js +1 -0
  210. package/dist/esm/lock/contracts/lock-adapter.contract.js.map +1 -0
  211. package/dist/esm/lock/contracts/lock-provider-factory.contract.js +1 -0
  212. package/dist/esm/lock/contracts/lock-provider-factory.contract.js.map +1 -0
  213. package/dist/esm/lock/contracts/lock-provider.contract.js +1 -0
  214. package/dist/esm/lock/contracts/lock-provider.contract.js.map +1 -0
  215. package/dist/esm/lock/contracts/lock.contract.js +1 -0
  216. package/dist/esm/lock/contracts/lock.contract.js.map +1 -0
  217. package/dist/esm/lock/contracts/lock.errors.js +120 -0
  218. package/dist/esm/lock/contracts/lock.errors.js.map +1 -0
  219. package/dist/esm/lock/contracts/lock.events.js +32 -0
  220. package/dist/esm/lock/contracts/lock.events.js.map +1 -0
  221. package/dist/esm/lock/implementations/_module.js +4 -0
  222. package/dist/esm/lock/implementations/_module.js.map +1 -0
  223. package/dist/esm/lock/implementations/_shared/_module.js +4 -0
  224. package/dist/esm/lock/implementations/_shared/_module.js.map +1 -0
  225. package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js +282 -0
  226. package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
  227. package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js +235 -0
  228. package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
  229. package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js +1838 -0
  230. package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
  231. package/dist/esm/lock/implementations/adapters/_module.js +6 -0
  232. package/dist/esm/lock/implementations/adapters/_module.js.map +1 -0
  233. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js +2 -0
  234. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
  235. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +122 -0
  236. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
  237. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js +2 -0
  238. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
  239. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +57 -0
  240. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
  241. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js +2 -0
  242. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
  243. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +103 -0
  244. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
  245. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js +2 -0
  246. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
  247. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +144 -0
  248. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
  249. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js +2 -0
  250. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
  251. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +127 -0
  252. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
  253. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js +2 -0
  254. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
  255. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +56 -0
  256. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
  257. package/dist/esm/lock/implementations/derivables/_module.js +3 -0
  258. package/dist/esm/lock/implementations/derivables/_module.js.map +1 -0
  259. package/dist/esm/lock/implementations/derivables/lock-provider/_module.js +2 -0
  260. package/dist/esm/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
  261. package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js +76 -0
  262. package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
  263. package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js +158 -0
  264. package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
  265. package/dist/esm/lock/implementations/derivables/lock-provider/lock.js +302 -0
  266. package/dist/esm/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
  267. package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js +2 -0
  268. package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
  269. package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +74 -0
  270. package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
  271. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +3 -0
  272. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -1
  273. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +15 -0
  274. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  275. package/dist/esm/utilities/contracts/_module.js +1 -0
  276. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  277. package/dist/esm/utilities/contracts/serde-registrable.contract.js +1 -0
  278. package/dist/esm/utilities/contracts/serde-registrable.contract.js.map +1 -0
  279. package/dist/esm/utilities/functions.js +4 -0
  280. package/dist/esm/utilities/functions.js.map +1 -1
  281. package/dist/types/_module.d.ts +2 -0
  282. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +2 -2
  283. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +2 -6
  284. package/dist/types/cache/contracts/cache-factory.contract.d.ts +1 -2
  285. package/dist/types/cache/contracts/cache.contract.d.ts +116 -8
  286. package/dist/types/cache/contracts/cache.events.d.ts +24 -90
  287. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +2 -9
  288. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +5 -15
  289. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +0 -1
  290. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
  291. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +23 -30
  292. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +0 -1
  293. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +8 -19
  294. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +0 -1
  295. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +16 -27
  296. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +0 -1
  297. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +0 -1
  298. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +12 -23
  299. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
  300. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +23 -30
  301. package/dist/types/cache/implementations/derivables/cache/_module.d.ts +0 -1
  302. package/dist/types/cache/implementations/derivables/cache/cache.d.ts +38 -27
  303. package/dist/types/cache/implementations/derivables/cache-factory/_module.d.ts +0 -1
  304. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory.d.ts +60 -26
  305. package/dist/types/collection/contracts/async-collection.contract.d.ts +68 -8
  306. package/dist/types/event-bus/contracts/_shared.d.ts +3 -4
  307. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +1 -1
  308. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +5 -24
  309. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +2 -10
  310. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +3 -13
  311. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +0 -1
  312. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +8 -18
  313. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +0 -1
  314. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +11 -20
  315. package/dist/types/event-bus/implementations/derivables/event-bus/_module.d.ts +0 -1
  316. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus.d.ts +29 -20
  317. package/dist/types/event-bus/implementations/derivables/event-bus-factory/_module.d.ts +0 -1
  318. package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +49 -46
  319. package/dist/types/lock/contracts/_module.d.ts +7 -0
  320. package/dist/types/lock/contracts/database-lock-adapter.contract.d.ts +49 -0
  321. package/dist/types/lock/contracts/lock-adapter.contract.d.ts +48 -0
  322. package/dist/types/lock/contracts/lock-provider-factory.contract.d.ts +36 -0
  323. package/dist/types/lock/contracts/lock-provider.contract.d.ts +92 -0
  324. package/dist/types/lock/contracts/lock.contract.d.ts +219 -0
  325. package/dist/types/lock/contracts/lock.errors.d.ts +66 -0
  326. package/dist/types/lock/contracts/lock.events.d.ts +83 -0
  327. package/dist/types/lock/implementations/_module.d.ts +3 -0
  328. package/dist/types/lock/implementations/_shared/_module.d.ts +3 -0
  329. package/dist/types/lock/implementations/_shared/database-lock-adapter.test-suite.d.ts +21 -0
  330. package/dist/types/lock/implementations/_shared/lock-adapter.test-suite.d.ts +21 -0
  331. package/dist/types/lock/implementations/_shared/lock-provider.test-suite.d.ts +23 -0
  332. package/dist/types/lock/implementations/adapters/_module.d.ts +5 -0
  333. package/dist/types/lock/implementations/adapters/kysely-lock-adapter/_module.d.ts +1 -0
  334. package/dist/types/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +52 -0
  335. package/dist/types/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +1 -0
  336. package/dist/types/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +58 -0
  337. package/dist/types/lock/implementations/adapters/memory-lock-adapter/_module.d.ts +1 -0
  338. package/dist/types/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +52 -0
  339. package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/_module.d.ts +1 -0
  340. package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +60 -0
  341. package/dist/types/lock/implementations/adapters/redis-lock-adapter/_module.d.ts +1 -0
  342. package/dist/types/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +57 -0
  343. package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +1 -0
  344. package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +57 -0
  345. package/dist/types/lock/implementations/derivables/_module.d.ts +2 -0
  346. package/dist/types/lock/implementations/derivables/lock-provider/_module.d.ts +1 -0
  347. package/dist/types/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +23 -0
  348. package/dist/types/lock/implementations/derivables/lock-provider/lock-provider.d.ts +89 -0
  349. package/dist/types/lock/implementations/derivables/lock-provider/lock.d.ts +73 -0
  350. package/dist/types/lock/implementations/derivables/lock-provider-factory/_module.d.ts +1 -0
  351. package/dist/types/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +98 -0
  352. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +3 -2
  353. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +2 -1
  354. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +2 -1
  355. package/dist/types/utilities/contracts/_module.d.ts +1 -0
  356. package/dist/types/utilities/contracts/serde-registrable.contract.d.ts +11 -0
  357. package/dist/types/utilities/types.d.ts +3 -1
  358. package/package.json +5 -3
  359. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -56
  360. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
  361. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -26
  362. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
  363. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -44
  364. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
  365. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -32
  366. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
  367. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -56
  368. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
  369. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js +0 -56
  370. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
  371. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -83
  372. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
  373. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -26
  374. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
  375. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -38
  376. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
  377. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -56
  378. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
  379. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -71
  380. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
  381. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -52
  382. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
  383. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -22
  384. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
  385. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -40
  386. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
  387. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -28
  388. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
  389. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -52
  390. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
  391. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js +0 -52
  392. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
  393. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -79
  394. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
  395. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -22
  396. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
  397. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -34
  398. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
  399. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -52
  400. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
  401. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -67
  402. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
  403. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +0 -48
  404. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +0 -26
  405. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +0 -50
  406. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +0 -32
  407. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +0 -48
  408. package/dist/types/cache/implementations/derivables/cache/cache-settings.d.ts +0 -73
  409. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory-settings.d.ts +0 -108
  410. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +0 -27
  411. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +0 -36
  412. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus-settings.d.ts +0 -62
  413. package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.d.ts +0 -92
@@ -8,7 +8,7 @@ import type { CacheEvents } from "../../cache/contracts/_module";
8
8
  import type { TimeSpan } from "../../utilities/_module";
9
9
  import type { LazyPromise } from "../../async/_module";
10
10
  /**
11
- * The <i>ICacheListener</i> contract defines a way for listening <i>{@link ICache}</i> crud operations.
11
+ * The <i>ICacheListener</i> contract defines a way for listening <i>{@link ICache}</i> operations.
12
12
  * @group Contracts
13
13
  */
14
14
  export type ICacheListener<TType = unknown> = IEventListener<CacheEvents<TType>>;
@@ -124,6 +124,43 @@ export type ICache<TType = unknown> = ICacheListener & {
124
124
  * // -1
125
125
  * }
126
126
  * ```
127
+ * You can pass a function as default value.
128
+ * @example
129
+ * ```ts
130
+ * import type { ICache } from "@daiso-tech/core";
131
+ *
132
+ * // Asume the inputed cache is empty
133
+ * async function main(cache: ICache): Promise<void> {
134
+ * await cache.getOr("a", () => -1);
135
+ * // -1
136
+ * }
137
+ * ```
138
+ * You can pass an async function as default value.
139
+ * @example
140
+ * ```ts
141
+ * import type { ICache } from "@daiso-tech/core";
142
+ *
143
+ * // Asume the inputed cache is empty
144
+ * async function main(cache: ICache): Promise<void> {
145
+ * await cache.getOr("a", async () => -1);
146
+ * // -1
147
+ * }
148
+ * ```
149
+ * You can pass an <i>{@link LazyPromise}</i> as default value.
150
+ * @example
151
+ * ```ts
152
+ * import type { ICache, IAsyncCollection } from "@daiso-tech/core";
153
+ *
154
+ * type IPerson = {
155
+ * name: string;
156
+ * age: number;
157
+ * };
158
+ *
159
+ * // Asume the inputed cache is empty
160
+ * async function main(cache: ICache, collection: IAsyncCollection<IPerson>): Promise<void> {
161
+ * await cache.getOr("a", collection.first(person => person.name === "a"));
162
+ * }
163
+ * ```
127
164
  */
128
165
  getOr(key: string, defaultValue: AsyncLazyable<TType>): LazyPromise<TType>;
129
166
  /**
@@ -138,6 +175,43 @@ export type ICache<TType = unknown> = ICacheListener & {
138
175
  * // { a: -1, b: -2, c: -3 }
139
176
  * }
140
177
  * ```
178
+ * You can pass a function as default value.
179
+ * @example
180
+ * ```ts
181
+ * import type { ICache } from "@daiso-tech/core";
182
+ *
183
+ * // Asume the inputed cache is empty
184
+ * async function main(cache: ICache): Promise<void> {
185
+ * await cache.getOrMany({ a: () => -1 });
186
+ * // -1
187
+ * }
188
+ * ```
189
+ * You can pass an async function as default value.
190
+ * @example
191
+ * ```ts
192
+ * import type { ICache } from "@daiso-tech/core";
193
+ *
194
+ * // Asume the inputed cache is empty
195
+ * async function main(cache: ICache): Promise<void> {
196
+ * await cache.getOrMany({ a: async () => -1 });
197
+ * // -1
198
+ * }
199
+ * ```
200
+ * You can pass an <i>{@link LazyPromise}</i> as default value.
201
+ * @example
202
+ * ```ts
203
+ * import type { ICache, IAsyncCollection } from "@daiso-tech/core";
204
+ *
205
+ * type IPerson = {
206
+ * name: string;
207
+ * age: number;
208
+ * };
209
+ *
210
+ * // Asume the inputed cache is empty
211
+ * async function main(cache: ICache, collection: IAsyncCollection<IPerson>): Promise<void> {
212
+ * await cache.getOrMany({ a: collection.first(person => person.name === "a") });
213
+ * }
214
+ * ```
141
215
  */
142
216
  getOrMany<TKeys extends string>(keysWithDefaults: Record<TKeys, AsyncLazyable<TType>>): LazyPromise<Record<TKeys, TType>>;
143
217
  /**
@@ -420,9 +494,43 @@ export type ICache<TType = unknown> = ICacheListener & {
420
494
  * async function main(cache: ICache): Promise<void> {
421
495
  * await cache.getOrAdd("a", 1);
422
496
  * // 1
497
+ * }
498
+ * ```
499
+ * You can pass a function as default value.
500
+ * @example
501
+ * ```ts
502
+ * import type { ICache } from "@daiso-tech/core";
423
503
  *
504
+ * // Asume the inputed cache is empty
505
+ * async function main(cache: ICache): Promise<void> {
506
+ * await cache.getOrAdd("a", () => -1);
507
+ * // -1
508
+ * }
509
+ * ```
510
+ * You can pass an async function as default value.
511
+ * @example
512
+ * ```ts
513
+ * import type { ICache } from "@daiso-tech/core";
514
+ *
515
+ * // Asume the inputed cache is empty
516
+ * async function main(cache: ICache): Promise<void> {
424
517
  * await cache.getOrAdd("a", async () => -1);
425
- * // 1
518
+ * // -1
519
+ * }
520
+ * ```
521
+ * You can pass an <i>{@link LazyPromise}</i> as default value.
522
+ * @example
523
+ * ```ts
524
+ * import type { ICache, IAsyncCollection } from "@daiso-tech/core";
525
+ *
526
+ * type IPerson = {
527
+ * name: string;
528
+ * age: number;
529
+ * };
530
+ *
531
+ * // Asume the inputed cache is empty
532
+ * async function main(cache: ICache, collection: IAsyncCollection<IPerson>): Promise<void> {
533
+ * await cache.getOrAdd("a", collection.first(person => person.name === "a"));
426
534
  * }
427
535
  * ```
428
536
  */
@@ -485,10 +593,10 @@ export type ICache<TType = unknown> = ICacheListener & {
485
593
  * The <i>getGroup</i> method returns the group name.
486
594
  * @example
487
595
  * ```ts
488
- * import type { ICache } from "@daiso-tech/core";
596
+ * import type { IGroupableCache } from "@daiso-tech/core";
489
597
  *
490
598
  * // Asume the inputed cache is empty and the default rootGroup is "@global"
491
- * async function main(cache: ICache): Promise<void> {
599
+ * async function main(cache: IGroupableCache): Promise<void> {
492
600
  * console.log(cache.getGroup())
493
601
  *
494
602
  * const cacheA = cache.withGroup("a");
@@ -502,20 +610,20 @@ export type ICache<TType = unknown> = ICacheListener & {
502
610
  };
503
611
  /**
504
612
  * The <i>IGroupableCache</i> contract defines a way for storing data as key-value pairs independent of data storage.
505
- * It commes with one extra method which is useful for multitennat applications compared to <i>ICache</i>.
613
+ * It commes with one extra method which is useful for multitennat applications compared to <i>{@link ICache}</i>.
506
614
  * @group Contracts
507
615
  */
508
616
  export type IGroupableCache<TType = unknown> = ICache<TType> & {
509
617
  /**
510
618
  * The <i>withGroup</i> method returns a new <i>{@link ICache}</i> instance that groups keys together.
511
- * Only keys in the group can be updated, removed, or retrieved, leaving keys outside the group unaffected.
619
+ * Only keys in the same group will be updated, removed, or retrieved, leaving keys outside the group unaffected.
512
620
  * This useful for multitennat applications.
513
621
  * @example
514
622
  * ```ts
515
- * import type { ICache } from "@daiso-tech/core";
623
+ * import type { IGroupableCache } from "@daiso-tech/core";
516
624
  *
517
625
  * // Asume the inputed cache is empty and the default rootGroup is "@global"
518
- * async function main(cache: ICache): Promise<void> {
626
+ * async function main(cache: IGroupableCache): Promise<void> {
519
627
  * const cacheA = cache.withGroup("a");
520
628
  * await cacheA.add("a", 1);
521
629
  *
@@ -7,153 +7,87 @@ import type { OneOrMore, TimeSpan } from "../../utilities/_module";
7
7
  /**
8
8
  * @group Events
9
9
  */
10
- export type KeyFoundCacheEventFields<TType> = {
10
+ export declare class KeyFoundCacheEvent<TType = unknown> extends BaseEvent<{
11
11
  group: string;
12
12
  key: string;
13
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>;
14
+ }> {
25
15
  }
26
16
  /**
27
17
  * @group Events
28
18
  */
29
- export type KeyNotFoundCacheEventFields = {
30
- group: string;
31
- key: string;
32
- };
33
- /**
34
- * @group Events
35
- */
36
- export declare class KeyNotFoundCacheEvent extends BaseEvent<KeyNotFoundCacheEventFields> {
19
+ export declare class KeyNotFoundCacheEvent extends BaseEvent<{
37
20
  group: string;
38
21
  key: string;
39
- static deserialize(serializedEvent: KeyNotFoundCacheEventFields): KeyNotFoundCacheEvent;
40
- constructor(fields: KeyNotFoundCacheEventFields);
41
- serialize(): KeyNotFoundCacheEventFields;
22
+ }> {
42
23
  }
43
24
  /**
44
25
  * @group Events
45
26
  */
46
- export type KeyAddedCacheEventFields<TType = unknown> = {
27
+ export declare class KeyAddedCacheEvent<TType = unknown> extends BaseEvent<{
47
28
  group: string;
48
29
  key: string;
49
30
  value: TType;
50
31
  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>;
32
+ }> {
63
33
  }
64
34
  /**
65
35
  * @group Events
66
36
  */
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>> {
37
+ export declare class KeyUpdatedCacheEvent<TType = unknown> extends BaseEvent<{
76
38
  group: string;
77
39
  key: string;
78
40
  value: TType;
79
- static deserialize<TType>(serializedEvent: KeyUpdatedCacheEventFields<TType>): KeyUpdatedCacheEvent<TType>;
80
- constructor(fields: KeyUpdatedCacheEventFields<TType>);
81
- serialize(): KeyUpdatedCacheEventFields<TType>;
41
+ }> {
82
42
  }
83
43
  /**
84
44
  * @group Events
85
45
  */
86
- export type KeyRemovedCacheEventFields = {
46
+ export declare class KeyRemovedCacheEvent extends BaseEvent<{
87
47
  group: string;
88
48
  key: string;
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;
49
+ }> {
99
50
  }
100
51
  /**
101
52
  * @group Events
102
53
  */
103
- export type KeyIncrementedCacheEventFields = {
54
+ export declare class KeyIncrementedCacheEvent extends BaseEvent<{
104
55
  group: string;
105
56
  key: string;
106
57
  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;
58
+ }> {
118
59
  }
119
60
  /**
120
61
  * @group Events
121
62
  */
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> {
63
+ export declare class KeyDecrementedCacheEvent extends BaseEvent<{
131
64
  group: string;
132
65
  key: string;
133
66
  value: number;
134
- static deserialize(serializedEvent: KeyDecrementedCacheEventFields): KeyDecrementedCacheEvent;
135
- constructor(fields: KeyDecrementedCacheEventFields);
136
- serialize(): KeyDecrementedCacheEventFields;
67
+ }> {
137
68
  }
138
69
  /**
139
70
  * @group Events
140
71
  */
141
- export type KeysClearedCacheEventFields = {
72
+ export declare class KeysClearedCacheEvent extends BaseEvent<{
142
73
  group: string;
143
- };
74
+ }> {
75
+ }
144
76
  /**
145
77
  * @group Events
146
78
  */
147
- export declare class KeysClearedCacheEvent extends BaseEvent<KeysClearedCacheEventFields> {
79
+ export declare class UnexpectedCacheErrorEvent extends BaseEvent<{
148
80
  group: string;
149
- static deserialize(serializedEvent: KeysClearedCacheEventFields): KeysClearedCacheEvent;
150
- constructor(fields: KeysClearedCacheEventFields);
151
- serialize(): KeysClearedCacheEventFields;
81
+ key?: string;
82
+ value?: unknown;
83
+ method: string;
84
+ error: unknown;
85
+ }> {
152
86
  }
153
87
  /**
154
88
  * @group Events
155
89
  */
156
- export type CacheEvents<TType = unknown> = KeyFoundCacheEvent<TType> | KeyNotFoundCacheEvent | KeyAddedCacheEvent<TType> | KeyUpdatedCacheEvent<TType> | KeyRemovedCacheEvent | KeyIncrementedCacheEvent | KeyDecrementedCacheEvent | KeysClearedCacheEvent;
90
+ export type CacheEvents<TType = unknown> = KeyFoundCacheEvent<TType> | KeyNotFoundCacheEvent | KeyAddedCacheEvent<TType> | KeyUpdatedCacheEvent<TType> | KeyRemovedCacheEvent | KeyIncrementedCacheEvent | KeyDecrementedCacheEvent | KeysClearedCacheEvent | UnexpectedCacheErrorEvent;
157
91
  /**
158
92
  * The <i>registerCacheEvents</i> function registers all <i>{@link IGroupableCache}</i> related events with <i>IFlexibleSerde</i>, ensuring they will properly be serialized and deserialized.
159
93
  * @group Events
@@ -12,8 +12,7 @@ export type CacheAdapterTestSuiteSettings = {
12
12
  test: TestAPI;
13
13
  describe: SuiteAPI;
14
14
  beforeEach: typeof beforeEach;
15
- createAdapterA: () => Promisable<ICacheAdapter>;
16
- createAdapterB: () => Promisable<ICacheAdapter>;
15
+ createAdapter: () => Promisable<ICacheAdapter>;
17
16
  };
18
17
  /**
19
18
  * The <i>cacheAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ICacheAdapter}</i> with <i>vitest</i>.
@@ -39,18 +38,12 @@ export type CacheAdapterTestSuiteSettings = {
39
38
  * await startedContainer.stop();
40
39
  * }, TIMEOUT.toMilliseconds());
41
40
  * cacheAdapterTestSuite({
42
- * createAdapterA: () =>
41
+ * createAdapter: () =>
43
42
  * new RedisCacheAdapter({
44
43
  * database,
45
44
  * serde,
46
45
  * rootGroup: "@a"
47
46
  * }),
48
- * createAdapterB: () =>
49
- * new RedisCacheAdapter({
50
- * database,
51
- * serde,
52
- * rootGroup: "@b"
53
- * }),
54
47
  * test,
55
48
  * beforeEach,
56
49
  * expect,
@@ -2,7 +2,7 @@
2
2
  * @module Cache
3
3
  */
4
4
  import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
- import { type ICache } from "../../../cache/contracts/_module";
5
+ import { type IGroupableCache } from "../../../cache/contracts/_module";
6
6
  import { type Promisable } from "../../../utilities/_module";
7
7
  /**
8
8
  * @group Utilities
@@ -12,8 +12,7 @@ export type CacheTestSuiteSettings = {
12
12
  test: TestAPI;
13
13
  describe: SuiteAPI;
14
14
  beforeEach: typeof beforeEach;
15
- createCacheA: () => Promisable<ICache>;
16
- createCacheB: () => Promisable<ICache>;
15
+ createCache: () => Promisable<IGroupableCache>;
17
16
  };
18
17
  /**
19
18
  * The <i>cacheTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ICache}</i> with <i>vitest</i>.
@@ -23,14 +22,14 @@ export type CacheTestSuiteSettings = {
23
22
  * import Redis from "ioredis";
24
23
  * import { afterEach, beforeEach, describe, expect, test } from "vitest";
25
24
  * import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
26
- * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemoryEventBusAdapter } from "@daiso-tech/core";
25
+ * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemorycacheAdapter } from "@daiso-tech/core";
27
26
  *
28
27
  * const TIMEOUT = TimeSpan.fromMinutes(2);
29
28
  * describe("class: Cache", () => {
30
29
  * let database: Redis;
31
30
  * let startedContainer: StartedRedisContainer;
32
31
  * const eventBus = new EventBus({
33
- * adapter: new MemoryEventBusAdapter({
32
+ * adapter: new MemorycacheAdapter({
34
33
  * rootGroup: "@global"
35
34
  * })
36
35
  * }):
@@ -44,7 +43,7 @@ export type CacheTestSuiteSettings = {
44
43
  * await startedContainer.stop();
45
44
  * }, TIMEOUT.toMilliseconds());
46
45
  * cacheTestSuite({
47
- * createCacheA: () =>
46
+ * createCache: () =>
48
47
  * new Cache(
49
48
  * new RedisCacheAdapter({
50
49
  * database,
@@ -53,15 +52,6 @@ export type CacheTestSuiteSettings = {
53
52
  * }),
54
53
  * { eventBus }
55
54
  * ),
56
- * createCacheB: () =>
57
- * new Cache(
58
- * new RedisCacheAdapter({
59
- * database,
60
- * serde,
61
- * rootGroup: "@b",
62
- * }),
63
- * { eventBus }
64
- * ),
65
55
  * test,
66
56
  * beforeEach,
67
57
  * expect,
@@ -50,7 +50,6 @@ export declare class KyselySqliteCacheAdapter<TType = unknown> implements ICache
50
50
  removeExpiredKeys(): Promise<void>;
51
51
  init(): Promise<void>;
52
52
  deInit(): Promise<void>;
53
- exists(key: string): Promise<boolean>;
54
53
  get(key: string): Promise<TType | null>;
55
54
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
56
55
  update(key: string, value: TType): Promise<boolean>;
@@ -1,2 +1 @@
1
- export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
2
1
  export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter";
@@ -3,30 +3,25 @@
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
5
  import type { TimeSpan, IDeinitizable, IInitizable } 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";
6
+ import type { ISerde } from "../../../../serde/contracts/_module";
7
+ import type { Client } from "@libsql/client";
8
+ /**
9
+ * @group Adapters
10
+ */
11
+ export type LibsqlCacheAdapterSettings = {
12
+ database: Client;
13
+ tableName?: string;
14
+ serde: ISerde<string>;
15
+ enableTransactions?: boolean;
16
+ expiredKeysRemovalInterval?: TimeSpan;
17
+ shouldRemoveExpiredKeys?: boolean;
18
+ rootGroup: string;
19
+ };
8
20
  /**
9
21
  * 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>.
10
22
  * @group Adapters
11
23
  */
12
24
  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>;
30
25
  private readonly cacheAdapter;
31
26
  /***
32
27
  * @example
@@ -34,18 +29,15 @@ export declare class LibsqlCacheAdapter<TType = unknown> implements ICacheAdapte
34
29
  * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
35
30
  * import { createClient } from "@libsql/client";
36
31
  *
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
32
  * (async () => {
33
+ * const database = createClient({ url: "file:local.db" });
34
+ * const serde = new SuperJsonSerde();
35
+ * const cacheAdapter = new LibsqlCacheAdapter({
36
+ * database,
37
+ * serde,
38
+ * rootGroup: "@global"
39
+ * });
46
40
  * await cacheAdapter.init();
47
- * await cacheAdapter.add("a", 1);
48
- * await cacheAdapter.deInit();
49
41
  * })();
50
42
  * ```
51
43
  */
@@ -55,13 +47,14 @@ export declare class LibsqlCacheAdapter<TType = unknown> implements ICacheAdapte
55
47
  removeExpiredKeys(): Promise<void>;
56
48
  /**
57
49
  * Removes the table where the cache values are stored and removes the table indexes.
50
+ * Note all cache data will be removed.
58
51
  */
59
52
  deInit(): Promise<void>;
60
53
  /**
61
54
  * Creates the table where the cache values are stored and it's related indexes.
55
+ * Note the <i>init</i> method needs to be called before using the adapter.
62
56
  */
63
57
  init(): Promise<void>;
64
- exists(key: string): Promise<boolean>;
65
58
  get(key: string): Promise<TType | null>;
66
59
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
67
60
  update(key: string, value: TType): Promise<boolean>;
@@ -1,2 +1 @@
1
- export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
2
1
  export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter";
@@ -3,28 +3,18 @@
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
5
  import { 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
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type MemoryCacheAdapterSettings = {
10
+ rootGroup: string;
11
+ map?: Map<string, unknown>;
12
+ };
8
13
  /**
9
14
  * To utilize the <i>MemoryCacheAdapter</i>, you must create instance of it.
10
15
  * @group Adapters
11
16
  */
12
17
  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
18
  private readonly group;
29
19
  private readonly timeoutMap;
30
20
  private readonly map;
@@ -50,9 +40,8 @@ export declare class MemoryCacheAdapter<TType = unknown> implements ICacheAdapte
50
40
  * ```
51
41
  */
52
42
  constructor(settings: MemoryCacheAdapterSettings);
53
- private getGroupName;
43
+ private getPrefix;
54
44
  private withPrefix;
55
- exists(key: string): Promise<boolean>;
56
45
  get(key: string): Promise<TType | null>;
57
46
  add(key: string, value: TType, ttl: TimeSpan | null): Promise<boolean>;
58
47
  update(key: string, value: TType): Promise<boolean>;
@@ -1,2 +1 @@
1
- export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings";
2
1
  export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter";