@daiso-tech/core 0.39.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 (63) hide show
  1. package/dist/cache/contracts/cache-adapter.contract.d.ts +9 -9
  2. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +10 -10
  3. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +9 -9
  4. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  5. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  6. package/dist/event-bus/contracts/event-bus-adapter.contract.d.ts +3 -3
  7. package/dist/event-bus/implementations/adapters/no-op-event-bus-adapter/no-op-event-bus-adapter.d.ts +3 -3
  8. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +1 -0
  9. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +26 -26
  10. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  11. package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +11 -4
  12. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +17 -12
  13. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -1
  14. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js +17 -20
  15. package/dist/event-bus/implementations/test-utilities/event-bus-adapter.test-suite.js.map +1 -1
  16. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +159 -752
  17. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  18. package/dist/lock/contracts/database-lock-adapter.contract.d.ts +52 -14
  19. package/dist/lock/contracts/lock-adapter.contract.d.ts +29 -8
  20. package/dist/lock/contracts/lock-adapter.contract.js +10 -1
  21. package/dist/lock/contracts/lock-adapter.contract.js.map +1 -1
  22. package/dist/lock/contracts/lock.contract.d.ts +17 -12
  23. package/dist/lock/contracts/lock.errors.d.ts +10 -0
  24. package/dist/lock/contracts/lock.errors.js +12 -0
  25. package/dist/lock/contracts/lock.errors.js.map +1 -1
  26. package/dist/lock/contracts/lock.events.d.ts +12 -0
  27. package/dist/lock/contracts/lock.events.js +1 -0
  28. package/dist/lock/contracts/lock.events.js.map +1 -1
  29. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +24 -6
  30. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +126 -31
  31. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  32. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.d.ts +20 -7
  33. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js +59 -35
  34. package/dist/lock/implementations/adapters/memory-lock-adapter/memory-lock-adapter.js.map +1 -1
  35. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.d.ts +9 -9
  36. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js +150 -78
  37. package/dist/lock/implementations/adapters/mongodb-lock-adapter/mongodb-lock-adapter.js.map +1 -1
  38. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.d.ts +5 -5
  39. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js +3 -2
  40. package/dist/lock/implementations/adapters/no-op-lock-adapter/no-op-lock-adapter.js.map +1 -1
  41. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.d.ts +5 -5
  42. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js +44 -22
  43. package/dist/lock/implementations/adapters/redis-lock-adapter/redis-lock-adapter.js.map +1 -1
  44. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.d.ts +3 -3
  45. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js +42 -10
  46. package/dist/lock/implementations/derivables/lock-provider/database-lock-adapter.js.map +1 -1
  47. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js +7 -5
  48. package/dist/lock/implementations/derivables/lock-provider/is-database-lock-adapter.js.map +1 -1
  49. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  50. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +1 -1
  51. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +3 -2
  52. package/dist/lock/implementations/derivables/lock-provider/lock.js +60 -41
  53. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  54. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js +184 -166
  55. package/dist/lock/implementations/test-utilities/database-lock-adapter.test-suite.js.map +1 -1
  56. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js +240 -41
  57. package/dist/lock/implementations/test-utilities/lock-adapter.test-suite.js.map +1 -1
  58. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +2700 -1510
  59. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  60. package/dist/utilities/contracts/deinitizable.contract.d.ts +1 -1
  61. package/dist/utilities/contracts/initizable.contract.d.ts +1 -1
  62. package/dist/utilities/contracts/prunable.contract.d.ts +1 -1
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.test-suite.js","sourceRoot":"","sources":["../../../../src/event-bus/implementations/test-utilities/event-bus.test-suite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus.test-suite.js","sourceRoot":"","sources":["../../../../src/event-bus/implementations/test-utilities/event-bus.test-suite.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,24 @@
6
6
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
7
7
  * @group Contracts
8
8
  */
9
- export type ILockData = {
10
- owner: string;
9
+ export type ILockExpirationData = {
10
+ /**
11
+ * The expiration date and time of the lock.
12
+ * `null` indicates the lock does not expire.
13
+ */
11
14
  expiration: Date | null;
12
15
  };
16
+ /**
17
+ *
18
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
19
+ * @group Contracts
20
+ */
21
+ export type ILockData = ILockExpirationData & {
22
+ /**
23
+ * The identifier of the entity currently holding the lock.
24
+ */
25
+ owner: string;
26
+ };
13
27
  /**
14
28
  * The `IDatabaseLockAdapter` contract defines a way for managing locks independent of data storage.
15
29
  * This contract simplifies the implementation of lock adapters with CRUD-based databases, such as SQL databases and ORMs like TypeOrm and MikroOrm.
@@ -19,27 +33,51 @@ export type ILockData = {
19
33
  */
20
34
  export type IDatabaseLockAdapter = {
21
35
  /**
22
- * The `insert` method will create a lock if it does not exist and if the lock already exists an error must be thrown.
36
+ * Inserts a new lock into the database.
37
+ *
38
+ * @param key The unique identifier for the lock.
39
+ * @param owner The identifier of the entity acquiring the lock.
40
+ * @param expiration The date and time when the lock should expire. Use `null` for a lock that doesn't expire.
23
41
  */
24
- insert(key: string, owner: string, expiration: Date | null): PromiseLike<void>;
42
+ insert(key: string, owner: string, expiration: Date | null): Promise<void>;
25
43
  /**
26
- * The `update` method will update a lock if it has expired, matches the given `key` and matches the given `owner`.
44
+ * Conditionally renews the lock on `key` if it has already expired, setting a new `owner` and `expiration`.
45
+ * Note you need to check if the expiration field is not null and greater than or equal to current time.
27
46
  *
28
- * @returns Returns number of updated rows or documents.
47
+ * @param key The unique identifier for the lock.
48
+ * @param owner The new identifier for the entity acquiring the lock.
49
+ * @param expiration The new date and time when the lock should expire. Use `null` for a lock that doesn't expire.
50
+ * @returns Returns number of updated.
29
51
  */
30
- update(key: string, owner: string, expiration: Date | null): PromiseLike<number>;
52
+ updateIfExpired(key: string, owner: string, expiration: Date | null): Promise<number>;
31
53
  /**
32
- * The `remove` method will remove a lock if it matches the given `key` and matches the given `owner`.
54
+ * Removes a lock from the database regardless of its owner.
55
+ *
56
+ * @param key The unique identifier for the lock to remove.
33
57
  */
34
- remove(key: string, owner: string | null): PromiseLike<void>;
58
+ remove(key: string): Promise<ILockExpirationData | null>;
35
59
  /**
36
- * The `refresh` method will upadte expiration of lock if it matches the given `key` and matches the given `owner`.
60
+ * Removes a lock from the database only if it is currently held by the specified owner.
37
61
  *
38
- * @returns Returns number of updated rows or documents.
62
+ * @param key The unique identifier for the lock.
63
+ * @param owner The identifier of the expected owner.
64
+ * @returns Returns {@link ILockExpirationData |`ILockExpirationData | null`}. The {@link ILockExpirationData |`ILockExpirationData`} data if successfully removed, otherwise `null` if the lock wasn't found or the owner didn't match.
39
65
  */
40
- refresh(key: string, owner: string, expiration: Date): PromiseLike<number>;
66
+ removeIfOwner(key: string, owner: string): Promise<ILockData | null>;
41
67
  /**
42
- * The `find` method will return a lock by the given `key`.
68
+ * Updates the expiration date of a lock if it is currently held by the specified owner.
69
+ *
70
+ * @param key The unique identifier for the lock.
71
+ * @param owner The identifier of the expected owner.
72
+ * @param expiration The new date and time when the lock should expire.
73
+ * @returns Returns a number greater than or equal to `1` if the lock's expiration was updated, or `0` if the lock wasn't found or the owner didn't match.
74
+ */
75
+ updateExpirationIfOwner(key: string, owner: string, expiration: Date): Promise<number>;
76
+ /**
77
+ * Retrieves the current lock data for a given key.
78
+ *
79
+ * @param key The unique identifier for the lock.
80
+ * @returns Returns the lock's owner and expiration data if found, otherwise `null`.
43
81
  */
44
- find(key: string): PromiseLike<ILockData | null>;
82
+ find(key: string): Promise<ILockData | null>;
45
83
  };
@@ -2,6 +2,22 @@
2
2
  * @module Lock
3
3
  */
4
4
  import type { TimeSpan } from "../../utilities/_module-exports.js";
5
+ /**
6
+ *
7
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
8
+ * @group Contracts
9
+ */
10
+ export declare const LOCK_REFRESH_RESULT: {
11
+ readonly REFRESHED: "refreshed";
12
+ readonly UNOWNED_REFRESH: "unonwned_refresh";
13
+ readonly UNEXPIRABLE_KEY: "unexpireable_key";
14
+ };
15
+ /**
16
+ *
17
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
18
+ * @group Contracts
19
+ */
20
+ export type LockRefreshResult = (typeof LOCK_REFRESH_RESULT)[keyof typeof LOCK_REFRESH_RESULT];
5
21
  /**
6
22
  * The `ILockAdapter` contract defines a way for managing locks independent of the underlying technology.
7
23
  * This contract is not meant to be used directly, instead you should use {@link ILockProvider | `ILockProvider`} contract.
@@ -11,24 +27,29 @@ import type { TimeSpan } from "../../utilities/_module-exports.js";
11
27
  */
12
28
  export type ILockAdapter = {
13
29
  /**
14
- * The `acquire` method acquires a lock only if the lock is not already acquired.
30
+ * The `acquire` method acquires a lock only if the lock is not acquired.
15
31
  *
16
- * @returns Returns true if not already acquired othewise false is returned.
32
+ * @returns Returns true if lock is not already acquired or false.
17
33
  */
18
- acquire(key: string, owner: string, ttl: TimeSpan | null): PromiseLike<boolean>;
34
+ acquire(key: string, owner: string, ttl: TimeSpan | null): Promise<boolean>;
19
35
  /**
20
36
  * The `release` method releases a lock if the owner matches.
21
37
  *
22
38
  * @returns Returns true if released otherwise false is returned.
23
39
  */
24
- release(key: string, owner: string): PromiseLike<boolean>;
40
+ release(key: string, owner: string): Promise<boolean>;
25
41
  /**
26
42
  * The `forceRelease` method releases a lock regardless of the owner.
43
+ *
44
+ * @returns Returns true if the lock was released or false if the lock doesnt exists
27
45
  */
28
- forceRelease(key: string): PromiseLike<void>;
46
+ forceRelease(key: string): Promise<boolean>;
29
47
  /**
30
- * The `refresh` method will upadte `ttl` of lock if it matches the given `key` and matches the given `owner`.
31
- * Returns true if the update occured otherwise false is returned.
48
+ * The `refresh` method will upadte `ttl` of lock if it matches the given `key`, given `owner` and is expireable.
49
+ * @returns
50
+ * - {@link LOCK_REFRESH_RESULT.UNOWNED_REFRESH | `LOCK_REFRESH_RESULT.UNOWNED_REFRESH`}: The lock doesn't exist or is owned by a different owner.
51
+ * - {@link LOCK_REFRESH_RESULT.UNEXPIRABLE_KEY | `LOCK_REFRESH_RESULT.UNEXPIRABLE_KEY`}: The lock is owned by the same owner but cannot be refreshed because it's unexpirable.
52
+ * - {@link LOCK_REFRESH_RESULT.REFRESHED | `LOCK_REFRESH_RESULT.REFRESHED`}: The lock is owned by the same owner and its ttl has been updated.
32
53
  */
33
- refresh(key: string, owner: string, ttl: TimeSpan): PromiseLike<boolean>;
54
+ refresh(key: string, owner: string, ttl: TimeSpan): Promise<LockRefreshResult>;
34
55
  };
@@ -1,5 +1,14 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- export {};
4
+ /**
5
+ *
6
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
7
+ * @group Contracts
8
+ */
9
+ export const LOCK_REFRESH_RESULT = {
10
+ REFRESHED: "refreshed",
11
+ UNOWNED_REFRESH: "unonwned_refresh",
12
+ UNEXPIRABLE_KEY: "unexpireable_key",
13
+ };
5
14
  //# sourceMappingURL=lock-adapter.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lock-adapter.contract.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock-adapter.contract.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"lock-adapter.contract.js","sourceRoot":"","sources":["../../../src/lock/contracts/lock-adapter.contract.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,kBAAkB;IACnC,eAAe,EAAE,kBAAkB;CAC7B,CAAC"}
@@ -38,29 +38,29 @@ export type ILock = {
38
38
  */
39
39
  runBlockingOrFail<TValue = void>(asyncFn: AsyncLazy<TValue>, settings?: LockAquireBlockingSettings): LazyPromise<TValue>;
40
40
  /**
41
- * The `acquire` method acquires a lock only if the lock is available.
41
+ * The `acquire` method acquires a lock only if the lock is not already acquired by different owner.
42
42
  *
43
- * @returns Returns true if the lock is acquired otherwise false is returned.
43
+ * @returns Returns true if the lock is not already acquired otherwise false is returned.
44
44
  */
45
45
  acquire(): LazyPromise<boolean>;
46
46
  /**
47
- * The `acquireOrFail` method acquires a lock only if the lock is available.
48
- * Throws an error if already acquired.
47
+ * The `acquireOrFail` method acquires a lock only if the lock is not already acquired by different owner.
48
+ * Throws an error if the lock is already acquired by different owner.
49
49
  *
50
50
  * @throws {KeyAlreadyAcquiredLockError} {@link KeyAlreadyAcquiredLockError}
51
51
  */
52
52
  acquireOrFail(): LazyPromise<void>;
53
53
  /**
54
- * The `acquireBlocking` method acquires a lock only if the lock is available.
54
+ * The `acquireBlocking` method acquires a lock only if the lock is not already acquired by different owner.
55
55
  * If the lock is not acquired, it retries every `settings.interval` until `settings.time` is reached.
56
56
  *
57
- * @returns Returns true if the lock is acquired otherwise false is returned.
57
+ * @returns Returns true if the lock is not already acquired otherwise false is returned.
58
58
  */
59
59
  acquireBlocking(settings?: LockAquireBlockingSettings): LazyPromise<boolean>;
60
60
  /**
61
- * The `acquireBlockingOrFail` method acquires a lock only if the lock is available.
61
+ * The `acquireBlockingOrFail` method acquires a lock only if the lock is not already acquired by different owner.
62
62
  * If the lock is not acquired, it retries every `settings.interval` until `settings.time` is reached.
63
- * Throws an error if the lock cannot be acquired after the given `settings.time`.
63
+ * Throws an error if the lock is already acquired by different owner.
64
64
  *
65
65
  * @throws {KeyAlreadyAcquiredLockError} {@link KeyAlreadyAcquiredLockError}
66
66
  */
@@ -80,26 +80,31 @@ export type ILock = {
80
80
  releaseOrFail(): LazyPromise<void>;
81
81
  /**
82
82
  * The `forceRelease` method releases a lock regardless of the owner.
83
+ *
84
+ * @returns Returns true if the lock was released or false if the lock doesnt exists
83
85
  */
84
- forceRelease(): LazyPromise<void>;
86
+ forceRelease(): LazyPromise<boolean>;
85
87
  /**
86
88
  * The `isExpired` method returns true if the lock is expired otherwise false is returned.
87
89
  */
88
90
  isExpired(): LazyPromise<boolean>;
89
91
  /**
90
- * The `isLocked` method returns true if the locked otherwise false is returned.
92
+ * The `isLocked` method returns true if the lock is unexpirable or unexpired otherwise false is returned.
91
93
  */
92
94
  isLocked(): LazyPromise<boolean>;
93
95
  /**
94
- * The `refresh` method updates the `ttl` of the lock if owned by the same owner.
96
+ * The `refresh` method updates the `ttl` of the lock if expireable and owned by the same owner.
95
97
  *
96
98
  * @returns Returns true if the lock is refreshed otherwise false is returned.
97
99
  */
98
100
  refresh(ttl?: TimeSpan): LazyPromise<boolean>;
99
101
  /**
100
- * The `refreshOrFail` method updates the `ttl` of the lock if owned by the same owner.
102
+ * The `refreshOrFail` method updates the `ttl` of the lock if expireable and owned by the same owner.
101
103
  * Throws an error if a different owner attempts to refresh the lock.
104
+ * Throws an error if the key is unexpirable.
105
+ *
102
106
  * @throws {UnownedRefreshLockError} {@link UnownedRefreshLockError}
107
+ * @throws {UnrefreshableKeyLockError} {@link UnrefreshableKeyLockError}
103
108
  */
104
109
  refreshOrFail(ttl?: TimeSpan): LazyPromise<void>;
105
110
  /**
@@ -36,6 +36,15 @@ export declare class UnownedReleaseLockError extends LockError {
36
36
  export declare class UnownedRefreshLockError extends LockError {
37
37
  constructor(message: string, cause?: unknown);
38
38
  }
39
+ /**
40
+ * The error is thrown when trying to referesh a lock that is unexpireable.
41
+ *
42
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
43
+ * @group Errors
44
+ */
45
+ export declare class UnrefreshableKeyLockError extends LockError {
46
+ constructor(message: string, cause?: unknown);
47
+ }
39
48
  /**
40
49
  *
41
50
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
@@ -43,6 +52,7 @@ export declare class UnownedRefreshLockError extends LockError {
43
52
  */
44
53
  export declare const LOCK_ERRORS: {
45
54
  readonly Base: typeof LockError;
55
+ readonly UnrefreshableKey: typeof UnrefreshableKeyLockError;
46
56
  readonly KeyAlreadyAcquired: typeof KeyAlreadyAcquiredLockError;
47
57
  readonly UnownedRelease: typeof UnownedReleaseLockError;
48
58
  readonly UnownedRefresh: typeof UnownedRefreshLockError;
@@ -44,6 +44,17 @@ export class UnownedRefreshLockError extends LockError {
44
44
  super(message, { cause });
45
45
  }
46
46
  }
47
+ /**
48
+ * The error is thrown when trying to referesh a lock that is unexpireable.
49
+ *
50
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
51
+ * @group Errors
52
+ */
53
+ export class UnrefreshableKeyLockError extends LockError {
54
+ constructor(message, cause) {
55
+ super(message, { cause });
56
+ }
57
+ }
47
58
  /**
48
59
  *
49
60
  * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
@@ -51,6 +62,7 @@ export class UnownedRefreshLockError extends LockError {
51
62
  */
52
63
  export const LOCK_ERRORS = {
53
64
  Base: LockError,
65
+ UnrefreshableKey: UnrefreshableKeyLockError,
54
66
  KeyAlreadyAcquired: KeyAlreadyAcquiredLockError,
55
67
  UnownedRelease: UnownedReleaseLockError,
56
68
  UnownedRefresh: UnownedRefreshLockError,
@@ -1 +1 @@
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"}
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;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACpD,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,gBAAgB,EAAE,yBAAyB;IAC3C,kBAAkB,EAAE,2BAA2B;IAC/C,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;CACjC,CAAC"}
@@ -52,6 +52,16 @@ export type UnownedRefreshTryLockEvent = {
52
52
  key: string;
53
53
  owner: string;
54
54
  };
55
+ /**
56
+ * The event is dispatched when trying to refefresh a lock that is unexpireable.
57
+ *
58
+ * IMPORT_PATH: `"@daiso-tech/core/lock/contracts"`
59
+ * @group Events
60
+ */
61
+ export type UnexpireableKeyRefreshTryLockEvent = {
62
+ key: string;
63
+ owner: string;
64
+ };
55
65
  /**
56
66
  * The event is dispatched when trying to acquire a lock that is owned by a different owner.
57
67
  *
@@ -94,6 +104,7 @@ export declare const LOCK_EVENTS: {
94
104
  readonly RELEASED: "RELEASED";
95
105
  readonly UNOWNED_RELEASE_TRY: "UNOWNED_RELEASE_TRY";
96
106
  readonly UNOWNED_REFRESH_TRY: "UNOWNED_REFRESH_TRY";
107
+ readonly UNEXPIREABLE_KEY_REFRESH_TRY: "UNEXPIREABLE_KEY_REFRESH_TRY";
97
108
  readonly UNAVAILABLE: "UNAVAILABLE";
98
109
  readonly FORCE_RELEASED: "FORCE_RELEASED";
99
110
  readonly REFRESHED: "REFRESHED";
@@ -109,6 +120,7 @@ export type LockEventMap = {
109
120
  [LOCK_EVENTS.RELEASED]: ReleasedLockEvent;
110
121
  [LOCK_EVENTS.UNOWNED_RELEASE_TRY]: UnownedReleaseTryLockEvent;
111
122
  [LOCK_EVENTS.UNOWNED_REFRESH_TRY]: UnownedRefreshTryLockEvent;
123
+ [LOCK_EVENTS.UNEXPIREABLE_KEY_REFRESH_TRY]: UnexpireableKeyRefreshTryLockEvent;
112
124
  [LOCK_EVENTS.UNAVAILABLE]: UnavailableLockEvent;
113
125
  [LOCK_EVENTS.FORCE_RELEASED]: ForceReleasedLockEvent;
114
126
  [LOCK_EVENTS.REFRESHED]: RefreshedLockEvent;
@@ -11,6 +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
+ UNEXPIREABLE_KEY_REFRESH_TRY: "UNEXPIREABLE_KEY_REFRESH_TRY",
14
15
  UNAVAILABLE: "UNAVAILABLE",
15
16
  FORCE_RELEASED: "FORCE_RELEASED",
16
17
  REFRESHED: "REFRESHED",
@@ -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,WAAW,EAAE,aAAa;IAC1B,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;AA2GH;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,4BAA4B,EAAE,8BAA8B;IAC5D,WAAW,EAAE,aAAa;IAC1B,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;CAC9B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @module Lock
3
3
  */
4
- import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts/_module-exports.js";
5
- import type { Kysely } from "kysely";
4
+ import type { IDatabaseLockAdapter, ILockData, ILockExpirationData } from "../../../../lock/contracts/_module-exports.js";
5
+ import { type Kysely } from "kysely";
6
6
  import { type IDeinitizable, type IInitizable, type IPrunable, TimeSpan } from "../../../../utilities/_module-exports.js";
7
7
  /**
8
8
  *
@@ -12,7 +12,7 @@ import { type IDeinitizable, type IInitizable, type IPrunable, TimeSpan } from "
12
12
  export type KyselyLockAdapterTable = {
13
13
  key: string;
14
14
  owner: string;
15
- expiresAt: number | string | null;
15
+ expiration: number | bigint | string | null;
16
16
  };
17
17
  /**
18
18
  *
@@ -40,6 +40,20 @@ export type KyselyLockAdapterSettings = {
40
40
  * @default true
41
41
  */
42
42
  shouldRemoveExpiredKeys?: boolean;
43
+ /**
44
+ * @default
45
+ * ```ts
46
+ * () => new Date()
47
+ * ```
48
+ */
49
+ currentDate?: () => Date;
50
+ /**
51
+ * @default
52
+ * ```ts
53
+ * globalThis.setInterval
54
+ * ```
55
+ */
56
+ setInterval?: typeof setInterval;
43
57
  };
44
58
  /**
45
59
  * To utilize the `KyselyLockAdapter`, you must install the [`"kysely"`](https://www.npmjs.com/package/kysely) package and configure a `Kysely` class instance.
@@ -55,6 +69,9 @@ export declare class KyselyLockAdapter implements IDatabaseLockAdapter, IDeiniti
55
69
  private readonly expiredKeysRemovalInterval;
56
70
  private readonly shouldRemoveExpiredKeys;
57
71
  private timeoutId;
72
+ private readonly currentDate;
73
+ private readonly setInterval;
74
+ private readonly isMysql;
58
75
  /**
59
76
  * @example
60
77
  * ```ts
@@ -77,8 +94,9 @@ export declare class KyselyLockAdapter implements IDatabaseLockAdapter, IDeiniti
77
94
  init(): Promise<void>;
78
95
  removeAllExpired(): Promise<void>;
79
96
  insert(key: string, owner: string, expiration: Date | null): Promise<void>;
80
- update(key: string, owner: string, expiration: Date | null): Promise<number>;
81
- remove(key: string, owner: string | null): Promise<void>;
82
- refresh(key: string, owner: string, expiration: Date): Promise<number>;
97
+ updateIfExpired(key: string, owner: string, expiration: Date | null): Promise<number>;
98
+ remove(key: string): Promise<ILockExpirationData | null>;
99
+ removeIfOwner(key: string, owner: string): Promise<ILockData | null>;
100
+ updateExpirationIfOwner(key: string, owner: string, expiration: Date): Promise<number>;
83
101
  find(key: string): Promise<ILockData | null>;
84
102
  }