@chainlink/external-adapter-framework 0.5.4 → 0.5.6
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 +16 -6
- package/adapter/basic.js +34 -7
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +6 -6
- package/adapter/endpoint.js +1 -0
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.d.ts +10 -8
- package/adapter/price.js +8 -5
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +20 -13
- package/background-executor.js +19 -4
- package/background-executor.js.map +1 -1
- package/cache/index.d.ts +6 -6
- package/cache/redis.d.ts +0 -3
- package/cache/redis.js +19 -12
- package/cache/redis.js.map +1 -1
- package/config/index.d.ts +14 -1
- package/config/index.js +37 -20
- package/config/index.js.map +1 -1
- package/examples/bank-frick/accounts.d.ts +17 -24
- package/examples/bank-frick/accounts.js +22 -9
- package/examples/bank-frick/accounts.js.map +1 -1
- package/examples/bank-frick/index.d.ts +1 -15
- package/examples/bank-frick/index.js +1 -1
- package/examples/coingecko/src/crypto-utils.d.ts +15 -1
- package/examples/coingecko/src/crypto-utils.js.map +1 -1
- package/examples/coingecko/src/endpoint/coins.d.ts +20 -3
- package/examples/coingecko/src/endpoint/coins.js +2 -2
- package/examples/coingecko/src/endpoint/coins.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +2 -2
- package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto-volume.d.ts +2 -2
- package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto.d.ts +2 -1
- package/examples/coingecko/src/endpoint/crypto.js.map +1 -1
- package/examples/coingecko/src/endpoint/dominance.d.ts +2 -2
- package/examples/coingecko/src/endpoint/dominance.js.map +1 -1
- package/examples/coingecko/src/endpoint/global-marketcap.d.ts +2 -2
- package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -1
- package/examples/coingecko/src/global-utils.d.ts +18 -3
- package/examples/coingecko/src/global-utils.js.map +1 -1
- package/examples/coingecko/src/index.js +1 -1
- package/examples/cryptocompare/src/endpoints/crypto.d.ts +14 -2
- package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -1
- package/examples/cryptocompare/src/index.js +1 -1
- package/examples/genesis/index.js +1 -1
- package/examples/genesis/sseStream.d.ts +13 -2
- package/examples/genesis/sseStream.js.map +1 -1
- package/metrics/util.d.ts +5 -5
- package/metrics/util.js.map +1 -1
- package/package.json +1 -1
- package/rate-limiting/background/fixed-frequency.d.ts +2 -3
- package/rate-limiting/background/fixed-frequency.js.map +1 -1
- package/rate-limiting/index.d.ts +4 -4
- package/rate-limiting/index.js +1 -1
- package/rate-limiting/index.js.map +1 -1
- package/rate-limiting/request/simple-counting.d.ts +2 -3
- package/rate-limiting/request/simple-counting.js.map +1 -1
- package/transports/batch-warming.d.ts +31 -13
- package/transports/batch-warming.js +4 -4
- package/transports/batch-warming.js.map +1 -1
- package/transports/index.d.ts +50 -13
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +2 -2
- package/transports/metrics.js +2 -2
- package/transports/metrics.js.map +1 -1
- package/transports/rest.d.ts +30 -13
- package/transports/rest.js +1 -3
- package/transports/rest.js.map +1 -1
- package/transports/routing.d.ts +11 -12
- package/transports/routing.js +16 -4
- package/transports/routing.js.map +1 -1
- package/transports/sse.d.ts +39 -18
- package/transports/sse.js +8 -2
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +39 -23
- package/transports/websocket.js +8 -7
- package/transports/websocket.js.map +1 -1
- package/util/data-validation.d.ts +15 -0
- package/util/data-validation.js +61 -0
- package/util/data-validation.js.map +1 -0
- package/util/index.d.ts +1 -0
- package/util/index.js +5 -1
- package/util/index.js.map +1 -1
- package/util/logger.js +2 -6
- package/util/logger.js.map +1 -1
- package/util/request.d.ts +46 -10
- package/validation/error.js +1 -1
- package/validation/error.js.map +1 -1
- package/validation/index.js +16 -15
- package/validation/index.js.map +1 -1
package/transports/rest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transports/rest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,kCAA2C;AAG3C,+CAAkD;AAClD,iCAAqC;AACrC,2EAA4D;AAK5D,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAEnC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transports/rest.ts"],"names":[],"mappings":"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"}
|
package/transports/routing.d.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { AdapterRequest, AdapterResponse } from '../util/request';
|
|
2
|
-
import { MetaTransport, Transport } from './';
|
|
3
|
-
import { AdapterConfig, SettingsMap } from '../config';
|
|
4
1
|
import { AdapterDependencies } from '../adapter';
|
|
2
|
+
import { AdapterConfig } from '../config';
|
|
3
|
+
import { AdapterRequest, AdapterResponse } from '../util';
|
|
4
|
+
import { MetaTransport, Transport, TransportGenerics } from './';
|
|
5
5
|
/**
|
|
6
6
|
* Transport implementation that takes 2 or more transports and a function that determines with transport to use.
|
|
7
7
|
*
|
|
8
|
-
* @typeParam
|
|
9
|
-
* @typeParam AdapterResult - interface for the adapter's response body
|
|
10
|
-
* @typeParam CustomSettings - interface for the adapter's custom settings.
|
|
8
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[TransportGenerics]])
|
|
11
9
|
*/
|
|
12
|
-
export declare class RoutingTransport<
|
|
10
|
+
export declare class RoutingTransport<T extends TransportGenerics> implements MetaTransport<T> {
|
|
13
11
|
transports: {
|
|
14
|
-
[key: string]: Transport<
|
|
12
|
+
[key: string]: Transport<T>;
|
|
15
13
|
};
|
|
16
14
|
private route;
|
|
17
15
|
constructor(transports: {
|
|
18
|
-
[key: string]: Transport<
|
|
19
|
-
}, route: (req: AdapterRequest<
|
|
20
|
-
initialize(dependencies: AdapterDependencies, adapterConfig: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
|
|
16
|
+
[key: string]: Transport<T>;
|
|
17
|
+
}, route: (req: AdapterRequest<T['Request']>, adapterConfig?: AdapterConfig<T['CustomSettings']>) => string);
|
|
18
|
+
initialize(dependencies: AdapterDependencies, adapterConfig: AdapterConfig<T['CustomSettings']>, endpointName: string): Promise<void>;
|
|
19
|
+
registerRequest(req: AdapterRequest<T['Request']>, adapterConfig: AdapterConfig<T['CustomSettings']>): Promise<void>;
|
|
21
20
|
private resolveTransport;
|
|
22
|
-
foregroundExecute(req: AdapterRequest<
|
|
21
|
+
foregroundExecute(req: AdapterRequest<T['Request']>, adapterConfig: AdapterConfig<T['CustomSettings']>): Promise<AdapterResponse<any> | void>;
|
|
23
22
|
}
|
package/transports/routing.js
CHANGED
|
@@ -7,9 +7,7 @@ const logger = (0, util_1.makeLogger)('RoutingTransport');
|
|
|
7
7
|
/**
|
|
8
8
|
* Transport implementation that takes 2 or more transports and a function that determines with transport to use.
|
|
9
9
|
*
|
|
10
|
-
* @typeParam
|
|
11
|
-
* @typeParam AdapterResult - interface for the adapter's response body
|
|
12
|
-
* @typeParam CustomSettings - interface for the adapter's custom settings.
|
|
10
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[TransportGenerics]])
|
|
13
11
|
*/
|
|
14
12
|
class RoutingTransport {
|
|
15
13
|
constructor(
|
|
@@ -27,8 +25,22 @@ class RoutingTransport {
|
|
|
27
25
|
v.initialize(dependencies, adapterConfig, endpointName);
|
|
28
26
|
});
|
|
29
27
|
}
|
|
28
|
+
async registerRequest(req, adapterConfig) {
|
|
29
|
+
logger.debug(`registering request using `, req.requestContext.data);
|
|
30
|
+
const key = this.route(req, adapterConfig || undefined);
|
|
31
|
+
if (!this.transports[key]) {
|
|
32
|
+
throw new error_1.AdapterError({ statusCode: 400, message: `No transport found for ${key}` });
|
|
33
|
+
}
|
|
34
|
+
const transport = this.transports[key];
|
|
35
|
+
logger.debug(`Found ${transport.constructor.name} corresponding to ${key}`);
|
|
36
|
+
if (transport.registerRequest) {
|
|
37
|
+
logger.debug(`Calling registerRequest on ${key} (${transport.constructor.name})`);
|
|
38
|
+
return transport.registerRequest(req, adapterConfig);
|
|
39
|
+
}
|
|
40
|
+
logger.debug(`No registerRequest on ${key} (${transport.constructor.name})`);
|
|
41
|
+
}
|
|
30
42
|
resolveTransport(req, adapterConfig) {
|
|
31
|
-
logger.debug(`routing request using`, req.
|
|
43
|
+
logger.debug(`routing request using `, req.requestContext.data);
|
|
32
44
|
const key = this.route(req, adapterConfig || undefined);
|
|
33
45
|
if (!this.transports[key]) {
|
|
34
46
|
throw new error_1.AdapterError({ statusCode: 400, message: `No transport found for ${key}` });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/transports/routing.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/transports/routing.ts"],"names":[],"mappings":"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"}
|
package/transports/sse.d.ts
CHANGED
|
@@ -1,40 +1,61 @@
|
|
|
1
|
-
import { Cache } from '../cache';
|
|
2
|
-
import EventSource from 'eventsource';
|
|
3
|
-
import { SettingsMap, AdapterConfig } from '../config';
|
|
4
1
|
import { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import EventSource from 'eventsource';
|
|
3
|
+
import { AdapterContext, AdapterDependencies } from '../adapter';
|
|
4
|
+
import { Cache } from '../cache';
|
|
5
|
+
import { AdapterConfig } from '../config';
|
|
5
6
|
import { SubscriptionSet } from '../util';
|
|
6
7
|
import { AdapterRequest, AdapterResponse, ProviderResult } from '../util/request';
|
|
7
|
-
import {
|
|
8
|
-
import { AdapterContext, AdapterDependencies } from '../adapter';
|
|
8
|
+
import { Transport, TransportGenerics } from './';
|
|
9
9
|
export interface SSEConfig {
|
|
10
10
|
url: string;
|
|
11
11
|
eventSourceInitDict?: EventSource.EventSourceInitDict;
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Helper struct type that will be used to pass types to the generic parameters of a Transport.
|
|
15
|
+
* Extends the common TransportGenerics, adding Provider specific types for this Batch endpoint.
|
|
16
|
+
*/
|
|
17
|
+
declare type SSETransportGenerics = TransportGenerics & {
|
|
18
|
+
/**
|
|
19
|
+
* Type details for any provider specific interfaces.
|
|
20
|
+
*/
|
|
21
|
+
Provider: {
|
|
22
|
+
/**
|
|
23
|
+
* Structure of the body of the request that will be sent to the data provider.
|
|
24
|
+
*/
|
|
25
|
+
RequestBody: unknown;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Transport implementation that establishes a long lived connection to a server using the SSE protocol and subcribes to updates.
|
|
30
|
+
*
|
|
31
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[SSETransportGenerics]])
|
|
32
|
+
*/
|
|
33
|
+
export declare class SSETransport<T extends SSETransportGenerics> implements Transport<T> {
|
|
14
34
|
private config;
|
|
15
35
|
EventSource: typeof EventSource;
|
|
16
|
-
cache: Cache<AdapterResponse<
|
|
36
|
+
cache: Cache<AdapterResponse<T['Response']>>;
|
|
17
37
|
eventListeners: {
|
|
18
38
|
type: string;
|
|
19
|
-
parseResponse: (evt: MessageEvent) => ProviderResult<
|
|
39
|
+
parseResponse: (evt: MessageEvent) => ProviderResult<T>;
|
|
20
40
|
}[];
|
|
21
41
|
sseConnection?: EventSource;
|
|
22
|
-
subscriptionSet: SubscriptionSet<
|
|
42
|
+
subscriptionSet: SubscriptionSet<T['Request']['Params']>;
|
|
23
43
|
timeOfLastReq: number;
|
|
24
|
-
localSubscriptions:
|
|
44
|
+
localSubscriptions: T['Request']['Params'][];
|
|
25
45
|
constructor(config: {
|
|
26
|
-
prepareSSEConnectionConfig: (params:
|
|
27
|
-
prepareKeepAliveRequest
|
|
28
|
-
prepareSubscriptionRequest: (params:
|
|
29
|
-
prepareUnsubscriptionRequest: (params:
|
|
46
|
+
prepareSSEConnectionConfig: (params: T['Request']['Params'][], context: AdapterContext<T>) => SSEConfig;
|
|
47
|
+
prepareKeepAliveRequest?: (context: AdapterContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
48
|
+
prepareSubscriptionRequest: (params: T['Request']['Params'][], context: AdapterContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
49
|
+
prepareUnsubscriptionRequest: (params: T['Request']['Params'][], context: AdapterContext<T>) => AxiosRequestConfig<T['Provider']['RequestBody']>;
|
|
30
50
|
eventListeners: {
|
|
31
51
|
type: string;
|
|
32
|
-
parseResponse: (evt: MessageEvent) => ProviderResult<
|
|
52
|
+
parseResponse: (evt: MessageEvent) => ProviderResult<T>[];
|
|
33
53
|
}[];
|
|
34
54
|
keepaliveSleepMs?: number;
|
|
35
55
|
pollingSleepMs?: number;
|
|
36
56
|
});
|
|
37
|
-
initialize(dependencies: AdapterDependencies, config: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
|
|
38
|
-
registerRequest(req: AdapterRequest<
|
|
39
|
-
backgroundExecute(context: AdapterContext<
|
|
57
|
+
initialize(dependencies: AdapterDependencies, config: AdapterConfig<T['CustomSettings']>, endpointName: string): Promise<void>;
|
|
58
|
+
registerRequest(req: AdapterRequest<T['Request']>, config: AdapterConfig<T['CustomSettings']>): Promise<void>;
|
|
59
|
+
backgroundExecute(context: AdapterContext<T>): Promise<number>;
|
|
40
60
|
}
|
|
61
|
+
export {};
|
package/transports/sse.js
CHANGED
|
@@ -4,11 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SSETransport = void 0;
|
|
7
|
-
const eventsource_1 = __importDefault(require("eventsource"));
|
|
8
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const eventsource_1 = __importDefault(require("eventsource"));
|
|
9
9
|
const util_1 = require("../util");
|
|
10
10
|
const _1 = require("./");
|
|
11
11
|
const logger = (0, util_1.makeLogger)('SSETransport');
|
|
12
|
+
/**
|
|
13
|
+
* Transport implementation that establishes a long lived connection to a server using the SSE protocol and subcribes to updates.
|
|
14
|
+
*
|
|
15
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[SSETransportGenerics]])
|
|
16
|
+
*/
|
|
12
17
|
class SSETransport {
|
|
13
18
|
constructor(config) {
|
|
14
19
|
this.config = config;
|
|
@@ -77,7 +82,8 @@ class SSETransport {
|
|
|
77
82
|
const unsubscribeRequest = this.config.prepareUnsubscriptionRequest(unsubscribeParams, context);
|
|
78
83
|
makeRequest(unsubscribeRequest);
|
|
79
84
|
}
|
|
80
|
-
if (
|
|
85
|
+
if (this.config.prepareKeepAliveRequest &&
|
|
86
|
+
desiredSubs.length &&
|
|
81
87
|
Date.now() - this.timeOfLastReq > context.adapterConfig.SSE_KEEPALIVE_SLEEP) {
|
|
82
88
|
const prepareKeepAliveRequest = this.config.prepareKeepAliveRequest(context);
|
|
83
89
|
makeRequest(prepareKeepAliveRequest);
|
package/transports/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import WebSocket from 'ws';
|
|
1
|
+
import WebSocket, { ClientOptions, RawData } from 'ws';
|
|
2
2
|
import { AdapterContext, AdapterDependencies } from '../adapter';
|
|
3
3
|
import { Cache } from '../cache';
|
|
4
|
-
import { AdapterConfig
|
|
4
|
+
import { AdapterConfig } from '../config';
|
|
5
5
|
import { BackgroundExecuteRateLimiter } from '../rate-limiting';
|
|
6
6
|
import { SubscriptionSet } from '../util';
|
|
7
7
|
import { AdapterRequest, AdapterResponse, ProviderResult } from '../util/request';
|
|
8
|
-
import { Transport,
|
|
9
|
-
|
|
8
|
+
import { Transport, TransportGenerics } from './';
|
|
9
|
+
export { WebSocket, RawData as WebSocketRawData };
|
|
10
|
+
declare type WebSocketClass = new (url: string, protocols?: string | string[] | undefined, options?: ClientOptions) => WebSocket;
|
|
10
11
|
export declare class WebSocketClassProvider {
|
|
11
12
|
static ctor: WebSocketClass;
|
|
12
13
|
static set(ctor: WebSocketClass): void;
|
|
@@ -15,9 +16,11 @@ export declare class WebSocketClassProvider {
|
|
|
15
16
|
/**
|
|
16
17
|
* Config object that is provided to the WebSocketTransport constructor.
|
|
17
18
|
*/
|
|
18
|
-
export interface WebSocketTransportConfig<
|
|
19
|
+
export interface WebSocketTransportConfig<T extends WebsocketTransportGenerics> {
|
|
19
20
|
/** Endpoint to which to open the WS connection*/
|
|
20
|
-
url: (context: AdapterContext<
|
|
21
|
+
url: (context: AdapterContext<T>) => Promise<string> | string;
|
|
22
|
+
/** Optional parameters used when establishing the WebSocket connection */
|
|
23
|
+
options?: (context: AdapterContext<T>) => Promise<ClientOptions> | ClientOptions;
|
|
21
24
|
/** Map of handlers for different WS lifecycle events */
|
|
22
25
|
handlers: {
|
|
23
26
|
/**
|
|
@@ -26,7 +29,7 @@ export interface WebSocketTransportConfig<AdapterParams, ProviderDataMessage, Cu
|
|
|
26
29
|
* @param wsConnection - the WebSocket with an established connection
|
|
27
30
|
* @returns an empty Promise, or void
|
|
28
31
|
*/
|
|
29
|
-
open: (wsConnection: WebSocket, context: AdapterContext<
|
|
32
|
+
open: (wsConnection: WebSocket, context: AdapterContext<T>) => Promise<void> | void;
|
|
30
33
|
/**
|
|
31
34
|
* Handles when the WS receives a message
|
|
32
35
|
*
|
|
@@ -34,7 +37,7 @@ export interface WebSocketTransportConfig<AdapterParams, ProviderDataMessage, Cu
|
|
|
34
37
|
* @param context - the background context for the Adapter
|
|
35
38
|
* @returns a list of cache entries of adapter responses to set in the cache
|
|
36
39
|
*/
|
|
37
|
-
message: (message:
|
|
40
|
+
message: (message: T['Provider']['WsMessage'], context: AdapterContext<T>) => ProviderResult<T>[] | undefined;
|
|
38
41
|
};
|
|
39
42
|
/** Map of "builders", functions that will be used to prepare specific WS messages */
|
|
40
43
|
builders: {
|
|
@@ -44,36 +47,49 @@ export interface WebSocketTransportConfig<AdapterParams, ProviderDataMessage, Cu
|
|
|
44
47
|
* @param params - the body of the adapter request
|
|
45
48
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
46
49
|
*/
|
|
47
|
-
subscribeMessage: (params:
|
|
50
|
+
subscribeMessage: (params: T['Request']['Params']) => unknown;
|
|
48
51
|
/**
|
|
49
52
|
* Builds a WS message that will be sent to unsubscribe to a specific feed
|
|
50
53
|
*
|
|
51
54
|
* @param params - the body of the adapter request
|
|
52
55
|
* @returns the WS message (can be any type as long as the [[WebSocket]] doesn't complain)
|
|
53
56
|
*/
|
|
54
|
-
unsubscribeMessage: (params:
|
|
57
|
+
unsubscribeMessage: (params: T['Request']['Params']) => unknown;
|
|
55
58
|
};
|
|
56
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Helper struct type that will be used to pass types to the generic parameters of a Transport.
|
|
62
|
+
* Extends the common TransportGenerics, adding Provider specific types for this Batch endpoint.
|
|
63
|
+
*/
|
|
64
|
+
declare type WebsocketTransportGenerics = TransportGenerics & {
|
|
65
|
+
/**
|
|
66
|
+
* Type details for any provider specific interfaces.
|
|
67
|
+
*/
|
|
68
|
+
Provider: {
|
|
69
|
+
/**
|
|
70
|
+
* Structure of any message that will come through the websocket connection.
|
|
71
|
+
*/
|
|
72
|
+
WsMessage: unknown;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
57
75
|
/**
|
|
58
76
|
* Transport implementation that takes incoming requests, adds them to an [[subscriptionSet]] and,
|
|
59
77
|
* through a WebSocket connection, subscribes to the relevant feeds to populate the cache.
|
|
60
78
|
*
|
|
61
|
-
* @typeParam
|
|
62
|
-
* @typeParam ProviderDataMessage - interface for a WS message containing processable data (i.e. not part of open/close/login/etc)
|
|
79
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[WebsocketTransportGenerics]])
|
|
63
80
|
*/
|
|
64
|
-
export declare class WebSocketTransport<
|
|
81
|
+
export declare class WebSocketTransport<T extends WebsocketTransportGenerics> implements Transport<T> {
|
|
65
82
|
private config;
|
|
66
|
-
cache: Cache<AdapterResponse<
|
|
83
|
+
cache: Cache<AdapterResponse<T['Response']>>;
|
|
67
84
|
rateLimiter: BackgroundExecuteRateLimiter;
|
|
68
|
-
subscriptionSet: SubscriptionSet<
|
|
69
|
-
localSubscriptions:
|
|
85
|
+
subscriptionSet: SubscriptionSet<T['Request']['Params']>;
|
|
86
|
+
localSubscriptions: T['Request']['Params'][];
|
|
70
87
|
wsConnection: WebSocket;
|
|
71
|
-
constructor(config: WebSocketTransportConfig<
|
|
72
|
-
initialize(dependencies: AdapterDependencies, config: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
|
|
73
|
-
registerRequest(req: AdapterRequest<
|
|
88
|
+
constructor(config: WebSocketTransportConfig<T>);
|
|
89
|
+
initialize(dependencies: AdapterDependencies, config: AdapterConfig<T['CustomSettings']>, endpointName: string): Promise<void>;
|
|
90
|
+
registerRequest(req: AdapterRequest<T['Request']>, config: AdapterConfig<T['CustomSettings']>): Promise<void>;
|
|
74
91
|
serializeMessage(payload: unknown): string;
|
|
75
|
-
deserializeMessage(data: WebSocket.Data):
|
|
76
|
-
establishWsConnection(context: AdapterContext<
|
|
77
|
-
backgroundExecute(context: AdapterContext<
|
|
92
|
+
deserializeMessage(data: WebSocket.Data): T['Provider']['WsMessage'];
|
|
93
|
+
establishWsConnection(context: AdapterContext<T>, url: string, options?: WebSocket.ClientOptions | undefined): Promise<unknown>;
|
|
94
|
+
backgroundExecute(context: AdapterContext<T>): Promise<number>;
|
|
78
95
|
}
|
|
79
|
-
export {};
|
package/transports/websocket.js
CHANGED
|
@@ -26,8 +26,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.WebSocketTransport = exports.WebSocketClassProvider = void 0;
|
|
29
|
+
exports.WebSocketTransport = exports.WebSocketClassProvider = exports.WebSocket = void 0;
|
|
30
30
|
const ws_1 = __importDefault(require("ws"));
|
|
31
|
+
exports.WebSocket = ws_1.default;
|
|
31
32
|
const util_1 = require("../util");
|
|
32
33
|
const _1 = require("./");
|
|
33
34
|
const transportMetrics = __importStar(require("./metrics"));
|
|
@@ -46,8 +47,7 @@ WebSocketClassProvider.ctor = ws_1.default;
|
|
|
46
47
|
* Transport implementation that takes incoming requests, adds them to an [[subscriptionSet]] and,
|
|
47
48
|
* through a WebSocket connection, subscribes to the relevant feeds to populate the cache.
|
|
48
49
|
*
|
|
49
|
-
* @typeParam
|
|
50
|
-
* @typeParam ProviderDataMessage - interface for a WS message containing processable data (i.e. not part of open/close/login/etc)
|
|
50
|
+
* @typeParam T - Helper struct type that will be used to pass types to the generic parameters (check [[WebsocketTransportGenerics]])
|
|
51
51
|
*/
|
|
52
52
|
class WebSocketTransport {
|
|
53
53
|
constructor(config) {
|
|
@@ -71,11 +71,10 @@ class WebSocketTransport {
|
|
|
71
71
|
deserializeMessage(data) {
|
|
72
72
|
return JSON.parse(data.toString());
|
|
73
73
|
}
|
|
74
|
-
establishWsConnection(context) {
|
|
74
|
+
establishWsConnection(context, url, options) {
|
|
75
75
|
return new Promise((resolve) => {
|
|
76
76
|
const ctor = WebSocketClassProvider.get();
|
|
77
|
-
|
|
78
|
-
this.wsConnection = new ctor(url);
|
|
77
|
+
this.wsConnection = new ctor(url, undefined, options);
|
|
79
78
|
this.wsConnection.addEventListener('open', async (event) => {
|
|
80
79
|
logger.debug(`Opened websocket connection. (event type ${event.type})`);
|
|
81
80
|
await this.config.handlers.open(this.wsConnection, context);
|
|
@@ -143,7 +142,9 @@ class WebSocketTransport {
|
|
|
143
142
|
}
|
|
144
143
|
if (!this.wsConnection && subscribes.length) {
|
|
145
144
|
logger.debug('No established connection and new subscriptions available, connecting to WS');
|
|
146
|
-
await this.
|
|
145
|
+
const url = context.adapterConfig.WS_API_ENDPOINT || (await this.config.url(context));
|
|
146
|
+
const options = this.config.options && (await this.config.options(context));
|
|
147
|
+
await this.establishWsConnection(context, url, options);
|
|
147
148
|
}
|
|
148
149
|
logger.debug('Sending subs/unsubs if there are any');
|
|
149
150
|
const messages = unsubscribes.concat(subscribes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/transports/websocket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAsD;AAW7C,oBAXF,YAAS,CAWE;AANlB,kCAAqD;AAErD,yBAA+E;AAC/E,4DAA6C;AAK7C,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;;AATH,wDAUC;AATQ,2BAAI,GAAmB,YAAS,CAAA;AAgFzC;;;;;GAKG;AACH,MAAa,kBAAkB;IAW7B,YAAoB,MAAmC;QAAnC,WAAM,GAAN,MAAM,CAA6B;QANvD,+FAA+F;QAC/F,iDAAiD;QACjD,uBAAkB,GAA6B,EAAE,CAAA;IAIS,CAAC;IAE3D,KAAK,CAAC,UAAU,CACd,YAAiC,EACjC,MAA0C,EAC1C,YAAoB;QAEpB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAA8C,CAAA;QACxE,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,4BAA4B,CAAA;QAC5D,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;IACnF,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAiC,EACjC,MAA0C;QAE1C,MAAM,CAAC,KAAK,CACV,0CAA0C,MAAM,CAAC,mBAAmB,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CACvI,CAAA;QACD,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAG,CAAC,cAAc,CAAC,QAAQ,EAC3B,GAAG,CAAC,cAAc,CAAC,IAAI,EACvB,MAAM,CAAC,mBAAmB,CAC3B,CAAA;IACH,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,qBAAqB,CACnB,OAA0B,EAC1B,GAAW,EACX,OAA6C;QAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;YACzC,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;YACrD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAsB,EAAE,EAAE;gBAC1E,MAAM,CAAC,KAAK,CAAC,4CAA4C,KAAK,CAAC,IAAI,GAAG,CAAC,CAAA;gBACvE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;gBAC3D,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAA;gBAC/D,6DAA6D;gBAC7D,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAA;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAClD,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAA;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,MAAM,SAAS,GAAG,IAAA,+BAA4B,EAAC,OAAO,EAAE,OAAO,CAAC,CAAA;oBAChE,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,CAAC,MAAM,qBAAqB,CAAC,CAAA;oBAC9D,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;iBACzE;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAA2B,EAAE,EAAE;gBAChF,MAAM,CAAC,KAAK,CACV,mDAAmD,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,OAAO,EAAE,CAC7F,CAAA;gBACD,gCAAgC;gBAChC,gBAAgB,CAAC,kBAAkB;qBAChC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBAC7D,GAAG,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAA2B,EAAE,EAAE;gBAC1E,MAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CACzF,CAAA;gBACD,8DAA8D;gBAC9D,6DAA6D;gBAC7D,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAA;YAC3C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,iBAAiB,CAAC,OAA0B;QAChD,MAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAA;QAClF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAEvD,4DAA4D;QAC5D,gBAAgB,CAAC,6BAA6B;aAC3C,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;aAC/E,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAE1B,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC5D,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC5F,CAAA;QACD,MAAM,UAAU,GAAG,eAAe;aAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aAC1C,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAE7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAChF,CAAA;QACD,MAAM,YAAY,GAAG,iBAAiB;aACnC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAC5C,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAE7B,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,uBAAuB,YAAY,CAAC,MAAM,iBAAiB,CAAC,CAAA;QAC7F,IAAI,UAAU,CAAC,MAAM,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAA;SACjD;QACD,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAA;SACrD;QAED,mDAAmD;QACnD,uCAAuC;QACvC,qCAAqC;QACrC,2CAA2C;QAE3C,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC5C,MAAM,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;YACtF,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;SAC3E;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,EAAE;YAC3C,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAA;YAC3F,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,eAAe,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACrF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3E,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;SACxD;QAED,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAChC;QAED,6CAA6C;QAC7C,gBAAgB,CAAC,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAA;QAEpF,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAClD,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAA;QAErC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC5E,CAAC;CACF;AA5JD,gDA4JC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ResultPath } from '../adapter';
|
|
2
|
+
interface ValidateResultNumberParams<T> {
|
|
3
|
+
data: T;
|
|
4
|
+
path?: ResultPath;
|
|
5
|
+
options?: {
|
|
6
|
+
inverse?: boolean;
|
|
7
|
+
};
|
|
8
|
+
missingDataErrorMsg?: string;
|
|
9
|
+
missingResultsErrorMsg?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function validateResultNumber<T>(params: ValidateResultNumberParams<T>): number;
|
|
12
|
+
export declare function getResult<T>(data: T, path: ResultPath): unknown;
|
|
13
|
+
export declare function getResultFromObject<T extends Record<string, T[keyof T]>>(data: T, path: ResultPath): unknown;
|
|
14
|
+
export declare function getResultFromArraylike<T extends string | ArrayLike<unknown>>(data: T, path: [number]): unknown;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getResultFromArraylike = exports.getResultFromObject = exports.getResult = exports.validateResultNumber = void 0;
|
|
7
|
+
const _1 = require(".");
|
|
8
|
+
const error_1 = require("../validation/error");
|
|
9
|
+
const logger_1 = require("./logger");
|
|
10
|
+
const object_path_1 = __importDefault(require("object-path"));
|
|
11
|
+
const logger = (0, logger_1.makeLogger)('DataValidation');
|
|
12
|
+
function validateResultNumber(params) {
|
|
13
|
+
const { data, path, options, missingDataErrorMsg = 'Data provider response empty', missingResultsErrorMsg = 'Result could not be found in path or is empty. This is likely an issue with the data provider or the input params/overrides.', } = params;
|
|
14
|
+
if (typeof data === 'undefined' ||
|
|
15
|
+
data === null ||
|
|
16
|
+
((0, _1.isObject)(data) && Object.keys(data).length === 0)) {
|
|
17
|
+
logger.error(missingDataErrorMsg, { data, path });
|
|
18
|
+
throw new error_1.AdapterDataProviderError({
|
|
19
|
+
message: missingDataErrorMsg,
|
|
20
|
+
statusCode: 502,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const result = path ? getResult(data, path) : data;
|
|
24
|
+
if (typeof result === 'undefined' || result === null) {
|
|
25
|
+
logger.error(missingResultsErrorMsg, { data, path });
|
|
26
|
+
throw new error_1.AdapterDataProviderError({
|
|
27
|
+
message: missingResultsErrorMsg,
|
|
28
|
+
statusCode: 502,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const num = Number(result);
|
|
32
|
+
if (num === 0 || isNaN(num)) {
|
|
33
|
+
const message = 'Invalid result received. This is likely an issue with the data provider or the input params/overrides.';
|
|
34
|
+
logger.error(message, { data, path });
|
|
35
|
+
throw new error_1.AdapterDataProviderError({
|
|
36
|
+
message,
|
|
37
|
+
statusCode: 400,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return options?.inverse ? 1 / num : num;
|
|
41
|
+
}
|
|
42
|
+
exports.validateResultNumber = validateResultNumber;
|
|
43
|
+
function getResult(data, path) {
|
|
44
|
+
if ((typeof data === 'string' || Array.isArray(data)) &&
|
|
45
|
+
Array.isArray(path) &&
|
|
46
|
+
(0, _1.isArraylikeAccessor)(path)) {
|
|
47
|
+
return getResultFromArraylike(data, path);
|
|
48
|
+
}
|
|
49
|
+
// Object-path handles accessing arrays, just need to coerce the type
|
|
50
|
+
return getResultFromObject(data, path);
|
|
51
|
+
}
|
|
52
|
+
exports.getResult = getResult;
|
|
53
|
+
function getResultFromObject(data, path) {
|
|
54
|
+
return object_path_1.default.get(data, path);
|
|
55
|
+
}
|
|
56
|
+
exports.getResultFromObject = getResultFromObject;
|
|
57
|
+
function getResultFromArraylike(data, path) {
|
|
58
|
+
return data[path[0]];
|
|
59
|
+
}
|
|
60
|
+
exports.getResultFromArraylike = getResultFromArraylike;
|
|
61
|
+
//# sourceMappingURL=data-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-validation.js","sourceRoot":"","sources":["../../../src/util/data-validation.ts"],"names":[],"mappings":";;;;;;AAAA,wBAAiD;AAEjD,+CAA8D;AAC9D,qCAAqC;AAErC,8DAAoC;AAEpC,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,gBAAgB,CAAC,CAAA;AAU3C,SAAgB,oBAAoB,CAAI,MAAqC;IAC3E,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,mBAAmB,GAAG,8BAA8B,EACpD,sBAAsB,GAAG,8HAA8H,GACxJ,GAAG,MAAM,CAAA;IAEV,IACE,OAAO,IAAI,KAAK,WAAW;QAC3B,IAAI,KAAK,IAAI;QACb,CAAC,IAAA,WAAQ,EAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAC7E;QACA,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACjD,MAAM,IAAI,gCAAwB,CAAC;YACjC,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAElD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,EAAE;QACpD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACpD,MAAM,IAAI,gCAAwB,CAAC;YACjC,OAAO,EAAE,sBAAsB;YAC/B,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;QAC3B,MAAM,OAAO,GACX,wGAAwG,CAAA;QAC1G,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,IAAI,gCAAwB,CAAC;YACjC,OAAO;YACP,UAAU,EAAE,GAAG;SAChB,CAAC,CAAA;KACH;IAED,OAAO,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AACzC,CAAC;AA1CD,oDA0CC;AAED,SAAgB,SAAS,CAAI,IAAO,EAAE,IAAgB;IACpD,IACE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAA,sBAAmB,EAAC,IAAI,CAAC,EACzB;QACA,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;KAC1C;IAED,qEAAqE;IACrE,OAAO,mBAAmB,CAAC,IAAkC,EAAE,IAAI,CAAC,CAAA;AACtE,CAAC;AAXD,8BAWC;AAED,SAAgB,mBAAmB,CACjC,IAAO,EACP,IAAgB;IAEhB,OAAO,qBAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACnC,CAAC;AALD,kDAKC;AAED,SAAgB,sBAAsB,CACpC,IAAO,EACP,IAAc;IAEd,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACtB,CAAC;AALD,wDAKC"}
|
package/util/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export declare const sleep: (ms: number) => Promise<void>;
|
|
|
10
10
|
export declare const isObject: (o: unknown) => boolean;
|
|
11
11
|
export declare const isArray: (o: unknown) => boolean;
|
|
12
12
|
export declare const isEmpty: (o: unknown) => boolean;
|
|
13
|
+
export declare function isArraylikeAccessor(x: unknown[]): x is [number];
|
|
13
14
|
export declare type PromiseOrValue<T> = Promise<T> | T;
|
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.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
17
|
+
exports.isArraylikeAccessor = exports.isEmpty = exports.isArray = exports.isObject = exports.sleep = void 0;
|
|
18
18
|
__exportStar(require("./request"), exports);
|
|
19
19
|
__exportStar(require("./logger"), exports);
|
|
20
20
|
__exportStar(require("./subscription-set/subscription-set"), exports);
|
|
@@ -35,4 +35,8 @@ const isArray = (o) => o !== null && typeof o === 'object' && Array.isArray(o);
|
|
|
35
35
|
exports.isArray = isArray;
|
|
36
36
|
const isEmpty = (o) => o === undefined || o === null || o === '';
|
|
37
37
|
exports.isEmpty = isEmpty;
|
|
38
|
+
function isArraylikeAccessor(x) {
|
|
39
|
+
return x.length === 1 && x.every((i) => typeof i === 'number');
|
|
40
|
+
}
|
|
41
|
+
exports.isArraylikeAccessor = isArraylikeAccessor;
|
|
38
42
|
//# 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,4CAAyB;AACzB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;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;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,2CAAwB;AACxB,sEAAmD;AAEnD;;;;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;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE,CAC9C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAA;AADtD,QAAA,QAAQ,YAC8C;AAE5D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAC7C,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAD5C,QAAA,OAAO,WACqC;AAElD,MAAM,OAAO,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;AAA5E,QAAA,OAAO,WAAqE;AAEzF,SAAgB,mBAAmB,CAAC,CAAY;IAC9C,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;AAChE,CAAC;AAFD,kDAEC"}
|
package/util/logger.js
CHANGED
|
@@ -39,9 +39,7 @@ const baseLogger = (0, pino_1.default)({
|
|
|
39
39
|
}
|
|
40
40
|
return {};
|
|
41
41
|
},
|
|
42
|
-
transport: process.env['DEBUG'] === 'true'
|
|
43
|
-
? debugTransport
|
|
44
|
-
: undefined,
|
|
42
|
+
transport: process.env['DEBUG'] === 'true' ? debugTransport : undefined,
|
|
45
43
|
});
|
|
46
44
|
exports.COLORS = [
|
|
47
45
|
'\u001b[31;1m',
|
|
@@ -98,9 +96,7 @@ const getNextColor = (0, exports.colorFactory)(exports.COLORS);
|
|
|
98
96
|
*/
|
|
99
97
|
const makeLogger = (layer) => baseLogger.child({
|
|
100
98
|
layer,
|
|
101
|
-
color: process.env['DEBUG'] === 'true'
|
|
102
|
-
? getNextColor()
|
|
103
|
-
: undefined,
|
|
99
|
+
color: process.env['DEBUG'] === 'true' ? getNextColor() : undefined,
|
|
104
100
|
});
|
|
105
101
|
exports.makeLogger = makeLogger;
|
|
106
102
|
const loggingContextMiddleware = (req, res, done) => {
|
package/util/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,sCAAwC;AAGxC,mCAAmC;AACnC,uDAAoD;AACpD,uEAAiE;AAEpD,QAAA,iBAAiB,GAAG,IAAI,oCAAiB,EAAE,CAAA;AAMxD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE;QACP,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,wCAAwC;QAChD,aAAa,EAAE,wDAAwD;QACvE,aAAa,EAAE,uBAAuB;KACvC;CACF,CAAA;AAED,wEAAwE;AACxE,MAAM,UAAU,GAAG,IAAA,cAAI,EAAC;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,qBAAY,CAAC,SAAS,CAAC,OAAO;IAChF,KAAK,EAAE;QACL,SAAS,CAAC,SAAS,EAAE,MAAM;YACzB,iCAAiC;YACjC,MAAM,UAAU,GAAG,qBAAU,CAAC,MAAM,EAAE,CAAA;YACtC,OAAO,MAAM,CAAC,KAAK,CACjB,IAAI,EACJ,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAA2B,CAC1E,CAAA;QACH,CAAC;KACF;IACD,KAAK;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,OAAO,EAAE;YACrD,MAAM,KAAK,GAAG,yBAAiB,CAAC,QAAQ,EAAW,CAAA;YACnD,IAAI,KAAK,EAAE;gBACT,OAAO,KAAK,CAAA;aACb;SACF;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,SAAS,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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"}
|