@daiso-tech/core 0.37.3 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +5 -1
  2. package/dist/async/_module-exports.d.ts +1 -1
  3. package/dist/async/_module-exports.js +1 -1
  4. package/dist/async/_module-exports.js.map +1 -1
  5. package/dist/async/async.errors.d.ts +0 -20
  6. package/dist/async/async.errors.js +0 -16
  7. package/dist/async/async.errors.js.map +1 -1
  8. package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.d.ts +1 -1
  9. package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.d.ts +2 -2
  10. package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.d.ts +1 -1
  11. package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +2 -2
  12. package/dist/async/middlewares/_module.d.ts +0 -1
  13. package/dist/async/middlewares/_module.js +0 -1
  14. package/dist/async/middlewares/_module.js.map +1 -1
  15. package/dist/async/middlewares/bulkhead/bulkhead.middleware.d.ts +2 -2
  16. package/dist/async/middlewares/bulkhead/bulkhead.middleware.js +1 -1
  17. package/dist/async/middlewares/bulkhead/bulkhead.middleware.js.map +1 -1
  18. package/dist/async/middlewares/fallback/_module.d.ts +1 -0
  19. package/dist/async/middlewares/fallback/_module.js +1 -0
  20. package/dist/async/middlewares/fallback/_module.js.map +1 -1
  21. package/dist/async/middlewares/fallback/fallback.middleware.d.ts +25 -49
  22. package/dist/async/middlewares/fallback/fallback.middleware.js +52 -14
  23. package/dist/async/middlewares/fallback/fallback.middleware.js.map +1 -1
  24. package/dist/async/middlewares/fallback/fallback.types.d.ts +42 -0
  25. package/dist/async/middlewares/fallback/fallback.types.js +6 -0
  26. package/dist/async/middlewares/fallback/fallback.types.js.map +1 -0
  27. package/dist/async/middlewares/hedging/_module.d.ts +2 -2
  28. package/dist/async/middlewares/hedging/_module.js +2 -2
  29. package/dist/async/middlewares/hedging/_module.js.map +1 -1
  30. package/dist/async/middlewares/hedging/{_shared.d.ts → hedging.types.d.ts} +37 -9
  31. package/dist/async/middlewares/hedging/hedging.types.js +6 -0
  32. package/dist/async/middlewares/hedging/hedging.types.js.map +1 -0
  33. package/dist/async/middlewares/hedging/{sequential-hedging/sequential-hedging.middleware.d.ts → sequential-hedging.middleware.d.ts} +3 -3
  34. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js +133 -0
  35. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js.map +1 -0
  36. package/dist/async/middlewares/observe/_module.d.ts +1 -0
  37. package/dist/async/middlewares/observe/_module.js +1 -0
  38. package/dist/async/middlewares/observe/_module.js.map +1 -1
  39. package/dist/async/middlewares/observe/observe.middleware.d.ts +37 -87
  40. package/dist/async/middlewares/observe/observe.middleware.js +53 -2
  41. package/dist/async/middlewares/observe/observe.middleware.js.map +1 -1
  42. package/dist/async/middlewares/observe/observe.types.d.ts +91 -0
  43. package/dist/async/middlewares/observe/observe.types.js +6 -0
  44. package/dist/async/middlewares/observe/observe.types.js.map +1 -0
  45. package/dist/async/middlewares/retry/_module.d.ts +1 -0
  46. package/dist/async/middlewares/retry/_module.js +1 -0
  47. package/dist/async/middlewares/retry/_module.js.map +1 -1
  48. package/dist/async/middlewares/retry/retry.middleware.d.ts +36 -86
  49. package/dist/async/middlewares/retry/retry.middleware.js +70 -22
  50. package/dist/async/middlewares/retry/retry.middleware.js.map +1 -1
  51. package/dist/async/middlewares/retry/retry.types.d.ts +77 -0
  52. package/dist/async/middlewares/retry/retry.types.js +7 -0
  53. package/dist/async/middlewares/retry/retry.types.js.map +1 -0
  54. package/dist/async/middlewares/timeout/_module.d.ts +1 -0
  55. package/dist/async/middlewares/timeout/_module.js +1 -0
  56. package/dist/async/middlewares/timeout/_module.js.map +1 -1
  57. package/dist/async/middlewares/timeout/timeout.middleware.d.ts +1 -47
  58. package/dist/async/middlewares/timeout/timeout.middleware.js +1 -1
  59. package/dist/async/middlewares/timeout/timeout.middleware.js.map +1 -1
  60. package/dist/async/middlewares/timeout/timeout.type.d.ts +51 -0
  61. package/dist/async/middlewares/timeout/timeout.type.js +6 -0
  62. package/dist/async/middlewares/timeout/timeout.type.js.map +1 -0
  63. package/dist/async/utilities/promise-queue/promise-queue.js +19 -8
  64. package/dist/async/utilities/promise-queue/promise-queue.js.map +1 -1
  65. package/dist/cache/contracts/cache.contract.d.ts +7 -7
  66. package/dist/cache/contracts/cache.errors.d.ts +3 -26
  67. package/dist/cache/contracts/cache.errors.js +0 -47
  68. package/dist/cache/contracts/cache.errors.js.map +1 -1
  69. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +6 -5
  70. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +17 -13
  71. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  72. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +15 -3
  73. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +25 -9
  74. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  75. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
  76. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +1 -1
  77. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js +2 -1
  78. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js.map +1 -1
  79. package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -2
  80. package/dist/cache/implementations/derivables/cache/cache.js +1 -1
  81. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  82. package/dist/collection/contracts/async-collection.contract.d.ts +0 -1
  83. package/dist/collection/contracts/async-collection.contract.js +3 -1
  84. package/dist/collection/contracts/async-collection.contract.js.map +1 -1
  85. package/dist/collection/contracts/collection.contract.d.ts +0 -1
  86. package/dist/collection/contracts/collection.contract.js +3 -1
  87. package/dist/collection/contracts/collection.contract.js.map +1 -1
  88. package/dist/collection/contracts/collection.errors.d.ts +1 -26
  89. package/dist/collection/contracts/collection.errors.js +0 -55
  90. package/dist/collection/contracts/collection.errors.js.map +1 -1
  91. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js +1 -1
  92. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  93. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js +1 -1
  94. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  95. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +9 -6
  96. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  97. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js +1 -1
  98. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js.map +1 -1
  99. package/dist/collection/implementations/iterable-collection/_shared/zip-iterable.js +1 -1
  100. package/dist/collection/implementations/iterable-collection/_shared/zip-iterable.js.map +1 -1
  101. package/dist/collection/implementations/iterable-collection/iterable-collection.js +9 -6
  102. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  103. package/dist/collection/implementations/list-collection/list-collection.js +12 -9
  104. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  105. package/dist/event-bus/contracts/_module-exports.d.ts +0 -1
  106. package/dist/event-bus/contracts/_module-exports.js +0 -1
  107. package/dist/event-bus/contracts/_module-exports.js.map +1 -1
  108. package/dist/event-bus/contracts/event-bus.contract.d.ts +0 -6
  109. package/dist/event-bus/contracts/event-bus.contract.js +1 -7
  110. package/dist/event-bus/contracts/event-bus.contract.js.map +1 -1
  111. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +2 -2
  112. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +3 -2
  113. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  114. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +1 -1
  115. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +6 -11
  116. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  117. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +7 -5
  118. package/dist/lock/contracts/lock-adapter.contract.d.ts +5 -3
  119. package/dist/lock/contracts/lock.contract.d.ts +25 -41
  120. package/dist/lock/contracts/lock.errors.d.ts +5 -56
  121. package/dist/lock/contracts/lock.errors.js +1 -123
  122. package/dist/lock/contracts/lock.errors.js.map +1 -1
  123. package/dist/lock/contracts/lock.events.d.ts +3 -3
  124. package/dist/lock/contracts/lock.events.js +1 -1
  125. package/dist/lock/contracts/lock.events.js.map +1 -1
  126. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +16 -4
  127. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +11 -8
  128. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  129. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +17 -6
  130. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +9 -16
  131. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  132. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +1 -1
  133. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +3 -3
  134. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  135. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +1 -1
  136. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +3 -2
  137. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  138. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +3 -3
  139. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +2 -3
  140. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  141. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +4 -3
  142. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  143. package/dist/lock/implementations/derivables/lock-provider/lock-state.d.ts +8 -11
  144. package/dist/lock/implementations/derivables/lock-provider/lock-state.js +9 -26
  145. package/dist/lock/implementations/derivables/lock-provider/lock-state.js.map +1 -1
  146. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +11 -14
  147. package/dist/lock/implementations/derivables/lock-provider/lock.js +50 -26
  148. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  149. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +2 -2
  150. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  151. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +43 -47
  152. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  153. package/dist/serde/implementations/derivables/serde.d.ts +22 -22
  154. package/dist/utilities/_module-exports.d.ts +1 -1
  155. package/dist/utilities/_module-exports.js +1 -1
  156. package/dist/utilities/_module-exports.js.map +1 -1
  157. package/dist/utilities/classes/hooks/async-hooks.d.ts +6 -4
  158. package/dist/utilities/classes/hooks/async-hooks.js +3 -1
  159. package/dist/utilities/classes/hooks/async-hooks.js.map +1 -1
  160. package/dist/utilities/classes/hooks/hooks.d.ts +1 -1
  161. package/dist/utilities/classes/hooks/hooks.js +1 -1
  162. package/dist/utilities/classes/hooks/hooks.js.map +1 -1
  163. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js +2 -1
  164. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js.map +1 -1
  165. package/dist/utilities/classes/namespace/namespace.d.ts +5 -5
  166. package/dist/utilities/classes/namespace/namespace.js +2 -2
  167. package/dist/utilities/classes/namespace/namespace.js.map +1 -1
  168. package/dist/utilities/classes/time-span/time-span.d.ts +10 -2
  169. package/dist/utilities/classes/time-span/time-span.js +10 -2
  170. package/dist/utilities/classes/time-span/time-span.js.map +1 -1
  171. package/dist/utilities/errors.d.ts +8 -0
  172. package/dist/utilities/errors.js +11 -0
  173. package/dist/utilities/errors.js.map +1 -1
  174. package/dist/utilities/functions/{_module-exports.d.ts → _module.d.ts} +6 -1
  175. package/dist/utilities/functions/{_module-exports.js → _module.js} +7 -2
  176. package/dist/utilities/functions/_module.js.map +1 -0
  177. package/dist/utilities/functions/error-policy.d.ts +54 -0
  178. package/dist/utilities/functions/error-policy.js +63 -0
  179. package/dist/utilities/functions/error-policy.js.map +1 -0
  180. package/dist/utilities/functions/invokable.d.ts +57 -1
  181. package/dist/utilities/functions/invokable.js +3 -1
  182. package/dist/utilities/functions/invokable.js.map +1 -1
  183. package/dist/utilities/functions/is-class.d.ts +9 -0
  184. package/dist/utilities/functions/is-class.js +15 -0
  185. package/dist/utilities/functions/is-class.js.map +1 -0
  186. package/dist/utilities/functions/is-positive-nbr.d.ts +8 -0
  187. package/dist/utilities/functions/is-positive-nbr.js +19 -0
  188. package/dist/utilities/functions/is-positive-nbr.js.map +1 -0
  189. package/dist/utilities/functions/is-standard-schema.d.ts +2 -0
  190. package/dist/utilities/functions/is-standard-schema.js +5 -0
  191. package/dist/utilities/functions/is-standard-schema.js.map +1 -0
  192. package/dist/utilities/functions/lazy.d.ts +27 -1
  193. package/dist/utilities/functions/lazy.js.map +1 -1
  194. package/dist/utilities/functions/option.d.ts +32 -0
  195. package/dist/utilities/functions/option.js +25 -0
  196. package/dist/utilities/functions/option.js.map +1 -0
  197. package/dist/utilities/functions/resolve-one-or-more.d.ts +5 -1
  198. package/dist/utilities/functions/resolve-one-or-more.js.map +1 -1
  199. package/dist/utilities/functions/result.d.ts +81 -1
  200. package/dist/utilities/functions/result.js +46 -2
  201. package/dist/utilities/functions/result.js.map +1 -1
  202. package/dist/utilities/types/_module.d.ts +1 -7
  203. package/dist/utilities/types/_module.js +1 -7
  204. package/dist/utilities/types/_module.js.map +1 -1
  205. package/dist/utilities/types/any-class.type.d.ts +3 -0
  206. package/dist/utilities/types/any-class.type.js +2 -0
  207. package/dist/utilities/types/any-class.type.js.map +1 -0
  208. package/package.json +1 -1
  209. package/dist/async/middlewares/_shared.d.ts +0 -15
  210. package/dist/async/middlewares/_shared.js +0 -15
  211. package/dist/async/middlewares/_shared.js.map +0 -1
  212. package/dist/async/middlewares/hedging/_shared.js +0 -5
  213. package/dist/async/middlewares/hedging/_shared.js.map +0 -1
  214. package/dist/async/middlewares/hedging/concurrent-hedging/_module.d.ts +0 -1
  215. package/dist/async/middlewares/hedging/concurrent-hedging/_module.js +0 -2
  216. package/dist/async/middlewares/hedging/concurrent-hedging/_module.js.map +0 -1
  217. package/dist/async/middlewares/hedging/concurrent-hedging/concurrent-hedging.middleware.d.ts +0 -51
  218. package/dist/async/middlewares/hedging/concurrent-hedging/concurrent-hedging.middleware.js +0 -138
  219. package/dist/async/middlewares/hedging/concurrent-hedging/concurrent-hedging.middleware.js.map +0 -1
  220. package/dist/async/middlewares/hedging/sequential-hedging/_module.d.ts +0 -1
  221. package/dist/async/middlewares/hedging/sequential-hedging/_module.js +0 -2
  222. package/dist/async/middlewares/hedging/sequential-hedging/_module.js.map +0 -1
  223. package/dist/async/middlewares/hedging/sequential-hedging/sequential-hedging.middleware.js +0 -104
  224. package/dist/async/middlewares/hedging/sequential-hedging/sequential-hedging.middleware.js.map +0 -1
  225. package/dist/event-bus/contracts/event-bus.errors.d.ts +0 -72
  226. package/dist/event-bus/contracts/event-bus.errors.js +0 -110
  227. package/dist/event-bus/contracts/event-bus.errors.js.map +0 -1
  228. package/dist/utilities/functions/_module-exports.js.map +0 -1
  229. package/dist/utilities/types/at-least-one.type.d.ts +0 -8
  230. package/dist/utilities/types/at-least-one.type.js +0 -5
  231. package/dist/utilities/types/at-least-one.type.js.map +0 -1
  232. package/dist/utilities/types/factory.type.d.ts +0 -44
  233. package/dist/utilities/types/factory.type.js +0 -5
  234. package/dist/utilities/types/factory.type.js.map +0 -1
  235. package/dist/utilities/types/invokable.type.d.ts +0 -20
  236. package/dist/utilities/types/invokable.type.js +0 -5
  237. package/dist/utilities/types/invokable.type.js.map +0 -1
  238. package/dist/utilities/types/items.type.d.ts +0 -8
  239. package/dist/utilities/types/items.type.js +0 -5
  240. package/dist/utilities/types/items.type.js.map +0 -1
  241. package/dist/utilities/types/lazy.type.d.ts +0 -31
  242. package/dist/utilities/types/lazy.type.js +0 -5
  243. package/dist/utilities/types/lazy.type.js.map +0 -1
  244. package/dist/utilities/types/one-or-more.type.d.ts +0 -8
  245. package/dist/utilities/types/one-or-more.type.js +0 -5
  246. package/dist/utilities/types/one-or-more.type.js.map +0 -1
  247. package/dist/utilities/types/result.type.d.ts +0 -18
  248. package/dist/utilities/types/result.type.js +0 -5
  249. package/dist/utilities/types/result.type.js.map +0 -1
@@ -1,49 +1,13 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { type ISerializedError, type OneOrMore } from "../../utilities/_module-exports.js";
5
- import type { ISerderRegister, ISerializable } from "../../serde/contracts/_module-exports.js";
6
4
  /**
7
5
  *
8
6
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
9
7
  * @group Errors
10
8
  */
11
- export declare class LockError extends Error implements ISerializable<ISerializedError> {
12
- static deserialize(serializedError: ISerializedError): LockError;
9
+ export declare class LockError extends Error {
13
10
  constructor(message: string, cause?: unknown);
14
- serialize(): ISerializedError;
15
- }
16
- /**
17
- *
18
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
19
- * @group Errors
20
- */
21
- export declare class UnexpectedLockError extends LockError implements ISerializable<ISerializedError> {
22
- static deserialize(serializedError: ISerializedError): UnexpectedLockError;
23
- constructor(message: string, cause?: unknown);
24
- serialize(): ISerializedError;
25
- }
26
- /**
27
- * The error is thrown when an unexpected error occurs while acquiring a lock.
28
- *
29
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
30
- * @group Errors
31
- */
32
- export declare class UnableToAquireLockError extends UnexpectedLockError implements ISerializable<ISerializedError> {
33
- static deserialize(serializedError: ISerializedError): UnableToAquireLockError;
34
- constructor(message: string, cause?: unknown);
35
- serialize(): ISerializedError;
36
- }
37
- /**
38
- * The error is thrown when an unexpected error occurs while releasing a lock.
39
- *
40
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
41
- * @group Errors
42
- */
43
- export declare class UnableToReleaseLockError extends UnexpectedLockError implements ISerializable<ISerializedError> {
44
- static deserialize(serializedError: ISerializedError): UnableToReleaseLockError;
45
- constructor(message: string, cause?: unknown);
46
- serialize(): ISerializedError;
47
11
  }
48
12
  /**
49
13
  * The error is thrown when trying to acquire a lock that is owned by a different owner.
@@ -51,10 +15,8 @@ export declare class UnableToReleaseLockError extends UnexpectedLockError implem
51
15
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
52
16
  * @group Errors
53
17
  */
54
- export declare class KeyAlreadyAcquiredLockError extends LockError implements ISerializable<ISerializedError> {
55
- static deserialize(serializedError: ISerializedError): KeyAlreadyAcquiredLockError;
18
+ export declare class KeyAlreadyAcquiredLockError extends LockError {
56
19
  constructor(message: string, cause?: unknown);
57
- serialize(): ISerializedError;
58
20
  }
59
21
  /**
60
22
  * The error is thrown when trying to release a lock that is owned by a different owner.
@@ -62,10 +24,8 @@ export declare class KeyAlreadyAcquiredLockError extends LockError implements IS
62
24
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
63
25
  * @group Errors
64
26
  */
65
- export declare class UnownedReleaseLockError extends LockError implements ISerializable<ISerializedError> {
66
- static deserialize(serializedError: ISerializedError): UnownedReleaseLockError;
27
+ export declare class UnownedReleaseLockError extends LockError {
67
28
  constructor(message: string, cause?: unknown);
68
- serialize(): ISerializedError;
69
29
  }
70
30
  /**
71
31
  * The error is thrown when trying to referesh a lock that is owned by a different owner.
@@ -73,10 +33,8 @@ export declare class UnownedReleaseLockError extends LockError implements ISeria
73
33
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
74
34
  * @group Errors
75
35
  */
76
- export declare class UnownedRefreshLockError extends LockError implements ISerializable<ISerializedError> {
77
- static deserialize(serializedError: ISerializedError): UnownedRefreshLockError;
36
+ export declare class UnownedRefreshLockError extends LockError {
78
37
  constructor(message: string, cause?: unknown);
79
- serialize(): ISerializedError;
80
38
  }
81
39
  /**
82
40
  *
@@ -85,16 +43,7 @@ export declare class UnownedRefreshLockError extends LockError implements ISeria
85
43
  */
86
44
  export declare const LOCK_ERRORS: {
87
45
  readonly Base: typeof LockError;
88
- readonly Unexpected: typeof UnexpectedLockError;
89
- readonly UnableToAquire: typeof UnableToAquireLockError;
90
- readonly UnableToRelease: typeof UnableToReleaseLockError;
91
46
  readonly KeyAlreadyAcquired: typeof KeyAlreadyAcquiredLockError;
92
47
  readonly UnownedRelease: typeof UnownedReleaseLockError;
48
+ readonly UnownedRefresh: typeof UnownedRefreshLockError;
93
49
  };
94
- /**
95
- * The `registerLockErrorsToSerde` function registers all {@link ILock | `ILock`} related errors with `IFlexibleSerde`, ensuring they will properly be serialized and deserialized.
96
- *
97
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
98
- * @group Errors
99
- */
100
- export declare function registerLockErrorsToSerde(serde: OneOrMore<ISerderRegister>): void;
@@ -1,88 +1,15 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { CORE, resolveOneOrMore, } from "../../utilities/_module-exports.js";
5
4
  /**
6
5
  *
7
6
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
8
7
  * @group Errors
9
8
  */
10
9
  export class LockError extends Error {
11
- static deserialize(serializedError) {
12
- return new LockError(serializedError.message, serializedError.cause);
13
- }
14
- constructor(message, cause) {
15
- super(message, { cause });
16
- }
17
- serialize() {
18
- return {
19
- cause: this.cause,
20
- message: this.message,
21
- name: this.name,
22
- };
23
- }
24
- }
25
- /**
26
- *
27
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
28
- * @group Errors
29
- */
30
- export class UnexpectedLockError extends LockError {
31
- static deserialize(serializedError) {
32
- return new UnexpectedLockError(serializedError.message, serializedError.cause);
33
- }
34
- constructor(message, cause) {
35
- super(message, { cause });
36
- }
37
- serialize() {
38
- return {
39
- cause: this.cause,
40
- message: this.message,
41
- name: this.name,
42
- };
43
- }
44
- }
45
- /**
46
- * The error is thrown when an unexpected error occurs while acquiring a lock.
47
- *
48
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
49
- * @group Errors
50
- */
51
- export class UnableToAquireLockError extends UnexpectedLockError {
52
- static deserialize(serializedError) {
53
- return new UnableToAquireLockError(serializedError.message, serializedError.cause);
54
- }
55
- constructor(message, cause) {
56
- super(message, { cause });
57
- }
58
- serialize() {
59
- return {
60
- cause: this.cause,
61
- message: this.message,
62
- name: this.name,
63
- };
64
- }
65
- }
66
- /**
67
- * The error is thrown when an unexpected error occurs while releasing a lock.
68
- *
69
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
70
- * @group Errors
71
- */
72
- export class UnableToReleaseLockError extends UnexpectedLockError {
73
- static deserialize(serializedError) {
74
- return new UnableToReleaseLockError(serializedError.message, serializedError.cause);
75
- }
76
10
  constructor(message, cause) {
77
11
  super(message, { cause });
78
12
  }
79
- serialize() {
80
- return {
81
- cause: this.cause,
82
- message: this.message,
83
- name: this.name,
84
- };
85
- }
86
13
  }
87
14
  /**
88
15
  * The error is thrown when trying to acquire a lock that is owned by a different owner.
@@ -91,19 +18,9 @@ export class UnableToReleaseLockError extends UnexpectedLockError {
91
18
  * @group Errors
92
19
  */
93
20
  export class KeyAlreadyAcquiredLockError extends LockError {
94
- static deserialize(serializedError) {
95
- return new KeyAlreadyAcquiredLockError(serializedError.message, serializedError.cause);
96
- }
97
21
  constructor(message, cause) {
98
22
  super(message, { cause });
99
23
  }
100
- serialize() {
101
- return {
102
- cause: this.cause,
103
- message: this.message,
104
- name: this.name,
105
- };
106
- }
107
24
  }
108
25
  /**
109
26
  * The error is thrown when trying to release a lock that is owned by a different owner.
@@ -112,19 +29,9 @@ export class KeyAlreadyAcquiredLockError extends LockError {
112
29
  * @group Errors
113
30
  */
114
31
  export class UnownedReleaseLockError extends LockError {
115
- static deserialize(serializedError) {
116
- return new UnownedReleaseLockError(serializedError.message, serializedError.cause);
117
- }
118
32
  constructor(message, cause) {
119
33
  super(message, { cause });
120
34
  }
121
- serialize() {
122
- return {
123
- cause: this.cause,
124
- message: this.message,
125
- name: this.name,
126
- };
127
- }
128
35
  }
129
36
  /**
130
37
  * The error is thrown when trying to referesh a lock that is owned by a different owner.
@@ -133,19 +40,9 @@ export class UnownedReleaseLockError extends LockError {
133
40
  * @group Errors
134
41
  */
135
42
  export class UnownedRefreshLockError extends LockError {
136
- static deserialize(serializedError) {
137
- return new UnownedRefreshLockError(serializedError.message, serializedError.cause);
138
- }
139
43
  constructor(message, cause) {
140
44
  super(message, { cause });
141
45
  }
142
- serialize() {
143
- return {
144
- cause: this.cause,
145
- message: this.message,
146
- name: this.name,
147
- };
148
- }
149
46
  }
150
47
  /**
151
48
  *
@@ -154,27 +51,8 @@ export class UnownedRefreshLockError extends LockError {
154
51
  */
155
52
  export const LOCK_ERRORS = {
156
53
  Base: LockError,
157
- Unexpected: UnexpectedLockError,
158
- UnableToAquire: UnableToAquireLockError,
159
- UnableToRelease: UnableToReleaseLockError,
160
54
  KeyAlreadyAcquired: KeyAlreadyAcquiredLockError,
161
55
  UnownedRelease: UnownedReleaseLockError,
56
+ UnownedRefresh: UnownedRefreshLockError,
162
57
  };
163
- /**
164
- * The `registerLockErrorsToSerde` function registers all {@link ILock | `ILock`} related errors with `IFlexibleSerde`, ensuring they will properly be serialized and deserialized.
165
- *
166
- * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
167
- * @group Errors
168
- */
169
- export function registerLockErrorsToSerde(serde) {
170
- for (const serde_ of resolveOneOrMore(serde)) {
171
- serde_
172
- .registerClass(LockError, CORE)
173
- .registerClass(UnexpectedLockError, CORE)
174
- .registerClass(UnableToAquireLockError, CORE)
175
- .registerClass(UnableToReleaseLockError, CORE)
176
- .registerClass(KeyAlreadyAcquiredLockError, CORE)
177
- .registerClass(UnownedReleaseLockError, CORE);
178
- }
179
- }
180
58
  //# sourceMappingURL=lock.errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock.errors.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock.errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.errors.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock.errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAChC,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,SAAS;IACtD,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAClD,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAClD,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9B,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,IAAI,EAAE,SAAS;IACf,kBAAkB,EAAE,2BAA2B;IAC/C,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;CACjC,CAAC"}
@@ -58,7 +58,7 @@ export type UnownedRefreshTryLockEvent = {
58
58
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
59
59
  * @group Events
60
60
  */
61
- export type NotAvailableLockEvent = {
61
+ export type UnavailableLockEvent = {
62
62
  key: string;
63
63
  owner: string;
64
64
  };
@@ -94,7 +94,7 @@ export declare const LOCK_EVENTS: {
94
94
  readonly RELEASED: "RELEASED";
95
95
  readonly UNOWNED_RELEASE_TRY: "UNOWNED_RELEASE_TRY";
96
96
  readonly UNOWNED_REFRESH_TRY: "UNOWNED_REFRESH_TRY";
97
- readonly NOT_AVAILABLE: "NOT_AVAILABLE";
97
+ readonly UNAVAILABLE: "UNAVAILABLE";
98
98
  readonly FORCE_RELEASED: "FORCE_RELEASED";
99
99
  readonly REFRESHED: "REFRESHED";
100
100
  readonly UNEXPECTED_ERROR: "UNEXPECTED_ERROR";
@@ -109,7 +109,7 @@ export type LockEventMap = {
109
109
  [LOCK_EVENTS.RELEASED]: ReleasedLockEvent;
110
110
  [LOCK_EVENTS.UNOWNED_RELEASE_TRY]: UnownedReleaseTryLockEvent;
111
111
  [LOCK_EVENTS.UNOWNED_REFRESH_TRY]: UnownedRefreshTryLockEvent;
112
- [LOCK_EVENTS.NOT_AVAILABLE]: NotAvailableLockEvent;
112
+ [LOCK_EVENTS.UNAVAILABLE]: UnavailableLockEvent;
113
113
  [LOCK_EVENTS.FORCE_RELEASED]: ForceReleasedLockEvent;
114
114
  [LOCK_EVENTS.REFRESHED]: RefreshedLockEvent;
115
115
  [LOCK_EVENTS.UNEXPECTED_ERROR]: UnexpectedErrorLockEvent;
@@ -11,7 +11,7 @@ export const LOCK_EVENTS = {
11
11
  RELEASED: "RELEASED",
12
12
  UNOWNED_RELEASE_TRY: "UNOWNED_RELEASE_TRY",
13
13
  UNOWNED_REFRESH_TRY: "UNOWNED_REFRESH_TRY",
14
- NOT_AVAILABLE: "NOT_AVAILABLE",
14
+ UNAVAILABLE: "UNAVAILABLE",
15
15
  FORCE_RELEASED: "FORCE_RELEASED",
16
16
  REFRESHED: "REFRESHED",
17
17
  UNEXPECTED_ERROR: "UNEXPECTED_ERROR",
@@ -1 +1 @@
1
- {"version":3,"file":"lock.events.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock.events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;CAC9B,CAAC"}
1
+ {"version":3,"file":"lock.events.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock.events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgGH;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;CAC9B,CAAC"}
@@ -9,7 +9,7 @@ import { type IDeinitizable, type IInitizable, type IPrunable, TimeSpan } from "
9
9
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
10
10
  * @group Adapters
11
11
  */
12
- type KyselyLockAdapterTable = {
12
+ export type KyselyLockAdapterTable = {
13
13
  key: string;
14
14
  owner: string;
15
15
  expiresAt: number | string | null;
@@ -19,7 +19,7 @@ type KyselyLockAdapterTable = {
19
19
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
20
20
  * @group Adapters
21
21
  */
22
- type KyselyLockAdapterTables = {
22
+ export type KyselyLockAdapterTables = {
23
23
  lock: KyselyLockAdapterTable;
24
24
  };
25
25
  /**
@@ -27,12 +27,25 @@ type KyselyLockAdapterTables = {
27
27
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
28
28
  * @group Adapters
29
29
  */
30
- type KyselyLockAdapterSettings = {
30
+ export type KyselyLockAdapterSettings = {
31
31
  kysely: Kysely<KyselyLockAdapterTables>;
32
+ /**
33
+ * @default
34
+ * ```ts
35
+ * TimeSpan.fromMinutes(1)
36
+ * ```
37
+ */
32
38
  expiredKeysRemovalInterval?: TimeSpan;
39
+ /**
40
+ * @default true
41
+ */
33
42
  shouldRemoveExpiredKeys?: boolean;
34
43
  };
35
44
  /**
45
+ * To utilize the `KyselyLockAdapter`, you must install the [`"kysely"`](https://www.npmjs.com/package/kysely) package and configure a `Kysely` class instance.
46
+ *
47
+ * Note in order to use `KyselyLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
48
+ * The adapter have been tested with `sqlite`, `postgres` and `mysql` databases.
36
49
  *
37
50
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
38
51
  * @group Adapters
@@ -69,4 +82,3 @@ export declare class KyselyLockAdapter implements IDatabaseLockAdapter, IDeiniti
69
82
  refresh(key: string, owner: string, expiration: Date): Promise<number>;
70
83
  find(key: string): Promise<ILockData | null>;
71
84
  }
72
- export {};
@@ -3,6 +3,10 @@
3
3
  */
4
4
  import { TimeSpan, } from "../../../../utilities/_module-exports.js";
5
5
  /**
6
+ * To utilize the `KyselyLockAdapter`, you must install the [`"kysely"`](https://www.npmjs.com/package/kysely) package and configure a `Kysely` class instance.
7
+ *
8
+ * Note in order to use `KyselyLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
9
+ * The adapter have been tested with `sqlite`, `postgres` and `mysql` databases.
6
10
  *
7
11
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
8
12
  * @group Adapters
@@ -39,7 +43,7 @@ export class KyselyLockAdapter {
39
43
  if (this.shouldRemoveExpiredKeys && this.timeoutId !== null) {
40
44
  clearTimeout(this.timeoutId);
41
45
  }
42
- // Should not throw if the index does not exists thats why the try catch is used.
46
+ // Should throw if the index does not exists thats why the try catch is used.
43
47
  try {
44
48
  await this.kysely.schema
45
49
  .dropIndex("lock_expiresAt")
@@ -49,7 +53,7 @@ export class KyselyLockAdapter {
49
53
  catch {
50
54
  /* EMPTY */
51
55
  }
52
- // Should not throw if the table does not exists thats why the try catch is used.
56
+ // Should throw if the table does not exists thats why the try catch is used.
53
57
  try {
54
58
  await this.kysely.schema.dropTable("lock").execute();
55
59
  }
@@ -58,20 +62,19 @@ export class KyselyLockAdapter {
58
62
  }
59
63
  }
60
64
  async init() {
61
- // Should not throw if the table already exists thats why the try catch is used.
65
+ // Should throw if the table already exists thats why the try catch is used.
62
66
  try {
63
67
  await this.kysely.schema
64
68
  .createTable("lock")
65
- .ifNotExists()
66
69
  .addColumn("key", "varchar(255)", (col) => col.primaryKey())
67
- .addColumn("owner", "varchar(255)")
70
+ .addColumn("owner", "varchar(255)", (col) => col.notNull())
68
71
  .addColumn("expiresAt", "bigint")
69
72
  .execute();
70
73
  }
71
74
  catch {
72
75
  /* EMPTY */
73
76
  }
74
- // Should not throw if the index already exists thats why the try catch is used.
77
+ // Should throw if the index already exists thats why the try catch is used.
75
78
  try {
76
79
  await this.kysely.schema
77
80
  .createIndex("lock_expiresAt")
@@ -83,7 +86,7 @@ export class KyselyLockAdapter {
83
86
  /* EMPTY */
84
87
  }
85
88
  if (this.shouldRemoveExpiredKeys) {
86
- this.timeoutId = setTimeout(() => {
89
+ this.timeoutId = setInterval(() => {
87
90
  void this.removeAllExpired();
88
91
  }, this.expiredKeysRemovalInterval.toMilliseconds());
89
92
  }
@@ -143,7 +146,7 @@ export class KyselyLockAdapter {
143
146
  return null;
144
147
  }
145
148
  return {
146
- expiration: row.expiresAt ? new Date(Number(row.expiresAt)) : null,
149
+ expiration: row.expiresAt !== null ? new Date(Number(row.expiresAt)) : null,
147
150
  owner: row.owner,
148
151
  };
149
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAIH,QAAQ,GACX,MAAM,gCAAgC,CAAC;AAkCxC;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAGT,MAAM,CAAkC;IACxC,0BAA0B,CAAW;IACrC,uBAAuB,CAAU;IAC1C,SAAS,GACb,IAAI,CAAC;IAET;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,QAAmC;QAC3C,MAAM,EACF,MAAM,EACN,0BAA0B,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EACpD,uBAAuB,GAAG,IAAI,GACjC,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;QAC7D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,SAAS,CAAC,gBAAgB,CAAC;iBAC3B,EAAE,CAAC,MAAM,CAAC;iBACV,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,gFAAgF;QAChF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,WAAW,CAAC,MAAM,CAAC;iBACnB,WAAW,EAAE;iBACb,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;iBAC3D,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;iBAClC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;iBAChC,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,gFAAgF;QAChF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,WAAW,CAAC,gBAAgB,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC;iBACV,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;iBACtB,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;aACnD,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAW,EACX,KAAa,EACb,UAAuB;QAEvB,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,MAAM,CAAC;YACJ,GAAG;YACH,KAAK;YACL,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI;SAC3C,CAAC;aACD,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAW,EACX,KAAa,EACb,UAAuB;QAEvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM;aACjC,WAAW,CAAC,MAAM,CAAC;aACnB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;YAC5B,cAAc;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACV,EAAE,CAAC,GAAG,CAAC;YACH,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC;YACpC,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;SACzC,CAAC,CACL;aACA,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;aACxD,gBAAgB,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAoB;QAC1C,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CACxC;aACA,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CACT,GAAW,EACX,KAAa,EACb,UAAgB;QAEhB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM;aACjC,WAAW,CAAC,MAAM,CAAC;aACnB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC;aAC/B,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;aACxC,gBAAgB,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;IACvD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM;aACxB,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,MAAM,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;aACxC,gBAAgB,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAClE,KAAK,EAAE,GAAG,CAAC,KAAK;SACnB,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { type IDeinitizable, type IInitizable, type IPrunable } from "../../../../utilities/_module-exports.js";
4
+ import { type IDeinitizable, type IInitizable } from "../../../../utilities/_module-exports.js";
5
5
  import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module-exports.js";
6
6
  import type { CollectionOptions, Db } from "mongodb";
7
+ import { ObjectId } from "mongodb";
7
8
  /**
8
9
  *
9
10
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
@@ -12,20 +13,31 @@ import type { CollectionOptions, Db } from "mongodb";
12
13
  export type MongodbLockAdapterSettings = {
13
14
  database: Db;
14
15
  /**
15
- * @default {"lock"}
16
+ * @default "lock"
16
17
  */
17
18
  collectionName?: string;
18
19
  collectionSettings?: CollectionOptions;
19
20
  };
20
21
  /**
21
- * To utilize the `MongodbLockAdapter`, you must install the `"mongodb"` package.
22
+ *
23
+ * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
24
+ * @group Adapters
25
+ */
26
+ export type MongodbLockDocument = {
27
+ _id: ObjectId;
28
+ key: string;
29
+ owner: string;
30
+ expiresAt: Date | null;
31
+ };
32
+ /**
33
+ * To utilize the `MongodbLockAdapter`, you must install the [`"mongodb"`](https://www.npmjs.com/package/mongodb) package.
22
34
  *
23
35
  * Note in order to use `MongodbLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
24
36
  *
25
37
  * IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
26
38
  * @group Adapters
27
39
  */
28
- export declare class MongodbLockAdapter implements IDatabaseLockAdapter, IDeinitizable, IInitizable, IPrunable {
40
+ export declare class MongodbLockAdapter implements IDatabaseLockAdapter, IDeinitizable, IInitizable {
29
41
  private readonly database;
30
42
  private readonly collection;
31
43
  private readonly collectionName;
@@ -44,8 +56,7 @@ export declare class MongodbLockAdapter implements IDatabaseLockAdapter, IDeinit
44
56
  * await lockAdapter.init()
45
57
  * ```
46
58
  */
47
- constructor({ collectionName, collectionSettings, database, }: MongodbLockAdapterSettings);
48
- removeAllExpired(): Promise<void>;
59
+ constructor(settings: MongodbLockAdapterSettings);
49
60
  /**
50
61
  * Creates all related indexes.
51
62
  * Note the `init` method needs to be called before using the adapter.
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import {} from "../../../../utilities/_module-exports.js";
5
- import { UnexpectedLockError } from "../../../../lock/contracts/_module-exports.js";
4
+ import { UnexpectedError, } from "../../../../utilities/_module-exports.js";
6
5
  import { ObjectId } from "mongodb";
7
6
  /**
8
- * To utilize the `MongodbLockAdapter`, you must install the `"mongodb"` package.
7
+ * To utilize the `MongodbLockAdapter`, you must install the [`"mongodb"`](https://www.npmjs.com/package/mongodb) package.
9
8
  *
10
9
  * Note in order to use `MongodbLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
11
10
  *
@@ -31,18 +30,12 @@ export class MongodbLockAdapter {
31
30
  * await lockAdapter.init()
32
31
  * ```
33
32
  */
34
- constructor({ collectionName = "lock", collectionSettings, database, }) {
33
+ constructor(settings) {
34
+ const { collectionName = "lock", collectionSettings, database, } = settings;
35
35
  this.collectionName = collectionName;
36
36
  this.database = database;
37
37
  this.collection = database.collection(collectionName, collectionSettings);
38
38
  }
39
- async removeAllExpired() {
40
- await this.collection.deleteMany({
41
- expiresAt: {
42
- $lte: new Date(),
43
- },
44
- });
45
- }
46
39
  /**
47
40
  * Creates all related indexes.
48
41
  * Note the `init` method needs to be called before using the adapter.
@@ -73,7 +66,7 @@ export class MongodbLockAdapter {
73
66
  expiresAt: expiration,
74
67
  });
75
68
  if (!insertResult.acknowledged) {
76
- throw new UnexpectedLockError("Mongodb insertion was not acknowledged");
69
+ throw new UnexpectedError("Mongodb insertion was not acknowledged");
77
70
  }
78
71
  }
79
72
  async update(key, owner, expiration) {
@@ -98,7 +91,7 @@ export class MongodbLockAdapter {
98
91
  },
99
92
  });
100
93
  if (!updateResult.acknowledged) {
101
- throw new UnexpectedLockError("Mongodb update was not acknowledged");
94
+ throw new UnexpectedError("Mongodb update was not acknowledged");
102
95
  }
103
96
  return updateResult.modifiedCount; // > 0;
104
97
  }
@@ -108,7 +101,7 @@ export class MongodbLockAdapter {
108
101
  key,
109
102
  });
110
103
  if (!deleteResult.acknowledged) {
111
- throw new UnexpectedLockError("Mongodb deletion was not acknowledged");
104
+ throw new UnexpectedError("Mongodb deletion was not acknowledged");
112
105
  }
113
106
  return;
114
107
  }
@@ -117,7 +110,7 @@ export class MongodbLockAdapter {
117
110
  owner,
118
111
  });
119
112
  if (!deleteResult.acknowledged) {
120
- throw new UnexpectedLockError("Mongodb deletion was not acknowledged");
113
+ throw new UnexpectedError("Mongodb deletion was not acknowledged");
121
114
  }
122
115
  }
123
116
  async refresh(key, owner, expiration) {
@@ -130,7 +123,7 @@ export class MongodbLockAdapter {
130
123
  },
131
124
  });
132
125
  if (!updateResult.acknowledged) {
133
- throw new UnexpectedLockError("Mongodb update was not acknowledged");
126
+ throw new UnexpectedError("Mongodb update was not acknowledged");
134
127
  }
135
128
  return updateResult.modifiedCount; // > 0;
136
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ declare module "ioredis" {
13
13
  }
14
14
  }
15
15
  /**
16
- * To utilize the `RedisLockAdapter`, you must install the `"ioredis"` package.
16
+ * To utilize the `RedisLockAdapter`, you must install the [`"ioredis"`](https://www.npmjs.com/package/ioredis) package.
17
17
  *
18
18
  * Note in order to use `RedisLockAdapter` correctly, ensure you use a single, consistent database across all server instances.
19
19
  *