@chainlink/external-adapter-framework 0.26.1 → 0.27.1
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 +43 -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.map +1 -1
- package/adapter/types.d.ts +12 -14
- package/background-executor.js +7 -7
- 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 +64 -16
- package/config/index.js +88 -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 +10 -8
- package/metrics/index.js +23 -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 +2 -2
- 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 +3 -4
- package/transports/websocket.js +34 -18
- package/transports/websocket.js.map +1 -1
- package/util/index.d.ts +10 -0
- package/util/index.js +23 -1
- package/util/index.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/index.js
CHANGED
|
@@ -13,18 +13,18 @@ const util_1 = require("./util");
|
|
|
13
13
|
const validation_1 = require("./validation");
|
|
14
14
|
const logger = (0, util_1.makeLogger)('Main');
|
|
15
15
|
const VERSION = process.env['npm_package_version'];
|
|
16
|
-
const getMTLSOptions = (
|
|
17
|
-
if (
|
|
18
|
-
(!
|
|
16
|
+
const getMTLSOptions = (adapterSettings) => {
|
|
17
|
+
if (adapterSettings.MTLS_ENABLED &&
|
|
18
|
+
(!adapterSettings.TLS_PRIVATE_KEY || !adapterSettings.TLS_PUBLIC_KEY || !adapterSettings.TLS_CA)) {
|
|
19
19
|
throw new Error(`TLS_PRIVATE_KEY , TLS_PUBLIC_KEY and TLS_CA environment variables are required when MTLS_ENABLED is set to true.`);
|
|
20
20
|
}
|
|
21
|
-
else if (
|
|
21
|
+
else if (adapterSettings.MTLS_ENABLED) {
|
|
22
22
|
return {
|
|
23
23
|
https: {
|
|
24
|
-
key:
|
|
25
|
-
cert:
|
|
26
|
-
ca:
|
|
27
|
-
passphrase:
|
|
24
|
+
key: adapterSettings.TLS_PRIVATE_KEY,
|
|
25
|
+
cert: adapterSettings.TLS_PUBLIC_KEY,
|
|
26
|
+
ca: adapterSettings.TLS_CA,
|
|
27
|
+
passphrase: adapterSettings.TLS_PASSPHRASE,
|
|
28
28
|
requestCert: true,
|
|
29
29
|
},
|
|
30
30
|
};
|
|
@@ -48,12 +48,14 @@ const start = async (adapter, dependencies) => {
|
|
|
48
48
|
await adapter.initialize(dependencies);
|
|
49
49
|
let api = undefined;
|
|
50
50
|
let metricsApi = undefined;
|
|
51
|
-
if (adapter.config.METRICS_ENABLED &&
|
|
52
|
-
|
|
51
|
+
if (adapter.config.settings.METRICS_ENABLED &&
|
|
52
|
+
adapter.config.settings.EXPERIMENTAL_METRICS_ENABLED) {
|
|
53
|
+
metricsApi = (0, metrics_1.setupMetricsServer)(adapter.name, adapter.config.settings);
|
|
53
54
|
}
|
|
54
55
|
// Optional Promise to indicate that the API is shutting down (for us to close background executors)
|
|
55
56
|
let apiShutdownPromise;
|
|
56
|
-
if (adapter.config.EA_MODE === 'reader' ||
|
|
57
|
+
if (adapter.config.settings.EA_MODE === 'reader' ||
|
|
58
|
+
adapter.config.settings.EA_MODE === 'reader-writer') {
|
|
57
59
|
// Main REST API server to handle incoming requests
|
|
58
60
|
api = await buildRestApi(adapter);
|
|
59
61
|
// Add a hook on close to use on the background execution loop to stop it
|
|
@@ -64,7 +66,8 @@ const start = async (adapter, dependencies) => {
|
|
|
64
66
|
else {
|
|
65
67
|
logger.info('REST API is disabled; this instance will not process incoming requests.');
|
|
66
68
|
}
|
|
67
|
-
if (adapter.config.EA_MODE === 'writer' ||
|
|
69
|
+
if (adapter.config.settings.EA_MODE === 'writer' ||
|
|
70
|
+
adapter.config.settings.EA_MODE === 'reader-writer') {
|
|
68
71
|
// Start background loop that will take care of calling any async Transports
|
|
69
72
|
logger.info('Starting background execution loop');
|
|
70
73
|
(0, background_executor_1.callBackgroundExecutes)(adapter, apiShutdownPromise);
|
|
@@ -80,7 +83,7 @@ const expose = async (adapter, dependencies) => {
|
|
|
80
83
|
const exposeApp = async (app, port) => {
|
|
81
84
|
if (app) {
|
|
82
85
|
try {
|
|
83
|
-
await app.listen({ port, host: adapter.config.EA_HOST });
|
|
86
|
+
await app.listen({ port, host: adapter.config.settings.EA_HOST });
|
|
84
87
|
}
|
|
85
88
|
catch (err) {
|
|
86
89
|
logger.fatal(`There was an error when starting the server: ${err}`);
|
|
@@ -90,20 +93,20 @@ const expose = async (adapter, dependencies) => {
|
|
|
90
93
|
}
|
|
91
94
|
};
|
|
92
95
|
// Start listening for incoming requests
|
|
93
|
-
await exposeApp(api, adapter.config.EA_PORT);
|
|
94
|
-
await exposeApp(metricsApi, adapter.config.METRICS_PORT);
|
|
96
|
+
await exposeApp(api, adapter.config.settings.EA_PORT);
|
|
97
|
+
await exposeApp(metricsApi, adapter.config.settings.METRICS_PORT);
|
|
95
98
|
// We return only the main API to maintain backwards compatibility
|
|
96
99
|
return api;
|
|
97
100
|
};
|
|
98
101
|
exports.expose = expose;
|
|
99
102
|
async function buildRestApi(adapter) {
|
|
100
|
-
const mTLSOptions = (0, exports.getMTLSOptions)(adapter.config);
|
|
103
|
+
const mTLSOptions = (0, exports.getMTLSOptions)(adapter.config.settings);
|
|
101
104
|
const app = (0, fastify_1.default)({
|
|
102
105
|
...mTLSOptions,
|
|
103
|
-
bodyLimit: adapter.config.MAX_PAYLOAD_SIZE_LIMIT,
|
|
106
|
+
bodyLimit: adapter.config.settings.MAX_PAYLOAD_SIZE_LIMIT,
|
|
104
107
|
});
|
|
105
108
|
// Add healthcheck endpoint before middlewares to bypass them
|
|
106
|
-
app.get((0, path_1.join)(adapter.config.BASE_URL, 'health'), (req, res) => {
|
|
109
|
+
app.get((0, path_1.join)(adapter.config.settings.BASE_URL, 'health'), (req, res) => {
|
|
107
110
|
res.status(200).send({ message: 'OK', version: VERSION });
|
|
108
111
|
});
|
|
109
112
|
// Use global error handling
|
|
@@ -116,18 +119,19 @@ async function buildRestApi(adapter) {
|
|
|
116
119
|
app.register(async (router) => {
|
|
117
120
|
// Set up "middlewares" (hooks in fastify)
|
|
118
121
|
router.addHook('preHandler', (0, validation_1.validatorMiddleware)(adapter));
|
|
119
|
-
if (adapter.config
|
|
122
|
+
if (adapter.config.settings.CORRELATION_ID_ENABLED) {
|
|
120
123
|
router.addHook('onRequest', util_1.loggingContextMiddleware);
|
|
121
124
|
}
|
|
122
125
|
router.route({
|
|
123
|
-
url: adapter.config.BASE_URL,
|
|
126
|
+
url: adapter.config.settings.BASE_URL,
|
|
124
127
|
method: 'POST',
|
|
125
128
|
handler: async (req, reply) => {
|
|
126
129
|
const response = await adapter.handleRequest(req, reply);
|
|
127
130
|
return reply.code(response.statusCode || 200).send(response);
|
|
128
131
|
},
|
|
129
132
|
});
|
|
130
|
-
if (adapter.config.METRICS_ENABLED &&
|
|
133
|
+
if (adapter.config.settings.METRICS_ENABLED &&
|
|
134
|
+
adapter.config.settings.EXPERIMENTAL_METRICS_ENABLED) {
|
|
131
135
|
router.addHook('onResponse', metrics_1.buildMetricsMiddleware);
|
|
132
136
|
}
|
|
133
137
|
});
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAkD;AAElD,+BAA2B;AAC3B,uCAAwD;AACxD,+DAA8D;AAE9D,uCAAsE;AACtE,iCAAkF;AAClF,6CAA2E;AAI3E,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,MAAM,CAAC,CAAA;AAEjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAY3C,MAAM,cAAc,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/metrics/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as client from 'prom-client';
|
|
3
3
|
import { AdapterRequest } from '../util';
|
|
4
|
-
import {
|
|
4
|
+
import { AdapterSettings } from '../config';
|
|
5
5
|
import { FastifyReply, HookHandlerDoneFunction } from 'fastify';
|
|
6
6
|
import { AdapterError } from '../validation/error';
|
|
7
|
-
export declare function setupMetricsServer(name: string,
|
|
7
|
+
export declare function setupMetricsServer(name: string, adapterSettings: AdapterSettings): import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault> & PromiseLike<import("fastify").FastifyInstance<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>>;
|
|
8
8
|
export declare const setupMetrics: (name: string) => void;
|
|
9
9
|
/**
|
|
10
10
|
* Builds metrics middleware that records end to end EA response times
|
|
@@ -19,6 +19,7 @@ export declare class Metrics<T extends Record<string, unknown>> {
|
|
|
19
19
|
constructor(metricsDefinition: () => T);
|
|
20
20
|
initialize(): void;
|
|
21
21
|
get<K extends keyof T>(name: K): T[K];
|
|
22
|
+
clear(): void;
|
|
22
23
|
}
|
|
23
24
|
export declare const buildHttpRequestMetricsLabel: (feedId: string, error?: AdapterError | Error, cacheHit?: boolean) => Record<string, string | number | undefined>;
|
|
24
25
|
export declare const dataProviderMetricsLabel: (providerStatusCode?: number, method?: string) => {
|
|
@@ -33,10 +34,10 @@ export declare const metrics: Metrics<{
|
|
|
33
34
|
dataProviderRequestDurationSeconds: client.Histogram<string>;
|
|
34
35
|
requesterQueueSize: client.Gauge<string>;
|
|
35
36
|
requesterQueueOverflow: client.Counter<string>;
|
|
36
|
-
bgExecuteSubscriptionSetCount: client.Gauge<"
|
|
37
|
-
bgExecuteTotal: client.Counter<"transport" | "
|
|
38
|
-
bgExecuteErrors: client.Counter<"transport" | "
|
|
39
|
-
bgExecuteDurationSeconds: client.Gauge<"transport" | "
|
|
37
|
+
bgExecuteSubscriptionSetCount: client.Gauge<"adapter_endpoint" | "transport_type">;
|
|
38
|
+
bgExecuteTotal: client.Counter<"transport" | "adapter_endpoint">;
|
|
39
|
+
bgExecuteErrors: client.Counter<"transport" | "adapter_endpoint">;
|
|
40
|
+
bgExecuteDurationSeconds: client.Gauge<"transport" | "adapter_endpoint">;
|
|
40
41
|
cacheDataGetCount: client.Counter<"feed_id" | "participant_id" | "cache_type" | "is_from_ws" | "experimental">;
|
|
41
42
|
cacheDataGetValues: client.Gauge<"feed_id" | "participant_id" | "cache_type" | "is_from_ws" | "experimental">;
|
|
42
43
|
cacheDataMaxAge: client.Gauge<"feed_id" | "participant_id" | "cache_type" | "is_from_ws" | "experimental">;
|
|
@@ -50,10 +51,11 @@ export declare const metrics: Metrics<{
|
|
|
50
51
|
cacheWarmerCount: client.Gauge<"isBatched">;
|
|
51
52
|
wsConnectionActive: client.Gauge<"url">;
|
|
52
53
|
wsConnectionErrors: client.Counter<"message" | "url">;
|
|
54
|
+
wsConnectionClosures: client.Counter<"code" | "url">;
|
|
53
55
|
wsSubscriptionActive: client.Gauge<"feed_id" | "connection_url" | "subscription_key">;
|
|
54
56
|
wsSubscriptionTotal: client.Counter<"feed_id" | "connection_url" | "subscription_key">;
|
|
55
57
|
wsMessageTotal: client.Counter<"direction" | "feed_id" | "subscription_key">;
|
|
56
|
-
transportPollingFailureCount: client.Counter<"
|
|
57
|
-
transportPollingDurationSeconds: client.Gauge<"succeeded" | "
|
|
58
|
+
transportPollingFailureCount: client.Counter<"adapter_endpoint">;
|
|
59
|
+
transportPollingDurationSeconds: client.Gauge<"succeeded" | "adapter_endpoint">;
|
|
58
60
|
rateLimitCreditsSpentTotal: client.Counter<"feed_id" | "participant_id">;
|
|
59
61
|
}>;
|
package/metrics/index.js
CHANGED
|
@@ -35,18 +35,21 @@ const path_1 = require("path");
|
|
|
35
35
|
const error_1 = require("../validation/error");
|
|
36
36
|
const index_1 = require("../index");
|
|
37
37
|
const logger = (0, util_1.makeLogger)('Metrics');
|
|
38
|
-
function setupMetricsServer(name,
|
|
39
|
-
const mTLSOptions = (0, index_1.getMTLSOptions)(
|
|
38
|
+
function setupMetricsServer(name, adapterSettings) {
|
|
39
|
+
const mTLSOptions = (0, index_1.getMTLSOptions)(adapterSettings);
|
|
40
40
|
const metricsApp = (0, fastify_1.default)({
|
|
41
41
|
...mTLSOptions,
|
|
42
42
|
logger: false,
|
|
43
43
|
});
|
|
44
|
-
const metricsPort =
|
|
45
|
-
const endpoint =
|
|
46
|
-
|
|
44
|
+
const metricsPort = adapterSettings.METRICS_PORT;
|
|
45
|
+
const endpoint = adapterSettings.METRICS_USE_BASE_URL
|
|
46
|
+
? (0, path_1.join)(adapterSettings.BASE_URL, 'metrics')
|
|
47
|
+
: '/metrics';
|
|
48
|
+
const eaHost = adapterSettings.EA_HOST;
|
|
47
49
|
logger.info(`Metrics endpoint: http://${eaHost}:${metricsPort}${endpoint}`);
|
|
48
50
|
(0, exports.setupMetrics)(name);
|
|
49
51
|
metricsApp.get(endpoint, async (_, res) => {
|
|
52
|
+
logger.trace('Metrics endpoint hit');
|
|
50
53
|
res.type('txt');
|
|
51
54
|
res.send(await client.register.metrics());
|
|
52
55
|
});
|
|
@@ -97,6 +100,10 @@ class Metrics {
|
|
|
97
100
|
}
|
|
98
101
|
return metric;
|
|
99
102
|
}
|
|
103
|
+
clear() {
|
|
104
|
+
client.register.clear();
|
|
105
|
+
this.metrics = undefined;
|
|
106
|
+
}
|
|
100
107
|
}
|
|
101
108
|
exports.Metrics = Metrics;
|
|
102
109
|
const httpRequestsTotalLabels = [
|
|
@@ -194,22 +201,22 @@ exports.metrics = new Metrics(() => ({
|
|
|
194
201
|
bgExecuteSubscriptionSetCount: new client.Gauge({
|
|
195
202
|
name: 'bg_execute_subscription_set_count',
|
|
196
203
|
help: 'The number of active subscriptions in background execute',
|
|
197
|
-
labelNames: ['
|
|
204
|
+
labelNames: ['adapter_endpoint', 'transport_type'],
|
|
198
205
|
}),
|
|
199
206
|
bgExecuteTotal: new client.Counter({
|
|
200
207
|
name: 'bg_execute_total',
|
|
201
208
|
help: 'The number of background executes performed per endpoint',
|
|
202
|
-
labelNames: ['
|
|
209
|
+
labelNames: ['adapter_endpoint', 'transport'],
|
|
203
210
|
}),
|
|
204
211
|
bgExecuteErrors: new client.Counter({
|
|
205
212
|
name: 'bg_execute_errors',
|
|
206
213
|
help: 'The number of background execute errors per endpoint x transport',
|
|
207
|
-
labelNames: ['
|
|
214
|
+
labelNames: ['adapter_endpoint', 'transport'],
|
|
208
215
|
}),
|
|
209
216
|
bgExecuteDurationSeconds: new client.Gauge({
|
|
210
217
|
name: 'bg_execute_duration_seconds',
|
|
211
218
|
help: 'A histogram bucket of the distribution of background execute durations',
|
|
212
|
-
labelNames: ['
|
|
219
|
+
labelNames: ['adapter_endpoint', 'transport'],
|
|
213
220
|
}),
|
|
214
221
|
cacheDataGetCount: new client.Counter({
|
|
215
222
|
name: 'cache_data_get_count',
|
|
@@ -274,6 +281,11 @@ exports.metrics = new Metrics(() => ({
|
|
|
274
281
|
help: 'The number of connection errors',
|
|
275
282
|
labelNames: ['url', 'message'],
|
|
276
283
|
}),
|
|
284
|
+
wsConnectionClosures: new client.Counter({
|
|
285
|
+
name: 'ws_connection_closures',
|
|
286
|
+
help: 'The number of connection closures',
|
|
287
|
+
labelNames: ['url', 'code'],
|
|
288
|
+
}),
|
|
277
289
|
wsSubscriptionActive: new client.Gauge({
|
|
278
290
|
name: 'ws_subscription_active',
|
|
279
291
|
help: 'The number of currently active subscriptions',
|
|
@@ -292,12 +304,12 @@ exports.metrics = new Metrics(() => ({
|
|
|
292
304
|
transportPollingFailureCount: new client.Counter({
|
|
293
305
|
name: 'transport_polling_failure_count',
|
|
294
306
|
help: 'The number of times the polling mechanism ran out of attempts and failed to return a response',
|
|
295
|
-
labelNames: ['
|
|
307
|
+
labelNames: ['adapter_endpoint'],
|
|
296
308
|
}),
|
|
297
309
|
transportPollingDurationSeconds: new client.Gauge({
|
|
298
310
|
name: 'transport_polling_duration_seconds',
|
|
299
311
|
help: 'A histogram bucket of the distribution of transport polling idle time durations',
|
|
300
|
-
labelNames: ['
|
|
312
|
+
labelNames: ['adapter_endpoint', 'succeeded'],
|
|
301
313
|
}),
|
|
302
314
|
rateLimitCreditsSpentTotal: new client.Counter({
|
|
303
315
|
name: 'rate_limit_credits_spent_total',
|
package/metrics/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAqC;AACrC,2CAAqE;AACrE,kCAAoD;AAEpD,sDAAwE;AACxE,+BAA2B;AAC3B,+CAAkD;AAClD,oCAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,SAAS,CAAC,CAAA;AAEpC,SAAgB,kBAAkB,CAAC,IAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAqC;AACrC,2CAAqE;AACrE,kCAAoD;AAEpD,sDAAwE;AACxE,+BAA2B;AAC3B,+CAAkD;AAClD,oCAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,SAAS,CAAC,CAAA;AAEpC,SAAgB,kBAAkB,CAAC,IAAY,EAAE,eAAgC;IAC/E,MAAM,WAAW,GAA2C,IAAA,sBAAc,EAAC,eAAe,CAAC,CAAA;IAC3F,MAAM,UAAU,GAAG,IAAA,iBAAO,EAAC;QACzB,GAAG,WAAW;QACd,MAAM,EAAE,KAAK;KACd,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAA;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,oBAAoB;QACnD,CAAC,CAAC,IAAA,WAAI,EAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;QAC3C,CAAC,CAAC,UAAU,CAAA;IACd,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAA;IACtC,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,IAAI,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAA;IAE3E,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAA;IAElB,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAA;AACnB,CAAC;AAtBD,gDAsBC;AAEM,MAAM,YAAY,GAAG,CAAC,IAAY,EAAQ,EAAE;IACjD,MAAM,CAAC,qBAAqB,EAAE,CAAA;IAC9B,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC/B,QAAQ,EAAE,IAAI,IAAI,KAAK;QACvB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;KAChD,CAAC,CAAA;AACJ,CAAC,CAAA;AANY,QAAA,YAAY,gBAMxB;AAED;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CACpC,GAAmB,EACnB,GAAiB,EACjB,IAA6B,EAC7B,EAAE;IACF,8EAA8E;IAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAA;IACjE,MAAM,MAAM,GAAG,IAAA,oCAA4B,EACzC,MAAM,EACN,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,EAC/B,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAC5C,CAAA;IAED,uCAAuC;IACvC,eAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAA;IAErD,oDAAoD;IACpD,eAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAA;IAC/E,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,KAAK,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IACvE,IAAI,EAAE,CAAA;AACR,CAAC,CAAA;AApBY,QAAA,sBAAsB,0BAoBlC;AAED,MAAa,OAAO;IAKlB,YAAY,iBAA0B;QACpC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAED,kEAAkE;IAClE,+DAA+D;IAC/D,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;SACxC;IACH,CAAC;IAED,GAAG,CAAoB,IAAO;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QACnC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,WAAW,IAAc,kCAAkC,CAAC,CAAA;SAC7E;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK;QACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;IAC1B,CAAC;CACF;AA7BD,0BA6BC;AAED,MAAM,uBAAuB,GAAG;IAC9B,QAAQ;IACR,aAAa;IACb,OAAO;IACP,MAAM;IACN,kBAAkB;IAClB,SAAS;IACT,sBAAsB;CACd,CAAA;AAEV,MAAM,kBAAkB,GAAG;IACzB,SAAS;IACT,gBAAgB;IAChB,YAAY;IACZ,YAAY;IACZ,cAAc;CACN,CAAA;AAEH,MAAM,4BAA4B,GAAG,CAC1C,MAAc,EACd,KAA4B,EAC5B,QAAkB,EAC2B,EAAE;IAC/C,MAAM,MAAM,GAAG,EAAiF,CAAA;IAChG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAA;IACvB,IAAI,KAAK,YAAY,oBAAY,EAAE;QACjC,+EAA+E;QAC/E,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,YAAY,IAAI,2BAAe,CAAC,aAAa,CAAA;QAClE,MAAM,CAAC,WAAW,GAAG,KAAK,EAAE,UAAU,CAAA;QACtC,MAAM,CAAC,oBAAoB,GAAG,KAAK,EAAE,kBAAkB,CAAA;KACxD;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE;QACjC,kFAAkF;QAClF,MAAM,CAAC,IAAI,GAAG,2BAAe,CAAC,aAAa,CAAA;QAC3C,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA;KACzB;SAAM;QACL,gDAAgD;QAChD,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA;QACxB,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,IAAI,GAAG,2BAAe,CAAC,SAAS,CAAA;SACxC;aAAM;YACL,MAAM,CAAC,IAAI,GAAG,2BAAe,CAAC,iBAAiB,CAAA;YAC/C,MAAM,CAAC,oBAAoB,GAAG,GAAG,CAAA;SAClC;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AA7BY,QAAA,4BAA4B,gCA6BxC;AAED,iCAAiC;AAC1B,MAAM,wBAAwB,GAAG,CAAC,kBAA2B,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;IACxF,oBAAoB,EAAE,kBAAkB;IACxC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;CAC7B,CAAC,CAAA;AAHW,QAAA,wBAAwB,4BAGnC;AAEF,8CAA8C;AAC9C,kCAAkC;AAC3B,MAAM,YAAY,GAAG,CAAuB,IAA0B,EAAU,EAAE;IACvF,MAAM,IAAI,GAAI,IAAgC,EAAE,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;KACpB;SAAM;QACL,OAAO,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB;AAEY,QAAA,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxC,iBAAiB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,sFAAsF;QAC5F,UAAU,EAAE,uBAAuB;KACpC,CAAC;IACF,0BAA0B,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;QAC/C,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,kEAAkE;QACxE,OAAO,EAAE,kCAAsB;KAChC,CAAC;IACF,oBAAoB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACvC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,8DAA8D;QACpE,UAAU,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAU;KACxD,CAAC;IACF,kCAAkC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;QACvD,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,2EAA2E;QACjF,OAAO,EAAE,kCAAsB;KAChC,CAAC;IACF,kBAAkB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,sEAAsE;KAC7E,CAAC;IACF,sBAAsB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,0BAA0B;QAChC,IAAI,EAAE,+EAA+E;KACtF,CAAC;IACF,6BAA6B,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAC9C,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,0DAA0D;QAChE,UAAU,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAU;KAC5D,CAAC;IACF,cAAc,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,0DAA0D;QAChE,UAAU,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAU;KACvD,CAAC;IACF,eAAe,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QAClC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,kEAAkE;QACxE,UAAU,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAU;KACvD,CAAC;IACF,wBAAwB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACzC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,wEAAwE;QAC9E,UAAU,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAU;KACvD,CAAC;IACF,iBAAiB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,wEAAwE;QAC9E,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,kBAAkB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,0DAA0D;QAChE,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,eAAe,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,4DAA4D;QAClE,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,iBAAiB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,kEAAkE;QACxE,UAAU,EAAE,CAAC,GAAG,kBAAkB,EAAE,aAAa,CAAC;KACnD,CAAC;IACF,yBAAyB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,wGAAwG;QAC9G,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,yBAAyB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAC1C,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,+GAA+G;QACrH,UAAU,EAAE,kBAAkB;KAC/B,CAAC;IACF,iBAAiB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAClC,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,4GAA4G;QAClH,UAAU,EAAE,CAAC,SAAS,CAAC;KACxB,CAAC;IACF,oBAAoB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACvC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,+CAA+C;KACtD,CAAC;IACF,iBAAiB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACpC,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,2EAA2E;KAClF,CAAC;IACF,sBAAsB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,mCAAmC;QACzC,UAAU,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;KACxC,CAAC;IACF,gBAAgB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,qCAAqC;QAC3C,UAAU,EAAE,CAAC,WAAW,CAAU;KACnC,CAAC;IACF,kBAAkB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACnC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,CAAC,KAAK,CAAU;KAC7B,CAAC;IACF,kBAAkB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACrC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,CAAU;KACxC,CAAC;IACF,oBAAoB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACvC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,mCAAmC;QACzC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,CAAU;KACrC,CAAC;IACF,oBAAoB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QACrC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,CAAU;KACvE,CAAC;IACF,mBAAmB,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,6CAA6C;QACnD,UAAU,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,CAAU;KACvE,CAAC;IACF,cAAc,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,sCAAsC;QAC5C,UAAU,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,WAAW,CAAU;KAClE,CAAC;IACF,4BAA4B,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QAC/C,IAAI,EAAE,iCAAiC;QACvC,IAAI,EAAE,+FAA+F;QACrG,UAAU,EAAE,CAAC,kBAAkB,CAAU;KAC1C,CAAC;IACF,+BAA+B,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;QAChD,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,iFAAiF;QACvF,UAAU,EAAE,CAAC,kBAAkB,EAAE,WAAW,CAAU;KACvD,CAAC;IACF,0BAA0B,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;QAC7C,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,8DAA8D;QACpE,UAAU,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAU;KACnD,CAAC;CACH,CAAC,CAAC,CAAA"}
|
package/metrics/util.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { AdapterConfig } from '../config';
|
|
2
1
|
import { AdapterMetricsMeta, AdapterRequestData } from '../util';
|
|
3
2
|
import { InputParameters } from '../validation';
|
|
4
3
|
export declare const getMetricsMeta: <T extends import("../transports").TransportGenerics>(args: {
|
|
5
4
|
inputParameters: InputParameters;
|
|
6
|
-
|
|
5
|
+
adapterSettings: T["Settings"];
|
|
7
6
|
}, data: AdapterRequestData) => AdapterMetricsMeta;
|
package/metrics/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/metrics/util.ts"],"names":[],"mappings":";;;AACA,oCAA0C;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/metrics/util.ts"],"names":[],"mappings":";;;AACA,oCAA0C;AAInC,MAAM,cAAc,GAAG,CAC5B,IAGC,EACD,IAAwB,EACJ,EAAE;IACtB,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1C,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC,CAAA;AATY,QAAA,cAAc,kBAS1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainlink/external-adapter-framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.27.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"generate-docs": "typedoc src/**/*.ts",
|
|
21
21
|
"lint-fix": "eslint --max-warnings=0 --fix ./src && prettier --write ./src/**/*.ts ./*.{json,js,yaml}",
|
|
22
22
|
"lint": "eslint --max-warnings=0 ./src && prettier --check ./src/**/*.ts ./*.{json,js,yaml}",
|
|
23
|
-
"portal-path": "readlink -f ./dist/src",
|
|
23
|
+
"portal-path": "echo \"portal:$(readlink -f ./dist/src)\"",
|
|
24
24
|
"start": "ts-node -e 'import(`./src/examples/${process.argv[1]}/src/index`).then(ea => ea.server())'",
|
|
25
25
|
"test-debug": "EA_HOST=localhost LOG_LEVEL=trace DEBUG=true EA_PORT=0 c8 ava --verbose",
|
|
26
26
|
"test": "EA_HOST=localhost LOG_LEVEL=error EA_PORT=0 c8 ava",
|
package/rate-limiting/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AdapterEndpoint, EndpointGenerics } from '../adapter';
|
|
2
|
-
import {
|
|
2
|
+
import { AdapterSettings } from '../config';
|
|
3
3
|
export * from './simple-counting';
|
|
4
4
|
export interface AdapterRateLimitTier {
|
|
5
5
|
rateLimit1s?: number;
|
|
@@ -51,10 +51,10 @@ export declare const lowestTierLimit: (limits?: AdapterRateLimitTier) => number;
|
|
|
51
51
|
/**
|
|
52
52
|
* Validates rate limiting tiers specified for the adapter, and returns the one to use.
|
|
53
53
|
*
|
|
54
|
-
* @param
|
|
54
|
+
* @param adapterSettings - the adapter config containing the env vars
|
|
55
55
|
* @param tiers - the adapter config listing the different available API tiers
|
|
56
56
|
* @returns the specified API tier, or a default one if none are specified
|
|
57
57
|
*/
|
|
58
|
-
export declare const getRateLimitingTier: (
|
|
59
|
-
export declare const buildRateLimitTiersFromConfig: (
|
|
58
|
+
export declare const getRateLimitingTier: (adapterSettings: AdapterSettings, tiers?: Record<string, AdapterRateLimitTier>) => AdapterRateLimitTier | undefined;
|
|
59
|
+
export declare const buildRateLimitTiersFromConfig: (adapterSettings: AdapterSettings) => AdapterRateLimitTier | undefined;
|
|
60
60
|
export declare const highestRateLimitTiers: (tiers?: Record<string, AdapterRateLimitTier>) => number;
|
package/rate-limiting/index.js
CHANGED
|
@@ -63,15 +63,15 @@ exports.lowestTierLimit = lowestTierLimit;
|
|
|
63
63
|
/**
|
|
64
64
|
* Validates rate limiting tiers specified for the adapter, and returns the one to use.
|
|
65
65
|
*
|
|
66
|
-
* @param
|
|
66
|
+
* @param adapterSettings - the adapter config containing the env vars
|
|
67
67
|
* @param tiers - the adapter config listing the different available API tiers
|
|
68
68
|
* @returns the specified API tier, or a default one if none are specified
|
|
69
69
|
*/
|
|
70
|
-
const getRateLimitingTier = (
|
|
71
|
-
if (
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return (0, exports.buildRateLimitTiersFromConfig)(
|
|
70
|
+
const getRateLimitingTier = (adapterSettings, tiers) => {
|
|
71
|
+
if (adapterSettings.RATE_LIMIT_CAPACITY ||
|
|
72
|
+
adapterSettings.RATE_LIMIT_CAPACITY_MINUTE ||
|
|
73
|
+
adapterSettings.RATE_LIMIT_CAPACITY_SECOND) {
|
|
74
|
+
return (0, exports.buildRateLimitTiersFromConfig)(adapterSettings);
|
|
75
75
|
}
|
|
76
76
|
if (!tiers) {
|
|
77
77
|
return;
|
|
@@ -81,7 +81,7 @@ const getRateLimitingTier = (config, tiers) => {
|
|
|
81
81
|
throw new Error(`The tiers object is defined, but has no entries`);
|
|
82
82
|
}
|
|
83
83
|
// Check that the tier set in the AdapterConfig is a valid one
|
|
84
|
-
const selectedTier =
|
|
84
|
+
const selectedTier = adapterSettings.RATE_LIMIT_API_TIER;
|
|
85
85
|
if (selectedTier && !tiers[selectedTier]) {
|
|
86
86
|
const validTiersString = Object.keys(tiers)
|
|
87
87
|
.map((t) => `"${t}"`)
|
|
@@ -100,14 +100,14 @@ const getRateLimitingTier = (config, tiers) => {
|
|
|
100
100
|
};
|
|
101
101
|
exports.getRateLimitingTier = getRateLimitingTier;
|
|
102
102
|
// Creates adapter rate limit tier using the configs specified in env vars
|
|
103
|
-
const buildRateLimitTiersFromConfig = (
|
|
104
|
-
const rateLimit1s =
|
|
103
|
+
const buildRateLimitTiersFromConfig = (adapterSettings) => {
|
|
104
|
+
const rateLimit1s = adapterSettings.RATE_LIMIT_CAPACITY_SECOND;
|
|
105
105
|
let rateLimit1m;
|
|
106
|
-
if (
|
|
107
|
-
rateLimit1m =
|
|
106
|
+
if (adapterSettings.RATE_LIMIT_CAPACITY_MINUTE) {
|
|
107
|
+
rateLimit1m = adapterSettings.RATE_LIMIT_CAPACITY_MINUTE;
|
|
108
108
|
}
|
|
109
|
-
else if (
|
|
110
|
-
rateLimit1m =
|
|
109
|
+
else if (adapterSettings.RATE_LIMIT_CAPACITY) {
|
|
110
|
+
rateLimit1m = adapterSettings.RATE_LIMIT_CAPACITY;
|
|
111
111
|
}
|
|
112
112
|
return {
|
|
113
113
|
rateLimit1s,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rate-limiting/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,kCAAoC;AAEpC,oDAAiC;AAEjC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,mBAAmB,CAAC,CAAA;AA+B9C;;;;;;GAMG;AACI,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAA;IAC7D,MAAM,cAAc,GAAG,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAA;IACtD,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;AACvD,CAAC,CAAA;AALY,QAAA,qBAAqB,yBAKjC;AAED;;;;;;GAMG;AACI,MAAM,gBAAgB,GAAG,CAAC,MAA6B,EAAE,EAAE;IAChE,MAAM,iBAAiB,GAAG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnE,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,CAAC,CAAA;SACT;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAA;AACvC,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAED;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,CAAC,MAA6B,EAAE,EAAE;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC,CAAA;AACnD,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAED;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,CACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rate-limiting/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import { Transport, TransportDependencies, TransportGenerics } from '..';
|
|
1
2
|
import { EndpointContext } from '../../adapter';
|
|
2
3
|
import { ResponseCache } from '../../cache/response';
|
|
3
|
-
import { AdapterConfig } from '../../config';
|
|
4
4
|
import { SubscriptionSet } from '../../util';
|
|
5
5
|
import { AdapterRequest } from '../../util/types';
|
|
6
|
-
import { Transport, TransportDependencies, TransportGenerics } from '..';
|
|
7
6
|
/**
|
|
8
7
|
* Abstract Transport that will take incoming requests and add them to a subscription set as part
|
|
9
8
|
* of the registration. Then it will provide those entries to the (abstract) backgroundHandler method.
|
|
@@ -18,8 +17,8 @@ export declare abstract class SubscriptionTransport<T extends TransportGenerics>
|
|
|
18
17
|
subscriptionSet: SubscriptionSet<T['Request']['Params']>;
|
|
19
18
|
subscriptionTtl: number;
|
|
20
19
|
name: string;
|
|
21
|
-
initialize(dependencies: TransportDependencies<T>,
|
|
22
|
-
registerRequest(req: AdapterRequest<T['Request']>, _:
|
|
20
|
+
initialize(dependencies: TransportDependencies<T>, adapterSettings: T['Settings'], endpointName: string, name: string): Promise<void>;
|
|
21
|
+
registerRequest(req: AdapterRequest<T['Request']>, _: T['Settings']): Promise<void>;
|
|
23
22
|
backgroundExecute(context: EndpointContext<T>): Promise<void>;
|
|
24
23
|
/**
|
|
25
24
|
* Handler specific to the subscription transport, that is provided all entries in the subscription set.
|
|
@@ -31,7 +30,7 @@ export declare abstract class SubscriptionTransport<T extends TransportGenerics>
|
|
|
31
30
|
/**
|
|
32
31
|
* Helper method to be defined in subclasses, for each of them to carry their own TTL definition in the EA config.
|
|
33
32
|
*
|
|
34
|
-
* @param
|
|
33
|
+
* @param adapterSettings - the config for this adapter
|
|
35
34
|
*/
|
|
36
|
-
abstract getSubscriptionTtlFromConfig(
|
|
35
|
+
abstract getSubscriptionTtlFromConfig(adapterSettings: T['Settings']): number;
|
|
37
36
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SubscriptionTransport = void 0;
|
|
4
|
-
const util_1 = require("../../util");
|
|
5
4
|
const metrics_1 = require("../../metrics");
|
|
5
|
+
const util_1 = require("../../util");
|
|
6
6
|
const logger = (0, util_1.makeLogger)('SubscriptionTransport');
|
|
7
7
|
/**
|
|
8
8
|
* Abstract Transport that will take incoming requests and add them to a subscription set as part
|
|
@@ -11,10 +11,10 @@ const logger = (0, util_1.makeLogger)('SubscriptionTransport');
|
|
|
11
11
|
* @typeParam T - all types related to the [[Transport]]
|
|
12
12
|
*/
|
|
13
13
|
class SubscriptionTransport {
|
|
14
|
-
async initialize(dependencies,
|
|
14
|
+
async initialize(dependencies, adapterSettings, endpointName, name) {
|
|
15
15
|
this.responseCache = dependencies.responseCache;
|
|
16
16
|
this.subscriptionSet = dependencies.subscriptionSetFactory.buildSet(endpointName);
|
|
17
|
-
this.subscriptionTtl = this.getSubscriptionTtlFromConfig(
|
|
17
|
+
this.subscriptionTtl = this.getSubscriptionTtlFromConfig(adapterSettings); // Will be implemented by subclasses
|
|
18
18
|
this.name = name;
|
|
19
19
|
}
|
|
20
20
|
async registerRequest(req, _) {
|
|
@@ -30,7 +30,7 @@ class SubscriptionTransport {
|
|
|
30
30
|
// this.constructor.name will resolve to the instance name, not the class one (i.e., will use the implementing class' name)
|
|
31
31
|
metrics_1.metrics
|
|
32
32
|
.get('bgExecuteSubscriptionSetCount')
|
|
33
|
-
.labels({
|
|
33
|
+
.labels({ adapter_endpoint: context.endpointName, transport_type: this.constructor.name })
|
|
34
34
|
.set(entries.length);
|
|
35
35
|
await this.backgroundHandler(context, entries);
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":";;;AAGA,qCAAwD;AAGxD,
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../src/transports/abstract/subscription.ts"],"names":[],"mappings":";;;AAGA,2CAAuC;AACvC,qCAAwD;AAGxD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,uBAAuB,CAAC,CAAA;AAElD;;;;;GAKG;AACH,MAAsB,qBAAqB;IASzC,KAAK,CAAC,UAAU,CACd,YAAsC,EACtC,eAA8B,EAC9B,YAAoB,EACpB,IAAY;QAEZ,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC,aAAa,CAAA;QAC/C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACjF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAA,CAAC,oCAAoC;QAC9G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAiC,EAAE,CAAgB;QACvE,MAAM,CAAC,KAAK,CACV,yCAAyC,IAAI,CAAC,eAAe,OAAO,GAAG,CAAC,cAAc,CAAC,QAAQ,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAChI,CAAA;QAED,+DAA+D;QAC/D,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAC5B,GAAG,CAAC,cAAc,CAAC,IAAI,EACvB,IAAI,CAAC,eAAe,EACpB,GAAG,CAAC,cAAc,CAAC,QAAQ,CAC5B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAA2B;QACjD,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAEnD,4DAA4D;QAC5D,gFAAgF;QAChF,2HAA2H;QAC3H,iBAAO;aACJ,GAAG,CAAC,+BAA+B,CAAC;aACpC,MAAM,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aACzF,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAEtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;CAmBF;AAlED,sDAkEC"}
|
package/transports/http.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
import { TransportDependencies, TransportGenerics } from '.';
|
|
2
3
|
import { EndpointContext } from '../adapter';
|
|
3
|
-
import { AdapterConfig } from '../config';
|
|
4
|
-
import { ProviderResult } from '../util/types';
|
|
5
4
|
import { Requester } from '../util/requester';
|
|
6
|
-
import {
|
|
5
|
+
import { ProviderResult } from '../util/types';
|
|
7
6
|
import { SubscriptionTransport } from './abstract/subscription';
|
|
8
7
|
/**
|
|
9
8
|
* Helper struct type that will be used to pass types to the generic parameters of a Transport.
|
|
@@ -46,10 +45,10 @@ export interface HttpTransportConfig<T extends HttpTransportGenerics> {
|
|
|
46
45
|
* to consolidate many of them since the parseResponse method is called independently for each of them.
|
|
47
46
|
*
|
|
48
47
|
* @param params - the list of non-expired input parameters sent to this Adapter
|
|
49
|
-
* @param
|
|
48
|
+
* @param adapterSettings - the config for this Adapter
|
|
50
49
|
* @returns one or multiple request configs
|
|
51
50
|
*/
|
|
52
|
-
prepareRequests: (params: T['Request']['Params'][],
|
|
51
|
+
prepareRequests: (params: T['Request']['Params'][], adapterSettings: T['Settings']) => ProviderRequestConfig<T> | ProviderRequestConfig<T>[];
|
|
53
52
|
/**
|
|
54
53
|
* This method should take the incoming response from the data provider, and using that and the params, build a
|
|
55
54
|
* list of ProviderResults that will be stored in the response cache for this endpoint.
|
|
@@ -61,10 +60,10 @@ export interface HttpTransportConfig<T extends HttpTransportGenerics> {
|
|
|
61
60
|
*
|
|
62
61
|
* @param params - the list of input parameters that should be fulfilled by this incoming provider response
|
|
63
62
|
* @param res - the response from the data provider
|
|
64
|
-
* @param
|
|
63
|
+
* @param adapterSettings - the config for this Adapter
|
|
65
64
|
* @returns a list of ProviderResults
|
|
66
65
|
*/
|
|
67
|
-
parseResponse: (params: T['Request']['Params'][], res: AxiosResponse<T['Provider']['ResponseBody']>,
|
|
66
|
+
parseResponse: (params: T['Request']['Params'][], res: AxiosResponse<T['Provider']['ResponseBody']>, adapterSettings: T['Settings']) => ProviderResult<T>[];
|
|
68
67
|
}
|
|
69
68
|
/**
|
|
70
69
|
* Transport implementation that takes incoming batches of requests and keeps a warm cache of values.
|
|
@@ -81,8 +80,8 @@ export declare class HttpTransport<T extends HttpTransportGenerics> extends Subs
|
|
|
81
80
|
WARMER_ACTIVE: boolean;
|
|
82
81
|
requester: Requester;
|
|
83
82
|
constructor(config: HttpTransportConfig<T>);
|
|
84
|
-
initialize(dependencies: TransportDependencies<T>,
|
|
85
|
-
getSubscriptionTtlFromConfig(
|
|
83
|
+
initialize(dependencies: TransportDependencies<T>, adapterSettings: T['Settings'], endpointName: string, transportName: string): Promise<void>;
|
|
84
|
+
getSubscriptionTtlFromConfig(adapterSettings: T['Settings']): number;
|
|
86
85
|
backgroundHandler(context: EndpointContext<T>, entries: T['Request']['Params'][]): Promise<void>;
|
|
87
86
|
private handleRequest;
|
|
88
87
|
private makeRequest;
|