@daiso-tech/core 0.44.0 → 0.46.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.
- package/README.md +50 -41
- package/dist/cache/contracts/cache.errors.d.ts +3 -3
- package/dist/cache/contracts/cache.errors.js +1 -1
- package/dist/cache/contracts/cache.errors.js.map +1 -1
- package/dist/cache/contracts/cache.events.d.ts +8 -8
- package/dist/cache/contracts/cache.events.js +1 -1
- package/dist/cache/contracts/cache.events.js.map +1 -1
- package/dist/cache/contracts/database-cache-adapter.contract.d.ts +10 -48
- package/dist/cache/contracts/database-cache-adapter.contract.js +1 -1
- package/dist/cache/contracts/database-cache-adapter.contract.js.map +1 -1
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +24 -19
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +138 -134
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +2 -8
- package/dist/cache/implementations/derivables/cache/cache.js +3 -8
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/database-cache-adapter.d.ts +3 -1
- package/dist/cache/implementations/derivables/cache/database-cache-adapter.js +49 -64
- package/dist/cache/implementations/derivables/cache/database-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js +5 -10
- package/dist/cache/implementations/derivables/cache/is-database-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +2 -2
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +2 -4
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js +240 -238
- package/dist/cache/implementations/test-utilities/cache-adapter.test-suite.js.map +1 -1
- package/dist/cache/implementations/test-utilities/cache.test-suite.js +141 -36
- package/dist/cache/implementations/test-utilities/cache.test-suite.js.map +1 -1
- package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.d.ts +0 -1
- package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js +215 -630
- package/dist/cache/implementations/test-utilities/database-cache-dapter.test-suite.js.map +1 -1
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.d.ts +3 -3
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.js +1 -1
- package/dist/circuit-breaker/contracts/circuit-breaker.errors.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.d.ts +11 -8
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js +3 -8
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-provider.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker-serde-transformer.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.d.ts +4 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js +2 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/circuit-breaker-provider-factory.js.map +1 -1
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.d.ts +2 -2
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js +2 -4
- package/dist/circuit-breaker/implementations/derivables/circuit-breaker-provider-factory/database-circuit-breaker-provider-factory.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +2 -8
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +3 -8
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +2 -2
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +2 -4
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/lock/contracts/lock.errors.d.ts +4 -4
- package/dist/lock/contracts/lock.errors.js +1 -1
- package/dist/lock/contracts/lock.errors.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +11 -8
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +3 -8
- package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +2 -2
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +4 -4
- package/dist/lock/implementations/derivables/lock-provider/lock.js +1 -1
- package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.d.ts +2 -2
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +2 -4
- package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
- package/dist/namespace/contracts/_module-exports.d.ts +1 -0
- package/dist/namespace/contracts/_module-exports.js +2 -0
- package/dist/namespace/contracts/_module-exports.js.map +1 -0
- package/dist/namespace/contracts/_module.d.ts +1 -0
- package/dist/namespace/contracts/_module.js +2 -0
- package/dist/namespace/contracts/_module.js.map +1 -0
- package/dist/namespace/contracts/namespace.contract.d.ts +17 -0
- package/dist/namespace/contracts/namespace.contract.js +5 -0
- package/dist/namespace/contracts/namespace.contract.js.map +1 -0
- package/dist/namespace/implementations/_module-exports.d.ts +2 -0
- package/dist/namespace/implementations/_module-exports.js +3 -0
- package/dist/namespace/implementations/_module-exports.js.map +1 -0
- package/dist/namespace/implementations/_module.d.ts +2 -0
- package/dist/namespace/implementations/_module.js +3 -0
- package/dist/namespace/implementations/_module.js.map +1 -0
- package/dist/namespace/{namespace.d.ts → implementations/namespace.d.ts} +18 -33
- package/dist/namespace/{namespace.js → implementations/namespace.js} +20 -4
- package/dist/namespace/implementations/namespace.js.map +1 -0
- package/dist/namespace/implementations/no-op-namespace.d.ts +14 -0
- package/dist/namespace/implementations/no-op-namespace.js +34 -0
- package/dist/namespace/implementations/no-op-namespace.js.map +1 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.d.ts +21 -9
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js +30 -10
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.d.ts +38 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js +75 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js.map +1 -0
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts +21 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js +25 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.d.ts +2 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js +2 -4
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.js.map +1 -1
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.d.ts +2 -2
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js +2 -4
- package/dist/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.js.map +1 -1
- package/dist/semaphore/contracts/semaphore.errors.d.ts +4 -4
- package/dist/semaphore/contracts/semaphore.errors.js +1 -1
- package/dist/semaphore/contracts/semaphore.errors.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts +11 -8
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js +3 -8
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.d.ts +2 -2
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-serde-transformer.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.d.ts +4 -4
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore.js.map +1 -1
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.d.ts +2 -2
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js +2 -4
- package/dist/semaphore/implementations/derivables/semaphore-provider-factory/semaphore-provider-factory.js.map +1 -1
- package/dist/shared-lock/contracts/shared-lock.errors.d.ts +7 -7
- package/dist/shared-lock/contracts/shared-lock.errors.js +1 -1
- package/dist/shared-lock/contracts/shared-lock.errors.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.d.ts +11 -8
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js +3 -8
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-provider.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.d.ts +2 -2
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock-serde-transformer.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.d.ts +4 -4
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider/shared-lock.js.map +1 -1
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.d.ts +2 -2
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js +2 -4
- package/dist/shared-lock/implementations/derivables/shared-lock-provider-factory/shared-lock-provider-factory.js.map +1 -1
- package/dist/task/implementations/task.d.ts +1 -1
- package/dist/task/implementations/task.js +1 -1
- package/dist/task/implementations/task.js.map +1 -1
- package/dist/time-span/implementations/time-span.d.ts +17 -0
- package/dist/time-span/implementations/time-span.js +27 -1
- package/dist/time-span/implementations/time-span.js.map +1 -1
- package/dist/utilities/functions/error-policy.d.ts +1 -1
- package/dist/utilities/functions/error-policy.js +1 -2
- package/dist/utilities/functions/error-policy.js.map +1 -1
- package/package.json +48 -65
- package/dist/namespace/_module-exports.d.ts +0 -1
- package/dist/namespace/_module-exports.js +0 -2
- package/dist/namespace/_module-exports.js.map +0 -1
- package/dist/namespace/_module.d.ts +0 -1
- package/dist/namespace/_module.js +0 -2
- package/dist/namespace/_module.js.map +0 -1
- package/dist/namespace/namespace.js.map +0 -1
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import { type EventListener, type IEventBus, type Unsubscribe } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import {
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { type IRateLimiter, type IRateLimiterAdapter, type IRateLimiterProvider, type RateLimiterEventMap, type RateLimiterProviderCreateSettings } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
|
|
7
8
|
import { type ITask } from "../../../../task/contracts/_module.js";
|
|
8
|
-
import { type ErrorPolicy } from "../../../../utilities/_module.js";
|
|
9
|
+
import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
|
|
9
10
|
/**
|
|
10
11
|
*
|
|
11
12
|
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
@@ -20,7 +21,7 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
20
21
|
* new Namespace("@rate-limiter")
|
|
21
22
|
* ```
|
|
22
23
|
*/
|
|
23
|
-
namespace?:
|
|
24
|
+
namespace?: INamespace;
|
|
24
25
|
/**
|
|
25
26
|
* @default
|
|
26
27
|
* ```ts
|
|
@@ -53,6 +54,20 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
53
54
|
* @default true
|
|
54
55
|
*/
|
|
55
56
|
enableAsyncTracking?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* @default
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { Serde } from "@daiso-tech/serde";
|
|
61
|
+
* import { NoOpSerdeAdapter } from "@daiso-tech/serde/no-op-serde-adapter";
|
|
62
|
+
*
|
|
63
|
+
* new Serde(new NoOpSerdeAdapter())
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
serde?: OneOrMore<ISerderRegister>;
|
|
67
|
+
/**
|
|
68
|
+
* @default ""
|
|
69
|
+
*/
|
|
70
|
+
serdeTransformerName?: string;
|
|
56
71
|
};
|
|
57
72
|
/**
|
|
58
73
|
*
|
|
@@ -62,12 +77,6 @@ export type RateLimiterProviderSettingsBase = {
|
|
|
62
77
|
export type RateLimiterProviderSettings = RateLimiterProviderSettingsBase & {
|
|
63
78
|
adapter: IRateLimiterAdapter;
|
|
64
79
|
};
|
|
65
|
-
/**
|
|
66
|
-
*
|
|
67
|
-
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
68
|
-
* @group Derivables
|
|
69
|
-
*/
|
|
70
|
-
export declare const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE: Namespace;
|
|
71
80
|
/**
|
|
72
81
|
* The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
|
|
73
82
|
*
|
|
@@ -81,6 +90,8 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
|
|
|
81
90
|
private readonly onlyError;
|
|
82
91
|
private readonly defaultErrorPolicy;
|
|
83
92
|
private readonly enableAsyncTracking;
|
|
93
|
+
private readonly serde;
|
|
94
|
+
private readonly serdeTransformerName;
|
|
84
95
|
/**
|
|
85
96
|
* @example
|
|
86
97
|
* ```ts
|
|
@@ -113,6 +124,7 @@ export declare class RateLimiterProvider implements IRateLimiterProvider {
|
|
|
113
124
|
* ```
|
|
114
125
|
*/
|
|
115
126
|
constructor(settings: RateLimiterProviderSettings);
|
|
127
|
+
private registerToSerde;
|
|
116
128
|
addListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
|
117
129
|
removeListener<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
|
118
130
|
listenOnce<TEventName extends keyof RateLimiterEventMap>(eventName: TEventName, listener: EventListener<RateLimiterEventMap[TEventName]>): ITask<void>;
|
package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.js
CHANGED
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
5
|
import { NoOpEventBusAdapter } from "../../../../event-bus/implementations/adapters/_module.js";
|
|
6
6
|
import { EventBus } from "../../../../event-bus/implementations/derivables/_module.js";
|
|
7
|
-
import {
|
|
7
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
8
|
+
import { NoOpNamespace } from "../../../../namespace/implementations/_module.js";
|
|
8
9
|
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
10
|
+
import { RateLimiterSerdeTransformer } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.js";
|
|
9
11
|
import { RateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
12
|
+
import {} from "../../../../serde/contracts/_module.js";
|
|
13
|
+
import { NoOpSerdeAdapter } from "../../../../serde/implementations/adapters/_module.js";
|
|
14
|
+
import { Serde } from "../../../../serde/implementations/derivables/_module.js";
|
|
10
15
|
import {} from "../../../../task/contracts/_module.js";
|
|
11
|
-
import {} from "../../../../utilities/_module.js";
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* IMPORT_PATH: `"@daiso-tech/core/rate-limiter"`
|
|
15
|
-
* @group Derivables
|
|
16
|
-
*/
|
|
17
|
-
export const DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE = new Namespace("@rate-limiter");
|
|
16
|
+
import { CORE, resolveOneOrMore, } from "../../../../utilities/_module.js";
|
|
18
17
|
/**
|
|
19
18
|
* The `RateLimiterProvider` class can be derived from any {@link IRateLimiterAdapter | `IRateLimiterAdapter`}.
|
|
20
19
|
*
|
|
@@ -28,6 +27,8 @@ export class RateLimiterProvider {
|
|
|
28
27
|
onlyError;
|
|
29
28
|
defaultErrorPolicy;
|
|
30
29
|
enableAsyncTracking;
|
|
30
|
+
serde;
|
|
31
|
+
serdeTransformerName;
|
|
31
32
|
/**
|
|
32
33
|
* @example
|
|
33
34
|
* ```ts
|
|
@@ -60,15 +61,32 @@ export class RateLimiterProvider {
|
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
62
63
|
constructor(settings) {
|
|
63
|
-
const { enableAsyncTracking = true, namespace =
|
|
64
|
+
const { enableAsyncTracking = true, namespace = new NoOpNamespace(), eventBus = new EventBus({
|
|
64
65
|
adapter: new NoOpEventBusAdapter(),
|
|
65
|
-
}), adapter, onlyError = false, defaultErrorPolicy = () => true, } = settings;
|
|
66
|
+
}), adapter, onlyError = false, defaultErrorPolicy = () => true, serde = new Serde(new NoOpSerdeAdapter()), serdeTransformerName = "", } = settings;
|
|
67
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
66
68
|
this.enableAsyncTracking = enableAsyncTracking;
|
|
67
69
|
this.namespace = namespace;
|
|
68
70
|
this.eventBus = eventBus;
|
|
69
71
|
this.adapter = adapter;
|
|
70
72
|
this.onlyError = onlyError;
|
|
71
73
|
this.defaultErrorPolicy = defaultErrorPolicy;
|
|
74
|
+
this.serde = serde;
|
|
75
|
+
this.registerToSerde();
|
|
76
|
+
}
|
|
77
|
+
registerToSerde() {
|
|
78
|
+
const transformer = new RateLimiterSerdeTransformer({
|
|
79
|
+
enableAsyncTracking: this.enableAsyncTracking,
|
|
80
|
+
namespace: this.namespace,
|
|
81
|
+
eventBus: this.eventBus,
|
|
82
|
+
adapter: this.adapter,
|
|
83
|
+
onlyError: this.onlyError,
|
|
84
|
+
errorPolicy: this.defaultErrorPolicy,
|
|
85
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
86
|
+
});
|
|
87
|
+
for (const serde of resolveOneOrMore(this.serde)) {
|
|
88
|
+
serde.registerCustom(transformer, CORE);
|
|
89
|
+
}
|
|
72
90
|
}
|
|
73
91
|
addListener(eventName, listener) {
|
|
74
92
|
return this.eventBus.addListener(eventName, listener);
|
|
@@ -98,6 +116,8 @@ export class RateLimiterProvider {
|
|
|
98
116
|
key: this.namespace.create(key),
|
|
99
117
|
errorPolicy,
|
|
100
118
|
onlyError,
|
|
119
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
120
|
+
namespace: this.namespace,
|
|
101
121
|
});
|
|
102
122
|
}
|
|
103
123
|
}
|
|
@@ -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":"AAAA;;GAEG;AAEH,OAAO,EAIN,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rate-limiter-provider.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAIN,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,EAAmB,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAMN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,mGAAmG,CAAC;AAChJ,OAAO,EAAE,WAAW,EAAE,MAAM,iFAAiF,CAAC;AAC9G,OAAO,EAAwB,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,+CAA+C,CAAC;AACtE,OAAO,EAAc,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACH,IAAI,EACJ,gBAAgB,GAGnB,MAAM,wBAAwB,CAAC;AAgFhC;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACX,SAAS,CAAa;IACtB,QAAQ,CAAiC;IACzC,OAAO,CAAsB;IAC7B,SAAS,CAAU;IACnB,kBAAkB,CAAc;IAChC,mBAAmB,CAAU;IAC7B,KAAK,CAA6B;IAClC,oBAAoB,CAAS;IAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,QAAqC;QAC7C,MAAM,EACF,mBAAmB,GAAG,IAAI,EAC1B,SAAS,GAAG,IAAI,aAAa,EAAE,EAC/B,QAAQ,GAAG,IAAI,QAAQ,CAAC;YACpB,OAAO,EAAE,IAAI,mBAAmB,EAAE;SACrC,CAAC,EACF,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,kBAAkB,GAAG,GAAG,EAAE,CAAC,IAAI,EAC/B,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,EACzC,oBAAoB,GAAG,EAAE,GAC5B,GAAG,QAAQ,CAAC;QAEb,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEO,eAAe;QACnB,MAAM,WAAW,GAAG,IAAI,2BAA2B,CAAC;YAChD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,kBAAkB;YACpC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAClD,CAAC,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;IACL,CAAC;IAED,WAAW,CACP,SAAqB,EACrB,QAAwD;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CACV,SAAqB,EACrB,QAAwD;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU,CACN,SAAqB,EACrB,QAAwD;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CACF,SAAqB;QAErB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CACT,SAAqB,EACrB,QAAwD;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CACL,SAAqB,EACrB,QAAwD;QAExD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CACF,GAAW,EACX,QAA2C;QAE3C,MAAM,EACF,WAAW,GAAG,IAAI,CAAC,kBAAkB,EACrC,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,KAAK,GACR,GAAG,QAAQ,CAAC;QACb,OAAO,IAAI,WAAW,CAAC;YACnB,KAAK;YACL,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,eAAe,EAAE,IAAI,CAAC,QAAQ;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YAC/B,WAAW;YACX,SAAS;YACT,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module RateLimiter
|
|
3
|
+
*/
|
|
4
|
+
import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
|
+
import { type IRateLimiterAdapter, type RateLimiterEventMap } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { RateLimiter, type ISerializedRateLimiter } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
8
|
+
import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js";
|
|
9
|
+
import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js";
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export type RateLimiterSerdeTransformerSettings = {
|
|
14
|
+
adapter: IRateLimiterAdapter;
|
|
15
|
+
namespace: INamespace;
|
|
16
|
+
errorPolicy: ErrorPolicy;
|
|
17
|
+
onlyError: boolean;
|
|
18
|
+
eventBus: IEventBus<RateLimiterEventMap>;
|
|
19
|
+
serdeTransformerName: string;
|
|
20
|
+
enableAsyncTracking: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare class RateLimiterSerdeTransformer implements ISerdeTransformer<RateLimiter, ISerializedRateLimiter> {
|
|
26
|
+
private readonly adapter;
|
|
27
|
+
private readonly namespace;
|
|
28
|
+
private readonly errorPolicy;
|
|
29
|
+
private readonly eventBus;
|
|
30
|
+
private readonly serdeTransformerName;
|
|
31
|
+
private readonly enableAsyncTracking;
|
|
32
|
+
private readonly onlyError;
|
|
33
|
+
constructor(settings: RateLimiterSerdeTransformerSettings);
|
|
34
|
+
get name(): OneOrMore<string>;
|
|
35
|
+
isApplicable(value: unknown): value is RateLimiter;
|
|
36
|
+
deserialize(serializedValue: ISerializedRateLimiter): RateLimiter;
|
|
37
|
+
serialize(deserializedValue: RateLimiter): ISerializedRateLimiter;
|
|
38
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module RateLimiter
|
|
3
|
+
*/
|
|
4
|
+
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
6
|
+
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
+
import { RateLimiter, } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js";
|
|
8
|
+
import {} from "../../../../serde/contracts/_module.js";
|
|
9
|
+
import { getConstructorName, } from "../../../../utilities/_module.js";
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export class RateLimiterSerdeTransformer {
|
|
14
|
+
adapter;
|
|
15
|
+
namespace;
|
|
16
|
+
errorPolicy;
|
|
17
|
+
eventBus;
|
|
18
|
+
serdeTransformerName;
|
|
19
|
+
enableAsyncTracking;
|
|
20
|
+
onlyError;
|
|
21
|
+
constructor(settings) {
|
|
22
|
+
const { adapter, namespace, eventBus, serdeTransformerName, enableAsyncTracking, errorPolicy, onlyError, } = settings;
|
|
23
|
+
this.onlyError = onlyError;
|
|
24
|
+
this.enableAsyncTracking = enableAsyncTracking;
|
|
25
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
26
|
+
this.adapter = adapter;
|
|
27
|
+
this.namespace = namespace;
|
|
28
|
+
this.eventBus = eventBus;
|
|
29
|
+
this.errorPolicy = errorPolicy;
|
|
30
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
31
|
+
}
|
|
32
|
+
get name() {
|
|
33
|
+
return [
|
|
34
|
+
"rateLimiter",
|
|
35
|
+
this.serdeTransformerName,
|
|
36
|
+
getConstructorName(this.adapter),
|
|
37
|
+
this.namespace.toString(),
|
|
38
|
+
].filter((str) => str !== "");
|
|
39
|
+
}
|
|
40
|
+
isApplicable(value) {
|
|
41
|
+
const isRateLimiter = value instanceof RateLimiter &&
|
|
42
|
+
getConstructorName(value) === RateLimiter.name;
|
|
43
|
+
if (!isRateLimiter) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
const isSerdTransformerNameMathcing = this.serdeTransformerName ===
|
|
47
|
+
value._internal_getSerdeTransformerName();
|
|
48
|
+
const isNamespaceMatching = this.namespace.toString() ===
|
|
49
|
+
value._internal_getNamespace().toString();
|
|
50
|
+
const isAdapterMatching = getConstructorName(this.adapter) ===
|
|
51
|
+
getConstructorName(value._internal_getAdapter());
|
|
52
|
+
return (isSerdTransformerNameMathcing &&
|
|
53
|
+
isNamespaceMatching &&
|
|
54
|
+
isAdapterMatching);
|
|
55
|
+
}
|
|
56
|
+
deserialize(serializedValue) {
|
|
57
|
+
const { key, limit } = serializedValue;
|
|
58
|
+
const keyObj = this.namespace.create(key);
|
|
59
|
+
return new RateLimiter({
|
|
60
|
+
enableAsyncTracking: this.enableAsyncTracking,
|
|
61
|
+
eventDispatcher: this.eventBus,
|
|
62
|
+
adapter: this.adapter,
|
|
63
|
+
key: keyObj,
|
|
64
|
+
limit,
|
|
65
|
+
onlyError: this.onlyError,
|
|
66
|
+
errorPolicy: this.errorPolicy,
|
|
67
|
+
serdeTransformerName: this.serdeTransformerName,
|
|
68
|
+
namespace: this.namespace,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
serialize(deserializedValue) {
|
|
72
|
+
return RateLimiter._internal_serialize(deserializedValue);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=rate-limiter-serde-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter-serde-transformer.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter-serde-transformer.ts"],"names":[],"mappings":"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"}
|
package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import { type IEventDispatcher } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import { type
|
|
5
|
+
import { type IKey, type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { type IRateLimiter, type IRateLimiterAdapter, type RateLimiterEventMap, type RateLimiterState } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
7
|
import { type ITask } from "../../../../task/contracts/_module.js";
|
|
8
8
|
import { type AsyncLazy, type ErrorPolicy } from "../../../../utilities/_module.js";
|
|
@@ -14,14 +14,28 @@ export type RateLimiterSettings = {
|
|
|
14
14
|
enableAsyncTracking: boolean;
|
|
15
15
|
eventDispatcher: IEventDispatcher<RateLimiterEventMap>;
|
|
16
16
|
adapter: IRateLimiterAdapter;
|
|
17
|
-
key:
|
|
17
|
+
key: IKey;
|
|
18
18
|
errorPolicy: ErrorPolicy;
|
|
19
19
|
onlyError: boolean;
|
|
20
|
+
namespace: INamespace;
|
|
21
|
+
serdeTransformerName: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export type ISerializedRateLimiter = {
|
|
27
|
+
version: "1";
|
|
28
|
+
key: string;
|
|
29
|
+
limit: number;
|
|
20
30
|
};
|
|
21
31
|
/**
|
|
22
32
|
* @internal
|
|
23
33
|
*/
|
|
24
34
|
export declare class RateLimiter implements IRateLimiter {
|
|
35
|
+
/**
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
static _internal_serialize(deserializedValue: RateLimiter): ISerializedRateLimiter;
|
|
25
39
|
private readonly _key;
|
|
26
40
|
private readonly _limit;
|
|
27
41
|
private readonly errorPolicy;
|
|
@@ -29,7 +43,12 @@ export declare class RateLimiter implements IRateLimiter {
|
|
|
29
43
|
private readonly adapter;
|
|
30
44
|
private readonly eventDispatcher;
|
|
31
45
|
private readonly enableAsyncTracking;
|
|
46
|
+
private readonly serdeTransformerName;
|
|
47
|
+
private readonly namespace;
|
|
32
48
|
constructor(settings: RateLimiterSettings);
|
|
49
|
+
_internal_getNamespace(): INamespace;
|
|
50
|
+
_internal_getSerdeTransformerName(): string;
|
|
51
|
+
_internal_getAdapter(): IRateLimiterAdapter;
|
|
33
52
|
private toRateLimiterState;
|
|
34
53
|
getState(): ITask<RateLimiterState>;
|
|
35
54
|
get key(): string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import {} from "../../../../namespace/_module.js";
|
|
5
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { BlockedRateLimiterError, RATE_LIMITER_EVENTS, RATE_LIMITER_STATE, } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
7
|
import {} from "../../../../task/contracts/_module.js";
|
|
8
8
|
import { Task } from "../../../../task/implementations/_module.js";
|
|
@@ -11,6 +11,16 @@ import { callErrorPolicyOnThrow, resolveAsyncLazyable, } from "../../../../utili
|
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
13
|
export class RateLimiter {
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
static _internal_serialize(deserializedValue) {
|
|
18
|
+
return {
|
|
19
|
+
version: "1",
|
|
20
|
+
key: deserializedValue._key.get(),
|
|
21
|
+
limit: deserializedValue._limit,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
14
24
|
_key;
|
|
15
25
|
_limit;
|
|
16
26
|
errorPolicy;
|
|
@@ -18,8 +28,12 @@ export class RateLimiter {
|
|
|
18
28
|
adapter;
|
|
19
29
|
eventDispatcher;
|
|
20
30
|
enableAsyncTracking;
|
|
31
|
+
serdeTransformerName;
|
|
32
|
+
namespace;
|
|
21
33
|
constructor(settings) {
|
|
22
|
-
const { limit, enableAsyncTracking, eventDispatcher, key, errorPolicy, onlyError, adapter, } = settings;
|
|
34
|
+
const { limit, enableAsyncTracking, eventDispatcher, key, errorPolicy, onlyError, adapter, serdeTransformerName, namespace, } = settings;
|
|
35
|
+
this.namespace = namespace;
|
|
36
|
+
this.serdeTransformerName = serdeTransformerName;
|
|
23
37
|
this._limit = limit;
|
|
24
38
|
this.enableAsyncTracking = enableAsyncTracking;
|
|
25
39
|
this.eventDispatcher = eventDispatcher;
|
|
@@ -28,6 +42,15 @@ export class RateLimiter {
|
|
|
28
42
|
this.onlyError = onlyError;
|
|
29
43
|
this.adapter = adapter;
|
|
30
44
|
}
|
|
45
|
+
_internal_getNamespace() {
|
|
46
|
+
return this.namespace;
|
|
47
|
+
}
|
|
48
|
+
_internal_getSerdeTransformerName() {
|
|
49
|
+
return this.serdeTransformerName;
|
|
50
|
+
}
|
|
51
|
+
_internal_getAdapter() {
|
|
52
|
+
return this.adapter;
|
|
53
|
+
}
|
|
31
54
|
toRateLimiterState(state) {
|
|
32
55
|
if (state === null) {
|
|
33
56
|
return {
|
package/dist/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAyB,MAAM,kCAAkC,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider/rate-limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type BackoffPolicy } from "../../../../backoff-policies/_module.js";
|
|
5
5
|
import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
|
|
6
|
-
import { type
|
|
6
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
7
7
|
import { type IRateLimiterProviderFactory, type IRateLimiterProvider, type IRateLimiterStorageAdapter, type IRateLimiterPolicy } from "../../../../rate-limiter/contracts/_module.js";
|
|
8
8
|
import { type RateLimiterProviderSettingsBase } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/_module.js";
|
|
9
9
|
import { type ErrorPolicy } from "../../../../utilities/_module.js";
|
|
@@ -79,7 +79,7 @@ export declare class DatabaseRateLimiterProviderFactory<TAdapters extends string
|
|
|
79
79
|
* ```
|
|
80
80
|
*/
|
|
81
81
|
constructor(settings: DatabaseRateLimiterProviderFactorySettings<TAdapters>);
|
|
82
|
-
setNamespace(namespace:
|
|
82
|
+
setNamespace(namespace: INamespace): DatabaseRateLimiterProviderFactory<TAdapters>;
|
|
83
83
|
setEventBus(eventBus: IEventBus): DatabaseRateLimiterProviderFactory<TAdapters>;
|
|
84
84
|
setOnlyError(onlyError?: boolean): DatabaseRateLimiterProviderFactory<TAdapters>;
|
|
85
85
|
setDefaultErrorPolicy(errorPolicy: ErrorPolicy): DatabaseRateLimiterProviderFactory<TAdapters>;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import {} from "../../../../backoff-policies/_module.js";
|
|
5
5
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
6
|
-
import {} from "../../../../namespace/_module.js";
|
|
6
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
7
7
|
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
8
8
|
import { DatabaseRateLimiterAdapter } from "../../../../rate-limiter/implementations/adapters/database-rate-limiter-adapter/_module.js";
|
|
9
|
-
import { RateLimiterProvider,
|
|
9
|
+
import { RateLimiterProvider, } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/_module.js";
|
|
10
10
|
import {
|
|
11
11
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
12
|
UnregisteredAdapterError,
|
|
@@ -143,13 +143,11 @@ export class DatabaseRateLimiterProviderFactory {
|
|
|
143
143
|
if (adapter === undefined) {
|
|
144
144
|
throw new UnregisteredAdapterError(adapterName);
|
|
145
145
|
}
|
|
146
|
-
const { namespace = DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE } = this.settings;
|
|
147
146
|
return new RateLimiterProvider({
|
|
148
147
|
...this.settings,
|
|
149
148
|
adapter: new DatabaseRateLimiterAdapter({
|
|
150
149
|
adapter,
|
|
151
150
|
}),
|
|
152
|
-
namespace: namespace.appendRoot(adapterName),
|
|
153
151
|
});
|
|
154
152
|
}
|
|
155
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database-rate-limiter-provider-factory.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"database-rate-limiter-provider-factory.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider-factory/database-rate-limiter-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAsB,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAmB,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAKN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,kFAAkF,CAAC;AAC9H,OAAO,EACH,mBAAmB,GAEtB,MAAM,4EAA4E,CAAC;AACpF,OAAO;AACH,6DAA6D;AAC7D,wBAAwB;AACxB,6DAA6D;AAC7D,6BAA6B,GAEhC,MAAM,wBAAwB,CAAC;AA4ChC;;;;;GAKG;AACH,MAAM,OAAO,kCAAkC;IAkCtB;IA/BrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,YACqB,QAA+D;QAA/D,aAAQ,GAAR,QAAQ,CAAuD;IACjF,CAAC;IAEJ,YAAY,CACR,SAAqB;QAErB,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CACP,QAAmB;QAEnB,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CACR,SAAmB;QAEnB,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CACjB,WAAwB;QAExB,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,kBAAkB,EAAE,WAAW;SAClC,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CACZ,aAA6B;QAE7B,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa;SAChB,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAChB,iBAAsC;QAEtC,OAAO,IAAI,kCAAkC,CAAC;YAC1C,GAAG,IAAI,CAAC,QAAQ;YAChB,iBAAiB;SACpB,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CACnC,kCAAkC,CAAC,IAAI,CAC1C,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO,EAAE,IAAI,0BAA0B,CAAC;gBACpC,OAAO;aACV,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import { type IEventBus } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import { type
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { type IRateLimiterProviderFactory, type IRateLimiterProvider, type IRateLimiterAdapter } from "../../../../rate-limiter/contracts/_module.js";
|
|
7
7
|
import { type RateLimiterProviderSettingsBase } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/_module.js";
|
|
8
8
|
import { type ErrorPolicy } from "../../../../utilities/_module.js";
|
|
@@ -56,7 +56,7 @@ export declare class RateLimiterProviderFactory<TAdapters extends string> implem
|
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
58
|
constructor(settings: RateLimiterProviderFactorySettings<TAdapters>);
|
|
59
|
-
setNamespace(namespace:
|
|
59
|
+
setNamespace(namespace: INamespace): RateLimiterProviderFactory<TAdapters>;
|
|
60
60
|
setEventBus(eventBus: IEventBus): RateLimiterProviderFactory<TAdapters>;
|
|
61
61
|
setOnlyError(onlyError?: boolean): RateLimiterProviderFactory<TAdapters>;
|
|
62
62
|
setDefaultErrorPolicy(errorPolicy: ErrorPolicy): RateLimiterProviderFactory<TAdapters>;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @module RateLimiter
|
|
3
3
|
*/
|
|
4
4
|
import {} from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import {} from "../../../../namespace/_module.js";
|
|
5
|
+
import {} from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import {} from "../../../../rate-limiter/contracts/_module.js";
|
|
7
|
-
import { RateLimiterProvider,
|
|
7
|
+
import { RateLimiterProvider, } from "../../../../rate-limiter/implementations/derivables/rate-limiter-provider/_module.js";
|
|
8
8
|
import {
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
10
|
UnregisteredAdapterError,
|
|
@@ -121,11 +121,9 @@ export class RateLimiterProviderFactory {
|
|
|
121
121
|
if (adapter === undefined) {
|
|
122
122
|
throw new UnregisteredAdapterError(adapterName);
|
|
123
123
|
}
|
|
124
|
-
const { namespace = DEFAULT_CIRCUIT_BREAKER_PROVIDER_NAMESPACE } = this.settings;
|
|
125
124
|
return new RateLimiterProvider({
|
|
126
125
|
...this.settings,
|
|
127
126
|
adapter,
|
|
128
|
-
namespace: namespace.appendRoot(adapterName),
|
|
129
127
|
});
|
|
130
128
|
}
|
|
131
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limiter-provider-factory.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"rate-limiter-provider-factory.js","sourceRoot":"","sources":["../../../../../src/rate-limiter/implementations/derivables/rate-limiter-provider-factory/rate-limiter-provider-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAkB,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAmB,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAIN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACH,mBAAmB,GAEtB,MAAM,4EAA4E,CAAC;AACpF,OAAO;AACH,6DAA6D;AAC7D,wBAAwB;AACxB,6DAA6D;AAC7D,6BAA6B,GAEhC,MAAM,wBAAwB,CAAC;AAuBhC;;;;;GAKG;AACH,MAAM,OAAO,0BAA0B;IA8Bd;IA3BrB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,YACqB,QAAuD;QAAvD,aAAQ,GAAR,QAAQ,CAA+C;IACzE,CAAC;IAEJ,YAAY,CAAC,SAAqB;QAC9B,OAAO,IAAI,0BAA0B,CAAC;YAClC,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAmB;QAC3B,OAAO,IAAI,0BAA0B,CAAC;YAClC,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,SAAmB;QAC5B,OAAO,IAAI,0BAA0B,CAAC;YAClC,GAAG,IAAI,CAAC,QAAQ;YAChB,SAAS;SACZ,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CACjB,WAAwB;QAExB,OAAO,IAAI,0BAA0B,CAAC;YAClC,GAAG,IAAI,CAAC,QAAQ;YAChB,kBAAkB,EAAE,WAAW;SAClC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CACnC,0BAA0B,CAAC,IAAI,CAClC,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC;YAC3B,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module Semaphore
|
|
3
3
|
*/
|
|
4
|
-
import { type
|
|
4
|
+
import { type IKey } from "../../namespace/contracts/_module.js";
|
|
5
5
|
/**
|
|
6
6
|
* The error is thrown when trying to acquire a semaphore slot, but all slots are already taken.
|
|
7
7
|
*
|
|
@@ -9,7 +9,7 @@ import { type Key } from "../../namespace/_module.js";
|
|
|
9
9
|
* @group Errors
|
|
10
10
|
*/
|
|
11
11
|
export declare class LimitReachedSemaphoreError extends Error {
|
|
12
|
-
static create(key:
|
|
12
|
+
static create(key: IKey, cause?: unknown): LimitReachedSemaphoreError;
|
|
13
13
|
/**
|
|
14
14
|
* Note: Do not instantiate `LimitReachedSemaphoreError` directly via the constructor. Use the static `create()` factory method instead.
|
|
15
15
|
* The constructor remains public only to maintain compatibility with errorPolicy types and prevent type errors.
|
|
@@ -24,7 +24,7 @@ export declare class LimitReachedSemaphoreError extends Error {
|
|
|
24
24
|
* @group Errors
|
|
25
25
|
*/
|
|
26
26
|
export declare class FailedRefreshSemaphoreError extends Error {
|
|
27
|
-
static create(key:
|
|
27
|
+
static create(key: IKey, slotId: string, cause?: unknown): FailedRefreshSemaphoreError;
|
|
28
28
|
/**
|
|
29
29
|
* Note: Do not instantiate `FailedRefreshSemaphoreError` directly via the constructor. Use the static `create()` factory method instead.
|
|
30
30
|
* The constructor remains public only to maintain compatibility with errorPolicy types and prevent type errors.
|
|
@@ -39,7 +39,7 @@ export declare class FailedRefreshSemaphoreError extends Error {
|
|
|
39
39
|
* @group Errors
|
|
40
40
|
*/
|
|
41
41
|
export declare class FailedReleaseSemaphoreError extends Error {
|
|
42
|
-
static create(key:
|
|
42
|
+
static create(key: IKey, slotId: string, cause?: unknown): FailedReleaseSemaphoreError;
|
|
43
43
|
/**
|
|
44
44
|
* Note: Do not instantiate `FailedReleaseSemaphoreError` directly via the constructor. Use the static `create()` factory method instead.
|
|
45
45
|
* The constructor remains public only to maintain compatibility with errorPolicy types and prevent type errors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semaphore.errors.js","sourceRoot":"","sources":["../../../src/semaphore/contracts/semaphore.errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"semaphore.errors.js","sourceRoot":"","sources":["../../../src/semaphore/contracts/semaphore.errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAa,MAAM,kCAAkC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACjD,MAAM,CAAC,MAAM,CAAC,GAAS,EAAE,KAAe;QACpC,OAAO,IAAI,0BAA0B,CACjC,QAAQ,GAAG,CAAC,GAAG,EAAE,yBAAyB,EAC1C,KAAK,CACR,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC;IAChD,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAClD,MAAM,CAAC,MAAM,CACT,GAAS,EACT,MAAc,EACd,KAAe;QAEf,OAAO,IAAI,2BAA2B,CAClC,2BAA2B,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAC1D,KAAK,CACR,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC;IACjD,CAAC;CACJ;AAED;;;;;GAKG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAClD,MAAM,CAAC,MAAM,CACT,GAAS,EACT,MAAc,EACd,KAAe;QAEf,OAAO,IAAI,2BAA2B,CAClC,2BAA2B,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAC1D,KAAK,CACR,CAAC;IACN,CAAC;IAED;;;;OAIG;IACH,YAAY,OAAe,EAAE,KAAe;QACxC,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC,IAAI,CAAC;IACjD,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,YAAY,EAAE,0BAA0B;IACxC,aAAa,EAAE,2BAA2B;IAC1C,aAAa,EAAE,2BAA2B;CACpC,CAAC;AAYX;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC3C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/dist/semaphore/implementations/derivables/semaphore-provider/semaphore-provider.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module Semaphore
|
|
3
3
|
*/
|
|
4
4
|
import { type EventListener, type IEventBus, type Unsubscribe } from "../../../../event-bus/contracts/_module.js";
|
|
5
|
-
import {
|
|
5
|
+
import { type INamespace } from "../../../../namespace/contracts/_module.js";
|
|
6
6
|
import { type ISemaphore, type SemaphoreAdapterVariants, type SemaphoreEventMap, type SemaphoreProviderCreateSettings, type ISemaphoreProvider } from "../../../../semaphore/contracts/_module.js";
|
|
7
7
|
import { type ISerderRegister } from "../../../../serde/contracts/_module.js";
|
|
8
8
|
import { type ITask } from "../../../../task/contracts/_module.js";
|
|
@@ -22,7 +22,16 @@ export type SemaphoreProviderSettingsBase = {
|
|
|
22
22
|
* new Namespace("@semaphore")
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
namespace?:
|
|
25
|
+
namespace?: INamespace;
|
|
26
|
+
/**
|
|
27
|
+
* @default
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { Serde } from "@daiso-tech/serde";
|
|
30
|
+
* import { NoOpSerdeAdapter } from "@daiso-tech/serde/no-op-serde-adapter";
|
|
31
|
+
*
|
|
32
|
+
* new Serde(new NoOpSerdeAdapter())
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
26
35
|
serde?: OneOrMore<ISerderRegister>;
|
|
27
36
|
/**
|
|
28
37
|
* @default ""
|
|
@@ -97,12 +106,6 @@ export type SemaphoreProviderSettingsBase = {
|
|
|
97
106
|
export type SemaphoreProviderSettings = SemaphoreProviderSettingsBase & {
|
|
98
107
|
adapter: SemaphoreAdapterVariants;
|
|
99
108
|
};
|
|
100
|
-
/**
|
|
101
|
-
*
|
|
102
|
-
* IMPORT_PATH: `"@daiso-tech/core/semaphore"`
|
|
103
|
-
* @group Derivables
|
|
104
|
-
*/
|
|
105
|
-
export declare const DEFAULT_SEMAPHORE_PROVIDER_NAMESPACE: Namespace;
|
|
106
109
|
/**
|
|
107
110
|
* `SemaphoreProvider` class can be derived from any {@link ISemaphoreAdapter | `ISemaphoreAdapter`} or {@link IDatabaseSemaphoreAdapter | `IDatabaseSemaphoreAdapter`}.
|
|
108
111
|
*
|