@chainlink/external-adapter-framework 0.28.5 → 0.29.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/adapter/basic.d.ts +3 -2
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +6 -8
- package/adapter/endpoint.js +6 -6
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.d.ts +21 -18
- package/adapter/price.js +2 -2
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +6 -14
- package/cache/index.d.ts +2 -2
- package/cache/index.js +2 -2
- package/cache/index.js.map +1 -1
- package/cache/response.d.ts +5 -5
- package/cache/response.js +6 -6
- package/cache/response.js.map +1 -1
- package/config/index.d.ts +31 -30
- package/config/index.js.map +1 -1
- package/metrics/index.d.ts +2 -1
- package/metrics/index.js.map +1 -1
- package/metrics/util.d.ts +1 -1
- package/package.json +9 -9
- package/transports/abstract/streaming.d.ts +5 -4
- package/transports/abstract/streaming.js.map +1 -1
- package/transports/abstract/subscription.d.ts +6 -8
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/http.d.ts +5 -4
- package/transports/http.js.map +1 -1
- package/transports/index.d.ts +7 -12
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +4 -3
- package/transports/metrics.js.map +1 -1
- package/transports/sse.d.ts +5 -4
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +7 -6
- package/transports/websocket.js +1 -1
- package/transports/websocket.js.map +1 -1
- package/util/censor/censor-list.js +1 -1
- package/util/censor/censor-list.js.map +1 -1
- package/util/index.d.ts +7 -3
- package/util/index.js +9 -7
- package/util/index.js.map +1 -1
- package/util/logger.d.ts +4 -3
- package/util/logger.js +2 -2
- package/util/logger.js.map +1 -1
- package/util/types.d.ts +20 -16
- package/validation/index.d.ts +1 -1
- package/validation/index.js +7 -2
- package/validation/index.js.map +1 -1
- package/validation/input-params.d.ts +192 -13
- package/validation/input-params.js +226 -0
- package/validation/input-params.js.map +1 -1
- package/validation/utils.d.ts +5 -6
- package/validation/utils.js +5 -15
- package/validation/utils.js.map +1 -1
- package/validation/input-validator.d.ts +0 -19
- package/validation/input-validator.js +0 -153
- package/validation/input-validator.js.map +0 -1
package/transports/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { AdapterDependencies, EndpointContext } from '../adapter';
|
|
2
2
|
import { ResponseCache } from '../cache/response';
|
|
3
3
|
import { BaseAdapterSettings } from '../config';
|
|
4
|
-
import { AdapterRequest, AdapterResponse,
|
|
4
|
+
import { AdapterRequest, AdapterResponse, ResponseGenerics } from '../util/types';
|
|
5
|
+
import { InputParametersDefinition } from '../validation/input-params';
|
|
5
6
|
export * from './http';
|
|
6
7
|
export * from './sse';
|
|
7
8
|
export * from './websocket';
|
|
@@ -17,7 +18,7 @@ export type TransportGenerics = {
|
|
|
17
18
|
/**
|
|
18
19
|
* Type details about incoming Adapter requests to this Transport
|
|
19
20
|
*/
|
|
20
|
-
|
|
21
|
+
Parameters: InputParametersDefinition;
|
|
21
22
|
/**
|
|
22
23
|
* Type details about outbound responses from this Transport
|
|
23
24
|
*/
|
|
@@ -34,10 +35,7 @@ export type TransportDependencies<T extends TransportGenerics> = AdapterDependen
|
|
|
34
35
|
/**
|
|
35
36
|
* Cache that will be used to write responses that the Transport will return
|
|
36
37
|
*/
|
|
37
|
-
responseCache: ResponseCache<
|
|
38
|
-
Request: T['Request'];
|
|
39
|
-
Response: T['Response'];
|
|
40
|
-
}>;
|
|
38
|
+
responseCache: ResponseCache<T>;
|
|
41
39
|
};
|
|
42
40
|
/**
|
|
43
41
|
* Generic interface for a Transport.
|
|
@@ -51,10 +49,7 @@ export type TransportDependencies<T extends TransportGenerics> = AdapterDependen
|
|
|
51
49
|
*/
|
|
52
50
|
export interface Transport<T extends TransportGenerics> {
|
|
53
51
|
name: string;
|
|
54
|
-
responseCache: ResponseCache<
|
|
55
|
-
Request: T['Request'];
|
|
56
|
-
Response: T['Response'];
|
|
57
|
-
}>;
|
|
52
|
+
responseCache: ResponseCache<T>;
|
|
58
53
|
/**
|
|
59
54
|
* Initializes the transport in the Adapter context.
|
|
60
55
|
*
|
|
@@ -71,7 +66,7 @@ export interface Transport<T extends TransportGenerics> {
|
|
|
71
66
|
* @param adapterSettings - common configuration for the Adapter as a whole
|
|
72
67
|
* @returns an empty Promise
|
|
73
68
|
*/
|
|
74
|
-
registerRequest?: (req: AdapterRequest<T['
|
|
69
|
+
registerRequest?: (req: AdapterRequest<T['Parameters']>, adapterSettings: T['Settings']) => Promise<void>;
|
|
75
70
|
/**
|
|
76
71
|
* Performs a synchronous fetch/processing of information within the lifecycle of an incoming request.
|
|
77
72
|
* This is mostly intended to be used as a backwards compatibility mechanism, or for very specific cases where
|
|
@@ -84,7 +79,7 @@ export interface Transport<T extends TransportGenerics> {
|
|
|
84
79
|
* @returns a Promise that _optionally_ returns an AdapterResponse, if the Transport has the capability of
|
|
85
80
|
* immediately fetching data and returning it without the background process.
|
|
86
81
|
*/
|
|
87
|
-
foregroundExecute?: (req: AdapterRequest<T['
|
|
82
|
+
foregroundExecute?: (req: AdapterRequest<T['Parameters']>, adapterSettings: T['Settings']) => Promise<AdapterResponse<{
|
|
88
83
|
Data: T['Response']['Data'];
|
|
89
84
|
Result: T['Response']['Result'];
|
|
90
85
|
}> | void>;
|
package/transports/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAyF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAyF;AAMzF,yCAAsB;AACtB,wCAAqB;AACrB,8CAA2B;AA4G3B,MAAa,eAAe;IAA5B;QACU,QAAG,GAAiC,EAAE,CAAA;IA2BhD,CAAC;IAzBC,QAAQ,CAAe,IAAY,EAAE,SAAwB;QAC3D,sDAAsD;QACtD,IAAI,IAAI,KAAK,gCAAsB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,+FAA+F,CACvH,CAAA;SACF;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,qCAAqC,CAAC,CAAA;SACnF;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAoC,CAAA;QACrD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;CACF;AA5BD,0CA4BC"}
|
package/transports/metrics.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { TransportGenerics } from '.';
|
|
2
2
|
import { EndpointContext } from '../adapter';
|
|
3
3
|
import { InputParameters } from '../validation';
|
|
4
|
+
import { TypeFromDefinition } from '../validation/input-params';
|
|
4
5
|
export declare const connectionErrorLabels: (message: string) => {
|
|
5
6
|
message: string;
|
|
6
7
|
};
|
|
7
8
|
export type MessageDirection = 'sent' | 'received';
|
|
8
9
|
export declare const messageSubsLabels: <T extends TransportGenerics>(context: {
|
|
9
|
-
inputParameters: InputParameters
|
|
10
|
+
inputParameters: InputParameters<T["Parameters"]>;
|
|
10
11
|
endpointName: string;
|
|
11
12
|
adapterSettings: T["Settings"];
|
|
12
|
-
}, params: T["
|
|
13
|
+
}, params: TypeFromDefinition<T["Parameters"]>) => {
|
|
13
14
|
feed_id: string;
|
|
14
15
|
subscription_key: string;
|
|
15
16
|
};
|
|
16
|
-
export declare const recordWsMessageMetrics: <T extends TransportGenerics>(context: EndpointContext<T>, subscribes: T["
|
|
17
|
+
export declare const recordWsMessageMetrics: <T extends TransportGenerics>(context: EndpointContext<T>, subscribes: TypeFromDefinition<T["Parameters"]>[], unsubscribes: TypeFromDefinition<T["Parameters"]>[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/transports/metrics.ts"],"names":[],"mappings":";;;AAEA,oCAA0C;AAC1C,wCAAoC;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/transports/metrics.ts"],"names":[],"mappings":";;;AAEA,oCAA0C;AAC1C,wCAAoC;AAIpC,oBAAoB;AACb,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC;IACzD,OAAO;IACP,OAAO;CACR,CAAC,CAAA;AAHW,QAAA,qBAAqB,yBAGhC;AAIK,MAAM,iBAAiB,GAAG,CAC/B,OAIC,EACD,MAA2C,EAC3C,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAE/C,OAAO;QACL,OAAO,EAAE,MAAM;QACf,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,EAAE;KACtD,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,iBAAiB,qBAc7B;AAED,6CAA6C;AAC7C,8CAA8C;AAC9C,2DAA2D;AACpD,MAAM,sBAAsB,GAAG,CACpC,OAA2B,EAC3B,UAAiD,EACjD,YAAmD,EAC7C,EAAE;IACR,MAAM,aAAa,GAAG,CAAC,MAA2C,EAAE,IAAqB,EAAE,EAAE;QAC3F,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAErD,0CAA0C;QAC1C,iBAAO;aACJ,GAAG,CAAC,gBAAgB,CAAC;aACrB,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;aAC5C,GAAG,EAAE,CAAA;QAER,4CAA4C;QAC5C,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,iBAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;YAC3D,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;SAC7D;aAAM;YACL,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAA;SAC7D;IACH,CAAC,CAAA;IAED,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5B,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;IACF,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC9B,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AA7BY,QAAA,sBAAsB,0BA6BlC"}
|
package/transports/sse.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import EventSource from 'eventsource';
|
|
|
3
3
|
import { EndpointContext } from '../adapter';
|
|
4
4
|
import { Requester } from '../util/requester';
|
|
5
5
|
import { ProviderResult } from '../util/types';
|
|
6
|
+
import { TypeFromDefinition } from '../validation/input-params';
|
|
6
7
|
import { TransportDependencies, TransportGenerics } from './';
|
|
7
8
|
import { StreamingTransport, SubscriptionDeltas } from './abstract/streaming';
|
|
8
9
|
export interface SSEConfig {
|
|
@@ -40,10 +41,10 @@ export declare class SseTransport<T extends SSETransportGenerics> extends Stream
|
|
|
40
41
|
timeOfLastReq: number;
|
|
41
42
|
requester: Requester;
|
|
42
43
|
constructor(config: {
|
|
43
|
-
prepareSSEConnectionConfig: (params: T['
|
|
44
|
+
prepareSSEConnectionConfig: (params: TypeFromDefinition<T['Parameters']>[], context: EndpointContext<T>) => SSEConfig;
|
|
44
45
|
prepareKeepAliveRequest?: (context: EndpointContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
45
|
-
prepareSubscriptionRequest: (params: T['
|
|
46
|
-
prepareUnsubscriptionRequest: (params: T['
|
|
46
|
+
prepareSubscriptionRequest: (params: TypeFromDefinition<T['Parameters']>[], context: EndpointContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
47
|
+
prepareUnsubscriptionRequest: (params: TypeFromDefinition<T['Parameters']>[], context: EndpointContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
47
48
|
eventListeners: {
|
|
48
49
|
type: string;
|
|
49
50
|
parseResponse: (evt: MessageEvent) => ProviderResult<T>[];
|
|
@@ -53,6 +54,6 @@ export declare class SseTransport<T extends SSETransportGenerics> extends Stream
|
|
|
53
54
|
});
|
|
54
55
|
getSubscriptionTtlFromConfig(adapterSettings: T['Settings']): number;
|
|
55
56
|
initialize(dependencies: TransportDependencies<T>, adapterSettings: T['Settings'], endpointName: string, transportName: string): Promise<void>;
|
|
56
|
-
streamHandler(context: EndpointContext<T>, subscriptions: SubscriptionDeltas<T['
|
|
57
|
+
streamHandler(context: EndpointContext<T>, subscriptions: SubscriptionDeltas<TypeFromDefinition<T['Parameters']>>): Promise<void>;
|
|
57
58
|
}
|
|
58
59
|
export {};
|
package/transports/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":";;;;;;AACA,8DAAqC;AAErC,oCAAkD;AAClD,kCAA2C;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import WebSocket, { ClientOptions, RawData } from 'ws';
|
|
2
2
|
import { EndpointContext } from '../adapter';
|
|
3
3
|
import { ProviderResult } from '../util/types';
|
|
4
|
+
import { TypeFromDefinition } from '../validation/input-params';
|
|
4
5
|
import { TransportGenerics } from './';
|
|
5
6
|
import { StreamingTransport, SubscriptionDeltas } from './abstract/streaming';
|
|
6
7
|
export { WebSocket, RawData as WebSocketRawData };
|
|
@@ -15,7 +16,7 @@ export declare class WebSocketClassProvider {
|
|
|
15
16
|
*/
|
|
16
17
|
export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics> {
|
|
17
18
|
/** Endpoint to which to open the WS connection*/
|
|
18
|
-
url: (context: EndpointContext<T>, desiredSubs: T['
|
|
19
|
+
url: (context: EndpointContext<T>, desiredSubs: TypeFromDefinition<T['Parameters']>[]) => Promise<string> | string;
|
|
19
20
|
/** Optional parameters used when establishing the WebSocket connection */
|
|
20
21
|
options?: (context: EndpointContext<T>) => Promise<ClientOptions> | ClientOptions;
|
|
21
22
|
/** Map of handlers for different WS lifecycle events */
|
|
@@ -46,14 +47,14 @@ export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics>
|
|
|
46
47
|
* @param params - the body of the adapter request
|
|
47
48
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
48
49
|
*/
|
|
49
|
-
subscribeMessage?: (params: T['
|
|
50
|
+
subscribeMessage?: (params: TypeFromDefinition<T['Parameters']>) => unknown;
|
|
50
51
|
/**
|
|
51
52
|
* Builds a WS message that will be sent to unsubscribe to a specific feed
|
|
52
53
|
*
|
|
53
54
|
* @param params - the body of the adapter request
|
|
54
55
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
55
56
|
*/
|
|
56
|
-
unsubscribeMessage?: (params: T['
|
|
57
|
+
unsubscribeMessage?: (params: TypeFromDefinition<T['Parameters']>) => unknown;
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
@@ -96,7 +97,7 @@ export declare class WebSocketTransport<T extends WebsocketTransportGenerics> ex
|
|
|
96
97
|
};
|
|
97
98
|
establishWsConnection(context: EndpointContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<WebSocket>;
|
|
98
99
|
sendMessages(context: EndpointContext<T>, subscribes: unknown[], unsubscribes: unknown[]): Promise<void>;
|
|
99
|
-
streamHandler(context: EndpointContext<T>, subscriptions: SubscriptionDeltas<T['
|
|
100
|
+
streamHandler(context: EndpointContext<T>, subscriptions: SubscriptionDeltas<TypeFromDefinition<T['Parameters']>>): Promise<void>;
|
|
100
101
|
private rejectionHandler;
|
|
101
102
|
}
|
|
102
103
|
/**
|
|
@@ -120,12 +121,12 @@ export declare class WebsocketReverseMappingTransport<T extends WebsocketTranspo
|
|
|
120
121
|
* @param params - the body of the adapter request
|
|
121
122
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
122
123
|
*/
|
|
123
|
-
setReverseMapping(value: K, params: T['
|
|
124
|
+
setReverseMapping(value: K, params: TypeFromDefinition<T['Parameters']>): void;
|
|
124
125
|
/**
|
|
125
126
|
* Gets the request params mapping for the given value
|
|
126
127
|
*
|
|
127
128
|
* @param value - the Data Provider lookup value
|
|
128
129
|
* @returns the request parameters for the Data Provider lookup value, if one has been set
|
|
129
130
|
*/
|
|
130
|
-
getReverseMapping(value: K): T['
|
|
131
|
+
getReverseMapping(value: K): TypeFromDefinition<T['Parameters']> | undefined;
|
|
131
132
|
}
|
package/transports/websocket.js
CHANGED
|
@@ -19,8 +19,8 @@ class WebSocketClassProvider {
|
|
|
19
19
|
return this.ctor;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
exports.WebSocketClassProvider = WebSocketClassProvider;
|
|
23
22
|
WebSocketClassProvider.ctor = ws_1.default;
|
|
23
|
+
exports.WebSocketClassProvider = WebSocketClassProvider;
|
|
24
24
|
/**
|
|
25
25
|
* Transport implementation that takes incoming requests, adds them to an [[subscriptionSet]] and,
|
|
26
26
|
* through a WebSocket connection, subscribes to the relevant feeds to populate the cache.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsD;
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAsD;AAW7C,oBAXF,YAAS,CAWE;AATlB,wCAAoC;AACpC,kCAA4E;AAI5E,oDAA6E;AAC7E,uCAAyE;AAKzE,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,oBAAoB,CAAC,CAAA;AAQ/C,MAAa,sBAAsB;IAGjC,MAAM,CAAC,GAAG,CAAC,IAAoB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,CAAC,GAAG;QACR,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;;AARM,2BAAI,GAAmB,YAAS,CAAA;AAD5B,wDAAsB;AAsFnC;;;;;GAKG;AACH,MAAa,kBAEX,SAAQ,8BAAqB;IAM7B,YAAoB,MAAmC;QACrD,KAAK,EAAE,CAAA;QADW,WAAM,GAAN,MAAM,CAA6B;QAJvD,eAAU,GAAG,EAAE,CAAA;QACf,0BAAqB,GAAG,CAAC,CAAA;QACzB,uBAAkB,GAAG,CAAC,CAAA;IAItB,CAAC;IAED,4BAA4B,CAAC,eAA8B;QACzD,OAAO,eAAe,CAAC,mBAAmB,CAAA;IAC5C,CAAC;IAED,gBAAgB;QACd,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,KAAK,YAAS,CAAC,MAAM,CAAA;IAChF,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC/B,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;IACxE,CAAC;IACD,kBAAkB,CAAC,IAAoB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAA+B,CAAA;IAClE,CAAC;IAED,uBAAuB,CACrB,OAA2B,EAC3B,UAAqB,EACrB,sBAAkD;QAElD,OAAO;YACL,0CAA0C;YAC1C,IAAI,EAAE,KAAK,EAAE,KAAsB,EAAE,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,4CAA4C,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;gBACvE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;oBACpD,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;iBAChE;gBACD,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC;YAED,6DAA6D;YAC7D,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClD,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC7C,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACvE,MAAM,MAAM,GAAG,CAAiC,CAAA;oBAChD,MAAM,eAAe,GAAG,CAAC,CAAC,QAAoD,CAAA;oBAC9E,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG;wBAC3B,mCAAmC,EAAE,IAAI,CAAC,6BAA6B;wBACvE,0BAA0B,EAAE,oBAAoB;wBAChD,2BAA2B,EAAE,eAAe,CAAC,UAAU,EAAE,2BAA2B;qBACrF,CAAA;oBACD,OAAO,MAAM,CAAA;gBACf,CAAC,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAA;gBAClE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChD,mFAAmF;oBACnF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACvC,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;iBACnD;gBAED,+DAA+D;gBAC/D,sFAAsF;gBACtF,yEAAyE;gBACzE,iBAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACvE,CAAC;YAED,mDAAmD;YACnD,KAAK,EAAE,KAAK,EAAE,KAA2B,EAAE,EAAE;gBAC3C,MAAM,CAAC,KAAK,CACV,mDAAmD,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,OAAO,EAAE,CAC7F,CAAA;gBACD,gCAAgC;gBAChC,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,IAAA,+BAAqB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YACtF,CAAC;YAED,sDAAsD;YACtD,KAAK,EAAE,CAAC,KAA2B,EAAE,EAAE;gBACrC,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;gBACpD,MAAM,CAAC,KAAK,CAAC,CACX,sCAAsC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CACzF,CAAA;gBAED,8DAA8D;gBAC9D,6DAA6D;gBAC7D,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAA;gBAEvC,mEAAmE;gBACnE,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC;oBACtC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,GAAG,EAAE,IAAI,CAAC,UAAU;iBACrB,CAAC,CAAA;YACJ,CAAC;SACF,CAAA;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,OAA2B,EAC3B,GAAW,EACX,OAA6C;QAE7C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAA,sBAAe,GAAE,CAAA;QACpD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;QACzC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAC3E,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpD,UAAU,CAAC,gBAAgB,CACzB,MAAM,EACN,IAAI,CAAC,gBAAgB,CAAkB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAC9D,CAAA;QAED,sCAAsC;QACtC,IAAI;YACF,MAAM,IAAA,qBAAc,EAClB,iBAAiB,EACjB,OAAO,EACP,OAAO,CAAC,eAAe,CAAC,0BAA0B,CACnD,CAAA;YAED,6DAA6D;YAC7D,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAA;SACxC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;YACvE,MAAM,CAAC,CAAA;SACR;QAED,4FAA4F;QAC5F,UAAU,CAAC,kBAAkB,EAAE,CAAA;QAC/B,UAAU,CAAC,gBAAgB,CACzB,SAAS,EACT,IAAI,CAAC,gBAAgB,CAAyB,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CACxE,CAAA;QACD,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpD,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEpD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA2B,EAAE,UAAqB,EAAE,YAAuB;QAC5F,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAClE,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAEtE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAEpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAA;SAC9D;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;SACjC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,OAA2B,EAC3B,aAAsE;QAEtE,mDAAmD;QACnD,uCAAuC;QACvC,qCAAqC;QACrC,2CAA2C;QAC3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACnD,MAAM,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;YACtF,MAAM,IAAA,YAAK,EAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAA;YAC7D,OAAM;SACP;QAED,0FAA0F;QAC1F,4FAA4F;QAC5F,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,KAAK,aAAa,CAAA;QAEpD,gFAAgF;QAChF,gEAAgE;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAC1E,MAAM,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC5E,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAA;QACvF,MAAM,sBAAsB,GAC1B,qBAAqB,GAAG,CAAC;YACzB,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,gCAAgC,CAAA;QAClF,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC;aACJ,GAAG;8BACc,oBAAoB;mCACf,yBAAyB;+BAC7B,qBAAqB;qCACf,OAAO,CAAC,eAAe,CAAC,gCAAgC;gCAC7D,sBAAsB;OAC/C,CAAC,CAAA;QAEJ,kDAAkD;QAClD,IAAI,CAAC,gBAAgB,IAAI,CAAC,UAAU,IAAI,sBAAsB,CAAC,EAAE;YAC/D,MAAM,MAAM,GAAG,UAAU;gBACvB,CAAC,CAAC,kCAAkC,IAAI,CAAC,UAAU,OAAO,aAAa,yBAAyB;gBAChG,CAAC,CAAC,6BAA6B,oBAAoB,oCAAoC,OAAO,CAAC,eAAe,CAAC,gCAAgC,2BAA2B,CAAA;YAC5K,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEnB,qFAAqF;YACrF,wFAAwF;YACxF,0EAA0E;YAC1E,IAAI,yBAAyB,GAAG,IAAI,EAAE;gBACpC,MAAM,CAAC,IAAI,CACT,8BAA8B,yBAAyB,4DAA4D,CACpH,CAAA;gBACD,MAAM,IAAA,YAAK,EAAC,IAAI,GAAG,yBAAyB,CAAC,CAAA;aAC9C;YACD,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAA;YAC1B,gBAAgB,GAAG,IAAI,CAAA;YAEvB,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE;gBAChC,MAAM,CAAC,KAAK,CACV,sFAAsF,IAAI,CAAC,SAAS,CAClG,aAAa,CAAC,OAAO,CACtB,EAAE,CACJ,CAAA;aACF;SACF;QAED,4CAA4C;QAC5C,IAAI,gBAAgB,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAA;YAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3E,IAAI,CAAC,UAAU,GAAG,aAAa,CAAA;YAC/B,8GAA8G;YAC9G,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAE/C,4EAA4E;YAC5E,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;YAE5B,iFAAiF;YACjF,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO,CAAA;YAEzC,0BAA0B;YAC1B,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;YAErF,6EAA6E;YAC7E,gBAAgB,GAAG,KAAK,CAAA;YACxB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;SACrC;QAED,+CAA+C;QAC/C,6GAA6G;QAC7G,+EAA+E;QAC/E,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;YACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;YACrC,IAAI,QAAQ,EAAE;gBACZ,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAA;gBACzD,MAAM,IAAI,CAAC,YAAY,CACrB,OAAO,EACP,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAC9E,kBAAkB,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CACvF,CAAA;aACF;iBAAM;gBACL,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;aACzE;SACF;QAED,6CAA6C;QAC7C,IAAA,gCAAsB,EAAC,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;QAEvE,4FAA4F;QAC5F,MAAM,CAAC,KAAK,CACV,4CAA4C,OAAO,CAAC,eAAe,CAAC,wBAAwB,OAAO,CACpG,CAAA;QACD,MAAM,IAAA,YAAK,EAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAA;QAE7D,OAAM;IACR,CAAC;IAEO,gBAAgB,CACtB,WAAuC,EACvC,OAAoC;QAEpC,OAAO,KAAK,EAAE,KAAQ,EAAE,EAAE;YACxB,IAAI;gBACF,MAAM,OAAO,CAAC,KAAK,CAAC,CAAA;aACrB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;aACtB;QACH,CAAC,CAAA;IACH,CAAC;CACF;AAhSD,gDAgSC;AAED;;;;;;;;;;;GAWG;AACH,MAAa,gCAGX,SAAQ,kBAAqB;IAH/B;;QAIU,mBAAc,GAAgD,IAAI,GAAG,EAAE,CAAA;IAsBjF,CAAC;IApBC;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAQ,EAAE,MAA2C;QACrE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAQ;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;CACF;AA1BD,4EA0BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"censor-list.js","sourceRoot":"","sources":["../../../../src/util/censor/censor-list.ts"],"names":[],"mappings":";;AAAA,MAAqB,UAAU;IAE7B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,UAA4B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;;
|
|
1
|
+
{"version":3,"file":"censor-list.js","sourceRoot":"","sources":["../../../../src/util/censor/censor-list.ts"],"names":[],"mappings":";;AAAA,MAAqB,UAAU;IAE7B,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,UAA4B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;;AANM,qBAAU,GAAqB,EAAE,CAAA;kBADrB,UAAU"}
|
package/util/index.d.ts
CHANGED
|
@@ -7,9 +7,6 @@ export * from './types';
|
|
|
7
7
|
* @returns a Promise that resolves once the specified time passes
|
|
8
8
|
*/
|
|
9
9
|
export declare const sleep: (ms: number) => Promise<void>;
|
|
10
|
-
export declare const isObject: (o: unknown) => boolean;
|
|
11
|
-
export declare const isArray: (o: unknown) => boolean;
|
|
12
|
-
export declare const isEmpty: (o: unknown) => boolean;
|
|
13
10
|
export type PromiseOrValue<T> = Promise<T> | T;
|
|
14
11
|
export declare class LinkedListNode<T = unknown> {
|
|
15
12
|
data: T;
|
|
@@ -46,3 +43,10 @@ type DeferredReject = (reason?: unknown) => void;
|
|
|
46
43
|
* @returns all the deconstructed elements of a promise, to handle in synchronous-ish logic
|
|
47
44
|
*/
|
|
48
45
|
export declare const deferredPromise: <T>() => [Promise<T>, DeferredResolve<T>, DeferredReject];
|
|
46
|
+
/**
|
|
47
|
+
* Checks if the provided array includes any duplicates
|
|
48
|
+
*
|
|
49
|
+
* @param array - any array to check
|
|
50
|
+
* @returns whether the array has duplicate items
|
|
51
|
+
*/
|
|
52
|
+
export declare const hasRepeatedValues: (array: string[]) => boolean;
|
package/util/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.hasRepeatedValues = exports.deferredPromise = exports.timeoutPromise = exports.DoubleLinkedList = exports.LinkedListNode = exports.sleep = void 0;
|
|
18
18
|
__exportStar(require("./logger"), exports);
|
|
19
19
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
20
20
|
__exportStar(require("./types"), exports);
|
|
@@ -29,12 +29,6 @@ const sleep = (ms) => {
|
|
|
29
29
|
});
|
|
30
30
|
};
|
|
31
31
|
exports.sleep = sleep;
|
|
32
|
-
const isObject = (o) => o !== null && typeof o === 'object' && Array.isArray(o) === false;
|
|
33
|
-
exports.isObject = isObject;
|
|
34
|
-
const isArray = (o) => o !== null && typeof o === 'object' && Array.isArray(o);
|
|
35
|
-
exports.isArray = isArray;
|
|
36
|
-
const isEmpty = (o) => o === undefined || o === null || o === '';
|
|
37
|
-
exports.isEmpty = isEmpty;
|
|
38
32
|
class LinkedListNode {
|
|
39
33
|
constructor(key, data) {
|
|
40
34
|
this.data = data;
|
|
@@ -127,4 +121,12 @@ const deferredPromise = () => {
|
|
|
127
121
|
return [promise, resolve, reject];
|
|
128
122
|
};
|
|
129
123
|
exports.deferredPromise = deferredPromise;
|
|
124
|
+
/**
|
|
125
|
+
* Checks if the provided array includes any duplicates
|
|
126
|
+
*
|
|
127
|
+
* @param array - any array to check
|
|
128
|
+
* @returns whether the array has duplicate items
|
|
129
|
+
*/
|
|
130
|
+
const hasRepeatedValues = (array) => array.length !== new Set(array).size;
|
|
131
|
+
exports.hasRepeatedValues = hasRepeatedValues;
|
|
130
132
|
//# sourceMappingURL=index.js.map
|
package/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,sEAAmD;AACnD,0CAAuB;AAEvB;;;;GAIG;AACI,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAJY,QAAA,KAAK,SAIjB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"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"}
|
package/util/logger.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import pino from 'pino';
|
|
3
|
-
import { AdapterRequest } from './types';
|
|
4
2
|
import { FastifyReply, HookHandlerDoneFunction } from 'fastify';
|
|
5
3
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
4
|
+
import pino from 'pino';
|
|
5
|
+
import { InputParametersDefinition } from '../validation/input-params';
|
|
6
6
|
import { CensorKeyValue } from './censor/censor-list';
|
|
7
|
+
import { AdapterRequest } from './types';
|
|
7
8
|
export declare const asyncLocalStorage: AsyncLocalStorage<unknown>;
|
|
8
9
|
export type Store = {
|
|
9
10
|
correlationId: string;
|
|
@@ -54,5 +55,5 @@ export declare const makeLogger: (layer: string) => pino.Logger<{
|
|
|
54
55
|
};
|
|
55
56
|
} | undefined;
|
|
56
57
|
} & pino.ChildLoggerOptions>;
|
|
57
|
-
export declare const loggingContextMiddleware: (req: AdapterRequest
|
|
58
|
+
export declare const loggingContextMiddleware: (req: AdapterRequest<InputParametersDefinition>, res: FastifyReply, done: HookHandlerDoneFunction) => void;
|
|
58
59
|
export declare function censor(obj: any, censorList: CensorKeyValue[], throwOnError?: boolean): any;
|
package/util/logger.js
CHANGED
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.censor = exports.loggingContextMiddleware = exports.makeLogger = exports.colorFactory = exports.COLORS = exports.asyncLocalStorage = void 0;
|
|
7
|
-
const pino_1 = __importDefault(require("pino"));
|
|
8
|
-
const config_1 = require("../config");
|
|
9
7
|
const crypto_1 = require("crypto");
|
|
10
8
|
const node_async_hooks_1 = require("node:async_hooks");
|
|
9
|
+
const pino_1 = __importDefault(require("pino"));
|
|
10
|
+
const config_1 = require("../config");
|
|
11
11
|
const censor_list_1 = __importDefault(require("./censor/censor-list"));
|
|
12
12
|
exports.asyncLocalStorage = new node_async_hooks_1.AsyncLocalStorage();
|
|
13
13
|
const debugTransport = {
|
package/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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"}
|
package/util/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FastifyReply, FastifyRequest, HookHandlerDoneFunction } from 'fastify';
|
|
2
2
|
import { Adapter } from '../adapter';
|
|
3
3
|
import { AdapterError } from '../validation/error';
|
|
4
|
+
import { InputParametersDefinition, TypeFromDefinition } from '../validation/input-params';
|
|
4
5
|
declare module 'fastify' {
|
|
5
6
|
interface FastifyRequest {
|
|
6
7
|
requestContext: AdapterRequestContext;
|
|
@@ -22,7 +23,7 @@ export interface AdapterRequestBody<T = AdapterRequestData> {
|
|
|
22
23
|
* Object that will be added to the request on a successful validation.
|
|
23
24
|
* Contains all the necessary information the adapter will need across the request execution.
|
|
24
25
|
*/
|
|
25
|
-
export type AdapterRequestContext<T =
|
|
26
|
+
export type AdapterRequestContext<T extends InputParametersDefinition = InputParametersDefinition> = {
|
|
26
27
|
/** Name of the endpoint this payload should be directed to */
|
|
27
28
|
endpointName: string;
|
|
28
29
|
/** Name of the endpoint this payload should be directed to */
|
|
@@ -30,7 +31,7 @@ export type AdapterRequestContext<T = AdapterRequestData> = {
|
|
|
30
31
|
/** Precalculated cache key used to get and set corresponding values from the cache and subscription sets */
|
|
31
32
|
cacheKey: string;
|
|
32
33
|
/** Normalized and validated data coming from the request body */
|
|
33
|
-
data: T
|
|
34
|
+
data: TypeFromDefinition<T>;
|
|
34
35
|
/** Metadata relevant to this particular request */
|
|
35
36
|
meta?: AdapterRequestMeta;
|
|
36
37
|
};
|
|
@@ -48,11 +49,11 @@ export type AdapterRouteGeneric = {
|
|
|
48
49
|
/**
|
|
49
50
|
* Structure for all requests incoming to this adapter
|
|
50
51
|
*/
|
|
51
|
-
export type AdapterRequest<T extends
|
|
52
|
+
export type AdapterRequest<T extends InputParametersDefinition> = FastifyRequest<AdapterRouteGeneric> & {
|
|
52
53
|
/** Set to an empty record so the user does not access the raw request data and uses the Validated data from the context instead */
|
|
53
54
|
body: EmptyBody;
|
|
54
55
|
/** Container for all validated information that will be used by the framework across this request's lifecycle */
|
|
55
|
-
requestContext: AdapterRequestContext<T
|
|
56
|
+
requestContext: AdapterRequestContext<T>;
|
|
56
57
|
};
|
|
57
58
|
/**
|
|
58
59
|
* Metadata for a particular request
|
|
@@ -79,12 +80,21 @@ export interface AdapterMetricsMeta {
|
|
|
79
80
|
/** Boolean to note if this request's response was found in the cache directly */
|
|
80
81
|
cacheHit?: boolean;
|
|
81
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Map of overrides objects (symbol -\> symbol) per adapter name
|
|
85
|
+
*/
|
|
86
|
+
export type Overrides = {
|
|
87
|
+
[adapterName: string]: {
|
|
88
|
+
[symbol: string]: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
82
91
|
/**
|
|
83
92
|
* Input params that can always be present in an incoming request
|
|
84
93
|
*/
|
|
85
94
|
type CommonAdapterRequestParams = {
|
|
86
95
|
endpoint?: string;
|
|
87
96
|
transport?: string;
|
|
97
|
+
overrides?: Overrides;
|
|
88
98
|
};
|
|
89
99
|
export type ReservedInputParameterNames = keyof CommonAdapterRequestParams;
|
|
90
100
|
/**
|
|
@@ -92,7 +102,7 @@ export type ReservedInputParameterNames = keyof CommonAdapterRequestParams;
|
|
|
92
102
|
*/
|
|
93
103
|
export type AdapterRequestData = Record<string, unknown> & CommonAdapterRequestParams;
|
|
94
104
|
export type ProviderResultGenerics = {
|
|
95
|
-
|
|
105
|
+
Parameters: InputParametersDefinition;
|
|
96
106
|
Response: ResponseGenerics;
|
|
97
107
|
};
|
|
98
108
|
/**
|
|
@@ -100,7 +110,7 @@ export type ProviderResultGenerics = {
|
|
|
100
110
|
*/
|
|
101
111
|
export type ProviderResult<T extends ProviderResultGenerics> = {
|
|
102
112
|
/** The set of parameters that uniquely relate to the response */
|
|
103
|
-
params: T['
|
|
113
|
+
params: TypeFromDefinition<T['Parameters']>;
|
|
104
114
|
/** Value that will be included in the result property of the response */
|
|
105
115
|
response: PartialAdapterResponse<T['Response']>;
|
|
106
116
|
};
|
|
@@ -108,15 +118,6 @@ export type TimestampedProviderResult<T extends ProviderResultGenerics> = Pick<P
|
|
|
108
118
|
/** Value that will be included in the result property of the response, with timestamps applied */
|
|
109
119
|
response: TimestampedAdapterResponse<T['Response']>;
|
|
110
120
|
};
|
|
111
|
-
/**
|
|
112
|
-
* Helper struct type that provides detail about the incoming Adapter Request
|
|
113
|
-
*/
|
|
114
|
-
export type RequestGenerics = {
|
|
115
|
-
/**
|
|
116
|
-
* Type for the parameters sent to the EA in the data property of the body.
|
|
117
|
-
*/
|
|
118
|
-
Params: unknown;
|
|
119
|
-
};
|
|
120
121
|
/**
|
|
121
122
|
* Helper struct type that provides detail about the outgoing Adapter Response
|
|
122
123
|
*/
|
|
@@ -222,6 +223,9 @@ export type SingleNumberResultResponse = {
|
|
|
222
223
|
result: number;
|
|
223
224
|
};
|
|
224
225
|
};
|
|
225
|
-
export type Middleware = ((req: AdapterRequest
|
|
226
|
+
export type Middleware = ((req: AdapterRequest<InputParametersDefinition>, reply: FastifyReply, done: HookHandlerDoneFunction) => FastifyReply | void) | ((req: AdapterRequest<InputParametersDefinition>, reply: FastifyReply) => Promise<FastifyReply | void>);
|
|
226
227
|
export type AdapterMiddlewareBuilder = (adapter: Adapter) => Middleware;
|
|
228
|
+
export type Writeable<T> = {
|
|
229
|
+
-readonly [K in keyof T]: T[K];
|
|
230
|
+
};
|
|
227
231
|
export {};
|
package/validation/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FastifyReply, FastifyRequest } from 'fastify';
|
|
2
2
|
import { AdapterMiddlewareBuilder } from '../util/types';
|
|
3
|
-
export { InputParameters
|
|
3
|
+
export { InputParameters } from './input-params';
|
|
4
4
|
export declare const validatorMiddleware: AdapterMiddlewareBuilder;
|
|
5
5
|
export declare const errorCatchingMiddleware: (err: Error, req: FastifyRequest, res: FastifyReply) => void;
|
package/validation/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errorCatchingMiddleware = exports.validatorMiddleware = void 0;
|
|
3
|
+
exports.errorCatchingMiddleware = exports.validatorMiddleware = exports.InputParameters = void 0;
|
|
4
4
|
const ioredis_1 = require("ioredis");
|
|
5
5
|
const cache_1 = require("../cache");
|
|
6
6
|
const metrics_1 = require("../metrics");
|
|
7
7
|
const util_1 = require("../metrics/util");
|
|
8
8
|
const util_2 = require("../util");
|
|
9
9
|
const error_1 = require("./error");
|
|
10
|
+
const input_params_1 = require("./input-params");
|
|
11
|
+
var input_params_2 = require("./input-params");
|
|
12
|
+
Object.defineProperty(exports, "InputParameters", { enumerable: true, get: function () { return input_params_2.InputParameters; } });
|
|
10
13
|
const errorCatcherLogger = (0, util_2.makeLogger)('ErrorCatchingMiddleware');
|
|
11
14
|
const validatorMiddleware = (adapter) => (req, reply, done) => {
|
|
12
15
|
if (req.headers['content-type'] !== 'application/json') {
|
|
@@ -35,7 +38,9 @@ const validatorMiddleware = (adapter) => (req, reply, done) => {
|
|
|
35
38
|
statusCode: 404,
|
|
36
39
|
});
|
|
37
40
|
}
|
|
38
|
-
|
|
41
|
+
// Validate the incoming data and normalize
|
|
42
|
+
(0, input_params_1.validateOverrides)(requestBody.data);
|
|
43
|
+
const validatedData = endpoint.inputParameters.validateInput(requestBody.data);
|
|
39
44
|
req.requestContext = {
|
|
40
45
|
cacheKey: '',
|
|
41
46
|
data: validatedData,
|
package/validation/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":";;;AACA,qCAAkD;AAElD,oCAA4C;AAC5C,wCAAsE;AACtE,0CAAgD;AAChD,kCAAoC;AAOpC,mCAA8E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"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"}
|