@daiso-tech/core 0.40.0 → 0.41.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 (672) hide show
  1. package/README.md +8 -1
  2. package/dist/backoff-policies/_module-exports.d.ts +5 -0
  3. package/dist/backoff-policies/_module-exports.js +6 -0
  4. package/dist/backoff-policies/_module-exports.js.map +1 -0
  5. package/dist/{async/backof-policies → backoff-policies}/_shared.d.ts +6 -7
  6. package/dist/{async/backof-policies → backoff-policies}/_shared.js +1 -1
  7. package/dist/backoff-policies/_shared.js.map +1 -0
  8. package/dist/backoff-policies/constant-backoff-policy/_module.d.ts +1 -0
  9. package/dist/backoff-policies/constant-backoff-policy/_module.js +2 -0
  10. package/dist/backoff-policies/constant-backoff-policy/_module.js.map +1 -0
  11. package/dist/{async/backof-policies → backoff-policies}/constant-backoff-policy/constant-backoff-policy.d.ts +6 -8
  12. package/dist/{async/backof-policies → backoff-policies}/constant-backoff-policy/constant-backoff-policy.js +8 -10
  13. package/dist/backoff-policies/constant-backoff-policy/constant-backoff-policy.js.map +1 -0
  14. package/dist/backoff-policies/exponential-backoff-policy/_module.d.ts +1 -0
  15. package/dist/backoff-policies/exponential-backoff-policy/_module.js +2 -0
  16. package/dist/backoff-policies/exponential-backoff-policy/_module.js.map +1 -0
  17. package/dist/{async/backof-policies → backoff-policies}/exponential-backoff-policy/exponential-backoff-policy.d.ts +7 -9
  18. package/dist/backoff-policies/exponential-backoff-policy/exponential-backoff-policy.js +30 -0
  19. package/dist/backoff-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +1 -0
  20. package/dist/backoff-policies/linear-backoff-policy/_module.d.ts +1 -0
  21. package/dist/backoff-policies/linear-backoff-policy/_module.js +2 -0
  22. package/dist/backoff-policies/linear-backoff-policy/_module.js.map +1 -0
  23. package/dist/{async/backof-policies → backoff-policies}/linear-backoff-policy/linear-backoff-policy.d.ts +7 -9
  24. package/dist/backoff-policies/linear-backoff-policy/linear-backoff-policy.js +30 -0
  25. package/dist/backoff-policies/linear-backoff-policy/linear-backoff-policy.js.map +1 -0
  26. package/dist/backoff-policies/polynomial-backoff-policy/_module.d.ts +1 -0
  27. package/dist/backoff-policies/polynomial-backoff-policy/_module.js +2 -0
  28. package/dist/backoff-policies/polynomial-backoff-policy/_module.js.map +1 -0
  29. package/dist/{async/backof-policies → backoff-policies}/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +7 -9
  30. package/dist/backoff-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +30 -0
  31. package/dist/backoff-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +1 -0
  32. package/dist/cache/contracts/cache-adapter.contract.d.ts +3 -3
  33. package/dist/cache/contracts/cache.contract.d.ts +22 -22
  34. package/dist/cache/contracts/cache.errors.d.ts +7 -14
  35. package/dist/cache/contracts/cache.errors.js +12 -24
  36. package/dist/cache/contracts/cache.errors.js.map +1 -1
  37. package/dist/cache/contracts/cache.events.d.ts +1 -1
  38. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +1 -1
  39. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +4 -4
  40. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  41. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  42. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js +2 -2
  43. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  44. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +3 -2
  45. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +3 -3
  46. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  47. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  48. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
  49. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +2 -2
  50. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  51. package/dist/cache/implementations/derivables/cache/cache.d.ts +38 -43
  52. package/dist/cache/implementations/derivables/cache/cache.js +106 -101
  53. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  54. package/dist/cache/implementations/derivables/cache/database-cache-adapter.d.ts +1 -1
  55. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +3 -3
  56. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
  57. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +6 -8
  58. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +5 -15
  59. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  60. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.d.ts +1 -1
  61. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +48 -48
  62. package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
  63. package/dist/cache/implementations/test-utilities/cache.test-suite.js +107 -107
  64. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  65. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +2 -1
  66. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  67. package/dist/collection/contracts/async-collection.contract.d.ts +43 -43
  68. package/dist/collection/contracts/collection.contract.d.ts +15 -1
  69. package/dist/collection/contracts/collection.contract.js +1 -3
  70. package/dist/collection/contracts/collection.contract.js.map +1 -1
  71. package/dist/collection/contracts/collection.errors.d.ts +4 -13
  72. package/dist/collection/contracts/collection.errors.js +4 -16
  73. package/dist/collection/contracts/collection.errors.js.map +1 -1
  74. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.d.ts +6 -0
  75. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js +3 -0
  76. package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js.map +1 -1
  77. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +40 -51
  78. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +31 -37
  79. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  80. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.d.ts +3 -0
  81. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js +6 -0
  82. package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js.map +1 -1
  83. package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +3 -3
  84. package/dist/collection/implementations/iterable-collection/iterable-collection.js +5 -2
  85. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  86. package/dist/collection/implementations/list-collection/list-collection.d.ts +3 -3
  87. package/dist/collection/implementations/list-collection/list-collection.js +5 -2
  88. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  89. package/dist/event-bus/contracts/event-bus.contract.d.ts +10 -10
  90. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +3 -6
  91. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +7 -9
  92. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  93. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +17 -24
  94. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +32 -32
  95. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  96. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +1 -3
  97. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +4 -8
  98. package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
  99. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +34 -32
  100. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  101. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +195 -190
  102. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  103. package/dist/hooks/_module-exports.d.ts +3 -0
  104. package/dist/hooks/_module-exports.js +4 -0
  105. package/dist/hooks/_module-exports.js.map +1 -0
  106. package/dist/{utilities/classes/hooks → hooks}/async-hooks.d.ts +15 -26
  107. package/dist/{utilities/classes/hooks → hooks}/async-hooks.js +4 -6
  108. package/dist/hooks/async-hooks.js.map +1 -0
  109. package/dist/{utilities/classes/hooks → hooks}/hooks.d.ts +11 -18
  110. package/dist/{utilities/classes/hooks → hooks}/hooks.js +4 -5
  111. package/dist/hooks/hooks.js.map +1 -0
  112. package/dist/{utilities/classes/hooks → hooks}/types.d.ts +2 -3
  113. package/dist/hooks/types.js +5 -0
  114. package/dist/hooks/types.js.map +1 -0
  115. package/dist/lock/contracts/_module-exports.d.ts +4 -2
  116. package/dist/lock/contracts/_module-exports.js +4 -2
  117. package/dist/lock/contracts/_module-exports.js.map +1 -1
  118. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +24 -17
  119. package/dist/lock/contracts/lock-adapter.contract.d.ts +15 -24
  120. package/dist/lock/contracts/lock-adapter.contract.js +1 -10
  121. package/dist/lock/contracts/lock-adapter.contract.js.map +1 -1
  122. package/dist/lock/contracts/lock-provider.contract.d.ts +5 -5
  123. package/dist/lock/contracts/lock-state.contract.d.ts +52 -0
  124. package/dist/lock/contracts/lock-state.contract.js +14 -0
  125. package/dist/lock/contracts/lock-state.contract.js.map +1 -0
  126. package/dist/lock/contracts/lock.contract.d.ts +64 -55
  127. package/dist/lock/contracts/lock.errors.d.ts +13 -20
  128. package/dist/lock/contracts/lock.errors.js +19 -26
  129. package/dist/lock/contracts/lock.errors.js.map +1 -1
  130. package/dist/lock/contracts/lock.events.d.ts +21 -49
  131. package/dist/lock/contracts/lock.events.js +2 -3
  132. package/dist/lock/contracts/lock.events.js.map +1 -1
  133. package/dist/lock/contracts/types.d.ts +11 -0
  134. package/dist/lock/contracts/types.js +5 -0
  135. package/dist/lock/contracts/types.js.map +1 -0
  136. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +21 -19
  137. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +92 -61
  138. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  139. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +8 -5
  140. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +33 -13
  141. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  142. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +7 -8
  143. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +33 -20
  144. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  145. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +6 -5
  146. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +7 -5
  147. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -1
  148. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +26 -8
  149. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +61 -28
  150. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  151. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +6 -5
  152. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +33 -33
  153. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  154. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.d.ts +2 -2
  155. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js +4 -6
  156. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +1 -1
  157. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +29 -39
  158. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +31 -35
  159. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  160. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +5 -8
  161. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +27 -23
  162. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  163. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +38 -34
  164. package/dist/lock/implementations/derivables/lock-provider/lock.js +182 -257
  165. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  166. package/dist/lock/implementations/derivables/lock-provider/resolve-database-lock-adapter.d.ts +9 -0
  167. package/dist/lock/implementations/derivables/lock-provider/resolve-database-lock-adapter.js +12 -0
  168. package/dist/lock/implementations/derivables/lock-provider/resolve-database-lock-adapter.js.map +1 -0
  169. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +12 -13
  170. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +7 -16
  171. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  172. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +310 -207
  173. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  174. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.d.ts +1 -1
  175. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +376 -292
  176. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  177. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.d.ts +15 -5
  178. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +3285 -2976
  179. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  180. package/dist/namespace/_module-exports.d.ts +1 -0
  181. package/dist/namespace/_module-exports.js +2 -0
  182. package/dist/namespace/_module-exports.js.map +1 -0
  183. package/dist/namespace/namespace.d.ts +87 -0
  184. package/dist/namespace/namespace.js +117 -0
  185. package/dist/namespace/namespace.js.map +1 -0
  186. package/dist/resilience/_module-exports.d.ts +2 -0
  187. package/dist/resilience/_module-exports.js +3 -0
  188. package/dist/resilience/_module-exports.js.map +1 -0
  189. package/dist/resilience/middlewares/_module.d.ts +5 -0
  190. package/dist/resilience/middlewares/_module.js +6 -0
  191. package/dist/resilience/middlewares/_module.js.map +1 -0
  192. package/dist/resilience/middlewares/dynamic/_module.d.ts +1 -0
  193. package/dist/resilience/middlewares/dynamic/_module.js +2 -0
  194. package/dist/resilience/middlewares/dynamic/_module.js.map +1 -0
  195. package/dist/{async → resilience}/middlewares/dynamic/dynamic.middleware.d.ts +6 -6
  196. package/dist/{async → resilience}/middlewares/dynamic/dynamic.middleware.js +5 -5
  197. package/dist/resilience/middlewares/dynamic/dynamic.middleware.js.map +1 -0
  198. package/dist/resilience/middlewares/fallback/_module.d.ts +2 -0
  199. package/dist/resilience/middlewares/fallback/_module.js +3 -0
  200. package/dist/resilience/middlewares/fallback/_module.js.map +1 -0
  201. package/dist/{async → resilience}/middlewares/fallback/fallback.middleware.d.ts +9 -9
  202. package/dist/{async → resilience}/middlewares/fallback/fallback.middleware.js +7 -6
  203. package/dist/resilience/middlewares/fallback/fallback.middleware.js.map +1 -0
  204. package/dist/{async → resilience}/middlewares/fallback/fallback.types.d.ts +7 -6
  205. package/dist/{async → resilience}/middlewares/fallback/fallback.types.js +1 -1
  206. package/dist/resilience/middlewares/fallback/fallback.types.js.map +1 -0
  207. package/dist/resilience/middlewares/observe/_module.d.ts +2 -0
  208. package/dist/resilience/middlewares/observe/_module.js +3 -0
  209. package/dist/resilience/middlewares/observe/_module.js.map +1 -0
  210. package/dist/{async → resilience}/middlewares/observe/observe.middleware.d.ts +13 -11
  211. package/dist/{async → resilience}/middlewares/observe/observe.middleware.js +14 -10
  212. package/dist/resilience/middlewares/observe/observe.middleware.js.map +1 -0
  213. package/dist/{async → resilience}/middlewares/observe/observe.types.d.ts +13 -12
  214. package/dist/resilience/middlewares/observe/observe.types.js +5 -0
  215. package/dist/resilience/middlewares/observe/observe.types.js.map +1 -0
  216. package/dist/resilience/middlewares/retry/_module.d.ts +2 -0
  217. package/dist/resilience/middlewares/retry/_module.js +3 -0
  218. package/dist/resilience/middlewares/retry/_module.js.map +1 -0
  219. package/dist/{async → resilience}/middlewares/retry/retry.middleware.d.ts +12 -9
  220. package/dist/{async → resilience}/middlewares/retry/retry.middleware.js +19 -15
  221. package/dist/resilience/middlewares/retry/retry.middleware.js.map +1 -0
  222. package/dist/{async → resilience}/middlewares/retry/retry.types.d.ts +14 -12
  223. package/dist/resilience/middlewares/retry/retry.types.js +7 -0
  224. package/dist/resilience/middlewares/retry/retry.types.js.map +1 -0
  225. package/dist/resilience/middlewares/timeout/_module.d.ts +2 -0
  226. package/dist/resilience/middlewares/timeout/_module.js +3 -0
  227. package/dist/resilience/middlewares/timeout/_module.js.map +1 -0
  228. package/dist/{async → resilience}/middlewares/timeout/timeout.middleware.d.ts +9 -7
  229. package/dist/{async → resilience}/middlewares/timeout/timeout.middleware.js +12 -11
  230. package/dist/resilience/middlewares/timeout/timeout.middleware.js.map +1 -0
  231. package/dist/{async → resilience}/middlewares/timeout/timeout.type.d.ts +10 -9
  232. package/dist/resilience/middlewares/timeout/timeout.type.js +5 -0
  233. package/dist/resilience/middlewares/timeout/timeout.type.js.map +1 -0
  234. package/dist/resilience/resilience.errors.d.ts +40 -0
  235. package/dist/resilience/resilience.errors.js +48 -0
  236. package/dist/resilience/resilience.errors.js.map +1 -0
  237. package/dist/resilience/utilities/_module.d.ts +2 -0
  238. package/dist/resilience/utilities/_module.js +3 -0
  239. package/dist/resilience/utilities/_module.js.map +1 -0
  240. package/dist/resilience/utilities/abort-and-fail/_module.d.ts +1 -0
  241. package/dist/resilience/utilities/abort-and-fail/_module.js +2 -0
  242. package/dist/resilience/utilities/abort-and-fail/_module.js.map +1 -0
  243. package/dist/resilience/utilities/abort-and-fail/abort-and-fail.d.ts +7 -0
  244. package/dist/resilience/utilities/abort-and-fail/abort-and-fail.js +51 -0
  245. package/dist/resilience/utilities/abort-and-fail/abort-and-fail.js.map +1 -0
  246. package/dist/resilience/utilities/timeout-and-fail/_module.d.ts +1 -0
  247. package/dist/resilience/utilities/timeout-and-fail/_module.js +2 -0
  248. package/dist/resilience/utilities/timeout-and-fail/_module.js.map +1 -0
  249. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.d.ts +7 -0
  250. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.js +23 -0
  251. package/dist/resilience/utilities/timeout-and-fail/timeout-and-fail.js.map +1 -0
  252. package/dist/semaphore/contracts/_module-exports.d.ts +9 -0
  253. package/dist/semaphore/contracts/_module-exports.js +10 -0
  254. package/dist/semaphore/contracts/_module-exports.js.map +1 -0
  255. package/dist/semaphore/contracts/database-semaphore-adapter.contract.d.ts +90 -0
  256. package/dist/semaphore/contracts/database-semaphore-adapter.contract.js +5 -0
  257. package/dist/semaphore/contracts/database-semaphore-adapter.contract.js.map +1 -0
  258. package/dist/semaphore/contracts/semaphore-adapter.contract.d.ts +61 -0
  259. package/dist/semaphore/contracts/semaphore-adapter.contract.js +5 -0
  260. package/dist/semaphore/contracts/semaphore-adapter.contract.js.map +1 -0
  261. package/dist/semaphore/contracts/semaphore-provider-factory.contract.d.ts +19 -0
  262. package/dist/semaphore/contracts/semaphore-provider-factory.contract.js +9 -0
  263. package/dist/semaphore/contracts/semaphore-provider-factory.contract.js.map +1 -0
  264. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +50 -0
  265. package/dist/semaphore/contracts/semaphore-provider.contract.js +5 -0
  266. package/dist/semaphore/contracts/semaphore-provider.contract.js.map +1 -0
  267. package/dist/semaphore/contracts/semaphore-state.contract.d.ts +70 -0
  268. package/dist/semaphore/contracts/semaphore-state.contract.js +15 -0
  269. package/dist/semaphore/contracts/semaphore-state.contract.js.map +1 -0
  270. package/dist/semaphore/contracts/semaphore.contract.d.ts +127 -0
  271. package/dist/semaphore/contracts/semaphore.contract.js +5 -0
  272. package/dist/semaphore/contracts/semaphore.contract.js.map +1 -0
  273. package/dist/semaphore/contracts/semaphore.errors.d.ts +52 -0
  274. package/dist/semaphore/contracts/semaphore.errors.js +63 -0
  275. package/dist/semaphore/contracts/semaphore.errors.js.map +1 -0
  276. package/dist/semaphore/contracts/semaphore.events.d.ts +101 -0
  277. package/dist/semaphore/contracts/semaphore.events.js +19 -0
  278. package/dist/semaphore/contracts/semaphore.events.js.map +1 -0
  279. package/dist/semaphore/contracts/types.d.ts +11 -0
  280. package/dist/semaphore/contracts/types.js +5 -0
  281. package/dist/semaphore/contracts/types.js.map +1 -0
  282. package/dist/semaphore/implementations/adapters/_module-exports.d.ts +5 -0
  283. package/dist/semaphore/implementations/adapters/_module-exports.js +6 -0
  284. package/dist/semaphore/implementations/adapters/_module-exports.js.map +1 -0
  285. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module.d.ts +1 -0
  286. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module.js +2 -0
  287. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/_module.js.map +1 -0
  288. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.d.ts +97 -0
  289. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js +313 -0
  290. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js.map +1 -0
  291. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module.d.ts +1 -0
  292. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module.js +2 -0
  293. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/_module.js.map +1 -0
  294. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.d.ts +49 -0
  295. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js +141 -0
  296. package/dist/semaphore/implementations/adapters/memory-semaphore-adapter/memory-semaphore-adapter.js.map +1 -0
  297. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module.d.ts +1 -0
  298. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module.js +2 -0
  299. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/_module.js.map +1 -0
  300. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.d.ts +80 -0
  301. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js +390 -0
  302. package/dist/semaphore/implementations/adapters/mongodb-semaphore-adapter/mongodb-semaphore-adapter.js.map +1 -0
  303. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module.d.ts +1 -0
  304. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module.js +2 -0
  305. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/_module.js.map +1 -0
  306. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.d.ts +18 -0
  307. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js +30 -0
  308. package/dist/semaphore/implementations/adapters/no-op-semaphore-adapter/no-op-semaphore-adapter.js.map +1 -0
  309. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module.d.ts +1 -0
  310. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module.js +2 -0
  311. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/_module.js.map +1 -0
  312. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.d.ts +48 -0
  313. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.js +338 -0
  314. package/dist/semaphore/implementations/adapters/redis-semaphore-adapter/redis-semaphore-adapter.js.map +1 -0
  315. package/dist/semaphore/implementations/derivables/_module-exports.d.ts +2 -0
  316. package/dist/semaphore/implementations/derivables/_module-exports.js +3 -0
  317. package/dist/semaphore/implementations/derivables/_module-exports.js.map +1 -0
  318. package/dist/semaphore/implementations/derivables/semaphore-provider/_module.d.ts +1 -0
  319. package/dist/semaphore/implementations/derivables/semaphore-provider/_module.js +2 -0
  320. package/dist/semaphore/implementations/derivables/semaphore-provider/_module.js.map +1 -0
  321. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.d.ts +17 -0
  322. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.js +74 -0
  323. package/dist/semaphore/implementations/derivables/semaphore-provider/database-semaphore-adapter.js.map +1 -0
  324. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.d.ts +8 -0
  325. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.js +15 -0
  326. package/dist/semaphore/implementations/derivables/semaphore-provider/is-database-semaphore-adapter.js.map +1 -0
  327. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-database-semaphore-adapter.d.ts +8 -0
  328. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-database-semaphore-adapter.js +15 -0
  329. package/dist/semaphore/implementations/derivables/semaphore-provider/resolve-database-semaphore-adapter.js.map +1 -0
  330. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +149 -0
  331. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +135 -0
  332. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -0
  333. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.d.ts +41 -0
  334. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js +77 -0
  335. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -0
  336. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +83 -0
  337. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +336 -0
  338. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -0
  339. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.d.ts +1 -0
  340. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.js +2 -0
  341. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/_module.js.map +1 -0
  342. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +40 -0
  343. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js +67 -0
  344. package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -0
  345. package/dist/semaphore/implementations/test-utilities/_module-exports.d.ts +3 -0
  346. package/dist/semaphore/implementations/test-utilities/_module-exports.js +4 -0
  347. package/dist/semaphore/implementations/test-utilities/_module-exports.js.map +1 -0
  348. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.d.ts +59 -0
  349. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js +536 -0
  350. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js.map +1 -0
  351. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.d.ts +59 -0
  352. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js +961 -0
  353. package/dist/semaphore/implementations/test-utilities/semaphore-adapter.test-suite.js.map +1 -0
  354. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.d.ts +67 -0
  355. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +4981 -0
  356. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -0
  357. package/dist/serde/contracts/_module-exports.d.ts +0 -1
  358. package/dist/serde/contracts/_module-exports.js +0 -1
  359. package/dist/serde/contracts/_module-exports.js.map +1 -1
  360. package/dist/serde/contracts/flexible-serde.contract.d.ts +21 -5
  361. package/dist/serde/contracts/serde.errors.d.ts +14 -11
  362. package/dist/serde/contracts/serde.errors.js +15 -14
  363. package/dist/serde/contracts/serde.errors.js.map +1 -1
  364. package/dist/serde/implementations/adapters/_module-exports.d.ts +0 -3
  365. package/dist/serde/implementations/adapters/_module-exports.js +0 -3
  366. package/dist/serde/implementations/adapters/_module-exports.js.map +1 -1
  367. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +6 -0
  368. package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
  369. package/dist/serde/implementations/derivables/serde-transformers.d.ts +38 -30
  370. package/dist/serde/implementations/derivables/serde-transformers.js +62 -20
  371. package/dist/serde/implementations/derivables/serde-transformers.js.map +1 -1
  372. package/dist/serde/implementations/derivables/serde.d.ts +12 -3
  373. package/dist/serde/implementations/derivables/serde.js +5 -2
  374. package/dist/serde/implementations/derivables/serde.js.map +1 -1
  375. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js +85 -1
  376. package/dist/serde/implementations/test-utilities/flexible-serde-adapter.test-suite.js.map +1 -1
  377. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js +85 -1
  378. package/dist/serde/implementations/test-utilities/flexible-serde.test-suite.js.map +1 -1
  379. package/dist/shared-lock/contracts/_module-exports.d.ts +10 -0
  380. package/dist/shared-lock/contracts/_module-exports.js +11 -0
  381. package/dist/shared-lock/contracts/_module-exports.js.map +1 -0
  382. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +145 -0
  383. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.js +5 -0
  384. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.js.map +1 -0
  385. package/dist/shared-lock/contracts/shared-lock-adapter.contract.d.ts +96 -0
  386. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js +5 -0
  387. package/dist/shared-lock/contracts/shared-lock-adapter.contract.js.map +1 -0
  388. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.d.ts +19 -0
  389. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.js +9 -0
  390. package/dist/shared-lock/contracts/shared-lock-provider-factory.contract.js.map +1 -0
  391. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +53 -0
  392. package/dist/shared-lock/contracts/shared-lock-provider.contract.js +5 -0
  393. package/dist/shared-lock/contracts/shared-lock-provider.contract.js.map +1 -0
  394. package/dist/shared-lock/contracts/shared-lock-state.contract.d.ts +133 -0
  395. package/dist/shared-lock/contracts/shared-lock-state.contract.js +33 -0
  396. package/dist/shared-lock/contracts/shared-lock-state.contract.js.map +1 -0
  397. package/dist/shared-lock/contracts/shared-lock.contract.d.ts +222 -0
  398. package/dist/shared-lock/contracts/shared-lock.contract.js +13 -0
  399. package/dist/shared-lock/contracts/shared-lock.contract.js.map +1 -0
  400. package/dist/shared-lock/contracts/shared-lock.errors.d.ts +124 -0
  401. package/dist/shared-lock/contracts/shared-lock.errors.js +136 -0
  402. package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -0
  403. package/dist/shared-lock/contracts/shared-lock.events.d.ts +205 -0
  404. package/dist/shared-lock/contracts/shared-lock.events.js +43 -0
  405. package/dist/shared-lock/contracts/shared-lock.events.js.map +1 -0
  406. package/dist/shared-lock/contracts/types.d.ts +10 -0
  407. package/dist/shared-lock/contracts/types.js +5 -0
  408. package/dist/shared-lock/contracts/types.js.map +1 -0
  409. package/dist/shared-lock/implementations/adapters/_module-exports.d.ts +5 -0
  410. package/dist/shared-lock/implementations/adapters/_module-exports.js +6 -0
  411. package/dist/shared-lock/implementations/adapters/_module-exports.js.map +1 -0
  412. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module.d.ts +1 -0
  413. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module.js +2 -0
  414. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/_module.js.map +1 -0
  415. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.d.ts +114 -0
  416. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js +496 -0
  417. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js.map +1 -0
  418. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module.d.ts +1 -0
  419. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module.js +2 -0
  420. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/_module.js.map +1 -0
  421. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.d.ts +79 -0
  422. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js +347 -0
  423. package/dist/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.js.map +1 -0
  424. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module.d.ts +1 -0
  425. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module.js +2 -0
  426. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module.js.map +1 -0
  427. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.d.ts +112 -0
  428. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js +805 -0
  429. package/dist/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js.map +1 -0
  430. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module.d.ts +1 -0
  431. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module.js +2 -0
  432. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/_module.js.map +1 -0
  433. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.d.ts +23 -0
  434. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js +42 -0
  435. package/dist/shared-lock/implementations/adapters/no-op-shared-lock-adapter/no-op-shared-lock-adapter.js.map +1 -0
  436. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module.d.ts +1 -0
  437. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module.js +2 -0
  438. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/_module.js.map +1 -0
  439. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.d.ts +79 -0
  440. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.js +630 -0
  441. package/dist/shared-lock/implementations/adapters/redis-shared-lock-adapter/redis-shared-lock-adapter.js.map +1 -0
  442. package/dist/shared-lock/implementations/derivables/_module-exports.d.ts +2 -0
  443. package/dist/shared-lock/implementations/derivables/_module-exports.js +3 -0
  444. package/dist/shared-lock/implementations/derivables/_module-exports.js.map +1 -0
  445. package/dist/shared-lock/implementations/derivables/shared-lock-provider/_module.d.ts +1 -0
  446. package/dist/shared-lock/implementations/derivables/shared-lock-provider/_module.js +2 -0
  447. package/dist/shared-lock/implementations/derivables/shared-lock-provider/_module.js.map +1 -0
  448. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.d.ts +27 -0
  449. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.js +208 -0
  450. package/dist/shared-lock/implementations/derivables/shared-lock-provider/database-shared-lock-adapter.js.map +1 -0
  451. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.d.ts +8 -0
  452. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.js +12 -0
  453. package/dist/shared-lock/implementations/derivables/shared-lock-provider/is-database-shared-lock-adapter.js.map +1 -0
  454. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-database-shared-lock-adapter.d.ts +8 -0
  455. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-database-shared-lock-adapter.js +15 -0
  456. package/dist/shared-lock/implementations/derivables/shared-lock-provider/resolve-database-shared-lock-adapter.js.map +1 -0
  457. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +190 -0
  458. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +177 -0
  459. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -0
  460. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.d.ts +41 -0
  461. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js +77 -0
  462. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -0
  463. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +95 -0
  464. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +542 -0
  465. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -0
  466. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/_module.d.ts +1 -0
  467. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/_module.js +2 -0
  468. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/_module.js.map +1 -0
  469. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +97 -0
  470. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js +128 -0
  471. package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -0
  472. package/dist/shared-lock/implementations/test-utilities/_module-exports.d.ts +3 -0
  473. package/dist/shared-lock/implementations/test-utilities/_module-exports.js +4 -0
  474. package/dist/shared-lock/implementations/test-utilities/_module-exports.js.map +1 -0
  475. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.d.ts +59 -0
  476. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js +944 -0
  477. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js.map +1 -0
  478. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.d.ts +59 -0
  479. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js +1921 -0
  480. package/dist/shared-lock/implementations/test-utilities/shared-lock-adapter.test-suite.js.map +1 -0
  481. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.d.ts +67 -0
  482. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +9833 -0
  483. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -0
  484. package/dist/task/_module-exports.d.ts +1 -0
  485. package/dist/task/_module-exports.js +2 -0
  486. package/dist/task/_module-exports.js.map +1 -0
  487. package/dist/{async/utilities/abort-and-fail → task}/abort-and-fail.d.ts +1 -1
  488. package/dist/{async/utilities/abort-and-fail → task}/abort-and-fail.js +1 -1
  489. package/dist/task/abort-and-fail.js.map +1 -0
  490. package/dist/task/task.d.ts +194 -0
  491. package/dist/task/task.js +212 -0
  492. package/dist/task/task.js.map +1 -0
  493. package/dist/time-span/contracts/_module-exports.d.ts +1 -0
  494. package/dist/time-span/contracts/_module-exports.js +2 -0
  495. package/dist/time-span/contracts/_module-exports.js.map +1 -0
  496. package/dist/time-span/contracts/time-span.contract.d.ts +19 -0
  497. package/dist/time-span/contracts/time-span.contract.js +10 -0
  498. package/dist/time-span/contracts/time-span.contract.js.map +1 -0
  499. package/dist/time-span/implementations/_module-exports.d.ts +1 -0
  500. package/dist/time-span/implementations/_module-exports.js +2 -0
  501. package/dist/time-span/implementations/_module-exports.js.map +1 -0
  502. package/dist/{utilities/classes/time-span → time-span/implementations}/time-span.d.ts +49 -11
  503. package/dist/{utilities/classes/time-span → time-span/implementations}/time-span.js +33 -11
  504. package/dist/time-span/implementations/time-span.js.map +1 -0
  505. package/dist/utilities/classes/_module.d.ts +0 -3
  506. package/dist/utilities/classes/_module.js +0 -3
  507. package/dist/utilities/classes/_module.js.map +1 -1
  508. package/dist/utilities/contracts/_module.d.ts +1 -1
  509. package/dist/utilities/contracts/_module.js +1 -1
  510. package/dist/utilities/contracts/_module.js.map +1 -1
  511. package/dist/utilities/contracts/comparable.contract.d.ts +49 -0
  512. package/dist/utilities/contracts/comparable.contract.js +5 -0
  513. package/dist/utilities/contracts/comparable.contract.js.map +1 -0
  514. package/dist/utilities/functions/is-standard-schema.d.ts +6 -0
  515. package/dist/utilities/functions/is-standard-schema.js +6 -0
  516. package/dist/utilities/functions/is-standard-schema.js.map +1 -1
  517. package/dist/utilities/functions/lazy.d.ts +3 -3
  518. package/dist/utilities/functions/lazy.js +3 -3
  519. package/dist/utilities/functions/lazy.js.map +1 -1
  520. package/dist/utilities/functions/option.d.ts +3 -0
  521. package/dist/utilities/functions/option.js +3 -0
  522. package/dist/utilities/functions/option.js.map +1 -1
  523. package/dist/utilities/functions/validate.d.ts +5 -0
  524. package/dist/utilities/functions/validate.js +5 -0
  525. package/dist/utilities/functions/validate.js.map +1 -1
  526. package/dist/utilities/types/any-class.type.d.ts +6 -0
  527. package/dist/utilities/types/any-class.type.js +3 -0
  528. package/dist/utilities/types/any-class.type.js.map +1 -1
  529. package/package.json +67 -5
  530. package/dist/async/_module-exports.d.ts +0 -4
  531. package/dist/async/_module-exports.js +0 -5
  532. package/dist/async/_module-exports.js.map +0 -1
  533. package/dist/async/async.errors.d.ts +0 -47
  534. package/dist/async/async.errors.js +0 -61
  535. package/dist/async/async.errors.js.map +0 -1
  536. package/dist/async/backof-policies/_module.d.ts +0 -5
  537. package/dist/async/backof-policies/_module.js +0 -6
  538. package/dist/async/backof-policies/_module.js.map +0 -1
  539. package/dist/async/backof-policies/_shared.js.map +0 -1
  540. package/dist/async/backof-policies/constant-backoff-policy/_module.d.ts +0 -1
  541. package/dist/async/backof-policies/constant-backoff-policy/_module.js +0 -2
  542. package/dist/async/backof-policies/constant-backoff-policy/_module.js.map +0 -1
  543. package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.js.map +0 -1
  544. package/dist/async/backof-policies/exponential-backoff-policy/_module.d.ts +0 -1
  545. package/dist/async/backof-policies/exponential-backoff-policy/_module.js +0 -2
  546. package/dist/async/backof-policies/exponential-backoff-policy/_module.js.map +0 -1
  547. package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js +0 -35
  548. package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.js.map +0 -1
  549. package/dist/async/backof-policies/linear-backoff-policy/_module.d.ts +0 -1
  550. package/dist/async/backof-policies/linear-backoff-policy/_module.js +0 -2
  551. package/dist/async/backof-policies/linear-backoff-policy/_module.js.map +0 -1
  552. package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js +0 -35
  553. package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.js.map +0 -1
  554. package/dist/async/backof-policies/polynomial-backoff-policy/_module.d.ts +0 -1
  555. package/dist/async/backof-policies/polynomial-backoff-policy/_module.js +0 -2
  556. package/dist/async/backof-policies/polynomial-backoff-policy/_module.js.map +0 -1
  557. package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js +0 -35
  558. package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.js.map +0 -1
  559. package/dist/async/middlewares/_module.d.ts +0 -7
  560. package/dist/async/middlewares/_module.js +0 -8
  561. package/dist/async/middlewares/_module.js.map +0 -1
  562. package/dist/async/middlewares/bulkhead/_module.d.ts +0 -1
  563. package/dist/async/middlewares/bulkhead/_module.js +0 -2
  564. package/dist/async/middlewares/bulkhead/_module.js.map +0 -1
  565. package/dist/async/middlewares/bulkhead/bulkhead.middleware.d.ts +0 -80
  566. package/dist/async/middlewares/bulkhead/bulkhead.middleware.js +0 -46
  567. package/dist/async/middlewares/bulkhead/bulkhead.middleware.js.map +0 -1
  568. package/dist/async/middlewares/dynamic/_module.d.ts +0 -1
  569. package/dist/async/middlewares/dynamic/_module.js +0 -2
  570. package/dist/async/middlewares/dynamic/_module.js.map +0 -1
  571. package/dist/async/middlewares/dynamic/dynamic.middleware.js.map +0 -1
  572. package/dist/async/middlewares/fallback/_module.d.ts +0 -2
  573. package/dist/async/middlewares/fallback/_module.js +0 -3
  574. package/dist/async/middlewares/fallback/_module.js.map +0 -1
  575. package/dist/async/middlewares/fallback/fallback.middleware.js.map +0 -1
  576. package/dist/async/middlewares/fallback/fallback.types.js.map +0 -1
  577. package/dist/async/middlewares/hedging/_module.d.ts +0 -2
  578. package/dist/async/middlewares/hedging/_module.js +0 -3
  579. package/dist/async/middlewares/hedging/_module.js.map +0 -1
  580. package/dist/async/middlewares/hedging/hedging.types.d.ts +0 -121
  581. package/dist/async/middlewares/hedging/hedging.types.js +0 -6
  582. package/dist/async/middlewares/hedging/hedging.types.js.map +0 -1
  583. package/dist/async/middlewares/hedging/sequential-hedging.middleware.d.ts +0 -51
  584. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js +0 -133
  585. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js.map +0 -1
  586. package/dist/async/middlewares/observe/_module.d.ts +0 -2
  587. package/dist/async/middlewares/observe/_module.js +0 -3
  588. package/dist/async/middlewares/observe/_module.js.map +0 -1
  589. package/dist/async/middlewares/observe/observe.middleware.js.map +0 -1
  590. package/dist/async/middlewares/observe/observe.types.js +0 -6
  591. package/dist/async/middlewares/observe/observe.types.js.map +0 -1
  592. package/dist/async/middlewares/retry/_module.d.ts +0 -2
  593. package/dist/async/middlewares/retry/_module.js +0 -3
  594. package/dist/async/middlewares/retry/_module.js.map +0 -1
  595. package/dist/async/middlewares/retry/retry.middleware.js.map +0 -1
  596. package/dist/async/middlewares/retry/retry.types.js +0 -7
  597. package/dist/async/middlewares/retry/retry.types.js.map +0 -1
  598. package/dist/async/middlewares/timeout/_module.d.ts +0 -2
  599. package/dist/async/middlewares/timeout/_module.js +0 -3
  600. package/dist/async/middlewares/timeout/_module.js.map +0 -1
  601. package/dist/async/middlewares/timeout/timeout.middleware.js.map +0 -1
  602. package/dist/async/middlewares/timeout/timeout.type.js +0 -6
  603. package/dist/async/middlewares/timeout/timeout.type.js.map +0 -1
  604. package/dist/async/utilities/_module.d.ts +0 -4
  605. package/dist/async/utilities/_module.js +0 -5
  606. package/dist/async/utilities/_module.js.map +0 -1
  607. package/dist/async/utilities/abort-and-fail/_module.d.ts +0 -1
  608. package/dist/async/utilities/abort-and-fail/_module.js +0 -2
  609. package/dist/async/utilities/abort-and-fail/_module.js.map +0 -1
  610. package/dist/async/utilities/abort-and-fail/abort-and-fail.js.map +0 -1
  611. package/dist/async/utilities/lazy-promise/_module.d.ts +0 -1
  612. package/dist/async/utilities/lazy-promise/_module.js +0 -2
  613. package/dist/async/utilities/lazy-promise/_module.js.map +0 -1
  614. package/dist/async/utilities/lazy-promise/lazy-promise.d.ts +0 -153
  615. package/dist/async/utilities/lazy-promise/lazy-promise.js +0 -176
  616. package/dist/async/utilities/lazy-promise/lazy-promise.js.map +0 -1
  617. package/dist/async/utilities/promise-queue/_module.d.ts +0 -1
  618. package/dist/async/utilities/promise-queue/_module.js +0 -2
  619. package/dist/async/utilities/promise-queue/_module.js.map +0 -1
  620. package/dist/async/utilities/promise-queue/promise-queue.d.ts +0 -32
  621. package/dist/async/utilities/promise-queue/promise-queue.js +0 -118
  622. package/dist/async/utilities/promise-queue/promise-queue.js.map +0 -1
  623. package/dist/async/utilities/timeout-and-fail/_module.d.ts +0 -1
  624. package/dist/async/utilities/timeout-and-fail/_module.js +0 -2
  625. package/dist/async/utilities/timeout-and-fail/_module.js.map +0 -1
  626. package/dist/async/utilities/timeout-and-fail/timeout-and-fail.d.ts +0 -7
  627. package/dist/async/utilities/timeout-and-fail/timeout-and-fail.js +0 -22
  628. package/dist/async/utilities/timeout-and-fail/timeout-and-fail.js.map +0 -1
  629. package/dist/lock/implementations/derivables/lock-provider/lock-state.d.ts +0 -40
  630. package/dist/lock/implementations/derivables/lock-provider/lock-state.js +0 -60
  631. package/dist/lock/implementations/derivables/lock-provider/lock-state.js.map +0 -1
  632. package/dist/serde/contracts/serializable.contract.d.ts +0 -12
  633. package/dist/serde/contracts/serializable.contract.js +0 -5
  634. package/dist/serde/contracts/serializable.contract.js.map +0 -1
  635. package/dist/serde/implementations/adapters/mongodb-serde/_module.d.ts +0 -1
  636. package/dist/serde/implementations/adapters/mongodb-serde/_module.js +0 -2
  637. package/dist/serde/implementations/adapters/mongodb-serde/_module.js.map +0 -1
  638. package/dist/serde/implementations/adapters/mongodb-serde/mongodb-serde.d.ts +0 -13
  639. package/dist/serde/implementations/adapters/mongodb-serde/mongodb-serde.js +0 -38
  640. package/dist/serde/implementations/adapters/mongodb-serde/mongodb-serde.js.map +0 -1
  641. package/dist/serde/implementations/adapters/redis-serde/_module.d.ts +0 -1
  642. package/dist/serde/implementations/adapters/redis-serde/_module.js +0 -2
  643. package/dist/serde/implementations/adapters/redis-serde/_module.js.map +0 -1
  644. package/dist/serde/implementations/adapters/redis-serde/redis-serde.d.ts +0 -13
  645. package/dist/serde/implementations/adapters/redis-serde/redis-serde.js +0 -39
  646. package/dist/serde/implementations/adapters/redis-serde/redis-serde.js.map +0 -1
  647. package/dist/serde/implementations/adapters/sql-serde/_module.d.ts +0 -1
  648. package/dist/serde/implementations/adapters/sql-serde/_module.js +0 -2
  649. package/dist/serde/implementations/adapters/sql-serde/_module.js.map +0 -1
  650. package/dist/serde/implementations/adapters/sql-serde/sql-serde.d.ts +0 -13
  651. package/dist/serde/implementations/adapters/sql-serde/sql-serde.js +0 -39
  652. package/dist/serde/implementations/adapters/sql-serde/sql-serde.js.map +0 -1
  653. package/dist/utilities/classes/hooks/_module.d.ts +0 -3
  654. package/dist/utilities/classes/hooks/_module.js +0 -4
  655. package/dist/utilities/classes/hooks/_module.js.map +0 -1
  656. package/dist/utilities/classes/hooks/async-hooks.js.map +0 -1
  657. package/dist/utilities/classes/hooks/hooks.js.map +0 -1
  658. package/dist/utilities/classes/hooks/types.js +0 -5
  659. package/dist/utilities/classes/hooks/types.js.map +0 -1
  660. package/dist/utilities/classes/namespace/_module.d.ts +0 -1
  661. package/dist/utilities/classes/namespace/_module.js +0 -2
  662. package/dist/utilities/classes/namespace/_module.js.map +0 -1
  663. package/dist/utilities/classes/namespace/namespace.d.ts +0 -85
  664. package/dist/utilities/classes/namespace/namespace.js +0 -125
  665. package/dist/utilities/classes/namespace/namespace.js.map +0 -1
  666. package/dist/utilities/classes/time-span/_module.d.ts +0 -1
  667. package/dist/utilities/classes/time-span/_module.js +0 -2
  668. package/dist/utilities/classes/time-span/_module.js.map +0 -1
  669. package/dist/utilities/classes/time-span/time-span.js.map +0 -1
  670. package/dist/utilities/contracts/serialized-error.contract.d.ts +0 -13
  671. package/dist/utilities/contracts/serialized-error.contract.js +0 -5
  672. package/dist/utilities/contracts/serialized-error.contract.js.map +0 -1
@@ -0,0 +1,347 @@
1
+ /**
2
+ * @module SharedLock
3
+ */
4
+ import { UnexpectedError, } from "../../../../utilities/_module-exports.js";
5
+ /**
6
+ * Note the `MemorySharedLockAdapter` is limited to single process usage and cannot be shared across multiple servers or different processes.
7
+ * This adapter is meant to be used for testing.
8
+ *
9
+ * IMPORT_PATH: `"@daiso-tech/core/shared-lock/adapters"`
10
+ * @group Adapters
11
+ */
12
+ export class MemorySharedLockAdapter {
13
+ map;
14
+ /**
15
+ * @example
16
+ * ```ts
17
+ * import { MemorySharedLockAdapter } from "@daiso-tech/core/shared-lock/adapters";
18
+ *
19
+ * const lockAdapter = new MemorySharedLockAdapter();
20
+ * ```
21
+ * You can also provide an `Map`.
22
+ * @example
23
+ * ```ts
24
+ * import { MemorySharedLockAdapter } from "@daiso-tech/core/shared-lock/adapters";
25
+ *
26
+ * const map = new Map<any, any>();
27
+ * const lockAdapter = new MemorySharedLockAdapter(map);
28
+ * ```
29
+ */
30
+ constructor(map = new Map()) {
31
+ this.map = map;
32
+ }
33
+ // eslint-disable-next-line @typescript-eslint/require-await
34
+ async deInit() {
35
+ for (const [key, sharedLock] of this.map) {
36
+ const writerLock = sharedLock.writerLock;
37
+ if (writerLock !== null && writerLock.hasExpiration) {
38
+ clearTimeout(writerLock.timeoutId);
39
+ }
40
+ const readerSemaphore = sharedLock.readerSemaphore;
41
+ if (readerSemaphore !== null) {
42
+ for (const [_, { timeoutId }] of readerSemaphore.slots) {
43
+ if (timeoutId !== null) {
44
+ clearTimeout(timeoutId);
45
+ }
46
+ }
47
+ }
48
+ this.map.delete(key);
49
+ }
50
+ }
51
+ // eslint-disable-next-line @typescript-eslint/require-await
52
+ async acquireWriter(key, lockId, ttl) {
53
+ const sharedLock = this.map.get(key);
54
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
55
+ if (readerSemaphore !== null) {
56
+ return false;
57
+ }
58
+ let writerLock = sharedLock?.writerLock ?? null;
59
+ if (writerLock !== null) {
60
+ return writerLock.owner === lockId;
61
+ }
62
+ if (ttl === null) {
63
+ writerLock = {
64
+ owner: lockId,
65
+ hasExpiration: false,
66
+ };
67
+ this.map.set(key, {
68
+ writerLock,
69
+ readerSemaphore: null,
70
+ });
71
+ }
72
+ else {
73
+ const timeoutId = setTimeout(() => {
74
+ this.map.delete(key);
75
+ }, ttl.toMilliseconds());
76
+ writerLock = {
77
+ owner: lockId,
78
+ hasExpiration: true,
79
+ timeoutId,
80
+ expiration: ttl.toEndDate(),
81
+ };
82
+ this.map.set(key, {
83
+ writerLock,
84
+ readerSemaphore: null,
85
+ });
86
+ }
87
+ return true;
88
+ }
89
+ // eslint-disable-next-line @typescript-eslint/require-await
90
+ async releaseWriter(key, lockId) {
91
+ const sharedLock = this.map.get(key);
92
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
93
+ if (readerSemaphore !== null) {
94
+ return false;
95
+ }
96
+ const writerLock = sharedLock?.writerLock ?? null;
97
+ if (writerLock === null) {
98
+ return false;
99
+ }
100
+ if (writerLock.owner !== lockId) {
101
+ return false;
102
+ }
103
+ if (writerLock.hasExpiration) {
104
+ clearTimeout(writerLock.timeoutId);
105
+ }
106
+ this.map.delete(key);
107
+ return true;
108
+ }
109
+ // eslint-disable-next-line @typescript-eslint/require-await
110
+ async forceReleaseWriter(key) {
111
+ const sharedLock = this.map.get(key);
112
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
113
+ if (readerSemaphore !== null) {
114
+ return false;
115
+ }
116
+ const writerLock = sharedLock?.writerLock ?? null;
117
+ if (writerLock === null) {
118
+ return false;
119
+ }
120
+ if (writerLock.hasExpiration) {
121
+ clearTimeout(writerLock.timeoutId);
122
+ }
123
+ this.map.delete(key);
124
+ return true;
125
+ }
126
+ // eslint-disable-next-line @typescript-eslint/require-await
127
+ async refreshWriter(key, lockId, ttl) {
128
+ const sharedLock = this.map.get(key);
129
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
130
+ if (readerSemaphore !== null) {
131
+ return false;
132
+ }
133
+ const writerLock = sharedLock?.writerLock ?? null;
134
+ if (writerLock === null) {
135
+ return false;
136
+ }
137
+ if (writerLock.owner !== lockId) {
138
+ return false;
139
+ }
140
+ if (!writerLock.hasExpiration) {
141
+ return false;
142
+ }
143
+ clearTimeout(writerLock.timeoutId);
144
+ const timeoutId = setTimeout(() => {
145
+ this.map.delete(key);
146
+ }, ttl.toMilliseconds());
147
+ this.map.set(key, {
148
+ readerSemaphore: null,
149
+ writerLock: {
150
+ ...writerLock,
151
+ timeoutId,
152
+ },
153
+ });
154
+ return true;
155
+ }
156
+ // eslint-disable-next-line @typescript-eslint/require-await
157
+ async acquireReader(settings) {
158
+ const { key, lockId, limit, ttl } = settings;
159
+ const sharedLock = this.map.get(key);
160
+ const writerLock = sharedLock?.writerLock ?? null;
161
+ if (writerLock !== null) {
162
+ return false;
163
+ }
164
+ let readerSemaphore = sharedLock?.readerSemaphore ?? null;
165
+ if (readerSemaphore === null) {
166
+ readerSemaphore = {
167
+ limit,
168
+ slots: new Map(),
169
+ };
170
+ this.map.set(key, {
171
+ readerSemaphore,
172
+ writerLock: null,
173
+ });
174
+ }
175
+ if (readerSemaphore.slots.size >= readerSemaphore.limit) {
176
+ return false;
177
+ }
178
+ if (readerSemaphore.slots.has(lockId)) {
179
+ return true;
180
+ }
181
+ if (ttl === null) {
182
+ readerSemaphore.slots.set(lockId, {
183
+ timeoutId: null,
184
+ expiration: null,
185
+ });
186
+ }
187
+ else {
188
+ const timeoutId = setTimeout(() => {
189
+ readerSemaphore.slots.delete(lockId);
190
+ }, ttl.toMilliseconds());
191
+ readerSemaphore.slots.set(lockId, {
192
+ timeoutId,
193
+ expiration: ttl.toEndDate(),
194
+ });
195
+ }
196
+ this.map.set(key, {
197
+ readerSemaphore,
198
+ writerLock: null,
199
+ });
200
+ return true;
201
+ }
202
+ // eslint-disable-next-line @typescript-eslint/require-await
203
+ async releaseReader(key, lockId) {
204
+ const sharedLock = this.map.get(key);
205
+ const writerLock = sharedLock?.writerLock ?? null;
206
+ if (writerLock !== null) {
207
+ return false;
208
+ }
209
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
210
+ if (readerSemaphore === null) {
211
+ return false;
212
+ }
213
+ const slot = readerSemaphore.slots.get(lockId);
214
+ if (slot === undefined) {
215
+ return false;
216
+ }
217
+ if (slot.timeoutId !== null) {
218
+ clearTimeout(slot.timeoutId);
219
+ }
220
+ readerSemaphore.slots.delete(lockId);
221
+ this.map.set(key, {
222
+ readerSemaphore,
223
+ writerLock: null,
224
+ });
225
+ if (readerSemaphore.slots.size === 0) {
226
+ this.map.delete(key);
227
+ }
228
+ return true;
229
+ }
230
+ // eslint-disable-next-line @typescript-eslint/require-await
231
+ async forceReleaseAllReaders(key) {
232
+ const sharedLock = this.map.get(key);
233
+ const writerLock = sharedLock?.writerLock ?? null;
234
+ if (writerLock !== null) {
235
+ return false;
236
+ }
237
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
238
+ if (readerSemaphore === null) {
239
+ return false;
240
+ }
241
+ const hasSlots = readerSemaphore.slots.size > 0;
242
+ for (const [slotId, { timeoutId }] of readerSemaphore.slots) {
243
+ clearTimeout(timeoutId ?? undefined);
244
+ readerSemaphore.slots.delete(slotId);
245
+ }
246
+ this.map.delete(key);
247
+ return hasSlots;
248
+ }
249
+ // eslint-disable-next-line @typescript-eslint/require-await
250
+ async refreshReader(key, lockId, ttl) {
251
+ const sharedLock = this.map.get(key);
252
+ const writerLock = sharedLock?.writerLock ?? null;
253
+ if (writerLock !== null) {
254
+ return false;
255
+ }
256
+ const readerSemaphore = sharedLock?.readerSemaphore ?? null;
257
+ if (!readerSemaphore) {
258
+ return false;
259
+ }
260
+ const slot = readerSemaphore.slots.get(lockId);
261
+ if (slot === undefined) {
262
+ return false;
263
+ }
264
+ if (slot.timeoutId === null) {
265
+ return false;
266
+ }
267
+ clearTimeout(slot.timeoutId);
268
+ const timeoutId = setTimeout(() => {
269
+ readerSemaphore.slots.delete(lockId);
270
+ this.map.set(key, {
271
+ readerSemaphore,
272
+ writerLock: null,
273
+ });
274
+ }, ttl.toMilliseconds());
275
+ readerSemaphore.slots.set(lockId, {
276
+ timeoutId,
277
+ expiration: ttl.toEndDate(),
278
+ });
279
+ this.map.set(key, {
280
+ readerSemaphore,
281
+ writerLock: null,
282
+ });
283
+ return true;
284
+ }
285
+ // eslint-disable-next-line @typescript-eslint/require-await
286
+ async forceRelease(key) {
287
+ const [hasReleasedAllReaders, hasReleasedWriter] = await Promise.all([
288
+ this.forceReleaseAllReaders(key),
289
+ this.forceReleaseWriter(key),
290
+ ]);
291
+ return hasReleasedAllReaders || hasReleasedWriter;
292
+ }
293
+ // eslint-disable-next-line @typescript-eslint/require-await
294
+ async getState(key) {
295
+ const sharedLock = this.map.get(key);
296
+ if (sharedLock === undefined) {
297
+ return null;
298
+ }
299
+ const { writerLock, readerSemaphore } = sharedLock;
300
+ if (writerLock === null &&
301
+ readerSemaphore !== null &&
302
+ readerSemaphore.slots.size === 0) {
303
+ return null;
304
+ }
305
+ if (writerLock === null &&
306
+ readerSemaphore !== null &&
307
+ readerSemaphore.slots.size !== 0) {
308
+ return {
309
+ writer: null,
310
+ reader: {
311
+ limit: readerSemaphore.limit,
312
+ acquiredSlots: new Map([...readerSemaphore.slots.entries()].map(([key, value]) => [key, value.expiration])),
313
+ },
314
+ };
315
+ }
316
+ if (readerSemaphore === null &&
317
+ writerLock !== null &&
318
+ !writerLock.hasExpiration) {
319
+ return {
320
+ reader: null,
321
+ writer: {
322
+ owner: writerLock.owner,
323
+ expiration: null,
324
+ },
325
+ };
326
+ }
327
+ if (readerSemaphore === null &&
328
+ writerLock !== null &&
329
+ writerLock.hasExpiration &&
330
+ writerLock.expiration <= new Date()) {
331
+ return null;
332
+ }
333
+ if (readerSemaphore === null &&
334
+ writerLock !== null &&
335
+ writerLock.hasExpiration) {
336
+ return {
337
+ reader: null,
338
+ writer: {
339
+ owner: writerLock.owner,
340
+ expiration: writerLock.expiration,
341
+ },
342
+ };
343
+ }
344
+ throw new UnexpectedError("Invalid ISharedLockAdapterState, expected either the reader field must be defined or the writer field must be defined, but not both.");
345
+ }
346
+ }
347
+ //# sourceMappingURL=memory-shared-lock-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-shared-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/shared-lock/implementations/adapters/memory-shared-lock-adapter/memory-shared-lock-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "../../../../shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js";
@@ -0,0 +1,2 @@
1
+ export * from "../../../../shared-lock/implementations/adapters/mongodb-shared-lock-adapter/mongodb-shared-lock-adapter.js";
2
+ //# sourceMappingURL=_module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../../src/shared-lock/implementations/adapters/mongodb-shared-lock-adapter/_module.ts"],"names":[],"mappings":"AAAA,cAAc,mGAAmG,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @module SharedLock
3
+ */
4
+ import { type IDeinitizable, type IInitizable } from "../../../../utilities/_module-exports.js";
5
+ import type { ISharedLockAdapter, ISharedLockAdapterState, SharedLockAcquireSettings } from "../../../../shared-lock/contracts/_module-exports.js";
6
+ import type { CollectionOptions, Db, ObjectId } from "mongodb";
7
+ import { TimeSpan } from "../../../../time-span/implementations/_module-exports.js";
8
+ /**
9
+ *
10
+ * IMPORT_PATH: `"@daiso-tech/core/shared-lock/adapters"`
11
+ * @group Adapters
12
+ */
13
+ export type MongodbSharedLockAdapterSettings = {
14
+ database: Db;
15
+ /**
16
+ * @default "sharedLock"
17
+ */
18
+ collectionName?: string;
19
+ collectionSettings?: CollectionOptions;
20
+ };
21
+ /**
22
+ *
23
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
24
+ * @group Adapters
25
+ */
26
+ export type MongodbWriterLockSubDocument = {
27
+ owner: string;
28
+ expiration: Date | null;
29
+ };
30
+ /**
31
+ *
32
+ * IMPORT_PATH: `"@daiso-tech/core/semaphore/adapters"`
33
+ * @group Adapters
34
+ */
35
+ export type MongodbReaderSemaphoreSlotSubDocument = {
36
+ id: string;
37
+ expiration: Date | null;
38
+ };
39
+ /**
40
+ *
41
+ * IMPORT_PATH: `"@daiso-tech/core/semaphore/adapters"`
42
+ * @group Adapters
43
+ */
44
+ export type MongodbReaderSemaphoreDocument = {
45
+ limit: number;
46
+ slots: Array<MongodbReaderSemaphoreSlotSubDocument>;
47
+ };
48
+ /**
49
+ *
50
+ * IMPORT_PATH: `"@daiso-tech/core/shared-lock/adapters"`
51
+ * @group Adapters
52
+ */
53
+ export type MongodbSharedLockDocument = {
54
+ _id: ObjectId;
55
+ key: string;
56
+ expiration: Date | null;
57
+ writer: MongodbWriterLockSubDocument | null;
58
+ reader: MongodbReaderSemaphoreDocument | null;
59
+ };
60
+ /**
61
+ * To utilize the `MongodbSharedLockAdapter`, you must install the [`"mongodb"`](https://www.npmjs.com/package/mongodb) package.
62
+ *
63
+ * Note in order to use `MongodbSharedLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
64
+ *
65
+ * IMPORT_PATH: `"@daiso-tech/core/shared-lock/adapters"`
66
+ * @group Adapters
67
+ */
68
+ export declare class MongodbSharedLockAdapter implements ISharedLockAdapter, IDeinitizable, IInitizable {
69
+ private static isSlotNotExpired;
70
+ private readonly collection;
71
+ /**
72
+ * @example
73
+ * ```ts
74
+ * import { MongodbSharedLockAdapter } from "@daiso-tech/core/shared-lock/adapters";
75
+ * import { MongoClient } from "mongodb";
76
+ *
77
+ * const client = await MongoClient.connect("YOUR_MONGODB_CONNECTION_STRING");
78
+ * const database = client.db("database");
79
+ * const lockAdapter = new MongodbSharedLockAdapter({
80
+ * database
81
+ * });
82
+ * // You need initialize the adapter once before using it.
83
+ * await lockAdapter.init()
84
+ * ```
85
+ */
86
+ constructor(settings: MongodbSharedLockAdapterSettings);
87
+ /**
88
+ * Creates all related indexes.
89
+ * Note the `init` method needs to be called once before using the adapter.
90
+ */
91
+ init(): Promise<void>;
92
+ /**
93
+ * Removes the collection where the lock keys are stored and all it's related indexes.
94
+ * Note all lock data will be removed.
95
+ */
96
+ deInit(): Promise<void>;
97
+ private updateSemaphoreExpiration;
98
+ private removeWriterWhenReaderIsActive;
99
+ acquireWriter(key: string, lockId: string, ttl: TimeSpan | null): Promise<boolean>;
100
+ releaseWriter(key: string, lockId: string): Promise<boolean>;
101
+ forceReleaseWriter(key: string): Promise<boolean>;
102
+ refreshWriter(key: string, lockId: string, ttl: TimeSpan): Promise<boolean>;
103
+ private initSemaphoreIfNotExistsStage;
104
+ private removeExpiredSlotsStage;
105
+ private removeReaderWhenWriterIsActive;
106
+ acquireReader(settings: SharedLockAcquireSettings): Promise<boolean>;
107
+ releaseReader(key: string, slotId: string): Promise<boolean>;
108
+ forceReleaseAllReaders(key: string): Promise<boolean>;
109
+ refreshReader(key: string, slotId: string, ttl: TimeSpan): Promise<boolean>;
110
+ forceRelease(key: string): Promise<boolean>;
111
+ getState(key: string): Promise<ISharedLockAdapterState | null>;
112
+ }