@daiso-tech/core 0.21.1 → 0.22.1

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 (391) 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 +3 -2
  4. package/dist/cjs/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  5. package/dist/cjs/cache/contracts/cache.events.js +6 -2
  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 -5
  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 +58 -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 -1
  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 -4
  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 -7
  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 -5
  24. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  25. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
  26. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  27. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -8
  28. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  29. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
  30. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  31. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -4
  32. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  33. package/dist/cjs/cache/implementations/derivables/cache/_module.js +0 -1
  34. package/dist/cjs/cache/implementations/derivables/cache/_module.js.map +1 -1
  35. package/dist/cjs/cache/implementations/derivables/cache/cache.js +213 -102
  36. package/dist/cjs/cache/implementations/derivables/cache/cache.js.map +1 -1
  37. package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js +0 -1
  38. package/dist/cjs/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
  39. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
  40. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  41. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +3 -3
  42. package/dist/cjs/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  43. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js +4 -3
  44. package/dist/cjs/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  45. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
  46. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  47. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
  48. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  49. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
  50. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  51. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
  52. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  53. package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js +0 -1
  54. package/dist/cjs/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
  55. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
  56. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  57. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
  58. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
  59. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
  60. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  61. package/dist/cjs/lock/contracts/_module.js +24 -0
  62. package/dist/cjs/lock/contracts/_module.js.map +1 -0
  63. package/dist/cjs/lock/contracts/database-lock-adapter.contract.js +3 -0
  64. package/dist/cjs/lock/contracts/database-lock-adapter.contract.js.map +1 -0
  65. package/dist/cjs/lock/contracts/lock-adapter.contract.js +3 -0
  66. package/dist/cjs/lock/contracts/lock-adapter.contract.js.map +1 -0
  67. package/dist/cjs/lock/contracts/lock-provider-factory.contract.js +3 -0
  68. package/dist/cjs/lock/contracts/lock-provider-factory.contract.js.map +1 -0
  69. package/dist/cjs/lock/contracts/lock-provider.contract.js +3 -0
  70. package/dist/cjs/lock/contracts/lock-provider.contract.js.map +1 -0
  71. package/dist/cjs/lock/contracts/lock.contract.js +3 -0
  72. package/dist/cjs/lock/contracts/lock.contract.js.map +1 -0
  73. package/dist/cjs/lock/contracts/lock.errors.js +131 -0
  74. package/dist/cjs/lock/contracts/lock.errors.js.map +1 -0
  75. package/dist/cjs/lock/contracts/lock.events.js +44 -0
  76. package/dist/cjs/lock/contracts/lock.events.js.map +1 -0
  77. package/dist/cjs/lock/implementations/_module.js +20 -0
  78. package/dist/cjs/lock/implementations/_module.js.map +1 -0
  79. package/dist/cjs/lock/implementations/_shared/_module.js +20 -0
  80. package/dist/cjs/lock/implementations/_shared/_module.js.map +1 -0
  81. package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js +285 -0
  82. package/dist/cjs/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
  83. package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js +238 -0
  84. package/dist/cjs/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
  85. package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js +1841 -0
  86. package/dist/cjs/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
  87. package/dist/cjs/lock/implementations/adapters/_module.js +22 -0
  88. package/dist/cjs/lock/implementations/adapters/_module.js.map +1 -0
  89. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js +18 -0
  90. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
  91. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +126 -0
  92. package/dist/cjs/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
  93. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js +18 -0
  94. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
  95. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +61 -0
  96. package/dist/cjs/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
  97. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js +18 -0
  98. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
  99. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +107 -0
  100. package/dist/cjs/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
  101. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js +18 -0
  102. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
  103. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +148 -0
  104. package/dist/cjs/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
  105. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js +18 -0
  106. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
  107. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +131 -0
  108. package/dist/cjs/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
  109. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js +18 -0
  110. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
  111. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +60 -0
  112. package/dist/cjs/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
  113. package/dist/cjs/lock/implementations/derivables/_module.js +19 -0
  114. package/dist/cjs/lock/implementations/derivables/_module.js.map +1 -0
  115. package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js +18 -0
  116. package/dist/cjs/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
  117. package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js +80 -0
  118. package/dist/cjs/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
  119. package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js +162 -0
  120. package/dist/cjs/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
  121. package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js +306 -0
  122. package/dist/cjs/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
  123. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js +18 -0
  124. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
  125. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +78 -0
  126. package/dist/cjs/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
  127. package/dist/cjs/utilities/contracts/_module.js +1 -0
  128. package/dist/cjs/utilities/contracts/_module.js.map +1 -1
  129. package/dist/cjs/utilities/contracts/serde-registrable.contract.js +3 -0
  130. package/dist/cjs/utilities/contracts/serde-registrable.contract.js.map +1 -0
  131. package/dist/cjs/utilities/functions.js +4 -0
  132. package/dist/cjs/utilities/functions.js.map +1 -1
  133. package/dist/esm/_module.js +2 -0
  134. package/dist/esm/_module.js.map +1 -1
  135. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js +3 -2
  136. package/dist/esm/async/utilities/lazy-promise/lazy-promise.js.map +1 -1
  137. package/dist/esm/cache/contracts/cache.events.js +4 -1
  138. package/dist/esm/cache/contracts/cache.events.js.map +1 -1
  139. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js +5 -5
  140. package/dist/esm/cache/implementations/_shared/cache-adapter.test-suite.js.map +1 -1
  141. package/dist/esm/cache/implementations/_shared/cache.test-suite.js +59 -22
  142. package/dist/esm/cache/implementations/_shared/cache.test-suite.js.map +1 -1
  143. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js +1 -1
  144. package/dist/esm/cache/implementations/adapters/kysely-sqlite-cache-adapter/kysely-sqlite-cache-adapter.js.map +1 -1
  145. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -1
  146. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +1 -1
  147. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -4
  148. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +1 -1
  149. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js +0 -1
  150. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/_module.js.map +1 -1
  151. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +3 -7
  152. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  153. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js +0 -1
  154. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/_module.js.map +1 -1
  155. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +6 -5
  156. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  157. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js +0 -1
  158. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/_module.js.map +1 -1
  159. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +5 -8
  160. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  161. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -1
  162. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +1 -1
  163. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -4
  164. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +1 -1
  165. package/dist/esm/cache/implementations/derivables/cache/_module.js +0 -1
  166. package/dist/esm/cache/implementations/derivables/cache/_module.js.map +1 -1
  167. package/dist/esm/cache/implementations/derivables/cache/cache.js +214 -103
  168. package/dist/esm/cache/implementations/derivables/cache/cache.js.map +1 -1
  169. package/dist/esm/cache/implementations/derivables/cache-factory/_module.js +0 -1
  170. package/dist/esm/cache/implementations/derivables/cache-factory/_module.js.map +1 -1
  171. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js +0 -4
  172. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  173. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js +3 -3
  174. package/dist/esm/event-bus/implementations/_shared/event-bus-adapter.test-suite.js.map +1 -1
  175. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js +5 -4
  176. package/dist/esm/event-bus/implementations/_shared/event-bus.test-suite.js.map +1 -1
  177. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js +0 -1
  178. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/_module.js.map +1 -1
  179. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js +0 -4
  180. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.js.map +1 -1
  181. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js +0 -1
  182. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.js.map +1 -1
  183. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +0 -4
  184. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  185. package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js +0 -1
  186. package/dist/esm/event-bus/implementations/derivables/event-bus/_module.js.map +1 -1
  187. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js +0 -4
  188. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  189. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js +0 -1
  190. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/_module.js.map +1 -1
  191. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +0 -4
  192. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  193. package/dist/esm/lock/contracts/_module.js +8 -0
  194. package/dist/esm/lock/contracts/_module.js.map +1 -0
  195. package/dist/esm/lock/contracts/database-lock-adapter.contract.js +1 -0
  196. package/dist/esm/lock/contracts/database-lock-adapter.contract.js.map +1 -0
  197. package/dist/esm/lock/contracts/lock-adapter.contract.js +1 -0
  198. package/dist/esm/lock/contracts/lock-adapter.contract.js.map +1 -0
  199. package/dist/esm/lock/contracts/lock-provider-factory.contract.js +1 -0
  200. package/dist/esm/lock/contracts/lock-provider-factory.contract.js.map +1 -0
  201. package/dist/esm/lock/contracts/lock-provider.contract.js +1 -0
  202. package/dist/esm/lock/contracts/lock-provider.contract.js.map +1 -0
  203. package/dist/esm/lock/contracts/lock.contract.js +1 -0
  204. package/dist/esm/lock/contracts/lock.contract.js.map +1 -0
  205. package/dist/esm/lock/contracts/lock.errors.js +120 -0
  206. package/dist/esm/lock/contracts/lock.errors.js.map +1 -0
  207. package/dist/esm/lock/contracts/lock.events.js +32 -0
  208. package/dist/esm/lock/contracts/lock.events.js.map +1 -0
  209. package/dist/esm/lock/implementations/_module.js +4 -0
  210. package/dist/esm/lock/implementations/_module.js.map +1 -0
  211. package/dist/esm/lock/implementations/_shared/_module.js +4 -0
  212. package/dist/esm/lock/implementations/_shared/_module.js.map +1 -0
  213. package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js +282 -0
  214. package/dist/esm/lock/implementations/_shared/database-lock-adapter.test-suite.js.map +1 -0
  215. package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js +235 -0
  216. package/dist/esm/lock/implementations/_shared/lock-adapter.test-suite.js.map +1 -0
  217. package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js +1838 -0
  218. package/dist/esm/lock/implementations/_shared/lock-provider.test-suite.js.map +1 -0
  219. package/dist/esm/lock/implementations/adapters/_module.js +6 -0
  220. package/dist/esm/lock/implementations/adapters/_module.js.map +1 -0
  221. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js +2 -0
  222. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/_module.js.map +1 -0
  223. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +122 -0
  224. package/dist/esm/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -0
  225. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js +2 -0
  226. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +1 -0
  227. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +57 -0
  228. package/dist/esm/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +1 -0
  229. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js +2 -0
  230. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/_module.js.map +1 -0
  231. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +103 -0
  232. package/dist/esm/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -0
  233. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js +2 -0
  234. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/_module.js.map +1 -0
  235. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +144 -0
  236. package/dist/esm/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -0
  237. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js +2 -0
  238. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/_module.js.map +1 -0
  239. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +127 -0
  240. package/dist/esm/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -0
  241. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js +2 -0
  242. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +1 -0
  243. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +56 -0
  244. package/dist/esm/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +1 -0
  245. package/dist/esm/lock/implementations/derivables/_module.js +3 -0
  246. package/dist/esm/lock/implementations/derivables/_module.js.map +1 -0
  247. package/dist/esm/lock/implementations/derivables/lock-provider/_module.js +2 -0
  248. package/dist/esm/lock/implementations/derivables/lock-provider/_module.js.map +1 -0
  249. package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js +76 -0
  250. package/dist/esm/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -0
  251. package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js +158 -0
  252. package/dist/esm/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -0
  253. package/dist/esm/lock/implementations/derivables/lock-provider/lock.js +302 -0
  254. package/dist/esm/lock/implementations/derivables/lock-provider/lock.js.map +1 -0
  255. package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js +2 -0
  256. package/dist/esm/lock/implementations/derivables/lock-provider-factory/_module.js.map +1 -0
  257. package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +74 -0
  258. package/dist/esm/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -0
  259. package/dist/esm/utilities/contracts/_module.js +1 -0
  260. package/dist/esm/utilities/contracts/_module.js.map +1 -1
  261. package/dist/esm/utilities/contracts/serde-registrable.contract.js +1 -0
  262. package/dist/esm/utilities/contracts/serde-registrable.contract.js.map +1 -0
  263. package/dist/esm/utilities/functions.js +4 -0
  264. package/dist/esm/utilities/functions.js.map +1 -1
  265. package/dist/types/_module.d.ts +2 -0
  266. package/dist/types/async/utilities/lazy-promise/lazy-promise.d.ts +2 -2
  267. package/dist/types/cache/contracts/cache-adapter.contract.d.ts +2 -2
  268. package/dist/types/cache/contracts/cache-factory.contract.d.ts +1 -2
  269. package/dist/types/cache/contracts/cache.contract.d.ts +116 -8
  270. package/dist/types/cache/contracts/cache.events.d.ts +12 -1
  271. package/dist/types/cache/implementations/_shared/cache-adapter.test-suite.d.ts +2 -9
  272. package/dist/types/cache/implementations/_shared/cache.test-suite.d.ts +3 -13
  273. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
  274. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +23 -29
  275. package/dist/types/cache/implementations/adapters/memory-cache-adapter/_module.d.ts +0 -1
  276. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +8 -18
  277. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/_module.d.ts +0 -1
  278. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +16 -26
  279. package/dist/types/cache/implementations/adapters/redis-cache-adapter/_module.d.ts +0 -1
  280. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +12 -22
  281. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
  282. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +23 -29
  283. package/dist/types/cache/implementations/derivables/cache/_module.d.ts +0 -1
  284. package/dist/types/cache/implementations/derivables/cache/cache.d.ts +38 -27
  285. package/dist/types/cache/implementations/derivables/cache-factory/_module.d.ts +0 -1
  286. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory.d.ts +60 -26
  287. package/dist/types/collection/contracts/async-collection.contract.d.ts +68 -8
  288. package/dist/types/event-bus/contracts/event-bus-adapter.contract.d.ts +1 -1
  289. package/dist/types/event-bus/contracts/event-bus-factory.contract.d.ts +1 -1
  290. package/dist/types/event-bus/implementations/_shared/event-bus-adapter.test-suite.d.ts +2 -10
  291. package/dist/types/event-bus/implementations/_shared/event-bus.test-suite.d.ts +3 -13
  292. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/_module.d.ts +0 -1
  293. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter.d.ts +8 -18
  294. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/_module.d.ts +0 -1
  295. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +11 -20
  296. package/dist/types/event-bus/implementations/derivables/event-bus/_module.d.ts +0 -1
  297. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus.d.ts +29 -20
  298. package/dist/types/event-bus/implementations/derivables/event-bus-factory/_module.d.ts +0 -1
  299. package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +49 -46
  300. package/dist/types/lock/contracts/_module.d.ts +7 -0
  301. package/dist/types/lock/contracts/database-lock-adapter.contract.d.ts +49 -0
  302. package/dist/types/lock/contracts/lock-adapter.contract.d.ts +48 -0
  303. package/dist/types/lock/contracts/lock-provider-factory.contract.d.ts +36 -0
  304. package/dist/types/lock/contracts/lock-provider.contract.d.ts +92 -0
  305. package/dist/types/lock/contracts/lock.contract.d.ts +219 -0
  306. package/dist/types/lock/contracts/lock.errors.d.ts +66 -0
  307. package/dist/types/lock/contracts/lock.events.d.ts +83 -0
  308. package/dist/types/lock/implementations/_module.d.ts +3 -0
  309. package/dist/types/lock/implementations/_shared/_module.d.ts +3 -0
  310. package/dist/types/lock/implementations/_shared/database-lock-adapter.test-suite.d.ts +21 -0
  311. package/dist/types/lock/implementations/_shared/lock-adapter.test-suite.d.ts +21 -0
  312. package/dist/types/lock/implementations/_shared/lock-provider.test-suite.d.ts +23 -0
  313. package/dist/types/lock/implementations/adapters/_module.d.ts +5 -0
  314. package/dist/types/lock/implementations/adapters/kysely-lock-adapter/_module.d.ts +1 -0
  315. package/dist/types/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +52 -0
  316. package/dist/types/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +1 -0
  317. package/dist/types/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +58 -0
  318. package/dist/types/lock/implementations/adapters/memory-lock-adapter/_module.d.ts +1 -0
  319. package/dist/types/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +52 -0
  320. package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/_module.d.ts +1 -0
  321. package/dist/types/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +60 -0
  322. package/dist/types/lock/implementations/adapters/redis-lock-adapter/_module.d.ts +1 -0
  323. package/dist/types/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +57 -0
  324. package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +1 -0
  325. package/dist/types/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +57 -0
  326. package/dist/types/lock/implementations/derivables/_module.d.ts +2 -0
  327. package/dist/types/lock/implementations/derivables/lock-provider/_module.d.ts +1 -0
  328. package/dist/types/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +23 -0
  329. package/dist/types/lock/implementations/derivables/lock-provider/lock-provider.d.ts +114 -0
  330. package/dist/types/lock/implementations/derivables/lock-provider/lock.d.ts +73 -0
  331. package/dist/types/lock/implementations/derivables/lock-provider-factory/_module.d.ts +1 -0
  332. package/dist/types/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +124 -0
  333. package/dist/types/utilities/contracts/_module.d.ts +1 -0
  334. package/dist/types/utilities/contracts/serde-registrable.contract.d.ts +11 -0
  335. package/dist/types/utilities/types.d.ts +3 -1
  336. package/package.json +5 -3
  337. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -56
  338. package/dist/cjs/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
  339. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -26
  340. package/dist/cjs/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
  341. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -44
  342. package/dist/cjs/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
  343. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -32
  344. package/dist/cjs/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
  345. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -56
  346. package/dist/cjs/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
  347. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js +0 -56
  348. package/dist/cjs/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
  349. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -83
  350. package/dist/cjs/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
  351. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -26
  352. package/dist/cjs/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
  353. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -38
  354. package/dist/cjs/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
  355. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -56
  356. package/dist/cjs/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
  357. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -71
  358. package/dist/cjs/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
  359. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js +0 -52
  360. package/dist/esm/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.js.map +0 -1
  361. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js +0 -22
  362. package/dist/esm/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.js.map +0 -1
  363. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js +0 -40
  364. package/dist/esm/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.js.map +0 -1
  365. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js +0 -28
  366. package/dist/esm/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.js.map +0 -1
  367. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js +0 -52
  368. package/dist/esm/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.js.map +0 -1
  369. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js +0 -52
  370. package/dist/esm/cache/implementations/derivables/cache/cache-settings.js.map +0 -1
  371. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js +0 -79
  372. package/dist/esm/cache/implementations/derivables/cache-factory/cache-factory-settings.js.map +0 -1
  373. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js +0 -22
  374. package/dist/esm/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.js.map +0 -1
  375. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js +0 -34
  376. package/dist/esm/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.js.map +0 -1
  377. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js +0 -52
  378. package/dist/esm/event-bus/implementations/derivables/event-bus/event-bus-settings.js.map +0 -1
  379. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js +0 -67
  380. package/dist/esm/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.js.map +0 -1
  381. package/dist/types/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter-settings.d.ts +0 -48
  382. package/dist/types/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter-settings.d.ts +0 -26
  383. package/dist/types/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter-settings.d.ts +0 -50
  384. package/dist/types/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter-settings.d.ts +0 -32
  385. package/dist/types/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter-settings.d.ts +0 -48
  386. package/dist/types/cache/implementations/derivables/cache/cache-settings.d.ts +0 -73
  387. package/dist/types/cache/implementations/derivables/cache-factory/cache-factory-settings.d.ts +0 -108
  388. package/dist/types/event-bus/implementations/adapters/memory-event-bus-adapter/memory-event-bus-adapter-settings.d.ts +0 -27
  389. package/dist/types/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter-settings.d.ts +0 -36
  390. package/dist/types/event-bus/implementations/derivables/event-bus/event-bus-settings.d.ts +0 -62
  391. package/dist/types/event-bus/implementations/derivables/event-bus-factory/event-bus-factory-settings.d.ts +0 -92
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { BaseEvent } from "../../event-bus/contracts/_module";
5
+ import type { IFlexibleSerde } from "../../serde/contracts/_module";
6
+ import type { OneOrMore } from "../../utilities/types";
7
+ import type { TimeSpan } from "../../utilities/_module";
8
+ /**
9
+ * @group Events
10
+ */
11
+ export declare class KeyAcquiredLockEvent extends BaseEvent<{
12
+ key: string;
13
+ owner: string;
14
+ ttl: TimeSpan | null;
15
+ }> {
16
+ }
17
+ /**
18
+ * @group Events
19
+ */
20
+ export declare class KeyReleasedLockEvent extends BaseEvent<{
21
+ key: string;
22
+ owner: string;
23
+ }> {
24
+ }
25
+ /**
26
+ * @group Events
27
+ */
28
+ export declare class KeyForceReleasedLockEvent extends BaseEvent<{
29
+ key: string;
30
+ }> {
31
+ }
32
+ /**
33
+ * @group Events
34
+ */
35
+ export declare class UnownedReleaseLockEvent extends BaseEvent<{
36
+ key: string;
37
+ owner: string;
38
+ }> {
39
+ }
40
+ /**
41
+ * @group Events
42
+ */
43
+ export declare class UnownedRefreshLockEvent extends BaseEvent<{
44
+ key: string;
45
+ owner: string;
46
+ }> {
47
+ }
48
+ /**
49
+ * @group Events
50
+ */
51
+ export declare class KeyAlreadyAcquiredLockEvent extends BaseEvent<{
52
+ key: string;
53
+ owner: string;
54
+ }> {
55
+ }
56
+ /**
57
+ * @group Events
58
+ */
59
+ export declare class KeyRefreshedLockEvent extends BaseEvent<{
60
+ key: string;
61
+ owner: string;
62
+ ttl: TimeSpan;
63
+ }> {
64
+ }
65
+ /**
66
+ * @group Events
67
+ */
68
+ export declare class UnexpectedErrorLockEvent extends BaseEvent<{
69
+ key: string;
70
+ owner: string;
71
+ ttl: TimeSpan | null;
72
+ error: unknown;
73
+ }> {
74
+ }
75
+ /**
76
+ * @group Events
77
+ */
78
+ export type LockEvents = KeyAcquiredLockEvent | KeyReleasedLockEvent | UnownedReleaseLockEvent | UnownedRefreshLockEvent | KeyAlreadyAcquiredLockEvent | KeyForceReleasedLockEvent | KeyRefreshedLockEvent | UnexpectedErrorLockEvent;
79
+ /**
80
+ * The <i>registerLockEventsToSerde</i> function registers all <i>{@link ILock}</i> related events with <i>IFlexibleSerde</i>, ensuring they will properly be serialized and deserialized.
81
+ * @group Events
82
+ */
83
+ export declare function registerLockEventsToSerde(serde: OneOrMore<IFlexibleSerde>): void;
@@ -0,0 +1,3 @@
1
+ export * from "../../lock/implementations/_shared/_module";
2
+ export * from "../../lock/implementations/adapters/_module";
3
+ export * from "../../lock/implementations/derivables/_module";
@@ -0,0 +1,3 @@
1
+ export * from "../../../lock/implementations/_shared/database-lock-adapter.test-suite";
2
+ export * from "../../../lock/implementations/_shared/lock-adapter.test-suite";
3
+ export * from "../../../lock/implementations/_shared/lock-provider.test-suite";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import { type IDatabaseLockAdapter } from "../../../lock/contracts/_module";
6
+ import { type Promisable } from "../../../utilities/_module";
7
+ /**
8
+ * @group Utilities
9
+ */
10
+ export type DatabaseLockAdapterTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<IDatabaseLockAdapter>;
16
+ };
17
+ /**
18
+ * The <i>databaseLockAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link IDatabaseLockAdapter}</i> with <i>vitest</i>.
19
+ * @group Utilities
20
+ */
21
+ export declare function databaseLockAdapterTestSuite(settings: DatabaseLockAdapterTestSuiteSettings): void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import { type ILockAdapter } from "../../../lock/contracts/_module";
6
+ import { type Promisable } from "../../../utilities/_module";
7
+ /**
8
+ * @group Utilities
9
+ */
10
+ export type LockAdapterTestSuiteSettings = {
11
+ expect: ExpectStatic;
12
+ test: TestAPI;
13
+ describe: SuiteAPI;
14
+ beforeEach: typeof beforeEach;
15
+ createAdapter: () => Promisable<ILockAdapter>;
16
+ };
17
+ /**
18
+ * The <i>lockAdapterTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ILockAdapter}</i> with <i>vitest</i>.
19
+ * @group Utilities
20
+ */
21
+ export declare function lockAdapterTestSuite(settings: LockAdapterTestSuiteSettings): void;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { type TestAPI, type SuiteAPI, type ExpectStatic, type beforeEach } from "vitest";
5
+ import type { IGroupableLockProvider } from "../../../lock/contracts/_module";
6
+ import { type Promisable } from "../../../utilities/_module";
7
+ import type { ISerde } from "../../../serde/contracts/_module";
8
+ /**
9
+ * @group Utilities
10
+ */
11
+ export type LockProviderTestSuiteSettings = {
12
+ expect: ExpectStatic;
13
+ test: TestAPI;
14
+ describe: SuiteAPI;
15
+ beforeEach: typeof beforeEach;
16
+ createLockProvider: () => Promisable<IGroupableLockProvider>;
17
+ serde?: ISerde;
18
+ };
19
+ /**
20
+ * The <i>lockProviderTestSuite</i> function simplifies the process of testing your custom implementation of <i>{@link ILock}</i> with <i>vitest</i>.
21
+ * @group Utilities
22
+ */
23
+ export declare function lockProviderTestSuite(settings: LockProviderTestSuiteSettings): void;
@@ -0,0 +1,5 @@
1
+ export * from "../../../lock/implementations/adapters/libsql-lock-adapter/_module";
2
+ export * from "../../../lock/implementations/adapters/memory-lock-adapter/_module";
3
+ export * from "../../../lock/implementations/adapters/mongodb-lock-adapter/_module";
4
+ export * from "../../../lock/implementations/adapters/redis-lock-adapter/_module";
5
+ export * from "../../../lock/implementations/adapters/sqlite-lock-adapter/_module";
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter";
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
5
+ import type { Kysely } from "kysely";
6
+ import { TimeSpan } from "../../../../utilities/_module";
7
+ /**
8
+ * @internal
9
+ */
10
+ type KyselyLockTable = {
11
+ group: string;
12
+ key: string;
13
+ owner: string;
14
+ expiresAt: number | null;
15
+ };
16
+ /**
17
+ * @internal
18
+ */
19
+ type KyselyTables = {
20
+ lock: KyselyLockTable;
21
+ };
22
+ /**
23
+ * @internal
24
+ */
25
+ type KyselySettings = {
26
+ database: Kysely<KyselyTables>;
27
+ rootGroup: string;
28
+ expiredKeysRemovalInterval?: TimeSpan;
29
+ shouldRemoveExpiredKeys?: boolean;
30
+ };
31
+ /**
32
+ * @internal
33
+ */
34
+ export declare class KyselyLockAdapter implements IDatabaseLockAdapter {
35
+ private readonly group;
36
+ private readonly database;
37
+ private readonly expiredKeysRemovalInterval;
38
+ private readonly shouldRemoveExpiredKeys;
39
+ private timeoutId;
40
+ constructor(settings: KyselySettings);
41
+ deInit(): Promise<void>;
42
+ init(): Promise<void>;
43
+ removeExpiredKeys(): Promise<void>;
44
+ insert(key: string, owner: string, expiration: Date | null): Promise<void>;
45
+ update(key: string, owner: string, expiration: Date | null): Promise<number>;
46
+ remove(key: string, owner: string | null): Promise<void>;
47
+ refresh(key: string, owner: string, expiration: Date): Promise<number>;
48
+ find(key: string): Promise<ILockData | null>;
49
+ getGroup(): string;
50
+ withGroup(group: string): IDatabaseLockAdapter;
51
+ }
52
+ export {};
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter";
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
5
+ import { TimeSpan } from "../../../../utilities/_module";
6
+ import type { Client } from "@libsql/client/.";
7
+ /**
8
+ * @group Adapters
9
+ */
10
+ export type LibsqlLockAdapterSettings = {
11
+ database: Client;
12
+ tableName?: string;
13
+ expiredKeysRemovalInterval?: TimeSpan;
14
+ shouldRemoveExpiredKeys?: boolean;
15
+ rootGroup: string;
16
+ };
17
+ /**
18
+ * To utilize the <i>LibsqlLockAdapter</i>, you must install the <i>"@libsql/client"</i> package.
19
+ * @group Adapters
20
+ */
21
+ export declare class LibsqlLockAdapter implements IDatabaseLockAdapter {
22
+ private databaseLockAdapter;
23
+ /***
24
+ * @example
25
+ * ```ts
26
+ * import { LibsqlCacheAdapter } from "@daiso-tech/core";
27
+ * import { createClient } from "@libsql/client";
28
+ *
29
+ * (async () => {
30
+ * const database = createClient({ url: "file:local.db" });
31
+ * const lockAdapter = new LibsqlCacheAdapter({
32
+ * database,
33
+ * rootGroup: "@global"
34
+ * });
35
+ * await lockAdapter.init();
36
+ * })();
37
+ * ```
38
+ */
39
+ constructor(settings: LibsqlLockAdapterSettings);
40
+ removeExpiredKeys(): Promise<void>;
41
+ /**
42
+ * Removes the table where the cache values are stored and removes the table indexes.
43
+ * Note all cache data will be removed.
44
+ */
45
+ deInit(): Promise<void>;
46
+ /**
47
+ * Creates the table where the cache values are stored and it's related indexes.
48
+ * Note the <i>init</i> method needs to be called before using the adapter.
49
+ */
50
+ init(): Promise<void>;
51
+ insert(key: string, owner: string, expiration: Date | null): Promise<void>;
52
+ update(key: string, owner: string, expiration: Date | null): Promise<number>;
53
+ remove(key: string, owner: string | null): Promise<void>;
54
+ refresh(key: string, owner: string, expiration: Date): Promise<number>;
55
+ find(key: string): Promise<ILockData | null>;
56
+ getGroup(): string;
57
+ withGroup(group: string): IDatabaseLockAdapter;
58
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter";
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { TimeSpan } from "../../../../utilities/_module";
5
+ import type { ILockAdapter, ILockData } from "../../../../lock/contracts/_module";
6
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type MemoryLockAdapterSettings = {
10
+ rootGroup: string;
11
+ map?: Map<string, ILockData>;
12
+ };
13
+ /**
14
+ * @group Adapters
15
+ */
16
+ export declare class MemoryLockAdapter implements ILockAdapter {
17
+ private readonly group;
18
+ private readonly timeoutMap;
19
+ private readonly map;
20
+ /**
21
+ * @example
22
+ * ```ts
23
+ * import { MemoryLockAdapter } from "@daiso-tech/core";
24
+ *
25
+ * const lockAdapter = new MemoryLockAdapter({
26
+ * rootGroup: "@cache"
27
+ * });
28
+ * ```
29
+ * You can also provide an <i>Map</i>.
30
+ * @example
31
+ * ```ts
32
+ * import { MemoryLockAdapter } from "@daiso-tech/core";
33
+ *
34
+ * const map = new Map<any, any>();
35
+ * const lockAdapter = new MemoryLockAdapter({
36
+ * rootGroup: "@cache",
37
+ * map
38
+ * });
39
+ * ```
40
+ */
41
+ constructor(settings: MemoryLockAdapterSettings);
42
+ private getPrefix;
43
+ private withPrefix;
44
+ acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
45
+ release(key: string, owner: string): Promise<boolean>;
46
+ forceRelease(key: string): Promise<void>;
47
+ isLocked(key: string): Promise<boolean>;
48
+ getRemainingTime(key: string): Promise<TimeSpan | null>;
49
+ refresh(key: string, owner: string, time: TimeSpan): Promise<boolean>;
50
+ getGroup(): string;
51
+ withGroup(group: string): ILockAdapter;
52
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter";
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
5
+ import type { CollectionOptions, Db } from "mongodb";
6
+ /**
7
+ * @group Adapters
8
+ */
9
+ export type MongodbLockAdapterSettings = {
10
+ database: Db;
11
+ rootGroup: string;
12
+ collectionName?: string;
13
+ collectionSettings?: CollectionOptions;
14
+ };
15
+ /**
16
+ * @group Adapters
17
+ */
18
+ export declare class MongodbLockAdapter implements IDatabaseLockAdapter {
19
+ private readonly group;
20
+ private readonly database;
21
+ private readonly collection;
22
+ private readonly collectionName;
23
+ private readonly collectionSettings?;
24
+ /**
25
+ * @example
26
+ * ```ts
27
+ * import { MongodbLockAdapter } from "@daiso-tech/core";
28
+ * import { MongoClient } from "mongodb";
29
+ *
30
+ * (async () => {
31
+ * const client = await MongoClient.connect("YOUR_MONGODB_CONNECTION_STRING");
32
+ * const database = client.db("database");
33
+ * const lockAdapter = new MongodbLockAdapter({
34
+ * database,
35
+ * rootGroup: "@global"
36
+ * });
37
+ * await lockAdapter.init();
38
+ * })();
39
+ * ```
40
+ */
41
+ constructor({ collectionName, collectionSettings, database, rootGroup, }: MongodbLockAdapterSettings);
42
+ removeExpiredKeys(): Promise<void>;
43
+ /**
44
+ * Creates all related indexes.
45
+ * Note the <i>init</i> method needs to be called before using the adapter.
46
+ */
47
+ init(): Promise<void>;
48
+ /**
49
+ * Removes the collection where the cache values are stored and all it's related indexes.
50
+ * Note all cache data will be removed.
51
+ */
52
+ deInit(): Promise<void>;
53
+ insert(key: string, owner: string, expiration: Date | null): Promise<void>;
54
+ update(key: string, owner: string, expiration: Date | null): Promise<number>;
55
+ remove(key: string, owner: string | null): Promise<void>;
56
+ refresh(key: string, owner: string, expiration: Date): Promise<number>;
57
+ find(key: string): Promise<ILockData | null>;
58
+ getGroup(): string;
59
+ withGroup(group: string): IDatabaseLockAdapter;
60
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter";
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import { TimeSpan } from "../../../../utilities/_module";
5
+ import type { ILockAdapter } from "../../../../lock/contracts/_module";
6
+ import type Redis from "ioredis";
7
+ import type { Result } from "ioredis";
8
+ declare module "ioredis" {
9
+ interface RedisCommander<Context> {
10
+ daiso_lock_acquire(key: string, owner: string, ttl: string): Result<number, Context>;
11
+ daiso_lock_release(key: string, owner: string): Result<number, Context>;
12
+ daiso_lock_refresh(key: string, owner: string, ttl: string): Result<number, Context>;
13
+ }
14
+ }
15
+ /**
16
+ * @group Adapters
17
+ */
18
+ export type RedisLockAdapterSettings = {
19
+ database: Redis;
20
+ rootGroup: string;
21
+ };
22
+ /**
23
+ * @group Adapters
24
+ */
25
+ export declare class RedisLockAdapter implements ILockAdapter {
26
+ private readonly group;
27
+ private readonly database;
28
+ /**
29
+ * @example
30
+ * ```ts
31
+ * import { RedisLockAdapter, SuperJsonSerde } from "@daiso-tech/core";
32
+ * import Redis from "ioredis";
33
+ *
34
+ * const database = new Redis("YOUR_REDIS_CONNECTION_STRING");
35
+ * const serde = new SuperJsonSerde();
36
+ * const lockAdapter = new RedisLockAdapter({
37
+ * database,
38
+ * serde,
39
+ * rootGroup: "@global"
40
+ * });
41
+ * ```
42
+ */
43
+ constructor(settings: RedisLockAdapterSettings);
44
+ private initAquireCommand;
45
+ private initReleaseCommand;
46
+ private initRefreshComand;
47
+ private getPrefix;
48
+ private withPrefix;
49
+ acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
50
+ release(key: string, owner: string): Promise<boolean>;
51
+ forceRelease(key: string): Promise<void>;
52
+ isLocked(key: string): Promise<boolean>;
53
+ getRemainingTime(key: string): Promise<TimeSpan | null>;
54
+ refresh(key: string, owner: string, ttl: TimeSpan): Promise<boolean>;
55
+ getGroup(): string;
56
+ withGroup(group: string): ILockAdapter;
57
+ }
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter";
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module";
5
+ import { TimeSpan } from "../../../../utilities/_module";
6
+ import type { SqliteDatabase } from "kysely";
7
+ /**
8
+ * @group Adapters
9
+ */
10
+ export type SqliteLockAdapterSettings = {
11
+ database: SqliteDatabase;
12
+ tableName?: string;
13
+ expiredKeysRemovalInterval?: TimeSpan;
14
+ shouldRemoveExpiredKeys?: boolean;
15
+ rootGroup: string;
16
+ };
17
+ /**
18
+ * @group Adapters
19
+ */
20
+ export declare class SqliteLockAdapter implements IDatabaseLockAdapter {
21
+ private databaseLockAdapter;
22
+ /**
23
+ * @example
24
+ * ```ts
25
+ * import { SqliteLockAdapter } from "@daiso-tech/core";
26
+ * import Sqlite from "better-sqlite3";
27
+ *
28
+ * (async () => {
29
+ * const database = new Sqlite("local.db");
30
+ * const lockAdapter = new SqliteLockAdapter({
31
+ * database,
32
+ * rootGroup: "@global"
33
+ * });
34
+ * await lockAdapter.init();
35
+ * })();
36
+ * ```
37
+ */
38
+ constructor(settings: SqliteLockAdapterSettings);
39
+ removeExpiredKeys(): Promise<void>;
40
+ /**
41
+ * Removes the table where the cache values are stored and removes the table indexes.
42
+ * Note all cache data will be removed.
43
+ */
44
+ deInit(): Promise<void>;
45
+ /**
46
+ * Creates the table where the cache values are stored and it's related indexes.
47
+ * Note the <i>init</i> method needs to be called before using the adapter.
48
+ */
49
+ init(): Promise<void>;
50
+ insert(key: string, owner: string, expiration: Date | null): Promise<void>;
51
+ update(key: string, owner: string, expiration: Date | null): Promise<number>;
52
+ remove(key: string, owner: string | null): Promise<void>;
53
+ refresh(key: string, owner: string, expiration: Date): Promise<number>;
54
+ find(key: string): Promise<ILockData | null>;
55
+ getGroup(): string;
56
+ withGroup(group: string): IDatabaseLockAdapter;
57
+ }
@@ -0,0 +1,2 @@
1
+ export * from "../../../lock/implementations/derivables/lock-provider/_module";
2
+ export * from "../../../lock/implementations/derivables/lock-provider-factory/_module";
@@ -0,0 +1 @@
1
+ export * from "../../../../lock/implementations/derivables/lock-provider/lock-provider";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module Lock
3
+ */
4
+ import type { IDeinitizable, IInitizable } from "../../../../_module";
5
+ import { TimeSpan } from "../../../../_module";
6
+ import type { IDatabaseLockAdapter, ILockAdapter } from "../../../../lock/contracts/_module";
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare class DatabaseLockAdapter implements ILockAdapter, IDeinitizable, IInitizable {
11
+ private readonly adapter;
12
+ constructor(adapter: IDatabaseLockAdapter);
13
+ init(): Promise<void>;
14
+ deInit(): Promise<void>;
15
+ acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
16
+ release(key: string, owner: string): Promise<boolean>;
17
+ forceRelease(key: string): Promise<void>;
18
+ isLocked(key: string): Promise<boolean>;
19
+ getRemainingTime(key: string): Promise<TimeSpan | null>;
20
+ refresh(key: string, owner: string, ttl: TimeSpan): Promise<boolean>;
21
+ getGroup(): string;
22
+ withGroup(group: string): ILockAdapter;
23
+ }