@daiso-tech/core 0.38.0 → 0.40.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 (152) hide show
  1. package/README.md +5 -1
  2. package/dist/async/backof-policies/constant-backoff-policy/constant-backoff-policy.d.ts +1 -1
  3. package/dist/async/backof-policies/exponential-backoff-policy/exponential-backoff-policy.d.ts +2 -2
  4. package/dist/async/backof-policies/linear-backoff-policy/linear-backoff-policy.d.ts +1 -1
  5. package/dist/async/backof-policies/polynomial-backoff-policy/polynomial-backoff-policy.d.ts +2 -2
  6. package/dist/async/middlewares/bulkhead/bulkhead.middleware.d.ts +2 -2
  7. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js +2 -2
  8. package/dist/async/middlewares/hedging/sequential-hedging.middleware.js.map +1 -1
  9. package/dist/async/middlewares/retry/retry.middleware.js +2 -2
  10. package/dist/async/middlewares/retry/retry.middleware.js.map +1 -1
  11. package/dist/async/middlewares/retry/retry.types.d.ts +1 -1
  12. package/dist/cache/contracts/cache-adapter.contract.d.ts +9 -9
  13. package/dist/cache/contracts/cache.contract.d.ts +7 -7
  14. package/dist/cache/contracts/cache.errors.d.ts +3 -26
  15. package/dist/cache/contracts/cache.errors.js +0 -47
  16. package/dist/cache/contracts/cache.errors.js.map +1 -1
  17. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +10 -10
  18. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +6 -5
  19. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +17 -13
  20. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  21. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +15 -3
  22. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js +25 -9
  23. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  24. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +9 -9
  25. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  26. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
  27. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js +1 -1
  28. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js +2 -1
  29. package/dist/cache/implementations/adapters/redis-cache-adapter/utilities.js.map +1 -1
  30. package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -2
  31. package/dist/cache/implementations/derivables/cache/cache.js +1 -1
  32. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  33. package/dist/collection/contracts/async-collection.contract.d.ts +0 -1
  34. package/dist/collection/contracts/async-collection.contract.js +3 -1
  35. package/dist/collection/contracts/async-collection.contract.js.map +1 -1
  36. package/dist/collection/contracts/collection.contract.d.ts +0 -1
  37. package/dist/collection/contracts/collection.contract.js +3 -1
  38. package/dist/collection/contracts/collection.contract.js.map +1 -1
  39. package/dist/collection/contracts/collection.errors.d.ts +1 -26
  40. package/dist/collection/contracts/collection.errors.js +0 -55
  41. package/dist/collection/contracts/collection.errors.js.map +1 -1
  42. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js +1 -1
  43. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  44. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js +1 -1
  45. package/dist/collection/implementations/async-iterable-collection/_shared/async-zip-iterable.js.map +1 -1
  46. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +9 -6
  47. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  48. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js +1 -1
  49. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js.map +1 -1
  50. package/dist/collection/implementations/iterable-collection/_shared/zip-iterable.js +1 -1
  51. package/dist/collection/implementations/iterable-collection/_shared/zip-iterable.js.map +1 -1
  52. package/dist/collection/implementations/iterable-collection/iterable-collection.js +9 -6
  53. package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
  54. package/dist/collection/implementations/list-collection/list-collection.js +12 -9
  55. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  56. package/dist/event-bus/contracts/_module-exports.d.ts +0 -1
  57. package/dist/event-bus/contracts/_module-exports.js +0 -1
  58. package/dist/event-bus/contracts/_module-exports.js.map +1 -1
  59. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +3 -3
  60. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +3 -3
  61. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.d.ts +2 -2
  62. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js +3 -2
  63. package/dist/event-bus/implementations/adapters/redis-pub-sub-event-bus-adapter/redis-pub-sub-event-bus-adapter.js.map +1 -1
  64. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -1
  65. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +26 -26
  66. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  67. package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +11 -4
  68. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +17 -12
  69. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -1
  70. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +17 -20
  71. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  72. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +159 -752
  73. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  74. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +56 -16
  75. package/dist/lock/contracts/lock-adapter.contract.d.ts +32 -9
  76. package/dist/lock/contracts/lock-adapter.contract.js +10 -1
  77. package/dist/lock/contracts/lock-adapter.contract.js.map +1 -1
  78. package/dist/lock/contracts/lock.contract.d.ts +30 -25
  79. package/dist/lock/contracts/lock.errors.d.ts +11 -28
  80. package/dist/lock/contracts/lock.errors.js +10 -74
  81. package/dist/lock/contracts/lock.errors.js.map +1 -1
  82. package/dist/lock/contracts/lock.events.d.ts +15 -3
  83. package/dist/lock/contracts/lock.events.js +2 -1
  84. package/dist/lock/contracts/lock.events.js.map +1 -1
  85. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +40 -10
  86. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +135 -37
  87. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  88. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +20 -7
  89. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +59 -35
  90. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  91. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +23 -12
  92. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +152 -87
  93. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  94. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +5 -5
  95. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +3 -2
  96. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -1
  97. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +6 -6
  98. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +46 -24
  99. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  100. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +4 -4
  101. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +45 -12
  102. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  103. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js +7 -5
  104. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +1 -1
  105. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +3 -3
  106. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +2 -3
  107. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  108. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +1 -1
  109. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +4 -3
  110. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  111. package/dist/lock/implementations/derivables/lock-provider/lock-state.d.ts +8 -11
  112. package/dist/lock/implementations/derivables/lock-provider/lock-state.js +9 -26
  113. package/dist/lock/implementations/derivables/lock-provider/lock-state.js.map +1 -1
  114. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +14 -16
  115. package/dist/lock/implementations/derivables/lock-provider/lock.js +106 -63
  116. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  117. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +2 -2
  118. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  119. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +184 -166
  120. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  121. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +240 -41
  122. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  123. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +2704 -1514
  124. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  125. package/dist/serde/implementations/derivables/serde.d.ts +22 -22
  126. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js +2 -1
  127. package/dist/utilities/classes/kysely-table-name-transformer-plugin/kysely-table-name-transformer-plugin.js.map +1 -1
  128. package/dist/utilities/classes/namespace/namespace.d.ts +3 -3
  129. package/dist/utilities/classes/namespace/namespace.js +2 -2
  130. package/dist/utilities/classes/namespace/namespace.js.map +1 -1
  131. package/dist/utilities/classes/time-span/time-span.d.ts +10 -2
  132. package/dist/utilities/classes/time-span/time-span.js +10 -2
  133. package/dist/utilities/classes/time-span/time-span.js.map +1 -1
  134. package/dist/utilities/contracts/deinitizable.contract.d.ts +1 -1
  135. package/dist/utilities/contracts/initizable.contract.d.ts +1 -1
  136. package/dist/utilities/contracts/prunable.contract.d.ts +1 -1
  137. package/dist/utilities/errors.d.ts +8 -0
  138. package/dist/utilities/errors.js +11 -0
  139. package/dist/utilities/errors.js.map +1 -1
  140. package/dist/utilities/functions/_module.d.ts +1 -0
  141. package/dist/utilities/functions/_module.js +1 -0
  142. package/dist/utilities/functions/_module.js.map +1 -1
  143. package/dist/utilities/functions/is-class.d.ts +4 -0
  144. package/dist/utilities/functions/is-class.js +4 -0
  145. package/dist/utilities/functions/is-class.js.map +1 -1
  146. package/dist/utilities/functions/is-positive-nbr.d.ts +8 -0
  147. package/dist/utilities/functions/is-positive-nbr.js +19 -0
  148. package/dist/utilities/functions/is-positive-nbr.js.map +1 -0
  149. package/package.json +1 -1
  150. package/dist/event-bus/contracts/event-bus.errors.d.ts +0 -40
  151. package/dist/event-bus/contracts/event-bus.errors.js +0 -62
  152. package/dist/event-bus/contracts/event-bus.errors.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import type { TimeSpan } from "../../../../utilities/_module-exports.js";
5
- import type { IDatabaseLockAdapter, ILockAdapter } from "../../../../lock/contracts/_module-exports.js";
4
+ import { type TimeSpan } from "../../../../utilities/_module-exports.js";
5
+ import { type IDatabaseLockAdapter, type ILockAdapter, type LockRefreshResult } from "../../../../lock/contracts/_module-exports.js";
6
6
  /**
7
7
  * @internal
8
8
  */
@@ -11,6 +11,6 @@ export declare class DatabaseLockAdapter implements ILockAdapter {
11
11
  constructor(adapter: IDatabaseLockAdapter);
12
12
  acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
13
13
  release(key: string, owner: string): Promise<boolean>;
14
- forceRelease(key: string): Promise<void>;
15
- refresh(key: string, owner: string, ttl: TimeSpan): Promise<boolean>;
14
+ forceRelease(key: string): Promise<boolean>;
15
+ refresh(key: string, owner: string, ttl: TimeSpan): Promise<LockRefreshResult>;
16
16
  }
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { UnexpectedLockError } from "../../../../lock/contracts/_module-exports.js";
4
+ import { UnexpectedError } from "../../../../utilities/_module-exports.js";
5
+ import { LOCK_REFRESH_RESULT, } from "../../../../lock/contracts/_module-exports.js";
5
6
  /**
6
7
  * @internal
7
8
  */
@@ -11,34 +12,66 @@ export class DatabaseLockAdapter {
11
12
  this.adapter = adapter;
12
13
  }
13
14
  async acquire(key, owner, ttl) {
14
- const expiration = ttl?.toEndDate() ?? null;
15
15
  try {
16
+ const expiration = ttl?.toEndDate() ?? null;
17
+ // An error will be thrown if the lock already exists
16
18
  await this.adapter.insert(key, owner, expiration);
17
19
  return true;
18
20
  }
19
21
  catch (error) {
20
- if (error instanceof UnexpectedLockError) {
22
+ if (error instanceof UnexpectedError) {
21
23
  throw error;
22
24
  }
23
- const result = await this.adapter.update(key, owner, expiration);
25
+ const expiration = ttl?.toEndDate() ?? null;
26
+ const result = await this.adapter.updateIfExpired(key, owner, expiration);
24
27
  return result > 0;
25
28
  }
26
29
  }
27
30
  async release(key, owner) {
28
- const lock = await this.adapter.find(key);
29
- if (lock === null) {
31
+ const lockData = await this.adapter.removeIfOwner(key, owner);
32
+ if (lockData === null) {
33
+ return false;
34
+ }
35
+ const { expiration } = lockData;
36
+ const hasNoExpiration = expiration === null;
37
+ if (hasNoExpiration) {
30
38
  return true;
31
39
  }
32
- await this.adapter.remove(key, owner);
33
- const isOwner = lock.owner === owner;
34
- return isOwner;
40
+ const { owner: currentOwner } = lockData;
41
+ const isNotExpired = expiration > new Date();
42
+ const isCurrentOwner = owner === currentOwner;
43
+ return isNotExpired && isCurrentOwner;
35
44
  }
36
45
  async forceRelease(key) {
37
- await this.adapter.remove(key, null);
46
+ const lockData = await this.adapter.remove(key);
47
+ if (lockData === null) {
48
+ return false;
49
+ }
50
+ if (lockData.expiration === null) {
51
+ return true;
52
+ }
53
+ return lockData.expiration > new Date();
38
54
  }
39
55
  async refresh(key, owner, ttl) {
40
- const result = await this.adapter.refresh(key, owner, ttl.toEndDate());
41
- return result > 0;
56
+ const lockData = await this.adapter.find(key);
57
+ if (lockData === null) {
58
+ return LOCK_REFRESH_RESULT.UNOWNED_REFRESH;
59
+ }
60
+ if (lockData.owner !== owner) {
61
+ return LOCK_REFRESH_RESULT.UNOWNED_REFRESH;
62
+ }
63
+ if (lockData.expiration === null) {
64
+ return LOCK_REFRESH_RESULT.UNEXPIRABLE_KEY;
65
+ }
66
+ if (lockData.expiration <= new Date()) {
67
+ return LOCK_REFRESH_RESULT.UNOWNED_REFRESH;
68
+ }
69
+ const expiration = ttl.toEndDate();
70
+ const result = await this.adapter.updateExpirationIfOwner(key, owner, expiration);
71
+ if (result > 0) {
72
+ return LOCK_REFRESH_RESULT.REFRESHED;
73
+ }
74
+ return LOCK_REFRESH_RESULT.UNOWNED_REFRESH;
42
75
  }
43
76
  }
44
77
  //# sourceMappingURL=database-lock-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/database-lock-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAM1E;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACC;IAA7B,YAA6B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;IAAG,CAAC;IAE9D,KAAK,CAAC,OAAO,CACT,GAAW,EACX,KAAa,EACb,GAAoB;QAEpB,MAAM,UAAU,GAAG,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;QAE5C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YAChB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACjE,OAAO,MAAM,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;QACrC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa,EAAE,GAAa;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,GAAG,CAAC,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"database-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/database-lock-adapter.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,14 @@ export function isDatabaseLockAdapter(adapter) {
5
5
  const adapter_ = adapter;
6
6
  return (typeof adapter_["insert"] === "function" &&
7
7
  adapter_["insert"].length === 3 &&
8
- typeof adapter_["update"] === "function" &&
9
- adapter_["update"].length === 3 &&
8
+ typeof adapter_["updateIfExpired"] === "function" &&
9
+ adapter_["updateIfExpired"].length === 3 &&
10
10
  typeof adapter_["remove"] === "function" &&
11
- adapter_["remove"].length === 2 &&
12
- typeof adapter_["refresh"] === "function" &&
13
- adapter_["refresh"].length === 3 &&
11
+ adapter_["remove"].length === 1 &&
12
+ typeof adapter_["removeIfOwner"] === "function" &&
13
+ adapter_["removeIfOwner"].length === 2 &&
14
+ typeof adapter_["updateExpirationIfOwner"] === "function" &&
15
+ adapter_["updateExpirationIfOwner"].length === 3 &&
14
16
  typeof adapter_["find"] === "function" &&
15
17
  adapter_["find"].length === 1);
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"is-database-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/is-database-lock-adapter.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACjC,OAA4C;IAE5C,MAAM,QAAQ,GAAG,OAEhB,CAAC;IACF,OAAO,CACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,UAAU;QACzC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;QAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,UAAU;QACtC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAChC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"is-database-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/is-database-lock-adapter.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACjC,OAA4C;IAE5C,MAAM,QAAQ,GAAG,OAEhB,CAAC;IAEF,OAAO,CACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,QAAQ,CAAC,iBAAiB,CAAC,KAAK,UAAU;QACjD,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,KAAK,CAAC;QACxC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QAC/B,OAAO,QAAQ,CAAC,eAAe,CAAC,KAAK,UAAU;QAC/C,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC;QACtC,OAAO,QAAQ,CAAC,yBAAyB,CAAC,KAAK,UAAU;QACzD,QAAQ,CAAC,yBAAyB,CAAC,CAAC,MAAM,KAAK,CAAC;QAChD,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,UAAU;QACtC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAChC,CAAC;AACN,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { TimeSpan, type Factory, type AsyncLazy } from "../../../../utilities/_module-exports.js";
4
+ import { TimeSpan, type Factory, type AsyncLazy, type Invokable } from "../../../../utilities/_module-exports.js";
5
5
  import { Namespace, type OneOrMore } from "../../../../utilities/_module-exports.js";
6
6
  import type { IDatabaseLockAdapter, LockEventMap } from "../../../../lock/contracts/_module-exports.js";
7
7
  import { type ILock, type LockProviderCreateSettings, type ILockProvider, type ILockAdapter } from "../../../../lock/contracts/_module-exports.js";
@@ -35,13 +35,13 @@ export type LockProviderSettingsBase = {
35
35
  lazyPromiseFactory?: Factory<AsyncLazy<any>, LazyPromise<any>>;
36
36
  serde: OneOrMore<ISerderRegister>;
37
37
  /**
38
- * @default {""}
38
+ * @default ""
39
39
  */
40
40
  serdeTransformerName?: string;
41
41
  /**
42
42
  * You can pass your owner id generator function.
43
43
  */
44
- createOwnerId?: () => string;
44
+ createOwnerId?: Invokable<[], string>;
45
45
  /**
46
46
  * @default
47
47
  * ```ts
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import { TimeSpan, CORE, resolveOneOrMore, resolveInvokable, } from "../../../../utilities/_module-exports.js";
4
+ import { TimeSpan, CORE, resolveOneOrMore, resolveInvokable, callInvokable, } from "../../../../utilities/_module-exports.js";
5
5
  import { Namespace } from "../../../../utilities/_module-exports.js";
6
6
  import {} from "../../../../lock/contracts/_module-exports.js";
7
7
  import { LazyPromise } from "../../../../async/_module-exports.js";
@@ -161,7 +161,7 @@ export class LockProvider {
161
161
  * ```
162
162
  */
163
163
  create(key, settings = {}) {
164
- const { ttl = this.defaultTtl, owner = this.createOwnerId() } = settings;
164
+ const { ttl = this.defaultTtl, owner = callInvokable(this.createOwnerId), } = settings;
165
165
  const keyObj = this.namespace._getInternal().create(key);
166
166
  return new Lock({
167
167
  adapter: this.adapter,
@@ -172,7 +172,6 @@ export class LockProvider {
172
172
  owner,
173
173
  ttl,
174
174
  serdeTransformerName: this.serdeTransformerName,
175
- expirationInMs: null,
176
175
  defaultBlockingInterval: this.defaultBlockingInterval,
177
176
  defaultBlockingTime: this.defaultBlockingTime,
178
177
  defaultRefreshTime: this.defaultRefreshTime,
@@ -1 +1 @@
1
- {"version":3,"file":"lock-provider.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock-provider.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-provider.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export type LockSerdeTransformerSettings = {
16
16
  adapter: ILockAdapter;
17
17
  lockStore: ILockStore;
18
18
  namespace: Namespace;
19
- createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>;
19
+ createLazyPromise: <TValue = void>(asyncFn: () => Promise<TValue>) => LazyPromise<TValue>;
20
20
  defaultBlockingInterval: TimeSpan;
21
21
  defaultBlockingTime: TimeSpan;
22
22
  defaultRefreshTime: TimeSpan;
@@ -42,7 +42,8 @@ export class LockSerdeTransformer {
42
42
  isApplicable(value) {
43
43
  return (value instanceof Lock &&
44
44
  getConstructorName(value) === Lock.name &&
45
- value.getSerdeTransformerName() === this.serdeTransformerName);
45
+ value._internal_getSerdeTransformerName() ===
46
+ this.serdeTransformerName);
46
47
  }
47
48
  deserialize(serializedValue) {
48
49
  const { key, owner, ttlInMs, expirationInMs } = serializedValue;
@@ -55,7 +56,7 @@ export class LockSerdeTransformer {
55
56
  key: keyObj,
56
57
  owner,
57
58
  serdeTransformerName: this.serdeTransformerName,
58
- ttl: ttlInMs ? TimeSpan.fromMilliseconds(ttlInMs) : null,
59
+ ttl: ttlInMs !== null ? TimeSpan.fromMilliseconds(ttlInMs) : null,
59
60
  expirationInMs,
60
61
  defaultBlockingInterval: this.defaultBlockingInterval,
61
62
  defaultBlockingTime: this.defaultBlockingTime,
@@ -63,7 +64,7 @@ export class LockSerdeTransformer {
63
64
  });
64
65
  }
65
66
  serialize(deserializedValue) {
66
- return Lock.serialize(deserializedValue);
67
+ return Lock._internal_serialize(deserializedValue);
67
68
  }
68
69
  }
69
70
  //# sourceMappingURL=lock-serde-transformer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-serde-transformer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACH,IAAI,GAEP,MAAM,yDAAyD,CAAC;AAMjE,OAAO,EACH,SAAS,GAEZ,MAAM,+DAA+D,CAAC;AACvE,OAAO,EACH,kBAAkB,EAClB,QAAQ,GAEX,MAAM,gCAAgC,CAAC;AAqBxC;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAGZ,OAAO,CAAe;IACtB,SAAS,CAAa;IACtB,SAAS,CAAY;IACrB,iBAAiB,CAET;IACR,uBAAuB,CAAW;IAClC,mBAAmB,CAAW;IAC9B,kBAAkB,CAAW;IAC7B,QAAQ,CAA0B;IAClC,oBAAoB,CAAS;IAE9C,YAAY,QAAsC;QAC9C,MAAM,EACF,OAAO,EACP,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,GACvB,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACJ,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO;YACH,MAAM;YACN,IAAI,CAAC,oBAAoB;YACzB,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SACnC,CAAC;IACN,CAAC;IAED,YAAY,CAAC,KAAc;QACvB,OAAO,CACH,KAAK,YAAY,IAAI;YACrB,kBAAkB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI;YACvC,KAAK,CAAC,uBAAuB,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAChE,CAAC;IACN,CAAC;IAED,WAAW,CAAC,eAAgC;QACxC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzD,OAAO,IAAI,IAAI,CAAC;YACZ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC;YAC3D,eAAe,EAAE,IAAI,CAAC,QAAQ;YAC9B,GAAG,EAAE,MAAM;YACX,KAAK;YACL,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,cAAc;YACd,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,iBAAuB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC7C,CAAC;CACJ"}
1
+ {"version":3,"file":"lock-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-serde-transformer.ts"],"names":[],"mappings":"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"}
@@ -13,31 +13,28 @@ export type ILockState = {
13
13
  */
14
14
  export type ILockStore = Partial<Record<string, ILockState>>;
15
15
  /**
16
+ * Keeps track of lock states in memory
17
+ *
16
18
  * @internal
17
19
  */
18
20
  export declare class LockState {
19
- private stateRecord;
21
+ private readonly stateRecord;
20
22
  private readonly key;
21
23
  constructor(stateRecord: ILockStore, key: string);
22
24
  /**
23
- * Return the expiration as a date.
25
+ * Return the expiration as a TimeSpan.
24
26
  */
25
- get(): Date | null;
27
+ get(): TimeSpan | null;
26
28
  /**
27
- * Sets the expiration time.
28
- * If a number is provided, it must be in milliseconds.
29
+ * Sets the key expiration time.
29
30
  */
30
- set(ttl: TimeSpan | number | null): void;
31
+ set(ttl: TimeSpan | null): void;
31
32
  /**
32
33
  * Checks if the key is expired.
33
34
  */
34
35
  isExpired(): boolean;
35
36
  /**
36
- * Returns the remaining time.
37
- */
38
- getRemainingTime(): TimeSpan | null;
39
- /**
40
- * Removes the expiration from the record.
37
+ * Removes the key.
41
38
  */
42
39
  remove(): void;
43
40
  }
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import { TimeSpan } from "../../../../utilities/_module-exports.js";
5
5
  /**
6
+ * Keeps track of lock states in memory
7
+ *
6
8
  * @internal
7
9
  */
8
10
  export class LockState {
@@ -13,27 +15,22 @@ export class LockState {
13
15
  this.key = key;
14
16
  }
15
17
  /**
16
- * Return the expiration as a date.
18
+ * Return the expiration as a TimeSpan.
17
19
  */
18
20
  get() {
19
21
  const state = this.stateRecord[this.key];
20
22
  if (state === undefined) {
21
23
  return null;
22
24
  }
23
- const { expiration } = state;
24
- return expiration;
25
+ if (state.expiration === null) {
26
+ return null;
27
+ }
28
+ return TimeSpan.fromDateRange(new Date(), state.expiration);
25
29
  }
26
30
  /**
27
- * Sets the expiration time.
28
- * If a number is provided, it must be in milliseconds.
31
+ * Sets the key expiration time.
29
32
  */
30
33
  set(ttl) {
31
- if (typeof ttl === "number") {
32
- this.stateRecord[this.key] = {
33
- expiration: new Date(ttl),
34
- };
35
- return;
36
- }
37
34
  this.stateRecord[this.key] = {
38
35
  expiration: ttl?.toEndDate() ?? null,
39
36
  };
@@ -53,21 +50,7 @@ export class LockState {
53
50
  return expiration.getTime() < Date.now();
54
51
  }
55
52
  /**
56
- * Returns the remaining time.
57
- */
58
- getRemainingTime() {
59
- const state = this.stateRecord[this.key];
60
- if (state === undefined) {
61
- return null;
62
- }
63
- const { expiration } = state;
64
- if (expiration === null) {
65
- return null;
66
- }
67
- return TimeSpan.fromDateRange(new Date(), expiration);
68
- }
69
- /**
70
- * Removes the expiration from the record.
53
+ * Removes the key.
71
54
  */
72
55
  remove() {
73
56
  // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
@@ -1 +1 @@
1
- {"version":3,"file":"lock-state.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAc1D;;GAEG;AACH,MAAM,OAAO,SAAS;IAEN;IACS;IAFrB,YACY,WAAuB,EACd,GAAW;QADpB,gBAAW,GAAX,WAAW,CAAY;QACd,QAAG,GAAH,GAAG,CAAQ;IAC7B,CAAC;IAEJ;;OAEG;IACH,GAAG;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,GAA6B;QAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACzB,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC;aAC5B,CAAC;YACF,OAAO;QACX,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACzB,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI;SACvC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,SAAS;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM;QACF,gEAAgE;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;CACJ"}
1
+ {"version":3,"file":"lock-state.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/derivables/lock-provider/lock-state.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAc1D;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAEG;IACA;IAFrB,YACqB,WAAuB,EACvB,GAAW;QADX,gBAAW,GAAX,WAAW,CAAY;QACvB,QAAG,GAAH,GAAG,CAAQ;IAC7B,CAAC;IAEJ;;OAEG;IACH,GAAG;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YACzB,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI;SACvC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,SAAS;QACL,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;QAC7B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,MAAM;QACF,gEAAgE;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;CACJ"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import type { TimeSpan } from "../../../../utilities/_module-exports.js";
4
+ import { TimeSpan } from "../../../../utilities/_module-exports.js";
5
5
  import { type Key, type AsyncLazy, type OneOrMore, type Result } from "../../../../utilities/_module-exports.js";
6
- import { KeyAlreadyAcquiredLockError, type AquireBlockingSettings, type LockEventMap } from "../../../../lock/contracts/_module-exports.js";
6
+ import { KeyAlreadyAcquiredLockError, type LockAquireBlockingSettings, type LockEventMap } from "../../../../lock/contracts/_module-exports.js";
7
7
  import { type ILock, type ILockAdapter } from "../../../../lock/contracts/_module-exports.js";
8
8
  import { LazyPromise } from "../../../../async/_module-exports.js";
9
9
  import type { IEventDispatcher } from "../../../../event-bus/contracts/_module-exports.js";
@@ -12,16 +12,16 @@ import type { LockState } from "../../../../lock/implementations/derivables/lock
12
12
  * @internal
13
13
  */
14
14
  export type ISerializedLock = {
15
- key: OneOrMore<string>;
15
+ key: string;
16
+ expirationInMs: number | null;
16
17
  owner: string;
17
18
  ttlInMs: number | null;
18
- expirationInMs: number | null;
19
19
  };
20
20
  /**
21
21
  * @internal
22
22
  */
23
23
  export type LockSettings = {
24
- createLazyPromise: <TValue = void>(asyncFn: () => PromiseLike<TValue>) => LazyPromise<TValue>;
24
+ createLazyPromise: <TValue = void>(asyncFn: () => Promise<TValue>) => LazyPromise<TValue>;
25
25
  serdeTransformerName: string;
26
26
  adapter: ILockAdapter;
27
27
  lockState: LockState;
@@ -29,7 +29,7 @@ export type LockSettings = {
29
29
  key: Key;
30
30
  owner: OneOrMore<string>;
31
31
  ttl: TimeSpan | null;
32
- expirationInMs: number | null;
32
+ expirationInMs?: number | null;
33
33
  defaultBlockingInterval: TimeSpan;
34
34
  defaultBlockingTime: TimeSpan;
35
35
  defaultRefreshTime: TimeSpan;
@@ -41,7 +41,7 @@ export declare class Lock implements ILock {
41
41
  /**
42
42
  * @internal
43
43
  */
44
- static serialize(deserializedValue: Lock): ISerializedLock;
44
+ static _internal_serialize(deserializedValue: Lock): ISerializedLock;
45
45
  private readonly createLazyPromise;
46
46
  private readonly adapter;
47
47
  private readonly lockState;
@@ -53,24 +53,22 @@ export declare class Lock implements ILock {
53
53
  private readonly defaultBlockingTime;
54
54
  private readonly defaultRefreshTime;
55
55
  private readonly serdeTransformerName;
56
- /**
57
- * @internal
58
- */
59
56
  constructor(settings: LockSettings);
60
- getSerdeTransformerName(): string;
57
+ _internal_getSerdeTransformerName(): string;
61
58
  run<TValue = void>(asyncFn: AsyncLazy<TValue>): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
62
59
  runOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>): LazyPromise<TValue>;
63
- runBlocking<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: AquireBlockingSettings): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
64
- runBlockingOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: AquireBlockingSettings): LazyPromise<TValue>;
60
+ runBlocking<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: LockAquireBlockingSettings): LazyPromise<Result<TValue, KeyAlreadyAcquiredLockError>>;
61
+ runBlockingOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: LockAquireBlockingSettings): LazyPromise<TValue>;
65
62
  acquire(): LazyPromise<boolean>;
66
63
  acquireOrFail(): LazyPromise<void>;
67
- acquireBlocking(settings?: AquireBlockingSettings): LazyPromise<boolean>;
68
- acquireBlockingOrFail(settings?: AquireBlockingSettings): LazyPromise<void>;
64
+ acquireBlocking(settings?: LockAquireBlockingSettings): LazyPromise<boolean>;
65
+ acquireBlockingOrFail(settings?: LockAquireBlockingSettings): LazyPromise<void>;
69
66
  release(): LazyPromise<boolean>;
70
67
  releaseOrFail(): LazyPromise<void>;
71
- forceRelease(): LazyPromise<void>;
68
+ forceRelease(): LazyPromise<boolean>;
72
69
  isExpired(): LazyPromise<boolean>;
73
70
  isLocked(): LazyPromise<boolean>;
71
+ private _refresh;
74
72
  refresh(ttl?: TimeSpan): LazyPromise<boolean>;
75
73
  refreshOrFail(ttl?: TimeSpan): LazyPromise<void>;
76
74
  getRemainingTime(): LazyPromise<TimeSpan | null>;