@chainlink/external-adapter-framework 0.1.0 → 0.2.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.
Files changed (68) hide show
  1. package/adapter/basic.d.ts +5 -3
  2. package/adapter/basic.js +41 -17
  3. package/adapter/basic.js.map +1 -1
  4. package/adapter/endpoint.d.ts +2 -2
  5. package/adapter/endpoint.js.map +1 -1
  6. package/adapter/price.d.ts +1 -1
  7. package/adapter/price.js +2 -2
  8. package/adapter/price.js.map +1 -1
  9. package/adapter/types.d.ts +3 -0
  10. package/background-executor.js +18 -3
  11. package/background-executor.js.map +1 -1
  12. package/config/index.d.ts +5 -0
  13. package/config/index.js +20 -11
  14. package/config/index.js.map +1 -1
  15. package/examples/bank-frick/accounts.d.ts +1 -2
  16. package/examples/bank-frick/accounts.js +1 -4
  17. package/examples/bank-frick/accounts.js.map +1 -1
  18. package/examples/coingecko/src/endpoint/crypto-marketcap.js +2 -2
  19. package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -1
  20. package/examples/coingecko/src/endpoint/crypto-volume.js +2 -2
  21. package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -1
  22. package/examples/coingecko/src/endpoint/crypto.js +2 -2
  23. package/examples/coingecko/src/endpoint/crypto.js.map +1 -1
  24. package/examples/coingecko/src/endpoint/dominance.js +2 -2
  25. package/examples/coingecko/src/endpoint/dominance.js.map +1 -1
  26. package/examples/coingecko/src/endpoint/global-marketcap.js +2 -2
  27. package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -1
  28. package/examples/coingecko-old/batch-warming.js +2 -2
  29. package/examples/coingecko-old/batch-warming.js.map +1 -1
  30. package/examples/genesis/sseStream.js +1 -1
  31. package/examples/genesis/sseStream.js.map +1 -1
  32. package/index.js +1 -1
  33. package/index.js.map +1 -1
  34. package/metrics/index.d.ts +2 -0
  35. package/metrics/index.js +4 -3
  36. package/metrics/index.js.map +1 -1
  37. package/package.json +3 -6
  38. package/transports/batch-warming.d.ts +4 -4
  39. package/transports/batch-warming.js +38 -11
  40. package/transports/batch-warming.js.map +1 -1
  41. package/transports/index.d.ts +31 -11
  42. package/transports/index.js.map +1 -1
  43. package/transports/rest.d.ts +1 -2
  44. package/transports/rest.js +14 -21
  45. package/transports/rest.js.map +1 -1
  46. package/transports/routing.d.ts +23 -0
  47. package/transports/routing.js +52 -0
  48. package/transports/routing.js.map +1 -0
  49. package/transports/sse.d.ts +1 -2
  50. package/transports/sse.js +1 -4
  51. package/transports/sse.js.map +1 -1
  52. package/transports/websocket.d.ts +2 -3
  53. package/transports/websocket.js +5 -8
  54. package/transports/websocket.js.map +1 -1
  55. package/util/logger.d.ts +2 -0
  56. package/util/logger.js +2 -1
  57. package/util/logger.js.map +1 -1
  58. package/util/subscription-set/subscription-set.d.ts +1 -1
  59. package/util/subscription-set/subscription-set.js +1 -1
  60. package/util/subscription-set/subscription-set.js.map +1 -1
  61. package/util/test-payload-loader.d.ts +1 -0
  62. package/util/test-payload-loader.js +2 -1
  63. package/util/test-payload-loader.js.map +1 -1
  64. package/validation/error.d.ts +1 -3
  65. package/validation/error.js +1 -3
  66. package/validation/error.js.map +1 -1
  67. package/validation/index.js +8 -3
  68. package/validation/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/batch-warming.ts"],"names":[],"mappings":";;;AACA,2CAA+D;AAC/D,kEAAsE;AAItE,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAO1D,MAAM,eAAe,GAAoB;IACvC,MAAM,EAAE;QACN,WAAW,EACT,8IAA8I;QAChJ,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAYD,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA8B,EAC9B,OAAuB,EACkB,EAAE;QAC3C,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtD,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjE,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO;aAChD;SACF,CAAA;IACH,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAwC,EACA,EAAE;QAC1C,MAAM,OAAO,GAAG,EAA4C,CAAA;QAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;oBACvB,KAAK,EAAE,KAAK;iBACb,CAAC,CAAA;aACH;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,yBAAe,CAAC;IAC/C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,sBAAsB;IACjC,eAAe;CAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/batch-warming.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,kEAAsE;AAKtE,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAO1D,MAAM,eAAe,GAAoB;IACvC,MAAM,EAAE;QACN,WAAW,EACT,8IAA8I;QAChJ,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAYD,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA8B,EAC9B,MAAqB,EACoB,EAAE;QAC3C,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtD,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjE,gBAAgB,EAAE,MAAM,CAAC,OAAO;aACjC;SACF,CAAA;IACH,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAwC,EACA,EAAE;QAC1C,MAAM,OAAO,GAAG,EAA4C,CAAA;QAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;oBACvB,KAAK,EAAE,KAAK;iBACb,CAAC,CAAA;aACH;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,yBAAe,CAAC;IAC/C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,sBAAsB;IACjC,eAAe;CAChB,CAAC,CAAA"}
@@ -139,7 +139,7 @@ const prepareRequestUrl = (config, endpoint, payload) => {
139
139
  const sig = data.digest().toString('hex');
140
140
  const baseUrl = config.API_ENDPOINT ?? DEFAULT_ENDPOINT;
141
141
  const subDir = `${endpoint}?APIKEY=${apiKey}&PAYLOAD=${payload}&NONCE=${nonce}&SIGNATURE=${sig}`;
142
- return (new URL(subDir, baseUrl)).toString();
142
+ return new URL(subDir, baseUrl).toString();
143
143
  };
144
144
  exports.sseEndpoint = new adapter_1.AdapterEndpoint({
145
145
  name: 'sseStream',
@@ -1 +1 @@
1
- {"version":3,"file":"sseStream.js","sourceRoot":"","sources":["../../../../src/examples/genesis/sseStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sseStream.js","sourceRoot":"","sources":["../../../../src/examples/genesis/sseStream.ts"],"names":[],"mappings":"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"}
package/index.js CHANGED
@@ -123,7 +123,7 @@ async function buildRestApi(adapter) {
123
123
  router.route({
124
124
  url: adapter.config.BASE_URL,
125
125
  method: 'POST',
126
- handler: async (req, reply) => reply.send(await adapter.handleRequest(req)),
126
+ handler: async (req, reply) => reply.send(await adapter.handleRequest(req, reply)),
127
127
  });
128
128
  if (adapter.config.METRICS_ENABLED && adapter.config.EXPERIMENTAL_METRICS_ENABLED) {
129
129
  router.addHook('onResponse', metrics_1.buildMetricsMiddleware);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as client from 'prom-client';
2
2
  import { AdapterRequest } from '../util';
3
3
  import { AdapterConfig } from '../config';
4
4
  import { FastifyReply, HookHandlerDoneFunction } from 'fastify';
5
+ import { AdapterError } from '../validation/error';
5
6
  export declare function setupMetricsServer(name: string, config: AdapterConfig): void;
6
7
  export declare const setupMetrics: (name: string, config: AdapterConfig) => void;
7
8
  /**
@@ -11,6 +12,7 @@ export declare const setupMetrics: (name: string, config: AdapterConfig) => void
11
12
  * @returns the cache middleware function
12
13
  */
13
14
  export declare const buildMetricsMiddleware: (req: AdapterRequest, res: FastifyReply, done: HookHandlerDoneFunction) => void;
15
+ export declare const buildHttpRequestMetricsLabel: (feedId: string, error?: AdapterError | Error, cacheHit?: boolean) => Partial<Record<"type" | "method" | "feed_id" | "status_code" | "provider_status_code" | "retry" | "is_cache_warming", string | number>>;
14
16
  export declare const httpRequestsTotal: client.Counter<"type" | "method" | "feed_id" | "status_code" | "provider_status_code" | "retry" | "is_cache_warming">;
15
17
  export declare const httpRequestDurationSeconds: client.Histogram<string>;
16
18
  export declare const bgExecuteTotal: client.Counter<"endpoint">;
package/metrics/index.js CHANGED
@@ -26,7 +26,7 @@ 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.bgExecuteDurationSeconds = exports.bgExecuteTotal = exports.httpRequestDurationSeconds = exports.httpRequestsTotal = exports.buildMetricsMiddleware = exports.setupMetrics = exports.setupMetricsServer = void 0;
29
+ exports.bgExecuteDurationSeconds = exports.bgExecuteTotal = exports.httpRequestDurationSeconds = exports.httpRequestsTotal = exports.buildHttpRequestMetricsLabel = exports.buildMetricsMiddleware = exports.setupMetrics = exports.setupMetricsServer = void 0;
30
30
  const client = __importStar(require("prom-client"));
31
31
  const constants_1 = require("./constants");
32
32
  const util_1 = require("../util");
@@ -56,7 +56,7 @@ const setupMetrics = (name, config) => {
56
56
  client.collectDefaultMetrics();
57
57
  client.register.setDefaultLabels({
58
58
  app_name: config.METRICS_NAME || name || 'N/A',
59
- app_version: config['npm_package_version'],
59
+ app_version: process.env['npm_package_version'],
60
60
  });
61
61
  };
62
62
  exports.setupMetrics = setupMetrics;
@@ -69,7 +69,7 @@ exports.setupMetrics = setupMetrics;
69
69
  const buildMetricsMiddleware = (req, res, done) => {
70
70
  // The request context can technically be empty if the input validation failed
71
71
  const feedId = req.requestContext?.meta?.metrics?.feedId || 'N/A';
72
- const labels = buildHttpRequestMetricsLabel(feedId, req.requestContext?.meta?.error, req.requestContext?.meta?.metrics?.cacheHit);
72
+ const labels = (0, exports.buildHttpRequestMetricsLabel)(feedId, req.requestContext?.meta?.error, req.requestContext?.meta?.metrics?.cacheHit);
73
73
  // Record number of requests sent to EA
74
74
  exports.httpRequestsTotal.labels(labels).inc();
75
75
  // Record response time of request through entire EA
@@ -106,6 +106,7 @@ const buildHttpRequestMetricsLabel = (feedId, error, cacheHit) => {
106
106
  }
107
107
  return labels;
108
108
  };
109
+ exports.buildHttpRequestMetricsLabel = buildHttpRequestMetricsLabel;
109
110
  exports.httpRequestsTotal = new client.Counter({
110
111
  name: 'http_requests_total',
111
112
  help: 'The number of http requests this external adapter has serviced for its entire uptime',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chainlink/external-adapter-framework",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -23,7 +23,8 @@
23
23
  "start": "ts-node -e 'import(`./src/examples/${process.argv[1]}/src/index`).then(ea => ea.server())'",
24
24
  "test-debug": "SKIP_METRICS_CLEAR=true LOG_LEVEL=trace DEBUG=true EA_PORT=0 c8 ava --verbose",
25
25
  "test": "SKIP_METRICS_CLEAR=true LOG_LEVEL=error EA_PORT=0 c8 ava",
26
- "verify": "yarn lint && yarn build && yarn build -p ./test/tsconfig.json && yarn test"
26
+ "verify": "yarn lint && yarn build && yarn build -p ./test/tsconfig.json && yarn test",
27
+ "code-coverage": "c8 check-coverage --statements 95 --lines 95 --functions 95 --branches 90"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@sinonjs/fake-timers": "9.1.2",
@@ -61,10 +62,6 @@
61
62
  "trailingComma": "all",
62
63
  "arrowParens": "always"
63
64
  },
64
- "optionalDependencies": {
65
- "bufferutil": "^4.0.6",
66
- "utf-8-validate": "^5.0.9"
67
- },
68
65
  "ava": {
69
66
  "files": [
70
67
  "test/**/*.test.ts"
@@ -25,11 +25,11 @@ export declare class BatchWarmingTransport<AdapterParams, ProviderRequestBody, P
25
25
  subscriptionSet: SubscriptionSet<AdapterParams>;
26
26
  WARMER_ACTIVE: boolean;
27
27
  constructor(config: {
28
- prepareRequest: (params: AdapterParams[], context: AdapterContext<CustomSettings>) => AxiosRequestConfig<ProviderRequestBody>;
29
- parseResponse: (params: AdapterParams[], res: AxiosResponse<ProviderResponseBody>, context: AdapterContext<CustomSettings>) => ProviderResult<AdapterParams>[];
28
+ prepareRequest: (params: AdapterParams[], config: AdapterConfig<CustomSettings>) => AxiosRequestConfig<ProviderRequestBody>;
29
+ parseResponse: (params: AdapterParams[], res: AxiosResponse<ProviderResponseBody>, config: AdapterConfig<CustomSettings>) => ProviderResult<AdapterParams>[];
30
30
  });
31
31
  initialize(dependencies: AdapterDependencies, _: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
32
- hasBeenSetUp(): Promise<boolean>;
33
- setup(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<void>;
32
+ registerRequest(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<void>;
34
33
  backgroundExecute(context: AdapterContext<CustomSettings>): Promise<number>;
34
+ private makeRequest;
35
35
  }
@@ -30,6 +30,7 @@ const util_2 = require("./util");
30
30
  const rateLimitMetrics = __importStar(require("../rate-limiting/metrics"));
31
31
  const cacheMetrics = __importStar(require("../cache/metrics"));
32
32
  const transportMetrics = __importStar(require("./metrics"));
33
+ const error_1 = require("../validation/error");
33
34
  const WARMUP_BATCH_REQUEST_ID = '9002';
34
35
  const logger = (0, util_1.makeLogger)('BatchWarmingTransport');
35
36
  /**
@@ -57,11 +58,19 @@ class BatchWarmingTransport {
57
58
  this.subscriptionSet = dependencies.subscriptionSetFactory.buildSet(endpointName);
58
59
  }
59
60
  // This might need coalescing to avoid too frequent ttl updates
60
- async hasBeenSetUp() {
61
- return false;
62
- }
63
- async setup(req, config) {
61
+ async registerRequest(req, config) {
64
62
  logger.debug(`Adding entry to subscription set (ttl ${config.WARMUP_SUBSCRIPTION_TTL}): [${req.requestContext.cacheKey}] = ${req.requestContext.data}`);
63
+ if (config.BATCH_TRANSPORT_SETUP_VALIDATION) {
64
+ const response = await this.makeRequest([req.requestContext.data], config);
65
+ if (!response.results.length) {
66
+ throw new error_1.AdapterError({
67
+ statusCode: 200,
68
+ providerStatusCode: response.providerResponse.status,
69
+ message: response.providerResponse.message ||
70
+ 'There was an error while validating the incoming request before adding to the batch subscription set',
71
+ });
72
+ }
73
+ }
65
74
  await this.subscriptionSet.add(req.requestContext.cacheKey, req.requestContext.data, config.WARMUP_SUBSCRIPTION_TTL);
66
75
  }
67
76
  async backgroundExecute(context) {
@@ -86,16 +95,15 @@ class BatchWarmingTransport {
86
95
  cacheMetrics.cacheWarmerCount.labels({ isBatched: 'true' }).inc();
87
96
  this.WARMER_ACTIVE = true;
88
97
  }
89
- const request = this.config.prepareRequest(entries, context);
90
- logger.trace('Sending request to data provider...');
91
- const providerResponse = await (0, util_2.axiosRequest)(request, context.adapterConfig);
92
- logger.debug(`Got response from provider, parsing (raw body: ${providerResponse.data})`);
93
- const results = this.config.parseResponse(entries, providerResponse, context);
94
- const cacheEntries = (0, _1.buildCacheEntriesFromResults)(results, context);
98
+ const response = await this.makeRequest(entries, context.adapterConfig);
99
+ if (!response.results?.length) {
100
+ return interval;
101
+ }
102
+ const cacheEntries = (0, _1.buildCacheEntriesFromResults)(response.results, context);
95
103
  logger.debug('Setting adapter responses in cache');
96
104
  await this.cache.setMany(cacheEntries, context.adapterConfig.CACHE_MAX_AGE);
97
105
  // Record cost of data provider call
98
- const cost = rateLimitMetrics.retrieveCost(providerResponse.data);
106
+ const cost = rateLimitMetrics.retrieveCost(response.providerResponse.data);
99
107
  rateLimitMetrics.rateLimitCreditsSpentTotal
100
108
  .labels({
101
109
  feed_id: 'N/A',
@@ -104,6 +112,25 @@ class BatchWarmingTransport {
104
112
  .inc(cost);
105
113
  return interval;
106
114
  }
115
+ async makeRequest(entries, config) {
116
+ const request = this.config.prepareRequest(entries, config);
117
+ logger.trace('Sending request to data provider...');
118
+ let providerResponse;
119
+ try {
120
+ providerResponse = await (0, util_2.axiosRequest)(request, config);
121
+ }
122
+ catch (e) {
123
+ return {
124
+ results: [],
125
+ providerResponse: e,
126
+ };
127
+ }
128
+ logger.debug(`Got response from provider, parsing (raw body: ${providerResponse.data})`);
129
+ return {
130
+ results: this.config.parseResponse(entries, providerResponse, config),
131
+ providerResponse,
132
+ };
133
+ }
107
134
  }
108
135
  exports.BatchWarmingTransport = BatchWarmingTransport;
109
136
  //# sourceMappingURL=batch-warming.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../src/transports/batch-warming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../src/transports/batch-warming.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export * from './websocket';
18
18
  * @typeParam Result - the structure of the AdapterResponse's body
19
19
  */
20
20
  export interface Transport<Params, Result, CustomSettings extends SettingsMap> {
21
- cache: Cache<AdapterResponse<Result>>;
21
+ cache?: Cache<AdapterResponse<Result>>;
22
22
  /**
23
23
  * Initializes the transport in the Adapter context.
24
24
  *
@@ -28,32 +28,52 @@ export interface Transport<Params, Result, CustomSettings extends SettingsMap> {
28
28
  */
29
29
  initialize: (dependencies: AdapterDependencies, config: AdapterConfig<CustomSettings>, endpointName: string) => Promise<void>;
30
30
  /**
31
- * Checks if the Transport has already set up the incoming request.
32
- * This will likely use the cacheKey generated in the provided request.
31
+ * Registers a request within the context of the transport.
32
+ * This means things like adding the request to a subscription set.
33
33
  *
34
34
  * @param req - the incoming AdapterRequest
35
- * @returns a Promise that returns true if setup is in place
35
+ * @param config - common configuration for the Adapter as a whole
36
+ * @returns an empty Promise
36
37
  */
37
- hasBeenSetUp: (req: AdapterRequest<Params>) => Promise<boolean>;
38
+ registerRequest?: (req: AdapterRequest<Params>, config: AdapterConfig<CustomSettings>) => Promise<void>;
38
39
  /**
39
- * Sets up the incoming request within the Transport.
40
- * In other words, it means that the Adapter has recognized this request, and will begin
41
- * fetching the necessary data from a Data Provider.
40
+ * Performs a synchronous fetch/processing of information within the lifecycle of an incoming request.
41
+ * This is mostly intended to be used as a backwards compatibility mechanism, or for very specific cases where
42
+ * processing is expected to be very simple. Things like rate limiting for example won't be able to be applied
43
+ * to this method with more than one EA instance. It's heavily encouraged to instead rework adapter logic
44
+ * to perform as much of the work as possible (or all of it) in the backgroundExecute method.
42
45
  *
43
46
  * @param req - the incoming AdapterRequest
44
47
  * @param config - common configuration for the Adapter as a whole
45
48
  * @returns a Promise that _optionally_ returns an AdapterResponse, if the Transport has the capability of
46
49
  * immediately fetching data and returning it without the background process.
47
50
  */
48
- setup: (req: AdapterRequest<Params>, config: AdapterConfig<CustomSettings>) => Promise<AdapterResponse<Result> | void>;
51
+ foregroundExecute?: (req: AdapterRequest<Params>, config: AdapterConfig<CustomSettings>) => Promise<AdapterResponse<Result> | void>;
49
52
  /**
50
- * If the Transport relies on an async mechanism, implementing this function will make it
51
- * so the background task executor calls it on Adapter startup.
53
+ * Main function that will be called by the main background loop of the writer EA.
54
+ * All logic fetching from providers should live here.
52
55
  *
53
56
  * @param context - background context for the execution (e.g. endpoint name)
57
+ * @returns an empty Promise
54
58
  */
55
59
  backgroundExecute?: (context: AdapterContext<CustomSettings>) => Promise<number>;
56
60
  }
61
+ /**
62
+ * Generic interface for a Transport that contains or manages other transports.
63
+ * Some transports, such as the RoutingTransport, do not directly fetch data from a Data Provider, but
64
+ * instead coordinate the execution of other transports for fetching and transforming data.
65
+ * These transports have alternative initialization procedures, which typically involve
66
+ * initializing each downstream transport.
67
+ *
68
+ * @typeParam Params - the structure of the AdapterRequest's body
69
+ * @typeParam Result - the structure of the AdapterResponse's body
70
+ * @typeParam CustomSettings - custom settings for the Adapter, or the default SettingsMap
71
+ */
72
+ export interface MetaTransport<Params, Result, CustomSettings extends SettingsMap> extends Transport<Params, Result, CustomSettings> {
73
+ transports: {
74
+ [key: string]: Transport<unknown, unknown, CustomSettings>;
75
+ };
76
+ }
57
77
  export declare type BackgroundStoredResultType = {
58
78
  result: unknown;
59
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,oCAAgF;AAIhF,kDAA+B;AAC/B,yCAAsB;AACtB,wCAAqB;AACrB,8CAA2B;AAmE3B;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,CAC1C,OAAiC,EACjC,OAAuC,EACoB,EAAE,CAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAChB,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,IAAA,yBAAiB,EAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QACzC,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,CAAC,KAAK;YACf,UAAU,EAAE,GAAG;YACf,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,KAAK;aAChB;SACF;KACF,CAAA;IAED,IACE,OAAO,CAAC,aAAa,CAAC,eAAe;QACrC,OAAO,CAAC,aAAa,CAAC,4BAA4B,EAClD;QACA,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa;YACxD,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,MAAM,EAAE,IAAA,uBAAe,EAAC,OAAyB,EAAE,CAAC,CAAC,MAAM,CAAC;iBAC7D;aACF;SACF,CAAA;QACD,UAAU,CAAC,KAAK,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;KACvD;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AA/BS,QAAA,4BAA4B,gCA+BrC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,oCAAgF;AAIhF,kDAA+B;AAC/B,yCAAsB;AACtB,wCAAqB;AACrB,8CAA2B;AA2F3B;;;;;;GAMG;AACI,MAAM,4BAA4B,GAAG,CAC1C,OAAiC,EACjC,OAAuC,EACoB,EAAE,CAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAChB,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,IAAA,yBAAiB,EAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QACzC,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,CAAC,KAAK;YACf,UAAU,EAAE,GAAG;YACf,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,KAAK;aAChB;SACF;KACF,CAAA;IAED,IACE,OAAO,CAAC,aAAa,CAAC,eAAe;QACrC,OAAO,CAAC,aAAa,CAAC,4BAA4B,EAClD;QACA,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa;YACxD,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,MAAM,EAAE,IAAA,uBAAe,EAAC,OAAyB,EAAE,CAAC,CAAC,MAAM,CAAC;iBAC7D;aACF;SACF,CAAA;QACD,UAAU,CAAC,KAAK,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;KACvD;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AA/BS,QAAA,4BAA4B,gCA+BrC"}
@@ -43,10 +43,9 @@ export declare class RestTransport<AdapterParams, ProviderRequestBody, ProviderR
43
43
  };
44
44
  });
45
45
  initialize(dependencies: AdapterDependencies, config: AdapterConfig<CustomSettings>): Promise<void>;
46
- hasBeenSetUp(req: AdapterRequest<AdapterParams>): Promise<boolean>;
47
46
  protected waitUntilUnderRateLimit(options: {
48
47
  maxRetries: number;
49
48
  msBetweenRetries: number;
50
49
  }, retry?: number): Promise<void>;
51
- setup(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<AdapterResponse<ProviderResponseBody> | undefined>;
50
+ foregroundExecute(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<AdapterResponse<ProviderResponseBody> | undefined>;
52
51
  }
@@ -54,25 +54,6 @@ class RestTransport {
54
54
  this.config.options.requestCoalescing.enabled = config.REQUEST_COALESCING_ENABLED;
55
55
  this.config.options.requestCoalescing.entropyMax = config.REQUEST_COALESCING_ENTROPY_MAX;
56
56
  }
57
- async hasBeenSetUp(req) {
58
- if (!this.config.options.requestCoalescing.enabled) {
59
- return false;
60
- }
61
- // Add some entropy here because of possible scenario where the key won't be set before multiple
62
- // other instances in a burst request try to access the coalescing key.
63
- const randomMs = Math.random() * (this.config.options.requestCoalescing.entropyMax || 0);
64
- await (0, util_1.sleep)(randomMs);
65
- // Check if request is in flight
66
- const inFlight = await this.cache.get(this.inFlightPrefix + req.requestContext.cacheKey);
67
- if (inFlight) {
68
- logger.debug('Request is in flight, transport has been set up');
69
- return true;
70
- }
71
- else {
72
- logger.debug('Request not in flight, transport not set up');
73
- return false;
74
- }
75
- }
76
57
  async waitUntilUnderRateLimit(options, retry = 0) {
77
58
  if (this.rateLimiter.isUnderLimits()) {
78
59
  logger.trace('Incoming request would not be under limits, moving on');
@@ -88,8 +69,20 @@ class RestTransport {
88
69
  await (0, util_1.sleep)(options.msBetweenRetries);
89
70
  await this.waitUntilUnderRateLimit(options, retry + 1);
90
71
  }
91
- async setup(req, config) {
92
- if (this.config.options.requestCoalescing.enabled) {
72
+ async foregroundExecute(req, config) {
73
+ // Add some entropy here because of possible scenario where the key won't be set before multiple
74
+ // other instances in a burst request try to access the coalescing key.
75
+ const randomMs = Math.random() * (this.config.options.requestCoalescing.entropyMax || 0);
76
+ await (0, util_1.sleep)(randomMs);
77
+ // Check if request is in flight if coalescing is enabled
78
+ const inFlight = this.config.options.requestCoalescing.enabled &&
79
+ (await this.cache.get(this.inFlightPrefix + req.requestContext.cacheKey));
80
+ if (inFlight) {
81
+ logger.debug('Request is in flight, transport has been set up');
82
+ return;
83
+ }
84
+ else if (this.config.options.requestCoalescing.enabled) {
85
+ // If it wasn't in flight and coalescing is disabled, register it as in flight
93
86
  const ttl = config.REST_TRANSPORT_MAX_RATE_LIMIT_RETRIES *
94
87
  config.REST_TRANSPORT_MS_BETWEEN_RATE_LIMIT_RETRIES;
95
88
  logger.debug('Setting up rest transport, setting request in flight in cache');
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transports/rest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../src/transports/rest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { AdapterRequest, AdapterResponse } from '../util/request';
2
+ import { MetaTransport, Transport } from './';
3
+ import { AdapterConfig, SettingsMap } from '../config';
4
+ import { AdapterDependencies } from '../adapter';
5
+ /**
6
+ * Transport implementation that takes 2 or more transports and a function that determines with transport to use.
7
+ *
8
+ * @typeParam AdapterParams - interface for the adapter request body
9
+ * @typeParam AdapterResult - interface for the adapter's response body
10
+ * @typeParam CustomSettings - interface for the adapter's custom settings.
11
+ */
12
+ export declare class RoutingTransport<AdapterParams, AdapterResult, CustomSettings extends SettingsMap> implements MetaTransport<AdapterParams, AdapterResult, CustomSettings> {
13
+ transports: {
14
+ [key: string]: Transport<unknown, unknown, CustomSettings>;
15
+ };
16
+ private route;
17
+ constructor(transports: {
18
+ [key: string]: Transport<unknown, unknown, CustomSettings>;
19
+ }, route: (req: AdapterRequest<AdapterParams>, adapterConfig?: AdapterConfig<CustomSettings>) => string);
20
+ initialize(dependencies: AdapterDependencies, adapterConfig: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
21
+ private resolveTransport;
22
+ foregroundExecute(req: AdapterRequest<AdapterParams>, adapterConfig: AdapterConfig<CustomSettings>): Promise<AdapterResponse<any> | void>;
23
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoutingTransport = void 0;
4
+ const util_1 = require("../util");
5
+ const error_1 = require("../validation/error");
6
+ const logger = (0, util_1.makeLogger)('RoutingTransport');
7
+ /**
8
+ * Transport implementation that takes 2 or more transports and a function that determines with transport to use.
9
+ *
10
+ * @typeParam AdapterParams - interface for the adapter request body
11
+ * @typeParam AdapterResult - interface for the adapter's response body
12
+ * @typeParam CustomSettings - interface for the adapter's custom settings.
13
+ */
14
+ class RoutingTransport {
15
+ constructor(
16
+ // This is public for tests, which sometimes need the underlying transport for things like ticking the clock
17
+ transports,
18
+ // Route should return to a string key that corresponds to a transport in the transports object
19
+ route) {
20
+ this.transports = transports;
21
+ this.route = route;
22
+ }
23
+ async initialize(dependencies, adapterConfig, endpointName) {
24
+ logger.debug(`Initializing ${Object.keys(this.transports).length} transports`);
25
+ Object.entries(this.transports).forEach(([k, v]) => {
26
+ logger.debug(`Initializing transport ${k} (${v.constructor.name})`);
27
+ v.initialize(dependencies, adapterConfig, endpointName);
28
+ });
29
+ }
30
+ resolveTransport(req, adapterConfig) {
31
+ logger.debug(`routing request using`, req.params);
32
+ const key = this.route(req, adapterConfig || undefined);
33
+ if (!this.transports[key]) {
34
+ throw new error_1.AdapterError({ statusCode: 400, message: `No transport found for ${key}` });
35
+ }
36
+ const transport = this.transports[key];
37
+ logger.debug(`Found ${transport.constructor.name} corresponding to ${key}`);
38
+ return transport;
39
+ }
40
+ // Allow AdapterResponse<any> below since we don't know what the adapter will return
41
+ /* eslint-disable @typescript-eslint/no-explicit-any */
42
+ async foregroundExecute(req, adapterConfig) {
43
+ const transport = this.resolveTransport(req, adapterConfig);
44
+ if (transport.foregroundExecute) {
45
+ logger.debug(`Running foregroundExecute on retrieved transport`);
46
+ return transport.foregroundExecute(req, adapterConfig);
47
+ }
48
+ logger.debug(`Retrieved transport doesn't implement foregroundExecute`);
49
+ }
50
+ }
51
+ exports.RoutingTransport = RoutingTransport;
52
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/transports/routing.ts"],"names":[],"mappings":";;;AAEA,kCAAoC;AAGpC,+CAAkD;AAElD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,kBAAkB,CAAC,CAAA;AAE7C;;;;;;GAMG;AAEH,MAAa,gBAAgB;IAI3B;IACE,6GAA6G;IACtG,UAA0E;IAEjF,+FAA+F;IACvF,KAGG;QANJ,eAAU,GAAV,UAAU,CAAgE;QAGzE,UAAK,GAAL,KAAK,CAGF;IACV,CAAC;IAEJ,KAAK,CAAC,UAAU,CACd,YAAiC,EACjC,aAA4C,EAC5C,YAAoB;QAEpB,MAAM,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,aAAa,CAAC,CAAA;QAC9E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACjD,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAA;YACnE,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB,CACtB,GAAkC,EAClC,aAA6C;QAE7C,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,aAAa,IAAI,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACzB,MAAM,IAAI,oBAAY,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,GAAG,EAAE,EAAE,CAAC,CAAA;SACtF;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QACtC,MAAM,CAAC,KAAK,CAAC,SAAS,SAAS,CAAC,WAAW,CAAC,IAAI,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC3E,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,oFAAoF;IACpF,wDAAwD;IACxD,KAAK,CAAC,iBAAiB,CACrB,GAAkC,EAClC,aAA4C;QAE5C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAC3D,IAAI,SAAS,CAAC,iBAAiB,EAAE;YAC/B,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAA;YAChE,OAAO,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;SACvD;QACD,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAA;IACzE,CAAC;CACF;AAtDD,4CAsDC"}
@@ -35,7 +35,6 @@ export declare class SSETransport<AdapterParams, ProviderRequestBody, CustomSett
35
35
  pollingSleepMs?: number;
36
36
  });
37
37
  initialize(dependencies: AdapterDependencies, config: AdapterConfig<CustomSettings>, endpointName: string): Promise<void>;
38
- hasBeenSetUp(): Promise<boolean>;
39
- setup(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<void>;
38
+ registerRequest(req: AdapterRequest<AdapterParams>, config: AdapterConfig<CustomSettings>): Promise<void>;
40
39
  backgroundExecute(context: AdapterContext<CustomSettings>): Promise<number>;
41
40
  }
package/transports/sse.js CHANGED
@@ -25,10 +25,7 @@ class SSETransport {
25
25
  this.EventSource = dependencies.eventSource;
26
26
  }
27
27
  }
28
- async hasBeenSetUp() {
29
- return false;
30
- }
31
- async setup(req, config) {
28
+ async registerRequest(req, config) {
32
29
  logger.debug(`Adding entry to subscription set (ttl: ${config.SSE_SUBSCRIPTION_TTL}): [${req.requestContext.cacheKey}] = ${req.requestContext.data}`);
33
30
  await this.subscriptionSet.add(req.requestContext.cacheKey, req.requestContext.data, config.SSE_SUBSCRIPTION_TTL);
34
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/transports/sse.ts"],"names":[],"mappings":"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"}