@daiso-tech/core 0.47.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 (35) hide show
  1. package/dist/cache/contracts/cache.contract.d.ts +3 -1
  2. package/dist/cache/implementations/derivables/cache/cache.d.ts +3 -32
  3. package/dist/cache/implementations/derivables/cache/cache.js +2 -41
  4. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  5. package/dist/cache/implementations/test-utilities/cache.test-suite.js +38 -38
  6. package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
  7. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +1 -1
  8. package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
  9. package/dist/circuit-breaker/contracts/circuit-breaker-provider.contract.d.ts +3 -1
  10. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +3 -9
  11. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +2 -18
  12. package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
  13. package/dist/lock/contracts/lock-provider.contract.d.ts +3 -1
  14. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +3 -33
  15. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +2 -42
  16. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  17. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js +58 -58
  18. package/dist/lock/implementations/test-utilities/lock-provider.test-suite.js.map +1 -1
  19. package/dist/rate-limiter/contracts/rate-limiter-provider.contract.d.ts +3 -1
  20. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +3 -9
  21. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +2 -18
  22. package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
  23. package/dist/semaphore/contracts/semaphore-provider.contract.d.ts +3 -1
  24. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +3 -33
  25. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +2 -42
  26. package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
  27. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js +57 -57
  28. package/dist/semaphore/implementations/test-utilities/semaphore-provider.test-suite.js.map +1 -1
  29. package/dist/shared-lock/contracts/shared-lock-provider.contract.d.ts +3 -1
  30. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +3 -33
  31. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +2 -42
  32. package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
  33. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js +117 -117
  34. package/dist/shared-lock/implementations/test-utilities/shared-lock-provider.test-suite.js.map +1 -1
  35. package/package.json +1 -1
@@ -46,4 +46,6 @@ export type ISharedLockProviderBase = {
46
46
  * IMPORT_PATH: `"@daiso-tech/core/shared-lock/contracts"`
47
47
  * @group Contracts
48
48
  */
49
- export type ISharedLockProvider = ISharedLockListenable & ISharedLockProviderBase;
49
+ export type ISharedLockProvider = ISharedLockProviderBase & {
50
+ readonly events: ISharedLockListenable;
51
+ };
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * @module SharedLock
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
6
  import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
7
- import { type ISharedLock, type SharedLockEventMap, type SharedLockProviderCreateSettings, type ISharedLockProvider, type SharedLockAdapterVariants } from "../../../../shared-lock/contracts/_module.js";
8
- import { type ITask } from "../../../../task/contracts/_module.js";
7
+ import { type ISharedLock, type SharedLockProviderCreateSettings, type ISharedLockProvider, type SharedLockAdapterVariants, type ISharedLockListenable } from "../../../../shared-lock/contracts/_module.js";
9
8
  import { type ITimeSpan } from "../../../../time-span/contracts/_module.js";
10
9
  import { type Invokable, type OneOrMore } from "../../../../utilities/_module.js";
11
10
  /**
@@ -157,36 +156,7 @@ export declare class SharedLockProvider implements ISharedLockProvider {
157
156
  */
158
157
  constructor(settings: SharedLockProviderSettings);
159
158
  private registerToSerde;
160
- /**
161
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
162
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
163
- */
164
- addListener<TEventName extends keyof SharedLockEventMap>(eventName: TEventName, listener: EventListener<SharedLockEventMap[TEventName]>): ITask<void>;
165
- /**
166
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
167
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
168
- */
169
- removeListener<TEventName extends keyof SharedLockEventMap>(eventName: TEventName, listener: EventListener<SharedLockEventMap[TEventName]>): ITask<void>;
170
- /**
171
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
172
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
173
- */
174
- listenOnce<TEventName extends keyof SharedLockEventMap>(eventName: TEventName, listener: EventListener<SharedLockEventMap[TEventName]>): ITask<void>;
175
- /**
176
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
177
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
178
- */
179
- asTask<TEventName extends keyof SharedLockEventMap>(eventName: TEventName): ITask<SharedLockEventMap[TEventName]>;
180
- /**
181
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
182
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
183
- */
184
- subscribeOnce<TEventName extends keyof SharedLockEventMap>(eventName: TEventName, listener: EventListener<SharedLockEventMap[TEventName]>): ITask<Unsubscribe>;
185
- /**
186
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
187
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
188
- */
189
- subscribe<TEventName extends keyof SharedLockEventMap>(eventName: TEventName, listener: EventListener<SharedLockEventMap[TEventName]>): ITask<Unsubscribe>;
159
+ get events(): ISharedLockListenable;
190
160
  /**
191
161
  * @example
192
162
  * ```ts
@@ -14,7 +14,6 @@ import {} from "../../../../shared-lock/contracts/_module.js";
14
14
  import { resolveSharedLockAdapter } from "../../../../shared-lock/implementations/derivables/shared-lock-provider/resolve-shared-lock-adapter.js";
15
15
  import { SharedLockSerdeTransformer } from "../../../../shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js";
16
16
  import { SharedLock } from "../../../../shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js";
17
- import {} from "../../../../task/contracts/_module.js";
18
17
  import {} from "../../../../time-span/contracts/_module.js";
19
18
  import { TimeSpan } from "../../../../time-span/implementations/_module.js";
20
19
  import { CORE, resolveOneOrMore, callInvokable, } from "../../../../utilities/_module.js";
@@ -100,47 +99,8 @@ export class SharedLockProvider {
100
99
  serde.registerCustom(transformer, CORE);
101
100
  }
102
101
  }
103
- /**
104
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
105
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
106
- */
107
- addListener(eventName, listener) {
108
- return this.eventBus.addListener(eventName, listener);
109
- }
110
- /**
111
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
112
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
113
- */
114
- removeListener(eventName, listener) {
115
- return this.eventBus.removeListener(eventName, listener);
116
- }
117
- /**
118
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
119
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
120
- */
121
- listenOnce(eventName, listener) {
122
- return this.eventBus.listenOnce(eventName, listener);
123
- }
124
- /**
125
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
126
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
127
- */
128
- asTask(eventName) {
129
- return this.eventBus.asTask(eventName);
130
- }
131
- /**
132
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
133
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
134
- */
135
- subscribeOnce(eventName, listener) {
136
- return this.eventBus.subscribeOnce(eventName, listener);
137
- }
138
- /**
139
- * You can listen to the following {@link SharedLockEventMap | `SharedLockEventMap`} of all {@link ISharedLock | `ISharedLock`} instances created by the {@link ISharedLockProvider | `ISharedLockProvider`}.
140
- * To understand how this method works, refer to {@link IEventListenable | `IEventListenable `}.
141
- */
142
- subscribe(eventName, listener) {
143
- return this.eventBus.subscribe(eventName, listener);
102
+ get events() {
103
+ return this.eventBus;
144
104
  }
145
105
  /**
146
106
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"shared-lock-provider.js","sourceRoot":"","sources":["../../../../../src/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-lock-provider.js","sourceRoot":"","sources":["../../../../../src/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.ts"],"names":[],"mappings":"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"}