@chainlink/external-adapter-framework 0.26.0 → 0.27.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 +9 -19
- package/adapter/basic.js +42 -63
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +7 -7
- package/adapter/endpoint.js +17 -25
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.d.ts +3 -3
- package/adapter/price.js +1 -1
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +12 -14
- package/background-executor.js +5 -5
- package/background-executor.js.map +1 -1
- package/cache/index.d.ts +4 -5
- package/cache/index.js +8 -8
- package/cache/index.js.map +1 -1
- package/cache/response.d.ts +4 -4
- package/cache/response.js +7 -6
- package/cache/response.js.map +1 -1
- package/config/index.d.ts +51 -16
- package/config/index.js +76 -26
- package/config/index.js.map +1 -1
- package/index.d.ts +4 -4
- package/index.js +25 -21
- package/index.js.map +1 -1
- package/metrics/index.d.ts +8 -8
- package/metrics/index.js +13 -11
- package/metrics/index.js.map +1 -1
- package/metrics/util.d.ts +1 -2
- package/metrics/util.js.map +1 -1
- package/package.json +1 -1
- package/rate-limiting/index.d.ts +4 -4
- package/rate-limiting/index.js +13 -13
- package/rate-limiting/index.js.map +1 -1
- package/transports/abstract/subscription.d.ts +5 -6
- package/transports/abstract/subscription.js +4 -4
- package/transports/abstract/subscription.js.map +1 -1
- package/transports/http.d.ts +8 -9
- package/transports/http.js +14 -14
- package/transports/http.js.map +1 -1
- package/transports/index.d.ts +15 -8
- package/transports/index.js +28 -0
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +1 -2
- package/transports/metrics.js.map +1 -1
- package/transports/sse.d.ts +3 -4
- package/transports/sse.js +8 -8
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +1 -2
- package/transports/websocket.js +7 -7
- package/transports/websocket.js.map +1 -1
- package/util/logger.js +1 -1
- package/util/logger.js.map +1 -1
- package/util/requester.d.ts +2 -2
- package/util/requester.js +4 -4
- package/util/requester.js.map +1 -1
- package/util/subscription-set/subscription-set.d.ts +2 -2
- package/util/subscription-set/subscription-set.js +3 -3
- package/util/subscription-set/subscription-set.js.map +1 -1
- package/validation/index.js +11 -10
- package/validation/index.js.map +1 -1
package/adapter/basic.d.ts
CHANGED
|
@@ -1,32 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AdapterRequest, AdapterResponse
|
|
1
|
+
import { BaseAdapterSettings, AdapterConfig } from '../config';
|
|
2
|
+
import { AdapterRequest, AdapterResponse } from '../util';
|
|
3
3
|
import { AdapterEndpoint } from './endpoint';
|
|
4
|
-
import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig,
|
|
4
|
+
import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig, EndpointGenerics } from './types';
|
|
5
5
|
/**
|
|
6
6
|
* Main class to represent an External Adapter
|
|
7
7
|
*/
|
|
8
|
-
export declare class Adapter<
|
|
8
|
+
export declare class Adapter<T extends AdapterConfig = AdapterConfig> implements Omit<AdapterParams<T>, 'bootstrap'> {
|
|
9
9
|
name: Uppercase<string>;
|
|
10
10
|
defaultEndpoint?: string | undefined;
|
|
11
|
-
endpoints: AdapterEndpoint<
|
|
12
|
-
|
|
13
|
-
}>>[];
|
|
14
|
-
envDefaultOverrides?: Partial<BaseAdapterConfig> | undefined;
|
|
15
|
-
customSettings?: SettingsMap | undefined;
|
|
11
|
+
endpoints: AdapterEndpoint<EndpointGenerics>[];
|
|
12
|
+
envDefaultOverrides?: Partial<BaseAdapterSettings> | undefined;
|
|
16
13
|
rateLimiting?: AdapterRateLimitingConfig | undefined;
|
|
17
14
|
envVarsPrefix?: string;
|
|
18
15
|
initialized: boolean;
|
|
19
16
|
/** Object containing alias translations for all endpoints */
|
|
20
|
-
endpointsMap: Record<string, AdapterEndpoint<
|
|
21
|
-
CustomSettings: CustomSettings;
|
|
22
|
-
}>>>;
|
|
17
|
+
endpointsMap: Record<string, AdapterEndpoint<EndpointGenerics>>;
|
|
23
18
|
/** Initialized dependencies that the adapter will use */
|
|
24
19
|
dependencies: AdapterDependencies;
|
|
25
20
|
/** Configuration params for various adapter properties */
|
|
26
|
-
config:
|
|
21
|
+
config: T;
|
|
27
22
|
/** Bootstrap function that will run when initializing the adapter */
|
|
28
23
|
private readonly bootstrap?;
|
|
29
|
-
constructor(params: AdapterParams<
|
|
24
|
+
constructor(params: AdapterParams<T>);
|
|
30
25
|
/**
|
|
31
26
|
* Initializes all of the [[Transport]]s in the adapter, passing along any [[AdapterDependencies]] and [[AdapterConfig]].
|
|
32
27
|
* Additionally, it builds a map out of all the endpoint names and aliases (checking for duplicates).
|
|
@@ -43,11 +38,6 @@ export declare class Adapter<CustomSettings extends CustomAdapterSettings = Sett
|
|
|
43
38
|
*
|
|
44
39
|
*/
|
|
45
40
|
private calculateRateLimitAllocations;
|
|
46
|
-
/**
|
|
47
|
-
* Creates a list of key/value pairs that need to be censored in the logs
|
|
48
|
-
* using the sensitive flag in the adapter config
|
|
49
|
-
*/
|
|
50
|
-
private buildCensorList;
|
|
51
41
|
/**
|
|
52
42
|
* Logs a warning for certain configs if set to particular values.
|
|
53
43
|
* Used to warn stakeholders of potential risks.
|
package/adapter/basic.js
CHANGED
|
@@ -11,7 +11,6 @@ const config_1 = require("../config");
|
|
|
11
11
|
const metrics_2 = require("../metrics");
|
|
12
12
|
const rate_limiting_1 = require("../rate-limiting");
|
|
13
13
|
const util_1 = require("../util");
|
|
14
|
-
const censor_list_1 = __importDefault(require("../util/censor/censor-list"));
|
|
15
14
|
const requester_1 = require("../util/requester");
|
|
16
15
|
const error_1 = require("../validation/error");
|
|
17
16
|
const logger = (0, util_1.makeLogger)('Adapter');
|
|
@@ -28,15 +27,10 @@ class Adapter {
|
|
|
28
27
|
this.name = params.name;
|
|
29
28
|
this.defaultEndpoint = params.defaultEndpoint?.toLowerCase();
|
|
30
29
|
this.endpoints = params.endpoints;
|
|
31
|
-
this.envDefaultOverrides = params.envDefaultOverrides;
|
|
32
|
-
this.customSettings = params.customSettings;
|
|
33
30
|
this.rateLimiting = params.rateLimiting;
|
|
34
31
|
this.bootstrap = params.bootstrap;
|
|
35
|
-
this.config =
|
|
36
|
-
|
|
37
|
-
customSettings: this.customSettings,
|
|
38
|
-
envVarsPrefix: this.envVarsPrefix,
|
|
39
|
-
});
|
|
32
|
+
this.config = params.config || new config_1.AdapterConfig({});
|
|
33
|
+
this.config.initialize();
|
|
40
34
|
this.normalizeEndpointNames();
|
|
41
35
|
this.calculateRateLimitAllocations();
|
|
42
36
|
}
|
|
@@ -51,7 +45,7 @@ class Adapter {
|
|
|
51
45
|
// Initialize metrics to register them with the prom-client
|
|
52
46
|
metrics_2.metrics.initialize();
|
|
53
47
|
// Building configs during initialization to avoid validation errors during construction
|
|
54
|
-
|
|
48
|
+
this.config.validate();
|
|
55
49
|
// Log warnings for risks associated with certain configs and values
|
|
56
50
|
this.logConfigWarnings();
|
|
57
51
|
if (this.bootstrap) {
|
|
@@ -68,11 +62,11 @@ class Adapter {
|
|
|
68
62
|
this.endpointsMap[alias] = endpoint;
|
|
69
63
|
}
|
|
70
64
|
logger.debug(`Initializing endpoint "${endpoint.name}"...`);
|
|
71
|
-
await endpoint.initialize(this.name, this.dependencies, this.config);
|
|
65
|
+
await endpoint.initialize(this.name, this.dependencies, this.config.settings);
|
|
72
66
|
}
|
|
73
67
|
// Build list of key/values that need to be redacted in logs
|
|
74
68
|
// Populates the static array in CensorList to use in censor-transport
|
|
75
|
-
this.buildCensorList();
|
|
69
|
+
this.config.buildCensorList();
|
|
76
70
|
logger.debug('Adapter initialization complete.');
|
|
77
71
|
this.initialized = true;
|
|
78
72
|
}
|
|
@@ -115,43 +109,24 @@ class Adapter {
|
|
|
115
109
|
logger.debug(`Endpoint [${endpoint.name}] - ${endpoint.rateLimiting?.allocationPercentage}%`);
|
|
116
110
|
}
|
|
117
111
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Creates a list of key/value pairs that need to be censored in the logs
|
|
120
|
-
* using the sensitive flag in the adapter config
|
|
121
|
-
*/
|
|
122
|
-
buildCensorList() {
|
|
123
|
-
const censorList = Object.entries(config_1.BaseSettings)
|
|
124
|
-
.concat(Object.entries(this.customSettings || {}))
|
|
125
|
-
.filter(([name, setting]) => setting &&
|
|
126
|
-
setting.type === 'string' &&
|
|
127
|
-
setting.sensitive &&
|
|
128
|
-
this.config[name])
|
|
129
|
-
.map(([name]) => ({
|
|
130
|
-
key: name,
|
|
131
|
-
// Escaping potential special characters in values before creating regex
|
|
132
|
-
value: new RegExp(
|
|
133
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
134
|
-
this.config[name].replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'gi'),
|
|
135
|
-
}));
|
|
136
|
-
censor_list_1.default.set(censorList);
|
|
137
|
-
}
|
|
138
112
|
/**
|
|
139
113
|
* Logs a warning for certain configs if set to particular values.
|
|
140
114
|
* Used to warn stakeholders of potential risks.
|
|
141
115
|
*/
|
|
142
116
|
logConfigWarnings() {
|
|
143
|
-
if (this.config.LOG_LEVEL.toUpperCase() === 'DEBUG' ||
|
|
144
|
-
this.config.LOG_LEVEL.toUpperCase() === 'TRACE') {
|
|
145
|
-
logger.warn(`LOG_LEVEL has been set to ${this.config.LOG_LEVEL.toUpperCase()}. Setting higher log levels results in increased memory usage and potentially slower performance.`);
|
|
117
|
+
if (this.config.settings.LOG_LEVEL.toUpperCase() === 'DEBUG' ||
|
|
118
|
+
this.config.settings.LOG_LEVEL.toUpperCase() === 'TRACE') {
|
|
119
|
+
logger.warn(`LOG_LEVEL has been set to ${this.config.settings.LOG_LEVEL.toUpperCase()}. Setting higher log levels results in increased memory usage and potentially slower performance.`);
|
|
146
120
|
}
|
|
147
|
-
if (this.config.DEBUG === true) {
|
|
121
|
+
if (this.config.settings.DEBUG === true) {
|
|
148
122
|
logger.warn(`The adapter is running with DEBUG mode on.`);
|
|
149
123
|
}
|
|
150
|
-
if (this.config.METRICS_ENABLED === false) {
|
|
124
|
+
if (this.config.settings.METRICS_ENABLED === false) {
|
|
151
125
|
logger.warn(`METRICS_ENABLED has been set to false. Metrics should not be disabled in a production environment.`);
|
|
152
126
|
}
|
|
153
|
-
if (this.config.MAX_PAYLOAD_SIZE_LIMIT !==
|
|
154
|
-
|
|
127
|
+
if (this.config.settings.MAX_PAYLOAD_SIZE_LIMIT !==
|
|
128
|
+
config_1.BaseSettingsDefinition.MAX_PAYLOAD_SIZE_LIMIT.default) {
|
|
129
|
+
logger.warn(`MAX_PAYLOAD_SIZE_LIMIT has been set to ${this.config.settings.MAX_PAYLOAD_SIZE_LIMIT}. This setting should only be set when absolutely necessary.`);
|
|
155
130
|
}
|
|
156
131
|
}
|
|
157
132
|
/**
|
|
@@ -164,25 +139,25 @@ class Adapter {
|
|
|
164
139
|
initializeDependencies(inputDependencies) {
|
|
165
140
|
const dependencies = inputDependencies || {};
|
|
166
141
|
if (!dependencies.redisClient) {
|
|
167
|
-
if (this.config.CACHE_TYPE === 'redis') {
|
|
168
|
-
const maxCooldown = this.config.CACHE_REDIS_MAX_RECONNECT_COOLDOWN;
|
|
142
|
+
if (this.config.settings.CACHE_TYPE === 'redis') {
|
|
143
|
+
const maxCooldown = this.config.settings.CACHE_REDIS_MAX_RECONNECT_COOLDOWN;
|
|
169
144
|
const redisOptions = {
|
|
170
145
|
enableAutoPipelining: true,
|
|
171
|
-
host: this.config.CACHE_REDIS_HOST,
|
|
172
|
-
port: this.config.CACHE_REDIS_PORT,
|
|
173
|
-
password: this.config.CACHE_REDIS_PASSWORD,
|
|
174
|
-
path: this.config.CACHE_REDIS_PATH,
|
|
175
|
-
timeout: this.config.CACHE_REDIS_TIMEOUT,
|
|
146
|
+
host: this.config.settings.CACHE_REDIS_HOST,
|
|
147
|
+
port: this.config.settings.CACHE_REDIS_PORT,
|
|
148
|
+
password: this.config.settings.CACHE_REDIS_PASSWORD,
|
|
149
|
+
path: this.config.settings.CACHE_REDIS_PATH,
|
|
150
|
+
timeout: this.config.settings.CACHE_REDIS_TIMEOUT,
|
|
176
151
|
retryStrategy(times) {
|
|
177
152
|
metrics_2.metrics.get('redisRetriesCount').inc();
|
|
178
153
|
logger.warn(`Redis reconnect attempt #${times}`);
|
|
179
154
|
return Math.min(times * 100, maxCooldown); // Next reconnect attempt time
|
|
180
155
|
},
|
|
181
|
-
connectTimeout: this.config.CACHE_REDIS_CONNECTION_TIMEOUT,
|
|
156
|
+
connectTimeout: this.config.settings.CACHE_REDIS_CONNECTION_TIMEOUT,
|
|
182
157
|
maxRetriesPerRequest: 30, // Limits the number of retries before the adapter shuts down
|
|
183
158
|
};
|
|
184
|
-
if (this.config.CACHE_REDIS_URL) {
|
|
185
|
-
dependencies.redisClient = new ioredis_1.default(this.config.CACHE_REDIS_URL, redisOptions);
|
|
159
|
+
if (this.config.settings.CACHE_REDIS_URL) {
|
|
160
|
+
dependencies.redisClient = new ioredis_1.default(this.config.settings.CACHE_REDIS_URL, redisOptions);
|
|
186
161
|
}
|
|
187
162
|
else {
|
|
188
163
|
dependencies.redisClient = new ioredis_1.default(redisOptions);
|
|
@@ -193,18 +168,21 @@ class Adapter {
|
|
|
193
168
|
}
|
|
194
169
|
}
|
|
195
170
|
if (!dependencies.cache) {
|
|
196
|
-
dependencies.cache = cache_1.CacheFactory.buildCache({
|
|
171
|
+
dependencies.cache = cache_1.CacheFactory.buildCache({
|
|
172
|
+
cacheType: this.config.settings.CACHE_TYPE,
|
|
173
|
+
maxSizeForLocalCache: this.config.settings.CACHE_MAX_ITEMS,
|
|
174
|
+
}, dependencies.redisClient);
|
|
197
175
|
}
|
|
198
|
-
const rateLimitingTier = (0, rate_limiting_1.getRateLimitingTier)(this.config, this.rateLimiting?.tiers);
|
|
176
|
+
const rateLimitingTier = (0, rate_limiting_1.getRateLimitingTier)(this.config.settings, this.rateLimiting?.tiers);
|
|
199
177
|
const highestTierValue = (0, rate_limiting_1.highestRateLimitTiers)(this.rateLimiting?.tiers);
|
|
200
|
-
const rateLimitTierFromConfig = (0, rate_limiting_1.buildRateLimitTiersFromConfig)(this.config);
|
|
178
|
+
const rateLimitTierFromConfig = (0, rate_limiting_1.buildRateLimitTiersFromConfig)(this.config.settings);
|
|
201
179
|
const perSecRateLimit = rateLimitTierFromConfig?.rateLimit1s || 0;
|
|
202
180
|
const perMinuteRateLimit = (rateLimitTierFromConfig?.rateLimit1m || 0) * 60;
|
|
203
181
|
if (perSecRateLimit > highestTierValue) {
|
|
204
182
|
logger.warn(`The configured RATE_LIMIT_CAPACITY_SECOND value is higher than the highest tier value in the adapter rate limiting configurations ${highestTierValue}`);
|
|
205
183
|
}
|
|
206
184
|
if (perMinuteRateLimit > highestTierValue) {
|
|
207
|
-
logger.warn(`The configured ${this.config.RATE_LIMIT_CAPACITY_MINUTE
|
|
185
|
+
logger.warn(`The configured ${this.config.settings.RATE_LIMIT_CAPACITY_MINUTE
|
|
208
186
|
? 'RATE_LIMIT_CAPACITY_MINUTE'
|
|
209
187
|
: 'RATE_LIMIT_CAPACITY'}
|
|
210
188
|
value is higher than the highest tier value the adapter rate limiting configurations ${highestTierValue}`);
|
|
@@ -213,10 +191,10 @@ class Adapter {
|
|
|
213
191
|
dependencies.rateLimiter = new rate_limiting_1.SimpleCountingRateLimiter().initialize(this.endpoints, rateLimitingTier);
|
|
214
192
|
}
|
|
215
193
|
if (!dependencies.subscriptionSetFactory) {
|
|
216
|
-
dependencies.subscriptionSetFactory = new util_1.SubscriptionSetFactory(this.config, this.name, dependencies.redisClient);
|
|
194
|
+
dependencies.subscriptionSetFactory = new util_1.SubscriptionSetFactory(this.config.settings, this.name, dependencies.redisClient);
|
|
217
195
|
}
|
|
218
196
|
if (!dependencies.requester) {
|
|
219
|
-
dependencies.requester = new requester_1.Requester(dependencies.rateLimiter, this.config);
|
|
197
|
+
dependencies.requester = new requester_1.Requester(dependencies.rateLimiter, this.config.settings);
|
|
220
198
|
}
|
|
221
199
|
return dependencies;
|
|
222
200
|
}
|
|
@@ -229,8 +207,9 @@ class Adapter {
|
|
|
229
207
|
async findResponseInCache(req) {
|
|
230
208
|
const response = await this.dependencies.cache.get(req.requestContext.cacheKey);
|
|
231
209
|
if (response) {
|
|
232
|
-
if (this.config.METRICS_ENABLED &&
|
|
233
|
-
|
|
210
|
+
if (this.config.settings.METRICS_ENABLED &&
|
|
211
|
+
this.config.settings.EXPERIMENTAL_METRICS_ENABLED) {
|
|
212
|
+
const label = (0, metrics_1.cacheMetricsLabel)(req.requestContext.cacheKey, req.requestContext.meta?.metrics?.feedId || 'N/A', this.config.settings.CACHE_TYPE);
|
|
234
213
|
// Record cache staleness and cache get count and value
|
|
235
214
|
const now = Date.now();
|
|
236
215
|
(0, metrics_1.cacheGet)(label, response.result, {
|
|
@@ -257,7 +236,7 @@ class Adapter {
|
|
|
257
236
|
async handleRequest(req, replySent) {
|
|
258
237
|
// Get transport, must be here because it's already checked in the validator
|
|
259
238
|
const endpoint = this.endpointsMap[req.requestContext.endpointName];
|
|
260
|
-
const transport = endpoint.
|
|
239
|
+
const transport = endpoint.transportRoutes.get(req.requestContext.transportName);
|
|
261
240
|
// First try to find the response in our cache, keep it ready
|
|
262
241
|
const cachedResponse = await this.findResponseInCache(req);
|
|
263
242
|
// Next we fire off the transport's registration of the request if defined, regardless of if we already have a cached response.
|
|
@@ -275,7 +254,7 @@ class Adapter {
|
|
|
275
254
|
// `await` is required to catch the error, you'll get an unhandled promise rejection otherwise
|
|
276
255
|
// Disable non-null assertion operator because we already checked for the existence of registerRequest
|
|
277
256
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
278
|
-
return await transport.registerRequest(req, this.config);
|
|
257
|
+
return await transport.registerRequest(req, this.config.settings);
|
|
279
258
|
}
|
|
280
259
|
catch (err) {
|
|
281
260
|
logger.error(`Error registering request: ${err}`);
|
|
@@ -292,7 +271,7 @@ class Adapter {
|
|
|
292
271
|
return cachedResponse;
|
|
293
272
|
}
|
|
294
273
|
// If there was no cached response, execute the foregroundExecute if defined
|
|
295
|
-
const immediateResponse = transport.foregroundExecute && (await transport.foregroundExecute(req, this.config));
|
|
274
|
+
const immediateResponse = transport.foregroundExecute && (await transport.foregroundExecute(req, this.config.settings));
|
|
296
275
|
if (immediateResponse) {
|
|
297
276
|
logger.debug('Got immediate response from transport, sending as response');
|
|
298
277
|
return immediateResponse;
|
|
@@ -308,12 +287,12 @@ class Adapter {
|
|
|
308
287
|
// Observe the idle time taken for polling response
|
|
309
288
|
const metricsTimer = metrics_2.metrics
|
|
310
289
|
.get('transportPollingDurationSeconds')
|
|
311
|
-
.labels({
|
|
290
|
+
.labels({ adapter_endpoint: req.requestContext.endpointName })
|
|
312
291
|
.startTimer();
|
|
313
292
|
logger.debug('Transport is set up, polling cache for response...');
|
|
314
293
|
const response = await (0, cache_1.pollResponseFromCache)(this.dependencies.cache, req.requestContext.cacheKey, {
|
|
315
|
-
maxRetries: this.config.CACHE_POLLING_MAX_RETRIES,
|
|
316
|
-
sleep: this.config.CACHE_POLLING_SLEEP_MS,
|
|
294
|
+
maxRetries: this.config.settings.CACHE_POLLING_MAX_RETRIES,
|
|
295
|
+
sleep: this.config.settings.CACHE_POLLING_SLEEP_MS,
|
|
317
296
|
});
|
|
318
297
|
metricsTimer({ succeeded: String(!!response) });
|
|
319
298
|
if (response) {
|
|
@@ -323,7 +302,7 @@ class Adapter {
|
|
|
323
302
|
// Record polling mechanism failure to return response
|
|
324
303
|
metrics_2.metrics
|
|
325
304
|
.get('transportPollingFailureCount')
|
|
326
|
-
.labels({
|
|
305
|
+
.labels({ adapter_endpoint: req.requestContext.endpointName })
|
|
327
306
|
.inc();
|
|
328
307
|
logger.debug('Ran out of polling attempts, returning timeout');
|
|
329
308
|
throw new error_1.AdapterTimeoutError({
|
package/adapter/basic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../src/adapter/basic.ts"],"names":[],"mappings":"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"}
|
package/adapter/endpoint.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Transport } from '../transports';
|
|
1
|
+
import { TransportRoutes } from '../transports';
|
|
3
2
|
import { AdapterRequest } from '../util';
|
|
4
3
|
import { SpecificInputParameters } from '../validation';
|
|
5
4
|
import { InputValidator } from '../validation/input-validator';
|
|
6
5
|
import { AdapterDependencies, AdapterEndpointInterface, AdapterEndpointParams, CustomInputValidator, EndpointGenerics, EndpointRateLimitingConfig, RequestTransform } from './types';
|
|
6
|
+
export declare const DEFAULT_TRANSPORT_NAME = "default_single_transport";
|
|
7
7
|
/**
|
|
8
8
|
* Main class to represent an endpoint within an External Adapter
|
|
9
9
|
*/
|
|
10
10
|
export declare class AdapterEndpoint<T extends EndpointGenerics> implements AdapterEndpointInterface<T> {
|
|
11
11
|
name: string;
|
|
12
12
|
aliases?: string[] | undefined;
|
|
13
|
-
|
|
13
|
+
transportRoutes: TransportRoutes<T>;
|
|
14
14
|
inputParameters: SpecificInputParameters<T['Request']['Params']>;
|
|
15
15
|
rateLimiting?: EndpointRateLimitingConfig | undefined;
|
|
16
16
|
validator: InputValidator;
|
|
@@ -18,16 +18,16 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
|
|
|
18
18
|
customInputValidation?: CustomInputValidator<T>;
|
|
19
19
|
requestTransforms?: RequestTransform<T>[];
|
|
20
20
|
overrides?: Record<string, string> | undefined;
|
|
21
|
-
customRouter?: (req: AdapterRequest<T['Request']>,
|
|
21
|
+
customRouter?: (req: AdapterRequest<T['Request']>, settings: T['Settings']) => string;
|
|
22
22
|
defaultTransport?: string;
|
|
23
23
|
constructor(params: AdapterEndpointParams<T>);
|
|
24
24
|
/**
|
|
25
25
|
* Performs all necessary initialization processes that are async or need async initialized dependencies
|
|
26
26
|
*
|
|
27
27
|
* @param dependencies - all dependencies initialized at the adapter level
|
|
28
|
-
* @param
|
|
28
|
+
* @param adapterSettings - configuration for the adapter
|
|
29
29
|
*/
|
|
30
|
-
initialize(adapterName: string, dependencies: AdapterDependencies,
|
|
30
|
+
initialize(adapterName: string, dependencies: AdapterDependencies, adapterSettings: T['Settings']): Promise<void>;
|
|
31
31
|
/**
|
|
32
32
|
* Takes the incoming request and applies all request transforms in the adapter
|
|
33
33
|
*
|
|
@@ -43,7 +43,7 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
|
|
|
43
43
|
* @returns the modified (or new) request
|
|
44
44
|
*/
|
|
45
45
|
symbolOverrider(req: AdapterRequest): AdapterRequest<import("../util").RequestGenerics>;
|
|
46
|
-
getTransportNameForRequest(req: AdapterRequest<T['Request']>,
|
|
46
|
+
getTransportNameForRequest(req: AdapterRequest<T['Request']>, settings: T['Settings']): string;
|
|
47
47
|
/**
|
|
48
48
|
* Default routing strategy. Will try and use the transport input parameter if present in the request body.
|
|
49
49
|
*
|
package/adapter/endpoint.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AdapterEndpoint = void 0;
|
|
3
|
+
exports.AdapterEndpoint = exports.DEFAULT_TRANSPORT_NAME = void 0;
|
|
4
4
|
const response_1 = require("../cache/response");
|
|
5
|
+
const transports_1 = require("../transports");
|
|
5
6
|
const util_1 = require("../util");
|
|
6
7
|
const error_1 = require("../validation/error");
|
|
7
8
|
const input_validator_1 = require("../validation/input-validator");
|
|
8
9
|
const logger = (0, util_1.makeLogger)('AdapterEndpoint');
|
|
9
|
-
|
|
10
|
+
exports.DEFAULT_TRANSPORT_NAME = 'default_single_transport';
|
|
10
11
|
/**
|
|
11
12
|
* Main class to represent an endpoint within an External Adapter
|
|
12
13
|
*/
|
|
@@ -15,22 +16,13 @@ class AdapterEndpoint {
|
|
|
15
16
|
this.name = params.name;
|
|
16
17
|
this.aliases = params.aliases;
|
|
17
18
|
// These ifs are annoying but it's to make it type safe
|
|
18
|
-
if ('
|
|
19
|
-
this.
|
|
19
|
+
if ('transportRoutes' in params) {
|
|
20
|
+
this.transportRoutes = params.transportRoutes;
|
|
20
21
|
this.customRouter = params.customRouter;
|
|
21
22
|
this.defaultTransport = params.defaultTransport;
|
|
22
|
-
// Validate transport names
|
|
23
|
-
for (const transportName in this.transports) {
|
|
24
|
-
// This is intentional, to keep names to one word only
|
|
25
|
-
if (!/^[a-z]+$/.test(transportName)) {
|
|
26
|
-
throw new Error(`Transport name "${transportName}" is invalid. Names in the AdapterEndpoint transports map can only include lowercase letters.`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
23
|
}
|
|
30
24
|
else {
|
|
31
|
-
this.
|
|
32
|
-
[DEFAULT_TRANSPORT_NAME]: params.transport,
|
|
33
|
-
};
|
|
25
|
+
this.transportRoutes = new transports_1.TransportRoutes().register(exports.DEFAULT_TRANSPORT_NAME, params.transport);
|
|
34
26
|
}
|
|
35
27
|
this.inputParameters = params.inputParameters;
|
|
36
28
|
this.rateLimiting = params.rateLimiting;
|
|
@@ -44,12 +36,12 @@ class AdapterEndpoint {
|
|
|
44
36
|
* Performs all necessary initialization processes that are async or need async initialized dependencies
|
|
45
37
|
*
|
|
46
38
|
* @param dependencies - all dependencies initialized at the adapter level
|
|
47
|
-
* @param
|
|
39
|
+
* @param adapterSettings - configuration for the adapter
|
|
48
40
|
*/
|
|
49
|
-
async initialize(adapterName, dependencies,
|
|
41
|
+
async initialize(adapterName, dependencies, adapterSettings) {
|
|
50
42
|
const responseCache = new response_1.ResponseCache({
|
|
51
43
|
dependencies,
|
|
52
|
-
|
|
44
|
+
adapterSettings: adapterSettings,
|
|
53
45
|
adapterName,
|
|
54
46
|
endpointName: this.name,
|
|
55
47
|
inputParameters: this.inputParameters,
|
|
@@ -59,8 +51,8 @@ class AdapterEndpoint {
|
|
|
59
51
|
responseCache,
|
|
60
52
|
};
|
|
61
53
|
logger.debug(`Initializing transports for endpoint "${this.name}"...`);
|
|
62
|
-
for (const [transportName, transport] of
|
|
63
|
-
await transport.initialize(transportDependencies,
|
|
54
|
+
for (const [transportName, transport] of this.transportRoutes.entries()) {
|
|
55
|
+
await transport.initialize(transportDependencies, adapterSettings, this.name, transportName);
|
|
64
56
|
}
|
|
65
57
|
}
|
|
66
58
|
/**
|
|
@@ -98,16 +90,16 @@ class AdapterEndpoint {
|
|
|
98
90
|
}
|
|
99
91
|
return req;
|
|
100
92
|
}
|
|
101
|
-
getTransportNameForRequest(req,
|
|
93
|
+
getTransportNameForRequest(req, settings) {
|
|
102
94
|
// If there's only one transport, return it
|
|
103
|
-
if (this.
|
|
104
|
-
return DEFAULT_TRANSPORT_NAME;
|
|
95
|
+
if (this.transportRoutes.get(exports.DEFAULT_TRANSPORT_NAME)) {
|
|
96
|
+
return exports.DEFAULT_TRANSPORT_NAME;
|
|
105
97
|
}
|
|
106
98
|
// Attempt to get the transport to use from:
|
|
107
99
|
// 1. Custom router (whatever logic the user wrote)
|
|
108
100
|
// 2. Default router (try to get it from the input params)
|
|
109
101
|
// 3. Default transport (if it was specified in the instance params)
|
|
110
|
-
const rawTransportName = (this.customRouter && this.customRouter(req,
|
|
102
|
+
const rawTransportName = (this.customRouter && this.customRouter(req, settings)) ||
|
|
111
103
|
this.defaultRouter(req) ||
|
|
112
104
|
this.defaultTransport;
|
|
113
105
|
if (!rawTransportName) {
|
|
@@ -117,10 +109,10 @@ class AdapterEndpoint {
|
|
|
117
109
|
});
|
|
118
110
|
}
|
|
119
111
|
const transportName = rawTransportName.toLowerCase();
|
|
120
|
-
if (!this.
|
|
112
|
+
if (!this.transportRoutes.get(transportName)) {
|
|
121
113
|
throw new error_1.AdapterError({
|
|
122
114
|
statusCode: 400,
|
|
123
|
-
message: `No transport found for key "${transportName}", must be one of ${JSON.stringify(
|
|
115
|
+
message: `No transport found for key "${transportName}", must be one of ${JSON.stringify(this.transportRoutes.routeNames())}`,
|
|
124
116
|
});
|
|
125
117
|
}
|
|
126
118
|
logger.debug(`Request will be routed to transport "${transportName}"`);
|
package/adapter/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,8CAA+C;AAC/C,kCAAwE;AAExE,+CAAkD;AAClD,mEAA8D;AAY9D,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAC/B,QAAA,sBAAsB,GAAG,0BAA0B,CAAA;AAEhE;;GAEG;AACH,MAAa,eAAe;IAc1B,YAAY,MAAgC;QAC1C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,uDAAuD;QACvD,IAAI,iBAAiB,IAAI,MAAM,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;YAC7C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YACvC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAA;SAChD;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,4BAAe,EAAK,CAAC,QAAQ,CACtD,8BAAsB,EACtB,MAAM,CAAC,SAAS,CACjB,CAAA;SACF;QAED,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAA;QAC7C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,CAAA;IACjG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,YAAiC,EACjC,eAA8B;QAE9B,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC;YACtC,YAAY;YACZ,eAAe,EAAE,eAAkC;YACnD,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,IAAI;YACvB,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAA;QAEF,MAAM,qBAAqB,GAAG;YAC5B,GAAG,YAAY;YACf,aAAa;SACd,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAA;QACtE,KAAK,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE;YACvE,MAAM,SAAS,CAAC,UAAU,CAAC,qBAAqB,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;SAC7F;IACH,CAAC;IAED;;;;;OAKG;IACH,oBAAoB,CAAC,GAAmB;QACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,OAAM;SACP;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC9C,SAAS,CAAC,GAAG,CAAC,CAAA;SACf;IACH,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,GAAmB;QACjC,MAAM,cAAc,GAAG,GAAG,CAAC,IAA4C,CAAA;QACvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAClF,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAW,CAAA;QAEtD,IAAI,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5B,qDAAqD;YACrD,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACzD;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;YACjC,sCAAsC;YACtC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SACvD;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,0BAA0B,CAAC,GAAiC,EAAE,QAAuB;QACnF,2CAA2C;QAC3C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,8BAAsB,CAAC,EAAE;YACpD,OAAO,8BAAsB,CAAA;SAC9B;QAED,4CAA4C;QAC5C,qDAAqD;QACrD,4DAA4D;QAC5D,sEAAsE;QACtE,MAAM,gBAAgB,GACpB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAA;QAEvB,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,IAAI,oBAAY,CAAC;gBACrB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,0JAA0J;aACpK,CAAC,CAAA;SACH;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;QACpD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC5C,MAAM,IAAI,oBAAY,CAAC;gBACrB,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,+BAA+B,aAAa,qBAAqB,IAAI,CAAC,SAAS,CACtF,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAClC,EAAE;aACJ,CAAC,CAAA;SACH;QAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,aAAa,GAAG,CAAC,CAAA;QACtE,OAAO,aAAa,CAAA;IACtB,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,GAAiC;QACrD,MAAM,cAAc,GAAG,GAAG,CAAC,IAA+C,CAAA;QAC1E,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAA;IACvC,CAAC;CACF;AAzJD,0CAyJC"}
|
package/adapter/price.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AdapterConfig } from '../config';
|
|
2
2
|
import { AdapterRequest, AdapterRequestContext, AdapterResponse, RequestGenerics } from '../util';
|
|
3
3
|
import { AdapterEndpoint } from './endpoint';
|
|
4
4
|
import { Adapter, AdapterEndpointParams, AdapterParams, PriceEndpointGenerics } from './index';
|
|
@@ -65,9 +65,9 @@ type PriceAdapterRequest<T extends RequestGenerics> = AdapterRequest<T> & {
|
|
|
65
65
|
/**
|
|
66
66
|
* A PriceAdapter is a specific kind of Adapter that includes at least one PriceEnpoint.
|
|
67
67
|
*/
|
|
68
|
-
export declare class PriceAdapter<
|
|
68
|
+
export declare class PriceAdapter<T extends AdapterConfig> extends Adapter<T> {
|
|
69
69
|
includesMap?: IncludesMap;
|
|
70
|
-
constructor(params: AdapterParams<
|
|
70
|
+
constructor(params: AdapterParams<T> & {
|
|
71
71
|
includes?: IncludesFile;
|
|
72
72
|
});
|
|
73
73
|
handleRequest(req: PriceAdapterRequest<{
|
package/adapter/price.js
CHANGED
|
@@ -73,7 +73,7 @@ class PriceAdapter extends index_1.Adapter {
|
|
|
73
73
|
}
|
|
74
74
|
async handleRequest(req, replySent) {
|
|
75
75
|
const response = await super.handleRequest(req, replySent);
|
|
76
|
-
if (this.includesMap && req.requestContext.priceMeta
|
|
76
|
+
if (this.includesMap && req.requestContext.priceMeta?.inverse) {
|
|
77
77
|
// We need to search in the reverse order (quote -> base) because the request transform will have inverted the pair
|
|
78
78
|
const cloneResponse = { ...response };
|
|
79
79
|
const inverseResult = 1 / cloneResponse.result;
|
package/adapter/price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":";;;AAEA,yCAA4C;AAC5C,mCAA8F;AAoB9F;;GAEG;AACU,QAAA,4BAA4B,GAAiC;IACxE,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AA2BD;;;GAGG;AACH,MAAa,aAA+C,SAAQ,0BAAkB;IACpF,YACE,MAEC;QAED,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;CACF;AARD,sCAQC;AAED,MAAM,gBAAgB,GAAG,CAAC,YAA0B,EAAE,EAAE;IACtD,MAAM,WAAW,GAAgB,EAAE,CAAA;IAEnC,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,YAAY,EAAE;QACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;SACvB;QACD,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;KACpC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAUD;;GAEG;AACH,MAAa,
|
|
1
|
+
{"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
|