@daiso-tech/core 0.46.0 → 0.48.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 (119) hide show
  1. package/dist/cache/contracts/cache-adapter.contract.d.ts +1 -1
  2. package/dist/cache/contracts/cache.contract.d.ts +3 -1
  3. package/dist/cache/contracts/cache.events.d.ts +1 -1
  4. package/dist/cache/contracts/database-cache-adapter.contract.d.ts +1 -1
  5. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +11 -2
  6. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +8 -8
  7. package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
  8. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
  9. package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
  10. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +1 -1
  11. package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.js.map +1 -1
  12. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
  13. package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.js.map +1 -1
  14. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
  15. package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
  16. package/dist/cache/implementations/derivables/cache/cache.d.ts +3 -32
  17. package/dist/cache/implementations/derivables/cache/cache.js +2 -41
  18. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  19. package/dist/cache/implementations/derivables/cache/database-cache-adapter.d.ts +1 -1
  20. package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
  21. package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js.map +1 -1
  22. package/dist/cache/implementations/test-utilities/cache.test-suite.js +38 -38
  23. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  24. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +8 -4
  25. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  26. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.d.ts +3 -1
  27. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.d.ts +11 -0
  28. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js +13 -3
  29. package/dist/circuit-breaker/implementations/adapters/kysely-circuit-breaker-storage-adapter/kysely-circuit-breaker-storage-adapter.js.map +1 -1
  30. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.d.ts +6 -0
  31. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js +14 -2
  32. package/dist/circuit-breaker/implementations/adapters/mongodb-circuit-breaker-storage-adapter/mongodb-circuit-breaker-storage-adapter.js.map +1 -1
  33. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +3 -9
  34. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +2 -18
  35. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
  36. package/dist/circuit-breaker/implementations/policies/sampling-breaker/sampling-breaker.d.ts +1 -1
  37. package/dist/collection/contracts/async-collection.contract.d.ts +1 -1
  38. package/dist/collection/contracts/collection.contract.d.ts +2 -2
  39. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-iterable.js.map +1 -1
  40. package/dist/collection/implementations/async-iterable-collection/_shared/async-chunk-while-iterable.js.map +1 -1
  41. package/dist/collection/implementations/async-iterable-collection/_shared/async-partion-iterable.js.map +1 -1
  42. package/dist/collection/implementations/async-iterable-collection/_shared/async-split-iterable.js.map +1 -1
  43. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +1 -1
  44. package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
  45. package/dist/collection/implementations/iterable-collection/_shared/chunk-iterable.js.map +1 -1
  46. package/dist/collection/implementations/iterable-collection/_shared/chunk-while-iterable.js.map +1 -1
  47. package/dist/collection/implementations/iterable-collection/_shared/partion-iterable.js.map +1 -1
  48. package/dist/collection/implementations/iterable-collection/_shared/split-iterable.js.map +1 -1
  49. package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +1 -1
  50. package/dist/collection/implementations/list-collection/list-collection.d.ts +1 -1
  51. package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
  52. package/dist/hooks/async-hooks.d.ts +9 -11
  53. package/dist/hooks/hooks.d.ts +5 -5
  54. package/dist/lock/contracts/lock-provider.contract.d.ts +3 -1
  55. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +11 -0
  56. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +18 -14
  57. package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
  58. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +3 -33
  59. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +2 -42
  60. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  61. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +58 -58
  62. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  63. package/dist/namespace/implementations/namespace.d.ts +1 -1
  64. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.d.ts +3 -1
  65. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.d.ts +11 -0
  66. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.js +13 -3
  67. package/dist/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.js.map +1 -1
  68. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.d.ts +6 -0
  69. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js +14 -2
  70. package/dist/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.js.map +1 -1
  71. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +3 -9
  72. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +2 -18
  73. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
  74. package/dist/resilience/middlewares/dynamic/dynamic.middleware.d.ts +1 -1
  75. package/dist/resilience/middlewares/fallback/fallback.middleware.d.ts +1 -1
  76. package/dist/resilience/middlewares/fallback/fallback.types.d.ts +4 -4
  77. package/dist/resilience/middlewares/observe/observe.middleware.d.ts +1 -1
  78. package/dist/resilience/middlewares/observe/observe.types.d.ts +7 -7
  79. package/dist/resilience/middlewares/retry/retry.middleware.d.ts +1 -1
  80. package/dist/resilience/middlewares/retry/retry.middleware.js.map +1 -1
  81. package/dist/resilience/middlewares/retry/retry.types.d.ts +6 -6
  82. package/dist/resilience/middlewares/timeout/timeout.middleware.d.ts +1 -1
  83. package/dist/resilience/middlewares/timeout/timeout.type.d.ts +4 -4
  84. package/dist/resilience/resilience.errors.d.ts +1 -1
  85. package/dist/resilience/resilience.errors.js.map +1 -1
  86. package/dist/semaphore/contracts/database-semaphore-adapter.contract.d.ts +2 -2
  87. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +3 -1
  88. package/dist/semaphore/contracts/semaphore-state.contract.d.ts +3 -3
  89. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.d.ts +12 -1
  90. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js +18 -14
  91. package/dist/semaphore/implementations/adapters/kysely-semaphore-adapter/kysely-semaphore-adapter.js.map +1 -1
  92. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +3 -33
  93. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +2 -42
  94. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  95. package/dist/semaphore/implementations/test-utilities/database-semaphore-adapter.test-suite.js.map +1 -1
  96. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +57 -57
  97. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -1
  98. package/dist/serde/contracts/flexible-serde.contract.d.ts +1 -1
  99. package/dist/shared-lock/contracts/database-shared-lock-adapter.contract.d.ts +2 -2
  100. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +3 -1
  101. package/dist/shared-lock/contracts/shared-lock-state.contract.d.ts +3 -3
  102. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.d.ts +11 -0
  103. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js +16 -6
  104. package/dist/shared-lock/implementations/adapters/kysely-shared-lock-adapter/kysely-shared-lock-adapter.js.map +1 -1
  105. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +3 -33
  106. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +2 -42
  107. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  108. package/dist/shared-lock/implementations/test-utilities/database-shared-lock-adapter.test-suite.js.map +1 -1
  109. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +117 -117
  110. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -1
  111. package/dist/task/implementations/task.d.ts +9 -9
  112. package/dist/task/implementations/task.js.map +1 -1
  113. package/dist/utilities/contracts/sqlite-database.contract.d.ts +1 -1
  114. package/dist/utilities/functions/invokable.d.ts +9 -9
  115. package/dist/utilities/functions/invokable.js.map +1 -1
  116. package/dist/utilities/functions/resolve-one-or-more.d.ts +1 -1
  117. package/dist/utilities/types/any-class.type.d.ts +1 -1
  118. package/dist/utilities/types/none-func.type.d.ts +1 -1
  119. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @module RateLimiter
3
3
  */
4
- import { MysqlAdapter } from "kysely";
4
+ import { MysqlAdapter, Transaction } from "kysely";
5
5
  import {} from "../../../../rate-limiter/contracts/_module.js";
6
6
  import {} from "../../../../serde/contracts/_module.js";
7
7
  import {} from "../../../../time-span/contracts/_module.js";
@@ -73,6 +73,7 @@ export class KyselyRateLimiterStorageAdapter {
73
73
  expiredKeysRemovalInterval;
74
74
  shouldRemoveExpiredKeys;
75
75
  intervalId = null;
76
+ enableTransactions;
76
77
  /**
77
78
  * @example
78
79
  * ```ts
@@ -96,11 +97,20 @@ export class KyselyRateLimiterStorageAdapter {
96
97
  * ```
97
98
  */
98
99
  constructor(settings) {
99
- const { kysely, serde, expiredKeysRemovalInterval = TimeSpan.fromMinutes(1), shouldRemoveExpiredKeys = true, } = settings;
100
+ const { kysely, serde, expiredKeysRemovalInterval = TimeSpan.fromMinutes(1), shouldRemoveExpiredKeys = true, enableTransactions = !(settings.kysely instanceof Transaction), } = settings;
100
101
  this.expiredKeysRemovalInterval = TimeSpan.fromTimeSpan(expiredKeysRemovalInterval);
101
102
  this.shouldRemoveExpiredKeys = shouldRemoveExpiredKeys;
102
103
  this.kysely = kysely;
103
104
  this.serde = serde;
105
+ this.enableTransactions = enableTransactions;
106
+ }
107
+ _transaction(trxFn) {
108
+ if (this.enableTransactions) {
109
+ return this.kysely.transaction().execute(async (trx) => {
110
+ return await trxFn(trx);
111
+ });
112
+ }
113
+ return trxFn(this.kysely);
104
114
  }
105
115
  /**
106
116
  * Removes all related rate limiter tables and their rows.
@@ -169,7 +179,7 @@ export class KyselyRateLimiterStorageAdapter {
169
179
  .execute();
170
180
  }
171
181
  async transaction(fn) {
172
- return await this.kysely.transaction().execute(async (trx) => {
182
+ return await this._transaction(async (trx) => {
173
183
  return await fn(new KyselyRateLimiterStorageAdapterTransaction(trx, this.serde));
174
184
  });
175
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"kysely-rate-limiter-storage-adapter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kysely-rate-limiter-storage-adapter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/adapters/kysely-rate-limiter-storage-adapter/kysely-rate-limiter-storage-adapter.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,10 @@ export type MongodbRateLimiterStorageAdapterSettings = {
18
18
  collectionName?: string;
19
19
  collectionSettings?: CollectionOptions;
20
20
  serde: ISerde<string>;
21
+ /**
22
+ * @default true
23
+ */
24
+ enableTransactions?: boolean;
21
25
  };
22
26
  /**
23
27
  * IMPORT_PATH: `"@daiso-tech/core/rate-limiter/mongodb-rate-limiter-storage-adapter"`
@@ -37,6 +41,7 @@ export declare class MongodbRateLimiterStorageAdapter<TType> implements IRateLim
37
41
  private readonly client;
38
42
  private readonly collection;
39
43
  private readonly serde;
44
+ private readonly enableTransactions;
40
45
  /**
41
46
  * @example
42
47
  * ```ts
@@ -69,6 +74,7 @@ export declare class MongodbRateLimiterStorageAdapter<TType> implements IRateLim
69
74
  */
70
75
  init(): Promise<void>;
71
76
  private upsert;
77
+ private _transaction;
72
78
  transaction<TValue>(fn: InvokableFn<[
73
79
  transaction: IRateLimiterStorageAdapterTransaction<TType>
74
80
  ], Promise<TValue>>): Promise<TValue>;
@@ -13,6 +13,7 @@ export class MongodbRateLimiterStorageAdapter {
13
13
  client;
14
14
  collection;
15
15
  serde;
16
+ enableTransactions;
16
17
  /**
17
18
  * @example
18
19
  * ```ts
@@ -34,10 +35,11 @@ export class MongodbRateLimiterStorageAdapter {
34
35
  * ```
35
36
  */
36
37
  constructor(settings) {
37
- const { client, collectionName = "rateLimiter", collectionSettings, database, serde, } = settings;
38
+ const { client, collectionName = "rateLimiter", collectionSettings, database, serde, enableTransactions = true, } = settings;
38
39
  this.client = client;
39
40
  this.collection = database.collection(collectionName, collectionSettings);
40
41
  this.serde = serde;
42
+ this.enableTransactions = enableTransactions;
41
43
  }
42
44
  /**
43
45
  * Removes the collection where the rate limiter keys are stored and all it's related indexes.
@@ -97,8 +99,18 @@ export class MongodbRateLimiterStorageAdapter {
97
99
  upsert: true,
98
100
  });
99
101
  }
102
+ async _transaction(trxFn) {
103
+ if (this.enableTransactions) {
104
+ return await this.client
105
+ .startSession()
106
+ .withTransaction(async () => {
107
+ return await trxFn();
108
+ });
109
+ }
110
+ return trxFn();
111
+ }
100
112
  async transaction(fn) {
101
- return await this.client.startSession().withTransaction(async () => {
113
+ return await this._transaction(async () => {
102
114
  return await fn({
103
115
  upsert: (key, state, exiration) => this.upsert(key, state, exiration),
104
116
  find: (key) => this.find(key),
@@ -1 +1 @@
1
- {"version":3,"file":"mongodb-rate-limiter-storage-adapter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodb-rate-limiter-storage-adapter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/adapters/mongodb-rate-limiter-storage-adapter/mongodb-rate-limiter-storage-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * @module RateLimiter
3
3
  */
4
- import { type EventListener, type IEventBus, type Unsubscribe } from "../../../../event-bus/contracts/_module.js";
4
+ import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
5
5
  import { type INamespace } from "../../../../namespace/contracts/_module.js";
6
- import { type IRateLimiter, type IRateLimiterAdapter, type IRateLimiterProvider, type RateLimiterEventMap, type RateLimiterProviderCreateSettings } from "../../../../rate-limiter/contracts/_module.js";
6
+ import { type IRateLimiter, type IRateLimiterAdapter, type IRateLimiterListenable, type IRateLimiterProvider, type RateLimiterProviderCreateSettings } from "../../../../rate-limiter/contracts/_module.js";
7
7
  import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
8
- import { type ITask } from "../../../../task/contracts/_module.js";
9
8
  import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
10
9
  /**
11
10
  *
@@ -125,11 +124,6 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
125
124
  */
126
125
  constructor(settings: RateLimiterProviderSettings);
127
126
  private registerToSerde;
128
- addListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
129
- removeListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
130
- listenOnce<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
131
- asTask<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName): ITask<RateLimiterEventMap[TEventName]>;
132
- subscribeOnce<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<Unsubscribe>;
133
- subscribe<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<Unsubscribe>;
127
+ get events(): IRateLimiterListenable;
134
128
  create(key: string, settings: RateLimiterProviderCreateSettings): IRateLimiter;
135
129
  }
@@ -12,7 +12,6 @@ import { RateLimiter } from "../../../../rate-limiter/implementations/derivables
12
12
  import {} from "../../../../serde/contracts/_module.js";
13
13
  import { NoOpSerdeAdapter } from "../../../../serde/implementations/adapters/_module.js";
14
14
  import { Serde } from "../../../../serde/implementations/derivables/_module.js";
15
- import {} from "../../../../task/contracts/_module.js";
16
15
  import { CORE, resolveOneOrMore, } from "../../../../utilities/_module.js";
17
16
  /**
18
17
  * The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
@@ -88,23 +87,8 @@ export class RateLimiterProvider {
88
87
  serde.registerCustom(transformer, CORE);
89
88
  }
90
89
  }
91
- addListener(eventName, listener) {
92
- return this.eventBus.addListener(eventName, listener);
93
- }
94
- removeListener(eventName, listener) {
95
- return this.eventBus.removeListener(eventName, listener);
96
- }
97
- listenOnce(eventName, listener) {
98
- return this.eventBus.listenOnce(eventName, listener);
99
- }
100
- asTask(eventName) {
101
- return this.eventBus.asTask(eventName);
102
- }
103
- subscribeOnce(eventName, listener) {
104
- return this.eventBus.subscribeOnce(eventName, listener);
105
- }
106
- subscribe(eventName, listener) {
107
- return this.eventBus.subscribe(eventName, listener);
90
+ get events() {
91
+ return this.eventBus;
108
92
  }
109
93
  create(key, settings) {
110
94
  const { errorPolicy = this.defaultErrorPolicy, onlyError = this.onlyError, limit, } = settings;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ import { type Invokable } from "../../../utilities/_module.js";
28
28
  * ).invoke(1, 0);
29
29
  * ```
30
30
  */
31
- export declare function dynamic<TParameters extends unknown[], TReturn, TContext extends HookContext>(dynamic: NoInfer<Invokable<[
31
+ export declare function dynamic<TParameters extends Array<unknown>, TReturn, TContext extends HookContext>(dynamic: NoInfer<Invokable<[
32
32
  arguments_: TParameters,
33
33
  context: TContext
34
34
  ], AsyncMiddleware<TParameters, TReturn, TContext>>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
@@ -29,4 +29,4 @@ import { type FallbackSettings } from "../../../resilience/middlewares/fallback/
29
29
  * console.log(await fetchData.invoke("URL_ENDPOINT"));
30
30
  * ```
31
31
  */
32
- export declare function fallback<TParameters extends unknown[], TReturn, TContext extends HookContext>(settings: NoInfer<FallbackSettings<TParameters, TReturn, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
32
+ export declare function fallback<TParameters extends Array<unknown>, TReturn, TContext extends HookContext>(settings: NoInfer<FallbackSettings<TParameters, TReturn, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
@@ -8,7 +8,7 @@ import { type Invokable, type AsyncLazyable, type ErrorPolicySettings } from "..
8
8
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
9
9
  * @group Middlewares
10
10
  */
11
- export type OnFallbackData<TParameters extends unknown[] = unknown[], TFallbackValue = unknown, TContext extends HookContext = HookContext> = {
11
+ export type OnFallbackData<TParameters extends Array<unknown> = Array<unknown>, TFallbackValue = unknown, TContext extends HookContext = HookContext> = {
12
12
  error: unknown;
13
13
  fallbackValue: TFallbackValue;
14
14
  args: TParameters;
@@ -19,13 +19,13 @@ export type OnFallbackData<TParameters extends unknown[] = unknown[], TFallbackV
19
19
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
20
20
  * @group Middlewares
21
21
  */
22
- export type OnFallback<TParameters extends unknown[] = unknown[], TFallbackValue = unknown, TContext extends HookContext = HookContext> = Invokable<[data: OnFallbackData<TParameters, TFallbackValue, TContext>]>;
22
+ export type OnFallback<TParameters extends Array<unknown> = Array<unknown>, TFallbackValue = unknown, TContext extends HookContext = HookContext> = Invokable<[data: OnFallbackData<TParameters, TFallbackValue, TContext>]>;
23
23
  /**
24
24
  *
25
25
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
26
26
  * @group Middlewares
27
27
  */
28
- export type FallbackCallbacks<TParameters extends unknown[] = unknown[], TReturn = unknown, TContext extends HookContext = HookContext> = {
28
+ export type FallbackCallbacks<TParameters extends Array<unknown> = Array<unknown>, TReturn = unknown, TContext extends HookContext = HookContext> = {
29
29
  /**
30
30
  * Callback {@link Invokable | `Invokable`} that will be called before fallback value is returned.
31
31
  */
@@ -36,6 +36,6 @@ export type FallbackCallbacks<TParameters extends unknown[] = unknown[], TReturn
36
36
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
37
37
  * @group Middlewares
38
38
  */
39
- export type FallbackSettings<TParameters extends unknown[] = unknown[], TReturn = unknown, TContext extends HookContext = HookContext> = FallbackCallbacks<TParameters, TReturn, TContext> & ErrorPolicySettings & {
39
+ export type FallbackSettings<TParameters extends Array<unknown> = Array<unknown>, TReturn = unknown, TContext extends HookContext = HookContext> = FallbackCallbacks<TParameters, TReturn, TContext> & ErrorPolicySettings & {
40
40
  fallbackValue: AsyncLazyable<TReturn>;
41
41
  };
@@ -43,4 +43,4 @@ import { type ObserveCallbacks } from "../../../resilience/middlewares/observe/o
43
43
  * // Will log the execution time and arguments
44
44
  * ```
45
45
  */
46
- export declare function observe<TParameters extends unknown[], TReturn, TContext extends HookContext>(settings: NoInfer<ObserveCallbacks<TParameters, TReturn, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
46
+ export declare function observe<TParameters extends Array<unknown>, TReturn, TContext extends HookContext>(settings: NoInfer<ObserveCallbacks<TParameters, TReturn, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
@@ -9,7 +9,7 @@ import { type Invokable } from "../../../utilities/_module.js";
9
9
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
10
10
  * @group Middlewares
11
11
  */
12
- export type OnObserveStartData<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
12
+ export type OnObserveStartData<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
13
13
  args: TParameters;
14
14
  context: TContext;
15
15
  };
@@ -18,13 +18,13 @@ export type OnObserveStartData<TParameters extends unknown[] = unknown[], TConte
18
18
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
19
19
  * @group Middlewares
20
20
  */
21
- export type OnObserveStart<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = Invokable<[data: OnObserveStartData<TParameters, TContext>]>;
21
+ export type OnObserveStart<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = Invokable<[data: OnObserveStartData<TParameters, TContext>]>;
22
22
  /**
23
23
  *
24
24
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
25
25
  * @group Middlewares
26
26
  */
27
- export type OnObserveSuccessData<TParameters extends unknown[] = unknown[], TReturn = unknown, TContext extends HookContext = HookContext> = {
27
+ export type OnObserveSuccessData<TParameters extends Array<unknown> = Array<unknown>, TReturn = unknown, TContext extends HookContext = HookContext> = {
28
28
  returnValue: TReturn;
29
29
  args: TParameters;
30
30
  context: TContext;
@@ -34,13 +34,13 @@ export type OnObserveSuccessData<TParameters extends unknown[] = unknown[], TRet
34
34
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
35
35
  * @group Middlewares
36
36
  */
37
- export type OnObserveSuccess<TParameters extends unknown[] = unknown[], TReturn = unknown, TContext extends HookContext = HookContext> = Invokable<[data: OnObserveSuccessData<TParameters, TReturn, TContext>]>;
37
+ export type OnObserveSuccess<TParameters extends Array<unknown> = Array<unknown>, TReturn = unknown, TContext extends HookContext = HookContext> = Invokable<[data: OnObserveSuccessData<TParameters, TReturn, TContext>]>;
38
38
  /**
39
39
  *
40
40
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
41
41
  * @group Middlewares
42
42
  */
43
- export type OnObserveErrorData<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
43
+ export type OnObserveErrorData<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
44
44
  error: unknown;
45
45
  args: TParameters;
46
46
  context: TContext;
@@ -59,7 +59,7 @@ export type OnObserveFinallyData<TContext extends HookContext = HookContext> = {
59
59
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
60
60
  * @group Middlewares
61
61
  */
62
- export type OnObserveError<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = Invokable<[data: OnObserveErrorData<TParameters, TContext>]>;
62
+ export type OnObserveError<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = Invokable<[data: OnObserveErrorData<TParameters, TContext>]>;
63
63
  /**
64
64
  *
65
65
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
@@ -71,7 +71,7 @@ export type OnObserveFinally<TContext extends HookContext = HookContext> = Invok
71
71
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
72
72
  * @group Middlewares
73
73
  */
74
- export type ObserveCallbacks<TParameters extends unknown[] = unknown[], TReturn = unknown, TContext extends HookContext = HookContext> = {
74
+ export type ObserveCallbacks<TParameters extends Array<unknown> = Array<unknown>, TReturn = unknown, TContext extends HookContext = HookContext> = {
75
75
  /**
76
76
  * Callback {@link Invokable | `Invokable`} that will be called when before the underlying {@link Invokable | `Invokable`} is called.
77
77
  */
@@ -38,4 +38,4 @@ import { type RetrySettings } from "../../../resilience/middlewares/retry/retry.
38
38
  * .invoke("URL");
39
39
  * ```
40
40
  */
41
- export declare function retry<TParameters extends unknown[], TReturn, TContext extends HookContext>(settings?: NoInfer<RetrySettings<TParameters, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
41
+ export declare function retry<TParameters extends Array<unknown>, TReturn, TContext extends HookContext>(settings?: NoInfer<RetrySettings<TParameters, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
@@ -1 +1 @@
1
- {"version":3,"file":"retry.middleware.js","sourceRoot":"","sources":["../../../../src/resilience/middlewares/retry/retry.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.middleware.js","sourceRoot":"","sources":["../../../../src/resilience/middlewares/retry/retry.middleware.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import { type Invokable, type ErrorPolicySettings } from "../../../utilities/_mo
10
10
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
11
11
  * @group Middlewares
12
12
  */
13
- export type OnRetryAttemptData<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
13
+ export type OnRetryAttemptData<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
14
14
  attempt: number;
15
15
  args: TParameters;
16
16
  context: TContext;
@@ -20,13 +20,13 @@ export type OnRetryAttemptData<TParameters extends unknown[] = unknown[], TConte
20
20
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
21
21
  * @group Middlewares
22
22
  */
23
- export type OnExecutionAttempt<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = Invokable<[data: OnRetryAttemptData<TParameters, TContext>]>;
23
+ export type OnExecutionAttempt<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = Invokable<[data: OnRetryAttemptData<TParameters, TContext>]>;
24
24
  /**
25
25
  *
26
26
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
27
27
  * @group Middlewares
28
28
  */
29
- export type OnRetryDelayData<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
29
+ export type OnRetryDelayData<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
30
30
  error: unknown;
31
31
  attempt: number;
32
32
  waitTime: ITimeSpan;
@@ -38,13 +38,13 @@ export type OnRetryDelayData<TParameters extends unknown[] = unknown[], TContext
38
38
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
39
39
  * @group Middlewares
40
40
  */
41
- export type OnRetryDelay<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = Invokable<[data: OnRetryDelayData<TParameters, TContext>]>;
41
+ export type OnRetryDelay<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = Invokable<[data: OnRetryDelayData<TParameters, TContext>]>;
42
42
  /**
43
43
  *
44
44
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
45
45
  * @group Middlewares
46
46
  */
47
- export type RetryCallbacks<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
47
+ export type RetryCallbacks<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
48
48
  /**
49
49
  * Callback {@link Invokable | `Invokable`} that will be called before execution attempt.
50
50
  */
@@ -59,7 +59,7 @@ export type RetryCallbacks<TParameters extends unknown[] = unknown[], TContext e
59
59
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
60
60
  * @group Middlewares
61
61
  */
62
- export type RetrySettings<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = RetryCallbacks<TParameters, TContext> & ErrorPolicySettings & {
62
+ export type RetrySettings<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = RetryCallbacks<TParameters, TContext> & ErrorPolicySettings & {
63
63
  /**
64
64
  * You can decide maximal times you can retry.
65
65
  * @default 4
@@ -38,4 +38,4 @@ import { type TimeoutSettings } from "../../../resilience/middlewares/timeout/ti
38
38
  * .invoke("URL");
39
39
  * ```
40
40
  */
41
- export declare function timeout<TParameters extends unknown[], TReturn, TContext extends HookContext>(settings?: NoInfer<TimeoutSettings<TParameters, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
41
+ export declare function timeout<TParameters extends Array<unknown>, TReturn, TContext extends HookContext>(settings?: NoInfer<TimeoutSettings<TParameters, TContext>>): AsyncMiddlewareFn<TParameters, TReturn, TContext>;
@@ -10,7 +10,7 @@ import { type Invokable } from "../../../utilities/_module.js";
10
10
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
11
11
  * @group Middlewares
12
12
  */
13
- export type OnTimeoutData<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
13
+ export type OnTimeoutData<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
14
14
  waitTime: TimeSpan;
15
15
  args: TParameters;
16
16
  context: TContext;
@@ -20,13 +20,13 @@ export type OnTimeoutData<TParameters extends unknown[] = unknown[], TContext ex
20
20
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
21
21
  * @group Middlewares
22
22
  */
23
- export type OnTimeout<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = Invokable<[data: OnTimeoutData<TParameters, TContext>]>;
23
+ export type OnTimeout<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = Invokable<[data: OnTimeoutData<TParameters, TContext>]>;
24
24
  /**
25
25
  *
26
26
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
27
27
  * @group Middlewares
28
28
  */
29
- export type TimeoutCallbacks<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = {
29
+ export type TimeoutCallbacks<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = {
30
30
  /**
31
31
  * Callback {@link Invokable | `Invokable`} that will be called before the timeout occurs.
32
32
  */
@@ -37,7 +37,7 @@ export type TimeoutCallbacks<TParameters extends unknown[] = unknown[], TContext
37
37
  * IMPORT_PATH: `"@daiso-tech/core/resilience"`
38
38
  * @group Middlewares
39
39
  */
40
- export type TimeoutSettings<TParameters extends unknown[] = unknown[], TContext extends HookContext = HookContext> = TimeoutCallbacks<TParameters, TContext> & {
40
+ export type TimeoutSettings<TParameters extends Array<unknown> = Array<unknown>, TContext extends HookContext = HookContext> = TimeoutCallbacks<TParameters, TContext> & {
41
41
  /**
42
42
  * The maximum time to wait before automatically aborting the executing function.
43
43
  *
@@ -15,7 +15,7 @@ export declare class TimeoutResilienceError extends Error {
15
15
  * @group Errors
16
16
  */
17
17
  export declare class RetryResilienceError extends AggregateError {
18
- constructor(errors: unknown[], message: string);
18
+ constructor(errors: Array<unknown>, message: string);
19
19
  }
20
20
  /**
21
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.errors.js","sourceRoot":"","sources":["../../src/resilience/resilience.errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC5C,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACpD,YAAY,MAAiB,EAAE,OAAe;QAC1C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAC1C,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,sBAAsB;CACzB,CAAC;AASX;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC7B,KAAc;IAEd,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"resilience.errors.js","sourceRoot":"","sources":["../../src/resilience/resilience.errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC5C,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACpD,YAAY,MAAsB,EAAE,OAAe;QAC/C,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAC1C,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,KAAK,EAAE,oBAAoB;IAC3B,OAAO,EAAE,sBAAsB;CACzB,CAAC;AASX;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC7B,KAAc;IAEd,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -40,7 +40,7 @@ export type IDatabaseSemaphoreTransaction = {
40
40
  * The `findSlots` returns the semaphore slot if it exists otherwise `null` is returned.
41
41
  *
42
42
  */
43
- findSlots(key: string): Promise<ISemaphoreSlotData[]>;
43
+ findSlots(key: string): Promise<Array<ISemaphoreSlotData>>;
44
44
  /**
45
45
  * The `upsertSemaphore` inserts a semaphore if it doesnt exist otherwise it will be updated.
46
46
  *
@@ -80,7 +80,7 @@ export type IDatabaseSemaphoreAdapter = {
80
80
  *
81
81
  * @returns Returns the slot expiration.
82
82
  */
83
- removeAllSlots(key: string): Promise<ISemaphoreSlotExpirationData[]>;
83
+ removeAllSlots(key: string): Promise<Array<ISemaphoreSlotExpirationData>>;
84
84
  /**
85
85
  * The `updateExpiration` updates the specified slot expiration as long as it is expireable and unexpired of the given semaphore.
86
86
  *
@@ -43,4 +43,6 @@ export type ISemaphoreProviderBase = {
43
43
  * IMPORT_PATH: `"@daiso-tech/core/semaphore/contracts"`
44
44
  * @group Contracts
45
45
  */
46
- export type ISemaphoreProvider = ISemaphoreListenable & ISemaphoreProviderBase;
46
+ export type ISemaphoreProvider = ISemaphoreProviderBase & {
47
+ readonly events: ISemaphoreListenable;
48
+ };
@@ -37,7 +37,7 @@ export type ISemaphoreUnacquiredState = {
37
37
  limit: number;
38
38
  freeSlotsCount: number;
39
39
  acquiredSlotsCount: number;
40
- acquiredSlots: string[];
40
+ acquiredSlots: Array<string>;
41
41
  };
42
42
  /**
43
43
  *
@@ -50,7 +50,7 @@ export type ISemaphoreAcquiredState = {
50
50
  remainingTime: TimeSpan | null;
51
51
  freeSlotsCount: number;
52
52
  acquiredSlotsCount: number;
53
- acquiredSlots: string[];
53
+ acquiredSlots: Array<string>;
54
54
  };
55
55
  /**
56
56
  *
@@ -60,7 +60,7 @@ export type ISemaphoreAcquiredState = {
60
60
  export type ISemaphoreLimitReachedState = {
61
61
  type: (typeof SEMAPHORE_STATE)["LIMIT_REACHED"];
62
62
  limit: number;
63
- acquiredSlots: string[];
63
+ acquiredSlots: Array<string>;
64
64
  };
65
65
  /**
66
66
  *
@@ -53,6 +53,15 @@ export type KyselySemaphoreAdapterSettings = {
53
53
  * @default true
54
54
  */
55
55
  shouldRemoveExpiredKeys?: boolean;
56
+ /**
57
+ * @default
58
+ * ```ts
59
+ * import { Transaction } from "kysely"
60
+ *
61
+ * !(settings.kysely instanceof Transaction)
62
+ * ```
63
+ */
64
+ enableTransactions?: boolean;
56
65
  };
57
66
  /**
58
67
  * To utilize the `KyselySemaphoreAdapter`, you must install the [`"kysely"`](https://www.npmjs.com/package/kysely) package and configure a `Kysely` class instance.
@@ -69,6 +78,7 @@ export declare class KyselySemaphoreAdapter implements IDatabaseSemaphoreAdapter
69
78
  private readonly shouldRemoveExpiredKeys;
70
79
  private intervalId;
71
80
  private readonly isMysql;
81
+ private readonly enableTransactions;
72
82
  /**
73
83
  * @example
74
84
  * ```ts
@@ -88,6 +98,7 @@ export declare class KyselySemaphoreAdapter implements IDatabaseSemaphoreAdapter
88
98
  * ```
89
99
  */
90
100
  constructor(settings: KyselySemaphoreAdapterSettings);
101
+ private _transaction;
91
102
  init(): Promise<void>;
92
103
  /**
93
104
  * Removes all related semaphore tables and their rows.
@@ -99,6 +110,6 @@ export declare class KyselySemaphoreAdapter implements IDatabaseSemaphoreAdapter
99
110
  methods: IDatabaseSemaphoreTransaction
100
111
  ], Promise<TValue>>): Promise<TValue>;
101
112
  removeSlot(key: string, slotId: string): Promise<ISemaphoreSlotExpirationData | null>;
102
- removeAllSlots(key: string): Promise<ISemaphoreSlotExpirationData[]>;
113
+ removeAllSlots(key: string): Promise<Array<ISemaphoreSlotExpirationData>>;
103
114
  updateExpiration(key: string, slotId: string, expiration: Date): Promise<number>;
104
115
  }