@daiso-tech/core 0.16.0 → 0.19.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 (354) hide show
  1. package/dist/cjs/async/_module.js +1 -1
  2. package/dist/cjs/async/_module.js.map +1 -1
  3. package/dist/cjs/async/backof-policies/_module.js +1 -0
  4. package/dist/cjs/async/backof-policies/_module.js.map +1 -1
  5. package/dist/cjs/async/utilities/_module.js +3 -0
  6. package/dist/cjs/async/utilities/_module.js.map +1 -1
  7. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js +16 -22
  8. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  9. package/dist/cjs/cache/contracts/cache.errors.js +19 -0
  10. package/dist/cjs/cache/contracts/cache.errors.js.map +1 -1
  11. package/dist/cjs/cache/contracts/cache.events.js +156 -0
  12. package/dist/cjs/cache/contracts/cache.events.js.map +1 -1
  13. package/dist/cjs/cache/implementations/_shared/_module.js +1 -0
  14. package/dist/cjs/cache/implementations/_shared/_module.js.map +1 -1
  15. package/dist/cjs/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  16. package/dist/cjs/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  17. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  18. package/dist/cjs/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  19. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  20. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  21. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +56 -0
  22. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  23. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +18 -14
  24. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  25. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  26. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +26 -0
  28. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  29. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  30. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  31. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  32. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  33. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +44 -0
  34. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  35. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  36. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  37. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  38. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  39. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +32 -0
  40. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  41. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +27 -20
  42. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  43. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  44. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  45. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +56 -0
  46. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  47. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +19 -15
  48. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  49. package/dist/cjs/cache/implementations/derivables/_module.js +3 -1
  50. package/dist/cjs/cache/implementations/derivables/_module.js.map +1 -1
  51. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js +83 -0
  52. package/dist/cjs/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  53. package/dist/cjs/cache/implementations/derivables/cache-factory.js +52 -18
  54. package/dist/cjs/cache/implementations/derivables/cache-factory.js.map +1 -1
  55. package/dist/cjs/cache/implementations/derivables/cache-settings.js +74 -0
  56. package/dist/cjs/cache/implementations/derivables/cache-settings.js.map +1 -0
  57. package/dist/cjs/cache/implementations/derivables/cache.js +167 -93
  58. package/dist/cjs/cache/implementations/derivables/cache.js.map +1 -1
  59. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  60. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  61. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  62. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  63. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  64. package/dist/cjs/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  65. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  66. package/dist/cjs/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  67. package/dist/cjs/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  68. package/dist/cjs/collection/implementations/list-collection/list-collection.js.map +1 -1
  69. package/dist/cjs/event-bus/contracts/_module.js +2 -2
  70. package/dist/cjs/event-bus/contracts/_module.js.map +1 -1
  71. package/dist/cjs/event-bus/contracts/_shared.js +7 -0
  72. package/dist/cjs/event-bus/contracts/_shared.js.map +1 -1
  73. package/dist/cjs/event-bus/contracts/event-bus.errors.js +19 -0
  74. package/dist/cjs/event-bus/contracts/event-bus.errors.js.map +1 -1
  75. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +52 -36
  76. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  77. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +156 -120
  78. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  79. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  80. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  81. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +26 -0
  82. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  83. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  84. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  85. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  86. package/dist/cjs/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  87. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  88. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  89. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +38 -0
  90. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  91. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +9 -5
  92. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  93. package/dist/cjs/event-bus/implementations/derivables/_module.js +3 -1
  94. package/dist/cjs/event-bus/implementations/derivables/_module.js.map +1 -1
  95. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js +71 -0
  96. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  97. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js +47 -18
  98. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  99. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js +68 -0
  100. package/dist/cjs/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  101. package/dist/cjs/event-bus/implementations/derivables/event-bus.js +102 -62
  102. package/dist/cjs/event-bus/implementations/derivables/event-bus.js.map +1 -1
  103. package/dist/cjs/serde/contracts/_module.js +4 -0
  104. package/dist/cjs/serde/contracts/_module.js.map +1 -1
  105. package/dist/cjs/serde/contracts/deserializer.contract.js +3 -0
  106. package/dist/cjs/serde/contracts/deserializer.contract.js.map +1 -0
  107. package/dist/cjs/serde/contracts/flexible-serde.contract.js +3 -0
  108. package/dist/cjs/serde/contracts/flexible-serde.contract.js.map +1 -0
  109. package/dist/cjs/serde/contracts/serializable.contract.js +3 -0
  110. package/dist/cjs/serde/contracts/serializable.contract.js.map +1 -0
  111. package/dist/cjs/serde/contracts/serializer.contract.js +3 -0
  112. package/dist/cjs/serde/contracts/serializer.contract.js.map +1 -0
  113. package/dist/cjs/serde/implementations/_module.js +1 -0
  114. package/dist/cjs/serde/implementations/_module.js.map +1 -1
  115. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js +1 -0
  116. package/dist/cjs/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  117. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +69 -0
  118. package/dist/cjs/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  119. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  120. package/dist/cjs/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  121. package/dist/cjs/serde/implementations/no-op-serde/_module.js +18 -0
  122. package/dist/cjs/serde/implementations/no-op-serde/_module.js.map +1 -0
  123. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js +19 -0
  124. package/dist/cjs/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  125. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js +57 -111
  126. package/dist/cjs/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  127. package/dist/cjs/utilities/contracts/_module.js +2 -0
  128. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  129. package/dist/cjs/utilities/contracts/buildable.contract.js +3 -0
  130. package/dist/cjs/utilities/contracts/buildable.contract.js.map +1 -0
  131. package/dist/cjs/utilities/contracts/serialized-error.contract.js +3 -0
  132. package/dist/cjs/utilities/contracts/serialized-error.contract.js.map +1 -0
  133. package/dist/cjs/utilities/errors.js +10 -10
  134. package/dist/cjs/utilities/errors.js.map +1 -1
  135. package/dist/cjs/utilities/functions.js +4 -0
  136. package/dist/cjs/utilities/functions.js.map +1 -1
  137. package/dist/cjs/utilities/time-span/time-span.js.map +1 -1
  138. package/dist/esm/async/_module.js +1 -1
  139. package/dist/esm/async/_module.js.map +1 -1
  140. package/dist/esm/async/backof-policies/_module.js +1 -0
  141. package/dist/esm/async/backof-policies/_module.js.map +1 -1
  142. package/dist/esm/async/utilities/_module.js +3 -0
  143. package/dist/esm/async/utilities/_module.js.map +1 -1
  144. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +16 -22
  145. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  146. package/dist/esm/cache/contracts/cache.errors.js +19 -0
  147. package/dist/esm/cache/contracts/cache.errors.js.map +1 -1
  148. package/dist/esm/cache/contracts/cache.events.js +147 -0
  149. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  150. package/dist/esm/cache/implementations/_shared/_module.js +1 -0
  151. package/dist/esm/cache/implementations/_shared/_module.js.map +1 -1
  152. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  153. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  154. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +7 -5
  155. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  156. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +2 -1
  157. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  158. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +52 -0
  159. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +1 -0
  160. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +17 -13
  161. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  162. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +1 -0
  163. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  164. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +22 -0
  165. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +1 -0
  166. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +11 -3
  167. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  168. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +2 -1
  169. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  170. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +40 -0
  171. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +1 -0
  172. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +21 -8
  173. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  174. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +1 -0
  175. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  176. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +28 -0
  177. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +1 -0
  178. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +28 -21
  179. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  180. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +1 -0
  181. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  182. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +52 -0
  183. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +1 -0
  184. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +17 -13
  185. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  186. package/dist/esm/cache/implementations/derivables/_module.js +3 -1
  187. package/dist/esm/cache/implementations/derivables/_module.js.map +1 -1
  188. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js +79 -0
  189. package/dist/esm/cache/implementations/derivables/cache-factory-settings.js.map +1 -0
  190. package/dist/esm/cache/implementations/derivables/cache-factory.js +53 -19
  191. package/dist/esm/cache/implementations/derivables/cache-factory.js.map +1 -1
  192. package/dist/esm/cache/implementations/derivables/cache-settings.js +70 -0
  193. package/dist/esm/cache/implementations/derivables/cache-settings.js.map +1 -0
  194. package/dist/esm/cache/implementations/derivables/cache.js +146 -72
  195. package/dist/esm/cache/implementations/derivables/cache.js.map +1 -1
  196. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js +1 -1
  197. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.js.map +1 -1
  198. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js +1 -1
  199. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-abort-iterable.js.map +1 -1
  200. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js +1 -1
  201. package/dist/esm/collection/implementations/async-iterable-collection/_shared/async-take-until-timeout-iterable.js.map +1 -1
  202. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js +20 -11
  203. package/dist/esm/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  204. package/dist/esm/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  205. package/dist/esm/collection/implementations/list-collection/list-collection.js.map +1 -1
  206. package/dist/esm/event-bus/contracts/_module.js +2 -2
  207. package/dist/esm/event-bus/contracts/_module.js.map +1 -1
  208. package/dist/esm/event-bus/contracts/_shared.js +5 -0
  209. package/dist/esm/event-bus/contracts/_shared.js.map +1 -1
  210. package/dist/esm/event-bus/contracts/event-bus.errors.js +19 -0
  211. package/dist/esm/event-bus/contracts/event-bus.errors.js.map +1 -1
  212. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +45 -29
  213. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  214. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +143 -107
  215. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  216. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +2 -1
  217. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  218. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +22 -0
  219. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +1 -0
  220. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +17 -9
  221. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  222. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js +3 -3
  223. package/dist/esm/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.js.map +1 -1
  224. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +2 -1
  225. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  226. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +34 -0
  227. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +1 -0
  228. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +10 -6
  229. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  230. package/dist/esm/event-bus/implementations/derivables/_module.js +3 -1
  231. package/dist/esm/event-bus/implementations/derivables/_module.js.map +1 -1
  232. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js +67 -0
  233. package/dist/esm/event-bus/implementations/derivables/event-bus-factory-settings.js.map +1 -0
  234. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js +48 -19
  235. package/dist/esm/event-bus/implementations/derivables/event-bus-factory.js.map +1 -1
  236. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js +64 -0
  237. package/dist/esm/event-bus/implementations/derivables/event-bus-settings.js.map +1 -0
  238. package/dist/esm/event-bus/implementations/derivables/event-bus.js +104 -64
  239. package/dist/esm/event-bus/implementations/derivables/event-bus.js.map +1 -1
  240. package/dist/esm/serde/contracts/_module.js +4 -0
  241. package/dist/esm/serde/contracts/_module.js.map +1 -1
  242. package/dist/esm/serde/contracts/deserializer.contract.js +1 -0
  243. package/dist/esm/serde/contracts/deserializer.contract.js.map +1 -0
  244. package/dist/esm/serde/contracts/flexible-serde.contract.js +1 -0
  245. package/dist/esm/serde/contracts/flexible-serde.contract.js.map +1 -0
  246. package/dist/esm/serde/contracts/serializable.contract.js +1 -0
  247. package/dist/esm/serde/contracts/serializable.contract.js.map +1 -0
  248. package/dist/esm/serde/contracts/serializer.contract.js +1 -0
  249. package/dist/esm/serde/contracts/serializer.contract.js.map +1 -0
  250. package/dist/esm/serde/implementations/_module.js +1 -0
  251. package/dist/esm/serde/implementations/_module.js.map +1 -1
  252. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js +1 -0
  253. package/dist/esm/serde/implementations/_shared/test-utilities/_module.js.map +1 -1
  254. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js +66 -0
  255. package/dist/esm/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.js.map +1 -0
  256. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js +35 -60
  257. package/dist/esm/serde/implementations/_shared/test-utilities/serde.test-suite.js.map +1 -1
  258. package/dist/esm/serde/implementations/no-op-serde/_module.js +2 -0
  259. package/dist/esm/serde/implementations/no-op-serde/_module.js.map +1 -0
  260. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js +15 -0
  261. package/dist/esm/serde/implementations/no-op-serde/no-op-serde.js.map +1 -0
  262. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js +57 -111
  263. package/dist/esm/serde/implementations/super-json-serde/super-json-serde.js.map +1 -1
  264. package/dist/esm/utilities/contracts/_module.js +2 -0
  265. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  266. package/dist/esm/utilities/contracts/buildable.contract.js +1 -0
  267. package/dist/esm/utilities/contracts/buildable.contract.js.map +1 -0
  268. package/dist/esm/utilities/contracts/serialized-error.contract.js +1 -0
  269. package/dist/esm/utilities/contracts/serialized-error.contract.js.map +1 -0
  270. package/dist/esm/utilities/errors.js +7 -7
  271. package/dist/esm/utilities/errors.js.map +1 -1
  272. package/dist/esm/utilities/functions.js +3 -0
  273. package/dist/esm/utilities/functions.js.map +1 -1
  274. package/dist/esm/utilities/time-span/time-span.js.map +1 -1
  275. package/dist/types/async/_module.d.ts +1 -1
  276. package/dist/types/async/backof-policies/_module.d.ts +1 -1
  277. package/dist/types/async/utilities/_module.d.ts +3 -0
  278. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +36 -46
  279. package/dist/types/cache/contracts/cache-factory.contract.d.ts +10 -23
  280. package/dist/types/cache/contracts/cache.contract.d.ts +365 -8
  281. package/dist/types/cache/contracts/cache.errors.d.ts +11 -4
  282. package/dist/types/cache/contracts/cache.events.d.ts +150 -38
  283. package/dist/types/cache/implementations/_shared/_module.d.ts +1 -0
  284. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +10 -8
  285. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +15 -9
  286. package/dist/types/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.d.ts +4 -3
  287. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +2 -1
  288. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +48 -0
  289. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +49 -37
  290. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +1 -0
  291. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +27 -0
  292. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +41 -17
  293. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +2 -1
  294. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +51 -0
  295. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +59 -45
  296. package/dist/types/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  297. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +1 -0
  298. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +32 -0
  299. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +41 -26
  300. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +1 -0
  301. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +48 -0
  302. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +49 -37
  303. package/dist/types/cache/implementations/derivables/_module.d.ts +3 -1
  304. package/dist/types/cache/implementations/derivables/cache-factory-settings.d.ts +108 -0
  305. package/dist/types/cache/implementations/derivables/cache-factory.d.ts +67 -39
  306. package/dist/types/cache/implementations/derivables/cache-settings.d.ts +100 -0
  307. package/dist/types/cache/implementations/derivables/cache.d.ts +95 -36
  308. package/dist/types/collection/contracts/async-collection.contract.d.ts +1247 -666
  309. package/dist/types/collection/contracts/collection.contract.d.ts +1195 -638
  310. package/dist/types/collection/implementations/async-iterable-collection/_shared/async-retry-iterable.d.ts +1 -1
  311. package/dist/types/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +190 -4
  312. package/dist/types/collection/implementations/iterable-collection/iterable-collection.d.ts +138 -1
  313. package/dist/types/collection/implementations/list-collection/list-collection.d.ts +138 -1
  314. package/dist/types/event-bus/contracts/_module.d.ts +2 -2
  315. package/dist/types/event-bus/contracts/_shared.d.ts +11 -0
  316. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +4 -6
  317. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +37 -31
  318. package/dist/types/event-bus/contracts/event-bus.contract.d.ts +24 -32
  319. package/dist/types/event-bus/contracts/event-bus.errors.d.ts +8 -1
  320. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +6 -3
  321. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +10 -7
  322. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +2 -1
  323. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +28 -0
  324. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +48 -22
  325. package/dist/types/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +4 -4
  326. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +2 -1
  327. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +36 -0
  328. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +43 -31
  329. package/dist/types/event-bus/implementations/derivables/_module.d.ts +3 -1
  330. package/dist/types/event-bus/implementations/derivables/event-bus-factory-settings.d.ts +92 -0
  331. package/dist/types/event-bus/implementations/derivables/event-bus-factory.d.ts +43 -22
  332. package/dist/types/event-bus/implementations/derivables/event-bus-settings.d.ts +80 -0
  333. package/dist/types/event-bus/implementations/derivables/event-bus.d.ts +46 -22
  334. package/dist/types/serde/contracts/_module.d.ts +4 -0
  335. package/dist/types/serde/contracts/deserializer.contract.d.ts +13 -0
  336. package/dist/types/serde/contracts/flexible-serde.contract.d.ts +120 -0
  337. package/dist/types/serde/contracts/serde.contract.d.ts +5 -36
  338. package/dist/types/serde/contracts/serializable.contract.d.ts +10 -0
  339. package/dist/types/serde/contracts/serializer.contract.d.ts +10 -0
  340. package/dist/types/serde/implementations/_module.d.ts +1 -0
  341. package/dist/types/serde/implementations/_shared/test-utilities/_module.d.ts +1 -0
  342. package/dist/types/serde/implementations/_shared/test-utilities/flexible-serde.test-suite.d.ts +17 -0
  343. package/dist/types/serde/implementations/_shared/test-utilities/serde.test-suite.d.ts +2 -3
  344. package/dist/types/serde/implementations/no-op-serde/_module.d.ts +1 -0
  345. package/dist/types/serde/implementations/no-op-serde/no-op-serde.d.ts +14 -0
  346. package/dist/types/serde/implementations/super-json-serde/super-json-serde.d.ts +23 -2
  347. package/dist/types/utilities/contracts/_module.d.ts +2 -0
  348. package/dist/types/utilities/contracts/buildable.contract.d.ts +9 -0
  349. package/dist/types/utilities/contracts/serialized-error.contract.d.ts +11 -0
  350. package/dist/types/utilities/errors.d.ts +3 -3
  351. package/dist/types/utilities/functions.d.ts +4 -0
  352. package/dist/types/utilities/time-span/time-span.d.ts +2 -2
  353. package/dist/types/utilities/types.d.ts +1 -2
  354. package/package.json +1 -1
@@ -1,43 +1,155 @@
1
1
  /**
2
2
  * @module Cache
3
3
  */
4
+ import { BaseEvent } from "../../event-bus/contracts/_module";
4
5
  import type { TimeSpan } from "../../utilities/_module";
5
- export type CacheEvents<TType = unknown> = {
6
- key_found: {
7
- group: string;
8
- key: string;
9
- value: TType;
10
- };
11
- key_not_found: {
12
- group: string;
13
- key: string;
14
- };
15
- key_added: {
16
- group: string;
17
- key: string;
18
- value: TType;
19
- ttl: TimeSpan | null;
20
- };
21
- key_updated: {
22
- group: string;
23
- key: string;
24
- value: TType;
25
- };
26
- key_removed: {
27
- group: string;
28
- key: string;
29
- };
30
- key_incremented: {
31
- group: string;
32
- key: string;
33
- value: number;
34
- };
35
- key_decremented: {
36
- group: string;
37
- key: string;
38
- value: number;
39
- };
40
- keys_cleared: {
41
- group: string;
42
- };
6
+ /**
7
+ * @group Events
8
+ */
9
+ export type KeyFoundCacheEventFields<TType> = {
10
+ group: string;
11
+ key: string;
12
+ value: TType;
43
13
  };
14
+ /**
15
+ * @group Events
16
+ */
17
+ export declare class KeyFoundCacheEvent<TType = unknown> extends BaseEvent<KeyFoundCacheEventFields<TType>> {
18
+ group: string;
19
+ key: string;
20
+ value: TType;
21
+ static deserialize<TType>(serializedEvent: KeyFoundCacheEventFields<TType>): KeyFoundCacheEvent<TType>;
22
+ constructor(fields: KeyFoundCacheEventFields<TType>);
23
+ serialize(): KeyFoundCacheEventFields<TType>;
24
+ }
25
+ /**
26
+ * @group Events
27
+ */
28
+ export type KeyNotFoundCacheEventFields = {
29
+ group: string;
30
+ key: string;
31
+ };
32
+ /**
33
+ * @group Events
34
+ */
35
+ export declare class KeyNotFoundCacheEvent extends BaseEvent<KeyNotFoundCacheEventFields> {
36
+ group: string;
37
+ key: string;
38
+ static deserialize(serializedEvent: KeyNotFoundCacheEventFields): KeyNotFoundCacheEvent;
39
+ constructor(fields: KeyNotFoundCacheEventFields);
40
+ serialize(): KeyNotFoundCacheEventFields;
41
+ }
42
+ /**
43
+ * @group Events
44
+ */
45
+ export type KeyAddedCacheEventFields<TType = unknown> = {
46
+ group: string;
47
+ key: string;
48
+ value: TType;
49
+ ttl: TimeSpan | null;
50
+ };
51
+ /**
52
+ * @group Events
53
+ */
54
+ export declare class KeyAddedCacheEvent<TType = unknown> extends BaseEvent<KeyAddedCacheEventFields<TType>> {
55
+ group: string;
56
+ key: string;
57
+ value: TType;
58
+ ttl: TimeSpan | null;
59
+ static deserialize<TType>(serializedEvent: KeyAddedCacheEventFields<TType>): KeyAddedCacheEvent<TType>;
60
+ constructor(fields: KeyAddedCacheEventFields<TType>);
61
+ serialize(): KeyAddedCacheEventFields<TType>;
62
+ }
63
+ /**
64
+ * @group Events
65
+ */
66
+ export type KeyUpdatedCacheEventFields<TType = unknown> = {
67
+ group: string;
68
+ key: string;
69
+ value: TType;
70
+ };
71
+ /**
72
+ * @group Events
73
+ */
74
+ export declare class KeyUpdatedCacheEvent<TType = unknown> extends BaseEvent<KeyUpdatedCacheEventFields<TType>> {
75
+ group: string;
76
+ key: string;
77
+ value: TType;
78
+ static deserialize<TType>(serializedEvent: KeyUpdatedCacheEventFields<TType>): KeyUpdatedCacheEvent<TType>;
79
+ constructor(fields: KeyUpdatedCacheEventFields<TType>);
80
+ serialize(): KeyUpdatedCacheEventFields<TType>;
81
+ }
82
+ /**
83
+ * @group Events
84
+ */
85
+ export type KeyRemovedCacheEventFields = {
86
+ group: string;
87
+ key: string;
88
+ };
89
+ /**
90
+ * @group Events
91
+ */
92
+ export declare class KeyRemovedCacheEvent extends BaseEvent<KeyRemovedCacheEventFields> {
93
+ group: string;
94
+ key: string;
95
+ static deserialize(serializedEvent: KeyRemovedCacheEventFields): KeyRemovedCacheEvent;
96
+ constructor(fields: KeyRemovedCacheEventFields);
97
+ serialize(): KeyRemovedCacheEventFields;
98
+ }
99
+ /**
100
+ * @group Events
101
+ */
102
+ export type KeyIncrementedCacheEventFields = {
103
+ group: string;
104
+ key: string;
105
+ value: number;
106
+ };
107
+ /**
108
+ * @group Events
109
+ */
110
+ export declare class KeyIncrementedCacheEvent extends BaseEvent<KeyIncrementedCacheEventFields> {
111
+ group: string;
112
+ key: string;
113
+ value: number;
114
+ static deserialize(serializedEvent: KeyIncrementedCacheEventFields): KeyIncrementedCacheEvent;
115
+ constructor(fields: KeyIncrementedCacheEventFields);
116
+ serialize(): KeyIncrementedCacheEventFields;
117
+ }
118
+ /**
119
+ * @group Events
120
+ */
121
+ export type KeyDecrementedCacheEventFields = {
122
+ group: string;
123
+ key: string;
124
+ value: number;
125
+ };
126
+ /**
127
+ * @group Events
128
+ */
129
+ export declare class KeyDecrementedCacheEvent extends BaseEvent<KeyDecrementedCacheEventFields> {
130
+ group: string;
131
+ key: string;
132
+ value: number;
133
+ static deserialize(serializedEvent: KeyDecrementedCacheEventFields): KeyDecrementedCacheEvent;
134
+ constructor(fields: KeyDecrementedCacheEventFields);
135
+ serialize(): KeyDecrementedCacheEventFields;
136
+ }
137
+ /**
138
+ * @group Events
139
+ */
140
+ export type KeysClearedCacheEventFields = {
141
+ group: string;
142
+ };
143
+ /**
144
+ * @group Events
145
+ */
146
+ export declare class KeysClearedCacheEvent extends BaseEvent<KeysClearedCacheEventFields> {
147
+ group: string;
148
+ static deserialize(serializedEvent: KeysClearedCacheEventFields): KeysClearedCacheEvent;
149
+ constructor(fields: KeysClearedCacheEventFields);
150
+ serialize(): KeysClearedCacheEventFields;
151
+ }
152
+ /**
153
+ * @group Events
154
+ */
155
+ export type CacheEvents<TType = unknown> = KeyFoundCacheEvent<TType> | KeyNotFoundCacheEvent | KeyAddedCacheEvent<TType> | KeyUpdatedCacheEvent<TType> | KeyRemovedCacheEvent | KeyIncrementedCacheEvent | KeyDecrementedCacheEvent | KeysClearedCacheEvent;
@@ -1 +1,2 @@
1
1
  export * from "../../../cache/implementations/_shared/cache-adapter.test-suite";
2
+ export * from "../../../cache/implementations/_shared/cache.test-suite";
@@ -25,27 +25,29 @@ export type CacheAdapterTestSuiteSettings = {
25
25
  * import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
26
26
  * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheAdapterTestSuite } from "@daiso-tech/core";
27
27
  *
28
- * const timeout = TimeSpan.fromMinutes(2);
28
+ * const TIMEOUT = TimeSpan.fromMinutes(2);
29
29
  * describe("class: RedisCacheAdapter", () => {
30
- * let client: Redis;
30
+ * let database: Redis;
31
31
  * let startedContainer: StartedRedisContainer;
32
32
  * const serde = new SuperJsonSerde();
33
33
  * beforeEach(async () => {
34
34
  * startedContainer = await new RedisContainer("redis:7.4.2").start();
35
- * client = new Redis(startedContainer.getConnectionUrl());
36
- * }, timeout.toMilliseconds());
35
+ * database = new Redis(startedContainer.getConnectionUrl());
36
+ * }, TIMEOUT.toMilliseconds());
37
37
  * afterEach(async () => {
38
- * await client.quit();
38
+ * await database.quit();
39
39
  * await startedContainer.stop();
40
- * }, timeout.toMilliseconds());
40
+ * }, TIMEOUT.toMilliseconds());
41
41
  * cacheAdapterTestSuite({
42
42
  * createAdapterA: () =>
43
- * new RedisCacheAdapter(client, {
43
+ * new RedisCacheAdapter({
44
+ * database,
44
45
  * serde,
45
46
  * rootGroup: "@a"
46
47
  * }),
47
48
  * createAdapterB: () =>
48
- * new RedisCacheAdapter(client, {
49
+ * new RedisCacheAdapter({
50
+ * database,
49
51
  * serde,
50
52
  * rootGroup: "@b"
51
53
  * }),
@@ -25,24 +25,29 @@ export type CacheTestSuiteSettings = {
25
25
  * import { RedisContainer, type StartedRedisContainer } from "@testcontainers/redis";
26
26
  * import { SuperJsonSerde, TimeSpan, RedisCacheAdapter, cacheTestSuite, MemoryEventBusAdapter } from "@daiso-tech/core";
27
27
  *
28
- * const timeout = TimeSpan.fromMinutes(2);
28
+ * const TIMEOUT = TimeSpan.fromMinutes(2);
29
29
  * describe("class: Cache", () => {
30
- * let client: Redis;
30
+ * let database: Redis;
31
31
  * let startedContainer: StartedRedisContainer;
32
- * const eventBus = new EventBus(new MemoryEventBusAdapter()):
32
+ * const eventBus = new EventBus({
33
+ * adapter: new MemoryEventBusAdapter({
34
+ * rootGroup: "@global"
35
+ * })
36
+ * }):
33
37
  * const serde = new SuperJsonSerde();
34
38
  * beforeEach(async () => {
35
39
  * startedContainer = await new RedisContainer("redis:7.4.2").start();
36
- * client = new Redis(startedContainer.getConnectionUrl());
37
- * }, timeout.toMilliseconds());
40
+ * database = new Redis(startedContainer.getConnectionUrl());
41
+ * }, TIMEOUT.toMilliseconds());
38
42
  * afterEach(async () => {
39
- * await client.quit();
43
+ * await database.quit();
40
44
  * await startedContainer.stop();
41
- * }, timeout.toMilliseconds());
45
+ * }, TIMEOUT.toMilliseconds());
42
46
  * cacheTestSuite({
43
47
  * createCacheA: () =>
44
48
  * new Cache(
45
- * new RedisCacheAdapter(client, {
49
+ * new RedisCacheAdapter({
50
+ * database,
46
51
  * serde,
47
52
  * }),
48
53
  * {
@@ -52,7 +57,8 @@ export type CacheTestSuiteSettings = {
52
57
  * ),
53
58
  * createCacheB: () =>
54
59
  * new Cache(
55
- * new RedisCacheAdapter(client, {
60
+ * new RedisCacheAdapter({
61
+ * database,
56
62
  * serde,
57
63
  * }),
58
64
  * {
@@ -25,6 +25,7 @@ type KyselySqliteTables = {
25
25
  * @internal
26
26
  */
27
27
  type KyselySqliteSettings = {
28
+ db: Kysely<KyselySqliteTables>;
28
29
  serde: ISerde<string>;
29
30
  enableTransactions: boolean;
30
31
  expiredKeysRemovalInterval?: TimeSpan;
@@ -34,15 +35,15 @@ type KyselySqliteSettings = {
34
35
  /**
35
36
  * @internal
36
37
  */
37
- export declare class KyselySqliteCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
38
- private readonly db;
38
+ export declare class KyselySqliteCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
39
39
  private readonly group;
40
40
  private readonly serde;
41
41
  private readonly enableTransactions;
42
42
  private readonly expiredKeysRemovalInterval;
43
43
  private readonly shouldRemoveExpiredKeys;
44
44
  private timeoutId;
45
- constructor(db: Kysely<KyselySqliteTables>, settings: KyselySqliteSettings);
45
+ private readonly db;
46
+ constructor(settings: KyselySqliteSettings);
46
47
  getGroup(): string;
47
48
  withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
48
49
  private withTransaction;
@@ -1 +1,2 @@
1
- export * from "../../../../cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter";
1
+ export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
2
+ export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter";
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { ISerde } from "../../../../serde/contracts/_module";
5
+ import type { TimeSpan, OneOrMore, IBuildable } from "../../../../utilities/_module";
6
+ import type { Client } from "@libsql/client";
7
+ /**
8
+ * @group Adapters
9
+ */
10
+ export type LibsqlCacheAdapterSettings = {
11
+ database: Client;
12
+ tableName?: string;
13
+ serde: ISerde<string>;
14
+ enableTransactions?: boolean;
15
+ expiredKeysRemovalInterval?: TimeSpan;
16
+ shouldRemoveExpiredKeys?: boolean;
17
+ rootGroup: OneOrMore<string>;
18
+ };
19
+ /**
20
+ * The <i>LibsqlCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
21
+ * @group Adapters
22
+ */
23
+ export declare class LibsqlCacheAdapterSettingsBuilder<TSettings extends Partial<LibsqlCacheAdapterSettings>> implements IBuildable<LibsqlCacheAdapterSettings> {
24
+ private readonly settings;
25
+ constructor(settings?: TSettings);
26
+ setDatabase(database: Client): LibsqlCacheAdapterSettingsBuilder<TSettings & {
27
+ database: Client;
28
+ }>;
29
+ setTableName(name: string): LibsqlCacheAdapterSettingsBuilder<TSettings & {
30
+ tableName: string;
31
+ }>;
32
+ setSerde(serde: ISerde<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
33
+ serde: ISerde<string>;
34
+ }>;
35
+ setEnableTransactions(enable: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
36
+ enableTransactions: boolean;
37
+ }>;
38
+ setExpiredKeysRemovalInterval(interval: TimeSpan): LibsqlCacheAdapterSettingsBuilder<TSettings & {
39
+ expiredKeysRemovalInterval: TimeSpan;
40
+ }>;
41
+ setShouldRemoveExpiredKeys(shouldRemove: boolean): LibsqlCacheAdapterSettingsBuilder<TSettings & {
42
+ shouldRemoveExpiredKeys: boolean;
43
+ }>;
44
+ setRootGroup(group: OneOrMore<string>): LibsqlCacheAdapterSettingsBuilder<TSettings & {
45
+ rootGroup: OneOrMore<string>;
46
+ }>;
47
+ build(this: LibsqlCacheAdapterSettingsBuilder<LibsqlCacheAdapterSettings>): LibsqlCacheAdapterSettings;
48
+ }
@@ -2,52 +2,64 @@
2
2
  * @module Cache
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
- import type { ISerde } from "../../../../serde/contracts/_module";
6
5
  import type { TimeSpan, IDeinitizable, IInitizable, OneOrMore } from "../../../../utilities/_module";
7
- import type { Client } from "@libsql/client";
6
+ import type { LibsqlCacheAdapterSettings } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
7
+ import { LibsqlCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings";
8
8
  /**
9
+ * To utilize the <i>LibsqlCacheAdapter</i>, you must install the <i>"@libsql/client"</i> package and supply a <i>{@link ISerde | ISerde<string> }</i>, such as <i>{@link SuperJsonSerde}</i>.
9
10
  * @group Adapters
10
11
  */
11
- export type LibsqlCacheAdapterSettings = {
12
- tableName?: string;
13
- serde: ISerde<string>;
14
- enableTransactions?: boolean;
15
- expiredKeysRemovalInterval?: TimeSpan;
16
- shouldRemoveExpiredKeys?: boolean;
17
- rootGroup: OneOrMore<string>;
18
- };
19
- /**
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>.
21
- * @group Adapters
22
- * @example
23
- * ```ts
24
- * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
25
- * import { createClient } from "@libsql/client";
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
- *
34
- * (async () => {
35
- * // You only need to call it once before using the adapter.
36
- * await cacheAdapter.init();
37
- * await cacheAdapter.add("a", 1);
38
- *
39
- * // Will remove the cache
40
- * await cacheAdapter.deInit();
41
- * })();
42
- * ```
43
- */
44
- export declare class LibsqlCacheAdapter<TType> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
12
+ export declare class LibsqlCacheAdapter<TType = unknown> implements ICacheAdapter<TType>, IInitizable, IDeinitizable {
13
+ /**
14
+ * @example
15
+ * ```ts
16
+ * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
17
+ * import { createClient } from "@libsql/client";
18
+ *
19
+ * const cacheAdapter = new LibsqlCacheAdapter(
20
+ * LibsqlCacheAdapter
21
+ * .settings()
22
+ * .setDatabase(createClient({ url: "file:local.db" }))
23
+ * .setSerde(new SuperJsonSerde())
24
+ * .setRootGroup("@global")
25
+ * .build()
26
+ * );
27
+ * ```
28
+ */
29
+ static settings<TSettings extends Partial<LibsqlCacheAdapterSettings>>(): LibsqlCacheAdapterSettingsBuilder<TSettings>;
45
30
  private readonly cacheAdapter;
46
- constructor(client: Client, settings: LibsqlCacheAdapterSettings);
31
+ /***
32
+ * @example
33
+ * ```ts
34
+ * import { LibsqlCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
35
+ * import { createClient } from "@libsql/client";
36
+ *
37
+ * const database = createClient({ url: "file:local.db" });
38
+ * const serde = new SuperJsonSerde();
39
+ * const cacheAdapter = new LibsqlCacheAdapter({
40
+ * database,
41
+ * serde,
42
+ * rootGroup: "@global"
43
+ * });
44
+ *
45
+ * (async () => {
46
+ * await cacheAdapter.init();
47
+ * await cacheAdapter.add("a", 1);
48
+ * await cacheAdapter.deInit();
49
+ * })();
50
+ * ```
51
+ */
52
+ constructor(settings: LibsqlCacheAdapterSettings);
47
53
  getGroup(): string;
48
54
  withGroup(group: OneOrMore<string>): ICacheAdapter<TType>;
49
55
  removeExpiredKeys(): Promise<void>;
56
+ /**
57
+ * Removes the table where the cache values are stored and removes the table indexes.
58
+ */
50
59
  deInit(): Promise<void>;
60
+ /**
61
+ * Creates the table where the cache values are stored and it's related indexes.
62
+ */
51
63
  init(): Promise<void>;
52
64
  exists(key: string): Promise<boolean>;
53
65
  get(key: string): Promise<TType | null>;
@@ -1 +1,2 @@
1
+ export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
1
2
  export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter";
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { IBuildable } from "../../../../utilities/_module";
5
+ import { type OneOrMore } from "../../../../utilities/_module";
6
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type MemoryCacheAdapterSettings = {
10
+ rootGroup: OneOrMore<string>;
11
+ map?: Map<string, unknown>;
12
+ };
13
+ /**
14
+ * The <i>MemoryCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
15
+ * @group Adapters
16
+ */
17
+ export declare class MemoryCacheAdapterSettingsBuilder<TSettings extends Partial<MemoryCacheAdapterSettings>> implements IBuildable<MemoryCacheAdapterSettings> {
18
+ private readonly settings;
19
+ constructor(settings?: TSettings);
20
+ setMap(map: Map<string, unknown>): MemoryCacheAdapterSettingsBuilder<TSettings & {
21
+ map: Map<string, unknown>;
22
+ }>;
23
+ setRootGroup(group: OneOrMore<string>): MemoryCacheAdapterSettingsBuilder<TSettings & {
24
+ rootGroup: OneOrMore<string>;
25
+ }>;
26
+ build(this: MemoryCacheAdapterSettingsBuilder<MemoryCacheAdapterSettings>): MemoryCacheAdapterSettings;
27
+ }
@@ -3,29 +3,53 @@
3
3
  */
4
4
  import { type ICacheAdapter } from "../../../../cache/contracts/cache-adapter.contract";
5
5
  import { type OneOrMore, type TimeSpan } from "../../../../utilities/_module";
6
+ import type { MemoryCacheAdapterSettings } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
7
+ import { MemoryCacheAdapterSettingsBuilder } from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings";
6
8
  /**
7
9
  * To utilize the <i>MemoryCacheAdapter</i>, you must create instance of it.
8
10
  * @group Adapters
9
- * @example
10
- * ```ts
11
- * import { MemoryCacheAdapter } from "@daiso-tech/core";
12
- *
13
- * const cacheAdapter = new MemoryCacheAdapter(client);
14
- * ```
15
- * You can also provide an <i>Map</i>.
16
- * @example
17
- * ```ts
18
- * import { MemoryCacheAdapter } from "@daiso-tech/core";
19
- *
20
- * const map = new Map<any, any>();
21
- * const cacheAdapter = new MemoryCacheAdapter("@cache", map);
22
- * ```
23
11
  */
24
- export declare class MemoryCacheAdapter<TType> implements ICacheAdapter<TType> {
25
- private readonly map;
12
+ export declare class MemoryCacheAdapter<TType = unknown> implements ICacheAdapter<TType> {
13
+ /**
14
+ * @example
15
+ * ```ts
16
+ * import { MemoryCacheAdapter, SuperJsonSerde } from "@daiso-tech/core";
17
+ *
18
+ * const cacheAdapter = new MemoryCacheAdapter(
19
+ * MemoryCacheAdapter
20
+ * .settings()
21
+ * .setMap(new Map())
22
+ * .setRootGroup("@global")
23
+ * .build()
24
+ * );
25
+ * ```
26
+ */
27
+ static settings<TSettings extends Partial<MemoryCacheAdapterSettings>>(): MemoryCacheAdapterSettingsBuilder<TSettings>;
26
28
  private readonly group;
27
29
  private readonly timeoutMap;
28
- constructor(rootGroup: OneOrMore<string>, map?: Map<string, TType>);
30
+ private readonly map;
31
+ /**
32
+ * @example
33
+ * ```ts
34
+ * import { MemoryCacheAdapter } from "@daiso-tech/core";
35
+ *
36
+ * const cacheAdapter = new MemoryCacheAdapter({
37
+ * rootGroup: "@cache"
38
+ * });
39
+ * ```
40
+ * You can also provide an <i>Map</i>.
41
+ * @example
42
+ * ```ts
43
+ * import { MemoryCacheAdapter } from "@daiso-tech/core";
44
+ *
45
+ * const map = new Map<any, any>();
46
+ * const cacheAdapter = new MemoryCacheAdapter({
47
+ * rootGroup: "@cache",
48
+ * map
49
+ * });
50
+ * ```
51
+ */
52
+ constructor(settings: MemoryCacheAdapterSettings);
29
53
  private getGroupName;
30
54
  private withPrefix;
31
55
  exists(key: string): Promise<boolean>;
@@ -1 +1,2 @@
1
- export * from "../../../../cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter";
1
+ export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings";
2
+ export * from "../../../../cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter";
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @module Cache
3
+ */
4
+ import type { IBuildable } from "../../../../utilities/_module";
5
+ import { type OneOrMore } from "../../../../utilities/_module";
6
+ import type { CollectionOptions, Db, ObjectId } from "mongodb";
7
+ import type { ISerde } from "../../../../serde/contracts/_module";
8
+ /**
9
+ * @internal
10
+ */
11
+ export type MongodbCacheDocument = {
12
+ _id: ObjectId;
13
+ key: string;
14
+ group: string;
15
+ value: number | string;
16
+ expiresAt: Date | null;
17
+ };
18
+ /**
19
+ * @group Adapters
20
+ */
21
+ export type MongodbCacheAdapterSettings = {
22
+ database: Db;
23
+ serde: ISerde<string>;
24
+ rootGroup: OneOrMore<string>;
25
+ collectionName?: string;
26
+ collectionSettings?: CollectionOptions;
27
+ };
28
+ /**
29
+ * The <i>MongodbCacheAdapterSettingsBuilder</i> is an immutable builder class, meaning that each method invocation creates a new instance.
30
+ * @group Adapters
31
+ */
32
+ export declare class MongodbCacheAdapterSettingsBuilder<TSettings extends Partial<MongodbCacheAdapterSettings>> implements IBuildable<MongodbCacheAdapterSettings> {
33
+ private readonly settings;
34
+ constructor(settings?: TSettings);
35
+ setDatabase(database: Db): MongodbCacheAdapterSettingsBuilder<TSettings & {
36
+ database: Db;
37
+ }>;
38
+ setSerde(serde: ISerde<string>): MongodbCacheAdapterSettingsBuilder<TSettings & {
39
+ serde: ISerde<string>;
40
+ }>;
41
+ setRootGroup(group: OneOrMore<string>): MongodbCacheAdapterSettingsBuilder<TSettings & {
42
+ rootGroup: OneOrMore<string>;
43
+ }>;
44
+ setCollectionName(name: string): MongodbCacheAdapterSettingsBuilder<TSettings & {
45
+ collectionName: string;
46
+ }>;
47
+ setCollectionSettings(settings: CollectionOptions): MongodbCacheAdapterSettingsBuilder<TSettings & {
48
+ collectionSettings: CollectionOptions;
49
+ }>;
50
+ build(this: MongodbCacheAdapterSettingsBuilder<MongodbCacheAdapterSettings>): MongodbCacheAdapterSettings;
51
+ }