@chainlink/external-adapter-framework 0.5.2 → 0.5.4

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 (103) hide show
  1. package/README.md +67 -0
  2. package/adapter/basic.d.ts +6 -10
  3. package/adapter/basic.js +7 -10
  4. package/adapter/basic.js.map +1 -1
  5. package/adapter/endpoint.d.ts +6 -6
  6. package/adapter/endpoint.js +0 -1
  7. package/adapter/endpoint.js.map +1 -1
  8. package/adapter/price.d.ts +8 -10
  9. package/adapter/price.js +5 -8
  10. package/adapter/price.js.map +1 -1
  11. package/adapter/types.d.ts +13 -19
  12. package/background-executor.js +4 -19
  13. package/background-executor.js.map +1 -1
  14. package/cache/index.d.ts +6 -6
  15. package/cache/redis.d.ts +3 -0
  16. package/cache/redis.js +12 -19
  17. package/cache/redis.js.map +1 -1
  18. package/config/index.d.ts +0 -1
  19. package/config/index.js +7 -13
  20. package/config/index.js.map +1 -1
  21. package/examples/bank-frick/accounts.d.ts +24 -17
  22. package/examples/bank-frick/accounts.js +9 -22
  23. package/examples/bank-frick/accounts.js.map +1 -1
  24. package/examples/bank-frick/index.d.ts +15 -1
  25. package/examples/bank-frick/index.js +1 -1
  26. package/examples/coingecko/src/crypto-utils.d.ts +1 -15
  27. package/examples/coingecko/src/crypto-utils.js.map +1 -1
  28. package/examples/coingecko/src/endpoint/coins.d.ts +3 -20
  29. package/examples/coingecko/src/endpoint/coins.js +2 -2
  30. package/examples/coingecko/src/endpoint/coins.js.map +1 -1
  31. package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +2 -2
  32. package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -1
  33. package/examples/coingecko/src/endpoint/crypto-volume.d.ts +2 -2
  34. package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -1
  35. package/examples/coingecko/src/endpoint/crypto.d.ts +1 -2
  36. package/examples/coingecko/src/endpoint/crypto.js.map +1 -1
  37. package/examples/coingecko/src/endpoint/dominance.d.ts +2 -2
  38. package/examples/coingecko/src/endpoint/dominance.js.map +1 -1
  39. package/examples/coingecko/src/endpoint/global-marketcap.d.ts +2 -2
  40. package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -1
  41. package/examples/coingecko/src/global-utils.d.ts +3 -18
  42. package/examples/coingecko/src/global-utils.js.map +1 -1
  43. package/examples/coingecko/src/index.js +1 -1
  44. package/examples/coingecko-old/batch-warming.d.ts +7 -0
  45. package/examples/coingecko-old/batch-warming.js +54 -0
  46. package/examples/coingecko-old/batch-warming.js.map +1 -0
  47. package/examples/coingecko-old/index.d.ts +2 -0
  48. package/examples/coingecko-old/index.js +12 -0
  49. package/examples/coingecko-old/index.js.map +1 -0
  50. package/examples/coingecko-old/rest.d.ts +12 -0
  51. package/examples/coingecko-old/rest.js +55 -0
  52. package/examples/coingecko-old/rest.js.map +1 -0
  53. package/examples/cryptocompare/src/endpoints/crypto.d.ts +2 -14
  54. package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -1
  55. package/examples/cryptocompare/src/index.js +1 -1
  56. package/examples/genesis/index.js +1 -1
  57. package/examples/genesis/sseStream.d.ts +2 -13
  58. package/examples/genesis/sseStream.js.map +1 -1
  59. package/examples/ncfx/config/index.d.ts +12 -0
  60. package/examples/ncfx/config/index.js +16 -0
  61. package/examples/ncfx/config/index.js.map +1 -0
  62. package/examples/ncfx/index.d.ts +13 -0
  63. package/examples/ncfx/index.js +12 -0
  64. package/examples/ncfx/index.js.map +1 -0
  65. package/examples/ncfx/websocket.d.ts +47 -0
  66. package/examples/ncfx/websocket.js +74 -0
  67. package/examples/ncfx/websocket.js.map +1 -0
  68. package/metrics/util.d.ts +5 -5
  69. package/metrics/util.js.map +1 -1
  70. package/package.json +5 -3
  71. package/rate-limiting/background/fixed-frequency.d.ts +3 -2
  72. package/rate-limiting/background/fixed-frequency.js.map +1 -1
  73. package/rate-limiting/index.d.ts +4 -4
  74. package/rate-limiting/index.js +1 -1
  75. package/rate-limiting/index.js.map +1 -1
  76. package/rate-limiting/request/simple-counting.d.ts +3 -2
  77. package/rate-limiting/request/simple-counting.js.map +1 -1
  78. package/transports/batch-warming.d.ts +13 -31
  79. package/transports/batch-warming.js +4 -4
  80. package/transports/batch-warming.js.map +1 -1
  81. package/transports/index.d.ts +13 -50
  82. package/transports/index.js.map +1 -1
  83. package/transports/metrics.d.ts +2 -2
  84. package/transports/metrics.js +2 -2
  85. package/transports/metrics.js.map +1 -1
  86. package/transports/rest.d.ts +13 -30
  87. package/transports/rest.js +3 -1
  88. package/transports/rest.js.map +1 -1
  89. package/transports/routing.d.ts +12 -10
  90. package/transports/routing.js +3 -1
  91. package/transports/routing.js.map +1 -1
  92. package/transports/sse.d.ts +18 -39
  93. package/transports/sse.js +1 -6
  94. package/transports/sse.js.map +1 -1
  95. package/transports/websocket.d.ts +23 -39
  96. package/transports/websocket.js +4 -5
  97. package/transports/websocket.js.map +1 -1
  98. package/util/request.d.ts +10 -46
  99. package/validation/index.js +15 -16
  100. package/validation/index.js.map +1 -1
  101. package/validation/override-functions.d.ts +3 -0
  102. package/validation/override-functions.js +41 -0
  103. package/validation/override-functions.js.map +1 -0
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # EA Framework v3
2
+
3
+ > **Warning**
4
+ > This framework is in a Beta state, and under active development. While many of the features from version 2 are present, they have not been tested extensively enough to mark this as production ready. You can find v2 in the [External Adapters Monorepo](https://github.com/smartcontractkit/external-adapters-js)
5
+
6
+ Framework to create External adapters, microservices that serve as middleware to facilitate connections between Chainlink Nodes and Data Providers (DP).
7
+
8
+ ## Requirements
9
+
10
+ - Node.js 16+
11
+ - Yarn
12
+
13
+ ### Optional development tools
14
+
15
+ If available, consider setting up your development environment with:
16
+
17
+ - ESLint
18
+ - Prettier
19
+
20
+ Note that both of the above are not necessary, but PRs submitted to the repo will be blocked from merging unless they comply with the linting and formatting rules.
21
+
22
+ ## Setup
23
+
24
+ ```sh
25
+ yarn # Install yarn dependencies
26
+ ```
27
+
28
+ ## Guides & Docs
29
+
30
+ - [Basics](./docs/basics.md)
31
+ - Porting a v2 EA to v3
32
+ - Creating a new v3 EA
33
+ - Transports
34
+ - Basic
35
+ - REST
36
+ - WebSocket
37
+ - SSE
38
+ - Meta
39
+ - Routing
40
+
41
+ ## Testing
42
+
43
+ The EA framework is tested by a suite of integration tests located [here](./test).
44
+
45
+ ```
46
+ yarn test
47
+ ```
48
+
49
+ ## Publishing releases
50
+
51
+ ### Automatic
52
+
53
+ The normal flow for publishing a release is through a series o GitHub actions that are triggered when a PR is closed by merging with the base branch. Full details about our workflows can be found in [./.github/WORKFLOW-README.MD]. A summary of our publish workflow follows:
54
+
55
+ 1. Close a PR containing your changes
56
+ 2. If the PR was merged and if it contains a version label instruction (patch, minor, major, none), a new PR will be created that contains the result of running `npm version LABEL` on master with the original PR author assigned as a reviewer.
57
+ 3. A link to the newly created version bump PR will be added to your original PR. Click on that link, and approve it to be merged.
58
+ 4. Close the version bump PR. If merged, the package will be published to npm.
59
+ 5. When the publish workflow finishes, a comment will be added to the version bump PR that tells you if it ran successfully
60
+
61
+ This adds an extra step (approving a version bump PR) that has to be taken every time a PR is merged. This is annoying, but it is an effective workaround for permissions issues when running against protected branches, and eliminates the need for the PR author to manually update their branch's version by referring to master.
62
+
63
+ ### Manual
64
+
65
+ If you need to publish a release manually, you can do so by running `yarn release` at the project root
66
+
67
+ This runs a script that publishes the package from dist/src. If you publish from the root directory, imports will be in the form of: `import {something} from "@chainlink/external-adapter-framework/src/some_directory"`. By publishing the package from dist/src, the "src" part of the import path gets dropped, which looks cleaner: `import {something} from "@chainlink/external-adapter-framework/some_directory"`.
@@ -1,16 +1,14 @@
1
1
  import { SettingsMap, BaseAdapterConfig, AdapterConfig } from '../config';
2
- import { AdapterRequest, AdapterResponse, Merge } from '../util';
2
+ import { AdapterRequest, AdapterResponse } from '../util';
3
3
  import { AdapterEndpoint } from './endpoint';
4
- import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig, CustomAdapterSettings, EndpointGenerics, RequestTransform } from './types';
4
+ import { AdapterDependencies, AdapterParams, AdapterRateLimitingConfig, CustomAdapterSettings, RequestTransform } from './types';
5
5
  /**
6
6
  * Main class to represent an External Adapter
7
7
  */
8
8
  export declare class Adapter<CustomSettings extends CustomAdapterSettings = SettingsMap> implements Omit<AdapterParams<CustomSettings>, 'bootstrap'> {
9
- name: Uppercase<string>;
9
+ name: string;
10
10
  defaultEndpoint?: string | undefined;
11
- endpoints: AdapterEndpoint<Merge<EndpointGenerics, {
12
- CustomSettings: CustomSettings;
13
- }>>[];
11
+ endpoints: AdapterEndpoint<unknown, unknown, CustomSettings>[];
14
12
  envDefaultOverrides?: Partial<BaseAdapterConfig> | undefined;
15
13
  customSettings?: SettingsMap | undefined;
16
14
  rateLimiting?: AdapterRateLimitingConfig | undefined;
@@ -18,9 +16,7 @@ export declare class Adapter<CustomSettings extends CustomAdapterSettings = Sett
18
16
  requestTransforms?: RequestTransform[];
19
17
  initialized: boolean;
20
18
  /** Object containing alias translations for all endpoints */
21
- endpointsMap: Record<string, AdapterEndpoint<Merge<EndpointGenerics, {
22
- CustomSettings: CustomSettings;
23
- }>>>;
19
+ endpointsMap: Record<string, AdapterEndpoint<unknown, unknown, CustomSettings>>;
24
20
  /** Initialized dependencies that the adapter will use */
25
21
  dependencies: AdapterDependencies;
26
22
  /** Configuration params for various adapter properties */
@@ -71,7 +67,7 @@ export declare class Adapter<CustomSettings extends CustomAdapterSettings = Sett
71
67
  * @param req - the current adapter request
72
68
  * @returns the modified (or new) request
73
69
  */
74
- symbolOverrider(req: AdapterRequest): AdapterRequest<import("../util").RequestGenerics>;
70
+ symbolOverrider(req: AdapterRequest): AdapterRequest<import("../util").AdapterRequestData>;
75
71
  /**
76
72
  * Takes the incoming request and applies all request transforms in the adapter
77
73
  *
package/adapter/basic.js CHANGED
@@ -71,8 +71,6 @@ class Adapter {
71
71
  if (this.initialized) {
72
72
  throw new Error('This adapter has already been initialized!');
73
73
  }
74
- // Building configs during initialization to avoid validation errors during construction
75
- (0, config_1.validateAdapterConfig)(this.config, this.customSettings);
76
74
  if (this.bootstrap) {
77
75
  await this.bootstrap(this);
78
76
  }
@@ -223,16 +221,15 @@ class Adapter {
223
221
  * @returns the modified (or new) request
224
222
  */
225
223
  symbolOverrider(req) {
226
- const rawRequestBody = req.body;
227
- const requestOverrides = rawRequestBody.data?.overrides?.[this.name.toLowerCase()];
224
+ const requestOverrides = req.requestContext.data?.['overrides']?.[this.name];
228
225
  const base = req.requestContext.data['base'];
229
- if (requestOverrides?.[base]) {
230
- // Perform overrides specified in the request payload
231
- req.requestContext.data['base'] = requestOverrides[base];
226
+ // Perform overrides specified in the request payload
227
+ if (requestOverrides) {
228
+ req.requestContext.data['base'] = requestOverrides[base] ?? base;
232
229
  }
233
- else if (this.overrides?.[base]) {
234
- // Perform hardcoded adapter overrides
235
- req.requestContext.data['base'] = this.overrides[base];
230
+ // Perform hardcoded adapter overrides
231
+ if (this.overrides) {
232
+ req.requestContext.data['base'] = this.overrides[base] ?? base;
236
233
  }
237
234
  return req;
238
235
  }
@@ -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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"}
@@ -1,17 +1,17 @@
1
- import { MetaTransport, Transport } from '../transports';
1
+ import { SettingsMap } from '../config';
2
+ import { Transport } from '../transports';
2
3
  import { InputParameters } from '../validation';
4
+ import { AdapterEndpointParams, EndpointRateLimitingConfig } from './types';
3
5
  import { InputValidator } from '../validation/input-validator';
4
- import { AdapterEndpointParams, EndpointGenerics, EndpointRateLimitingConfig } from './types';
5
6
  /**
6
7
  * Main class to represent an endpoint within an External Adapter
7
8
  */
8
- export declare class AdapterEndpoint<T extends EndpointGenerics> implements AdapterEndpointParams<T> {
9
+ export declare class AdapterEndpoint<Params, Result, CustomSettings extends SettingsMap> implements AdapterEndpointParams<Params, Result, CustomSettings> {
9
10
  name: string;
10
11
  aliases?: string[] | undefined;
11
- transport: Transport<T> | MetaTransport<T>;
12
+ transport: Transport<Params, Result, CustomSettings>;
12
13
  inputParameters: InputParameters;
13
14
  rateLimiting?: EndpointRateLimitingConfig | undefined;
14
15
  validator: InputValidator;
15
- cacheKeyGenerator?: (data: Record<string, unknown>) => string;
16
- constructor(params: AdapterEndpointParams<T>);
16
+ constructor(params: AdapterEndpointParams<Params, Result, CustomSettings>);
17
17
  }
@@ -13,7 +13,6 @@ class AdapterEndpoint {
13
13
  this.inputParameters = params.inputParameters;
14
14
  this.rateLimiting = params.rateLimiting;
15
15
  this.validator = new input_validator_1.InputValidator(this.inputParameters);
16
- this.cacheKeyGenerator = params.cacheKeyGenerator;
17
16
  }
18
17
  }
19
18
  exports.AdapterEndpoint = AdapterEndpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAEA,mEAA8D;AAG9D;;GAEG;AACH,MAAa,eAAe;IAS1B,YAAY,MAAgC;QAC1C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,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;IACnD,CAAC;CACF;AAlBD,0CAkBC"}
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../src/adapter/endpoint.ts"],"names":[],"mappings":";;;AAIA,mEAA8D;AAE9D;;GAEG;AACH,MAAa,eAAe;IAU1B,YAAY,MAA6D;QACvE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QACjC,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;IAC3D,CAAC;CACF;AAlBD,0CAkBC"}
@@ -1,7 +1,7 @@
1
1
  import { SettingsMap } from '../config';
2
- import { AdapterRequest, AdapterRequestContext, AdapterResponse, RequestGenerics } from '../util';
2
+ import { AdapterRequest, AdapterRequestContext, AdapterResponse } from '../util';
3
3
  import { AdapterEndpoint } from './endpoint';
4
- import { Adapter, AdapterEndpointParams, AdapterParams, EndpointGenerics } from './index';
4
+ import { Adapter, AdapterEndpointParams, AdapterParams } from './index';
5
5
  /**
6
6
  * Type for the base input parameter config that any [[PriceEndpoint]] must extend
7
7
  */
@@ -10,13 +10,13 @@ export declare type PriceEndpointInputParameters = {
10
10
  aliases: readonly ['from', 'coin', ...string[]];
11
11
  type: 'string';
12
12
  description: 'The symbol of symbols of the currency to query';
13
- required: boolean;
13
+ required: false;
14
14
  };
15
15
  quote: {
16
16
  aliases: readonly ['to', 'market', ...string[]];
17
17
  type: 'string';
18
18
  description: 'The symbol of the currency to convert to';
19
- required: boolean;
19
+ required: true;
20
20
  };
21
21
  };
22
22
  /**
@@ -50,12 +50,12 @@ declare type IncludesMap = Record<string, Record<string, IncludeDetails>>;
50
50
  * A PriceEndpoint is a specific type of AdapterEndpoint. Meant to comply with standard practices for
51
51
  * Data Feeds, its InputParameters must extend the basic ones (base/quote).
52
52
  */
53
- export declare class PriceEndpoint<T extends EndpointGenerics> extends AdapterEndpoint<T> {
54
- constructor(params: AdapterEndpointParams<T> & {
53
+ export declare class PriceEndpoint<Params extends PriceEndpointParams, ProviderResponseBody, CustomSettings extends SettingsMap> extends AdapterEndpoint<Params, ProviderResponseBody, CustomSettings> {
54
+ constructor(params: AdapterEndpointParams<Params, ProviderResponseBody, CustomSettings> & {
55
55
  inputParameters: PriceEndpointInputParameters;
56
56
  });
57
57
  }
58
- declare type PriceAdapterRequest<T extends RequestGenerics> = AdapterRequest<T> & {
58
+ declare type PriceAdapterRequest<T> = AdapterRequest<T> & {
59
59
  requestContext: AdapterRequestContext<T> & {
60
60
  priceMeta: {
61
61
  inverse: boolean;
@@ -70,8 +70,6 @@ export declare class PriceAdapter<CustomSettings extends SettingsMap> extends Ad
70
70
  constructor(params: AdapterParams<CustomSettings> & {
71
71
  includes?: IncludesFile;
72
72
  });
73
- handleRequest(req: PriceAdapterRequest<{
74
- Params: PriceEndpointParams;
75
- }>, replySent: Promise<unknown>): Promise<AdapterResponse>;
73
+ handleRequest(req: PriceAdapterRequest<PriceEndpointParams>, replySent: Promise<unknown>): Promise<AdapterResponse>;
76
74
  }
77
75
  export {};
package/adapter/price.js CHANGED
@@ -11,7 +11,7 @@ exports.priceEndpointInputParameters = {
11
11
  aliases: ['from', 'coin'],
12
12
  type: 'string',
13
13
  description: 'The symbol of symbols of the currency to query',
14
- required: true,
14
+ required: false,
15
15
  },
16
16
  quote: {
17
17
  aliases: ['to', 'market'],
@@ -71,14 +71,11 @@ class PriceAdapter extends index_1.Adapter {
71
71
  }
72
72
  async handleRequest(req, replySent) {
73
73
  const response = await super.handleRequest(req, replySent);
74
- if (this.includesMap && req.requestContext.priceMeta.inverse) {
74
+ if (this.includesMap) {
75
75
  // We need to search in the reverse order (quote -> base) because the request transform will have inverted the pair
76
- const inverseResult = 1 / response.result;
77
- response.result = inverseResult;
78
- // Check if response data has a result within it
79
- const data = response.data;
80
- if (data?.result) {
81
- data.result = inverseResult;
76
+ const includes = this.includesMap[req.requestContext.data.quote]?.[req.requestContext.data.base];
77
+ if (includes && includes.inverse) {
78
+ response.result = 1 / response.result;
82
79
  }
83
80
  }
84
81
  return response;
@@ -1 +1 @@
1
- {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":";;;AAEA,yCAA4C;AAC5C,mCAAyF;AAoBzF;;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,aAA0C,SAAQ,0BAAkB;IAC/E,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,YAAiD,SAAQ,eAAuB;IAG3F,YACE,MAEC;QAED,yDAAyD;QACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,aAAa,CAAC,EAAE;YAC7D,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAA;SACF;QAED,KAAK,CAAC,MAAM,CAAC,CAAA;QAEb,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,0CAA0C;YAC1C,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAEpD,MAAM,gBAAgB,GAAG,CAAC,GAAmB,EAAE,EAAE;gBAC/C,MAAM,YAAY,GAAG,GAEnB,CAAA;gBACF,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAA;gBACpD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;gBAEjF,IAAI,eAAe,EAAE;oBACnB,WAAW,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAA;oBAC3D,WAAW,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,IAAI,WAAW,CAAC,KAAK,CAAA;iBAC5D;gBAED,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,IAAI,KAAK,CAAA;gBACjD,YAAY,CAAC,cAAc,CAAC,SAAS,GAAG;oBACtC,OAAO;iBACR,CAAA;YACH,CAAC,CAAA;YAED,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAA;SAC/C;IACH,CAAC;IAEQ,KAAK,CAAC,aAAa,CAC1B,GAEE,EACF,SAA2B;QAE3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAE1D,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE;YAC5D,mHAAmH;YACnH,MAAM,aAAa,GAAG,CAAC,GAAI,QAAQ,CAAC,MAAiB,CAAA;YACrD,QAAQ,CAAC,MAAM,GAAG,aAAa,CAAA;YAC/B,gDAAgD;YAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiC,CAAA;YACvD,IAAI,IAAI,EAAE,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;aAC5B;SACF;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAhED,oCAgEC"}
1
+ {"version":3,"file":"price.js","sourceRoot":"","sources":["../../../src/adapter/price.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import type EventSource from 'eventsource';
2
1
  import Redis from 'ioredis';
3
- import { Cache } from '../cache';
4
- import { AdapterConfig, BaseAdapterConfig, SettingsMap } from '../config';
5
- import { AdapterRateLimitTier, BackgroundExecuteRateLimiter, RequestRateLimiter } from '../rate-limiting';
6
- import { Transport, TransportGenerics } from '../transports';
2
+ import { AdapterEndpoint } from './endpoint';
3
+ import { CustomSettingsType, SettingsMap, AdapterConfig, BaseAdapterConfig } from '../config';
4
+ import { RequestRateLimiter, BackgroundExecuteRateLimiter, AdapterRateLimitTier } from '../rate-limiting';
5
+ import { Transport } from '../transports';
7
6
  import { AdapterRequest, SubscriptionSetFactory } from '../util';
8
7
  import { InputParameters } from '../validation';
8
+ import { Cache } from '../cache';
9
+ import type EventSource from 'eventsource';
9
10
  import { Adapter } from './basic';
10
- import { AdapterEndpoint } from './endpoint';
11
11
  export declare type CustomAdapterSettings = SettingsMap & NegatedAdapterSettings;
12
12
  declare type NegatedAdapterSettings = {
13
13
  [K in keyof BaseAdapterConfig]?: never;
@@ -33,11 +33,11 @@ export interface AdapterDependencies {
33
33
  * Context that will be used on background executions of a Transport.
34
34
  * For example, the endpointName used to log statements or generate Cache keys.
35
35
  */
36
- export interface AdapterContext<T extends EndpointGenerics> {
36
+ export interface AdapterContext<CustomSettings extends CustomSettingsType<CustomSettings> = SettingsMap> {
37
37
  /** Endpoint instance within the adapter that the Transport is related to */
38
- adapterEndpoint: AdapterEndpoint<T>;
38
+ adapterEndpoint: AdapterEndpoint<unknown, unknown, CustomSettings>;
39
39
  /** Initialized config for the adapter that the Transport can access */
40
- adapterConfig: AdapterConfig<T['CustomSettings']>;
40
+ adapterConfig: AdapterConfig<CustomSettings>;
41
41
  }
42
42
  /**
43
43
  * Structure to describe rate limits specs for the Adapter
@@ -63,7 +63,7 @@ export declare type Overrides = {
63
63
  */
64
64
  export interface AdapterParams<CustomSettings extends SettingsMap> {
65
65
  /** Name of the adapter */
66
- name: Uppercase<string>;
66
+ name: string;
67
67
  /** If present, the string that will be used for requests with no specified endpoint */
68
68
  defaultEndpoint?: string;
69
69
  /**
@@ -75,7 +75,7 @@ export interface AdapterParams<CustomSettings extends SettingsMap> {
75
75
  * We also can't use generics, because if we had more than one transport with different requests (very likely)
76
76
  * then those new types wouldn't match with each other.
77
77
  */
78
- endpoints: AdapterEndpoint<any>[];
78
+ endpoints: AdapterEndpoint<any, any, CustomSettings>[];
79
79
  /** Map of overrides to the default config values for an Adapter */
80
80
  envDefaultOverrides?: Partial<BaseAdapterConfig>;
81
81
  /** List of custom env vars for this particular adapter (e.g. RPC_URL) */
@@ -100,25 +100,19 @@ export interface EndpointRateLimitingConfig {
100
100
  */
101
101
  allocationPercentage: number;
102
102
  }
103
- /**
104
- * Helper type structure that contains the different types passed to the generic parameters of an AdapterEndpoint
105
- */
106
- export declare type EndpointGenerics = TransportGenerics;
107
103
  /**
108
104
  * Structure to describe a specific endpoint in an [[Adapter]]
109
105
  */
110
- export interface AdapterEndpointParams<T extends EndpointGenerics> {
106
+ export interface AdapterEndpointParams<Params, Result, CustomSettings extends SettingsMap> {
111
107
  /** Name that will be used to match input params to this endpoint (case insensitive) */
112
108
  name: string;
113
109
  /** List of alternative endpoint names that will resolve to this same transport (case insensitive) */
114
110
  aliases?: string[];
115
111
  /** Transport that will be used to handle data processing and communication for this endpoint */
116
- transport: Transport<T>;
112
+ transport: Transport<Params, Result, CustomSettings>;
117
113
  /** Specification of what the body of a request hitting this endpoint should look like (used for validation) */
118
114
  inputParameters: InputParameters;
119
115
  /** Specific details related to the rate limiting for this endpoint in particular */
120
116
  rateLimiting?: EndpointRateLimitingConfig;
121
- /** Custom function that generates cache keys */
122
- cacheKeyGenerator?: (data: Record<string, unknown>) => string;
123
117
  }
124
118
  export {};
@@ -24,8 +24,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.callBackgroundExecutes = void 0;
27
- const metrics = __importStar(require("./metrics"));
28
27
  const util_1 = require("./util");
28
+ const metrics = __importStar(require("./metrics"));
29
29
  const logger = (0, util_1.makeLogger)('BackgroundExecutor');
30
30
  /**
31
31
  * Very simple background loop that will call the [[Transport.backgroundExecute]] functions in all Transports.
@@ -47,12 +47,11 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
47
47
  clearTimeout(timeoutsMap[endpointName]);
48
48
  }
49
49
  });
50
- // Checks if an individual transport has a backgroundExecute function, and executes it if it does
51
- const callBackgroundExecute = (endpoint, transport) => {
52
- const backgroundExecute = transport.backgroundExecute?.bind(transport);
50
+ for (const endpoint of adapter.endpoints) {
51
+ const backgroundExecute = endpoint.transport.backgroundExecute?.bind(endpoint.transport);
53
52
  if (!backgroundExecute) {
54
53
  logger.debug(`Endpoint "${endpoint.name}" has no background execute, skipping...`);
55
- return;
54
+ continue;
56
55
  }
57
56
  const context = {
58
57
  adapterEndpoint: endpoint,
@@ -77,20 +76,6 @@ async function callBackgroundExecutes(adapter, apiShutdownPromise) {
77
76
  };
78
77
  // Start recursive async calls
79
78
  handler();
80
- };
81
- for (const endpoint of adapter.endpoints) {
82
- const { transport } = endpoint;
83
- // Check if transport is a MetaTransport by casting and checking a known property (transports)
84
- const castMeta = transport;
85
- if (castMeta.transports) {
86
- logger.debug(`Encountered MetaTransport ${transport.constructor.name}, calling backgroundExecute on all transports`);
87
- for (const nestedTransport of Object.values(castMeta.transports)) {
88
- callBackgroundExecute(endpoint, nestedTransport);
89
- }
90
- }
91
- else {
92
- callBackgroundExecute(endpoint, transport);
93
- }
94
79
  }
95
80
  }
96
81
  exports.callBackgroundExecutes = callBackgroundExecutes;
@@ -1 +1 @@
1
- {"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"background-executor.js","sourceRoot":"","sources":["../../src/background-executor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iCAAmC;AACnC,mDAAoC;AAEpC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,oBAAoB,CAAC,CAAA;AAE/C;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAAgB,EAAE,kBAAkC;IAC/F,uFAAuF;IACvF,4FAA4F;IAC5F,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,MAAM,WAAW,GAEb,EAAE,CAAA;IAEN,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;QAC5B,YAAY,GAAG,IAAI,CAAA;QACnB,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE;YACtC,MAAM,CAAC,KAAK,CAAC,kCAAkC,YAAY,GAAG,CAAC,CAAA;YAC/D,WAAW,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAA;YACjC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAA;SACxC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE;QACxC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACxF,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,0CAA0C,CAAC,CAAA;YAClF,SAAQ;SACT;QAED,MAAM,OAAO,GAAmB;YAC9B,eAAe,EAAE,QAAQ;YACzB,aAAa,EAAE,OAAO,CAAC,MAAM;SAC9B,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,IAAI,YAAY,EAAE;gBAChB,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;gBAChF,OAAM;aACP;YACD,qDAAqD;YACrD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YAEhE,2EAA2E;YAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,wBAAwB;iBAClD,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACnC,UAAU,EAAE,CAAA;YAEf,MAAM,CAAC,KAAK,CAAC,4CAA4C,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAA;YAC1E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACnD,MAAM,CAAC,KAAK,CACV,6CAA6C,QAAQ,CAAC,IAAI,mBAAmB,UAAU,IAAI,CAC5F,CAAA;YAED,YAAY,EAAE,CAAA;YACd,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC9D,CAAC,CAAA;QAED,8BAA8B;QAC9B,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAvDD,wDAuDC"}
package/cache/index.d.ts CHANGED
@@ -49,13 +49,13 @@ export interface Cache<T = unknown> {
49
49
  */
50
50
  delete: (key: string) => Promise<void>;
51
51
  }
52
- export declare const calculateCacheKey: <T extends import("../transports").TransportGenerics>({ adapterEndpoint, adapterConfig, }: {
53
- adapterEndpoint: AdapterEndpoint<T>;
54
- adapterConfig: AdapterConfig<T["CustomSettings"]>;
52
+ export declare const calculateCacheKey: <Params, Result, CustomSettings extends SettingsMap>({ adapterEndpoint, adapterConfig, }: {
53
+ adapterEndpoint: AdapterEndpoint<Params, Result, CustomSettings>;
54
+ adapterConfig: AdapterConfig<CustomSettings>;
55
55
  }, data: unknown) => string;
56
- export declare const calculateFeedId: <T extends import("../transports").TransportGenerics>({ adapterEndpoint, adapterConfig, }: {
57
- adapterEndpoint: AdapterEndpoint<T>;
58
- adapterConfig: AdapterConfig<T["CustomSettings"]>;
56
+ export declare const calculateFeedId: <Params, Result, CustomSettings extends SettingsMap>({ adapterEndpoint, adapterConfig, }: {
57
+ adapterEndpoint: AdapterEndpoint<Params, Result, CustomSettings>;
58
+ adapterConfig: AdapterConfig<CustomSettings>;
59
59
  }, data: unknown) => string;
60
60
  /**
61
61
  * Calculates a unique key from the provided data.
package/cache/redis.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import Redis from 'ioredis';
2
2
  import { Cache, CacheEntry } from './index';
3
+ import { CMD_SENT_STATUS } from './metrics';
4
+ import * as cacheMetrics from './metrics';
5
+ export declare const recordRedisCommandMetric: (status: cacheMetrics.CMD_SENT_STATUS, functionName: string) => void;
3
6
  /**
4
7
  * Redis implementation of a Cache. It uses a simple js Object, storing entries with both
5
8
  * a value and an expiration timestamp. Expired entries are deleted on reads (i.e. no background gc/upkeep).
package/cache/redis.js CHANGED
@@ -23,10 +23,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.RedisCache = void 0;
26
+ exports.RedisCache = exports.recordRedisCommandMetric = void 0;
27
27
  const util_1 = require("../util");
28
+ const metrics_1 = require("./metrics");
28
29
  const cacheMetrics = __importStar(require("./metrics"));
29
30
  const logger = (0, util_1.makeLogger)('RedisCache');
31
+ const recordRedisCommandMetric = (status, functionName) => {
32
+ cacheMetrics.redisCommandsSentCount
33
+ .labels({ status: cacheMetrics.CMD_SENT_STATUS[status], function_name: functionName })
34
+ .inc();
35
+ };
36
+ exports.recordRedisCommandMetric = recordRedisCommandMetric;
30
37
  /**
31
38
  * Redis implementation of a Cache. It uses a simple js Object, storing entries with both
32
39
  * a value and an expiration timestamp. Expired entries are deleted on reads (i.e. no background gc/upkeep).
@@ -40,10 +47,6 @@ class RedisCache {
40
47
  async get(key) {
41
48
  logger.trace(`Getting key ${key}`);
42
49
  const value = await this.client.get(key);
43
- // Record get command sent to Redis
44
- cacheMetrics.redisCommandsSentCount
45
- .labels({ status: cacheMetrics.CMD_SENT_STATUS.SUCCESS, function_name: 'get' })
46
- .inc();
47
50
  if (!value) {
48
51
  logger.debug(`No entry in redis cache for key "${key}", returning undefined`);
49
52
  return undefined;
@@ -53,25 +56,17 @@ class RedisCache {
53
56
  async delete(key) {
54
57
  logger.trace(`Deleting key ${key}`);
55
58
  await this.client.del(key);
56
- // Record delete command sent to Redis
57
- cacheMetrics.redisCommandsSentCount
58
- .labels({ status: cacheMetrics.CMD_SENT_STATUS.SUCCESS, function_name: 'delete' })
59
- .inc();
60
59
  }
61
60
  async set(key, value, ttl) {
62
61
  logger.trace(`Setting key ${key}`);
63
- await this.client.set(key, JSON.stringify(value), 'PX', ttl);
64
- // Only record metrics if feed Id is present, otherwise assuming value is not adapter response to record
62
+ // Only record metrics if feed id is present, otherwise assuming value is not adapter response to record
65
63
  const feedId = value.meta?.metrics?.feedId;
66
64
  if (feedId) {
67
65
  // Record cache set count, max age, and staleness (set to 0 for cache set)
68
66
  const label = cacheMetrics.cacheMetricsLabel(key, feedId, cacheMetrics.CacheTypes.Redis);
69
67
  cacheMetrics.cacheSet(label, ttl);
70
68
  }
71
- // Record set command sent to Redis
72
- cacheMetrics.redisCommandsSentCount
73
- .labels({ status: cacheMetrics.CMD_SENT_STATUS.SUCCESS, function_name: 'set' })
74
- .inc();
69
+ await this.client.set(key, JSON.stringify(value), 'PX', ttl);
75
70
  }
76
71
  async setMany(entries, ttl) {
77
72
  logger.trace(`Setting a bunch of keys`);
@@ -83,7 +78,7 @@ class RedisCache {
83
78
  await chain.exec();
84
79
  // Loop again, but this time to record these in metrics
85
80
  for (const entry of entries) {
86
- // Only record metrics if feed Id is present, otherwise assuming value is not adapter response to record
81
+ // Only record metrics if feed id is present, otherwise assuming value is not adapter response to record
87
82
  const feedId = entry.value.meta?.metrics?.feedId;
88
83
  if (feedId) {
89
84
  // Record cache set count, max age, and staleness (set to 0 for cache set)
@@ -92,9 +87,7 @@ class RedisCache {
92
87
  }
93
88
  }
94
89
  // Record setMany command sent to Redis
95
- cacheMetrics.redisCommandsSentCount
96
- .labels({ status: cacheMetrics.CMD_SENT_STATUS.SUCCESS, function_name: 'exec' })
97
- .inc();
90
+ (0, exports.recordRedisCommandMetric)(metrics_1.CMD_SENT_STATUS.SUCCESS, 'exec');
98
91
  }
99
92
  }
100
93
  exports.RedisCache = RedisCache;
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":"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"}
package/config/index.d.ts CHANGED
@@ -217,7 +217,6 @@ export declare const buildAdapterConfig: <CustomSettings extends CustomSettingsT
217
217
  overrides?: Partial<BaseAdapterConfig> | undefined;
218
218
  customSettings?: SettingsMap | undefined;
219
219
  }) => AdapterConfig<CustomSettings>;
220
- export declare const validateAdapterConfig: <CustomSettings extends CustomSettingsType<CustomSettings> = EmptySettings>(adapterConfig: AdapterConfig<CustomSettings>, customSettings?: SettingsMap) => void;
221
220
  declare type SettingValueType = string | number | boolean;
222
221
  declare type SettingType<C extends Setting> = C['type'] extends 'string' ? string : C['type'] extends 'number' ? number : C['type'] extends 'boolean' ? boolean : C['type'] extends 'enum' ? C['options'] extends readonly string[] ? C['options'][number] : never : never;
223
222
  declare type BaseSettingsType = typeof BaseSettings;