@chainlink/external-adapter-framework 1.4.0 → 1.6.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.
@@ -1,5 +1,5 @@
1
1
  import { TransportRoutes } from '../transports';
2
- import { AdapterRequest } from '../util';
2
+ import { AdapterRequest, Overrides } from '../util';
3
3
  import { InputParameters } from '../validation';
4
4
  import { TypeFromDefinition } from '../validation/input-params';
5
5
  import { AdapterDependencies, AdapterEndpointInterface, AdapterEndpointParams, CustomInputValidator, CustomOutputValidator, EndpointGenerics, EndpointRateLimitingConfig, RequestTransform } from './types';
@@ -36,6 +36,10 @@ export declare class AdapterEndpoint<T extends EndpointGenerics> implements Adap
36
36
  * @returns the request after passing through all request transforms
37
37
  */
38
38
  runRequestTransforms(req: AdapterRequest<TypeFromDefinition<T['Parameters']>>, settings: T['Settings']): void;
39
+ getRequestOverrides(data: Record<string, string>, overrides?: Overrides): {
40
+ [symbol: string]: string;
41
+ transport: string;
42
+ } | undefined;
39
43
  /**
40
44
  * Default request transform that takes requests and manipulates base params
41
45
  *
@@ -67,6 +67,10 @@ class AdapterEndpoint {
67
67
  transform(req, settings);
68
68
  }
69
69
  }
70
+ getRequestOverrides(data, overrides) {
71
+ const overrideAdapterName = data['adapterNameOverride'];
72
+ return overrides?.[overrideAdapterName] || overrides?.[this.adapterName.toLowerCase()];
73
+ }
70
74
  /**
71
75
  * Default request transform that takes requests and manipulates base params
72
76
  *
@@ -75,9 +79,9 @@ class AdapterEndpoint {
75
79
  * @returns the modified (or new) request
76
80
  */
77
81
  symbolOverrider(req) {
78
- const rawRequestBody = req.body;
79
- const requestOverrides = rawRequestBody.data?.overrides?.[this.adapterName.toLowerCase()];
80
82
  const data = req.requestContext.data;
83
+ const rawRequestBody = req.body;
84
+ const requestOverrides = this.getRequestOverrides(data, rawRequestBody.data?.overrides);
81
85
  const base = data['base'];
82
86
  if (requestOverrides?.[base]) {
83
87
  // Perform overrides specified in the request payload
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,8CAA+C;AAC/C,kCAAmF;AACnF,8CAA+C;AAC/C,+CAAkD;AAalD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAC/B,QAAA,sBAAsB,GAAG,0BAA0B,CAAA;AAEhE;;GAEG;AACH,MAAa,eAAe;IAkB1B,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,IAAI,IAAI,4BAAe,CAAC,EAAE,CAAC,CAAA;QACxE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACvC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAA;QACzD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAA;QAC3D,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,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,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,CAClB,GAAwD,EACxD,QAAuB;QAEvB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC9C,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;SACzB;IACH,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,GAAwD;QACtE,MAAM,cAAc,GAAG,GAAG,CAAC,IAA4C,CAAA;QACvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;QACzF,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAA8B,CAAA;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5B,qDAAqD;YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;SACtC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;YACjC,sCAAsC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;SACpC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,0BAA0B,CACxB,GAAwD,EACxD,QAAuB;QAEvB,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;;;;;;OAMG;IACK,aAAa,CAAC,GAAwD;QAC5E,MAAM,cAAc,GAAG,GAAG,CAAC,IAA+C,CAAA;QAC1E,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;QACzF,qBAAqB;QACrB,IAAI,gBAAgB,EAAE,CAAC,WAAW,CAAC,EAAE;YACnC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAA;SACrC;QACD,OAAO,cAAc,CAAC,IAAI,EAAE,SAAS,CAAA;IACvC,CAAC;CACF;AAtKD,0CAsKC"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,10 @@ export interface BaseAdapterEndpointParams<T extends EndpointGenerics> {
113
113
  rateLimiting?: EndpointRateLimitingConfig;
114
114
  /** Custom function that generates cache keys */
115
115
  cacheKeyGenerator?: (data: TypeFromDefinition<T['Parameters']>) => string;
116
- /** Custom input validation. Void function that should throw AdapterInputError on validation errors */
116
+ /**
117
+ * Custom input validation. Void function that should throw AdapterInputError on validation errors.
118
+ * Can be used to pre-transform requests before all the requestTransforms happens
119
+ */
117
120
  customInputValidation?: CustomInputValidator<T>;
118
121
  /** Custom output validation. Void function that should throw AdapterError on validation errors */
119
122
  customOutputValidation?: CustomOutputValidator;
@@ -154,9 +154,9 @@ module.exports = class extends Generator {
154
154
  const pkgJson = {
155
155
  devDependencies: {
156
156
  '@types/jest': '27.5.2',
157
- '@types/node': '16.11.68',
157
+ '@types/node': '16.18.115',
158
158
  nock: '13.5.4',
159
- typescript: '5.0.4',
159
+ typescript: '5.5.4',
160
160
  },
161
161
  dependencies: {
162
162
  '@chainlink/external-adapter-framework': this.props.frameworkVersion,
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@chainlink/external-adapter-framework",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
7
  "ajv": "8.11.0",
8
- "axios": "1.6.8",
8
+ "axios": "1.7.7",
9
9
  "eventsource": "2.0.2",
10
10
  "fastify": "4.13.0",
11
11
  "ioredis": "5.2.3",
@@ -14,7 +14,7 @@
14
14
  "pino-pretty": "9.1.0",
15
15
  "prom-client": "13.2.0",
16
16
  "redlock": "5.0.0-beta.2",
17
- "ws": "8.9.0",
17
+ "ws": "8.17.1",
18
18
  "yeoman-generator": "3.1.1"
19
19
  },
20
20
  "scripts": {